ysy 2 年 前
コミット
824f684753

+ 90 - 0
src/views/material/product/components/aridRegion.vue

@@ -0,0 +1,90 @@
+<template>
+    <ele-modal :visible.sync="visible" title="干燥区" width="80%" @close="cancel">
+
+        <ele-pro-table ref="table" row-key="id" :columns="columns" :datasource="datasource" :default-expand-all="false"
+            :need-page="false" cache-key="systemMenuTable" @done="onDone">
+            <!-- 表头工具栏 -->
+            <template v-slot:toolbar>
+                <el-button size="small" type="primary" icon="el-icon-plus" class="ele-btn-icon" @click="openAdd">
+                    添加
+                </el-button>
+                <el-button class="ele-btn-icon" size="small" @click="expandAll">
+                    展开全部
+                </el-button>
+                <el-button class="ele-btn-icon" size="small" @click="foldAll">
+                    折叠全部
+                </el-button>
+               
+            </template>
+        </ele-pro-table>
+
+        <aridRegionAdd ref="regionAddRef"></aridRegionAdd>
+
+    </ele-modal>
+</template>
+    
+<script>
+import aridRegionAdd from './aridRegionAdd'
+export default {
+    components: {
+        aridRegionAdd
+    },
+
+    data() {
+        return {
+
+            columns: [
+                {
+                    columnKey: 'index',
+                    type: 'index',
+                    width: 45,
+                    align: 'center',
+                    showOverflowTooltip: true,
+                    fixed: 'left'
+                },
+                {
+                    prop: 'name',
+                    label: '菜单名称',
+                    showOverflowTooltip: true,
+                    minWidth: 110,
+                    slot: 'name'
+                },
+            ],
+            visible: false,
+
+            menuList: [],
+        };
+    },
+    created() {
+
+    },
+
+    methods: {
+        open(row) {
+            this.visible = true;
+
+        },
+        cancel() {
+            this.visible = false;
+
+
+        },
+
+        /* 表格渲染完成回调 */
+        onDone({ data }) {
+
+            this.menuList = data;
+
+        },
+
+        openAdd() {
+            this.$refs.regionAddRef.open()
+        },
+
+
+    }
+};
+</script>
+    
+<style lang="scss" scoped></style>
+    

+ 210 - 0
src/views/material/product/components/aridRegionAdd.vue

@@ -0,0 +1,210 @@
+<template>
+    <ele-modal :visible.sync="visible" append-to-body title="干燥区新增" width="75%" @close="cancel">
+
+
+        <div class="area">
+            <div class="mt20 reservoirArea">
+                <span>库区</span>
+                <el-button type="primary" icon="el-icon-plus" size="small" @click="addArea">添加库区
+                </el-button>
+            </div>
+            <div class="mt10">
+                <el-form :model="areaForm" ref="areaFormName" class="areaForm" :rules="areaRules">
+                    <el-table ref="multipleTable" :data="areaForm.warehouseAreasSaveList" tooltip-effect="dark"
+                        style="width: 100%" stripe :header-cell-style="{ background: '#EEEEEE', border: 'none' }">
+                        <el-table-column label="干燥区名称" prop="name">
+                            <template slot-scope="{ row, $index }">
+                                <el-form-item :prop="'warehouseAreasSaveList.' + $index + '.name'" :rules="areaRules.name">
+                                    <el-input placeholder="请输入" clearable v-model="row.name"></el-input>
+                                </el-form-item>
+                            </template>
+                        </el-table-column>
+
+                        <el-table-column label="干燥区编码" prop="code">
+                            <template slot-scope="{ row, $index }">
+                                <el-form-item :prop="'warehouseAreasSaveList.' + $index + '.code'" :rules="areaRules.code">
+                                    <el-input placeholder="请输入" clearable v-model="row.code"></el-input>
+                                </el-form-item>
+                            </template>
+                        </el-table-column>
+
+                        <el-table-column label="长度(cm)" prop="length">
+                            <template slot-scope="{ row, $index }">
+                                <el-form-item :prop="'warehouseAreasSaveList.' + $index + '.length'"
+                                    :rules="areaRules.length">
+                                    <el-input placeholder="请输入" clearable v-model="row.length"></el-input>
+                                </el-form-item>
+                            </template>
+                        </el-table-column>
+
+
+
+                        <el-table-column label="宽度(cm)" prop="breadth">
+                            <template slot-scope="{ row, $index }">
+                                <el-form-item :prop="'warehouseAreasSaveList.' + $index + '.breadth'"
+                                    :rules="areaRules.breadth">
+                                    <el-input placeholder="请输入" clearable v-model="row.breadth"></el-input>
+                                </el-form-item>
+                            </template>
+                        </el-table-column>
+
+                        <el-table-column label="位置" prop="region" min-width="120">
+                            <template slot-scope="{ row, $index }">
+                                <el-form-item :prop="'warehouseAreasSaveList.' + $index + '.region'"
+                                    :rules="areaRules.region">
+                                    <el-input placeholder="请输入" clearable v-model="row.region"></el-input>
+                                </el-form-item>
+                            </template>
+                        </el-table-column>
+
+
+
+                        <el-table-column label="车位数量">
+                            <template slot-scope="scope">
+                                <el-form-item :prop="'warehouseAreasSaveList.' + scope.$index + '.quantity'
+                                    " :rules="areaRules.quantity">
+                                    <el-input placeholder="请输入" type="number" @mousewheel.native.prevent @input="(value) =>
+                                    (scope.row.quantity = value.replace(
+                                        /^(0+)|[^\d]+/g,
+                                        ''
+                                    ))
+                                        " v-model.number="scope.row.quantity" clearable></el-input>
+                                </el-form-item>
+
+                            </template>
+                        </el-table-column>
+
+
+                        <el-table-column label="操作" fixed="right" width="150">
+                            <template slot-scope="{ row, $index }">
+                                <el-button type="text" v-if="row.isEdit" @click="saveArea($index)">保存</el-button>
+                                <el-button type="text" v-else @click="addShelf(row, $index)">添加货架</el-button>
+                                <el-button type="text" @click="remove1($index, row)">删除库区</el-button>
+                            </template>
+                        </el-table-column>
+                    </el-table>
+                </el-form>
+            </div>
+        </div>
+
+    </ele-modal>
+</template>
+    
+<script>
+
+export default {
+
+    data() {
+        return {
+            visible: false,
+            areaForm: {
+                warehouseAreasSaveList: [], //库区
+                areaGoodsshelvesList: [], //货架
+
+            },
+
+            areaRules: {
+                code: { required: true, message: '请输入库区编号', trigger: 'blur' },
+            }
+        };
+    },
+    created() {
+
+    },
+
+    methods: {
+        open() {
+            this.visible = true;
+
+        },
+        cancel() {
+            this.visible = false;
+        },
+
+
+        addArea() {
+
+            this.areaForm.warehouseAreasSaveList.push({
+                code: '',
+                name: '',
+                isEdit: true
+
+            });
+        },
+
+        saveArea(index) {
+            
+        }
+
+
+
+    }
+};
+</script>
+    
+<style lang="scss" scoped>
+.p20 {
+    padding: 20px;
+}
+
+.mt20 {
+    margin-top: 20px;
+}
+
+.mt10 {
+    margin-top: 10px;
+}
+
+::v-deep .el-select {
+    width: 100%;
+}
+
+.el-form-item {
+    margin-bottom: 22px;
+}
+
+.areaForm {
+    .el-form-item {
+        margin-bottom: 0;
+    }
+}
+
+.warehouseAdd {
+    .el-row {
+        display: block;
+    }
+
+    header {
+        display: flex;
+        justify-content: space-between;
+
+        .title {
+            font-size: 20px;
+            color: #333;
+            font-weight: bold;
+        }
+    }
+}
+
+.reservoirArea {
+    display: flex;
+    justify-content: space-between;
+
+    span {
+        font-size: 14px;
+    }
+}
+
+.center {
+    text-align: center;
+}
+
+.el-select {
+    display: block;
+}
+
+::v-deep input::-webkit-inner-spin-button {
+    -webkit-appearance: none;
+}</style>
+
+    

+ 36 - 6
src/views/material/product/components/goodsAllocation.vue

@@ -6,34 +6,34 @@
       <el-row>
         <el-col :span="8">
           <el-form-item label="层数" prop="levelNum">
-            <el-input v-model="form.levelNum" />
+            <el-input v-model="form.levelNum" :disabled="form.positionList.length" />
           </el-form-item>
         </el-col>
 
         <el-col :span="8">
           <el-form-item label="列数" prop="lineNum">
-            <el-input v-model="form.lineNum" />
+            <el-input v-model="form.lineNum" :disabled="form.positionList.length" />
           </el-form-item>
         </el-col>
 
 
         <el-col :span="8">
           <el-form-item label="长" prop="vehicleLen">
-            <el-input v-model="form.vehicleLen">
+            <el-input v-model="form.vehicleLen" :disabled="form.positionList.length">
               <template slot="append">cm</template>
             </el-input>
           </el-form-item>
         </el-col>
         <el-col :span="8">
           <el-form-item label="宽" prop="wilde">
-            <el-input v-model="form.wilde">
+            <el-input v-model="form.wilde" :disabled="form.positionList.length">
               <template slot="append">cm</template>
             </el-input>
           </el-form-item>
         </el-col>
         <el-col :span="8">
           <el-form-item label="高" prop="hight">
-            <el-input v-model="form.hight">
+            <el-input v-model="form.hight" :disabled="form.positionList.length">
               <template slot="append">cm</template>
             </el-input>
           </el-form-item>
@@ -42,7 +42,9 @@
 
         <el-col :span="8">
           <el-form-item>
-            <el-button size="small" type="primary" @click="handleHjCode">生成货位</el-button>
+            <el-button size="small" v-if="form.positionList.length == 0" type="primary"
+              @click="handleHjCode">生成货位</el-button>
+            <el-button size="small" v-else type="primary" @click="addHjCode">添加货位</el-button>
           </el-form-item>
 
         </el-col>
@@ -270,6 +272,34 @@ export default {
 
     },
 
+
+    addHjCode() {
+      this.$prompt('请输入', '添加货位数', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        inputPattern: /[1-9]\d*/,
+        inputErrorMessage: '请输入正整数'
+      }).then(({ value }) => {
+
+        for (var i = 0; i < value; i++) {
+          let obj1111 = {
+            code: '',
+            length: this.form.vehicleLen ? Number(this.form.vehicleLen / Number(this.form.lineNum)).toFixed(0) : '',
+            breadth: this.form.wilde,
+            altitude: this.form.hight ? Number(this.form.hight / Number(this.form.levelNum)).toFixed(0) : '',
+            weightLimit: '',
+            volume: ''
+          };
+
+          this.form.positionList.push(obj1111)
+        }
+      }).catch(() => {
+
+
+
+      });
+    },
+
     handleMine() {
       this.$refs.form.clearValidate()
       const ruleName = this.hjForm.code;

+ 18 - 2
src/views/material/product/components/index-data.vue

@@ -67,6 +67,10 @@
           货位
         </el-link>
 
+        <el-link  type="primary" v-if="row.categoryLevelPathIdParent == 11" :underline="false"  @click="handleAridRegion(row)" >
+          干燥区
+        </el-link>
+
 
       </template>
     </ele-pro-table>
@@ -84,8 +88,12 @@
 
     <linkMaterialDialog ref="linkMaterialDialogRef" @success="success" />
 
+    <!-- 货位 -->
     <goodsAllocation ref="allocationRef"></goodsAllocation>
-
+    
+    <!-- 干燥区 -->
+    <aridRegion ref="aridRegionRef"></aridRegion>
+    
   </div>
 </template>
 
@@ -96,13 +104,15 @@ import ParamEdit from '@/views/technology/productParam/components/user-edit.vue'
 import mouldDialog from './mouldDialog'
 import linkMaterialDialog from './link-material-dialog.vue';
 import goodsAllocation from './goodsAllocation.vue'
+import aridRegion from './aridRegion'
 export default {
   components: {
     MaterialModal,
     ParamEdit,
     mouldDialog,
     linkMaterialDialog,
-    goodsAllocation
+    goodsAllocation,
+    aridRegion
   },
   props: {
     // 物料组id
@@ -310,10 +320,16 @@ export default {
 
       handAllocation(row) {
         this.$refs.allocationRef.open(row)
+      },
+
+      handleAridRegion(row){
+        this.$refs.aridRegionRef.open(row)
       }
 
 
 
+
+
   },
   watch: {
     // 监听物料组id变化