Parcourir la source

优化物资信息管理新增样式及接口

zhangyihao il y a 7 mois
Parent
commit
a6262c961b

+ 1 - 3
src/types/components.d.ts

@@ -31,6 +31,7 @@ declare module 'vue' {
     ElButton: typeof import('element-plus/es')['ElButton']
     ElCard: typeof import('element-plus/es')['ElCard']
     ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
+    ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
     ElCol: typeof import('element-plus/es')['ElCol']
     ElColorPicker: typeof import('element-plus/es')['ElColorPicker']
     ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
@@ -55,7 +56,6 @@ declare module 'vue' {
     ElRow: typeof import('element-plus/es')['ElRow']
     ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
     ElSelect: typeof import('element-plus/es')['ElSelect']
-    ElSlider: typeof import('element-plus/es')['ElSlider']
     ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
     ElSwitch: typeof import('element-plus/es')['ElSwitch']
     ElTable: typeof import('element-plus/es')['ElTable']
@@ -64,8 +64,6 @@ declare module 'vue' {
     ElTabs: typeof import('element-plus/es')['ElTabs']
     ElTag: typeof import('element-plus/es')['ElTag']
     ElText: typeof import('element-plus/es')['ElText']
-    ElTimeline: typeof import('element-plus/es')['ElTimeline']
-    ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
     ElTooltip: typeof import('element-plus/es')['ElTooltip']
     ElTree: typeof import('element-plus/es')['ElTree']
     ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']

+ 40 - 26
src/views/comprehensiveGuarantee/MaterialReserveManagement/addMaterialInformation.vue

@@ -40,17 +40,20 @@
               </el-form-item>
             </el-col>
             <el-col :span="12">
-              <el-form-item label="仓库:" prop="warehouse_id">
-                <el-select v-model="form.warehouse_id" placeholder="请选择仓库">
-                  <el-option v-for="item in godownList" :key="item.warehouse_id" :label="item.warehouse_name" :value="item.warehouse_id" />
-                </el-select>
+              <el-form-item label="材质:" prop="material">
+                <el-input v-model="form.material" placeholder="请输入材质" />
               </el-form-item>
             </el-col>
             <el-col :span="12">
-              <el-form-item label="库房:" prop="room_id">
-                <el-select v-model="form.room_id" placeholder="请选择库房">
-                  <el-option v-for="item in materialWarehouseRootList" :key="item.id" :label="item.room_name" :value="item.id" />
-                </el-select>
+              <el-form-item label="库房名称:" prop="room_id">
+                <el-tree-select
+                  v-model="form.room_id"
+                  :data="warehouseName"
+                  node-key="id"
+                  placeholder="请选择库房名称"
+                  :render-after-expand="false"
+                  :props="defaultProps"
+                />
               </el-form-item>
             </el-col>
             <el-col :span="12">
@@ -175,8 +178,10 @@
               </el-form-item>
             </el-col>
             <el-col :span="12">
-              <el-form-item label="材质:" prop="material">
-                <el-input v-model="form.material" placeholder="请输入材质" />
+              <el-form-item label="来源:" prop="from_sys">
+                <el-select v-model="form.from_sys" placeholder="请选择来源" clearable>
+                  <el-option v-for="item in material_source" :key="item.value" :label="item.label" :value="item.value"></el-option>
+                </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="12">
@@ -194,13 +199,7 @@
                 <el-input v-model="form.manufacturer" placeholder="请输入生产厂商" />
               </el-form-item>
             </el-col>
-            <el-col :span="12">
-              <el-form-item label="来源:" prop="from_sys">
-                <el-select v-model="form.from_sys" placeholder="请选择来源" clearable>
-                  <el-option v-for="item in material_source" :key="item.value" :label="item.label" :value="item.value"></el-option>
-                </el-select>
-              </el-form-item>
-            </el-col>
+            <el-col :span="12"></el-col>
             <el-col :span="24">
               <el-form-item label="备注:" prop="remarks">
                 <el-input v-model="form.remarks" :autosize="{ minRows: 3, maxRows: 5 }" type="textarea" placeholder="请输入备注" />
@@ -241,11 +240,13 @@
 </template>
 <script setup lang="ts">
 import { getMaterialWarehouseList } from '@/api/comprehensiveGuarantee/materialReserveManagement/godownManagement';
-import { getMaterialWarehouseRootList } from '@/api/comprehensiveGuarantee/materialReserveManagement/warehouseManagement';
+import { getMaterialWarehouseRootList, getWarehouseTree } from '@/api/comprehensiveGuarantee/materialReserveManagement/warehouseManagement';
 import { createMaterial, getMaterialInfo, updateMaterial } from '@/api/comprehensiveGuarantee/materialReserveManagement/materialInformation';
-
+import { reactive, ref } from 'vue';
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
-const { disaster_type, material_source, material_classification, material_type } = toRefs<any>(proxy?.useDict('disaster_type', 'material_source', 'material_classification', 'material_type'));
+const { disaster_type, material_source, material_classification, material_type } = toRefs<any>(
+  proxy?.useDict('disaster_type', 'material_source', 'material_classification', 'material_type')
+);
 const emits = defineEmits(['close']);
 const buttonLoading = ref(false);
 const props = defineProps({
@@ -316,8 +317,8 @@ const data = reactive({
     inventory_warning_pusher: [{ required: true, message: '库存预警推送人不能为空', trigger: 'blur' }],
     origin: [{ required: true, message: '产地不能为空', trigger: 'blur' }],
     from_sys: [{ required: true, message: '来源系统不能为空', trigger: 'blur' }],
-    status: [{ required: true, message: '状态不能为空', trigger: 'change' }],
-    room_id: [{ required: true, message: '库房不能为空', trigger: 'blur' }],
+    status: [{ required: true, message: '请选择状态', trigger: 'change' }],
+    room_id: [{ required: true, message: '请选择库房', trigger: 'change' }],
     package_quantity: [{ required: true, message: '包装数量不能为空', trigger: 'blur' }],
     package_volume: [{ required: true, message: '包装体积不能为空', trigger: 'blur' }],
     package_weight: [{ required: true, message: '包装重量不能为空', trigger: 'blur' }],
@@ -373,18 +374,31 @@ const submitForm = async (formEl) => {
     }
   });
 };
-
+const warehouseName = ref();
+const getWarehouseName = () => {
+  getWarehouseTree().then((res) => {
+    warehouseName.value = res.data;
+  });
+};
+const defaultProps = reactive({
+  children: 'children',
+  label: 'label',
+  disabled: (node) => {
+    return node.isWarehouse && !node.children;
+  }
+});
 onMounted(() => {
+  getWarehouseName();
   getMaterialWarehouseRootList().then((res) => {
     materialWarehouseRootList.value = res.data;
-  })
+  });
   getMaterialWarehouseList().then((res) => {
     godownList.value = res.data;
-  })
+  });
   if (!props.id) return;
   getMaterialInfo(props.id).then((res) => {
     form.value = res.data;
-  })
+  });
 });
 </script>