chenlu
2024-12-12 515025ffd3ace6f7382f9a853d3aba50f191c8d0
north-glass-erp/northglass-erp/src/components/pp/PrintProcess.vue
@@ -30,12 +30,14 @@
let props = defineProps({
  printList: null,
  printMerge: null,
  printLike: null
  printLike: null,
  printProject:null
})
const {currentRoute} = useRouter()
const route = currentRoute.value
const printMerge = props.printMerge
const printProject = props.printProject
//打印时间
const currentTime = new Date();
@@ -56,94 +58,28 @@
data.value.printList = JSON.parse(props.printList)
let flowCardCount = ''
onMounted(() => {
      request.post(`/processCard/getSelectPrinting/${merge}/${like}`, data.value).then((res) => {
        if (res.code == 200) {
          produceList.value = deepClone(res.data.data)
          //处理单片厚度
          for (let j = 0; j < produceList.value.length; j++) {
            let sumWeight = 0
            produceList.value[j].detailList.forEach((item, index) => {
              // 解析 separation 字段的 JSON 字符串
              let separationObj = JSON.parse(item.separation);
              // 获取 thickness 的原始值
              let thicknessValue = separationObj.thickness;
              // 去除 'mm' 单位
              let thicknessWithoutUnit = thicknessValue.replace('mm', '');
              item.separation = thicknessWithoutUnit
              sumWeight += item.width * item.height * item.quantity / 1000000 * item.separation * 2.5 * 1;
            });
            produceList.value[j].detail[0].weight = sumWeight
  console.log(printProject)
      if(props.printProject!=null){
        request.post(`/processCard/getSelectPrintProject/${printProject}`).then((res) => {
          if (res.code == 200) {
            console.log(res.data.data)
            load(res.data.data)
          } else {
            ElMessage.warning(res.msg)
            router.push("/login")
          }
          //处理合并打印
          if (printMerge !== null && printMerge !== undefined && printMerge !== "") {
            produceList.value.forEach(item => {
              item.detail[0].technologyNumber = printMerge;
            });
            //合并打印工艺流程处理
            if (like == null) {
              let process = produceList.value[0].detail[0].process
              let indexOfJiaJiao = process.indexOf('夹胶');
              if (indexOfJiaJiao !== -1) {
                // 使用 substring 截取 "夹胶" 后面的部分,包括 "夹胶" 本身
                let afterJiaJiao = process.substring(indexOfJiaJiao).trim();
                produceList.value.forEach(item => {
                  item.detail[0].process = afterJiaJiao
                })
              }
              let indexOfProceList = produceList.value[0].processList
              let getProceList = indexOfProceList.findIndex(item => item.process === '夹胶');
              if (getProceList !== -1) {
                // 使用 filter 方法过滤出 "夹胶" 及其之后的对象
                produceList.value[0].processList = indexOfProceList.filter((item, index) => index >= getProceList);
              }
            }
            }
          produceList.value.forEach(item => {
            let technologyNumberMerge = printMerge.split('').join(',');
            item.detail[0].technologyNumberMerge = technologyNumberMerge
          })
          //处理编号列
          //定义存放编号数组
          const s01Values = [];
          for (let i = 0; i < produceList.value.length; i++) {
            const s01Values = [];
            // 遍历 detailList 数组,提取 S01 值到 s01Values 数组
            if (produceList.value[i].detailList[0].other_columns != null
                || produceList.value[i].detailList[0].other_columns != undefined) {
              produceList.value[i].detailList.forEach(element => {
                const otherColumnsObject = JSON.parse(element.other_columns);
                const s01Value = otherColumnsObject.S01;
                s01Values.push(s01Value || ''); // 如果 S01 值为空,添加空字符串或者其他默认值
              });
              // 将 s01Values 中的值赋给每个订单详情对象的 s01Value 属性
              produceList.value[i].detailList.forEach((detail, index) => {
                detail.s01Value = index < s01Values.length ? s01Values[index] : ''; // 赋值给 s01Value 属性
              });
            }
        })
      }else{
        request.post(`/processCard/getSelectPrinting/${merge}/${like}`, data.value).then((res) => {
          if (res.code == 200) {
            load(res.data.data)
          } else {
            ElMessage.warning(res.msg)
            router.push("/login")
          }
          //处理同配置打印
          handleGetQRCode()
          handleSummary()
          AreaQuantitySummary()
        } else {
          ElMessage.warning(res.msg)
          router.push("/login")
        }
      })
        })
      }
    }
)
@@ -209,6 +145,91 @@
  }
}
const load = (data) => {
  produceList.value = deepClone(data)
  //处理单片厚度
  for (let j = 0; j < produceList.value.length; j++) {
    let sumWeight = 0
    produceList.value[j].detailList.forEach((item, index) => {
      // 解析 separation 字段的 JSON 字符串
      let separationObj = JSON.parse(item.separation);
      // 获取 thickness 的原始值
      let thicknessValue = separationObj.thickness;
      // 去除 'mm' 单位
      let thicknessWithoutUnit = thicknessValue.replace('mm', '');
      item.separation = thicknessWithoutUnit
      sumWeight += item.width * item.height * item.quantity / 1000000 * item.separation * 2.5 * 1;
    });
    produceList.value[j].detail[0].weight = sumWeight
  }
  //处理合并打印
  if (printMerge !== null && printMerge !== undefined && printMerge !== "") {
    produceList.value.forEach(item => {
      item.detail[0].technologyNumber = printMerge;
    });
    //合并打印工艺流程处理
    if (like == null) {
      let process = produceList.value[0].detail[0].process
      let indexOfJiaJiao = process.indexOf('夹胶');
      if (indexOfJiaJiao !== -1) {
        // 使用 substring 截取 "夹胶" 后面的部分,包括 "夹胶" 本身
        let afterJiaJiao = process.substring(indexOfJiaJiao).trim();
        produceList.value.forEach(item => {
          item.detail[0].process = afterJiaJiao
        })
      }
      let indexOfProceList = produceList.value[0].processList
      let getProceList = indexOfProceList.findIndex(item => item.process === '夹胶');
      if (getProceList !== -1) {
        // 使用 filter 方法过滤出 "夹胶" 及其之后的对象
        produceList.value[0].processList = indexOfProceList.filter((item, index) => index >= getProceList);
      }
    }
  }
  produceList.value.forEach(item => {
    let technologyNumberMerge = printMerge.split('').join(',');
    item.detail[0].technologyNumberMerge = technologyNumberMerge
  })
  //处理编号列
  //定义存放编号数组
  const s01Values = [];
  for (let i = 0; i < produceList.value.length; i++) {
    const s01Values = [];
    // 遍历 detailList 数组,提取 S01 值到 s01Values 数组
    if (produceList.value[i].detailList[0].other_columns != null
        || produceList.value[i].detailList[0].other_columns != undefined) {
      produceList.value[i].detailList.forEach(element => {
        const otherColumnsObject = JSON.parse(element.other_columns);
        const s01Value = otherColumnsObject.S01;
        s01Values.push(s01Value || ''); // 如果 S01 值为空,添加空字符串或者其他默认值
      });
      // 将 s01Values 中的值赋给每个订单详情对象的 s01Value 属性
      produceList.value[i].detailList.forEach((detail, index) => {
        detail.s01Value = index < s01Values.length ? s01Values[index] : ''; // 赋值给 s01Value 属性
      });
    }
  }
  //处理同配置打印
  handleGetQRCode()
  handleSummary()
  AreaQuantitySummary()
}
const AreaQuantitySummary = () => {
  for (let i = 0; i < produceList.value.length; i++) {
@@ -234,7 +255,7 @@
          <div style="float: left;"><input style="border: none;font-size: 28px;width: 70px;margin: 5px  "/></div>
          <div id="bj" style="float: right;font-size: 28px">{{ id + 1 }}</div>
          <div>{{ company.companyName }}</div>
          <div>生产流程卡</div>
          <div>生产流程卡<span v-if="printProject!=null">({{ printProject }})</span></div>
          <div  style="font-weight: bolder;display: flex;justify-content:space-between">
            <div>
              打印人:{{user.user.userName}} &nbsp;&nbsp;