汪钰 3 rokov pred
rodič
commit
459406cefb

+ 39 - 12
src/api/warehouseManagement/warehouseDefinition.js

@@ -1,9 +1,44 @@
-// import http from '@/utils/http';
 import request from '@/utils/request';
+
+//条件查询工厂
+// export async function getFactoryarea(params) {
+//   const res = await request.get(`/main/factoryarea/page`, {
+//     params
+//   });
+//   if (res.data.code == 0) {
+//     return res.data.data;
+//   }
+//   return Promise.reject(new Error(res.data.message));
+// }
+
+// // 仓储管理-仓库信息的保存
+// export async function warehouseSave(data) {
+//   return request.post('/warehouseGoodsshelves/newWarehouse/save', data);
+// }
 export default {
   //条件查询工厂
-  factorys: function (data) {
-    return request.post('/main/factory/info/factorys', { data });
+  getFactoryarea: async (params) => {
+    const res = await request.get('/main/factoryarea/page', { params });
+    if (res.data.code == 0) {
+      return res.data.data;
+    }
+    return Promise.reject(new Error(res.data.message));
+  },
+  //获取部门
+  tree: async () => {
+    const res = await request.get('/main/group/getGroupList');
+    if (res.data.code == 0) {
+      return res.data.data;
+    }
+    return Promise.reject(new Error(res.data.message));
+  },
+  //根据部门获取员工
+  getUserPage: async (params) => {
+    const res = await request.get('/main/user/getUserPage', { params });
+    if (res.data.code == 0) {
+      return res.data.data;
+    }
+    return Promise.reject(new Error(res.data.message));
   },
   //列表
   list: function (params) {
@@ -20,17 +55,9 @@ export default {
   //详情
   info: function (params) {
     return request.get('/main/org/info/info', { params });
-  },
+  }
   //树
   // tree: function (params) {
   //     return http.asyncCall("/main/org/dept/tree", params,'get')
   // },
-  tree: function (params) {
-    return request.get('/main/org/dept/effectiveTree', { params });
-  }
-};
-
-// 仓储管理-仓库信息的保存
-export const warehouseSave = (data) => {
-  return request.post('/warehouseGoodsshelves/newWarehouse/save', data);
 };

+ 169 - 169
src/components/selectTree/index.vue

@@ -29,188 +29,188 @@
 </template>
 
 <script>
-export default {
-  props: {
-    // 配置项
+  export default {
     props: {
-      type: Object,
-      default () {
-        return {
-          value: 'value', // ID字段名
-          label: 'label', // 显示名称
-          children: 'children' // 子级字段名
+      // 配置项
+      props: {
+        type: Object,
+        default() {
+          return {
+            value: 'value', // ID字段名
+            label: 'label', // 显示名称
+            children: 'children' // 子级字段名
+          };
         }
-      }
-    },
-    // 选项列表数据(树形结构的对象数组)
-    options: { type: Array, default: () => [] },
-    // 初始值
-    value: { type: [String, Number], default: null },
-    // 可清空选项
-    clearable: { type: Boolean, default: false },
-    // 自动收起
-    accordion: { type: Boolean, default: false },
-    // // 可清空选项
-    // disabled: { type: Boolean, default: false },
-    // 多选
-    multiple: { type: Boolean, default: false },
-    //
+      },
+      // 选项列表数据(树形结构的对象数组)
+      options: { type: Array, default: () => [] },
+      // 初始值
+      value: { type: [String, Number], default: null },
+      // 可清空选项
+      clearable: { type: Boolean, default: false },
+      // 自动收起
+      accordion: { type: Boolean, default: false },
+      // // 可清空选项
+      // disabled: { type: Boolean, default: false },
+      // 多选
+      multiple: { type: Boolean, default: false },
+      //
 
-    placeholder: {
-      type: String,
-      default: '请选择'
-    },
-    size: {
-      type: String,
-      default: 'mini'
-    },
-    dialogType: {
-      type: String,
-      default: ''
+      placeholder: {
+        type: String,
+        default: '请选择'
+      },
+      size: {
+        type: String,
+        default: 'mini'
+      },
+      dialogType: {
+        type: String,
+        default: ''
+      },
+      tableIndex: { type: Number, default: null },
+      initStr: {
+        type: String,
+        default: ''
+      },
+      isBindPlan: {
+        type: Boolean,
+        default: function () {
+          return false;
+        }
+      }
     },
-    tableIndex: { type: Number, default: null },
-    initStr: {
-      type: String,
-      default: ''
+    data() {
+      return {
+        valueId: null,
+        treeKey: true,
+        valueTitle: '',
+        defaultExpandedKey: []
+      };
     },
-    isBindPlan: {
-      type: Boolean,
-      default: function () {
-        return false
+    watch: {
+      // 这个需要用深度监听,不然回显有时会失效
+      value: {
+        handler(val) {
+          this.valueId = this.value;
+          this.initHandle();
+        },
+        deep: true,
+        immediate: true
+      },
+      options: {
+        handler(val) {
+          this.initHandle();
+        },
+        deep: true,
+        immediate: true
+      },
+      initStr: {
+        handler(newVal, oldVal) {
+          if (this.initStr) {
+            // console.log(newVal);
+            this.valueTitle = newVal;
+          }
+        },
+        immediate: true
       }
     },
-  },
-  data () {
-    return {
-      valueId: null,
-      treeKey: true,
-      valueTitle: '',
-      defaultExpandedKey: []
-    }
-  },
-  watch: {
-    // 这个需要用深度监听,不然回显有时会失效
-    value: {
-      handler (val) {
-        this.valueId = this.value
-        this.initHandle()
+    // mounted() {
+    //   this.valueId = this.value; // 初始值
+    //   setTimeout(() => {
+    //     this.initHandle();
+    //   },300)
+    // },
+    methods: {
+      // 初始化值
+      async initHandle() {
+        if (this.valueId) {
+          this.$nextTick(async () => {
+            const tempValue = await this.$refs.selectTree.getNode(this.valueId);
+            setTimeout(() => {
+              if (tempValue) {
+                this.valueTitle = tempValue.data[this.props.label]; // 初始化显示
+                this.$refs.selectTree.setCurrentKey(this.valueId); // 设置默认选中
+                this.defaultExpandedKey = [this.valueId]; // 设置默认展开
+              }
+            }, 300);
+          });
+        } else {
+          this.valueTitle = '';
+        }
+        this.initScroll();
       },
-      deep: true,
-      immediate: true
-    },
-    options:{
-      handler (val) {
-        this.initHandle()
+      // 初始化滚动条
+      initScroll() {
+        this.$nextTick(() => {
+          let scrollWrap = document.querySelectorAll(
+            '.el-scrollbar .el-select-dropdown__wrap'
+          )[0];
+          let scrollBar = document.querySelectorAll(
+            '.el-scrollbar .el-scrollbar__bar'
+          );
+          scrollWrap.style.cssText =
+            'margin: 0px; max-height: none; overflow: hidden;';
+          scrollBar.forEach((ele) => (ele.style.width = 0));
+        });
       },
-      deep: true,
-      immediate: true
-    },
-    initStr: {
-      handler (newVal, oldVal) {
-        if (this.initStr) {
-          // console.log(newVal);
-          this.valueTitle = newVal
+      // 切换选项
+      handleNodeClick(node) {
+        // 多选
+        if (this.multiple) {
+          this.valueTitle += `${node[this.props.label]} , `;
+          this.valueId = node[this.props.value];
+          this.$emit('getValue', node);
+          this.defaultExpandedKey = [];
+          return;
         }
+        this.valueTitle = node[this.props.label];
+        this.valueId = node[this.props.value];
+        this.$emit('getValue', node);
+        this.defaultExpandedKey = [];
+        this.$refs.test.handleClose();
       },
-      immediate: true
-    }
-  },
-  // mounted() {
-  //   this.valueId = this.value; // 初始值
-  //   setTimeout(() => {
-  //     this.initHandle();
-  //   },300)
-  // },
-  methods: {
-    // 初始化值
-    async initHandle () {
-      if (this.valueId) {
-        this.$nextTick(async () => {
-          const tempValue = await this.$refs.selectTree.getNode(this.valueId)
-          setTimeout(() => {
-            if (tempValue) {
-              this.valueTitle = tempValue.data[this.props.label] // 初始化显示
-              this.$refs.selectTree.setCurrentKey(this.valueId) // 设置默认选中
-              this.defaultExpandedKey = [this.valueId] // 设置默认展开
-            }
-          }, 300)
-        })
-      } else {
-        this.valueTitle = ''
-      }
-      this.initScroll()
-    },
-    // 初始化滚动条
-    initScroll () {
-      this.$nextTick(() => {
-        let scrollWrap = document.querySelectorAll(
-          '.el-scrollbar .el-select-dropdown__wrap'
-        )[0]
-        let scrollBar = document.querySelectorAll(
-          '.el-scrollbar .el-scrollbar__bar'
-        )
-        scrollWrap.style.cssText =
-          'margin: 0px; max-height: none; overflow: hidden;'
-        scrollBar.forEach(ele => (ele.style.width = 0))
-      })
-    },
-    // 切换选项
-    handleNodeClick (node) {
-      // 多选
-      if (this.multiple) {
-        this.valueTitle += `${node[this.props.label]} , `
-        this.valueId = node[this.props.value]
-        this.$emit('getValue', node)
-        this.defaultExpandedKey = []
-        return
+      // 清除选中
+      clearHandle() {
+        this.valueTitle = '';
+        this.valueId = null;
+        this.defaultExpandedKey = [];
+        // this.clearSelected()
+        this.treeKey = !this.treeKey;
+        this.$emit('getValue', null);
+      },
+      // 清空选中样式
+      clearSelected() {
+        let allNode = document.querySelectorAll('#tree-option .el-tree-node');
+        allNode.forEach((element) => element.classList.remove('is-current'));
       }
-      this.valueTitle = node[this.props.label]
-      this.valueId = node[this.props.value]
-      this.$emit('getValue', node)
-      this.defaultExpandedKey = []
-      this.$refs.test.handleClose()
-    },
-    // 清除选中
-    clearHandle () {
-      this.valueTitle = ''
-      this.valueId = null
-      this.defaultExpandedKey = []
-      // this.clearSelected()
-      this.treeKey = !this.treeKey
-      this.$emit('getValue', null)
-    },
-    // 清空选中样式
-    clearSelected () {
-      let allNode = document.querySelectorAll('#tree-option .el-tree-node')
-      allNode.forEach(element => element.classList.remove('is-current'))
     }
-  }
-}
+  };
 </script>
 <style scoped>
-.el-scrollbar .el-scrollbar__view .el-select-dropdown__item {
-  height: auto;
-  max-height: 274px;
-  padding: 0;
-  overflow: hidden;
-  overflow-y: auto;
-}
-.el-select-dropdown__item.selected {
-  font-weight: normal;
-}
-ul li >>> .el-tree .el-tree-node__content {
-  height: auto;
-  padding: 0 20px;
-}
-.el-tree-node__label {
-  font-weight: normal;
-}
-.el-tree >>> .is-current .el-tree-node__label {
-  color: #157a2c;
-  font-weight: 700;
-}
-.el-tree >>> .is-current .el-tree-node__children .el-tree-node__label {
-  color: #606266;
-  font-weight: normal;
-}
+  .el-scrollbar .el-scrollbar__view .el-select-dropdown__item {
+    height: auto;
+    max-height: 274px;
+    padding: 0;
+    overflow: hidden;
+    overflow-y: auto;
+  }
+  .el-select-dropdown__item.selected {
+    font-weight: normal;
+  }
+  ul li >>> .el-tree .el-tree-node__content {
+    height: auto;
+    padding: 0 20px;
+  }
+  .el-tree-node__label {
+    font-weight: normal;
+  }
+  .el-tree >>> .is-current .el-tree-node__label {
+    color: #157a2c;
+    font-weight: 700;
+  }
+  .el-tree >>> .is-current .el-tree-node__children .el-tree-node__label {
+    color: #606266;
+    font-weight: normal;
+  }
 </style>

+ 1 - 0
src/enum/dict.js

@@ -9,6 +9,7 @@ export default {
   网络状态: 'network_status',
   金额单位: 'money_unit',
   时间单位: 'time_unit',
+  物品类型: 'classify',
   仓库状态: 'warehouse_status',
   仓库类型: 'WD_inventoryList'
 };

+ 7 - 7
src/views/warehouseManagement/outgoingManagement/add.vue

@@ -842,13 +842,13 @@
         });
       },
       getTreeList() {
-        return new Promise((resolve, reject) => {
-          org.tree().then((res) => {
-            if (res.success) {
-              resolve(res);
-            }
-          });
-        });
+        // return new Promise((resolve, reject) => {
+        //   org.tree().then((res) => {
+        //     if (res.success) {
+        //       resolve(res);
+        //     }
+        //   });
+        // });
       },
       upload(data) {
         this.formData.contentImage = data;

+ 10 - 10
src/views/warehouseManagement/stockManagement/add.vue

@@ -613,12 +613,12 @@
 <script>
   import selectUpload from '@/components/selectUpload';
   import upload from '@/components/uploadImg';
-  // import {
-  //   warehousingType,
-  //   sceneState,
-  //   emergencyState,
-  //   materialType
-  // } from '@/utils/dict/index'
+  import {
+    warehousingType,
+    sceneState,
+    emergencyState,
+    materialType
+  } from '@/utils/dict/index';
   // import { getInfo, warehousingAdd, getAssetNum } from '@/api/stockManagement';
   import selectTree from '@/components/selectTree';
   import selectType from '../components/selectType.vue';
@@ -639,10 +639,10 @@
     },
     data() {
       return {
-        // materialType,
-        // warehousingType,
-        // sceneState,
-        // emergencyState,
+        materialType,
+        warehousingType,
+        sceneState,
+        emergencyState,
         saveLoading: false,
         visibleDialog: false,
         curDateType: 'manufactureTime',

+ 39 - 4
src/views/warehouseManagement/warehouseDefinition/add.vue

@@ -699,10 +699,10 @@
     //   filterAreaType: useDictLabelFilter
     // },
     data() {
-      const msg = throttle(
-        () => this.$message.error('货架总体积不能大于库区体积!'),
-        500
-      );
+      // const msg = throttle(
+      //   () => this.$message.error('货架总体积不能大于库区体积!'),
+      //   500
+      // );
 
       const allocationReqValidator = (column, value, callback) => {
         if (!value) {
@@ -906,6 +906,38 @@
           this.savedShelves = res.data.areaGoodsshelvesList.map((i) => i.id);
         }
       },
+      checkVolume() {
+        let falg = true;
+        let warehouseAreasSaveList = this.areaForm.warehouseAreasSaveList.map(
+          (item) => {
+            return {
+              id: item.id,
+              volumu: item.areaHigh * item.areaLength * item.areaWide
+            };
+          }
+        );
+
+        let areaGoodsshelvesList = this.areaForm.areaGoodsshelvesList.map(
+          (item) => {
+            return {
+              id: item.warehouseAreaId,
+              volumu:
+                item.goodsshelvesHigh *
+                item.goodsshelvesLength *
+                item.goodsshelvesWide
+            };
+          }
+        );
+
+        warehouseAreasSaveList.forEach((item) => {
+          let arr = areaGoodsshelvesList.filter((it) => it.id == item.id);
+          let num = arr.reduce((val, it) => val + it.volumu, 0);
+          if (num > item.volumu) {
+            falg = false;
+          }
+        });
+        return falg;
+      },
       editInfo(index) {
         let obj = this.areaForm.warehouseAreasSaveList[index];
         if (obj.isEdit) {
@@ -1287,6 +1319,9 @@
         if (this.areaForm.areaGoodsshelvesList.length === 0) {
           return this.$message.error('请添加货架');
         }
+        if (!this.checkVolume()) {
+          return this.$message.error('货架总体积不能大于库区体积!');
+        }
 
         let obj = {};
         for (const item of this.areaForm.allocationReqList) {

+ 1 - 1
src/views/warehouseManagement/warehouseDefinition/components/CodePrint.vue

@@ -82,7 +82,7 @@
   // import PrintWarehouse from '@/components/print/PrintWarehouse';
   // import { batchBarPrint } from '@/api/ledgerAssets/booksList'
   export default {
-    components: { PrintWarehouse },
+    // components: { PrintWarehouse },
     data() {
       return {
         openWindows: false,

+ 43 - 19
src/views/warehouseManagement/warehouseDefinition/components/WarehouseEdit.vue

@@ -62,7 +62,7 @@
           :initStr="formData.departmentName"
           :options="deptList"
           :props="{
-            value: 'code',
+            value: 'id',
             label: 'name',
             children: 'children'
           }"
@@ -78,9 +78,9 @@
         >
           <el-option
             v-for="item in userList"
-            :key="item.userId"
-            :label="item.trueName"
-            :value="item.userId"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
             @click.native="
               formData.ownerName = item.trueName;
               formData.contact = item.mobile;
@@ -143,7 +143,7 @@
 
 <script>
   import { warehouseSave } from '@/api/warehouseManagement/warehouseDefinition';
-  import org from '@/api/warehouseManagement/warehouseDefinition';
+  import warehouseDefinition from '@/api/warehouseManagement/warehouseDefinition';
 
   import selectTree from '@/components/selectTree';
 
@@ -191,13 +191,21 @@
         locationOptions: city
       };
     },
-    created() {
-      this.init();
+    watch: {
+      visible: {
+        handler(val) {
+          if (val) {
+            // this.init();
+          }
+        }
+      }
     },
+    created() {},
     methods: {
-      async open(type, row) {
+      open(type, row) {
         this.type = type;
         this.visible = true;
+        this.init();
 
         // if (type === '修改') {
         //   this.$nextTick(async () => {
@@ -226,16 +234,28 @@
         // }
       },
       async init() {
-        org.tree().then((tree) => {
-          if (tree?.success) {
-            this.deptList = tree.data;
-          }
+        // org.tree().then((tree) => {
+        //   if (tree?.success) {
+        //     this.deptList = tree.data;
+        //   }
+        // });
+        const tree = await warehouseDefinition.tree();
+
+        this.deptList = this.$util.toTreeData({
+          data: tree,
+          idField: 'id',
+          parentIdField: 'parentId'
         });
 
-        let res = org.factorys({ status: true });
-        if (res?.success) {
-          this.factoryList = res.data;
-        }
+        //获取工厂车间列表
+        const res = await warehouseDefinition.getFactoryarea({
+          pageNum: 1,
+          size: 9999,
+          type: 1
+        });
+
+        // let data = org.factorys({ status: true });
+        this.factoryList = res.list;
       },
 
       handleSave() {
@@ -272,14 +292,18 @@
         this.visible = false;
       },
       async nodeClick(data) {
-        this.formData.departmentCode = data?.code;
+        // this.formData.departmentCode = data?.code;
         this.formData.departmentName = data?.name;
 
         this.formData.ownerName = '';
         this.formData.ownerId = '';
         if (data) {
-          let userData = await user.list({ deptCode: data.code, size: 99999 });
-          this.userList = userData.data.items;
+          let userData = await warehouseDefinition.getUserPage({
+            groupId: data.id,
+            size: 99999
+          });
+
+          this.userList = userData.list;
         }
       }
     }

+ 266 - 259
src/views/warehouseManagement/warehouseDefinition/details.vue

@@ -1,258 +1,268 @@
 <template>
-  <div class="page">
-    <el-form label-width="130px">
-      <div class="page-title">
-        <div class="page-title-div">
-          <el-page-header @back="$router.go(-1)" content="仓库定义详情">
-            <div class="title-content" slot="content">
-              仓库定义详情
-              <el-button
-                size="mini"
-                icon="el-icon-upload2"
-                type="primary"
-                @click="exportCode"
-                >导出条码</el-button
-              >
-            </div>
-          </el-page-header>
-        </div>
-      </div>
-      <div class="content-detail">
-        <div class="basic-details">
-          <div class="basic-details-title">
-            <span class="border-span">基本信息</span>
+  <div class="ele-body">
+    <el-card shadow="never">
+      <el-form label-width="130px">
+        <div class="page-title">
+          <div class="page-title-div">
+            <el-page-header
+              @back="$router.push('/warehouseManagement/warehouseDefinition')"
+              content="仓库定义详情"
+            >
+              <div class="title-content" slot="content">
+                仓库定义详情
+                <el-button
+                  size="mini"
+                  icon="el-icon-upload2"
+                  type="primary"
+                  @click="goodsInfoView"
+                  >导出条码</el-button
+                >
+              </div>
+            </el-page-header>
           </div>
+        </div>
+        <div class="content-detail">
+          <div class="basic-details">
+            <!-- <div class="basic-details-title">
+              <span class="border-span">基本信息</span>
+            </div> -->
+            <header-title title="基本信息" size="16px"></header-title>
 
-          <el-row>
-            <el-col :span="8">
-              <el-form-item label="仓库编码">
-                <span>{{ warehouseInfo.code }}</span>
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="仓库名称">
-                <span>{{ warehouseInfo.name }}</span>
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="仓库类型">
-                <span>{{
-                  warehouseInfo.inventoryType
-                    | useDictLabelFilter(warehouseDefinition_inventoryList)
-                }}</span>
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="状态">
-                <span>{{ warehouseInfo.status ? '生效' : '失效' }}</span>
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="所属工厂">
-                <span>{{ warehouseInfo.factoryName }}</span>
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="权属部门">
-                <span>{{ warehouseInfo.departmentName }}</span>
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="权属人">
-                <span>{{ warehouseInfo.ownerName }}</span>
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="联系方式">
-                <span>{{ warehouseInfo.contact }}</span>
-              </el-form-item>
-            </el-col>
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="仓库编码">
+                  <span>{{ warehouseInfo.code }}</span>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="仓库名称">
+                  <span>{{ warehouseInfo.name }}</span>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="仓库类型">
+                  <span>{{
+                    warehouseInfo.inventoryType
+                      | useDictLabelFilter(warehouseDefinition_inventoryList)
+                  }}</span>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="状态">
+                  <span>{{ warehouseInfo.status ? '生效' : '失效' }}</span>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="所属工厂">
+                  <span>{{ warehouseInfo.factoryName }}</span>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="权属部门">
+                  <span>{{ warehouseInfo.departmentName }}</span>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="权属人">
+                  <span>{{ warehouseInfo.ownerName }}</span>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="联系方式">
+                  <span>{{ warehouseInfo.contact }}</span>
+                </el-form-item>
+              </el-col>
 
-            <el-col :span="8">
-              <el-form-item label="仓库位置">
-                <span
-                  >{{ warehouseInfo.province }} / {{ warehouseInfo.city }} /
-                  {{ warehouseInfo.area }}</span
-                >
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="详细地址">
-                <span>{{ warehouseInfo.address }}</span>
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="创建人">
-                <span>{{ warehouseInfo.createUserName }}</span>
-              </el-form-item>
-            </el-col>
+              <el-col :span="8">
+                <el-form-item label="仓库位置">
+                  <span
+                    >{{ warehouseInfo.province }} / {{ warehouseInfo.city }} /
+                    {{ warehouseInfo.area }}</span
+                  >
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="详细地址">
+                  <span>{{ warehouseInfo.address }}</span>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="创建人">
+                  <span>{{ warehouseInfo.createUserName }}</span>
+                </el-form-item>
+              </el-col>
 
-            <!-- <el-col :span="8">
+              <!-- <el-col :span="8">
               <el-form-item label="创建部门">
                 <span>人力资源部</span>
               </el-form-item>
             </el-col> -->
-            <el-col :span="8">
-              <el-form-item label="创建时间">
-                <span>{{ warehouseInfo.createTime }}</span>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="备注">
-                <span>{{ warehouseInfo.remarks }}</span>
-              </el-form-item>
-            </el-col>
-          </el-row>
-        </div>
-
-        <div class="basic-details mt20 warehouse-area">
-          <div class="basic-details-title">
-            <span class="border-span">货位信息</span>
-          </div>
-          <div class="status-legend">
-            <div
-              v-for="(item, index) in warehouseDefinition_locationStatus"
-              :key="index"
-            >
-              <span :style="{ 'background-color': item.color }"></span
-              >{{ item.label }}
-            </div>
+              <el-col :span="8">
+                <el-form-item label="创建时间">
+                  <span>{{ warehouseInfo.createTime }}</span>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="备注">
+                  <span>{{ warehouseInfo.remarks }}</span>
+                </el-form-item>
+              </el-col>
+            </el-row>
           </div>
 
-          <el-tabs v-model="warehouseAreaActive">
-            <el-tab-pane
-              :key="item.id"
-              v-for="(item, index) in warehouseAreasSaveList"
-              :label="item.name"
-              :name="index + ''"
-            >
-              <div class="msg">
-                <div>
-                  <span class="label">库区编号</span
-                  >{{ warehouseInfo.code + '-' + item.code }}
-                </div>
-                <div><span class="label">库区名称</span>{{ item.name }}</div>
-                <div>
-                  <span class="label">库区类型</span
-                  >{{
-                    item.type
-                      | useDictLabelFilter(warehouseDefinition_inventoryList)
-                  }}
-                </div>
-                <div>
-                  <span class="label">库区属性</span
-                  >{{
-                    item.attribute
-                      | useDictLabelFilter(warehouseDefinition_areaAttribute)
-                  }}
-                </div>
-                <div>
-                  <span class="label">库区长宽高(cm)</span
-                  >{{ item.areaLength }}*{{ item.areaWide }}*{{ item.areaHigh }}
-                </div>
-                <div><span class="label">货架数</span>{{ item.num }}</div>
-                <div>
-                  <span class="label">货位数</span>{{ item.allocationNumber }}
-                </div>
-                <div style="width: 10px"></div>
-              </div>
+          <div class="basic-details mt20 warehouse-area">
+            <header-title title="货位信息" size="16px"></header-title>
+
+            <div class="status-legend">
               <div
-                class="shelves-container"
-                v-for="itm in item.children"
-                :key="itm.id"
+                v-for="(item, index) in warehouseDefinition_locationStatus"
+                :key="index"
               >
-                <h3>货架{{ itm.goodsshelvesCode }}</h3>
-                <div class="content">
-                  <div class="content-box">
-                    <el-row :gutter="4">
-                      <el-col
-                        :span="4"
-                        v-for="p in itm.children"
-                        :key="p.id"
-                        class="box"
-                        :style="{
-                          'background-color': getStatus(p.allocationStatus)
-                            .color,
-                          color: p.allocationStatus === 3 ? '#fff' : '#000'
-                        }"
-                        >{{ p.goodsAllocationCode }}
-                        <div class="mask">
-                          {{ p.goodsAllocationCode }}
-                          <div>
-                            <i
-                              class="el-icon-tickets"
-                              @click="
-                                goodsInfoView(
-                                  p,
-                                  warehouseInfo.code +
-                                    '-' +
-                                    item.code +
-                                    '-' +
-                                    itm.goodsshelvesCode +
-                                    '-' +
-                                    p.goodsAllocationCode
-                                )
-                              "
-                            ></i>
-                            <img
-                              src="~@/assets/img/transform.svg"
-                              alt=""
-                              @click="transformStatus(p)"
-                            />
-                          </div>
-                        </div>
-                      </el-col>
-                    </el-row>
+                <span :style="{ 'background-color': item.color }"></span
+                >{{ item.label }}
+              </div>
+            </div>
+
+            <el-tabs v-model="warehouseAreaActive">
+              <el-tab-pane
+                :key="item.id"
+                v-for="(item, index) in warehouseAreasSaveList"
+                :label="item.name"
+                :name="index + ''"
+              >
+                <div class="msg">
+                  <div>
+                    <span class="label">库区编号</span
+                    >{{ warehouseInfo.code + '-' + item.code }}
                   </div>
-                  <div class="detail">
-                    <div>
-                      <span class="label">货架号</span
-                      >{{ warehouseInfo.code }}-{{ item.code }}-{{
-                        itm.goodsshelvesCode
-                      }}
-                    </div>
-                    <div>
-                      <span class="label">货架长宽高(cm)</span
-                      >{{ itm.goodsshelvesLength }}*{{
-                        itm.goodsshelvesWide
-                      }}*{{ itm.goodsshelvesHigh }}
-                    </div>
-                    <div>
-                      <span class="label">货架层数</span
-                      >{{ itm.goodsshelvesLine }}
-                    </div>
-                    <div>
-                      <span class="label">货位数</span>{{ itm.children.length }}
-                    </div>
-                    <div>
-                      <span class="label">空置货位数</span
-                      >{{
-                        itm.children.filter((i) => i.allocationStatus === 1)
-                          .length
-                      }}
-                    </div>
-                    <div>
-                      <span class="label">在用货位数</span
-                      >{{
-                        itm.children.filter((i) => i.allocationStatus === 2)
-                          .length
-                      }}
+                  <div><span class="label">库区名称</span>{{ item.name }}</div>
+                  <div>
+                    <span class="label">库区类型</span
+                    >{{
+                      item.type
+                        | useDictLabelFilter(warehouseDefinition_inventoryList)
+                    }}
+                  </div>
+                  <div>
+                    <span class="label">库区属性</span
+                    >{{
+                      item.attribute
+                        | useDictLabelFilter(warehouseDefinition_areaAttribute)
+                    }}
+                  </div>
+                  <div>
+                    <span class="label">库区长宽高(cm)</span
+                    >{{ item.areaLength }}*{{ item.areaWide }}*{{
+                      item.areaHigh
+                    }}
+                  </div>
+                  <div><span class="label">货架数</span>{{ item.num }}</div>
+                  <div>
+                    <span class="label">货位数</span>{{ item.allocationNumber }}
+                  </div>
+                  <div style="width: 10px"></div>
+                </div>
+                <div
+                  class="shelves-container"
+                  v-for="itm in item.children"
+                  :key="itm.id"
+                >
+                  <h3>货架{{ itm.goodsshelvesCode }}</h3>
+                  <div class="content">
+                    <div class="content-box">
+                      <el-row :gutter="4">
+                        <el-col
+                          :span="4"
+                          v-for="p in itm.children"
+                          :key="p.id"
+                          class="box"
+                          :style="{
+                            'background-color': getStatus(p.allocationStatus)
+                              .color,
+                            color: p.allocationStatus === 3 ? '#fff' : '#000'
+                          }"
+                          >{{ p.goodsAllocationCode }}
+                          <div class="mask">
+                            {{ p.goodsAllocationCode }}
+                            <div>
+                              <i
+                                class="el-icon-tickets"
+                                @click="
+                                  goodsInfoView(
+                                    p,
+                                    warehouseInfo.code +
+                                      '-' +
+                                      item.code +
+                                      '-' +
+                                      itm.goodsshelvesCode +
+                                      '-' +
+                                      p.goodsAllocationCode
+                                  )
+                                "
+                              ></i>
+                              <img
+                                src="~@/assets/img/transform.svg"
+                                alt=""
+                                @click="transformStatus(p)"
+                              />
+                            </div>
+                          </div>
+                        </el-col>
+                      </el-row>
                     </div>
-                    <div>
-                      <span class="label">已满货位数</span
-                      >{{
-                        itm.children.filter((i) => i.allocationStatus === 3)
-                          .length
-                      }}
+                    <div class="detail">
+                      <div>
+                        <span class="label">货架号</span
+                        >{{ warehouseInfo.code }}-{{ item.code }}-{{
+                          itm.goodsshelvesCode
+                        }}
+                      </div>
+                      <div>
+                        <span class="label">货架长宽高(cm)</span
+                        >{{ itm.goodsshelvesLength }}*{{
+                          itm.goodsshelvesWide
+                        }}*{{ itm.goodsshelvesHigh }}
+                      </div>
+                      <div>
+                        <span class="label">货架层数</span
+                        >{{ itm.goodsshelvesLine }}
+                      </div>
+                      <div>
+                        <span class="label">货位数</span
+                        >{{ itm.children.length }}
+                      </div>
+                      <div>
+                        <span class="label">空置货位数</span
+                        >{{
+                          itm.children.filter((i) => i.allocationStatus === 1)
+                            .length
+                        }}
+                      </div>
+                      <div>
+                        <span class="label">在用货位数</span
+                        >{{
+                          itm.children.filter((i) => i.allocationStatus === 2)
+                            .length
+                        }}
+                      </div>
+                      <div>
+                        <span class="label">已满货位数</span
+                        >{{
+                          itm.children.filter((i) => i.allocationStatus === 3)
+                            .length
+                        }}
+                      </div>
                     </div>
                   </div>
                 </div>
-              </div>
-            </el-tab-pane>
-          </el-tabs>
+              </el-tab-pane>
+            </el-tabs>
+          </div>
         </div>
-      </div>
-    </el-form>
+      </el-form>
+      <GoodsInfoDialog ref="goodsInfoRef" />
+      <!-- <CodePrint ref="codePrintRef" /> -->
+    </el-card>
 
     <el-dialog :visible.sync="statusVisible" title="变更货位状态" width="400px">
       <el-radio-group v-model="statusSet">
@@ -281,27 +291,25 @@
         >
       </div>
     </el-dialog>
-    <GoodsInfoDialog ref="goodsInfoRef" />
-    <CodePrint ref="codePrintRef" />
   </div>
 </template>
 <script>
-  // import {
-  //   warehouseDefinition_locationStatus,
-  //   warehouseDefinition_inventoryList,
-  //   warehouseDefinition_areaAttribute,
-  //   useDictLabelFilter,
-  //   useDict
-  // } from '@/utils/dict/index'
+  import {
+    warehouseDefinition_locationStatus,
+    warehouseDefinition_inventoryList,
+    warehouseDefinition_areaAttribute,
+    useDictLabelFilter,
+    useDict
+  } from '@/utils/dict/index';
   // import CodePrint from './components/CodePrint';
   // import {
   //   warehouseDetails,
   //   warehouseChangeStatus
   // } from '@/api/stockManagement/warehouseDefinition';
-  // import GoodsInfoDialog from './components/GoodsInfoDialog.vue';
+  import GoodsInfoDialog from './components/GoodsInfoDialog.vue';
 
   export default {
-    // components: { GoodsInfoDialog, CodePrint },
+    components: { GoodsInfoDialog },
     data() {
       return {
         warehouseDefinition_areaAttribute,
@@ -321,9 +329,9 @@
         changeLoading: false
       };
     },
-    // filters: {
-    //   useDictLabelFilter: useDictLabelFilter
-    // },
+    filters: {
+      useDictLabelFilter: useDictLabelFilter
+    },
     // computed: {
     //   // 货位状态修改
     //   statusSet: {
@@ -352,7 +360,7 @@
       // this.getInfo();
     },
     methods: {
-      // getStatus: useDict(warehouseDefinition_locationStatus),
+      getStatus: useDict(warehouseDefinition_locationStatus),
       exportCode() {
         this.$refs.codePrintRef.open(this.warehouseAreasSaveList);
       },
@@ -418,14 +426,13 @@
     height: calc(100vh - 80px);
     padding: 10px;
     overflow-y: auto;
-
-    .title-content {
-      .el-button {
-        position: absolute;
-        right: 20px;
-        top: 50%;
-        transform: translateY(-50%);
-      }
+  }
+  .title-content {
+    .el-button {
+      position: absolute;
+      right: 20px;
+      top: 50%;
+      transform: translateY(-50%);
     }
   }
 

+ 11 - 10
src/views/warehouseManagement/warehouseDefinition/index.vue

@@ -173,7 +173,7 @@
 
   // import selectTree from '@/components/selectTree';
   import WarehouseEdit from './components/WarehouseEdit';
-  import org from '@/api/warehouseManagement/warehouseDefinition';
+  import warehouseDefinition from '@/api/warehouseManagement/warehouseDefinition';
   import dictMixins from '@/mixins/dictMixins';
   export default {
     // components: { selectTree, tablePagination, WarehouseEdit },
@@ -221,20 +221,21 @@
       };
     },
     created() {
-      this.requestDict('仓库状态');
-      this.handleList();
+      // this.requestDict('仓库状态');
+      // this.handleList();
       this.initData();
     },
     methods: {
-      initData() {
-        org.tree().then((res) => {
-          if (res?.success) {
-            this.treeList = res.data;
-          }
+      async initData() {
+        //获取工厂车间列表
+        const res = await warehouseDefinition.getFactoryarea({
+          pageNum: 1,
+          size: 9999,
+          type: 1
         });
 
-        let data = org.factorys({ status: true });
-        this.factoryList = data.data;
+        // let data = org.factorys({ status: true });
+        this.factoryList = res.list;
       },
       async handleList() {
         const res = await warehouseListValuable(this.formData);