From 736dd5afb982ce1c19b15633ffd3495f6f8822ec Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期二, 20 二月 2024 16:19:38 +0800
Subject: [PATCH] 工单管理转生产订单、删除,流程卡管理部分查询相关代码

---
 north-glass-erp/northglass-erp/src/views/pp/workOrder/AddWorkOrder.vue |  191 +++++++++++++++++++++++++++++++++++------------
 1 files changed, 142 insertions(+), 49 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/views/pp/workOrder/AddWorkOrder.vue b/north-glass-erp/northglass-erp/src/views/pp/workOrder/AddWorkOrder.vue
index d6a2423..cf516a9 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/workOrder/AddWorkOrder.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/workOrder/AddWorkOrder.vue
@@ -1,21 +1,86 @@
 <script setup>
 
-import {reactive} from "vue";
-import {useRouter} from  'vue-router'
-let router=useRouter()
-const getTableRow = (row,type) =>{
+import request from "@/utils/request"
+import deepClone from "@/utils/deepClone"
+import {ElDatePicker, ElMessage} from "element-plus"
+import useProductGlassTypeStore from "@/stores/sd/product/productGlassType"
+import {nextTick, onMounted, onUnmounted, reactive, ref, watch} from "vue"
+import {Search} from "@element-plus/icons-vue"
+import GlassType from "@/components/sd/product/GlassType.vue"
+import {useRouter} from 'vue-router'
+import Sortable from 'sortablejs'
+import BasicTable from '@/components/basic/BasicTable.vue'
+import {VXETable} from "vxe-table";
+import useUserInfoStore from "@/stores/userInfo";
+
+let router = useRouter()
+const userStore = useUserInfoStore()
+const username = userStore.user.userName
+const getTableRow = (row, type) => {
   switch (type) {
-    case 'edit' :{
+    case 'edit' : {
       //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
-      router.push({path: '/main/workOrder/addWorkOrder', query: { id: row.id }})
+      router.push({path: '/main/workOrder/addWorkOrder', query: {id: row.id}})
       break
     }
-    case 'delete':{
+    case 'delete': {
       alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
       break
     }
   }
 }
+
+
+//瀹氫箟婊氬姩鏉¢珮搴�
+let scrollTop = ref(null)
+let scrollHeight = ref(null)
+let clientHeight = ref(null)
+const scrollEvnt = (row) => {
+  // 鍐呭楂樺害
+  scrollTop.value = row.$event.target.scrollTop
+  scrollHeight.value = row.$event.target.scrollHeight
+  clientHeight.value = row.$event.target.clientHeight
+}
+//绛涢�夋潯浠讹紝鏈夊閿渶瑕佸厛瀹氫箟鏄庣粏閲岄潰鐨勬暟鎹�
+let filterData = ref({
+  order: {
+    batch: ''
+  },
+  orderDetail: {
+    productName: '',
+    computeArea: '',
+    quantity: '',
+    computeGrossArea: '',
+    perimeter: '',
+    bendRadius: '',
+    processingNote: ''
+  }
+
+})
+//瀹氫箟椤甸潰鎬婚〉鏁�
+let pageTotal = ref('')
+//瀹氫箟鏁版嵁杩斿洖缁撴灉
+let produceList = ref([])
+//瀹氫箟褰撳墠椤垫暟
+let pageNum = $ref(1)
+let pageState = null
+
+const {currentRoute} = useRouter()
+const route = currentRoute.value
+
+let id = route.query.orderId
+
+request.post(`/workOrder/addWork/${id}`, filterData.value).then((res) => {
+
+  if (res.code == 200) {
+    pageTotal.value = res.data.total
+    produceList = produceList.value.concat(deepClone(res.data.data))
+    xGrid.value.reloadData(produceList)
+    gridOptions.loading = false
+  } else {
+    ElMessage.warning(res.msg)
+  }
+})
 
 //琛ㄥ熬姹傚拰
 const sumNum = (list, field) => {
@@ -27,20 +92,22 @@
 }
 
 //瀛愮粍浠舵帴鏀跺弬鏁�
-
+const xGrid = ref()
 const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  loading: true,
+  border: "full",//琛ㄦ牸鍔犺竟妗�
   keepSource: true,//淇濇寔婧愭暟鎹�
   align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
+  stripe: true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true, height: 30},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'demo_1',
   showFooter: true,//鏄剧ず鑴�
   printConfig: {},
   importConfig: {},
   exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
+  scrollX: {enabled: true},
+  scrollY: {enabled: true, gt: 0},//寮�鍚櫄鎷熸粴鍔�
+  showOverflow: true,
   columnConfig: {
     resizable: true,
     useKey: true
@@ -56,21 +123,28 @@
     mode: 'row',
     showStatus: true
   },//琛ㄥご鍙傛暟
-  columns:[
-    {type:'expand',fixed:"left",slots: { content:'content' },width: 50},
-    { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: 80 },
-    { type: 'seq',fixed:"left", title: '鑷簭', width: 50 },
-    {field: 'salesOrderNo', title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true, },
-    {field: 'productID', title: '浜у搧缂栧彿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
-    {field: 'productName', title: '浜у搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'total', title: '鎬绘暟閲�', sortable: true},
-    {field: 'totalArea', title: '鎬婚潰绉�', sortable: true},
-    {field: 'perimeter', title: '鍛ㄩ暱', sortable: true,showOverflow:"ellipsis"},
+  columns: [
+    {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50},
+    {type: 'checkbox', fixed: "left", title: '閫夋嫨', width: 80},
+    {type: 'seq', fixed: "left", title: '鑷簭', width: 50},
+    {field: 'orderId', title: '閿�鍞崟鍙�', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true,},
+    {
+      field: 'productId',
+      title: '浜у搧缂栧彿',
+      sortable: true,
+      showOverflow: "ellipsis",
+      filters: [{data: ''}],
+      slots: {filter: 'num1_filter'}
+    },
+    {field: 'productName', title: '浜у搧鍚嶇О', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true},
+    {field: 'quantity', title: '鎬绘暟閲�', sortable: true},
+    {field: 'computeGrossArea', title: '鎬婚潰绉�', sortable: true},
+    {field: 'perimeter', title: '鍛ㄩ暱', sortable: true, showOverflow: "ellipsis"},
   ],//琛ㄥご鎸夐挳
 
   toolbarConfig: {
     buttons: [
-      {code: 'print_lck', name: '淇濆瓨',status:'primary' ,icon:'vxe-icon-save'},
+      {code: 'saveWorkOrder', name: '淇濆瓨', status: 'primary', icon: 'vxe-icon-save'},
     ],
     import: false,
     export: true,
@@ -78,28 +152,11 @@
     zoom: true,
     custom: true
   },
-  data:  [
-    {
-      salesOrderNo: 'NG231201',
-      productID: '9001010208000021',
-      productName: '6mm瓒呯櫧UD60骞抽挗(澶�)+12A(缁�)+6mm瓒呯櫧骞抽挗(鍐�)',
-      total:"123",
-      totalArea:"1233.12",
-      perimeter:"133"
-    },
-    {
-      salesOrderNo: 'NG231201',
-      productID: '9001010203000008',
-      productName: '6mm瓒呯櫧LYDE-80骞抽挗(澶�)+12Ar(缁�)+6mm瓒呯櫧骞抽挗(鍐�)',
-      total:"123",
-      totalArea:"1233.12",
-      perimeter:"133"
-    },
-  ],//table body瀹為檯鏁版嵁
+  data: null,//琛ㄦ牸鏁版嵁
   //鑴氶儴姹傚拰
-  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
-    let footList=['total','totalArea']
-    return[
+  footerMethod({columns, data}) {//椤佃剼鍑芥暟
+    let footList = ['total', 'totalArea']
+    return [
       columns.map((column, columnIndex) => {
         if (columnIndex === 0) {
           return '鍚堣:'
@@ -114,7 +171,42 @@
 
 })
 
+const gridEvents = {
+  toolbarButtonClick({code}) {
+    const $grid = xGrid.value
+    if ($grid) {
+      switch (code) {
+        case 'saveWorkOrder': {
+          const $table = xGrid.value
+          if ($table) {
+            const selectRecords = $table.getCheckboxRecords()
 
+            let workOrderData = ref({
+              orderdetail: selectRecords,
+              userName:username
+            })
+
+            console.log(workOrderData.value)
+            request.post("/workOrder/addOrderWork", workOrderData.value).then((res) => {
+              if (res.code == 200) {
+                ElMessage.success("淇濆瓨鎴愬姛")
+                location.reload();
+              } else {
+                ElMessage.warning(res.msg)
+                router.push("/login")
+              }
+            })
+
+          }
+          return;
+
+        }
+
+      }
+    }
+  },
+
+}
 
 </script>
 
@@ -126,14 +218,15 @@
         class="mytable-scrollbar"
         ref="xGrid"
         v-bind="gridOptions"
+        v-on="gridEvents"
 
     >
       <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
       <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
       <template #content="{ row }">
         <ul class="expand-wrapper">
-          <li  v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
-            <span style="font-weight: bold">{{item.title+':  '}}</span>
+          <li v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined ">
+            <span style="font-weight: bold">{{ item.title + ':  ' }}</span>
             <span>{{ row[item.field] }}</span>
           </li>
         </ul>
@@ -159,7 +252,7 @@
 </template>
 
 <style scoped>
-.main-div-customer{
+.main-div-customer {
   width: 99%;
   height: 100%;
 }

--
Gitblit v1.8.0