src/views/productionManagement/workOrder/index.vue
@@ -25,6 +25,7 @@
                :tableData="tableData"
                :page="page"
                :tableLoading="tableLoading"
                :rowClassName="rowClassName"
                @pagination="pagination">
        <template #completionStatus="{ row }">
          <el-progress :percentage="toProgressPercentage(row?.completionStatus)"
@@ -211,6 +212,7 @@
                       :value="user.userId"/>
          </el-select>
        </el-form-item>
        <ProductionRecordForm ref="productionRecordFormRef" :list="processParamList"/>
      </el-form>
      <template #footer>
        <span class="dialog-footer">
@@ -224,6 +226,18 @@
    <CopperPrintingForm
        v-if="copperPrintingFormVisible"
        v-model:isShow="copperPrintingFormVisible"
        :isEdit="true"
        :row="currentReportRowData"
        @refreshData="getList"/>
    <VoltageSortingForm
        v-if="voltageSortingFormVisible"
        v-model:isShow="voltageSortingFormVisible"
        :isEdit="true"
        :row="currentReportRowData"
        @refreshData="getList"/>
    <GranulationForm
        v-if="granulationFormVisible"
        v-model:isShow="granulationFormVisible"
        :isEdit="true"
        :row="currentReportRowData"
        @refreshData="getList"/>
@@ -244,11 +258,17 @@
import QRCode from "qrcode";
import {getCurrentInstance, reactive, toRefs} from "vue";
import FilesDia from "./components/filesDia.vue";
import {
  listPage as listProcessParamPage,
} from "@/api/productionManagement/productProcessParameter.js";
const {proxy} = getCurrentInstance();
const {priority_type} = proxy.useDict("priority_type");
const CopperPrintingForm = defineAsyncComponent(() => import("./components/CopperPrintingForm.vue"));
const VoltageSortingForm = defineAsyncComponent(() => import("./components/VoltageSortingForm.vue"));
const ProductionRecordForm = defineAsyncComponent(() => import("./components/ProductionRecordForm.vue"));
const GranulationForm = defineAsyncComponent(() => import("./components/GranulationForm.vue"));
const tableColumn = ref([
  {
    label: "优先级",
@@ -270,7 +290,7 @@
  //   width: "80",
  // },
  {
    label: "工单编号",
    label: "工单编号1",
    prop: "workOrderNo",
    width: "140",
  },
@@ -375,6 +395,8 @@
const qrRowData = ref(null);
const editDialogVisible = ref(false);
const copperPrintingFormVisible = ref(false);
const voltageSortingFormVisible = ref(false);
const granulationFormVisible = ref(false);
const transferCardVisible = ref(false);
const transferCardData = ref([]);
const transferCardQrUrl = ref("");
@@ -393,7 +415,11 @@
  productProcessRouteItemId: "",
  userId: "",
  productMainId: null,
  otherData: {
    rows: [],
  }
});
const productionRecordFormRef = ref();
// 本次生产数量验证规则
const validateQuantity = (rule, value, callback) => {
@@ -433,6 +459,13 @@
  scrapQty: [
    {validator: validateScrapQty, trigger: 'blur'}
  ]
};
const rowClassName = ({row}) => {
  if (Number(row.completionStatus) > 0 && Number(row.actualQualifiedRate) < Number(row.processQualifiedRate)) {
    return 'danger-row';
  }
  return '';
};
// 处理本次生产数量输入,限制必须大于等于1
@@ -623,12 +656,36 @@
      });
};
const showReportDialog = row => {
const processParamPage = reactive({
  current: 1,
  size: 9999,
  total: 0,
});
const getProcessParamList = async (row) => {
  const params = {
    processId: row.processId,
    ...processParamPage,
  };
  const res = await listProcessParamPage(params)
  return res.data.records
};
const processParamList = ref([])
const showReportDialog = async row => {
  currentReportRowData.value = row;
  if (row.processName === '印铜' || row.processName === '印银') {
    copperPrintingFormVisible.value = true
    return
  }
  if (row.processName === '电压分选') {
    voltageSortingFormVisible.value = true
    return;
  }
  if (row.processName === '造粒') {
    granulationFormVisible.value = true
    return;
  }
  processParamList.value = await getProcessParamList(row)
  reportForm.planQuantity = row.planQuantity;
  reportForm.quantity = row.quantity !== undefined && row.quantity !== null ? row.quantity : null;
  reportForm.productProcessRouteItemId = row.productProcessRouteItemId;
@@ -658,7 +715,9 @@
  workOrderFilesRef.value?.openDialog(row);
};
const handleReport = () => {
const handleReport = async () => {
  const data = await productionRecordFormRef.value.submitData()
  reportForm.otherData.rows = data || [];
  reportFormRef.value?.validate((valid) => {
    if (!valid) {
      return false;
@@ -710,7 +769,8 @@
    const submitData = {
      ...reportForm,
      quantity: quantity,
      scrapQty: scrapQty
      scrapQty: scrapQty,
      otherData: JSON.stringify(reportForm.otherData)
    };
    // console.log(submitData);
@@ -823,7 +883,11 @@
}
</style>
<style lang="scss">
<style lang="scss" scoped>
:deep(.danger-row td) {
  color: #e95a66 !important;
}
@media print {
  @page {
    size: landscape;