guoyuji
2024-05-28 38f7a5cae3d0daadd2cbc7e18756b0c98c978c26
north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
@@ -342,7 +342,8 @@
            ElMessage.error(t('order.msg.tableLengthMax'))
            return
          }
          $grid.insert({})
          $grid.insertAt({}, $grid.getTableData.length || -1).then(() => {
          })
          break
        }
        case 'deleteRow':{
@@ -421,7 +422,6 @@
  },
  cellDblclick (params) {//表格内容双击打开产品界面
    const { row,column } = params
    console.log(column)
    if(column.field==='productName' || column.field==='productId'){
      productVisible.value = true
      rowIndex=row
@@ -576,7 +576,7 @@
    titleUploadData.value.icon = titleSelectJson.value.icon[0].basicName
    titleUploadData.value.packType = titleSelectJson.value.packType[0].basicName
    titleUploadData.value.alType = titleSelectJson.value.alType[0].basicName
    titleUploadData.value.calculateType=1
    titleUploadData.value.calculateType = 2
    const today = new Date
    today.setTime(today.getTime() + (15 * 24 * 60 * 60 * 1000))
    titleUploadData.value.deliveryDate = today.getFullYear() +
@@ -659,11 +659,23 @@
}
const area = (row) => {
  return parseFloat((row.width * row.height/1000000).toFixed(2))
}
const countArea = (row) => {
  const area = parseFloat((row.width * row.height/1000000).toFixed(2))
  return parseFloat((area * row.quantity).toFixed(2))
  let areaSum = 0
  switch (titleUploadData.value.calculateType){
    case 1:{
      areaSum = parseFloat((area * row.quantity).toFixed(2))
      break
    }
    case 2:{
      areaSum = parseFloat((row.width * row.height * row.quantity/1000000).toFixed(2))
      break
    }
  }
  return areaSum
}
//计算金钱
const countMoney = (list) => {
@@ -700,8 +712,17 @@
      }
      item.area = area(item)
      item.grossArea = countArea(item)
      item.computeGrossArea = parseFloat((item.computeArea*item.quantity).toFixed(2))
      item.grossAmount=parseFloat((item.price * item.computeGrossArea).toFixed(2))
      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))
      }
    })
    //赋值表头数据
    titleUploadData.value.money=countMoney(jsonData).toString()
@@ -736,7 +757,10 @@
      row.grossAmount=parseFloat((row.price * row.computeGrossArea).toFixed(2))
   }else if(column.property === 'computeArea'){
     row.computeGrossArea=parseFloat((row.computeArea*row.quantity).toFixed(2))
     row.grossAmount=parseFloat((row.price * row.computeGrossArea).toFixed(2))
     if(titleUploadData.value.calculateType!==3){
       row.grossAmount=parseFloat((row.price * row.computeGrossArea).toFixed(2))
     }
   }
   // else if(column.property.indexOf('otherColumns.M')>-1){
   //   let quantity = 0
@@ -790,6 +814,28 @@
    done()
    titleUploadData.value.money=countMoney(xGrid.value.getTableData().fullData).toString()
  }
}
//改变计算方式
const changeCalculateType = ()=>{
  const fullData = xGrid.value.getTableData().fullData
  if(fullData.length===0){
    return
  }
  fullData.forEach((item) => {
    if( !isNaN(item.computeArea*1) && item.computeArea != null ){
      item.grossArea = countArea(item)
      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))
      }
    }
  })
  titleUploadData.value.money=countMoney(fullData).toString()
}
@@ -872,8 +918,9 @@
        <el-col  :span="2"><el-input  v-model="titleUploadData.batch"/></el-col>
        <el-col  :span="2"><el-text>{{$t('order.calculateType')}}:</el-text></el-col>
        <el-col  :span="2">
          <el-select v-model="titleUploadData.calculateType"  clearable placeholder=" " >
          <el-select @change="changeCalculateType" v-model="titleUploadData.calculateType"  clearable placeholder=" " >
            <el-option :value="1" label="面积金额(单片)"/>
            <el-option :value="2" label="面积金额(总面积)"/>
          </el-select>
        </el-col>
        <el-col  :span="2"><el-text>*{{$t('order.salesman')}}:</el-text></el-col>