zhangyihao 7 месяцев назад
Родитель
Сommit
65103c3426

+ 0 - 1
src/api/comprehensiveGuarantee/materialReserveManagement/BarcodeManagement.ts

@@ -15,4 +15,3 @@ export function changeStatus(data) {
     data: data
   });
 }
-

+ 8 - 0
src/api/comprehensiveGuarantee/materialReserveManagement/warehouseManagement.ts

@@ -44,3 +44,11 @@ export function getWarehouseTree() {
     method: 'get'
   });
 }
+// 查询存放类型
+export function getTypeList(params?: any) {
+  return request({
+    url: '/api/resource_provison/material/type/list',
+    method: 'get',
+    params: params
+  });
+}

+ 53 - 13
src/views/comprehensiveGuarantee/MaterialReserveManagement/addWarehouse.vue

@@ -38,17 +38,24 @@
           </el-form-item>
 
           <el-form-item label="等级:" prop="level">
-            <el-select v-model="form.level" placeholder="等级">
+            <el-select v-model="form.level" placeholder="请选择等级">
               <el-option v-for="(item, index) in material_category_level" :key="index" :label="item.label" :value="item.value" />
             </el-select>
           </el-form-item>
-
-          <el-form-item label="存放类型:" prop="storage_type">
-            <el-input v-model="form.storage_type" placeholder="请输入存放类型" style="width: 468px !important" />
+          <el-form-item label="存放类型:" prop="storage_type_code">
+            <el-select v-model="form.storage_type_code" placeholder="请选择存放类型">
+              <el-option v-for="(item, index) in storageTypeList" :key="index" :label="item.storage_type" :value="item.storage_type_code" />
+            </el-select>
           </el-form-item>
 
           <el-form-item label="库存确认最新时间:" prop="last_inventory_time">
-            <el-date-picker v-model="form.last_inventory_time" type="datetime" placeholder="请选择库存确认最新时间" style="width: 468px !important" />
+            <el-date-picker
+              v-model="form.last_inventory_time"
+              type="datetime"
+              value-format="YYYY-MM-DD HH:mm:ss"
+              placeholder="请选择库存确认最新时间"
+              style="width: 468px !important"
+            />
           </el-form-item>
         </el-form>
         <div class="common-dialog-footer">
@@ -63,9 +70,10 @@
 import {
   createMaterialRoot,
   getMaterialRootInfo,
-  updateMaterialRoot
+  updateMaterialRoot,
+  getTypeList
 } from '@/api/comprehensiveGuarantee/materialReserveManagement/warehouseManagement';
-import { getMaterialWarehouseList, } from '@/api/comprehensiveGuarantee/materialReserveManagement/godownManagement';
+import { getMaterialWarehouseList } from '@/api/comprehensiveGuarantee/materialReserveManagement/godownManagement';
 const emits = defineEmits(['close']);
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 const { material_category_level } = toRefs<any>(proxy?.useDict('material_category_level'));
@@ -85,8 +93,9 @@ const data = reactive({
     room_volume: '',
     available_volume: '',
     level: '',
-    storage_type: '',
-    last_inventory_time: ''
+    last_inventory_time: '',
+    storage_type_code: '',
+    storage_type: ''
   },
   rules: {
     room_name: [{ required: true, message: '库房名称不能为空', trigger: 'blur' }],
@@ -97,11 +106,12 @@ const data = reactive({
     room_volume: [{ required: true, message: '库房容积不能为空', trigger: 'blur' }],
     available_volume: [{ required: true, message: '可用库房容积不能为空', trigger: 'blur' }],
     level: [{ required: true, message: '请选择等级', trigger: 'change' }],
-    storage_type: [{ required: true, message: '存放类型不能为空', trigger: 'blur' }],
+    storage_type_code: [{ required: true, message: '请选择存放类型', trigger: 'change' }],
     last_inventory_time: [{ required: true, message: '请选择库存确认最新时间', trigger: 'change' }]
   }
 });
 let godownList = ref([]);
+let storageTypeList = ref([]);
 const { form, rules } = toRefs(data);
 
 const closeDialog = () => {
@@ -139,14 +149,44 @@ const submitForm = async (formEl) => {
   });
 };
 onMounted(() => {
+  // 获取仓库列表
   getMaterialWarehouseList().then((res) => {
     godownList.value = res.data;
   });
-  if (!props.id) return;
-  getMaterialRootInfo(props.id).then((res) => {
-    form.value = res.data;
+
+  // 获取类型列表数据
+  getTypeList().then((res) => {
+    const uniqueStorageTypes = new Map();
+
+    res.data.forEach((item) => {
+      if (!uniqueStorageTypes.has(item.material_category_level)) {
+        uniqueStorageTypes.set(item.material_category_level, {
+          storage_type: item.material_category_name,
+          storage_type_code: item.material_category_level
+        });
+      }
+    });
+
+    storageTypeList.value = Array.from(uniqueStorageTypes.values());
   });
+
+  if (props.id) {
+    getMaterialRootInfo(props.id).then((res) => {
+      form.value = res.data;
+    });
+  }
 });
+watch(
+  () => form.value.storage_type_code,
+  (newVal) => {
+    const selectedType = storageTypeList.value.find((type) => type.storage_type_code === newVal);
+    if (selectedType) {
+      form.value.storage_type = selectedType.storage_type;
+    } else {
+      form.value.storage_type = '';
+    }
+  }
+);
 </script>
 
 <style lang="scss" scoped>