From f2593d3cf80998a831d07cc94ac49e4f51b04429 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期二, 15 四月 2025 16:07:28 +0800
Subject: [PATCH] 接口对接

---
 src/views/firework/warehouse/components/warehouseDialog.vue |  218 +++++++++++++++++-------------------------------------
 1 files changed, 69 insertions(+), 149 deletions(-)

diff --git a/src/views/firework/warehouse/components/warehouseDialog.vue b/src/views/firework/warehouse/components/warehouseDialog.vue
index c21769b..11e4932 100644
--- a/src/views/firework/warehouse/components/warehouseDialog.vue
+++ b/src/views/firework/warehouse/components/warehouseDialog.vue
@@ -2,7 +2,7 @@
   <div class="notice">
     <el-dialog
         v-model="dialogVisible"
-        width="900px"
+        width="750px"
         :before-close="handleClose"
         :close-on-press-escape="false"
         :close-on-click-modal="false"
@@ -18,33 +18,37 @@
         </el-form-item>
         <el-row :gutter="24">
           <el-col :span="12">
-            <el-form-item label="仓库名称:" prop="name" >
-              <el-input v-model="state.form.name" placeholder="请输入仓库名称"></el-input>
+            <el-form-item label="仓库名称:" prop="storeName" >
+              <el-input v-model="state.form.storeName" placeholder="请输入仓库名称"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="仓库面积:" prop="name" >
-              <el-input v-model="state.form.name" placeholder="请输入仓库面积"></el-input>
+            <el-form-item label="仓库面积:" prop="acreage" >
+              <el-input v-model="state.form.acreage" type="number" min="0" placeholder="请输入仓库面积">
+                <template #append>㎡</template>
+              </el-input>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="24">
           <el-col :span="12">
-            <el-form-item label="仓库编号:" prop="name" >
-              <el-input v-model="state.form.name" placeholder="请输入仓库编号"></el-input>
+            <el-form-item label="仓库编号:" prop="storeNum" >
+              <el-input v-model="state.form.storeNum" placeholder="请输入仓库编号"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="核定药量:" prop="name" >
-              <el-input v-model="state.form.name" placeholder="请输入核定药量"></el-input>
+            <el-form-item label="核定药量:" prop="dosage" >
+              <el-input v-model="state.form.dosage" type="number" min="0" placeholder="请输入核定药量">
+                <template #append>kg</template>
+              </el-input>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="24">
           <el-col :span="12">
-            <el-form-item label="危险等级:" prop="name" >
+            <el-form-item label="危险等级:" prop="dangerLevel" >
               <el-select
-                  v-model="state.form.typeId"
+                  v-model="state.form.dangerLevel"
                   placeholder="请选择"
                   style="width: 100%"
               >
@@ -58,91 +62,12 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="核定人员数量:" prop="name" >
-              <el-input v-model="state.form.name" placeholder="请输入核定人员数量"></el-input>
+            <el-form-item label="核定人员数量:" prop="personLimit" >
+              <el-input v-model="state.form.personLimit" placeholder="请输入核定人员数量" @input="state.form.personLimit= state.form.personLimit.replace(/[^\d]/g,'')"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
-      <div style="display: flex;align-items: center">
-        <div style="font-size: 16px;font-weight: 600;margin: 10px">库房列表</div>
-        <el-button style="margin-left: 10px" type="primary" @click="addRoom">新增库房</el-button>
-      </div>
-      <el-table :data="state.storeroomList" style="width: 100%;margin-top: 15px" border>
-        <el-table-column label="序号" type="index" align="center" width="80" />
-        <el-table-column prop="name" label="库房名称" align="center">
-          <template #default="{ row }">
-            <el-form :model="row" :rules="rules">
-              <el-form-item prop="name">
-                <el-input
-                    v-model="row.name"
-                />
-              </el-form-item>
-            </el-form>
-          </template>
-        </el-table-column>
-        <el-table-column prop="code" label="库房编号" align="center">
-          <template #default="{ row }">
-            <el-form :model="row" :rules="rules">
-              <el-form-item prop="code">
-                <el-input
-                    v-model="row.code"
-                />
-              </el-form-item>
-            </el-form>
-          </template>
-        </el-table-column>
-        <el-table-column prop="area" label="面积" align="center">
-          <template #default="{ row }">
-            <el-form :model="row" :rules="rules">
-              <el-form-item prop="area">
-                <el-input
-                    v-model="row.area"
-                />
-              </el-form-item>
-            </el-form>
-          </template>
-        </el-table-column>
-        <el-table-column prop="level" label="危险等级" align="center">
-          <template #default="{ row }">
-            <el-form :model="row" :rules="rules">
-              <el-form-item prop="level">
-                <el-input
-                    v-model="row.level"
-                />
-              </el-form-item>
-            </el-form>
-          </template>
-        </el-table-column>
-        <el-table-column prop="level" label="核定药量" align="center">
-          <template #default="{ row }">
-            <el-form :model="row" :rules="rules">
-              <el-form-item prop="level">
-                <el-input
-                    v-model="row.level"
-                />
-              </el-form-item>
-            </el-form>
-          </template>
-        </el-table-column>
-        <el-table-column prop="num" label="核定人员" align="center">
-          <template #default="{ row }">
-            <el-form :model="row" :rules="rules" >
-              <el-form-item prop="num" >
-                <el-input
-                    v-model="row.num"
-
-                />
-              </el-form-item>
-            </el-form>
-          </template>
-        </el-table-column>
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
-          <template #default="scope">
-            <el-button link type="danger" @click="delRoom(scope.row)">删除</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
       <template #footer>
         <span class="dialog-footer">
             <el-button @click="handleClose" size="default">取 消</el-button>
@@ -162,6 +87,8 @@
 import {getInfo} from "@/api/login";
 import {getToken} from "@/utils/auth";
 import {verifyPhone} from "@/utils/validate";
+import Cookies from "js-cookie";
+import {addWarehouse} from "@/api/company/warehouse";
 
 const uploadFileUrl = ref(import.meta.env.VITE_APP_BASE_API + "/common/upload"); // 上传文件服务器地址
 const { proxy } = getCurrentInstance();
@@ -171,66 +98,55 @@
 const length = ref()
 const emit = defineEmits(["getList"]);
 const startPhone = ref('');
-const validateUserPhone = (rule, value, callback)=>{
-  if(value === ''){
-    callback(new Error('请输入手机号'))
-  }else if(state.title == '编辑' && value == startPhone.value){
-    callback()
-  } else{
-    if(!verifyPhone(value)){
-      callback(new Error('手机号格式有误'))
-    }
-  }
-}
 const state = reactive({
   form: {
     id: '',
-    name: '',
-    typeId:null,
-    phone: '',
+    acreage: '',
+    dangerLevel:null,
+    companyCode: '',
+    storeNum: '',
+    storeName: '',
+    personLimit: null,
+    dosage: null
   },
   typeList: [
     {
       id: 1,
-      name: '法定代表人'
+      name: '1.1级库房'
     },
     {
       id: 2,
-      name: '主要负责人'
+      name: '1.3级库房'
     },
     {
       id: 3,
-      name: '安全负责人'
-    },
-    {
-      id: 4,
-      name: '保管员'
-    },
-    {
-      id: 5,
-      name: '守护员'
+      name: '无药库房'
     },
   ],
   storeroomList: [],
   formRules:{
-    name: [{ required: true, trigger: "blur", message:'请输入姓名' }],
-    phone: [{ required: true, trigger: "blur", validator: validateUserPhone }],
-    typeId: [{ required: true, trigger: "blur", message:'请选择人员类型' }],
+    acreage: [{ required: true, trigger: "blur", message:'请输入面积' }],
+    dangerLevel: [{ required: true, trigger: "blur",message:'请选择危险等级' }],
+    dosage: [{ required: true, trigger: "blur", message:'请输入核定药量' }],
+    personLimit: [{ required: true, trigger: "blur", message:'请输入核定人员数量' }],
+    storeName: [{ required: true, trigger: "blur", message:'请输入仓库名称' }],
+    storeNum: [{ required: true, trigger: "blur", message:'请输入仓库编号' }],
   },
 })
-const rules = {
-  name: [
-    { required: true, message: "姓名不能为空", trigger: "blur" },
-  ],
-};
-
 
 
 const openDialog = async (type,value) => {
   title.value = type === 'add' ? '新增' : '编辑'
+  const info = JSON.parse(Cookies.get('userInfo'))
+  state.form.companyCode = info.companynumber
   if(type === 'edit') {
-    state.form = JSON.parse(JSON.stringify(value))
-    startPhone.value = value.phone
+    const data = JSON.parse(JSON.stringify(value))
+    Object.keys(state.form).forEach(key => {
+      if(data[key]){
+        state.form[key] = data[key]
+      }
+    })
+    state.form.dangerLevel = Number(state.form.dangerLevel)
   }
   dialogVisible.value = true;
 }
@@ -242,30 +158,30 @@
   if(valid){
     if(title.value === '新增'){
       const {id,fileList, ...data} = JSON.parse(JSON.stringify(state.form))
-      // const res = await addTemplate(data)
-      // if(res.code === 200){
-      //   ElMessage({
-      //     type: 'success',
-      //     message: '新增成功'
-      //   });
-      // }else{
-      //   ElMessage.warning(res.message)
-      // }
+      const res = await addWarehouse(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 editTemplate(data)
-      // if(res.code === 200){
-      //   ElMessage({
-      //     type: 'success',
-      //     message: '编辑成功'
-      //   });
-      // }else{
-      //   ElMessage.warning(res.message)
-      // }
+      const res = await addWarehouse(data)
+      if(res.code == 200){
+        ElMessage({
+          type: 'success',
+          message: '编辑成功'
+        });
+      }else{
+        ElMessage.warning(res.message)
+      }
       emit("getList")
       busRef.value.clearValidate();
       reset();
@@ -304,9 +220,13 @@
 const reset = () => {
   state.form = {
     id: '',
-    name: '',
-    typeId:null,
-    phone: '',
+    acreage: '',
+    dangerLevel:null,
+    companyCode: '',
+    storeNum: '',
+    storeName: '',
+    personLimit: null,
+    dosage: null
   }
   state.storeroomList = []
 }

--
Gitblit v1.9.2