guoyuji
2024-07-05 cac51e7aacded53a855a65d02ea6c57305ea15fe
Merge branch 'master' of http://bore.pub:10439/r/ERP_override
1个文件已添加
12个文件已修改
297 ■■■■ 已修改文件
north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet1.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/lang/zh.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/router/index.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabel1.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi1.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi2.vue 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel1.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet1.vue
@@ -180,7 +180,7 @@
            <div  style="width: 25%">{{item.DeliveryDetailOtherMoney[0].monery}}</div>
          </div>
        </td>
        <td style="text-align: left;border:none;font-size: 15px;font-weight: bold;" colspan="5">大写金额:&nbsp;&nbsp;&nbsp;&nbsp;{{money}}</td>
        <td style="text-align: left;border:none;font-size: 15px;" colspan="5">大写金额:&nbsp;&nbsp;&nbsp;&nbsp;{{money}}</td>
      </tr>
    </table>
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet4.vue
@@ -25,10 +25,8 @@
  },
  orderProductDetail:[]
})
let productIdData = ref([
])
let productIdData = ref({
})
const selectedValues = ref([])
const grossNum = ref({
@@ -38,16 +36,16 @@
})
const getData = () => {
  request.get(`/order/printOrderProductDetail/${props.orderId}/${selectedValues.value}`).then(res => {
    console.log(res.data)
    data.value= res.data
    productIdData.value=data.value.orderProductDetail
    data.value.orderProductDetail.forEach(item => {
      productIdData.value.push(item.productId)
      grossNum.value.quantity += getQuantity(item.productDetail)
      grossNum.value.grossArea += getArea(item.productDetail)
      grossNum.value.perimeter += getPerimeter(item.productDetail)
      stringToJson(item.productDetail)
    })
    console.log(productIdData.value)
    grossNum.value.quantity = parseFloat(grossNum.value.quantity.toFixed(3))
    grossNum.value.grossArea = parseFloat(grossNum.value.grossArea.toFixed(3))
    grossNum.value.perimeter = parseFloat(grossNum.value.perimeter.toFixed(3))
@@ -58,7 +56,9 @@
const handleChange = () => {
  request.get(`/order/printOrderProductDetail/${props.orderId}/${selectedValues.value}`).then(res => {
    console.log(res.data)
    grossNum.value.quantity=0
    grossNum.value.grossArea=0
    grossNum.value.perimeter=0
    data.value= res.data
    data.value.orderProductDetail.forEach(item => {
      grossNum.value.quantity += getQuantity(item.productDetail)
@@ -66,7 +66,6 @@
      grossNum.value.perimeter += getPerimeter(item.productDetail)
      stringToJson(item.productDetail)
    })
    console.log(productIdData)
    grossNum.value.quantity = parseFloat(grossNum.value.quantity.toFixed(3))
    grossNum.value.grossArea = parseFloat(grossNum.value.grossArea.toFixed(3))
    grossNum.value.perimeter = parseFloat(grossNum.value.perimeter.toFixed(3))
@@ -255,8 +254,8 @@
        <el-option
            v-for="item in productIdData"
            :key="item"
            :label="item"
            :value="item">
            :label='item.productId+"   "+item.productName'
            :value="item.productId">
        </el-option>
      </el-select>
    </el-dialog>
north-glass-erp/northglass-erp/src/lang/zh.js
@@ -388,6 +388,7 @@
        pleaseSelectCustomPrintLabelStyle:'请选择自定义打印标签样式',
        mergePrinting:'合并打印',
        printStatus:'打印状态',
        labelPrinting2:'标签打印2',
    },
    reportingWorks:{
        glassNumber:'编号',
north-glass-erp/northglass-erp/src/router/index.js
@@ -378,6 +378,11 @@
              component: () => import('../views/pp/processCard/PrintCustomLabelSemi.vue'),
            },
            {
              path: 'printCustomLabelSemi2',
              name: 'printCustomLabelSemi2',
              component: () => import('../views/pp/processCard/PrintCustomLabelSemi2.vue'),
            },
            {
              path: 'printLabel1',
              name: 'printLabel1',
              component: () => import('../views/pp/processCard/PrintLabel1.vue'),
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabel1.vue
@@ -35,7 +35,6 @@
const lableType = route.query.lableType
onMounted(() => {
  console.log(lableType)
      request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => {
        if (res.code == 200) {
          produceList.value = deepClone(res.data.title)
@@ -51,7 +50,6 @@
              }
            }
          }
          console.log(lastList.value)
        } else {
          ElMessage.warning(res.msg)
          router.push("/login")
@@ -114,7 +112,7 @@
        <span>{{ item.buildingNumber }}</span>
      </div>
      <div class="row3" v-if="JSON.parse(item.other_columns).S02==null">{{item.width}}*{{item.height}}={{item.quantity}}</div>
      <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}</div>
      <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}={{item.quantity}}</div>
      <div class="row5">
        <span>{{item.remarks}}</span>&nbsp;
        <span>{{ item.processingNote }}</span>
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi1.vue
@@ -35,7 +35,6 @@
const lableType = route.query.lableType
onMounted(() => {
  console.log(lableType)
      request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => {
        if (res.code == 200) {
          produceList.value = deepClone(res.data.title)
@@ -51,7 +50,6 @@
              }
            }
          }
          console.log(lastList.value)
        } else {
          ElMessage.warning(res.msg)
          router.push("/login")
@@ -114,7 +112,7 @@
        <span>{{ item.buildingNumber }}</span>
      </div>
      <div class="row3" v-if="JSON.parse(item.other_columns).S02==null">{{item.width}}*{{item.height}}={{item.quantity}}</div>
      <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}</div>
      <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}={{item.quantity}}</div>
      <div class="row5">
        <span>{{item.remarks}}</span>&nbsp;
        <span>{{ item.processingNote }}</span>
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintCustomLabelSemi2.vue
New file
@@ -0,0 +1,205 @@
<script setup>
import request from "@/utils/request"
import {ElDatePicker, ElMessage} from "element-plus"
import {nextTick, onMounted, onUnmounted, reactive, ref, watch} from "vue"
import {Search} from "@element-plus/icons-vue"
import {useRouter} from 'vue-router'
import {changeFilterEvent, filterChanged} from "@/hook"
import {useI18n} from 'vue-i18n'
import deepClone from "@/utils/deepClone";
import companyInfo from "@/stores/sd/companyInfo"
const company = companyInfo()
//语言获取
const {t} = useI18n()
let router = useRouter()
let produceList = ref([])
let labelList = ref([])
let titleList = ref([])
let dataList = ref([])
let list = ref([])
let lastList=ref([])
let filterData = ref({})
const data = ref({
  printList: []
})
const {currentRoute} = useRouter()
const route = currentRoute.value
data.value.printList = JSON.parse(route.query.printList)
const type = route.query.type
const faceOrientation = route.query.faceOrientation
const lableType = route.query.lableType
onMounted(() => {
  request.post(`/processCard/getSelectPrintLabel1`,data.value).then((res) => {
    if (res.code == 200) {
      produceList.value = deepClone(res.data.data)
      for (let i = 0; i < produceList.value.length; i++) {
        let count= produceList.value[i].data.length
        for (let j = 0; j < count; j++) {
          for (let k = 0; k < produceList.value[i].data[j].quantity; k++){
            labelList.value.push(produceList.value[i].data[j])
          }
        }
      }
      console.log(labelList.value)
    } else {
      ElMessage.warning(res.msg)
      router.push("/login")
    }
  })
    }
)
// 打印方法
const printFlowCard = () => {
  // 需要打印的局部区域赋予"print-wrap"的id
  let el = document.getElementById("printFlowCard");
  let doc = document;
  let body = doc.body || doc.getElementsByTagName("body")[0];
  let printId = "print-" + Date.now();
  // 创建无副作用的打印容器(因不确定页面的打印元素有无其它样式)
  let content = doc.createElement("div");
  content.id = printId;
  // 样式控制与打印无关的元素隐藏
  let style = doc.createElement("style");
  style.innerHTML =
      "body>#" +
      printId +
      "{display:none}@media print{body>:not(#" +
      printId +
      "){display:none !important}body>#" +
      printId +
      "{display:block;padding-top:1px}}";
  //
  content.innerHTML = el.outerHTML;
  // // console.log("el.outerHTML", el.outerHTML);
  body.appendChild(style);
  // 与style元素设置的样式相配合
  // 把打印内容的元素添加到body(作为body的子元素,可用body的子选择器 '>' 控制打印样式)
  body.appendChild(content);
  setTimeout(() => {
    window.print();
    body.removeChild(content);
    body.removeChild(style);
  }, 20);
}
</script>
<template>
  <el-button id="printButton" @click="printFlowCard();">{{ $t('basicData.print') }}</el-button>
  <div id="printFlowCard" >
    <div id="entirety" v-for="(item,id) in labelList" >
      <div class="row1">
        <span>{{ item.customer_name }}</span>&nbsp;
        <span v-if="item.type_name.includes('中空')">中空</span>
        <span v-else-if="item.type_name.includes('夹层')">夹层</span>
        <span v-else-if="item.type_name.includes('夹胶')">夹胶</span>
        <span v-else></span>
      </div>
      <div  class="row2">
        <span>{{ item.order_id }}</span>&nbsp;
      </div>
      <div class="row3" v-if="JSON.parse(item.other_columns).S02==null">{{item.width}}*{{item.height}}={{item.quantity}}</div>
      <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}={{item.quantity}}</div>
      <div class="row5">
        <span>{{item.project}}</span>&nbsp;
        <span>{{ item.building_number }}</span>
      </div>
      <div class="row6">
        <span>{{item.glass_child}}</span>&nbsp;
        <span>{{item.processing_note}}</span>
      </div>
    </div>
  </div>
</template>
<style scoped>
* {
  margin: 0;
  padding: 0;
}
#printButton {
  /*margin-top: -20px;*/
  width: 100px;
}
#printFlowCard {
  display: flex;
  justify-content: left;
  flex-wrap: wrap;
  margin-left: 5px;
}
#entirety{
  text-align: center;
  width: 50%;
  height: 105px;
}
.row1 {
  font-size: 10pt;
  font-weight: bold;
  height: 20px;
}
.row2 {
  font-size: 10pt;
  font-weight: bold;
  height: 20px;
}
span {
  font-size: 10pt;
  font-weight: bold;
}
.row3 {
  margin-top: -5px;
  height: 25px;
  font-size: 15pt;
  font-weight: bolder;
}
.row5 {
  height: 20px;
  font-weight: bold;
  font-size: 10pt;
}
.row5 span {
  font-size: 10pt;
}
.row6 {
  height: 20px;
  font-weight: bold;
  font-size: 10pt;
}
@page {
  size: auto;  /* auto is the initial value */
  margin: 2mm 2mm 2mm 2mm  /* this affects the margin in the printer settings */
}
@media print {
  div {
    page-break-inside: avoid;
  }
}
</style>
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintFlowCard.vue
@@ -135,14 +135,14 @@
  if (res.code == 200) {
    produceList = produceList.value.concat(deepClone(res.data.data))
    titleSelectJson.value.dataType = res.data.type
    // produceList.forEach(item => {
    //   if(item.print_status == 1){
    //     item.print_status='已打印'
    //   }
    //   else if (item.print_status == 0){
    //     item.print_status='未打印'
    //   }
    // });
    produceList.forEach(item => {
      if(item.print_status == 1){
        item.print_status='已打印'
      }
      else if (item.print_status == 0){
        item.print_status='未打印'
      }
    });
    xGrid.value.reloadData(produceList)
    gridOptions.loading = false
  } else {
@@ -253,6 +253,7 @@
      {code: 'print', name: t('processCard.print'), status: 'primary'},
      {code: 'customLabel', name: t('processCard.customLabelPrinting'), status: 'primary'},
      {code: 'printLabel', name: t('processCard.labelPrinting'), status: 'primary'},
      {code: 'printLabel2', name: t('processCard.labelPrinting2'), status: 'primary'},
    ],
    // import: false,
    // export: true,
@@ -282,6 +283,9 @@
  toolbarButtonClick ({ code}) {
    const $grid = xGrid.value
    selectRecords = $grid.getCheckboxRecords()
    selectRecords.forEach(obj => {
      delete obj.print_status;
    });
    let type=printType.value
    let faceOrientation=stateValue.value
    let lableTypes=lableType.value
@@ -289,6 +293,7 @@
    if ($grid) {
      switch (code) {
        case 'print': {
          console.log(selectRecords)
          if(selectRecords===null ||selectRecords===''||selectRecords.length===0){
            ElMessage.warning(t('searchOrder.msgList.checkOrder'))
            return
@@ -327,6 +332,24 @@
          break
        }
        case 'printLabel2': {
          if(selectRecords===null ||selectRecords===''||selectRecords.length===0){
            ElMessage.warning(t('searchOrder.msgList.checkOrder'))
            return
          }
          let id = ""
          for (let i = 0; i < selectRecords.length; i++) {
            if (i + 1 === selectRecords.length) {
              id += selectRecords[i].id
            } else {
              id += selectRecords[i].id + "|"
            }
          }
          router.push({path: '/main/processCard/PrintCustomLabelSemi2', query: {printList: JSON.stringify(selectRecords)}})
          break
        }
        case 'sort': {
          const $table = xGridDetail.value
          let data = $table.getTableData().fullData
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel.vue
@@ -37,10 +37,8 @@
      }
    })
  }else{
    console.log(JSON.stringify(route.query.printList))
    request.post(`/processCard/getSelectPrintLabel1`,data.value).then((res) => {
      if (res.code == 200) {
        console.log(res.data.data)
        produceList.value = deepClone(res.data.data)
        for (let i = 0; i < produceList.value.length; i++) {
         let count= produceList.value[i].data.length
@@ -52,8 +50,6 @@
          }
        }
        console.log(labelList.value)
        console.log(JSON.parse(labelList.value[0].other_columns).S02)
      } else {
        ElMessage.warning(res.msg)
        router.push("/login")
@@ -141,7 +137,7 @@
          <span>{{ item.order_id }}</span>&nbsp;
        </div>
        <div class="row3" v-if="JSON.parse(item.other_columns).S02==null">{{item.width}}*{{item.height}}={{item.quantity}}</div>
        <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}</div>
        <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}={{item.quantity}}</div>
        <div class="row5">
          <span>{{item.project}}</span>&nbsp;
          <span>{{ item.building_number }}</span>
north-glass-erp/northglass-erp/src/views/pp/processCard/PrintLabel1.vue
@@ -34,7 +34,6 @@
const lableType = route.query.lableType
onMounted(() => {
      console.log(lableType)
      request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => {
        if (res.code == 200) {
          produceList.value = deepClone(res.data.title)
@@ -50,7 +49,6 @@
              }
            }
          }
          console.log(lastList.value)
        } else {
          ElMessage.warning(res.msg)
          router.push("/login")
@@ -113,7 +111,7 @@
        <span>{{ item.buildingNumber }}</span>
      </div>
      <div class="row3" v-if="JSON.parse(item.other_columns).S02==null">{{item.width}}*{{item.height}}={{item.quantity}}</div>
      <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}</div>
      <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}={{item.quantity}}</div>
      <div class="row5">
        <span>{{item.remarks}}</span>&nbsp;
        <span>{{ item.processingNote }}</span>
north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
@@ -396,7 +396,6 @@
            otherMoney:otherMoney.value
          })
          console.log(flowData.value)
           request.post("/Delivery/insertDelivery", flowData.value).then((res) => {
             if(res.code==200 && res.data===true){
               ElMessage.success(t('delivery.deliveryNoteSubmittedSuccessfully'))
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
@@ -807,11 +807,9 @@
  request.post(`/order/selectOrder`,order).then((res) => {
    if(res.code==200){
      let orderId=''
      console.log(res.data.data)
      if(res.data.data.length>0){
        for (let i=0;i<res.data.data.length;i++){
          orderId+=res.data.data[i].orderId+'|'
          console.log(orderId)
        }
      }
      if(orderId!=''){
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -580,7 +580,8 @@
               c.customer_abbreviation as customer_name,
               ifnull(od.processing_note,'') as processing_note,
               bgt.type_name,
               od.other_columns
               od.other_columns,
               od.building_number
        from sd.order as o
                 left join sd.order_detail as od on o.order_id = od.order_id
                 left join sd.order_glass_detail as ogd on ogd.order_id=od.order_id and ogd.order_number=od.order_number