chenlu
2024-09-06 d809ecd16cbb23f5aad86a6844f51ffea0455fe8
north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
@@ -13,6 +13,8 @@
import OrderOtherMoney from "@/components/sd/order/OrderOtherMoney.vue";
import footSum from "@/hook/footSum";
import {changeFilterEvent,filterChanged} from "@/hook"
import companyInfo from "@/stores/sd/companyInfo";
import {multiply} from "@/utils/decimal";
//语言获取
const { t } = useI18n()
@@ -21,6 +23,7 @@
const userStore = useUserInfoStore()
const username = userStore.user.userName
const userid = userStore.user.userId
const company = companyInfo()
let produceList = ref([])
let cellArea = ref()
let otherMoneyVisible = ref(false)
@@ -54,6 +57,7 @@
// 定义表头上传数据
let titleUploadData = ref({
  deliveryId:'',
  deliveryState:'',
  stockState:'',
  paymentTerms:'',
@@ -116,34 +120,37 @@
  },
})
const initOrder = async ()=> {
//页面第一次加载
request.get(`/basicData/BasicDataByType/delivery`).then((res) => {
  await request.get(`/basicData/BasicDataByType/delivery`).then((res) => {
  if(res.code==200){
    titleSelectJson.value=deepClone(res.data)
    //其他金额
    otherMoney.value = titleSelectJson.value.deliveryOtherMoney[0]
    //let columns = []
    otherMoney.value.forEach(item => {
      let column = {field: `otherColumns.${item.column}`,width:50,  title: item.alias,editRender: { name: 'input'}}
      //columns.push(column)
      gridOptions.columns.push(column)
    })
    const today = new Date
    today.setTime(today.getTime() + (15 * 24 * 60 * 60 * 1000))
    titleUploadData.value.deliveryDate = today.getFullYear() +
        '-' + ("0" + (today.getMonth() + 1)).slice(-2)
        + '-' + ("0" + today.getDate()).slice(-2)
  }else{
    ElMessage.warning(res.msg)
  }
})
    if (res.code == 200) {
      titleSelectJson.value = deepClone(res.data)
      //其他金额
      otherMoney.value = titleSelectJson.value.deliveryOtherMoney[0]
      //let columns = []
      otherMoney.value.forEach(item => {
        let column = {field: `otherColumns.${item.column}`, width: 50, title: item.alias, editRender: {name: 'input'}}
        //columns.push(column)
        gridOptions.columns.push(column)
      })
      const today = new Date
      today.setTime(today.getTime() + (15 * 24 * 60 * 60 * 1000))
      titleUploadData.value.deliveryDate = today.getFullYear() +
          '-' + ("0" + (today.getMonth() + 1)).slice(-2)
          + '-' + ("0" + today.getDate()).slice(-2)
    } else {
      ElMessage.warning(res.msg)
    }
  })
}
const  xGrid = ref();
const  number = ref();
onMounted(()=>{
onMounted( async()=>{
  await initOrder()
  //启用表格拖动选中
  addListener(xGrid.value,gridOptions,cellArea.value)
  //发货新增
@@ -161,6 +168,7 @@
        titleUploadData.value=deepClone(res.data.title)
        titleUploadData.value.paymentTerms = titleSelectJson.value.paymentTerms[0].basicName
        titleUploadData.value.payMethod = titleSelectJson.value.payMethod[0].basicName
        titleUploadData.value.deliveryId=""
        const today = new Date
        today.setTime(today.getTime() )
        titleUploadData.value.deliveryDate=today.getFullYear() +
@@ -203,7 +211,7 @@
      if(res.code==200){
        pageTotal.value=res.data.total
        titleUploadData.value=deepClone(res.data.delivery)
        titleUploadData.value.deliveryId=str
        //根据审核状态显示审核按钮或者是反审按钮
@@ -225,6 +233,9 @@
          item.otherColumns = JSON.parse(item.otherColumns)
        })
        otherMoney.value =res.data.orderOtherMoneyList
        titleUploadData.value.creator=userStore.user.userName
        titleUploadData.value.creatorId=userStore.user.userId
        xGrid.value.reloadData(orderDetails)
        xGrid.value.loadData(produceList)
@@ -287,6 +298,7 @@
  customConfig: {
    storage: true
  },
  checkboxConfig:{checkAll:true},
  mouseConfig:{selected: true},//鼠标选中
  keyboardConfig:{isArrow: true, isDel: true, isEnter: true, isTab: true, isEdit: true, isChecked: true},
  editConfig: {
@@ -313,8 +325,6 @@
    {field: 'price',width:120,  title: t('order.price'),editRender: { name: 'input' },filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
    {field: 'finishedGoodsInventory.storageRegion',width:120,  title: t('productStock.inventoryArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
    {field: 'deliveryDetail.money',width:120,  title: t('order.grossAmount'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
    {field: 'width',width:120,  title: t('order.width'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
    {field: 'height',width:120,  title: t('order.height'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
    {field: 'order.batch',width:120,  title: t('order.batch'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
    {field: 'shape',width:120,  title: t('order.shape'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
    {field: 'finishedGoodsInventory.actualSignalArea',width:120,   title: t('productStock.singlePieceArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
@@ -407,15 +417,27 @@
            delivery: selectRecords,
            title: titleUploadData.value,
            deliveryId: route.query.deliveryID,
            otherMoney:otherMoney.value
            otherMoney:otherMoney.value,
            deliveryIdType:company.deliveryIdType
          })
           request.post("/Delivery/insertDelivery", flowData.value).then((res) => {
             if(res.code==200 && res.data===true){
             if(res.code==200 && res.data==="true"){
               ElMessage.success(t('delivery.deliveryNoteSubmittedSuccessfully'))
               router.push({path: '/main/delivery/selectDelivery', query:{random:Math.random()}})
             }else if(res.data===false){
               ElMessage.warning("订单存在其他金额单价没有填写")
               //router.push({path: '/main/delivery/selectDelivery', query:{random:Math.random()}})
               if(titleUploadData.value.deliveryId.trim()===""){
                 router.push({path: '/main/delivery/selectDelivery', query:{random:Math.random()}})
               }else{
                 router.push({path:'/main/delivery/createDelivery',query:{
                     deliveryID:titleUploadData.value.deliveryId,
                     random:Math.random()}})
               }
             }else if(res.data==="false1"){
               ElMessage.warning(t('delivery.pleaseMsg1'))
             }else if(res.data==="false2"){
               ElMessage.warning("订单存在已发货请刷新界面")
             }else if(res.data==="false3"){
               ElMessage.warning("数据不存在")
             }else{
               ElMessage.warning(t('basicData.msg.saveFail'))
             }
@@ -434,10 +456,12 @@
          request.post("/Delivery/updateDeliveryToExamine", flowData.value).then((res) => {
            if (res.code == 200 && res.data===true) {
              ElMessage.success(t('basicData.msg.ReviewSuccess'))
              router.push({path: '/main/delivery/selectDelivery', query:{random:Math.random()}})
              //router.push({path: '/main/delivery/selectDelivery', query:{random:Math.random()}})
              router.push({path:'/main/delivery/createDelivery',query:{
                  deliveryID:titleUploadData.value.deliveryId,
                  random:Math.random()}})
            } else {
              ElMessage.warning(t('basicData.msg.reviewFail'))
              router.push("/login")
            }
          }).catch((err)=>{
            ElMessage.error(t('basicData.msg.ServerConnectionError'))
@@ -454,10 +478,12 @@
          request.post("/Delivery/updateDeliveryToExamine", flowData.value).then((res) => {
            if (res.code == 200 && res.data===true) {
              ElMessage.success(t('basicData.msg.cancelReviewSuccess'))
              router.push({path: '/main/delivery/selectDelivery', query:{random:Math.random()}})
              //router.push({path: '/main/delivery/selectDelivery', query:{random:Math.random()}})
              router.push({path:'/main/delivery/createDelivery',query:{
                  deliveryID:titleUploadData.value.deliveryId,
                  random:Math.random()}})
            } else {
              ElMessage.warning(t('basicData.msg.reviewFail'))
              router.push("/login")
            }
          }).catch((err)=>{
            ElMessage.error(t('basicData.msg.ServerConnectionError'))
@@ -486,6 +512,10 @@
            }
            dataList.forEach((item,index) =>{
              if(index>=result.start && index<=result.end){
                //取消选中
                if(parseInt(firstVal)<=0){
                  xGrid.value.setCheckboxRow(item, false);
                }
                if(result.cell.indexOf('.')>-1){
                  const  columnArr = result.cell.split('.')
                  item[columnArr[0]][columnArr[1]]  = firstVal
@@ -538,7 +568,7 @@
            return new Error(t('delivery.theShipmentQuantityCannotBeGreaterThanTheInventoryQuantity'))
          }else if (e.row.deliveryDetail.quantity ==="") {
            return new Error(t('delivery.theShipmentQuantityCannotBeEmptyOr0'))
         }
          }
         const regex = /^[1-9]\d*$/g
         if ( !regex.test(e.row.deliveryDetail.quantity) ) {
           return new Error(t('productStock.pleaseEnterAPositiveInteger'))
@@ -559,6 +589,16 @@
  ],
})
const editClosedEvent = ({ row, column }) => {
  if (['deliveryDetail.quantity'].includes(column.property)) {
    if(parseInt(row.deliveryDetail.quantity)===0){
      xGrid.value.setCheckboxRow(row, false);
    }
  }
}
</script>
@@ -653,6 +693,7 @@
          v-bind="gridOptions"
          v-on="gridEvents"
          :edit-rules="validRules"
          @edit-closed="editClosedEvent"
      >
        <template #num1_filter="{ column, $panel }">