chenlu
2024-07-15 4492d962dae3f05ad3ac7db175ec75f5a903f997
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
@@ -58,7 +58,7 @@
  deliveryAddress:'',
  otherMoney:'',
  otherMoneyRemarks:'',
  processingNote:'',
  processingNote:t('order.processingNote')+':',
  createOrder:0,
  creatorId:userStore.user.userId,
  creator:userStore.user.userName,
@@ -192,9 +192,10 @@
    computeArea: [
      {
        validator ({ cellValue }) {
          const regex = /^(0(\.\d{1,2})?|([1-9]\d{0,4})(\.\d{1,2})?|99999(\.9{1,2})?)$/
          const decValue = company.decValue*1
          const regex =new RegExp(`^(0(\\.\\d{1,${decValue}})?|([1-9]\\d{0,4})(\\.\\d{1,${decValue}})?|99999(\\.9{1,${decValue}})?)$`)
          if (!regex.test(cellValue)) {
            return new Error(t('basicData.msg.range99999Dec2'))
            return new Error(t(`basicData.msg.range99999Dec${decValue}`))
          }
        }
      }
@@ -311,7 +312,7 @@
            ElMessage.error( t('order.msg.tableLengthNot'))
            return
          }
          computedMoney()
          computedMoney(null)
          if(!gridOptions.menuConfig.body.options[0][5].disabled){
            ElMessage.error(t('order.msg.amountReset'))
            return
@@ -491,7 +492,7 @@
              }
            })
          }
          computedMoney()
          computedMoney(null)
          break
        }
        case 'copyChecked' :{
@@ -526,7 +527,7 @@
              })
            }
          }
          computedMoney()
          computedMoney(result.cell)
          gridOptions.menuConfig.body.options[0][5].disabled=false
          break
        }
@@ -564,7 +565,7 @@
            }
          }
          computedMoney()
          computedMoney(result.cell)
          gridOptions.menuConfig.body.options[0][5].disabled=false
          break
        }
@@ -578,12 +579,12 @@
              }
            })
          }
          computedMoney()
          computedMoney(result.cell)
          gridOptions.menuConfig.body.options[0][5].disabled=false
          break
        }
        case 'computedMoney' :{
          computedMoney()
          computedMoney(null)
          break
        }
@@ -778,13 +779,18 @@
    }
  })
}
const computedMoney = () => {
const computedMoney = (cell) => {
  const  dataList = xGrid.value.getTableData().fullData
  dataList.forEach((item,index) =>{
    item.area = area(item)
    item.grossArea = countArea(item)
    item.computeArea = item.area
    item.computeGrossArea = item.grossArea
    if(['width', 'height', 'quantity'].includes(cell)){
      item.area = area(item)
      item.grossArea = countArea(item)
      item.computeArea = item.area
      item.computeGrossArea = item.grossArea
    }else if(cell==='computeArea'){
      item.computeGrossArea = item.computeArea * item.quantity
    }
    if(titleUploadData.value.calculateType===3){
      item.grossAmount=parseFloat((item.price * item.quantity).toFixed(2))
    }else{
@@ -979,19 +985,20 @@
}
const area = (row) => {
  return parseFloat((row.width * row.height/1000000).toFixed(2))
  return parseFloat((row.width * row.height/1000000).toFixed(company.decValue))
}
const countArea = (row) => {
  const area = parseFloat((row.width * row.height/1000000).toFixed(2))
  const area = parseFloat((row.width * row.height/1000000).toFixed(company.decValue))
  let areaSum = 0
  // 获取保留面积
  const decValue = company.decValue
  switch (titleUploadData.value.calculateType){
    case 2:{
      areaSum = parseFloat((row.width * row.height * row.quantity/1000000).toFixed(2))
      areaSum = parseFloat((row.width * row.height * row.quantity/1000000).toFixed(decValue))
      break
    }
    default :{
      areaSum = parseFloat((row.computeArea * row.quantity).toFixed(2))
      areaSum = parseFloat((row.computeArea * row.quantity).toFixed(decValue))
      break
    }
  }
@@ -1040,18 +1047,17 @@
      }
      item.area = area(item)
      item.grossArea = countArea(item)
      const decValue = company.decValue
      if(item.computeGrossArea === undefined){
        if(titleUploadData.value.calculateType===1){
          item.computeGrossArea = parseFloat((item.computeArea*item.quantity).toFixed(2))
        }else if(titleUploadData.value.calculateType===2){
          item.computeGrossArea = item.grossArea
        }
        if(titleUploadData.value.calculateType===3){
          item.grossAmount=parseFloat((item.price * item.quantity).toFixed(2))
        }else{
          item.grossAmount=parseFloat((item.price * item.computeGrossArea).toFixed(2))
        }
      if(titleUploadData.value.calculateType===1){
        item.computeGrossArea = parseFloat((item.computeArea*item.quantity).toFixed(decValue))
      }else if(titleUploadData.value.calculateType===2){
        item.computeGrossArea = item.grossArea
      }
      if(titleUploadData.value.calculateType===3){
        item.grossAmount=parseFloat((item.price * item.quantity).toFixed(2))
      }else{
        item.grossAmount=parseFloat((item.price * 1 * item.computeGrossArea).toFixed(2))
      }
    })