From 48ea29772a71aafb7c687a62a5ba4ecc9b6635a8 Mon Sep 17 00:00:00 2001
From: qushaowei <qushaowei@163.com>
Date: 星期四, 29 五月 2025 13:39:27 +0800
Subject: [PATCH] 备件请购功能

---
 src/views/flowable/workflow/FlowTodo.vue |  271 +++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 207 insertions(+), 64 deletions(-)

diff --git a/src/views/flowable/workflow/FlowTodo.vue b/src/views/flowable/workflow/FlowTodo.vue
index af6ba4b..7f23a43 100644
--- a/src/views/flowable/workflow/FlowTodo.vue
+++ b/src/views/flowable/workflow/FlowTodo.vue
@@ -7,12 +7,23 @@
   <a-card :bordered='false'>
     <!-- 鏌ヨ鍖哄煙 -->
     <div class='table-page-search-wrapper'>
-      <a-form layout='inline' @keyup.enter.native='searchQuery'>
+      <a-form
+        layout='inline'
+        @keyup.enter.native='searchQuery'
+      >
         <a-row :gutter='24'>
-          <a-col :lg='6' :md='8' :sm='24' :xl='4'>
+          <a-col
+            :lg='6'
+            :md='8'
+            :sm='24'
+            :xl='4'
+          >
             <a-form-item label='娴佺▼鍒嗙被'>
-              <j-dict-select-tag v-model='queryParam.category' dictCode='flow_type'
-                                 placeholder='璇烽�夋嫨娴佺▼鍒嗙被'></j-dict-select-tag>
+              <j-dict-select-tag
+                v-model='queryParam.category'
+                dictCode='flow_type'
+                placeholder='璇烽�夋嫨娴佺▼鍒嗙被'
+              ></j-dict-select-tag>
             </a-form-item>
           </a-col>
           <!--<a-col :xl="4" :lg="6" :md="8" :sm="24">-->
@@ -20,35 +31,83 @@
           <!--<a-input placeholder="璇疯緭鍏ユ祦绋嬪悕绉�" v-model="queryParam.flowName"></a-input>-->
           <!--</a-form-item>-->
           <!--</a-col>-->
-          <a-col :lg='6' :md='8' :sm='24' :xl='4'>
+          <a-col
+            :lg='6'
+            :md='8'
+            :sm='24'
+            :xl='4'
+          >
             <a-form-item label='褰撳墠鑺傜偣'>
-              <a-input v-model='queryParam.name' placeholder='璇疯緭鍏ュ綋鍓嶈妭鐐圭簿纭煡璇�'></a-input>
+              <a-input
+                v-model='queryParam.name'
+                placeholder='璇疯緭鍏ュ綋鍓嶈妭鐐圭簿纭煡璇�'
+              ></a-input>
             </a-form-item>
           </a-col>
-          <a-col :lg='6' :md='8' :sm='24' :xl='4'>
+          <a-col
+            :lg='6'
+            :md='8'
+            :sm='24'
+            :xl='4'
+          >
             <a-form-item label='绠�瑕佹弿杩�'>
-              <a-input v-model='queryParam.title' placeholder='璇疯緭鍏ョ畝瑕佹弿杩�'></a-input>
+              <a-input
+                v-model='queryParam.title'
+                placeholder='璇疯緭鍏ョ畝瑕佹弿杩�'
+              ></a-input>
             </a-form-item>
           </a-col>
           <template v-if='toggleSearchStatus'>
-            <a-col :lg='8' :md='12' :sm='24' :xl='8'>
+            <a-col
+              :lg='8'
+              :md='12'
+              :sm='24'
+              :xl='8'
+            >
               <a-form-item label='浠诲姟鏃堕棿鑼冨洿'>
-                <j-date v-model='queryParam.startTime' :show-time='false' class='query-group-cust'
-                        date-format='YYYY-MM-DD HH:mm:ss'
-                        placeholder='璇烽�夋嫨寮�濮嬫椂闂�'></j-date>
+                <j-date
+                  v-model='queryParam.startTime'
+                  :show-time='false'
+                  class='query-group-cust'
+                  date-format='YYYY-MM-DD HH:mm:ss'
+                  placeholder='璇烽�夋嫨寮�濮嬫椂闂�'
+                ></j-date>
                 <span class='query-group-split-cust'></span>
-                <j-date v-model='queryParam.endTime' :show-time='false' class='query-group-cust'
-                        date-format='YYYY-MM-DD HH:mm:ss'
-                        placeholder='璇烽�夋嫨缁撴潫鏃堕棿'></j-date>
+                <j-date
+                  v-model='queryParam.endTime'
+                  :show-time='false'
+                  class='query-group-cust'
+                  date-format='YYYY-MM-DD HH:mm:ss'
+                  placeholder='璇烽�夋嫨缁撴潫鏃堕棿'
+                ></j-date>
               </a-form-item>
             </a-col>
           </template>
 
-          <a-col :lg='6' :md='8' :sm='24' :xl='4'>
-            <span class='table-page-search-submitButtons' style='float: left;overflow: hidden;'>
-              <a-button icon='search' type='primary' @click='searchQuery'>鏌ヨ</a-button>
-              <a-button icon='reload' style='margin-left: 8px' @click='searchReset'>閲嶇疆</a-button>
-               <a style='margin-left: 8px' @click='handleToggleSearch'>
+          <a-col
+            :lg='6'
+            :md='8'
+            :sm='24'
+            :xl='4'
+          >
+            <span
+              class='table-page-search-submitButtons'
+              style='float: left;overflow: hidden;'
+            >
+              <a-button
+                icon='search'
+                type='primary'
+                @click='searchQuery'
+              >鏌ヨ</a-button>
+              <a-button
+                icon='reload'
+                style='margin-left: 8px'
+                @click='searchReset'
+              >閲嶇疆</a-button>
+              <a
+                style='margin-left: 8px'
+                @click='handleToggleSearch'
+              >
                 {{ toggleSearchStatus ? '鏀惰捣' : '灞曞紑' }}
                 <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
               </a>
@@ -63,7 +122,10 @@
     <div class='table-operator'>
       <a-dropdown v-if='selectedRowKeys.length > 0 '>
         <a-menu slot='overlay'>
-          <a-menu-item key='1' @click='batchHandle'>
+          <a-menu-item
+            key='1'
+            @click='batchHandle'
+          >
             <a-icon type='delete' />
             鎵归噺澶勭悊
           </a-menu-item>
@@ -76,10 +138,16 @@
 
     <!-- table鍖哄煙-begin -->
     <div>
-      <div class='ant-alert ant-alert-info' style='margin-bottom: 16px;'>
+      <div
+        class='ant-alert ant-alert-info'
+        style='margin-bottom: 16px;'
+      >
         <i class='anticon anticon-info-circle ant-alert-icon'></i>宸查�夋嫨&nbsp;<a style='font-weight: 600'>{{
           selectedRowKeys.length }}</a>椤�&nbsp;&nbsp;
-        <a style='margin-left: 24px' @click='onClearSelected'>娓呯┖</a>
+        <a
+          style='margin-left: 24px'
+          @click='onClearSelected'
+        >娓呯┖</a>
       </div>
 
       <a-table
@@ -93,54 +161,115 @@
         bordered
         rowKey='id'
         size='middle'
-        @change='handleTableChange'>
+        @change='handleTableChange'
+      >
 
-        <span slot='action' slot-scope='text, record'>
-            <a @click='handelDetail(record,text)'>鎵ц/瀹℃壒</a>
+        <span
+          slot='action'
+          slot-scope='text, record'
+        >
+          <a @click='handelDetail(record,text)'>鎵ц/瀹℃壒</a>
         </span>
 
       </a-table>
     </div>
-    <AssignFileStreamHandle ref='modalFormApproval' :selectShenpiData='selectShenpiData'
-                            @searchReset='searchReset'></AssignFileStreamHandle>
-    <DispatchFileHandle ref='modalFormDispatchFileXq' :selectShenpiData='selectDispatchFileXqData'
-                        @searchReset='searchReset'></DispatchFileHandle>
-    <DispatchFileBachHandleStyle ref='modalFormDispatchFileBatch' @ok='modalFormOk'
-                                 @searchReset='searchReset'></DispatchFileBachHandleStyle>
+    <AssignFileStreamHandle
+      ref='modalFormApproval'
+      :selectShenpiData='selectShenpiData'
+      @searchReset='searchReset'
+    ></AssignFileStreamHandle>
+    <DispatchFileHandle
+      ref='modalFormDispatchFileXq'
+      :selectShenpiData='selectDispatchFileXqData'
+      @searchReset='searchReset'
+    ></DispatchFileHandle>
+    <DispatchFileBachHandleStyle
+      ref='modalFormDispatchFileBatch'
+      @ok='modalFormOk'
+      @searchReset='searchReset'
+    ></DispatchFileBachHandleStyle>
     <!--鍗曚釜娴佺▼澶勭悊-->
-    <InspectionOrderHandle ref='modalFormInspectionOrder' :selectShenpiData='selectInspectionOrderData'
-                           @searchReset='searchReset'></InspectionOrderHandle>
-    <week-maintenance-approval-modal ref='weekMaintenanceApprovalModal' :selectShenpiData='selectWeekMaintenanceData'
-                                     @searchReset='searchReset'></week-maintenance-approval-modal>
-    <repair-order-approval-modal ref='repairOrderApprovalModal' :selectShenpiData='selectRepairOrderData'
-                                 @searchReset='searchReset'></repair-order-approval-modal>
-    <out-bound-order-handle ref='outBoundOrderHandle' :selectShenpiData='selectOutBoundOrderData'
-                            @searchReset='searchReset'></out-bound-order-handle>
-    <stocktaking-bound-handle ref='stocktakingBoundHandle' :selectShenpiData='selectStocktakingBoundOrderData'
-                              @searchReset='searchReset'></stocktaking-bound-handle>
+    <InspectionOrderHandle
+      ref='modalFormInspectionOrder'
+      :selectShenpiData='selectInspectionOrderData'
+      @searchReset='searchReset'
+    ></InspectionOrderHandle>
+    <week-maintenance-approval-modal
+      ref='weekMaintenanceApprovalModal'
+      :selectShenpiData='selectWeekMaintenanceData'
+      @searchReset='searchReset'
+    ></week-maintenance-approval-modal>
+    <repair-order-approval-modal
+      ref='repairOrderApprovalModal'
+      :selectShenpiData='selectRepairOrderData'
+      @searchReset='searchReset'
+    ></repair-order-approval-modal>
+    <out-bound-order-handle
+      ref='outBoundOrderHandle'
+      :selectShenpiData='selectOutBoundOrderData'
+      @searchReset='searchReset'
+    ></out-bound-order-handle>
+    <stocktaking-bound-handle
+      ref='stocktakingBoundHandle'
+      :selectShenpiData='selectStocktakingBoundOrderData'
+      @searchReset='searchReset'
+    ></stocktaking-bound-handle>
 
-
-    <loss-bound-handle ref='lossBoundHandle' :selectShenpiData='selectLossBoundOrderData'
-                       @searchReset='searchReset'></loss-bound-handle>
+    <loss-bound-handle
+      ref='lossBoundHandle'
+      :selectShenpiData='selectLossBoundOrderData'
+      @searchReset='searchReset'
+    ></loss-bound-handle>
 
     <!--鎵归噺澶勭悊-->
-    <inspection-order-batch-handle ref='inspectionOrderBatchHandleRef' :taskList='selectionRows'
-                                   @searchReset='searchReset' />
+    <inspection-order-batch-handle
+      ref='inspectionOrderBatchHandleRef'
+      :taskList='selectionRows'
+      @searchReset='searchReset'
+    />
 
-    <week-maintenance-batch-approval-modal ref='weenMaintenanceBatchApprovalModalRef' :taskList='selectionRows'
-                                           @searchReset='searchReset' />
-    <equipment-lean-out-approval-modal ref='equipmentLeanOutApprovalModelRef' @searchReset='searchReset' />
+    <week-maintenance-batch-approval-modal
+      ref='weenMaintenanceBatchApprovalModalRef'
+      :taskList='selectionRows'
+      @searchReset='searchReset'
+    />
+    <equipment-lean-out-approval-modal
+      ref='equipmentLeanOutApprovalModelRef'
+      @searchReset='searchReset'
+    />
 
-    <second-maintenance-approval-modal ref='secondMaintenanceApprovalModal'
-                                       :selectShenpiData='selectSecondMaintenanceData'
-                                       @searchReset='searchReset'></second-maintenance-approval-modal>
-    <third-maintenance-approval-modal ref='thirdMaintenanceApprovalModal' :selectShenpiData='selectThirdMaintenanceData'
-                                      @searchReset='searchReset'></third-maintenance-approval-modal>
-    <equipment-seal-up-approval-modal ref='equipmentSealUpApprovalModelRef' @searchReset='searchReset' />
-    <inbound-order-handle ref='inboundOrderApprovalModal' :selectInboundOrderData='selectInboundOrderData'
-                          @searchReset='searchReset'></inbound-order-handle>
-    <equipment-transfer-approval-modal ref='equipmentTransferApprovalModelRef' @searchReset='searchReset' />
-    <equipment-scrap-approval-modal ref='equipmentScrapApprovalModelRef' @searchReset='searchReset' />
+    <second-maintenance-approval-modal
+      ref='secondMaintenanceApprovalModal'
+      :selectShenpiData='selectSecondMaintenanceData'
+      @searchReset='searchReset'
+    ></second-maintenance-approval-modal>
+    <third-maintenance-approval-modal
+      ref='thirdMaintenanceApprovalModal'
+      :selectShenpiData='selectThirdMaintenanceData'
+      @searchReset='searchReset'
+    ></third-maintenance-approval-modal>
+    <equipment-seal-up-approval-modal
+      ref='equipmentSealUpApprovalModelRef'
+      @searchReset='searchReset'
+    />
+    <inbound-order-handle
+      ref='inboundOrderApprovalModal'
+      :selectInboundOrderData='selectInboundOrderData'
+      @searchReset='searchReset'
+    ></inbound-order-handle>
+    <equipment-transfer-approval-modal
+      ref='equipmentTransferApprovalModelRef'
+      @searchReset='searchReset'
+    />
+    <equipment-scrap-approval-modal
+      ref='equipmentScrapApprovalModelRef'
+      @searchReset='searchReset'
+    />
+    <spare-part-apply-handle
+      ref='sparePartApplyModal'
+      :selectSparePartApplyData='selectSparePartApplyData'
+      @searchReset='searchReset'
+    ></spare-part-apply-handle>
   </a-card>
 </template>
 
@@ -171,6 +300,7 @@
 import stocktakingBoundHandle from '@views/flowable/workflow/stocktakingBound/stocktakingBoundHandle.vue'
 import lossBoundHandle from '@views/flowable/workflow/lossBound/lossBoundHandle.vue'
 import InboundOrderHandle from '@views/flowable/workflow/inboundOrder/InboundOrderHandle.vue'
+import SparePartApplyHandle from '@views/flowable/workflow/sparePartApply/SparePartApplyHandle.vue'
 
 export default {
   name: 'NcDeviceCharactersList',
@@ -194,7 +324,8 @@
     EquipmentSealUpApprovalModal,
     InboundOrderHandle,
     EquipmentTransferApprovalModal,
-    EquipmentScrapApprovalModal
+    EquipmentScrapApprovalModal,
+    SparePartApplyHandle
   },
   data() {
     return {
@@ -207,7 +338,7 @@
           key: 'rowIndex',
           width: 60,
           align: 'center',
-          customRender: function(t, r, index) {
+          customRender: function (t, r, index) {
             return parseInt(index) + 1
           }
         },
@@ -280,6 +411,7 @@
       selectLossBoundOrderData: {},
       selectStocktakingBoundOrderData: {},
       selectInboundOrderData: {},
+      selectSparePartApplyData: {},
       //涓氬姟淇℃伅ID
       dataId: undefined
     }
@@ -287,7 +419,7 @@
   created() {
   },
   computed: {
-    importExcelUrl: function() {
+    importExcelUrl: function () {
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
     },
     getTableColumnsTotalWidth() {
@@ -380,6 +512,9 @@
           break
         case 'equipment_scrap':
           this.handleEquipmentScrap(item)
+          break
+        case 'spare_part_apply':
+          this.handleSparePartApplyApproval(item)
           break
         default:
           alert('娌℃壘鍒拌娴佺▼')
@@ -536,7 +671,15 @@
       this.$refs.equipmentScrapApprovalModelRef.title = item.name
       this.$refs.equipmentScrapApprovalModelRef.handleDetail(item)
       this.$refs.equipmentScrapApprovalModelRef.disableSubmit = false
-    }
+    },
+    handleSparePartApplyApproval(item) {
+      if (item && item.dataId) {
+        this.selectSparePartApplyData = Object.assign({}, item)
+        this.$refs.sparePartApplyModal.auditVisible = true
+        this.$refs.sparePartApplyModal.clearTableSource()
+        this.$refs.sparePartApplyModal.getAllApproveData(item)
+      }
+    },
   }
 }
 </script>

--
Gitblit v1.9.3