chenlu
2025-12-01 d0e9bb6edfee85a777ddfb7810fc0c1a6a442a76
报表补充筛选和框选功能
11个文件已修改
199 ■■■■ 已修改文件
north-glass-erp/northglass-erp/src/views/pp/report/DamageReport.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/ProcessCardProgress.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/ProductionSchedule.vue 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/QualityReport.vue 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/RawMaterialRequisition.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/SplittingDetailsOutside.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/TaskCompletionStatus.vue 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/TeamOutput.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/Yield.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/YieldProcess.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/pp/Report.xml 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/pp/report/DamageReport.vue
@@ -44,8 +44,8 @@
    {field: 'breakageReason', width: 120, title: t('reportingWorks.breakageReason'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'thisProcess',width: 120, title: t('reportingWorks.reportingProcess'), sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'creator',width: 120, title: t('product.creator'), sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'childWidth', width: 100, title: t('order.width')},
    {field: 'childHeight', width: 100, title: t('order.height')},
    {field: 'childWidth', width: 100, title: t('order.width'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'childHeight', width: 100, title: t('order.height'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'breakageQuantity', width: 120, title: t('reportingWorks.quantityBroken')},
    {field: 'area', width: 120, title: t('reportingWorks.wornArea')},
    {field: 'personnel', width: 120, title: t('reportingWorks.responsiblePersonnel')},
north-glass-erp/northglass-erp/src/views/pp/report/ProcessCardProgress.vue
@@ -6,9 +6,10 @@
import {Search} from "@element-plus/icons-vue"
import {useRoute, useRouter} from 'vue-router'
import {changeFilterEvent, filterChanged} from "@/hook"
import {addListener} from "@/hook/mouseMove";
import { useI18n } from 'vue-i18n'
import footSum from "@/hook/footSum";
import {VxeUI} from "vxe-pc-ui";
//语言获取
const { t } = useI18n()
let router=useRouter()
@@ -18,6 +19,8 @@
  orderId:null
})
onMounted(()=>{
  //启用表格拖动选中
  addListener(xGrid.value, gridOptions)
  if(props.orderId===null  || props.orderId===undefined || props.orderId===''){
  }else{
@@ -229,7 +232,9 @@
])
const handleCellDblClick = ({ row, column, cell, $event }) => {
  VxeUI.clipboard.copy(row[column.property])
}
</script>
<template>
@@ -258,6 +263,7 @@
          ref="xGrid"
          v-bind="gridOptions"
          :merge-cells="mergeCells"
          @cell-dblclick="handleCellDblClick"
      >
        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
@@ -304,4 +310,12 @@
  width: 100%;
  height: calc(100% - 35px);
}
.vxe-grid {
  /* 禁用浏览器默认选中 */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
</style>
north-glass-erp/northglass-erp/src/views/pp/report/ProductionSchedule.vue
@@ -6,9 +6,10 @@
import {Search} from "@element-plus/icons-vue"
import {useRouter} from 'vue-router'
import {changeFilterEvent, filterChanged} from "@/hook"
import {addListener} from "@/hook/mouseMove";
import { useI18n } from 'vue-i18n'
import footSum from "@/hook/footSum";
import {VxeUI} from "vxe-pc-ui";
//语言获取
const { t } = useI18n()
let router=useRouter()
@@ -17,6 +18,8 @@
  orderId:null
})
onMounted(()=>{
  //启用表格拖动选中
  addListener(xGrid.value, gridOptions)
  if(props.orderId===null  || props.orderId===undefined || props.orderId===''){
    return
  }
@@ -114,7 +117,7 @@
  keepSource: true,//保持源数据
  align: 'center',//文字居中
  stripe:true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true,height: 30},//鼠标移动或选择高亮
  rowConfig: {isCurrent: true, isHover: true, height: 30},//鼠标移动或选择高亮
  id: 'ProductionSchedule',
  showFooter: true,//显示脚
  printConfig: {},
@@ -151,8 +154,8 @@
     {field: 'order_number', width: 150, title: t('order.OrderNum'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
    //{field: 'shape',width: 130, title: t('order.shape') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
    {field: 'product_name', width: 120,title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
    {field: 'child_width',width: 110, title: t('order.width')},
    {field: 'child_height', width: 90,title: t('order.height'),showOverflow:"ellipsis"},
    {field: 'child_width',width: 110, title: t('order.width'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
    {field: 'child_height', width: 90,title: t('order.height'),showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
    {field: 'inventoryNum',width: 120, title: t('report.inventoryNum')},
    {field: 'inventoryArea',width: 120, title: t('report.inventoryArea')},
    // {field: 'shippedQuantity',width: 120, title: t('report.shippedQuantity')},
@@ -198,7 +201,9 @@
const mergeCells = ref([
])
const handleCellDblClick = ({ row, column, cell, $event }) => {
  VxeUI.clipboard.copy(row[column.property])
}
</script>
<template>
@@ -228,6 +233,7 @@
          ref="xGrid"
          v-bind="gridOptions"
          :merge-cells="mergeCells"
          @cell-dblclick="handleCellDblClick"
      >
        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
@@ -273,4 +279,11 @@
  width: 100%;
  height: calc(100% - 35px);
}
.vxe-grid {
  /* 禁用浏览器默认选中 */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
</style>
north-glass-erp/northglass-erp/src/views/pp/report/QualityReport.vue
@@ -1,6 +1,6 @@
<script setup>
import {reactive, ref} from "vue";
import {onMounted, reactive, ref} from "vue";
import {useRouter} from 'vue-router'
import request from "@/utils/request";
import deepClone from "@/utils/deepClone";
@@ -9,7 +9,8 @@
import {changeFilterEvent, filterChanged} from "@/hook"
import exportExcel from "@/hook/exportExcel";
import footSum from "@/hook/footSum"
import {addListener} from "@/hook/mouseMove";
import {VxeUI} from "vxe-pc-ui";
//语言获取
const {t} = useI18n()
let router = useRouter()
@@ -66,7 +67,10 @@
  return [start, end]
}
onMounted(()=>{
  //启用表格拖动选中
  addListener(xGrid.value, gridOptions)
})
//第一次加载获取近七天时间和默认状态
form.date1 = getNowTime()
let startTime = form.date1[0]
@@ -290,7 +294,9 @@
})
const handleCellDblClick = ({ row, column, cell, $event }) => {
  VxeUI.clipboard.copy(row[column.property])
}
</script>
<template>
@@ -314,7 +320,7 @@
          class="mytable-scrollbar"
          height="100%"
          v-bind="gridOptions"
          @cell-dblclick="handleCellDblClick"
      >
        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
        <!--      下拉显示所有信息插槽-->
@@ -361,4 +367,11 @@
  width: 100%;
  height: calc(100% - 35px);
}
.vxe-grid {
  /* 禁用浏览器默认选中 */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
</style>
north-glass-erp/northglass-erp/src/views/pp/report/RawMaterialRequisition.vue
@@ -227,9 +227,13 @@
      field: 'width',
      title: t('order.width'),
      type: 'date',
      attrs: {placeholder: '', type: 'date'},
      attrs: {placeholder: '', type: 'date'}, filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged
    },
    {field: 'height',  title: t('order.height'), showOverflow: "ellipsis"},
    {field: 'height',  title: t('order.height'), showOverflow: "ellipsis", filters: [{data: ''}],
      slots: {filter: 'num1_filter'},
      filterMethod: filterChanged},
    {field: 'quantity', title: t('report.quantityClaimed')},
    {field: 'area', title: t('report.areaClaimed')},
    {field: 'date_of_manufacture',  title: t('ingredientsStock.dateOfManufacture')},
north-glass-erp/northglass-erp/src/views/pp/report/SplittingDetailsOutside.vue
@@ -1,6 +1,6 @@
<script setup>
import {reactive, ref} from "vue";
import {onMounted, reactive, ref} from "vue";
import {useRouter} from 'vue-router'
import request from "@/utils/request";
import deepClone from "@/utils/deepClone";
@@ -8,7 +8,8 @@
import {useI18n} from 'vue-i18n'
import {changeFilterEvent, filterChanged} from "@/hook"
import footSum from "@/hook/footSum"
import {addListener} from "@/hook/mouseMove";
import {VxeUI} from "vxe-pc-ui";
//语言获取
const {t} = useI18n()
let router = useRouter()
@@ -139,7 +140,10 @@
  selectPageList()
}
onMounted(()=>{
  //启用表格拖动选中
  addListener(xGrid.value, gridOptions)
})
/*使用筛选,后端获取数据*/
// const changeFilterEvent = (event, option, $panel,) => {
//   // 手动触发筛选
@@ -273,6 +277,9 @@
})
const handleCellDblClick = ({ row, column, cell, $event }) => {
  VxeUI.clipboard.copy(row[column.property])
}
</script>
<template>
@@ -291,7 +298,7 @@
          class="mytable-scrollbar"
          height="100%"
          v-bind="gridOptions"
          @cell-dblclick="handleCellDblClick"
      >
        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
        <!--      下拉显示所有信息插槽-->
@@ -332,4 +339,11 @@
  width: 100%;
  height: calc(100% - 35px);
}
.vxe-grid {
  /* 禁用浏览器默认选中 */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
</style>
north-glass-erp/northglass-erp/src/views/pp/report/TaskCompletionStatus.vue
@@ -6,9 +6,10 @@
import {Search} from "@element-plus/icons-vue"
import {useRouter} from 'vue-router'
import {changeFilterEvent, filterChanged} from "@/hook"
import {addListener} from "@/hook/mouseMove";
import { useI18n } from 'vue-i18n'
import exportExcel from "@/hook/exportExcel";
import {VxeUI} from "vxe-pc-ui";
//语言获取
const { t } = useI18n()
let router=useRouter()
@@ -21,6 +22,8 @@
  date1: '',
})
onMounted(()=>{
  //启用表格拖动选中
  addListener(xGrid.value, gridOptions)
  if(props.orderId===null  || props.orderId===undefined || props.orderId===''){
    return
  }
@@ -218,6 +221,9 @@
])
const handleCellDblClick = ({ row, column, cell, $event }) => {
  VxeUI.clipboard.copy(row[column.property])
}
</script>
<template>
@@ -257,7 +263,7 @@
          ref="xGrid"
          v-bind="gridOptions"
          :merge-cells="mergeCells"
          @cell-dblclick="handleCellDblClick"
      >
        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
        <!--      下拉显示所有信息插槽-->
@@ -307,4 +313,11 @@
  width: 100%;
  height: calc(100% - 35px);
}
.vxe-grid {
  /* 禁用浏览器默认选中 */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
</style>
north-glass-erp/northglass-erp/src/views/pp/report/TeamOutput.vue
@@ -414,8 +414,8 @@
    },
    {field: 'orderNumber', width: 90, title: t('order.OrderNum')},
    {field: 'code', width: 100, title: t('reportingWorks.glassNumber')},
    {field: 'width', width: 90, title: t('order.width')},
    {field: 'height', width: 90, title: t('order.height')},
    {field: 'width', width: 90, title: t('order.width'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'height', width: 90, title: t('order.height'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
    {field: 'thicknessSum',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, width: 90, title: t('order.totalThickness')},
    {field: 'thicknessArea', width: 90, title: t('report.thicknessArea')},
    {
north-glass-erp/northglass-erp/src/views/pp/report/Yield.vue
@@ -1,6 +1,6 @@
<script setup>
import {reactive, ref} from "vue";
import {onMounted, reactive, ref} from "vue";
import {useRouter} from 'vue-router'
import request from "@/utils/request";
import deepClone from "@/utils/deepClone";
@@ -9,6 +9,8 @@
import {changeFilterEvent, filterChanged} from "@/hook"
import footSum from "@/hook/footSum"
import dayjs from 'dayjs'
import {addListener} from "@/hook/mouseMove";
import {VxeUI} from "vxe-pc-ui";
//语言获取
const {t} = useI18n()
let router = useRouter()
@@ -43,6 +45,10 @@
  clientHeight.value = row.$event.target.clientHeight
}
onMounted(()=>{
  //启用表格拖动选中
  addListener(xGrid.value, gridOptions)
})
//定义页面总页数
let pageTotal = ref('')
@@ -367,6 +373,10 @@
  })
}
const handleCellDblClick = ({ row, column, cell, $event }) => {
  VxeUI.clipboard.copy(row[column.property])
}
</script>
<template>
@@ -399,7 +409,7 @@
          class="mytable-scrollbar"
          height="100%"
          v-bind="gridOptions"
          @cell-dblclick="handleCellDblClick"
      >
        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
        <!--      下拉显示所有信息插槽-->
@@ -446,4 +456,11 @@
  width: 100%;
  height: calc(100% - 35px);
}
.vxe-grid {
  /* 禁用浏览器默认选中 */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
</style>
north-glass-erp/northglass-erp/src/views/pp/report/YieldProcess.vue
@@ -1,6 +1,6 @@
<script setup>
import {reactive, ref} from "vue";
import {onMounted, reactive, ref} from "vue";
import {useRouter} from 'vue-router'
import request from "@/utils/request";
import deepClone from "@/utils/deepClone";
@@ -9,6 +9,8 @@
import {changeFilterEvent, filterChanged} from "@/hook"
import footSum from "@/hook/footSum"
import dayjs from 'dayjs'
import {VxeUI} from "vxe-pc-ui";
import {addListener} from "@/hook/mouseMove";
//语言获取
const {t} = useI18n()
let router = useRouter()
@@ -43,6 +45,10 @@
  clientHeight.value = row.$event.target.clientHeight
}
onMounted(()=>{
  //启用表格拖动选中
  addListener(xGrid.value, gridOptions)
})
//定义页面总页数
let pageTotal = ref('')
@@ -327,6 +333,10 @@
  })
}
const handleCellDblClick = ({ row, column, cell, $event }) => {
  VxeUI.clipboard.copy(row[column.property])
}
</script>
<template>
@@ -352,7 +362,7 @@
          class="mytable-scrollbar"
          height="100%"
          v-bind="gridOptions"
          @cell-dblclick="handleCellDblClick"
      >
        <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
        <!--      下拉显示所有信息插槽-->
@@ -399,4 +409,11 @@
  width: 100%;
  height: calc(100% - 35px);
}
.vxe-grid {
  /* 禁用浏览器默认选中 */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
</style>
north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -845,6 +845,12 @@
        <if test="damageReportDTO.reportingWorkId != null and damageReportDTO.reportingWorkId != ''">
            and rw.reporting_work_id like concat('%', #{damageReportDTO.reportingWorkId}, '%')
        </if>
        <if test="damageReportDTO.childWidth != null and damageReportDTO.childWidth != ''">
            and ogd.child_width regexp REGEXP_REPLACE(#{damageReportDTO.childWidth},'\\.0+$','')
        </if>
        <if test="damageReportDTO.childHeight != null and damageReportDTO.childHeight != ''">
            and ogd.child_height regexp REGEXP_REPLACE(#{damageReportDTO.childHeight},'\\.0+$','')
        </if>
        GROUP BY
        dd.id
        limit #{offset},#{pageSize};
@@ -910,6 +916,12 @@
        </if>
        <if test="damageReportDTO.reportingWorkId != null and damageReportDTO.reportingWorkId != ''">
            and rw.reporting_work_id like concat('%', #{damageReportDTO.reportingWorkId}, '%')
        </if>
        <if test="damageReportDTO.childWidth != null and damageReportDTO.childWidth != ''">
            and ogd.child_width regexp REGEXP_REPLACE(#{damageReportDTO.childWidth},'\\.0+$','')
        </if>
        <if test="damageReportDTO.childHeight != null and damageReportDTO.childHeight != ''">
            and ogd.child_height regexp REGEXP_REPLACE(#{damageReportDTO.childHeight},'\\.0+$','')
        </if>
        limit #{offset},#{pageSize};
    </select>
@@ -1792,7 +1804,12 @@
        <if test="teamOutputDTO.batch != null and teamOutputDTO.batch != ''">
            AND o.batch REGEXP #{teamOutputDTO.batch}
        </if>
        <if test="teamOutputDTO.width != null and teamOutputDTO.width != ''">
            and ogd.child_width regexp REGEXP_REPLACE(#{teamOutputDTO.width},'\\.0+$','')
        </if>
        <if test="teamOutputDTO.height != null and teamOutputDTO.height != ''">
            and ogd.child_height regexp REGEXP_REPLACE(#{teamOutputDTO.height},'\\.0+$','')
        </if>
        <choose>
            <when test="laminating == ''">
                GROUP BY
@@ -2009,7 +2026,12 @@
        <if test="teamOutputDTO.batch != null and teamOutputDTO.batch != ''">
            AND o.batch REGEXP #{teamOutputDTO.batch}
        </if>
        <if test="teamOutputDTO.width != null and teamOutputDTO.width != ''">
            and ogd.child_width regexp REGEXP_REPLACE(#{teamOutputDTO.width},'\\.0+$','')
        </if>
        <if test="teamOutputDTO.height != null and teamOutputDTO.height != ''">
            and ogd.child_height regexp REGEXP_REPLACE(#{teamOutputDTO.height},'\\.0+$','')
        </if>
        <choose>
            <when test="laminating == ''">
                GROUP BY
@@ -2646,6 +2668,12 @@
        <if test="damageReportDTO.reportingWorkId != null and damageReportDTO.reportingWorkId != ''">
            and rw.reporting_work_id like concat('%', #{damageReportDTO.reportingWorkId}, '%')
        </if>
        <if test="damageReportDTO.childWidth != null and damageReportDTO.childWidth != ''">
            and ogd.child_width regexp REGEXP_REPLACE(#{damageReportDTO.childWidth},'\\.0+$','')
        </if>
        <if test="damageReportDTO.childHeight != null and damageReportDTO.childHeight != ''">
            and ogd.child_height regexp REGEXP_REPLACE(#{damageReportDTO.childHeight},'\\.0+$','')
        </if>
    </select>
    <select id="teamOutputFootSum">
@@ -2764,6 +2792,12 @@
        <if test="teamOutputDTO.batch != null and teamOutputDTO.batch != ''">
            AND o.batch REGEXP #{teamOutputDTO.batch}
        </if>
        <if test="damageReportDTO.childWidth != null and damageReportDTO.childWidth != ''">
            and ogd.child_width regexp REGEXP_REPLACE(#{damageReportDTO.childWidth},'\\.0+$','')
        </if>
        <if test="damageReportDTO.childHeight != null and damageReportDTO.childHeight != ''">
            and ogd.child_height regexp REGEXP_REPLACE(#{damageReportDTO.childHeight},'\\.0+$','')
        </if>
        <choose>
            <when test="laminating == ''">
                GROUP BY