huminmin
11 小时以前 a1f37f9b5be8978fce0cd670f4e455e2fb2c6d9b
src/views/productionManagement/workOrder/index.vue
@@ -12,6 +12,17 @@
                    clearable
                    prefix-icon="Search"/>
        </div>
        <div class="search-item">
          <span class="search_title">生产订单号:</span>
          <el-input v-model="searchForm.productOrderNpsNo"
                    style="width: 240px"
                    placeholder="请输入"
                    @change="handleQuery"
                    clearable
                    prefix-icon="Search"/>
        </div>
        <div class="search-item">
          <el-button type="primary"
                     @click="handleQuery">搜索
@@ -25,6 +36,7 @@
                :tableData="tableData"
                :page="page"
                :tableLoading="tableLoading"
                :rowClassName="rowClassName"
                @pagination="pagination">
        <template #completionStatus="{ row }">
          <el-progress :percentage="toProgressPercentage(row?.completionStatus)"
@@ -211,6 +223,7 @@
                       :value="user.userId"/>
          </el-select>
        </el-form-item>
        <ProductionRecordForm ref="productionRecordFormRef" :list="processParamList"/>
      </el-form>
      <template #footer>
        <span class="dialog-footer">
@@ -224,6 +237,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 +269,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 +301,7 @@
  //   width: "80",
  // },
  {
    label: "工单编号",
    label: "工单编号1",
    prop: "workOrderNo",
    width: "140",
  },
@@ -364,7 +395,7 @@
        clickFun: row => {
          showReportDialog(row);
        },
        disabled: row => row.planQuantity <= 0,
        disabled: row => !row.isCanReport || row.planQuantity <= 0,
      },
    ],
  },
@@ -375,6 +406,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 +426,11 @@
  productProcessRouteItemId: "",
  userId: "",
  productMainId: null,
  otherData: {
    rows: [],
  }
});
const productionRecordFormRef = ref();
// 本次生产数量验证规则
const validateQuantity = (rule, value, callback) => {
@@ -433,6 +470,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
@@ -498,6 +542,7 @@
const data = reactive({
  searchForm: {
    workOrderNo: "",
    productOrderNpsNo: "",
  },
});
const {searchForm} = toRefs(data);
@@ -623,12 +668,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 +727,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 +781,8 @@
    const submitData = {
      ...reportForm,
      quantity: quantity,
      scrapQty: scrapQty
      scrapQty: scrapQty,
      otherData: JSON.stringify(reportForm.otherData)
    };
    // console.log(submitData);
@@ -823,7 +895,11 @@
}
</style>
<style lang="scss">
<style lang="scss" scoped>
:deep(.danger-row td) {
  color: #e95a66 !important;
}
@media print {
  @page {
    size: landscape;