guoyujie
2025-03-26 eac052747b0062b64febe994a8f8b82d56c5838a
north-glass-erp/northglass-erp/src/components/sd/order/OrderProcess.vue
@@ -3,7 +3,7 @@
import {changeFilterEvent, filterChanged} from "@/hook"
import {useI18n} from "vue-i18n"
import request from "@/utils/request"
import {ElMessage} from "element-plus";
import {ElMessage} from "element-plus"
const { t } = useI18n()
const xGrid = ref()
const gridOptions = reactive({
@@ -15,13 +15,15 @@
  showOverflow:true,
  rowConfig: {isCurrent: true, isHover: true,height: 30},//鼠标移动或选择高亮
  virtualScroll: true, // 开启虚拟滚动功能
  id: 'OrderList',
  id: 'Order_Process',
  printConfig: {},
  importConfig: {},
  exportConfig: {},
  scrollY:{ enabled: true,gt:13 },//开启虚拟滚动
  //scrollX:{ enabled: true,gt:15 },//开启虚拟滚动
  filterConfig: {   //筛选配置项
    // remote: true
  },
  columnConfig: {
    resizable: true,
    useKey: true
@@ -35,7 +37,17 @@
  columns:[
  ],
  mergeCells:[]
  mergeCells:[],
  toolbarConfig: {
    zoom: true,
    custom: true
  },
  cellClassName ({ row, column,columnIndex})  {
    if (columnIndex>10 && row.quantity*1 === row.reportWorkQuantity[column.title]*1){
        return 'row-green'
    }
    return null
  },
})
@@ -44,19 +56,20 @@
  orderId:null
})
const columns = [
  {field: 'order_number',fixed:"left", width: 90,title: '订单序号',showOverflow:"ellipsis"},
  {field: 'order_number',fixed:"left", width: 90,title: t('order.OrderNum'),showOverflow:"ellipsis"},
  // {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
  {field: 'product_name', width: 150, title: '产品名称',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'glass_child',width: 130, title: '单片名称' ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'order_type', width: 120,title: '订单类型',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'process_id',width: 110, title: '流程卡号',filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod: filterChanged},
  {field: 'product_name', width: 150, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
  {field: 'glass_child',width: 130, title: t('reportingWorks.glassChild') ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
  {field: 'order_type', width: 120,title: t('order.orderType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
  {field: 'process_id',width: 110, title: t('processCard.processId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
  {field: 'technology_number', width: 90,title: '小片顺序',showOverflow:"ellipsis"},
  {field: 'quantity', width: 90,title: '数量'},
  {field: 'shippedQuantity',width: 120, title: '发货数量'},
  {field: 'inventory',width: 120, title: '入库数量'},
  {field: 'inventoryArea',width: 120, title: '入库面积'},
  {field: 'broken_num',width: 90, title: '次破数量'},
  {field: 'technology_number', width: 90,title:  t('processCard.technologyNumber'),showOverflow:"ellipsis"},
  {field: 'quantity', width: 90,title: t('order.quantity')},
  {field: 'gross_area', width: 90,title: t('order.area')},
  {field: 'shippedQuantity',width: 120, title: t('delivery.deliveryQuantity')},
  {field: 'inventory',width: 120, title: t('productStock.inventoryQuantity')},
  {field: 'inventoryArea',width: 120, title: t('report.inventoryArea')},
  {field: 'broken_num',width: 90, title: t('reportingWorks.quantityBroken')},
]
let column = [0,1,3,6,7,8,9]
@@ -74,6 +87,9 @@
    if (res.code == 200) {
      gridOptions.columns = JSON.parse(JSON.stringify(columns))
      gridOptions.columns.forEach(item =>{
        item.filterMethod = filterChanged
      })
      res.data.title.forEach(item =>{
        let column = {slots: { default: 'quantitySum' }, width: 90,title: item.process}
        gridOptions.columns.push(column)
@@ -82,7 +98,7 @@
        item.reportWorkQuantity=JSON.parse(item.reportWorkQuantity)
        item.reportWorkQuantityCount=JSON.parse(item.reportWorkQuantityCount)
      })
      gridOptions.mergeCells= res.data.mergeCells
      //gridOptions.mergeCells= res.data.mergeCells
      xGrid.value.loadData(res.data.data)
    } else {
      ElMessage.warning(res.msg)
@@ -117,7 +133,11 @@
      <template #num1_filter="{ column, $panel }">
        <div>
          <div v-for="(option, index) in column.filters" :key="index">
            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
            <input
                type="type"
                v-model="option.data"
                @keyup.enter.native="$panel.confirmFilter()"
                @input="changeFilterEvent($event, option, $panel)"/>
          </div>
        </div>
      </template>
@@ -131,5 +151,8 @@
</template>
<style scoped>
::v-deep(.vxe-grid .vxe-body--column.row-green) {
  background-color: #D5EAFF;
}
</style>