ysy 1 rok temu
rodzic
commit
6ed3430988
1 zmienionych plików z 102 dodań i 99 usunięć
  1. 102 99
      src/views/produce/components/picking/index.vue

+ 102 - 99
src/views/produce/components/picking/index.vue

@@ -8,89 +8,90 @@
     append-to-body
     append-to-body
     width="80%"
     width="80%"
   >
   >
-    <el-form ref="formRef" :model="formObj" :rules="rules">
-      <div v-for="(item, idx) in formObj.workList" :key="idx">
-        <div class="table_box">
-          <div class="row">
-            <div class="col">
-              <div class="name">生产工单号</div>
-              <div class="content">{{ item.code }}</div>
-            </div>
-            <div class="col">
-              <div class="name">产品编码</div>
-              <div class="content">{{ item.productCode }}</div>
-            </div>
-            <div class="col">
-              <div class="name">产品名称</div>
-              <div class="content">{{ item.productName }}</div>
-            </div>
-            <div class="col">
-              <div class="name">批号</div>
-              <div class="content">{{ item.batchNo }}</div>
-            </div>
-            <div class="col pd6">
-              <el-button
-                type="primary"
-                size="mini"
-                @click="openPicking(item.id, item)"
-                >新增</el-button
-              >
-            </div>
+    <div v-for="(item, idx) in workList" :key="idx">
+      <div class="table_box">
+        <div class="row">
+          <div class="col">
+            <div class="name">生产工单号</div>
+            <div class="content">{{ item.code }}</div>
           </div>
           </div>
-        </div>
-
-        <div>
-          <el-form ref="tableRef" :model="item" :rules="tableRules">
-            <el-table
-              ref="table"
-              :key="'table' + idx"
-              :max-height="300"
-              :data="item.pickList"
-              tooltip-effect="dark"
-              style="width: 100%"
-              stripe
+          <div class="col">
+            <div class="name">产品编码</div>
+            <div class="content">{{ item.productCode }}</div>
+          </div>
+          <div class="col">
+            <div class="name">产品名称</div>
+            <div class="content">{{ item.productName }}</div>
+          </div>
+          <div class="col">
+            <div class="name">批号</div>
+            <div class="content">{{ item.batchNo }}</div>
+          </div>
+          <div class="col pd6">
+            <el-button
+              type="primary"
+              size="mini"
+              @click="openPicking(item.id, item)"
+              >新增</el-button
             >
             >
-              <el-table-column label="序号" type="index" width="50">
-              </el-table-column>
-
-              <el-table-column label="编码" prop="assetCode">
-                <template slot-scope="{ row, $index }">
-                  {{ row.rootCategoryLevelId == 4 ? row.codeNumber : row.code }}
-                </template>
-              </el-table-column>
-
-              <el-table-column label="名称" prop="name"> </el-table-column>
-              <el-table-column label="型号" prop="modelType"> </el-table-column>
-              <el-table-column label="规格" prop="specification">
-              </el-table-column>
-              <el-table-column label="批次号" prop="batchNo"> </el-table-column>
-
-              <el-table-column label="数量" prop="demandQuantity">
-                <template slot-scope="{ row, $index }">
-                  <el-form-item prop="demandQuantity">
-                    <el-input v-model="row.demandQuantity" size="mini">
-                      <template slot="append">{{ row.unit }}</template>
-                    </el-input>
-                  </el-form-item>
-                </template>
-              </el-table-column>
-
-              <el-table-column label="领料仓库" prop="warehouseId">
-                <template slot-scope="{ row, $index }">
-                  <div v-if="row.warehouseList">
-                    <el-select></el-select>
-                  </div>
-
-                  <div v-else>
-                    {{ row.pathName }}
-                  </div>
-                </template>
-              </el-table-column>
-            </el-table>
-          </el-form>
+          </div>
         </div>
         </div>
       </div>
       </div>
-    </el-form>
+
+      <div>
+        <el-form :ref="`tableRef${item.code}`" :model="{ pickList : item}" :rules="tableRules">
+          <el-table
+            ref="table"
+            :ref="`tableRef${item.code}`"
+            :max-height="300"
+            :data="item.pickList"
+            tooltip-effect="dark"
+            style="width: 100%"
+            stripe
+          >
+            <el-table-column label="序号" type="index" width="50">
+            </el-table-column>
+
+            <el-table-column label="编码" prop="assetCode">
+              <template slot-scope="{ row, $index }">
+                {{ row.rootCategoryLevelId == 4 ? row.codeNumber : row.code }}
+              </template>
+            </el-table-column>
+
+            <el-table-column label="名称" prop="name"> </el-table-column>
+            <el-table-column label="型号" prop="modelType"> </el-table-column>
+            <el-table-column label="规格" prop="specification">
+            </el-table-column>
+            <el-table-column label="批次号" prop="batchNo"> </el-table-column>
+
+            <el-table-column label="数量" prop="demandQuantity">
+              <template slot-scope="{ row, $index }">
+                <el-form-item :prop="`pickList[${$index}].demandQuantity`"    :rules="{
+                  required: true, message: '请选择押金支付方式', trigger: 'blur'
+                }">
+                  <el-input v-model="row.demandQuantity" size="mini">
+                    <template slot="append">{{ row.unit }}</template>
+                  </el-input>
+                </el-form-item>
+              </template>
+            </el-table-column>
+
+            <!-- <el-table-column label="领料仓库" prop="warehouseId">
+              <template slot-scope="{ row, $index }">
+                <div v-if="row.warehouseList">
+                  <el-select></el-select>
+                </div>
+
+                <div v-else>
+                  {{ row.pathName }}
+                </div>
+              </template>
+            </el-table-column> -->
+          </el-table>
+        </el-form>
+      </div>
+    </div>
+
     <template slot="footer">
     <template slot="footer">
       <el-button size="mini" @click="handleClose">取 消</el-button>
       <el-button size="mini" @click="handleClose">取 消</el-button>
       <el-button size="mini" type="primary" @click="save()">确 定</el-button>
       <el-button size="mini" type="primary" @click="save()">确 定</el-button>
@@ -123,16 +124,10 @@
     data() {
     data() {
       return {
       return {
         visible: true,
         visible: true,
-        formObj: {
-          workList: []
-        },
+        workList: [],
         rules: {},
         rules: {},
 
 
-        tableRules: {
-          demandQuantity: [
-            { required: true, message: '请输入押金流水号', trigger: 'blur' }
-          ]
-        }
+        tableRules: {}
       };
       };
     },
     },
     computed: {
     computed: {
@@ -149,7 +144,7 @@
           taskId: this.taskObj.id
           taskId: this.taskObj.id
         };
         };
         workorderList(param).then((res) => {
         workorderList(param).then((res) => {
-          this.formObj.workList = res;
+          this.workList = res;
 
 
           this.$forceUpdate();
           this.$forceUpdate();
         });
         });
@@ -163,7 +158,7 @@
       },
       },
 
 
       allSelection(id, list) {
       allSelection(id, list) {
-        this.formObj.workList.forEach((e) => {
+        this.workList.forEach((e) => {
           if (e.id == id) {
           if (e.id == id) {
             e.pickList = list;
             e.pickList = list;
             this.$forceUpdate();
             this.$forceUpdate();
@@ -172,16 +167,16 @@
       },
       },
 
 
       save() {
       save() {
-        let len = this.$refs.tableRef;
-        for (let i = 0; i < len.length; i++) {
-          this.$refs.tableRef[i].validate((valid) => {
-            if (valid) {
-              alert('submit1');
-            } else {
-              return false;
-            }
-          });
-        }
+        let promises = this.workList.map((item) => {
+    
+          return this.$refs[`tableRef${item.code}`][0].validate();
+        });
+        Promise.all(promises).then((results) => {
+          if (results.every((valid) => valid)) {
+            alert('submit1');
+            // 执行提交操作
+          }
+        });
       }
       }
     },
     },
 
 
@@ -204,6 +199,7 @@
       width: 100%;
       width: 100%;
       display: flex;
       display: flex;
     }
     }
+
     .col {
     .col {
       width: calc(100% / 5);
       width: calc(100% / 5);
       display: flex;
       display: flex;
@@ -216,6 +212,7 @@
       &:last-child {
       &:last-child {
         border-right: none;
         border-right: none;
       }
       }
+
       .name {
       .name {
         display: flex;
         display: flex;
         align-items: center;
         align-items: center;
@@ -237,3 +234,9 @@
     }
     }
   }
   }
 </style>
 </style>
+
+<style>
+  :v-deep .el-form-item__error {
+    bottom: -6px !important;
+  }
+</style>