From 15a8feb66e7f0194bdf86e5cc8de527dec5b6f5a Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期二, 28 十月 2025 11:34:09 +0800
Subject: [PATCH] 订单发货界面取消筛选保存提示以及双击复制内容功能

---
 north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue |  180 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 170 insertions(+), 10 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue b/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
index 40662a0..c976809 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
@@ -11,10 +11,14 @@
 import {addListener,toolbarButtonClickEvent} from "@/hook/mouseMove";
 import { useI18n } from 'vue-i18n'
 import OrderOtherMoney from "@/components/sd/order/OrderOtherMoney.vue";
+import FinishedGlassShelfInformation from "@/views/mm/finishedGlassShelf/FinishedGlassShelfInformation.vue";
+import CreateFinishedGlassShelfEmit from "@/views/mm/finishedGlassShelf/CreateFinishedGlassShelfEmit.vue";
 import footSum from "@/hook/footSum";
 import {changeFilterEvent,filterChanged} from "@/hook"
 import companyInfo from "@/stores/sd/companyInfo";
 import {multiply} from "@/utils/decimal";
+import MaterialAddition from "@/views/mm/ingredientStock/MaterialAddition.vue";
+import {copyTableCellValue} from "@/hook/copyTableCellValue";
 
 //璇█鑾峰彇
 const { t } = useI18n()
@@ -24,6 +28,8 @@
 const username = userStore.user.userName
 const userid = userStore.user.userId
 const company = companyInfo()
+let dialogTableVisible = ref(false)
+let dialogTableVisible2 = ref(false)
 let produceList = ref([])
 let cellArea = ref()
 let otherMoneyVisible = ref(false)
@@ -194,9 +200,15 @@
         })
         xGrid.value.reloadData(orderDetails)
         xGrid.value.loadData(produceList)
+
+        if(userStore.user.permissions.indexOf('createDelivery.add') > -1&&userStore.user.permissions.indexOf('createDelivery.review') > -1){
+          gridOptions.toolbarConfig.buttons[0].visible  = false
+        }else{
+          gridOptions.toolbarConfig.buttons[1].visible  = false
+        }
         //绂佺敤鎸夐挳
-        gridOptions.toolbarConfig.buttons[1].disabled  = true
-        gridOptions.toolbarConfig.buttons[2].disabled = true
+        gridOptions.toolbarConfig.buttons[2].disabled  = true
+        gridOptions.toolbarConfig.buttons[3].disabled = true
         //鏄剧ず澶嶉�夋
         xGrid.value.showColumn("select")
         gridOptions.loading=false
@@ -218,19 +230,24 @@
         titleUploadData.value=deepClone(res.data.delivery)
         titleUploadData.value.deliveryId=str
 
+        if(userStore.user.permissions.indexOf('createDelivery.add') > -1&&userStore.user.permissions.indexOf('createDelivery.review') > -1){
+          gridOptions.toolbarConfig.buttons[0].visible  = false
+        }else{
+          gridOptions.toolbarConfig.buttons[1].visible  = false
+        }
         //鍒ゆ柇鏄惁鍙戣揣鍑哄簱
         if(!company.deliveryOutbound){
           if(titleUploadData.value.stockState!==0){
-            gridOptions.toolbarConfig.buttons[2].disabled = true
+            gridOptions.toolbarConfig.buttons[3].disabled = true
           }
         }
         //鏍规嵁瀹℃牳鐘舵�佹樉绀哄鏍告寜閽垨鑰呮槸鍙嶅鎸夐挳
         if(titleUploadData.value.deliveryState!==0){
+          gridOptions.toolbarConfig.buttons[2].disabled = true
           gridOptions.toolbarConfig.buttons[1].disabled = true
-          gridOptions.toolbarConfig.buttons[0].disabled = true
         }
         if(titleUploadData.value.deliveryState===0){
-          gridOptions.toolbarConfig.buttons[2].disabled = true
+          gridOptions.toolbarConfig.buttons[3].disabled = true
         }
 
         pageNum=1
@@ -321,7 +338,7 @@
     {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,filterMethod:filterChanged},
     {field: 'orderNumber',width:120,  title: t('order.OrderNum'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'finishedGoodsInventory.boxNo',width:120,  title: t('绠卞彿'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'finishedGoodsInventory.boxNo',width:120,  title: t('productStock.boxNumber'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
     {field: 'productName',width:120,  title: t('order.product'),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},
@@ -350,8 +367,10 @@
   toolbarConfig: {
     buttons: [
       {'code': 'add', 'name': t('basicData.save'),status: 'primary',icon: 'vxe-icon-save'},
+      {'code': 'addToExamine', 'name': t('reportingWorks.saveAndReview'),status: 'primary',icon: 'vxe-icon-save'},
       {'code': 'toExamine', 'name': t('basicData.review'),status: 'primary'},
-      {'code': 'CounterExamination', 'name': t('basicData.cancelReview'),status: 'primary'}
+      {'code': 'CounterExamination', 'name': t('basicData.cancelReview'),status: 'primary'},
+      //{'code': 'glassShelf', 'name': t('finishedGlassShelf.finishedGlassShelfEmit'),status: 'primary'}
     ],
     /*import: false,
    export: true,
@@ -416,15 +435,22 @@
             titleUploadData.value.freightQuantity=0
           }
 
+          if($grid.getCheckedFilters().length!==0){
+            ElMessage.error(t('order.msg.pleaseCancelTheFilteringFirst'))
+            return
+          }
 
           let flowData = ref({
             delivery: selectRecords,
             title: titleUploadData.value,
             deliveryId: route.query.deliveryID,
             otherMoney:otherMoney.value,
-            deliveryIdType:company.deliveryIdType
+            deliveryIdType:company.deliveryIdType,
+            deliveryOutbound:company.deliveryOutbound,
+            type:2
 
           })
+          gridOptions.toolbarConfig.buttons[0].disabled = true
            request.post("/delivery/insertDelivery", flowData.value).then((res) => {
              if(res.code==200 && res.data==="true"){
                ElMessage.success(t('delivery.deliveryNoteSubmittedSuccessfully'))
@@ -448,6 +474,8 @@
            }).catch((err)=>{
              ElMessage.error(t('basicData.msg.ServerConnectionError'))
              router.push("/login")
+           }).finally(()=>{
+             gridOptions.toolbarConfig.buttons[0].disabled = false
            })
           break
         }
@@ -501,7 +529,93 @@
           })
           break
         }
+        case 'glassShelf': {
+          dialogTableVisible.value=true
+          /*if(titleUploadData.value.deliveryId!=null&&titleUploadData.value.deliveryId!=''){
+            router.push({path:'/main/finishedGlassShelf/finishedGlassShelfInformation',query:{deliveryID:titleUploadData.value.deliveryId}})
+          }else if(number.value!=null){
+            router.push({path:'/main/finishedGlassShelf/finishedGlassShelfInformation',query:{orderId:number.value}})
+          }*/
 
+          break
+        }
+        case 'addToExamine': {
+          const selectRecords = $grid.getCheckboxRecords()
+
+          if (selectRecords.length === 0) {
+            ElMessage.warning(t('productStock.unselectedData'))
+            return
+          }
+          const errMap = await $grid.validate(selectRecords)
+          if (errMap) {
+            ElMessage.warning(t('productStock.dataVerificationFailed'))
+            return
+          }
+          //琛ㄥご鏁版嵁鏍¢獙
+          const paymentTerms = titleUploadData.value.paymentTerms
+          if(paymentTerms === null || paymentTerms === undefined || paymentTerms === ''){
+            ElMessage.error(t('delivery.pleaseSelectPaymentTerms'))
+            return
+          }
+          const payMethod = titleUploadData.value.payMethod
+          if(payMethod === null || payMethod === undefined || payMethod === ''){
+            ElMessage.error(t('delivery.pleaseEnterThePaymentMethod'))
+            return
+          }
+          const freightPrice = titleUploadData.value.freightPrice
+          if(freightPrice=== null || freightPrice === undefined || freightPrice === ''){
+            titleUploadData.value.freightPrice=0
+          }
+          const freightQuantity = titleUploadData.value.freightQuantity
+          if(freightQuantity=== null || freightQuantity === undefined || freightQuantity === ''){
+            titleUploadData.value.freightQuantity=0
+          }
+
+          if($grid.getCheckedFilters().length!==0){
+            ElMessage.error(t('order.msg.pleaseCancelTheFilteringFirst'))
+            return
+          }
+
+
+          let flowData = ref({
+            delivery: selectRecords,
+            title: titleUploadData.value,
+            deliveryId: route.query.deliveryID,
+            otherMoney:otherMoney.value,
+            deliveryIdType:company.deliveryIdType,
+            deliveryOutbound:company.deliveryOutbound,
+            type:2
+
+          })
+          gridOptions.toolbarConfig.buttons[1].disabled = true
+          request.post("/delivery/insertDelivery", flowData.value).then((res) => {
+            if(res.code==200 && res.data==="true"){
+              ElMessage.success(t('delivery.deliveryNoteSubmittedSuccessfully'))
+              //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(t('basicData.msg.quantityError'))
+            }else if(res.data==="false3"){
+              ElMessage.warning(t('basicData.msg.dataDoesNotExist'))
+            }else{
+              ElMessage.warning(t('basicData.msg.saveFail'))
+            }
+          }).catch((err)=>{
+            ElMessage.error(t('basicData.msg.ServerConnectionError'))
+            router.push("/login")
+          }).finally(()=>{
+            gridOptions.toolbarConfig.buttons[1].disabled = false
+          })
+          break
+        }
       }
     }
   },
@@ -573,6 +687,9 @@
 
       }
     }
+  },
+  cellDblclick ({row,column}) {
+    copyTableCellValue(row,column)
   }
 }
 
@@ -653,6 +770,18 @@
   }
 
 }
+const datas=ref(null)
+const handleChildResult = (data) => {
+  datas.value=data
+  dialogTableVisible.value=false
+  dialogTableVisible2.value=true
+};
+
+const handleChildResult2 = (data) => {
+  dialogTableVisible2.value=false
+};
+
+
 
 
 </script>
@@ -665,7 +794,7 @@
         <el-col  :span="3"><el-input style="font-size: large;color: #181818" v-model="titleUploadData.customerId" :readonly="true" ></el-input></el-col>
         <el-col  :span="2"><el-text>{{$t('customer.customerName')}}:</el-text></el-col>
         <el-col  :span="5"><el-input  v-model="titleUploadData.customerName" :readonly="true"></el-input></el-col>
-        <el-col  :span="2"><el-text>{{$t('customer.customerNumber')}}:</el-text></el-col>
+        <el-col  :span="2"><el-text>{{$t('order.project')}}:</el-text></el-col>
         <el-col  :span="5"><el-input v-model="titleUploadData.project" :readonly="true"></el-input></el-col>
       </el-row>
       <el-row>
@@ -741,7 +870,7 @@
     </div>
     <div class="main-table">
       <vxe-grid
-          max-height="100%"
+          height="100%"
           class="mytable-scrollbar"
           ref="xGrid"
           v-bind="gridOptions"
@@ -792,6 +921,37 @@
           :otherMoney="otherMoney"
           style="width: 100%;height: 100%" />
     </el-dialog>
+
+    <!--    鏂欐灦搴撳瓨寮圭獥-->
+    <el-dialog v-model="dialogTableVisible"
+               :title="$t('finishedGlassShelf.finishedGlassShelfInformation')"
+                style="width: 70%;height:75%"
+                destroy-on-close
+                :close-on-click-modal="false"
+                :close-on-press-escape="false">
+      <Finished-glass-shelf-information
+          style="width: 100%;height: 600px"
+          type=1
+          @handle-result="handleChildResult"
+      />
+    </el-dialog>
+
+    <!--    鏂欐灦鍑哄簱寮圭獥-->
+    <el-dialog v-model="dialogTableVisible2"
+               :title="$t('finishedGlassShelf.finishedGlassShelfEmit')"
+               style="width: 70%;height:75% "
+               destroy-on-close
+               :close-on-click-modal="false"
+               :close-on-press-escape="false">
+      <Create-finished-glass-shelf-emit
+          style="width: 100%;height: 600px"
+          type=1
+          :customerName="titleUploadData.customerName"
+          :project="titleUploadData.project"
+          :data="datas"
+          @handle-result="handleChildResult2"
+      />
+    </el-dialog>
   </div>
 
 </template>

--
Gitblit v1.8.0