gaoluyang
2025-11-14 7efe917a161f7c6965cfa75ac5ad7e664dcc1eb4
src/views/productionManagement/operationScheduling/components/formDia.vue
@@ -8,11 +8,11 @@
    >
      <el-button type="primary" @click="addRow" style="margin-bottom: 10px;">新增</el-button>
         <span style="font-size: 18px;margin-left: 10px">待排产数量:{{pendingNum}}</span>
         <div style="margin-bottom: 10px; margin-left: 10px;">
            <el-form-item label="领用:" style="margin-bottom: 0;">
               <el-input v-model="receive" placeholder="请输入领用" style="width: 200px;" />
            </el-form-item>
         </div>
<!--         <div style="margin-bottom: 10px; margin-left: 10px;">-->
<!--            <el-form-item label="领用:" style="margin-bottom: 0;">-->
<!--               <el-input v-model="receive" placeholder="请输入领用" style="width: 200px;" />-->
<!--            </el-form-item>-->
<!--         </div>-->
      <el-table :data="tableData" border style="width: 100%" :summary-method="summarizeMainTable" show-summary :row-key="row => row.id">
        <el-table-column label="序号" width="60" align="center">
          <template #default="scope">
@@ -45,11 +45,6 @@
                     clearable
                     style="width: 100%"
                  />
          </template>
        </el-table-column>
      <el-table-column label="损耗" prop="loss" width="150">
          <template #default="scope">
            <el-input v-model="scope.row.loss" placeholder="请输入损耗" />
          </template>
        </el-table-column>
        <el-table-column label="工时定额" width="200" prop="workHours">
@@ -108,7 +103,7 @@
</template>
<script setup>
import {ref} from "vue";
import {ref, getCurrentInstance} from "vue";
import {userListNoPageByTenantId} from "@/api/system/user.js";
import {processScheduling} from "@/api/productionManagement/operationScheduling.js";
const { proxy } = getCurrentInstance()
@@ -117,12 +112,11 @@
const dialogFormVisible = ref(false);
const operationType = ref('')
const tableData = ref([
   { process: '', schedulingDate: '', schedulingNum: null, schedulingUserId: '', workHours: null, unit: '', remark: '', loss: '', type: '' }
]);
const tableData = ref([]);
const unitFromRow = ref('');
const idFromRow = ref('');
const pendingNum = ref('');
const specificationModelFromRow = ref('');
const pendingNum = ref(0);
const userList = ref([])
const receive = ref('')
@@ -133,18 +127,25 @@
   userListNoPageByTenantId().then((res) => {
      userList.value = res.data;
   });
   pendingNum.value = row.pendingNum
  if (row && row.unit !== undefined) {
    unitFromRow.value = row.unit;
    idFromRow.value = row.id;
    tableData.value.forEach(item => {
      item.unit = row.unit;
      item.id = row.id;
   pendingNum.value = row?.pendingNum ?? 0;
   unitFromRow.value = row?.unit ?? '';
   idFromRow.value = row?.id ?? '';
   specificationModelFromRow.value = row?.specificationModel ?? '';
   tableData.value = [createRow()];
}
const createRow = () => ({
   id: idFromRow.value,
   process: '',
   schedulingDate: '',
   schedulingNum: null,
   schedulingUserId: '',
   workHours: null,
   unit: unitFromRow.value,
   remark: '',
   type: specificationModelFromRow.value,
    });
  } else {
    unitFromRow.value = '';
  }
}
const submitForm = () => {
   // 1. 检查每一行是否填写完整
   for (let i = 0; i < tableData.value.length; i++) {
@@ -169,11 +170,14 @@
      proxy.$modal.msgError('排产数量合计不能超过待排产数量');
      return;
   }
   // 3. 将 receive 字段添加到每条数据中
   const submitData = tableData.value.map(row => ({
      ...row,
   // 3. 将 receive 字段添加到每条数据中,并移除 loss 字段
   const submitData = tableData.value.map(row => {
      const { loss, ...rest } = row;
      return {
         ...rest,
      receive: receive.value
   }));
      };
   });
   processScheduling(submitData).then((res) => {
      proxy.$modal.msgSuccess("提交成功");
      closeDia();
@@ -186,6 +190,11 @@
const closeDia = () => {
  dialogFormVisible.value = false;
  receive.value = '';
  tableData.value = [];
  unitFromRow.value = '';
  idFromRow.value = '';
  specificationModelFromRow.value = '';
  pendingNum.value = 0;
  emit('close')
};
defineExpose({
@@ -193,7 +202,7 @@
});
const addRow = () => {
  tableData.value.push({ id: idFromRow.value, process: '', unit: unitFromRow.value, schedulingNum: null, workHours: null, schedulingDate: '', schedulingUserId: '', remark: '', loss: '', type: '' });
  tableData.value.push(createRow());
};
const removeRow = (index) => {
  tableData.value.splice(index, 1);