chrislee 2 هفته پیش
والد
کامیت
592a9ea934
2فایلهای تغییر یافته به همراه91 افزوده شده و 86 حذف شده
  1. 3 0
      src/views/modules/order/order.vue
  2. 88 86
      src/views/modules/production/scheduling-commission.vue

+ 3 - 0
src/views/modules/order/order.vue

@@ -61,6 +61,9 @@
         <el-table-column prop="productSpec" header-align="center" align="center" min-width="160"
           :show-tooltip-when-overflow="true" label="物料规格">
         </el-table-column>
+        <el-table-column prop="orderCnt" header-align="center" align="center" min-width="80"
+          :show-tooltip-when-overflow="true" label="任务数量">
+        </el-table-column>
         <el-table-column prop="cnt" header-align="center" align="center" min-width="80" label="单套数量">
         </el-table-column>
         <el-table-column prop="planCnt" header-align="center" align="center" min-width="80" label="生产数量">

+ 88 - 86
src/views/modules/production/scheduling-commission.vue

@@ -1,91 +1,85 @@
 <!-- 委外 -->
 <template>
-    <div>
-        <div class="my-title">委外</div>
-        <!-- 表单 -->
-        <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="auto">
-          <div class="form-item" v-for="(item, index) in dataForm.list" :key="item.purchaseDetailId">
-            <el-row>
-            <el-col :span="6">
-              <el-form-item label="物料名称">
-                <span>{{item.productName}}</span>
-              </el-form-item>
-            </el-col>
-            <el-col :span="6">
-              <el-form-item label="物料规格">
-                <span>{{item.productSpec}}</span>
-              </el-form-item>
-            </el-col>
-            <el-col :span="6">
-              <el-form-item label="数量">
-                <span>{{item.cnt}}</span>
-              </el-form-item>
-            </el-col>
-            <el-col :span="6">
-              <el-form-item label="图号">
-                <span>{{item.batchNumber}}</span>
-              </el-form-item>
-            </el-col>
-          </el-row>
-          <el-row class="my-row">
-            <el-col :span="6">
-              <el-form-item label="类别" :prop="'list.' + index + '.commissionType'" :rules="dataRule.commissionType">
-                <el-select
-                  v-model="dataForm.commissionType"
-                  remote
-                  placeholder="请选择">
-                  <el-option
-                    v-for="item in optionsType"
-                    :key="item.code"
-                    :label="item.value"
-                    :value="item.code">
-                  </el-option>
-                </el-select>
-              </el-form-item>
-            </el-col>
-            <el-col :span="6">
-              <el-form-item label="要求说明" :prop="'list.' + index + '.specificationExplian'" :rules="dataRule.specificationExplian">
-                <el-input v-model="item.specificationExplian" placeholder="要求说明"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="6">
-              <el-form-item label="委外数量" :prop="'list.' + index + '.cnt'" :rules="dataRule.cnt">
-                <el-input-number v-model="item.cnt" :step="1" :min="0"></el-input-number>
-              </el-form-item>
-            </el-col>
-            <el-col :span="6">
-              <el-form-item label="单位" :prop="'list.' + index + '.unitName'" :rules="dataRule.unitName">
-                <el-input v-model="item.unitName" placeholder="单位单位"></el-input>
-              </el-form-item>
-            </el-col>
-          </el-row>
-          <el-row class="my-row">
-            <el-col :span="12">
-              <el-form-item label="备注" prop="notes">
-                <el-input type="textarea" v-model="item.notes"></el-input>
-              </el-form-item>
-            </el-col>
-          </el-row>
-          </div>
-        </el-form>
-        <span slot="footer" class="dialog-footer">
-          <el-button @click="onChose">取消</el-button>
-          <el-button type="primary" @click="dataFormSubmit()" v-reClick>确定</el-button>
-        </span>
-    </div>
+  <div>
+    <div class="my-title">委外</div>
+    <!-- 表单 -->
+    <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="auto">
+      <div class="form-item" v-for="(item, index) in dataForm.list" :key="item.purchaseDetailId">
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="物料名称">
+              <span>{{ item.productName }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="物料规格">
+              <span>{{ item.productSpec }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="数量">
+              <span>{{ item.cnt }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="图号">
+              <span>{{ item.batchNumber }}</span>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row class="my-row">
+          <el-col :span="6">
+            <el-form-item label="类别" :prop="'list.' + index + '.commissionType'" :rules="dataRule.commissionType">
+              <el-select v-model="item.commissionType" remote placeholder="请选择">
+                <el-option v-for="opt in optionsType" :key="opt.code" :label="opt.value" :value="opt.code">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="要求说明" :prop="'list.' + index + '.specificationExplian'"
+              :rules="dataRule.specificationExplian">
+              <el-input v-model="item.specificationExplian" placeholder="要求说明"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="委外数量" :prop="'list.' + index + '.cnt'" :rules="dataRule.cnt">
+              <el-input-number v-model="item.cnt" :step="1" :min="0"></el-input-number>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="单位" :prop="'list.' + index + '.unitName'" :rules="dataRule.unitName">
+              <el-input v-model="item.unitName" placeholder="单位单位"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row class="my-row">
+          <el-col :span="12">
+            <el-form-item label="备注" prop="notes">
+              <el-input type="textarea" v-model="item.notes"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </div>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="onChose">取消</el-button>
+      <el-button type="primary" @click="dataFormSubmit()" v-reClick>确定</el-button>
+    </span>
+  </div>
 </template>
 
 <script>
-import {commission} from '@/api/production'
+import { commission } from '@/api/production'
 import MaterialComponent from '@/views/modules/common/material-component'
-import {getDictList} from '@/api/dict'
+import { getDictList } from '@/api/dict'
 
 export default {
   name: 'scheduling-commission',
   components: {
     MaterialComponent
   },
-  data () {
+  data() {
     return {
       id: 0,
       dataForm: {
@@ -100,29 +94,37 @@ export default {
       }
     }
   },
-  created () {
+  created() {
     this.getType()
   },
   methods: {
-    onChose () {
+    onChose() {
       this.$emit('onChose')
     },
-    async init (row) {
+    async init(row) {
       this.dataForm.id = row.id
       if (row instanceof Array) {
         this.dataForm.list = row
       } else {
         this.dataForm.list = [row]
       }
+      // 确保每个条目包含 commissionType 字段,保持与表单校验路径一致且可响应
+      this.$nextTick(() => {
+        this.dataForm.list.forEach(it => {
+          if (!Object.prototype.hasOwnProperty.call(it, 'commissionType')) {
+            this.$set(it, 'commissionType', '')
+          }
+        })
+      })
     },
-    validateField (type) {
+    validateField(type) {
       this.$refs.dataForm.validateField(type)
     },
-      // 表单提交
-    dataFormSubmit () {
+    // 表单提交
+    dataFormSubmit() {
       this.$refs['dataForm'].validate((valid) => {
         if (valid) {
-          commission(this.dataForm).then(({data}) => {
+          commission(this.dataForm).then(({ data }) => {
             if (data && data.code === '200') {
               this.$message({
                 message: '操作成功',
@@ -141,8 +143,8 @@ export default {
       })
     },
     // 获取类别
-    getType () {
-      getDictList({type: 'commission_type'}).then(({data}) => {
+    getType() {
+      getDictList({ type: 'commission_type' }).then(({ data }) => {
         if (data) {
           this.optionsType = data
         }
@@ -155,7 +157,7 @@ export default {
 <style scoped>
 .form-item {
   margin: 5px 0;
-  padding:25px 0 5px;
+  padding: 25px 0 5px;
   background-color: #f1f9f9;
   border-radius: 10px;
 }