廖井涛
8 小时以前 f7a2fcdda7f1120498c5c5f75c5a99955fc54b43
north-glass-erp/northglass-erp/src/views/sd/glassPrice/ProducePriceCompute.vue
@@ -6,6 +6,9 @@
import {VXETable} from "vxe-table";
import {ElMessage} from "element-plus";
import request from "@/utils/request";
import router from "@/router";
import {multiply,multiplyAuto,divideAuto} from '@/utils/decimal'
import footSum from "@/hook/footSum";
const { t } = useI18n()
let dialogVisible = ref(false)
const xGrid = ref()
@@ -19,31 +22,12 @@
  stripe:true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true,height: 30},//鼠标移动或选择高亮
  //virtualScroll: true, // 开启虚拟滚动功能
  id: 'CreateOrder',
  id: 'producePriceCompute1',
  printConfig: {},
  importConfig: {},
  exportConfig: {},
  showOverflow:true,
  menuConfig: {
    body: {
      options: [
        [
          { code: 'addRow', name: t('basicData.add'), prefixIcon: 'vxe-icon-square-plus', visible: true, disabled: false },
          { code: 'deleteRow', name: t('basicData.delete'), prefixIcon: 'vxe-icon-delete', visible: true, disabled: false },
          { code: 'copyChecked', name: t('basicData.selectSame'), prefixIcon: 'vxe-icon-copy', visible: true, disabled: false },
          { code: 'copyAll', name: t('basicData.sameAfterwards'), prefixIcon: 'vxe-icon-feedback', visible: true, disabled: false },
          { code: 'clearChecked', name: t('basicData.clearSelection'), prefixIcon: 'vxe-icon-indicator', visible: true, disabled: false },
          { code: 'computedMoney', name: t('basicData.calculateAmount'), prefixIcon: 'vxe-icon-chart-bar-x', visible: true, disabled: true },
          { code: 'incrementalAll', name: t('basicData.incrementalAll'), prefixIcon: 'vxe-icon-feedback', visible: true, disabled: false },
          { code: 'incrementalChecked', name: t('basicData.incrementalChecked'), prefixIcon: 'vxe-icon-copy', visible: true, disabled: false },
          { code: 'errorArea', name: t('basicData.errorSettlementArea'), prefixIcon: 'vxe-icon-chart-bar-x', visible: true, disabled: false },
          { code: 'otherMoney', name: t('basicData.otherAmounts'), prefixIcon: 'vxe-icon-chart-bar-x', visible: true, disabled: false },
          { code: 'sizeCheck', name: t('basicData.sizeReview'), prefixIcon: 'vxe-icon-eye-fill', visible: true, disabled: false },
          { code: 'updateOrderId', name: '修改订单号', prefixIcon: 'vxe-icon-eye-fill', visible: true, disabled: false }
        ]
      ]
    }
  },
  showFooter: true,
  columnConfig: {
    resizable: true,
    useKey: true
@@ -77,18 +61,36 @@
    {field: 'width',  title: t('order.width') ,editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
    {field: 'height',  title: t('order.height'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
    {field: 'quantity', title: t('order.quantity'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
    {field: 'area', title: t('order.area'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
    {field: 'grossArea', title: t('order.grossArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
    {field: 'grossAmount', title: t('order.grossAmount'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
  ],
  toolbarConfig: {
    buttons: [
      {'code': 'addProducts', 'name': '选择产品',disabled: false},
      {'code': 'saveOrder', 'name': '转订单',status: 'primary',icon: 'vxe-icon-save',disabled: false},
      {'code': 'addProducts', 'name': t('glassPrice.addProduce'),disabled: false},
      {'code': 'reorder', 'name': t('glassPrice.reorder'),status: 'primary',icon: 'vxe-icon-save',disabled: false},
    ],
    zoom: true,
    custom: true
  },
  //table body实际数据
  footerMethod ({ columns, data }) {//页脚函数
    return[
      columns.map((column, columnIndex) => {
        if (columnIndex === 0) {
          return t('basicData.total')+':'
        }
        const List = ["quantity",'grossAmount','grossArea']
        if (List.includes(column.field)) {
          return footSum(data, column.field)
        }
        return ''
      })
    ]
  }
@@ -102,14 +104,50 @@
          dialogVisible.value = true
          break
        }
        case 'reorder': {
          if($grid.getTableData().fullData.length === 0){
            ElMessage.warning(t('glassPrice.msg.addProduce'))
            return
          }
          router.push({
            path: '/main/order/createOrder',
            query:{
              produceList: JSON.stringify($grid.getTableData().fullData)
            }
          })
          break
        }
      }
    }
  }
}
const getChildData = (data) => {
  alert(1)
const getChildData = (data,product) => {
  data.productId = product.id
  data.productName =product.productName
  request.post(`/glassPriceBasic/glassPriceComputed/${product.id}`).then(res => {
    if (res.code === '200' ) {
      data.price = res.data
      data.area = divideAuto(multiplyAuto(data.width,data.height,2),1000000,2)
      data.grossArea = multiplyAuto(data.area,data.quantity,2)
      data.grossAmount = multiplyAuto(data.price,data.grossArea,2)
      xGrid.value.insertAt(data)
      dialogVisible.value = false
    }
  })
}
const editClosedEvent = ({ row, column }) => {
  //判断修改相应的数值修改面积与金额
  if (['width', 'height', 'quantity', 'price'].includes(column.property)) {
    row.area = divideAuto(multiplyAuto(row.width,row.height,2),1000000,2)
    row.grossArea = multiplyAuto(row.area,row.quantity,2)
    row.grossAmount = multiplyAuto(row.price,row.grossArea,2)
  }
  xGrid.value.updateFooter()
}
</script>
@@ -122,6 +160,7 @@
        ref="xGrid"
        v-bind="gridOptions"
        v-on="gridEvents"
        @edit-closed="editClosedEvent"
    >
      <template #num1_filter="{ column, $panel }">