From facea208b2fc7c8c7a0d176df06305b866c6520f Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: Wed, 17 Jun 2026 08:56:00 +0800
Subject: [PATCH] 中科大支线—申购功能

---
 src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/addProDialog.vue         |   10 
 src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/components/detail.vue                |  331 ++++++++++
 src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/proDetail.vue    |    6 
 src/views/hazardousChemicals/avoidWarningMenu/avoidWarning/components/avoidDialog.vue                |   12 
 src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawDetail.vue            |   10 
 src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawTable.vue     |    4 
 src/views/hazardousChemicals/subscribeApplyManage/record/components/editDialog.vue                   |   57 -
 src/views/hazardousChemicals/systemManage/warehouse/components/cupboard.vue                          |   12 
 src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawTable.vue             |   12 
 src/views/hazardousChemicals/systemManage/warehouse/components/warehouseDialog.vue                   |   20 
 src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/productTable.vue |    2 
 src/views/hazardousChemicals/subscribeApplyManage/subscribe/index.vue                                |  105 ++
 src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/proDetail.vue            |   10 
 src/api/hazardousChemicals/subscribeApply.js                                                         |   48 +
 src/views/hazardousChemicals/subscribeApplyManage/approval/components/editDialog.vue                 |  105 +--
 src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/index.vue                            |  334 ++++++++++
 src/views/tool/gen/basicInfoForm.vue                                                                 |    2 
 src/views/hazardousChemicals/subscribeApplyManage/subscribe/components/editDialog.vue                |   96 +-
 src/views/hazardousChemicals/systemManage/warehouse/index.vue                                        |   10 
 src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/addRawDialog.vue         |   10 
 src/router/index.js                                                                                  |   70 ++
 src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawDetail.vue    |    8 
 src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/components/orderDialog.vue           |  301 +++++++++
 src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/productTable.vue         |   12 
 src/views/hazardousChemicals/subscribeApplyManage/record/index.vue                                   |  172 ++++-
 src/views/hazardousChemicals/subscribeApplyManage/approval/index.vue                                 |  130 ++-
 26 files changed, 1,544 insertions(+), 345 deletions(-)

diff --git a/src/api/hazardousChemicals/subscribeApply.js b/src/api/hazardousChemicals/subscribeApply.js
new file mode 100644
index 0000000..57f4a42
--- /dev/null
+++ b/src/api/hazardousChemicals/subscribeApply.js
@@ -0,0 +1,48 @@
+import request from "@/utils/request";
+
+export function getSubscribeList(params) {
+    return request({
+        url: '/system/subscribe/list',
+        method: 'post',
+        data: params
+    })
+}
+
+export function addSubscribe(data) {
+    return request({
+        url: '/system/subscribe/insert',
+        method: 'post',
+        data: data
+    })
+}
+
+export function editSubscribe(params) {
+    return request({
+        url: `/system/subscribe/update`,
+        method: 'post',
+        data: params
+    })
+}
+
+export function delSubscribe(id) {
+    return request({
+        url: `/system/subscribe/delete?id=${id}`,
+        method: 'get'
+    })
+}
+
+export function auditSubscribe(data) {
+    return request({
+        url: `/system/subscribe/audit?id=${data.id}&status=${data.status}&opinion=${data.opinion}`,
+        method: 'get',
+    })
+}
+
+export function getAuditList(params) {
+    return request({
+        url: '/system/subscribe/auditList',
+        method: 'post',
+        data: params
+    })
+}
+
diff --git a/src/router/index.js b/src/router/index.js
index 0969a5c..91ea252 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -459,6 +459,76 @@
     ]
   },
   {
+    path: '/rawDetail',
+    component: Layout,
+    hidden: true,
+    redirect: '/rawDetail',
+    children: [
+      {
+        path: '/rawDetail',
+        component: () => import('@/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawDetail.vue'),
+        name: 'rawDetail',
+        meta: { title: '危化品详单',icon: 'form',  affix: true }
+      }
+    ]
+  },
+  {
+    path: '/proDetail',
+    component: Layout,
+    hidden: true,
+    redirect: '/proDetail',
+    children: [
+      {
+        path: '/proDetail',
+        component: () => import('@/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/proDetail.vue'),
+        name: 'proDetail',
+        meta: { title: '成品详单',icon: 'form',  affix: true }
+      }
+    ]
+  },
+  {
+    path: '/whRawDetail',
+    component: Layout,
+    hidden: true,
+    redirect: '/whRawDetail',
+    children: [
+      {
+        path: '/whRawDetail',
+        component: () => import('@/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawDetail.vue'),
+        name: 'whRawDetail',
+        meta: { title: '危化品详情',icon: 'form',  affix: true }
+      }
+    ]
+  },
+  {
+    path: '/whRawDetailNew',
+    component: Layout,
+    hidden: true,
+    redirect: '/whRawDetailNew',
+    children: [
+      {
+        path: '/whRawDetailNew',
+        component: () => import('@/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/components/detail.vue'),
+        name: 'whRawDetailNew',
+        meta: { title: '危化品详情',icon: 'form',  affix: true }
+      }
+    ]
+  },
+  {
+    path: '/whProDetail',
+    component: Layout,
+    hidden: true,
+    redirect: '/whProDetail',
+    children: [
+      {
+        path: '/whProDetail',
+        component: () => import('@/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/proDetail.vue'),
+        name: 'whProDetail',
+        meta: { title: '成品详情',icon: 'form',  affix: true }
+      }
+    ]
+  },
+  {
     path: '/user',
     component: Layout,
     hidden: true,
diff --git a/src/views/hazardousChemicals/avoidWarningMenu/avoidWarning/components/avoidDialog.vue b/src/views/hazardousChemicals/avoidWarningMenu/avoidWarning/components/avoidDialog.vue
index dde3ef0..bf22850 100644
--- a/src/views/hazardousChemicals/avoidWarningMenu/avoidWarning/components/avoidDialog.vue
+++ b/src/views/hazardousChemicals/avoidWarningMenu/avoidWarning/components/avoidDialog.vue
@@ -15,14 +15,14 @@
         <el-form-item label="相忌危化品:" prop="hazmatBasicName" >
           <el-input disabled v-model.trim="state.form.tabooBasicName" ></el-input>
         </el-form-item>
-        <el-form-item label="仓库:" prop="warehouseName" >
+        <el-form-item label="主柜:" prop="warehouseName" >
           <el-select
               clearable
               v-model="state.form.warehouseName"
               filterable
               remote
               reserve-keyword
-              placeholder="请输入所入仓库"
+              placeholder="请输入所入主柜"
               remote-show-suffix
               :remote-method="getWareHouseList"
               style="width: 100%"
@@ -36,10 +36,10 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="存储柜:" prop="cupboardId" >
+        <el-form-item label="副柜:" prop="cupboardId" >
           <el-select
               v-model="state.form.cupboardId"
-              placeholder="请选择存储柜"
+              placeholder="请选择副柜"
               style="width: 100%"
           >
             <el-option
@@ -79,8 +79,8 @@
     cupboardId: ''
   },
   formRules:{
-    warehouseName: [{ required: true, trigger: "blur", message: '请选择仓库' }],
-    cupboardId: [{ required: true, trigger: "blur", message: '请选择存储柜' }],
+    warehouseName: [{ required: true, trigger: "blur", message: '请选择主柜' }],
+    cupboardId: [{ required: true, trigger: "blur", message: '请选择副柜' }],
   },
 })
 
diff --git a/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/proDetail.vue b/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/proDetail.vue
index 1e2249c..cbec6e5 100644
--- a/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/proDetail.vue
+++ b/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/proDetail.vue
@@ -62,7 +62,7 @@
           <span >{{scope.row.remaining}}{{scope.row.productBasic.unit}}</span>
         </template>
       </el-table-column>
-      <el-table-column label="所在仓库" prop="warehouseName" align="center" />
+      <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="viewFlow(scope.row)">取用记录</el-button>
@@ -94,7 +94,7 @@
 <script setup>
 import {nextTick, onMounted, reactive, ref} from "vue";
 import {useRoute, useRouter} from "vue-router";
-import flowDeail from '../../../components/flowDetail.vue'
+import flowDeail from '../../../../components/flowDetail.vue'
 import {disCardPro, doEntryPro, getProDetail, getProductRecord} from "@/api/hazardousChemicals/productRecord";
 import viewQRcode from './viewQR.vue'
 import {ElMessage, ElMessageBox} from "element-plus";
@@ -173,7 +173,7 @@
   }
   const v = JSON.stringify(obj)
   Cookies.set('type','pro')
-  router.push({ path: "/electronicWarehouse", query: { val: v } });
+  router.push({ path: "/electronicWarehouseMenu/electronicWarehouse", query: { val: v } });
 }
 const viewQR = (val) => {
   dialogRef.value.openDialog('pro',val)
diff --git a/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/productTable.vue b/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/productTable.vue
index 3c51d8f..b29dc9a 100644
--- a/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/productTable.vue
+++ b/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/productTable.vue
@@ -37,7 +37,7 @@
       </el-table-column>
 <!--      <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 label="所在主柜" prop="warehouseName" align="center" >
       </el-table-column>
       <el-table-column label="创建时间" prop="productBasic.createTime" align="center" width="120" />
 <!--      <el-table-column label="状态" prop="state" align="center">-->
diff --git a/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawDetail.vue b/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawDetail.vue
index f2233a0..851a0a0 100644
--- a/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawDetail.vue
+++ b/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawDetail.vue
@@ -63,8 +63,8 @@
 
         </template>
       </el-table-column>
-      <el-table-column label="所在仓库" prop="warehouseName" align="center" />
-      <el-table-column label="存储柜" prop="cupboardName" align="center" />
+      <el-table-column label="所在主柜" prop="warehouseName" align="center" />
+      <el-table-column label="副柜" prop="cupboardName" align="center" />
 
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180" >
         <template #default="scope">
@@ -118,7 +118,7 @@
 <script setup>
 import {nextTick, onMounted, reactive, ref} from "vue";
 import {useRoute, useRouter} from "vue-router";
-import flowDeail from '../../../components/flowDetail.vue'
+import flowDeail from '../../../../components/flowDetail.vue'
 import {disCardPro, getProDetail, getProductRecord} from "@/api/hazardousChemicals/productRecord";
 import viewQRcode from './viewQR.vue'
 import {ElMessage, ElMessageBox} from "element-plus";
@@ -214,7 +214,7 @@
   }
   const v = JSON.stringify(obj)
   Cookies.set('type','raw')
-  router.push({ path: "/electronicWarehouse", query: { val: v } });
+  router.push({ path: "/electronicWarehouseMenu/electronicWarehouse", query: { val: v } });
 }
 const viewQR = (val) => {
   dialogRef.value.openDialog('raw',val)
diff --git a/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawTable.vue b/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawTable.vue
index 2ce5fb6..7b3aa2a 100644
--- a/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawTable.vue
+++ b/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawTable.vue
@@ -63,8 +63,8 @@
         </template>
       </el-table-column>
       <el-table-column label="安全库存" prop="hazmatBasic.safeNum" align="center" width="120" />
-      <el-table-column label="所在仓库" prop="warehouseName" align="center" />
-      <el-table-column label="存储柜" prop="cupboardName" align="center" />
+      <el-table-column label="所在主柜" prop="warehouseName" align="center" />
+      <el-table-column label="副柜" prop="cupboardName" align="center" />
       <el-table-column label="创建时间" prop="hazmatBasic.createTime" align="center" width="120" />
 <!--      <el-table-column label="状态" prop="state" align="center">-->
 <!--        <template #default="scope">-->
diff --git a/src/views/hazardousChemicals/subscribeApplyManage/approval/components/editDialog.vue b/src/views/hazardousChemicals/subscribeApplyManage/approval/components/editDialog.vue
index 83a8e54..dac5306 100644
--- a/src/views/hazardousChemicals/subscribeApplyManage/approval/components/editDialog.vue
+++ b/src/views/hazardousChemicals/subscribeApplyManage/approval/components/editDialog.vue
@@ -9,36 +9,25 @@
         :close-on-click-modal="false"
     >
       <el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="150px" >
-        <el-form-item required label= "危化品列表" >
+        <el-form-item  label= "危化品列表" >
           <div style="display: flex;width: 100%;margin-top: 5px">
-            <el-table :data="state.form.hazardousTargets" :border="true">
+            <el-table :data="state.form.subscribeHazmats" :border="true">
               <el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
               <el-table-column label="危化品名称" align="center"  >
                 <template #default="{row,$index}">
-                  <el-form-item :prop="'hazardousTargets.' + '[' + $index + ']' + '.name'" >
-                    <span>{{row.name}}</span>
+                  <el-form-item :prop="'subscribeHazmats.' + '[' + $index + ']' + '.hazmatName'" >
+                    <span>{{row.hazmatName}}</span>
                   </el-form-item>
                 </template>
               </el-table-column>
               <el-table-column label="数量" align="center"  >
                 <template #default="{row,$index}">
-                  <el-form-item :prop="'hazardousTargets.' + '[' + $index + ']' + '.num'">
-                    <span>{{row.num}}</span>
+                  <el-form-item :prop="'subscribeHazmats.' + '[' + $index + ']' + '.hazmatCount'">
+                    <span>{{row.hazmatCount}}</span>
                   </el-form-item>
                 </template>
               </el-table-column>
-              <el-table-column label="操作" align="center" class-name="small-padding fixed-width" v-if="title !== '查看'" >
-                <template #default="scope" >
-                  <el-button link type="danger"  @click="handleDelete(scope.row)" >删除</el-button>
-                </template>
-              </el-table-column>
             </el-table>
-            <el-button
-                v-if="title !== '查看'"
-                style="margin-left: 20px"
-                type="primary"
-                @click="addObject"
-            >新增</el-button>
           </div>
         </el-form-item>
         <el-form-item label="申购文件:">
@@ -46,20 +35,20 @@
             <el-link  type="primary" @click="openFile(state.form.filePath)">{{state.form.fileName}}</el-link>
           </div>
         </el-form-item>
-        <el-form-item label="审批意见:" v-if="title === '审批' && state.form.state == 0" >
+        <el-form-item label="审批意见:" v-if="title === '审批'" prop="status">
           <div style="display: flex;flex-direction: column;width: 70%">
-            <el-radio-group v-model="state.form.regestState">
-              <el-radio :label="0">通过</el-radio>
-              <el-radio :label="1">驳回</el-radio>
+            <el-radio-group v-model="state.form.status">
+              <el-radio :label="1">通过</el-radio>
+              <el-radio :label="2">驳回</el-radio>
             </el-radio-group>
-            <el-input v-if="state.form.regestState == 1" v-model="state.form.regest" type="textarea" :rows="5"></el-input>
+            <el-input v-if="state.form.status == 2" v-model="state.form.opinion" type="textarea" placeholder="请输入审批意见" :rows="5"></el-input>
           </div>
         </el-form-item>
-        <el-form-item label="审批状态:" v-if="title === '查看' && state.form.state != 0">
-          <span>{{state.form.state == 1 ? '审批通过' : '审批驳回' }}</span>
+        <el-form-item label="审批状态:" v-if="title === '查看' && state.form.status != 0" >
+          <span>{{state.form.status == 1 ? '审批通过' : '审批驳回' }}</span>
         </el-form-item>
-        <el-form-item label="审批意见:" v-if="title === '查看' && state.form.state == 2" style="width: 70%">
-          <el-input v-model="state.form.regest" type="textarea" :rows="5"></el-input>
+        <el-form-item label="审批意见:" v-if="title === '查看' && state.form.status == 2" style="width: 70%" >
+          <el-input v-model="state.form.opinion" type="textarea" :rows="5"></el-input>
         </el-form-item>
       </el-form>
       <template #footer v-if="title !=='查看'">
@@ -79,6 +68,7 @@
 import {getUser} from "@/api/hazardousChemicals/user";
 import {getToken} from "@/utils/auth";
 import {renderAsync} from "docx-preview";
+import {auditSubscribe} from "@/api/hazardousChemicals/subscribeApply";
 
 const dialogVisible = ref(false);
 const title = ref("");
@@ -88,46 +78,40 @@
 const state = reactive({
   form: {
     id: '',
-    creditCode: '',
-    name: '',
-    major: '',
-    phone: '',
-    code: '',
-    hazardousTargets:[],
+    opinion: null,
+    status: undefined,
+    subscribeHazmats:[],
   },
   formRules:{
-    creditCode: [{ required: true, message: '请输入企业信用代码', trigger: 'blur' }],
-    major:[{ required: true, message: '请输入负责人', trigger: 'blur' }],
-    type: [{ required: true, message: '请选择企业类型', trigger: 'blur' }],
+    status: [{ required: true, message: '请选择审批意见', trigger: 'blur' }],
   },
-
-  peopleList:[],
-  fileList:[],
-  uploadUrl: import.meta.env.VITE_APP_BASE_API + '/system/common/uploadFile',
-  header: {
-    Authorization: getToken()
-  },
-  fileLimit: 1,
 })
 
 
 const openDialog = async (type, value) => {
-  title.value = type === 'approval' ? '审批' : type ==='edit' ? '申购编辑' : '查看' ;
+  title.value = type === 'approval' ? '审批' : type ==='view' ? '查看' : '' ;
   state.form = JSON.parse(JSON.stringify(value));
   dialogVisible.value = true;
 }
 
 const onSubmit = async () => {
   const valid = await busRef.value.validate();
+  if(!state.form.status){
+    ElMessage.warning('请选择审批意见!')
+    return
+  }
   if(valid){
     if(title.value === '审批'){
-      const {id, ...data} = JSON.parse(JSON.stringify(state.form))
-      data.code = data.code.toUpperCase()
-      const res = await addCompany(data)
+      const {subscribeHazmats, ...data} = JSON.parse(JSON.stringify(state.form))
+      if(data.status == 2 && !data.opinion){
+        ElMessage.warning('请输入审批意见!')
+        return
+      }
+      const res = await auditSubscribe(data)
       if(res.code === 200){
         ElMessage({
           type: 'success',
-          message: '新增成功'
+          message: '审批成功'
         });
       }else{
         ElMessage.warning(res.message)
@@ -149,29 +133,10 @@
 const reset = () => {
   state.form = {
     id: '',
-    creditCode: '',
-    name: '',
-    major: '',
-    phone: '',
-    code: ''
+    opinion:null,
+    status:undefined,
+    subscribeHazmats:[],
   }
-}
-const addObject = () => {
-
-  state.form.hazardousTargets.push({name:'',num:null})
-}
-const handleDelete = (val) => {
-  state.form.hazardousTargets = state.form.hazardousTargets.filter(item=> item != val)
-}
-const selectValue =  (val) => {
-  if(!val){
-    state.form.userId = null
-  }
-  state.peopleList.forEach(item => {
-    if(item.name === val){
-      state.form.userId  = item.id
-    }
-  })
 }
 
 
diff --git a/src/views/hazardousChemicals/subscribeApplyManage/approval/index.vue b/src/views/hazardousChemicals/subscribeApplyManage/approval/index.vue
index f107b29..954e272 100644
--- a/src/views/hazardousChemicals/subscribeApplyManage/approval/index.vue
+++ b/src/views/hazardousChemicals/subscribeApplyManage/approval/index.vue
@@ -2,16 +2,16 @@
   <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>-->
-<!--          <el-button-->
-<!--              type="primary"-->
-<!--              plain-->
-<!--              icon="Plus"-->
-<!--              @click="openDialog('add',{})"-->
-<!--          >新增</el-button>-->
-<!--        </el-form-item>-->
+        <el-form-item>
+          <el-button
+              type="primary"
+              plain
+              icon="Plus"
+              @click="openDialog('add',{})"
+          >新增</el-button>
+        </el-form-item>
         <el-form-item label="审批状态:" >
-          <el-select v-model="data.queryParams.state" placeholder="请选择" >
+          <el-select v-model="data.queryParams.status" placeholder="请选择" >
             <el-option
                 v-for="item in data.stateOptions"
                 :key="item.id"
@@ -20,7 +20,7 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="审批人:" prop="userId" >
+        <el-form-item label="申购人:" >
           <el-select
               clearable
               v-model="data.userName"
@@ -28,7 +28,7 @@
               remote
               @change="selectValue"
               reserve-keyword
-              placeholder="请输入审批人名称"
+              placeholder="请输入申购人名称"
               remote-show-suffix
               :remote-method="getPeopleList"
               style="width: 100%"
@@ -57,24 +57,62 @@
     <!-- 表格数据 -->
     <el-table v-loading="loading" :data="dataList" :border="true">
       <el-table-column label="序号" type="index" align="center" width="80" />
-      <el-table-column label="申购单号" prop="creditCode" align="center"  />
-      <el-table-column label="危化品名称" prop="code" align="center" />
-      <el-table-column label="申购数量" prop="name" align="center" />
-      <el-table-column label="申购人" prop="major" align="center"  />
-      <el-table-column label="审批人" prop="phone" align="center"/>
-      <el-table-column label="申购文件" prop="phone" align="center">
+      <el-table-column label="申购单号" prop="subscribeNum" align="center"  />
+      <el-table-column label="危化品名称" align="center"  class-name="subscribe-quantity-cell" width="200">
         <template #default="scope">
-          <el-link v-if="scope.row.fileName" style="" type="primary" @click="openFile(scope.row.filePath)">{{scope.row.fileName}}</el-link>
+          <div style="width: 100%; height: 100%;display: flex; flex-direction: column;justify-content: center;align-items: center; ">
+            <div
+                v-for="(item, index) in scope.row.subscribeHazmats"
+                :key="item.id"
+                style="
+              width: 100%;
+              text-align: center;
+              padding: 8px 0;
+              border-bottom: 1px solid #ebeef5;"
+                :style="{
+                borderBottom: index === scope.row.subscribeHazmats.length - 1 ? 'none' : '1px solid #ebeef5'
+                }"
+            >
+              <span>{{ item.hazmatName }}</span>
+            </div>
+          </div>
         </template>
       </el-table-column>
-      <el-table-column label="审批状态" prop="phone" align="center">
+      <el-table-column label="申购数量" align="center" class-name="subscribe-quantity-cell">
         <template #default="scope">
-          <span> {{scope.row.state == 0 ? '未审批' :scope.row.state == 1 ?'审批通过':scope.row.state == 2 ?'审批驳回':''}}</span><span></span>
+          <div style="width: 100%; height: 100%;display: flex; flex-direction: column;justify-content: center;align-items: center; ">
+            <div
+                v-for="(item, index) in scope.row.subscribeHazmats"
+                style="
+            width: 100%;
+            text-align: center;
+            padding: 8px 0;
+            border-bottom: 1px solid #ebeef5;"
+                :style="{
+              borderBottom: index === scope.row.subscribeHazmats.length - 1 ? 'none' : '1px solid #ebeef5'
+            }"
+            >
+              {{ item.hazmatCount }}
+            </div>
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column label="申购人" prop="subscribePersonName" align="center"  />
+      <el-table-column label="审批人" prop="checkName" align="center"/>
+      <el-table-column label="申购文件" prop="fileName" align="center">
+        <template #default="scope">
+          <el-link v-if="scope.row.fileName" style="" type="primary" @click="openFile(scope.row.filePath)">{{scope.row.fileName}}</el-link>
+          <span v-else></span>
+        </template>
+      </el-table-column>
+      <el-table-column label="审批状态" prop="status" align="center">
+        <template #default="scope">
+          <span> {{scope.row.status == 0 ? '未审批' :scope.row.status == 1 ?'审批通过':scope.row.status == 2 ?'审批驳回':''}}</span><span></span>
         </template>
       </el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" >
         <template #default="scope">
-          <el-button v-if="scope.row.state == 0" link type="primary" @click="openDialog('approval',scope.row)">审批</el-button>
+          <el-button v-if="scope.row.status == 0" link type="danger" @click="openDialog('approval',scope.row)">审批</el-button>
           <el-button link type="primary" @click="openDialog('view',scope.row)">查看</el-button>
         </template>
       </el-table-column>
@@ -99,6 +137,8 @@
 import editDialog from "./components/editDialog.vue";
 import {getUser} from "@/api/hazardousChemicals/user";
 import {renderAsync} from "docx-preview";
+import {delSubscribe, getAuditList, getSubscribeList} from "@/api/hazardousChemicals/subscribeApply";
+import Cookies from "js-cookie";
 const { proxy } = getCurrentInstance();
 const loading = ref(false);
 const dialogRef = ref();
@@ -106,8 +146,9 @@
   queryParams: {
     pageNum: 1,
     pageSize: 10,
-    state: null,
-    userId:null
+    status: null,
+    subscribePersonId:null,
+    checkId:null
   },
   total: 0,
   dataList: [],
@@ -132,8 +173,11 @@
 const { queryParams, total, dataList } = toRefs(data);
 const classHourRef = ref();
 onMounted(()=>{
+  const userInfo = JSON.parse(Cookies.get('userInfo'))
+  data.queryParams.checkId = userInfo.id
   getList()
   getPeopleList("")
+
 })
 
 onUnmounted(()=>{
@@ -142,13 +186,16 @@
 
 const getList = async () => {
   loading.value = true
-  // const res = await getCompany(data.queryParams)
-  // if(res.code == 200){
-  //   data.dataList = res.data.list
-  //   data.total = res.data.total
-  // }else{
-  //   ElMessage.warning(res.message)
-  // }
+  const res = await getAuditList(data.queryParams).catch(error => {
+    loading.value = false
+    return
+  })
+  if(res.code == 200){
+    data.dataList = res.data.list
+    data.total = res.data.total
+  }else{
+    ElMessage.warning(res.message)
+  }
   loading.value = false
 }
 
@@ -161,8 +208,9 @@
   data.queryParams = {
     pageNum: 1,
     pageSize: 10,
-    state: null,
-    userId:null
+    status: null,
+    subscribePersonId:null,
+    checkId:null
   }
   data.userName = ''
   getList()
@@ -178,7 +226,7 @@
         type: 'warning',
       })
       .then( async() => {
-        const res = await delCompany(val.id)
+        const res = await delSubscribe(val.id)
         if(res.code == 200){
           ElMessage.success('数据删除成功')
           await getList()
@@ -190,11 +238,11 @@
 const getPeopleList = async (val)=>{
   let queryParams = {}
   if(val != ""){
-     queryParams = {
+    queryParams = {
       name: val
     }
   }else {
-     queryParams = {
+    queryParams = {
       pageNum: 1,
       pageSize: 10
     }
@@ -208,11 +256,12 @@
 }
 const selectValue =  (val) => {
   if(!val){
-    data.queryParams.userId = null
+    data.queryParams.subscribePersonId = null
   }
   data.peopleList.forEach(item => {
     if(item.name === val){
-      data.queryParams.userId = item.id
+      data.queryParams.subscribePersonId = item.id
+
     }
   })
 }
@@ -258,5 +307,10 @@
     }
   }
 }
-
 </script>
+<style scoped>
+/* 只对申购数量这一列生效 */
+:deep(.subscribe-quantity-cell .cell) {
+  padding: 0 !important; /* 关键:把默认的padding清零,优先级拉满 */
+}
+</style>
diff --git a/src/views/hazardousChemicals/subscribeApplyManage/record/components/editDialog.vue b/src/views/hazardousChemicals/subscribeApplyManage/record/components/editDialog.vue
index c439bd3..04a2fc7 100644
--- a/src/views/hazardousChemicals/subscribeApplyManage/record/components/editDialog.vue
+++ b/src/views/hazardousChemicals/subscribeApplyManage/record/components/editDialog.vue
@@ -11,34 +11,23 @@
       <el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="150px" >
         <el-form-item required label= "危化品列表" >
           <div style="display: flex;width: 100%;margin-top: 5px">
-            <el-table :data="state.form.hazardousTargets" :border="true">
+            <el-table :data="state.form.subscribeHazmats" :border="true">
               <el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
               <el-table-column label="危化品名称" align="center"  >
                 <template #default="{row,$index}">
-                  <el-form-item :prop="'hazardousTargets.' + '[' + $index + ']' + '.name'" >
-                    <span>{{row.name}}</span>
+                  <el-form-item :prop="'subscribeHazmats.' + '[' + $index + ']' + '.hazmatName'" >
+                    <span>{{row.hazmatName}}</span>
                   </el-form-item>
                 </template>
               </el-table-column>
               <el-table-column label="数量" align="center"  >
                 <template #default="{row,$index}">
-                  <el-form-item :prop="'hazardousTargets.' + '[' + $index + ']' + '.num'">
-                    <span>{{row.num}}</span>
+                  <el-form-item :prop="'subscribeHazmats.' + '[' + $index + ']' + '.hazmatCount'">
+                    <span>{{row.hazmatCount}}</span>
                   </el-form-item>
                 </template>
               </el-table-column>
-              <el-table-column label="操作" align="center" class-name="small-padding fixed-width" v-if="title !== '查看'" >
-                <template #default="scope" >
-                  <el-button link type="danger"  @click="handleDelete(scope.row)" >删除</el-button>
-                </template>
-              </el-table-column>
             </el-table>
-            <el-button
-                v-if="title !== '查看'"
-                style="margin-left: 20px"
-                type="primary"
-                @click="addObject"
-            >新增</el-button>
           </div>
         </el-form-item>
         <el-form-item label="申购文件:">
@@ -47,24 +36,18 @@
           </div>
         </el-form-item>
         <el-form-item label="申购人:" >
-          <span>{{state.form.people }}</span>
+          <span>{{state.form.subscribePersonName }}</span>
         </el-form-item>
         <el-form-item label="审批人:" >
-          <span>{{state.form.people }}</span>
+          <span>{{state.form.checkName }}</span>
         </el-form-item>
         <el-form-item label="审批状态:" v-if="title === '查看' ">
-          <span>{{state.form.state == 1 ? '审批通过' : state.form.state == 2 ?'审批驳回': '未审批' }}</span>
+          <span>{{state.form.status == 1 ? '审批通过' : state.form.status == 2 ?'审批驳回': '未审批' }}</span>
         </el-form-item>
-        <el-form-item label="审批意见:" v-if="title === '查看' && state.form.state == 2" style="width: 70%">
-          <el-input v-model="state.form.regest" type="textarea" :rows="5"></el-input>
+        <el-form-item label="审批意见:" v-if="title === '查看' && state.form.status == 2" style="width: 70%">
+          <el-input v-model="state.form.opinion" type="textarea" :rows="5"></el-input>
         </el-form-item>
       </el-form>
-      <template #footer v-if="title !=='查看'">
-        <span class="dialog-footer">
-            <el-button @click="handleClose" size="default">取 消</el-button>
-            <el-button type="primary"  @click="onSubmit" size="default" v-preReClick>确认</el-button>
-        </span>
-      </template>
     </el-dialog>
   </div>
 </template>
@@ -90,7 +73,7 @@
     major: '',
     phone: '',
     code: '',
-    hazardousTargets:[],
+    subscribeHazmats:[],
   },
 })
 
@@ -100,8 +83,6 @@
   state.form = JSON.parse(JSON.stringify(value));
   dialogVisible.value = true;
 }
-
-
 
 const handleClose = () => {
   busRef.value.clearValidate();
@@ -119,23 +100,7 @@
     code: ''
   }
 }
-const addObject = () => {
 
-  state.form.hazardousTargets.push({name:'',num:null})
-}
-const handleDelete = (val) => {
-  state.form.hazardousTargets = state.form.hazardousTargets.filter(item=> item != val)
-}
-const selectValue =  (val) => {
-  if(!val){
-    state.form.userId = null
-  }
-  state.peopleList.forEach(item => {
-    if(item.name === val){
-      state.form.userId  = item.id
-    }
-  })
-}
 
 
 const openFile = async(path)=>{
diff --git a/src/views/hazardousChemicals/subscribeApplyManage/record/index.vue b/src/views/hazardousChemicals/subscribeApplyManage/record/index.vue
index 15f27ae..94f325c 100644
--- a/src/views/hazardousChemicals/subscribeApplyManage/record/index.vue
+++ b/src/views/hazardousChemicals/subscribeApplyManage/record/index.vue
@@ -2,16 +2,16 @@
   <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>-->
-<!--          <el-button-->
-<!--              type="primary"-->
-<!--              plain-->
-<!--              icon="Plus"-->
-<!--              @click="openDialog('add',{})"-->
-<!--          >新增</el-button>-->
-<!--        </el-form-item>-->
+        <el-form-item>
+          <el-button
+              type="primary"
+              plain
+              icon="Plus"
+              @click="openDialog('add',{})"
+          >新增</el-button>
+        </el-form-item>
         <el-form-item label="审批状态:" >
-          <el-select v-model="data.queryParams.state" placeholder="请选择" >
+          <el-select v-model="data.queryParams.status" placeholder="请选择" >
             <el-option
                 v-for="item in data.stateOptions"
                 :key="item.id"
@@ -20,7 +20,28 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="审批人:" prop="userId" >
+        <el-form-item label="申购人:" v-if="data.isAdmin">
+          <el-select
+              clearable
+              v-model="data.userNameS"
+              filterable
+              remote
+              @change="selectValueS"
+              reserve-keyword
+              placeholder="请输入申购人名称"
+              remote-show-suffix
+              :remote-method="getPeopleList"
+              style="width: 100%"
+          >
+            <el-option
+                v-for="item in data.peopleList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.name"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="审批人:" >
           <el-select
               clearable
               v-model="data.userName"
@@ -57,19 +78,57 @@
     <!-- 表格数据 -->
     <el-table v-loading="loading" :data="dataList" :border="true">
       <el-table-column label="序号" type="index" align="center" width="80" />
-      <el-table-column label="申购单号" prop="creditCode" align="center"  />
-      <el-table-column label="危化品名称" prop="code" align="center" />
-      <el-table-column label="申购数量" prop="name" align="center" />
-      <el-table-column label="申购人" prop="major" align="center"  />
-      <el-table-column label="审批人" prop="phone" align="center"/>
-      <el-table-column label="申购文件" prop="phone" align="center">
+      <el-table-column label="申购单号" prop="subscribeNum" align="center"  />
+      <el-table-column label="危化品名称" align="center"  class-name="subscribe-quantity-cell" width="200">
         <template #default="scope">
-          <el-link v-if="scope.row.fileName" style="" type="primary" @click="openFile(scope.row.filePath)">{{scope.row.fileName}}</el-link>
+          <div style="width: 100%; height: 100%;display: flex; flex-direction: column;justify-content: center;align-items: center; ">
+            <div
+                v-for="(item, index) in scope.row.subscribeHazmats"
+                :key="item.id"
+                style="
+              width: 100%;
+              text-align: center;
+              padding: 8px 0;
+              border-bottom: 1px solid #ebeef5;"
+                :style="{
+                borderBottom: index === scope.row.subscribeHazmats.length - 1 ? 'none' : '1px solid #ebeef5'
+                }"
+            >
+              <span>{{ item.hazmatName }}</span>
+            </div>
+          </div>
         </template>
       </el-table-column>
-      <el-table-column label="审批状态" prop="phone" align="center">
+      <el-table-column label="申购数量" align="center" class-name="subscribe-quantity-cell">
         <template #default="scope">
-          <span> {{scope.row.state == 0 ? '未审批' :scope.row.state == 1 ?'审批通过':scope.row.state == 2 ?'审批驳回':''}}</span><span></span>
+          <div style="width: 100%; height: 100%;display: flex; flex-direction: column;justify-content: center;align-items: center; ">
+            <div
+                v-for="(item, index) in scope.row.subscribeHazmats"
+                style="
+            width: 100%;
+            text-align: center;
+            padding: 8px 0;
+            border-bottom: 1px solid #ebeef5;"
+                :style="{
+              borderBottom: index === scope.row.subscribeHazmats.length - 1 ? 'none' : '1px solid #ebeef5'
+            }"
+            >
+              {{ item.hazmatCount }}
+            </div>
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column label="申购人" prop="subscribePersonName" align="center"  />
+      <el-table-column label="审批人" prop="checkName" align="center"/>
+      <el-table-column label="申购文件" prop="fileName" align="center">
+        <template #default="scope">
+          <el-link v-if="scope.row.fileName" style="" type="primary" @click="openFile(scope.row.filePath)">{{scope.row.fileName}}</el-link>
+          <span v-else></span>
+        </template>
+      </el-table-column>
+      <el-table-column label="审批状态" prop="status" align="center">
+        <template #default="scope">
+          <span> {{scope.row.status == 0 ? '未审批' :scope.row.status == 1 ?'审批通过':scope.row.status == 2 ?'审批驳回':''}}</span><span></span>
         </template>
       </el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" >
@@ -98,6 +157,8 @@
 import editDialog from "./components/editDialog.vue";
 import {getUser} from "@/api/hazardousChemicals/user";
 import {renderAsync} from "docx-preview";
+import {delSubscribe, getSubscribeList} from "@/api/hazardousChemicals/subscribeApply";
+import Cookies from "js-cookie";
 const { proxy } = getCurrentInstance();
 const loading = ref(false);
 const dialogRef = ref();
@@ -105,16 +166,12 @@
   queryParams: {
     pageNum: 1,
     pageSize: 10,
-    state: null,
-    userId:null
+    status: null,
+    subscribePersonId:null,
+    checkId:null
   },
   total: 0,
-  dataList: [
-    {
-      id:1,
-      state:2
-    }
-  ],
+  dataList: [],
   stateOptions:[
     {
       id: 0,
@@ -130,7 +187,9 @@
     },
   ],
   peopleList:[],
-  userName:''
+  userName:'',
+  userNameS:'',
+  isAdmin:false
 });
 
 const { queryParams, total, dataList } = toRefs(data);
@@ -138,6 +197,10 @@
 onMounted(()=>{
   getList()
   getPeopleList("")
+  const userInfo= JSON.parse(Cookies.get('userInfo'))
+  if(userInfo.userType === 0){
+    data.isAdmin = true;
+  }
 })
 
 onUnmounted(()=>{
@@ -146,13 +209,18 @@
 
 const getList = async () => {
   loading.value = true
-  // const res = await getCompany(data.queryParams)
-  // if(res.code == 200){
-  //   data.dataList = res.data.list
-  //   data.total = res.data.total
-  // }else{
-  //   ElMessage.warning(res.message)
-  // }
+  getSubscribeList(data.queryParams).then((res)=>{
+    if(res.code == 200){
+      data.dataList = res.data.list
+      data.total = res.data.total
+    }else{
+      ElMessage.warning(res.message)
+    }
+  }).catch(error => {
+    loading.value = false
+
+  })
+
   loading.value = false
 }
 
@@ -165,10 +233,12 @@
   data.queryParams = {
     pageNum: 1,
     pageSize: 10,
-    state: null,
-    userId:null
+    status: null,
+    subscribePersonId:null,
+    checkId:null
   }
   data.userName = ''
+  data.userNameS = ''
   getList()
   getPeopleList("")
 }
@@ -182,7 +252,7 @@
         type: 'warning',
       })
       .then( async() => {
-        const res = await delCompany(val.id)
+        const res = await delSubscribe(val.id)
         if(res.code == 200){
           ElMessage.success('数据删除成功')
           await getList()
@@ -194,11 +264,11 @@
 const getPeopleList = async (val)=>{
   let queryParams = {}
   if(val != ""){
-     queryParams = {
+    queryParams = {
       name: val
     }
   }else {
-     queryParams = {
+    queryParams = {
       pageNum: 1,
       pageSize: 10
     }
@@ -212,14 +282,25 @@
 }
 const selectValue =  (val) => {
   if(!val){
-    data.queryParams.userId = null
+    data.queryParams.checkId = null
   }
   data.peopleList.forEach(item => {
     if(item.name === val){
-      data.queryParams.userId = item.id
+      data.queryParams.checkId = item.id
     }
   })
 }
+const selectValueS =  (val) => {
+  if(!val){
+    data.queryParams.subscribePersonId = null
+  }
+  data.peopleList.forEach(item => {
+    if(item.name === val){
+      data.queryParams.subscribePersonId = item.id
+    }
+  })
+}
+
 const openFile = async(path)=>{
   const ext = path.split('.').pop().toLowerCase();
   if (ext === 'doc' || ext === 'xls' || ext === 'xlsx' || ext === 'ppt' || ext === 'pptx') {
@@ -262,5 +343,10 @@
     }
   }
 }
-
 </script>
+<style scoped>
+/* 只对申购数量这一列生效 */
+:deep(.subscribe-quantity-cell .cell) {
+  padding: 0 !important; /* 关键:把默认的padding清零,优先级拉满 */
+}
+</style>
diff --git a/src/views/hazardousChemicals/subscribeApplyManage/subscribe/components/editDialog.vue b/src/views/hazardousChemicals/subscribeApplyManage/subscribe/components/editDialog.vue
index 0ec353e..0ae5622 100644
--- a/src/views/hazardousChemicals/subscribeApplyManage/subscribe/components/editDialog.vue
+++ b/src/views/hazardousChemicals/subscribeApplyManage/subscribe/components/editDialog.vue
@@ -3,7 +3,7 @@
     <el-dialog
         v-model="dialogVisible"
         :title="title"
-        width="800px"
+        width="850px"
         :before-close="handleClose"
         :close-on-press-escape="false"
         :close-on-click-modal="false"
@@ -11,19 +11,19 @@
       <el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="150px" >
         <el-form-item required label= "危化品列表" >
           <div style="display: flex;width: 100%;margin-top: 5px">
-            <el-table :data="state.form.hazardousTargets" :border="true">
+            <el-table :data="state.form.subscribeHazmats" :border="true">
               <el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
               <el-table-column label="危化品名称" align="center"  >
                 <template #default="{row,$index}">
-                  <el-form-item :prop="'hazardousTargets.' + '[' + $index + ']' + '.name'" :rules="state.formRules.name">
-                    <el-input :disabled="title === '查看'" type="textarea" v-model="row.name" placeholder="请输入危化品名称"></el-input>
+                  <el-form-item :prop="'subscribeHazmats.' + '[' + $index + ']' + '.hazmatName'" :rules="state.formRules.hazmatName">
+                    <el-input type="textarea" :rows="1" v-model="row.hazmatName" placeholder="请输入危化品名称"></el-input>
                   </el-form-item>
                 </template>
               </el-table-column>
               <el-table-column label="数量" align="center"  >
                 <template #default="{row,$index}">
-                  <el-form-item :prop="'hazardousTargets.' + '[' + $index + ']' + '.num'" :rules="state.formRules.num">
-                    <el-input :disabled="title === '查看'"  v-model="row.num" @input="row.num = row.num.replace(/[^0-9]/g,'')" placeholder="请输入数量"></el-input>
+                  <el-form-item :prop="'subscribeHazmats.' + '[' + $index + ']' + '.hazmatCount'" :rules="state.formRules.hazmatCount">
+                    <el-input   v-model="row.hazmatCount" @input="row.hazmatCount = row.hazmatCount.replace(/[^0-9]/g,'')" placeholder="请输入数量"></el-input>
                   </el-form-item>
                 </template>
               </el-table-column>
@@ -41,10 +41,10 @@
             >新增</el-button>
           </div>
         </el-form-item>
-        <el-form-item label="审批人:" prop="userId" >
+        <el-form-item label="审批人:" prop="checkId" >
           <el-select
               clearable
-              v-model="state.userName"
+              v-model="state.form.checkName"
               filterable
               remote
               @change="selectValue"
@@ -62,19 +62,19 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="申购文件:">
-          <el-upload accept=".doc,.docx,.xls,.xlsx" v-if="title!=='查看'" :action="state.uploadUrl" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile)" :on-exceed="showTip" :limit='state.fileLimit' v-model:file-list="state.fileList" :before-upload="picSize" :on-remove="(file)=>handleRemove(file)" >
+        <el-form-item label="申购文件:" prop="filePath">
+          <el-upload accept=".doc,.docx,.xls,.xlsx,.pdf" v-if="title!=='查看'" :action="state.uploadUrl" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile)" :on-exceed="showTip" :limit='state.fileLimit' v-model:file-list="state.fileList" :before-upload="picSize" :on-remove="(file)=>handleRemove(file)" >
             <el-button type="primary">点击上传</el-button>
             <template #tip>
-              <div class="el-upload__tip">支持上传.doc、.docx、.xls、.xlsx格式文档,尺寸小于50M,最多可上传1张</div>
+              <div class="el-upload__tip">支持上传.doc、.docx、.pdf、.xls、.xlsx格式文档,尺寸小于50M,最多可上传1个</div>
             </template>
           </el-upload>
           <div v-else>
             <el-link v-if="state.form.fileName" style="" type="primary" @click="openFile(state.form.filePath)">{{state.form.fileName}}</el-link>
           </div>
         </el-form-item>
-        <el-form-item label="审批意见:" v-if="title === '查看' && state.form.state == 2" style="width: 70%">
-          <el-input v-model="state.form.regest" type="textarea" :rows="2"></el-input>
+        <el-form-item label="审批意见:" v-if="title === '查看' && state.form.status == 2" style="width: 70%">
+          <el-input v-model="state.form.opinion" type="textarea" :rows="5"></el-input>
         </el-form-item>
       </el-form>
       <template #footer v-if="title !=='查看'">
@@ -94,6 +94,7 @@
 import {getUser} from "@/api/hazardousChemicals/user";
 import {getToken} from "@/utils/auth";
 import {renderAsync} from "docx-preview";
+import {addSubscribe, editSubscribe} from "@/api/hazardousChemicals/subscribeApply";
 
 const dialogVisible = ref(false);
 const title = ref("");
@@ -103,19 +104,17 @@
 const state = reactive({
   form: {
     id: '',
-    creditCode: '',
-    name: '',
-    major: '',
-    phone: '',
-    code: '',
-    hazardousTargets:[],
+    checkId: null,
+    checkName:'',
+    filePath: '',
+    fileName: '',
+    subscribeHazmats:[],
   },
   formRules:{
-    creditCode: [{ required: true, message: '请输入企业信用代码', trigger: 'blur' }],
-    major:[{ required: true, message: '请输入负责人', trigger: 'blur' }],
-    type: [{ required: true, message: '请选择企业类型', trigger: 'blur' }],
-    name: [{ required: true, message: '', trigger: 'blur' }],
-    num: [{ required: true, message: '', trigger: 'blur' }],
+    checkId: [{ required: true, message: '请选择审核人', trigger: 'blur' }],
+    filePath:[{ required: true, message: '请上传文件', trigger: 'blur' }],
+    hazmatName: [{ required: true, message: '', trigger: 'blur' }],
+    hazmatCount: [{ required: true, message: '', trigger: 'blur' }],
   },
 
   peopleList:[],
@@ -131,8 +130,15 @@
 const openDialog = async (type, value) => {
   await getPeopleList("")
   title.value = type === 'add' ? '申购申请' : type ==='edit' ? '申购编辑' : '查看' ;
-  if(type === 'edit') {
+  if(type === 'edit' || type === 'view') {
     state.form = JSON.parse(JSON.stringify(value));
+    if(state.form.filePath) {
+      const obj = {
+        url: value.filePath,
+        name: value.fileName
+      }
+      state.fileList = [obj]
+    }
   }
   dialogVisible.value = true;
 }
@@ -140,14 +146,13 @@
 const onSubmit = async () => {
   const valid = await busRef.value.validate();
   if(valid){
-    if(title.value === '新增'){
+    if(title.value === '申购申请'){
       const {id, ...data} = JSON.parse(JSON.stringify(state.form))
-      data.code = data.code.toUpperCase()
-      const res = await addCompany(data)
+      const res = await addSubscribe(data)
       if(res.code === 200){
         ElMessage({
           type: 'success',
-          message: '新增成功'
+          message: '申请成功'
         });
       }else{
         ElMessage.warning(res.message)
@@ -156,10 +161,9 @@
       busRef.value.clearValidate();
       reset();
       dialogVisible.value = false;
-    }else if(title.value === '编辑'){
+    }else if(title.value === '申购编辑'){
       const {...data} = JSON.parse(JSON.stringify(state.form))
-      data.code = data.code.toUpperCase()
-      const res = await editCompany(data)
+      const res = await editSubscribe(data)
       if(res.code === 200){
         ElMessage({
           type: 'success',
@@ -185,36 +189,28 @@
 const reset = () => {
   state.form = {
     id: '',
-    creditCode: '',
-    name: '',
-    major: '',
-    phone: '',
-    code: ''
+    checkId: null,
+    filePath: '',
+    fileName: '',
+    subscribeHazmats:[],
   }
-}
-const requiredDurationEventMetering =(value) =>{
-  let dat =
-      ("" + value)
-          .replace(/[^\d^\.]+/g, "")
-          .replace(/^0+(\d)/, "$1")
-          .replace(/^\./, "0.")
-          .match(/^\d*(\.?\d{0,2})/g)[0] || "";
-  return dat
+  state.fileList = []
 }
 const addObject = () => {
 
-  state.form.hazardousTargets.push({name:'',num:null})
+  state.form.subscribeHazmats.push({hazmatName:'',hazmatCount:null})
 }
 const handleDelete = (val) => {
-  state.form.hazardousTargets = state.form.hazardousTargets.filter(item=> item != val)
+  state.form.subscribeHazmats = state.form.subscribeHazmats.filter(item=> item != val)
 }
 const selectValue =  (val) => {
   if(!val){
-    state.form.userId = null
+    state.form.checkId = null
   }
   state.peopleList.forEach(item => {
     if(item.name === val){
-      state.form.userId  = item.id
+      state.form.checkId  = item.id
+      state.form.checkName = item.name
     }
   })
 }
diff --git a/src/views/hazardousChemicals/subscribeApplyManage/subscribe/index.vue b/src/views/hazardousChemicals/subscribeApplyManage/subscribe/index.vue
index 8539ec7..39ac05c 100644
--- a/src/views/hazardousChemicals/subscribeApplyManage/subscribe/index.vue
+++ b/src/views/hazardousChemicals/subscribeApplyManage/subscribe/index.vue
@@ -11,7 +11,7 @@
           >新增</el-button>
         </el-form-item>
         <el-form-item label="审批状态:" >
-          <el-select v-model="data.queryParams.state" placeholder="请选择" >
+          <el-select v-model="data.queryParams.status" placeholder="请选择" >
             <el-option
                 v-for="item in data.stateOptions"
                 :key="item.id"
@@ -20,7 +20,7 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="审批人:" prop="userId" >
+        <el-form-item label="审批人:" >
           <el-select
               clearable
               v-model="data.userName"
@@ -57,25 +57,63 @@
     <!-- 表格数据 -->
     <el-table v-loading="loading" :data="dataList" :border="true">
       <el-table-column label="序号" type="index" align="center" width="80" />
-      <el-table-column label="申购单号" prop="creditCode" align="center"  />
-      <el-table-column label="危化品名称" prop="code" align="center" />
-      <el-table-column label="申购数量" prop="name" align="center" />
-      <el-table-column label="申购人" prop="major" align="center"  />
-      <el-table-column label="审批人" prop="phone" align="center"/>
-      <el-table-column label="申购文件" prop="phone" align="center">
+      <el-table-column label="申购单号" prop="subscribeNum" align="center"  />
+      <el-table-column label="危化品名称" align="center"  class-name="subscribe-quantity-cell" width="200">
         <template #default="scope">
-          <el-link v-if="scope.row.fileName" style="" type="primary" @click="openFile(scope.row.filePath)">{{scope.row.fileName}}</el-link>
+          <div style="width: 100%; height: 100%;display: flex; flex-direction: column;justify-content: center;align-items: center; ">
+            <div
+              v-for="(item, index) in scope.row.subscribeHazmats"
+              :key="item.id"
+              style="
+              width: 100%;
+              text-align: center;
+              padding: 8px 0;
+              border-bottom: 1px solid #ebeef5;"
+              :style="{
+                borderBottom: index === scope.row.subscribeHazmats.length - 1 ? 'none' : '1px solid #ebeef5'
+                }"
+            >
+              <span>{{ item.hazmatName }}</span>
+            </div>
+          </div>
         </template>
       </el-table-column>
-      <el-table-column label="审批状态" prop="phone" align="center">
+      <el-table-column label="申购数量" align="center" class-name="subscribe-quantity-cell">
+      <template #default="scope">
+        <div style="width: 100%; height: 100%;display: flex; flex-direction: column;justify-content: center;align-items: center; ">
+          <div
+            v-for="(item, index) in scope.row.subscribeHazmats"
+            style="
+            width: 100%;
+            text-align: center;
+            padding: 8px 0;
+            border-bottom: 1px solid #ebeef5;"
+            :style="{
+              borderBottom: index === scope.row.subscribeHazmats.length - 1 ? 'none' : '1px solid #ebeef5'
+            }"
+          >
+            {{ item.hazmatCount }}
+          </div>
+        </div>
+      </template>
+      </el-table-column>
+      <el-table-column label="申购人" prop="subscribePersonName" align="center"  />
+      <el-table-column label="审批人" prop="checkName" align="center"/>
+      <el-table-column label="申购文件" prop="fileName" align="center">
         <template #default="scope">
-          <span> {{scope.row.state == 0 ? '未审批' :scope.row.state == 1 ?'审批通过':scope.row.state == 2 ?'审批驳回':''}}</span><span></span>
+          <el-link v-if="scope.row.fileName" style="" type="primary" @click="openFile(scope.row.filePath)">{{scope.row.fileName}}</el-link>
+          <span v-else></span>
+        </template>
+      </el-table-column>
+      <el-table-column label="审批状态" prop="status" align="center">
+        <template #default="scope">
+          <span> {{scope.row.status == 0 ? '未审批' :scope.row.status == 1 ?'审批通过':scope.row.status == 2 ?'审批驳回':''}}</span><span></span>
         </template>
       </el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" >
         <template #default="scope">
-          <el-button v-if="scope.row.state == 0" link type="primary" @click="openDialog('edit',scope.row)">编辑</el-button>
-          <el-button v-if="scope.row.state == 0" link type="danger" @click="handleDelete(scope.row)">删除</el-button>
+          <el-button v-if="scope.row.status == 0" link type="primary" @click="openDialog('edit',scope.row)">编辑</el-button>
+          <el-button v-if="scope.row.status == 0" link type="danger" @click="handleDelete(scope.row)">删除</el-button>
           <el-button link type="primary" @click="openDialog('view',scope.row)">查看</el-button>
         </template>
       </el-table-column>
@@ -100,6 +138,7 @@
 import editDialog from "./components/editDialog.vue";
 import {getUser} from "@/api/hazardousChemicals/user";
 import {renderAsync} from "docx-preview";
+import {delSubscribe, getSubscribeList} from "@/api/hazardousChemicals/subscribeApply";
 const { proxy } = getCurrentInstance();
 const loading = ref(false);
 const dialogRef = ref();
@@ -107,8 +146,9 @@
   queryParams: {
     pageNum: 1,
     pageSize: 10,
-    state: null,
-    userId:null
+    status: null,
+    subscribePersonId:null,
+    checkId:null
   },
   total: 0,
   dataList: [],
@@ -143,13 +183,16 @@
 
 const getList = async () => {
   loading.value = true
-  // const res = await getCompany(data.queryParams)
-  // if(res.code == 200){
-  //   data.dataList = res.data.list
-  //   data.total = res.data.total
-  // }else{
-  //   ElMessage.warning(res.message)
-  // }
+  const res = await getSubscribeList(data.queryParams).catch(error => {
+    loading.value = false
+    return
+  })
+  if(res.code == 200){
+    data.dataList = res.data.list
+    data.total = res.data.total
+  }else{
+    ElMessage.warning(res.message)
+  }
   loading.value = false
 }
 
@@ -162,8 +205,9 @@
   data.queryParams = {
     pageNum: 1,
     pageSize: 10,
-    state: null,
-    userId:null
+    status: null,
+    subscribePersonId:null,
+    checkId:null
   }
   data.userName = ''
   getList()
@@ -179,7 +223,7 @@
         type: 'warning',
       })
       .then( async() => {
-        const res = await delCompany(val.id)
+        const res = await delSubscribe(val.id)
         if(res.code == 200){
           ElMessage.success('数据删除成功')
           await getList()
@@ -209,11 +253,11 @@
 }
 const selectValue =  (val) => {
   if(!val){
-    data.queryParams.userId = null
+    data.queryParams.checkId = null
   }
   data.peopleList.forEach(item => {
     if(item.name === val){
-      data.queryParams.userId = item.id
+      data.queryParams.checkId = item.id
     }
   })
 }
@@ -259,5 +303,10 @@
     }
   }
 }
-
 </script>
+<style scoped>
+/* 只对申购数量这一列生效 */
+:deep(.subscribe-quantity-cell .cell) {
+  padding: 0 !important; /* 关键:把默认的padding清零,优先级拉满 */
+}
+</style>
diff --git a/src/views/hazardousChemicals/systemManage/warehouse/components/cupboard.vue b/src/views/hazardousChemicals/systemManage/warehouse/components/cupboard.vue
index ff92737..fd431e1 100644
--- a/src/views/hazardousChemicals/systemManage/warehouse/components/cupboard.vue
+++ b/src/views/hazardousChemicals/systemManage/warehouse/components/cupboard.vue
@@ -9,8 +9,8 @@
         :close-on-click-modal="false"
     >
       <el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="150px" >
-        <el-form-item label="存储柜名:" prop="cupboardName" >
-          <el-input v-model.trim="state.form.cupboardName" placeholder="请输入存储柜名"></el-input>
+        <el-form-item label="副柜名称:" prop="cupboardName" >
+          <el-input v-model.trim="state.form.cupboardName" placeholder="请输入副柜名称"></el-input>
         </el-form-item>
         <el-form-item label="描述:" prop="mess" >
           <el-input type="textarea" v-model.trim="state.form.mess" placeholder="请输入描述"></el-input>
@@ -47,14 +47,14 @@
 
   },
   formRules:{
-    cupboardName: [{ required: true, trigger: "blur", message: '请输入存储柜名' }],
+    cupboardName: [{ required: true, trigger: "blur", message: '请输入副柜名称' }],
   },
 })
 
 const warehouseId = ref(null)
 const openDialog = async (type, value) => {
   state.form.warehouseId = value.id
-  title.value = type === 'add' ? '新增存储柜' : type ==='edit' ? '编辑存储柜':'' ;
+  title.value = type === 'add' ? '新增副柜' : type ==='edit' ? '编辑副柜':'' ;
   if(type === 'edit' ) {
     state.form = JSON.parse(JSON.stringify(value));
   }
@@ -64,7 +64,7 @@
 const onSubmit = async () => {
   const valid = await busRef.value.validate();
   if(valid){
-    if(title.value === '新增存储柜'){
+    if(title.value === '新增副柜'){
       const {id, ...data} = JSON.parse(JSON.stringify(state.form))
       const res = await addCupboard(data)
       if(res.code === 200){
@@ -79,7 +79,7 @@
       busRef.value.clearValidate();
       reset();
       dialogVisible.value = false;
-    }else if(title.value === '编辑存储柜'){
+    }else if(title.value === '编辑副柜'){
       const {createBy,createTime,delFlag,...data} = JSON.parse(JSON.stringify(state.form))
       const res = await editCupboard(data)
       if(res.code === 200){
diff --git a/src/views/hazardousChemicals/systemManage/warehouse/components/warehouseDialog.vue b/src/views/hazardousChemicals/systemManage/warehouse/components/warehouseDialog.vue
index 89cb169..ba23518 100644
--- a/src/views/hazardousChemicals/systemManage/warehouse/components/warehouseDialog.vue
+++ b/src/views/hazardousChemicals/systemManage/warehouse/components/warehouseDialog.vue
@@ -9,8 +9,8 @@
         :close-on-click-modal="false"
     >
       <el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="150px" >
-        <el-form-item label="仓库名称:" prop="name" >
-          <el-input v-model.trim="state.form.name" placeholder="请输入仓库名称"></el-input>
+        <el-form-item label="主柜名称:" prop="name" >
+          <el-input v-model.trim="state.form.name" placeholder="请输入主柜名称"></el-input>
         </el-form-item>
         <el-form-item label="描述:" prop="remark" >
           <el-input type="textarea" v-model.trim="state.form.remark" placeholder="请输入描述"></el-input>
@@ -41,16 +41,16 @@
 const startPhone = ref('');
 const validateName = (rule, value, callback)=>{
   if(value === ''){
-    callback(new Error('请输入仓库名称'))
-  }else if(title.value === '编辑仓库' && value === startUsername.value){
+    callback(new Error('请输入主柜名称'))
+  }else if(title.value === '编辑主柜' && value === startUsername.value){
     callback()
   }else{
     let param = {}
-    if(title.value === '新增仓库') {
+    if(title.value === '新增主柜') {
       param = {
         name:value
       }
-    }else if(title.value === '编辑仓库'){
+    }else if(title.value === '编辑主柜'){
       param = {
         name:value,
         id: state.form.id
@@ -58,7 +58,7 @@
     }
     checkName(param).then((res)=>{
       if(res.data == false){
-        callback(new Error('仓库名称已被占用,请更换名称'))
+        callback(new Error('主柜名称已被占用,请更换名称'))
       }else{
         callback()
       }
@@ -80,7 +80,7 @@
 
 const openDialog = async (type, value) => {
 
-  title.value = type === 'add' ? '新增仓库' : type ==='edit' ? '编辑仓库':'' ;
+  title.value = type === 'add' ? '新增主柜' : type ==='edit' ? '编辑主柜':'' ;
   if(type === 'edit' ) {
     state.form = JSON.parse(JSON.stringify(value));
     startUsername.value = value.username
@@ -91,7 +91,7 @@
 const onSubmit = async () => {
   const valid = await busRef.value.validate();
   if(valid){
-    if(title.value === '新增仓库'){
+    if(title.value === '新增主柜'){
       const {id, ...data} = JSON.parse(JSON.stringify(state.form))
       const res = await addWarehouse(data)
       if(res.code === 200){
@@ -106,7 +106,7 @@
       busRef.value.clearValidate();
       reset();
       dialogVisible.value = false;
-    }else if(title.value === '编辑仓库'){
+    }else if(title.value === '编辑主柜'){
       const {...data} = JSON.parse(JSON.stringify(state.form))
       const res = await editWarehouse(data)
       if(res.code === 200){
diff --git a/src/views/hazardousChemicals/systemManage/warehouse/index.vue b/src/views/hazardousChemicals/systemManage/warehouse/index.vue
index b887376..721f444 100644
--- a/src/views/hazardousChemicals/systemManage/warehouse/index.vue
+++ b/src/views/hazardousChemicals/systemManage/warehouse/index.vue
@@ -10,8 +10,8 @@
               @click="openDialog('add',{})"
           >新增</el-button>
         </el-form-item>
-        <el-form-item label="仓库名称:" >
-          <el-input v-model="data.queryParams.name" placeholder="请输仓库名称"></el-input>
+        <el-form-item label="主柜名称:" >
+          <el-input v-model="data.queryParams.name" placeholder="请输入主柜名称"></el-input>
         </el-form-item>
         <el-form-item >
           <el-button
@@ -31,7 +31,7 @@
       <el-table-column type="expand">
         <template #default="props">
           <el-table :data="props.row.warehouseCupboards" style="width: 90%;margin-left: 5%" :row-key="getRowKeys"  border>
-            <el-table-column label="存储柜名" prop="cupboardName" align="center" />
+            <el-table-column label="副柜名称" prop="cupboardName" align="center" />
             <el-table-column label="描述" prop="mess" align="center" />
             <el-table-column label="操作" show-overflow-tooltip width="150" >
               <template #default="scope">
@@ -43,11 +43,11 @@
         </template>
       </el-table-column>
       <el-table-column label="序号" type="index" align="center" width="80" />
-      <el-table-column label="仓库名称" prop="name" align="center"  />
+      <el-table-column label="主柜名称" prop="name" align="center"  />
       <el-table-column label="描述" prop="remark" align="center" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" >
         <template #default="scope">
-          <el-button link type="primary" @click="addCupboard('add',scope.row)">新增存储柜</el-button>
+          <el-button link type="primary" @click="addCupboard('add',scope.row)">新增副柜</el-button>
           <el-button link type="primary" @click="openDialog('edit',scope.row)">编辑</el-button>
           <el-button link type="danger" @click="handleDelete(scope.row)">删除</el-button>
         </template>
diff --git a/src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/components/detail.vue b/src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/components/detail.vue
new file mode 100644
index 0000000..b6b0fc6
--- /dev/null
+++ b/src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/components/detail.vue
@@ -0,0 +1,331 @@
+<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" :cell-style="cellStyle">
+      <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>{{scope.row.remaining}}{{scope.row.hazmatBasic.unit}}</span>
+
+        </template>
+      </el-table-column>
+      <el-table-column label="主柜" prop="warehouseName" align="center" />
+      <el-table-column label="副柜" prop="cupboardName" align="center" width="120" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180" >
+        <template #default="scope">
+<!--          <el-button link type="primary" v-if="scope.row.state ===0 || scope.row.state === 1" @click="editNum(scope.row)">零头修改</el-button>-->
+          <el-button link type="primary" @click="viewFlow(scope.row)">取用记录</el-button>
+<!--          <el-button link type="danger" v-if="scope.row.state === 0 || scope.row.state === 1|| scope.row.state === 2" @click="disCard(scope.row)">标签作废</el-button>-->
+<!--          <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>
+    <el-dialog
+        v-model="dialogVisible"
+        width="650px"
+        :before-close="handleClose"
+        :close-on-press-escape="false"
+        :close-on-click-modal="false"
+    >
+      <flow-deail ref="flowRef"></flow-deail>
+    </el-dialog>
+    <el-dialog
+        v-model="editNumDialog"
+        width="650px"
+        title="余量修改"
+        :before-close="handleCloseNum"
+        :close-on-press-escape="false"
+        :close-on-click-modal="false"
+    >
+      <el-form :model="data.form" size="default" ref="busRef" :rules="data.formRules" label-width="150px" >
+        <el-form-item label="在库余量:" prop="remaining" >
+          <el-input v-model.trim="data.form.remaining" @input="requiredDurationEventMetering($event)"  placeholder="请输入余量"></el-input>
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <span class="dialog-footer">
+            <el-button @click="handleCloseNum" size="default">取 消</el-button>
+            <el-button type="primary"  @click="onSubmitNum" size="default" v-preReClick>确认</el-button>
+        </span>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script setup>
+import {nextTick, onMounted, reactive, ref} from "vue";
+import {useRoute, useRouter} from "vue-router";
+import flowDeail from '../../../../components/flowDetail.vue'
+import {ElMessage, ElMessageBox} from "element-plus";
+import {
+  changeRawRemaining,
+  delRawRecord,
+  disCardRaw,
+  getRawDetail,
+  getWhRawDetail
+} from "@/api/hazardousChemicals/rawRecord";
+import viewQRcode from '@/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/viewQR.vue'
+import Cookies from "js-cookie";
+const route = useRoute()
+const router = useRouter();
+const dialogRef = ref();
+const dialogVisible = ref(false)
+const editNumDialog = 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: '待入库'
+    },
+
+  ],
+  form: {
+    id: '',
+    remaining: ''
+  },
+  formRules: {
+    remaining: [{ required: true, trigger: "blur", message: '请输入余量' }],
+  }
+});
+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: "/warehouseManageMenu/orderWarehouse", query: { val: v } });
+}
+const viewQR = (val) => {
+  dialogRef.value.openDialog('raw',val)
+}
+const handleClose = () => {
+  dialogVisible.value = false
+}
+const disCard = async (val) => {
+  ElMessageBox.confirm(
+      '确定作废该标签?',
+      '提示',
+      {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+      .then( async() => {
+        const res = await disCardRaw(val.id)
+        if(res.code == 200){
+          ElMessage.success('操作成功')
+          await getList()
+        }else{
+          ElMessage.warning(res.message)
+        }
+      })
+
+
+}
+const viewFlow = (val) => {
+  dialogVisible.value = true
+  nextTick(() => {
+    flowRef.value.openDialog('raw',val)
+  })
+}
+
+const cellStyle = ({ row, column,rowIndex, columnIndex }) => {
+  let arr = []
+  if (data.dataList !== null) {
+    data.dataList.filter((item, index) => {
+      arr.push(item.basicId)
+    })
+  }
+  for (let i = 0; i <= arr.length; i++) {
+    if (arr[i] == row.basicId) {
+      if(row.state === 3 && row.remaining < row.hazmatBasic.metering){
+        if (columnIndex === 11 || columnIndex === 10){
+          return { color:' red' }
+        }
+      }else if(row.remaining < row.hazmatBasic.metering){
+        if (columnIndex === 11 || columnIndex === 10){
+          return { color: '#ff9900' }
+        }
+      }
+    }
+  }
+};
+const chooseItem = ref()
+const editNum = (val) => {
+  chooseItem.value = val
+  data.form.id = val.id
+  data.form.remaining = val.remaining
+  editNumDialog.value = true
+
+}
+const handleCloseNum = () => {
+  data.form = {
+    id: '',
+    remaining: ''
+  }
+  chooseItem.value = {}
+  editNumDialog.value = false
+}
+
+const onSubmitNum = () => {
+  if(chooseItem.value.remaining < data.form.remaining){
+    ElMessage.warning('修改值不能大于等于在库余量')
+    return;
+  }
+  ElMessageBox.confirm(
+      '确定修改此条数据的余量?',
+      '提示',
+      {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+      .then( async() => {
+        const res = await changeRawRemaining(data.form)
+        if(res.code == 200){
+          ElMessage.success('数据修改成功')
+          editNumDialog.value = false;
+          await getList()
+        }else{
+          ElMessage.warning(res.message)
+        }
+      })
+
+
+}
+const requiredDurationEventMetering =(value) =>{
+  let dat =
+      ("" + value) // 第一步:转成字符串
+          .replace(/[^\d^\.]+/g, "") // 第二步:把不是数字,不是小数点的过滤掉
+          .replace(/^0+(\d)/, "$1") // 第三步:第一位0开头,0后面为数字,则过滤掉,取后面的数字
+          .replace(/^\./, "0.") // 第四步:如果输入的第一位为小数点,则替换成 0. 实现自动补全
+          .match(/^\d*(\.?\d{0,2})/g)[0] || ""; // 第五步:最终匹配得到结果 以数字开头,只有一个小数点,而且小数点后面只能有0到2位小数
+  data.form.remaining = dat
+}
+</script>
+
+<style scoped lang="scss">
+
+</style>
diff --git a/src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/components/orderDialog.vue b/src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/components/orderDialog.vue
new file mode 100644
index 0000000..1f5abf4
--- /dev/null
+++ b/src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/components/orderDialog.vue
@@ -0,0 +1,301 @@
+<template>
+  <div class="notice">
+    <el-dialog
+        v-model="dialogVisible"
+        :title="title"
+        width="850px"
+        :before-close="handleClose"
+        :close-on-press-escape="false"
+        :close-on-click-modal="false"
+    >
+      <el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="150px" >
+        <el-form-item required label= "申购订单列表" >
+          <el-select
+              clearable
+              v-model="state.orderName"
+              filterable
+              remote
+              reserve-keyword
+              placeholder="请输入申购订单"
+              remote-show-suffix
+              :remote-method="getOrderList"
+              style="width: 50%;margin-bottom:5px"
+              @change="selectValue"
+          >
+            <el-option
+                v-for="item in state.orderList"
+                :key="item.id"
+                :label="item.subscribeNum"
+                :value="item.subscribeNum"
+            />
+          </el-select>
+          <div style="display: flex;width: 100%;margin-top: 5px">
+            <el-table :data="state.form.subscribeHazmats" :border="true">
+              <el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
+              <el-table-column label="危化品名称" align="center"  >
+                <template #default="{row,$index}">
+                  <el-form-item :prop="'subscribeHazmats.' + '[' + $index + ']' + '.hazmatName'" :rules="state.formRules.hazmatName">
+                    <el-input type="textarea" :rows="1" v-model="row.hazmatName" placeholder="请输入危化品名称"></el-input>
+                  </el-form-item>
+                </template>
+              </el-table-column>
+              <el-table-column label="数量" align="center"  >
+                <template #default="{row,$index}">
+                  <el-form-item :prop="'subscribeHazmats.' + '[' + $index + ']' + '.hazmatCount'" :rules="state.formRules.hazmatCount">
+                    <el-input   v-model="row.hazmatCount" @input="row.hazmatCount = row.hazmatCount.replace(/[^0-9]/g,'')" placeholder="请输入数量"></el-input>
+                  </el-form-item>
+                </template>
+              </el-table-column>
+            </el-table>
+          </div>
+        </el-form-item>
+        <el-form-item label="主柜:" prop="warehouseName" >
+          <el-select
+              clearable
+              v-model="state.form.warehouseName"
+              filterable
+              remote
+              reserve-keyword
+              placeholder="请输入主柜"
+              remote-show-suffix
+              :remote-method="getWareHouseList"
+              style="width: 50%"
+              @change="selectWareValue"
+          >
+            <el-option
+                v-for="item in state.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="state.form.cupboardId"
+              placeholder="请选择副柜"
+              style="width: 50%"
+          >
+            <el-option
+
+                v-for="item in state.cupList"
+                :key="item.id"
+                :label="item.cupboardName"
+                :value="item.id"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="批号:" prop="batchNo" >
+          <el-input v-model.trim="state.form.batchNo"  style="width: 50%" placeholder="请输入批号"></el-input>
+        </el-form-item>
+      </el-form>
+      <template #footer v-if="title !=='查看'">
+        <span class="dialog-footer">
+            <el-button @click="handleClose" size="default">取 消</el-button>
+            <el-button type="primary"  @click="onSubmit" size="default" v-preReClick>确认</el-button>
+        </span>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+<script setup>
+import {reactive, ref, toRefs} from 'vue'
+import {ElMessage, ElMessageBox} from "element-plus";
+import {addCompany, checkName, distributeCompany, editCompany} from "@/api/hazardousChemicals/company";
+import {verifyPhone, verifyPwd} from "@/utils/validate";
+import {getUser} from "@/api/hazardousChemicals/user";
+import {getToken} from "@/utils/auth";
+import {renderAsync} from "docx-preview";
+import {addSubscribe, editSubscribe, getSubscribeList} from "@/api/hazardousChemicals/subscribeApply";
+import {getCupById, getWarehouse} from "@/api/hazardousChemicals/warehouse";
+import moment from "moment";
+
+const dialogVisible = ref(false);
+const title = ref("");
+const busRef = ref();
+const length = ref()
+const emit = defineEmits(["getList"]);
+const state = reactive({
+  form: {
+    id: '',
+    checkId: null,
+    checkName:'',
+    subscribeHazmats:[],
+  },
+  orderList:[],
+  wareHouseList: [],
+  cupList: [],
+  formRules:{
+    checkId: [{ required: true, message: '请选择审核人', trigger: 'blur' }],
+    filePath:[{ required: true, message: '请上传文件', trigger: 'blur' }],
+    hazmatName: [{ required: true, message: '', trigger: 'blur' }],
+    hazmatCount: [{ required: true, message: '', trigger: 'blur' }],
+  },
+
+})
+
+
+const openDialog = async (type, value) => {
+  await getOrderList("")
+  await getWareHouseList("")
+  title.value = type === 'add' ? '申购申请' : type ==='edit' ? '申购编辑' : '查看' ;
+  if(type === 'edit' || type === 'view') {
+    state.form = JSON.parse(JSON.stringify(value));
+    if(state.form.filePath) {
+      const obj = {
+        url: value.filePath,
+        name: value.fileName
+      }
+      state.fileList = [obj]
+    }
+  }
+  state.form.batchNo = moment(new Date()).format("YYYYMMDD")
+  dialogVisible.value = true;
+}
+
+const onSubmit = async () => {
+  const valid = await busRef.value.validate();
+  if(valid){
+    if(title.value === '申购申请'){
+      const {id, ...data} = JSON.parse(JSON.stringify(state.form))
+      const res = await addSubscribe(data)
+      if(res.code === 200){
+        ElMessage({
+          type: 'success',
+          message: '申请成功'
+        });
+      }else{
+        ElMessage.warning(res.message)
+      }
+      emit("getList")
+      busRef.value.clearValidate();
+      reset();
+      dialogVisible.value = false;
+    }else if(title.value === '申购编辑'){
+      const {...data} = JSON.parse(JSON.stringify(state.form))
+      const res = await editSubscribe(data)
+      if(res.code === 200){
+        ElMessage({
+          type: 'success',
+          message: '编辑成功'
+        });
+      }else{
+        ElMessage.warning(res.message)
+      }
+      emit("getList")
+      busRef.value.clearValidate();
+      reset();
+      dialogVisible.value = false;
+    }
+  }
+}
+
+const handleClose = () => {
+  busRef.value.clearValidate();
+  reset();
+  dialogVisible.value = false;
+  emit("getList")
+}
+const reset = () => {
+  state.form = {
+    id: '',
+    checkId: null,
+    filePath: '',
+    fileName: '',
+    subscribeHazmats:[],
+  }
+}
+const selectValue = (val) => {
+  state.form.orderId = null
+  if(!val){
+    state.form.subscribeHazmats = []
+    return
+  }
+  state.orderList.forEach(item => {
+    if(item.subscribeNum === val){
+      state.form.orderId = item.id
+      state.form.subscribeHazmats = item.subscribeHazmats
+    }
+  })
+}
+const getOrderList = async (val) => {
+  let param = {}
+  if(val != ""){
+    param = {
+      name: val,
+      status: 1
+    }
+  }else {
+    param = {
+      pageNum: 1,
+      pageSize: 10,
+      status: 1
+    }
+  }
+  const res = await getSubscribeList(param)
+  if(res.code == 200){
+    state.orderList = res.data.list
+  }else{
+    ElMessage.warning(res.message)
+  }
+}
+
+const selectWareValue = (val) => {
+  state.form.cupboardId = null
+  state.wareHouseList.forEach(item => {
+    if(item.name === val){
+      state.form.warehouseId = item.id
+      getCupList(item.id)
+    }
+  })
+}
+const getCupList = async (val) => {
+  const res = await getCupById(val)
+  if(res.code == 200) {
+    state.cupList = res.data
+  }else {
+    ElMessage.warning(res.message)
+  }
+}
+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){
+    state.wareHouseList = res.data.list
+  }else{
+    ElMessage.warning(res.message)
+  }
+}
+
+
+
+defineExpose({
+  openDialog
+});
+
+
+</script>
+
+<style scoped lang="scss">
+.notice{
+  :deep(.el-form .el-form-item__label) {
+    font-size: 15px;
+  }
+  .file {
+    display: flex;
+    flex-direction: column;
+    align-items: flex-start;
+  }
+}
+</style>
diff --git a/src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/index.vue b/src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/index.vue
new file mode 100644
index 0000000..1f139ab
--- /dev/null
+++ b/src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/index.vue
@@ -0,0 +1,334 @@
+<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>
+          <el-button
+              type="primary"
+              plain
+              icon="Plus"
+              @click="openDialog('add',{})"
+          >订单入库</el-button>
+        </el-form-item>
+        <el-form-item label="申购单号:" >
+          <el-input v-model="data.queryParams.params.name" 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
+              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="loading" :data="dataList" :border="true">
+      <el-table-column label="序号" type="index" align="center" width="80" />
+      <el-table-column label="申购单号" prop="hazmatBasicNo" align="center"  />
+      <el-table-column label="危化品名称" prop="hazmatBasic.productSn" align="center" class-name="subscribe-quantity-cell">
+        <template #default="scope">
+          <div style="width: 100%; height: 100%;display: flex; flex-direction: column;justify-content: center;align-items: center; ">
+            <div
+                v-for="(item, index) in scope.row.subscribeHazmats"
+                :key="item.id"
+                style="
+              width: 100%;
+              text-align: center;
+              padding: 8px 0;
+              border-bottom: 1px solid #ebeef5;"
+                :style="{
+                borderBottom: index === scope.row.subscribeHazmats.length - 1 ? 'none' : '1px solid #ebeef5'
+                }"
+            >
+              <span>{{ item.hazmatName }}</span>
+            </div>
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column label="入库数量" prop="num" align="center" class-name="subscribe-quantity-cell">
+        <template #default="scope">
+          <div style="width: 100%; height: 100%;display: flex; flex-direction: column;justify-content: center;align-items: center; ">
+            <div
+                v-for="(item, index) in scope.row.subscribeHazmats"
+                style="
+            width: 100%;
+            text-align: center;
+            padding: 8px 0;
+            border-bottom: 1px solid #ebeef5;"
+                :style="{
+              borderBottom: index === scope.row.subscribeHazmats.length - 1 ? 'none' : '1px solid #ebeef5'
+            }"
+            >
+              {{ item.hazmatCount }}
+            </div>
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column label="主柜" prop="warehouseName" align="center" >
+        <template #default="scope">
+          <span>{{scope.row.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="操作" 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>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+        v-show="total > 0"
+        :total="total"
+        v-model:page="queryParams.pageNum"
+        v-model:limit="queryParams.pageSize"
+        @pagination="getList"
+    />
+
+    <orderDialog ref="dialogRef" @getList=getList></orderDialog>
+  </div>
+</template>
+
+<script setup>
+import {getCurrentInstance, onMounted, onUnmounted, reactive, ref, toRefs} from "vue";
+import {ElMessage, ElMessageBox} from "element-plus";
+import orderDialog from './components/orderDialog.vue'
+import {delRawRecord, doEntryRaw, getRawRecord, getRawWarehouseRecord} from "@/api/hazardousChemicals/rawRecord";
+import {useRoute, useRouter} from "vue-router";
+import {getCupById, getWarehouse} from "@/api/hazardousChemicals/warehouse";
+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,
+    params :{
+      name: '',
+      productSn: '',
+      cupboardId: null,
+      warehouseId: null
+    }
+  },
+  total: 0,
+  dataList: [],
+  wareHouseList: [],
+  cupList: []
+
+});
+
+const { queryParams, total, dataList } = toRefs(data);
+const classHourRef = ref();
+onMounted(()=>{
+  getList()
+  getWareHouseList("")
+})
+
+const getList = async () => {
+  // loading.value = true
+  // const res = await getRawRecord(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 openDialog = (type, value) => {
+  dialogRef.value.openDialog(type, value);
+}
+
+/** 重置新增的表单以及其他数据  */
+function reset() {
+  data.queryParams = {
+    pageNum: 1,
+    pageSize: 10,
+    params :{
+      name: '',
+      productSn: '',
+      cupboardId: null,
+      warehouseId: null
+    }
+  }
+  data.cupList = []
+  getList()
+  getWareHouseList("")
+
+}
+const handleDelete = (val) => {
+  ElMessageBox.confirm(
+      '确定删除此条数据?',
+      '提示',
+      {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+      .then( async() => {
+        const res = await delRawRecord(val.id)
+        if(res.code == 200){
+          ElMessage.success('数据删除成功')
+          await getList()
+        }else{
+          ElMessage.warning(res.message)
+        }
+      })
+}
+
+const doEntry = (val) => {
+  ElMessageBox.confirm(
+      '确定入库该危化品?',
+      '提示',
+      {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+      .then( async() => {
+        const res = await doEntryRaw(val.id)
+        if(res.code == 200){
+          ElMessage.success('入库成功')
+          await getList()
+        }else{
+          ElMessage.warning(res.message)
+        }
+      })
+}
+
+const entryItem = ref()
+const printCode = (val) => {
+  console.log("val",val)
+  entryItem.value = val
+  dialogVisible.value = true
+
+  // codeRef.value.openDialog('raw',val);
+
+}
+const openPrint = (type) => {
+  if(type === 'one'){
+    codeRef.value.openDialog('raw',entryItem.value);
+  }else {
+    codeMoreRef.value.openDialog('raw',entryItem.value);
+  }
+
+}
+const toDetail = (val) => {
+  const obj = {
+    pageNum: data.queryParams.pageNum,
+    pageSize: data.queryParams.pageSize,
+    entryId: val.id,
+  }
+  const v = JSON.stringify(obj)
+  router.push({ path: "/whRawDetailNew", 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
+}
+
+defineExpose({
+  getList
+});
+
+</script>
+<style scoped>
+/* 只对申购数量这一列生效 */
+:deep(.subscribe-quantity-cell .cell) {
+  padding: 0 !important; /* 关键:把默认的padding清零,优先级拉满 */
+}
+</style>
diff --git a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/addProDialog.vue b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/addProDialog.vue
index 31c6a3d..367c56b 100644
--- a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/addProDialog.vue
+++ b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/addProDialog.vue
@@ -30,14 +30,14 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="仓库:" prop="warehouseName" >
+        <el-form-item label="主柜:" prop="warehouseName" >
           <el-select
               clearable
               v-model="state.form.warehouseName"
               filterable
               remote
               reserve-keyword
-              placeholder="请输入所入仓库"
+              placeholder="请输入所入主柜"
               remote-show-suffix
               :remote-method="getWareHouseList"
               style="width: 100%"
@@ -51,10 +51,10 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="存储柜:" prop="cupboardId" >
+        <el-form-item label="副柜:" prop="cupboardId" >
           <el-select
               v-model="state.form.cupboardId"
-              placeholder="请选择存储柜"
+              placeholder="请选择副柜"
               style="width: 100%"
           >
             <el-option
@@ -128,7 +128,7 @@
     num: [{ required: true, trigger: "blur", validator: validateNum }],
     warehouseName: [{ required: true, trigger: "blur", message: '请选择入库仓库' }],
     basicName: [{ required: true, trigger: "blur", message: '请选择入库成品' }],
-    cupboardId: [{ required: true, trigger: "blur", message: '请选择存储柜' }]
+    cupboardId: [{ required: true, trigger: "blur", message: '请选择副柜' }]
     // batchNo: [{ required: true, trigger: "blur", message: '请输入批号' }]
   },
   proList: [],
diff --git a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/addRawDialog.vue b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/addRawDialog.vue
index f37ac11..3febf73 100644
--- a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/addRawDialog.vue
+++ b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/addRawDialog.vue
@@ -30,14 +30,14 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="仓库:" prop="warehouseName" >
+        <el-form-item label="主柜:" prop="warehouseName" >
           <el-select
               clearable
               v-model="state.form.warehouseName"
               filterable
               remote
               reserve-keyword
-              placeholder="请输入所入仓库"
+              placeholder="请输入所入主柜"
               remote-show-suffix
               :remote-method="getWareHouseList"
               style="width: 100%"
@@ -51,10 +51,10 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="存储柜:" prop="cupboardId" >
+        <el-form-item label="副柜:" prop="cupboardId" >
           <el-select
               v-model="state.form.cupboardId"
-              placeholder="请选择存储柜"
+              placeholder="请选择副柜"
               style="width: 100%"
           >
             <el-option
@@ -135,7 +135,7 @@
     num: [{ required: true, trigger: "blur", validator: validateNum }],
     warehouseName: [{ required: true, trigger: "blur", message: '请选择入库仓库' }],
     basicName: [{ required: true, trigger: "blur", message: '请选择入库成品' }],
-    cupboardId: [{ required: true, trigger: "blur", message: '请选择存储柜' }]
+    cupboardId: [{ required: true, trigger: "blur", message: '请选择副柜' }]
   },
   rawList: [],
   wareHouseList: [],
diff --git a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/proDetail.vue b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/proDetail.vue
index d6219a6..4cc1683 100644
--- a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/proDetail.vue
+++ b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/proDetail.vue
@@ -63,8 +63,8 @@
 
         </template>
       </el-table-column>
-      <el-table-column label="所在仓库" prop="warehouseName" align="center" />
-      <el-table-column label="存储柜" prop="cupboardName" align="center" width="120" />
+      <el-table-column label="所在主柜" prop="warehouseName" align="center" />
+      <el-table-column label="副柜" prop="cupboardName" align="center" width="120" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180" >
         <template #default="scope">
           <el-button link type="primary" @click="viewFlow(scope.row)">取用记录</el-button>
@@ -95,13 +95,13 @@
 
 <script setup>
 import {nextTick, onMounted, reactive, ref} from "vue";
-import flowDeail from '../../../components/flowDetail.vue'
+import flowDeail from '../../../../components/flowDetail.vue'
 import {useRoute, useRouter} from "vue-router";
 import {
   disCardPro,
   getWhProDetail
 } from "@/api/hazardousChemicals/productRecord";
-import viewQRcode from '@/views/hazardousChemicals/electronicWarehouse/components/viewQR.vue'
+import viewQRcode from '@/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/viewQR.vue'
 import {ElMessage, ElMessageBox} from "element-plus";
 import Cookies from "js-cookie";
 const route = useRoute()
@@ -175,7 +175,7 @@
   }
   const v = JSON.stringify(obj)
   Cookies.set('typeWh','pro')
-  router.push({ path: "/warehouseManage", query: { val: v } });
+  router.push({ path: "/warehouseManageMenu/warehouseManage", query: { val: v } });
 }
 const viewQR = (val) => {
   dialogRef.value.openDialog('pro',val)
diff --git a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/productTable.vue b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/productTable.vue
index 86f3b77..442d6e8 100644
--- a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/productTable.vue
+++ b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/productTable.vue
@@ -16,14 +16,14 @@
         <el-form-item label="产品编号:" >
           <el-input v-model="data.queryParams.params.productSn" placeholder="请输入产品编号" clearable></el-input>
         </el-form-item>
-        <el-form-item label="仓库:" prop="warehouseName" >
+        <el-form-item label="主柜:" prop="warehouseName" >
           <el-select
               clearable
               v-model="data.queryParams.params.warehouseName"
               filterable
               remote
               reserve-keyword
-              placeholder="请输入所入仓库"
+              placeholder="请输入所入主柜"
               remote-show-suffix
               :remote-method="getWareHouseList"
               style="width: 100%"
@@ -37,11 +37,11 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="存储柜:" prop="cupboardId" >
+        <el-form-item label="副柜:" prop="cupboardId" >
           <el-select
               clearable
               v-model="data.queryParams.params.cupboardId"
-              placeholder="请选择存储柜"
+              placeholder="请选择副柜"
               style="width: 100%"
           >
             <el-option
@@ -80,12 +80,12 @@
 <!--        </template>-->
 <!--      </el-table-column>-->
       <el-table-column label="数量" prop="num" align="center" width="120" />
-      <el-table-column label="所在仓库" prop="warehouseName" align="center" >
+      <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="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">
diff --git a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawDetail.vue b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawDetail.vue
index 90f5913..4208d86 100644
--- a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawDetail.vue
+++ b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawDetail.vue
@@ -63,8 +63,8 @@
 
         </template>
       </el-table-column>
-      <el-table-column label="所在仓库" prop="warehouseName" align="center" />
-      <el-table-column label="存储柜" prop="cupboardName" align="center" width="120" />
+      <el-table-column label="所在主柜" prop="warehouseName" align="center" />
+      <el-table-column label="副柜" prop="cupboardName" align="center" width="120" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180" >
         <template #default="scope">
           <el-button link type="primary" v-if="scope.row.state ===0 || scope.row.state === 1" @click="editNum(scope.row)">零头修改</el-button>
@@ -117,7 +117,7 @@
 <script setup>
 import {nextTick, onMounted, reactive, ref} from "vue";
 import {useRoute, useRouter} from "vue-router";
-import flowDeail from '../../../components/flowDetail.vue'
+import flowDeail from '../../../../components/flowDetail.vue'
 import {ElMessage, ElMessageBox} from "element-plus";
 import {
   changeRawRemaining,
@@ -126,7 +126,7 @@
   getRawDetail,
   getWhRawDetail
 } from "@/api/hazardousChemicals/rawRecord";
-import viewQRcode from '@/views/hazardousChemicals/electronicWarehouse/components/viewQR.vue'
+import viewQRcode from '@/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/viewQR.vue'
 import Cookies from "js-cookie";
 const route = useRoute()
 const router = useRouter();
@@ -215,7 +215,7 @@
   }
   const v = JSON.stringify(obj)
   Cookies.set('typeWh','raw')
-  router.push({ path: "/warehouseManage", query: { val: v } });
+  router.push({ path: "/warehouseManageMenu/warehouseManage", query: { val: v } });
 }
 const viewQR = (val) => {
   dialogRef.value.openDialog('raw',val)
diff --git a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawTable.vue b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawTable.vue
index 7c3d5b2..671054b 100644
--- a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawTable.vue
+++ b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawTable.vue
@@ -16,14 +16,14 @@
         <el-form-item label="产品编号:" >
           <el-input v-model="data.queryParams.params.productSn" placeholder="请输入产品编号" clearable></el-input>
         </el-form-item>
-        <el-form-item label="仓库:" prop="warehouseName" >
+        <el-form-item label="主柜:" prop="warehouseName" >
           <el-select
               clearable
               v-model="data.queryParams.params.warehouseName"
               filterable
               remote
               reserve-keyword
-              placeholder="请输入所入仓库"
+              placeholder="请输入所入主柜"
               remote-show-suffix
               :remote-method="getWareHouseList"
               style="width: 100%"
@@ -37,11 +37,11 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="存储柜:" prop="cupboardId" >
+        <el-form-item label="副柜:" prop="cupboardId" >
           <el-select
               clearable
               v-model="data.queryParams.params.cupboardId"
-              placeholder="请选择存储柜"
+              placeholder="请选择副柜"
               style="width: 100%"
           >
             <el-option
@@ -82,12 +82,12 @@
 <!--        </template>-->
 <!--      </el-table-column>-->
       <el-table-column label="数量" prop="num" align="center" width="120" />
-      <el-table-column label="所在仓库" prop="warehouseName" align="center" >
+      <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="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">
diff --git a/src/views/tool/gen/basicInfoForm.vue b/src/views/tool/gen/basicInfoForm.vue
index 39c8515..ecfe10c 100644
--- a/src/views/tool/gen/basicInfoForm.vue
+++ b/src/views/tool/gen/basicInfoForm.vue
@@ -3,7 +3,7 @@
     <el-row>
       <el-col :span="12">
         <el-form-item label="表名称" prop="tableName">
-          <el-input placeholder="请输入仓库名称" v-model="info.tableName" />
+          <el-input placeholder="请输入主柜名称" v-model="info.tableName" />
         </el-form-item>
       </el-col>
       <el-col :span="12">

--
Gitblit v1.9.2