From a660db06773007b1be690e0674829c00a57aeb7b Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期三, 24 十二月 2025 16:21:23 +0800
Subject: [PATCH] 订单首页流程卡新增楼层编号显示

---
 north-glass-erp/northglass-erp/src/views/pp/rework/SelectRework.vue |  174 +++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 123 insertions(+), 51 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/views/pp/rework/SelectRework.vue b/north-glass-erp/northglass-erp/src/views/pp/rework/SelectRework.vue
index 96b3182..7a76dfc 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/rework/SelectRework.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/rework/SelectRework.vue
@@ -7,8 +7,8 @@
 import deepClone from "@/utils/deepClone";
 import {Search} from "@element-plus/icons-vue";
 import useUserInfoStore from "@/stores/userInfo";
-import {changeFilterEvent,filterChanged} from "@/hook"
 import { useI18n } from 'vue-i18n'
+import footSum from "@/hook/footSum";
 
 //璇█鑾峰彇
 const { t } = useI18n()
@@ -39,11 +39,9 @@
       break
     }
     case 'delete': {
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
       break
     }
     case  'setType': {
-      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鎺掔増鐘舵��')
       break
     }
   }
@@ -82,14 +80,43 @@
   }
 })
 
-//琛ㄥ熬姹傚拰
-const sumNum = (list, field) => {
-  let count = 0
-  list.forEach(item => {
-    count += Number(item[field])
-  })
-  return count.toFixed(2)
+const changeFilterEvent = (event, option, $panel,) => {
+  // 鎵嬪姩瑙﹀彂绛涢��
+  $panel.changeOption(event, !!option.data, option)
 }
+function filterChanged(column){
+  gridOptions.loading=true
+  //绛涢�夋潯浠跺彂鐢熷彉鍖栨潯浠跺彂鐢熷彉鍖�
+  let value = column.datas[0]!=undefined?column.datas[0]:''
+  value = value.trim()
+  //鍒ゆ柇鏄惁瀛樺湪澶栭敭
+  if (column.property.indexOf('.')>-1){
+    const  columnArr = column.property.split('.')
+    filterData.value[columnArr[0]] = {
+      [columnArr[1]]:value
+    }
+  }else{
+    filterData.value[column.property] = value
+  }
+  request.post(`/rework/SelectRework/1/${total.pageSize}/${selectDate.value}`,filterData.value).then((res) => {
+
+    if(res.code==200){
+      total.dataTotal = res.data.total.total*1
+      total.pageTotal= res.data.total.pageTotal
+
+      selectDate.value = res.data.selectDate
+      pageNum.value=1
+
+      produceList = deepClone(res.data.data)
+      xGrid.value.loadData(produceList)
+      gridOptions.loading=false
+    }else{
+      ElMessage.warning(res.msg)
+      router.push("/login")
+    }
+  })
+}
+
 
 //瀛愮粍浠舵帴鏀跺弬鏁�
 const xGrid = ref()
@@ -99,7 +126,7 @@
   align: 'center',//鏂囧瓧灞呬腑
   stripe: true,//鏂戦┈绾�
   rowConfig: {isCurrent: true, isHover: true, height: 30},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'CustomerList',
+  id: 'SelectRework',
   showFooter: true,//鏄剧ず鑴�
   printConfig: {},
   importConfig: {},
@@ -111,7 +138,7 @@
     useKey: true
   },
   filterConfig: {   //绛涢�夐厤缃」
-   // remote: true
+    remote: true
   },
   customConfig: {
     storage: true
@@ -125,38 +152,47 @@
     {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50},
     {type:'checkbox',title: t('basicData.check'), width: 80,fixed:"left"},
     {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50},
-    {field: 'review_status',title: t('basicData.review'), width: 40, slots: { default: 'state' }},
-    {field: 'rework_id', width: 120, title: t('rework.reworkNumber'), filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'rework_team', width: 120, title: t('rework.reworkTeam'), filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'order_id', width: 120, title: t('order.orderId'), showOverflow: "ellipsis", filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'process_id', width: 120, title: t('processCard.processId'), filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'project', width: 120, title: t('order.project'), filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'batch', width: 80, title: t('order.batch'), showOverflow: "ellipsis", filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'order_sort', width: 80, title: t('order.OrderNum'), filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'product_name', width: 120, title: t('order.product'), filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'technology_number', width: 80, title: t('replenish.mark'), showOverflow: "ellipsis", filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'glass_address', width: 90, title: t('replenish.sliceMarking'), filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'rework_num', width: 80, title: t('productStock.reworkQuantity'), filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'width', width: 80, title: t('order.width'), filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'height', width: 80, title: t('order.height'), filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'shape', width: 80, title: t('order.shape'), filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'rework_type', width: 100, title: t('rework.reworkType'), filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'rework_reason', width: 120, title: t('rework.reasonForRework'), filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'responsible_equipment', width: 120, title: t('reportingWorks.responsibleEquipment'), filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'responsible_team', width: 120, title: t('reportingWorks.responsibleTeam'), filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'rework_area', width: 120, title: t('rework.reworkArea'), filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'rework_processes', width: 120, title: t('rework.reworkProcess'), filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'quality_inspector', width: 100, title: t('reportingWorks.qualityInspector'), filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'reviewer', width: 100, title: t('productStock.reviewed'), filters: [{data: ''}], slots: {filter: 'num1_filter'},filterMethod:filterChanged},
-    {field: 'create_time', width: 100, title: t('productStock.productionDate')},
-    {field: 'update_time', width: 120, title: t('productStock.approvedDate')}
+    {field: 'reviewStatus',title: t('basicData.review'), width: 40, slots: { default: 'state' }},
+    {field: 'reworkId', width: 120, title: t('rework.reworkNumber'), filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'reworkTeam', width: 120, title: t('rework.reworkTeam'), filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'orderId', width: 120, title: t('order.orderId'), showOverflow: "ellipsis", filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'processId', width: 140, title: t('processCard.processId'), filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'project', width: 120, title: t('order.project'), filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'batch', width: 80, title: t('order.batch'), showOverflow: "ellipsis", filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'glassNumber', width: 100, title: t('reportingWorks.glassNumber')},
+    {field: 'orderSort', width: 80, title: t('order.OrderNum'), filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'technologyNumber', width: 80, title: t('replenish.mark'), showOverflow: "ellipsis", filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'reworkType', width: 100, title: t('rework.reworkType'), filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'reworkReason', width: 120, title: t('rework.reasonForRework'), filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'responsibleEquipment', width: 120, title: t('reportingWorks.responsibleEquipment'), filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'responsibleTeam', width: 120, title: t('reportingWorks.responsibleTeam'), filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'reworkProcesses', width: 120, title: t('rework.reworkProcess'), filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'glassAddress', width: 90, title: t('replenish.sliceMarking'), filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'reworkNum', width: 80, title: t('productStock.reworkQuantity'), filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'reworkArea', width: 120, title: t('rework.reworkArea'), filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'width', width: 80, title: t('order.width'), filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'height', width: 80, title: t('order.height'), filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'shape', width: 80, title: t('order.shape'), filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'qualityInspector', width: 100, title: t('reportingWorks.qualityInspector'), filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'reviewer', width: 100, title: t('productStock.reviewed'), filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'createTime', width: 100, title: t('productStock.productionDate')},
+    {field: 'updateTime', width: 120, title: t('productStock.approvedDate')},
+    {field: 'productName', width: 120, title: t('order.product'), filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+    {field: 'reportingWorkId', width: 100,title: t('reportingWorks.reportingWorkId'),filters: [{data: ''}], slots: {filter: 'num1_filter'}},
+
   ],//琛ㄥご鎸夐挳
 
   toolbarConfig: {
-    buttons: [{
-      'name': t('basicData.review'),status: 'primary',
-      'code':'add'
-    }],
+    buttons: [
+      {
+        'name': t('basicData.review'),status: 'primary',
+        'code':'add'
+      },
+      {
+        'name': t('basicData.delete'),status: 'primary',
+        'code':'delete'
+      }
+      ],
     /*import: false,
     export: true,
     print: true,*/
@@ -172,7 +208,7 @@
           return t('basicData.total')
         }
         if (footList.includes(column.field)) {
-          return sumNum(data, column.field)
+          return footSum(data, column.field)
         }
         return ''
       })
@@ -208,18 +244,45 @@
                 router.push({path:'/main/rework/SelectRework',query:{random:Math.random()}})
 
               }else{
-                ElMessage.warning("瀹℃牳澶辫触")
+                ElMessage.warning(t('basicData.msg.reviewFail'))
                 router.push("/login")
               }
             }).catch((err)=>{
-              ElMessage.error('绯荤粺閿欒')
+              ElMessage.error(t('basicData.msg.ServerConnectionError'))
               router.push("/login")
             })
           }
           return;
 
         }
+        case 'delete': {
+          const $table = xGrid.value
+          if ($table) {
+            const selectRecords = $table.getCheckboxRecords()
+            if (selectRecords.length === 0) {
+              ElMessage.warning(t('productStock.unselectedData'))
+              return
+            }
+            let flowData = ref({
+              userId:userid,
+              userName:username,
+              rework:selectRecords
 
+            })
+            request.post("/rework/deleteRework",flowData.value).then((res) => {
+              if(res.code==200 && res.data===true){
+                ElMessage.success(t('basicData.msg.deleteSuccess'))
+                router.push({path:'/main/rework/SelectRework',query:{random:Math.random()}})
+
+              }else{
+                ElMessage.warning(t('basicData.msg.deleteFail'))
+                router.push("/login")
+              }
+            })
+          }
+          return
+
+        }
 
       }
     }
@@ -281,8 +344,8 @@
       <el-date-picker
           v-model="selectDate"
           type="daterange"
-          start-placeholder="寮�濮嬫椂闂�"
-          end-placeholder="缁撴潫鏃堕棿"
+          :start-placeholder="$t('basicData.startDate')"
+          :end-placeholder="$t('basicData.endDate')"
           format="YYYY-MM-DD"
           value-format="YYYY-MM-DD"
 
@@ -292,11 +355,11 @@
 
 
     <vxe-grid
-        max-height="100%"
+        @filter-change="filterChanged"
+        height="100%"
         class="mytable-scrollbar"
         ref="xGrid"
         v-bind="gridOptions"
-        @scroll="scrollEvnt"
         v-on="gridEvents"
         :checkbox-config="checkBoxConfig"
 
@@ -316,13 +379,22 @@
       <template #num1_filter="{ column, $panel }">
         <div>
           <div v-for="(option, index) in column.filters" :key="index">
-            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+            <input type="type" v-model="option.data"
+                   @keyup.enter.native="$panel.confirmFilter()"
+                   @input="changeFilterEvent($event, option, $panel)"/>
           </div>
         </div>
       </template>
 
       <template #state="{ row,column}">
-        <el-checkbox @click.native.prevent  :checked="row[column.field]===1"/>
+        <el-checkbox
+            v-if="row[column.field] === 1"
+            @click.native.prevent
+            :checked="true"/>
+        <el-checkbox
+            v-else
+            @click.native.prevent
+            :checked="false"/>
       </template>
 
       <template #pager>
@@ -350,7 +422,7 @@
 <style scoped>
 .main-div-customer {
   width: 99%;
-  height: 98%;
+  height: 95%;
 }
 
 :deep(.el-col div) {

--
Gitblit v1.8.0