chenlu
2024-12-02 e50fa16b6dbc4e7c50d5fbdbc04d2a556ca01c4e
north-glass-erp/northglass-erp/src/views/sd/customer/SelectCustomerOrder.vue
@@ -9,6 +9,7 @@
import {ElMessage} from "element-plus";
import { useI18n } from 'vue-i18n'
import footSum from "@/hook/footSum";
import useOrderInfoStore from "@/stores/sd/order/orderInfo";
//语言获取
const { t } = useI18n()
@@ -17,6 +18,7 @@
const userStore = useUserInfoStore()
const username = userStore.user.userName
const userid = userStore.user.userId
const orderInfo = useOrderInfoStore()
let produceList = ref([])
const getTableRow = (row,type) =>{
@@ -45,8 +47,9 @@
//筛选条件,有外键需要先定义明细里面的数据
let filterData = ref({
    order:{
      customerId:''
    }
      customerId:'',
      batch:'',
    },
})
@@ -66,13 +69,14 @@
  const str = route.query.id
  if (typeof str != 'undefined' && str != null && str !== '' && str !== '\n' && str !== '\r'){
    filterData.value.order.customerId = Number(str)
    request.post(`/customer/getSelectCustomerOderDate/1/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => {
    filterData.value.order.batch=route.query.type
    request.post(`/customer/getSelectCustomerOderDate/1/${total.pageSize}/${orderInfo.reportFormDate}`,filterData.value).then((res) => {
      if(res.code==200){
        console.log(res.data.data)
        console.log(res.data.total)
        total.dataTotal = res.data.total.total*1
        total.pageTotal= res.data.total.pageTotal
        selectDate.value = res.data.selectDate
        pageNum.value=1
        orderInfo.reportFormDate = res.data.selectDate
        produceList = deepClone(res.data.data)
        xGrid.value.loadData(produceList)
        gridOptions.loading=false
@@ -108,12 +112,12 @@
  }else{
    filterData.value[column.property] = value
  }
  request.post(`/customer/getSelectCustomerOderDate/1/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => {
  request.post(`/customer/getSelectCustomerOderDate/1/${total.pageSize}/${orderInfo.reportFormDate}`,filterData.value).then((res) => {
    if(res.code==200){
      total.dataTotal = res.data.total.total*1
      total.pageTotal= res.data.total.pageTotal
      selectDate.value = res.data.selectDate
      orderInfo.reportFormDate = res.data.selectDate
      pageNum.value=1
      produceList = deepClone(res.data.data)
      xGrid.value.loadData(produceList)
@@ -126,7 +130,7 @@
}
const selectOrderList = ()=>{
  request.post(`/customer/getSelectCustomerOderDate/${pageNum.value}/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => {
  request.post(`/customer/getSelectCustomerOderDate/${pageNum.value}/${total.pageSize}/${orderInfo.reportFormDate}`,filterData.value).then((res) => {
    if(res.code==200){
      if (res.data.total!=null){
@@ -164,7 +168,7 @@
  align: 'center',//文字居中
  stripe:true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true,height: 30},//鼠标移动或选择高亮
  id: 'OrderList',
  id: 'SelectCustomerOrder',
  showFooter: true,//显示脚
  printConfig: {},
  importConfig: {},
@@ -190,29 +194,26 @@
    {type:'expand',slots: { content:'content' },width: 60,fixed:"left"},
    {type: 'seq', title: t('basicData.Number'), width: 80 ,fixed:"left"},
    {field: 'orderId',width:120,  title: t('order.orderId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'order.customerId',width:120,  title: t('customer.customerNumber')},
    {field: 'order.customerName',width:120,  title: t('customer.customerName')},
    {field: 'order_id',width:120,  title: t('order.orderId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'delivery_id',width:120,  title: t('delivery.deliveryNoteId')},
    {field: 'customer_id',width:120,  title: t('customer.customerNumber')},
    {field: 'customer_name',width:120,  title: t('customer.customerName')},
    {field: 'quantity',width:120,  title: t('order.quantity')},
    {field: 'productId',width:120,  title: t('order.productId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'productName',width:120,  title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'shape',width:120,  title: t('order.shape'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'width',width:120,  title: t('order.width'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'height',width:120,  title: t('order.height'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'order.project',width:120,  title: t('order.project'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'order.batch',width:120,  title: t('order.batch'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'order.money',width:120,   title: t('customer.orderAmount'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'price',width:120, title: t('order.price'), sortable: true},
    //{field: 'product_id',width:120,  title: t('order.productId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'product_name',width:120,  title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'project',width:120,  title: t('order.project'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'money',width:120,   title: t('customer.orderAmount'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'area',width:120,  title: t('productStock.totalArea')},
    {field: 'order.orderType',width:120,  title: t('order.orderType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'order.salesman',width:120,  title:t('order.salesman'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
    {field: 'order.createTime',width:120,  title:t('basicData.creationTime')},
    {field: 'create_time',width:120,  title:t('basicData.creationTime')},
  ],//表头按钮
  toolbarConfig: {
    buttons: [
    ],
    buttons: [],
    slots: {
      tools: 'toolbar_buttons'
    },
    /*import: false,
   export: true,
   print: true,*/
@@ -220,7 +221,7 @@
    custom: true
  },
  footerMethod ({ columns, data }) {//页脚函数
    let footList = ['quantity','area','order.money']
    let footList = ['quantity','area','money']
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
@@ -260,6 +261,44 @@
  }
}
const exportExcel = () => {
  if(filterData.value.order.batch==='1'){
    request.post(`/customer/exportSelectCustomerOderDate/${orderInfo.reportFormDate}`,filterData.value,{responseType :'blob'}).then(res => {
      const blob = new Blob([res])
      if ('download' in document.createElement('a')) { // 非IE下载
        const elink = document.createElement('a')
        elink.download = `客户订单.xlsx`
        elink.style.display = 'none'
        elink.href = URL.createObjectURL(blob)
        document.body.appendChild(elink)
        elink.click()
        URL.revokeObjectURL(elink.href) // 释放URL 对象
        document.body.removeChild(elink)
      } else { // IE10+下载
        navigator.msSaveBlob(blob, fileName)
      }
    })
  }else{
    request.post(`/customer/exportSelectCustomerDeliveryDate/${orderInfo.reportFormDate}`,filterData.value,{responseType :'blob'}).then(res => {
        const blob = new Blob([res])
        if ('download' in document.createElement('a')) { // 非IE下载
          const elink = document.createElement('a')
          elink.download = `客户发货.xlsx`
          elink.style.display = 'none'
          elink.href = URL.createObjectURL(blob)
          document.body.appendChild(elink)
          elink.click()
          URL.revokeObjectURL(elink.href) // 释放URL 对象
          document.body.removeChild(elink)
        } else { // IE10+下载
          navigator.msSaveBlob(blob, fileName)
        }
      })
  }
}
@@ -268,7 +307,7 @@
<template>
  <div  style="width: 100%;height: 100%">
    <el-date-picker
        v-model="selectDate"
        v-model="orderInfo.reportFormDate"
        type="daterange"
        :start-placeholder="t('basicData.startDate')"
        :end-placeholder="t('basicData.endDate')"
@@ -276,7 +315,10 @@
        value-format="YYYY-MM-DD"
    />
    <el-button @click="changeDate" style="margin-top: -5px"  id="searchButton" type="primary" :icon="Search">{{$t('basicData.search')}}</el-button>
    <vxe-grid
        max-height="97%"
        class="mytable-scrollbar"
@@ -309,11 +351,21 @@
      <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>
      <template #toolbar_buttons>
        <vxe-button style="margin-right: 0.5rem"
                    @click="exportExcel()">
          {{$t('basicData.export')}}</vxe-button>
      </template>
      <template #pager>
        <!--使用 pager 插槽-->
        <vxe-pager