From 6c16bede88a1d776f0eced7028cca2080a1a606f Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期三, 23 四月 2025 09:36:23 +0800
Subject: [PATCH] art: 设备管理-周保工单-按钮权限控制,批量领取

---
 src/views/eam/maintenance/EamWeekMaintenanceOrderList.vue |  119 +++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 94 insertions(+), 25 deletions(-)

diff --git a/src/views/eam/maintenance/EamWeekMaintenanceOrderList.vue b/src/views/eam/maintenance/EamWeekMaintenanceOrderList.vue
index 7c91771..c65dc95 100644
--- a/src/views/eam/maintenance/EamWeekMaintenanceOrderList.vue
+++ b/src/views/eam/maintenance/EamWeekMaintenanceOrderList.vue
@@ -2,7 +2,7 @@
   <a-card :bordered="false">
 
     <!-- 鏌ヨ鍖哄煙 -->
-    <div class="table-page-search-wrapper">
+    <div class="table-page-search-wrapper" v-if="isDisplayOperation">
       <a-form layout="inline" @keyup.enter.native="searchQuery">
         <a-row :gutter="24">
           <a-col :xl="4" :lg="7" :md="8" :sm="24">
@@ -37,16 +37,16 @@
     </div>
 
     <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
-    <div class="table-operator">
-      <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button>
+    <div class="table-operator" v-if="isDisplayOperation">
+      <a-button @click="handleAdd" type="primary" icon="plus" v-if="isShowAuth('eam:weekMaintenance:add')">鏂板</a-button>
       <a-dropdown v-if="selectedRowKeys.length > 0">
         <a-menu slot="overlay">
-          <a-menu-item key="1" @click="handlerBatchAbolish">
+          <a-menu-item key="1" @click="handlerBatchAbolish" v-if="isShowAuth('eam:weekMaintenance:abolish')">
             <a-icon type="delete" />
             浣滃簾
           </a-menu-item>
-          <a-menu-item key="1" @click="handlerBatchCollect">
-            <a-icon type="delete" />
+          <a-menu-item key="2" @click="handlerBatchCollect" v-if="isShowAuth('eam:weekMaintenance:collect')">
+            <a-icon type="form" />
             棰嗗彇
           </a-menu-item>
         </a-menu>
@@ -58,7 +58,7 @@
 
     <!-- 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;" v-if="isDisplayOperation">
         <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a
         style="font-weight: 600">{{ selectedRowKeys.length }}</a>椤�
         <a style="margin-left: 24px" @click="onClearSelected">娓呯┖</a>
@@ -74,21 +74,20 @@
         :pagination="ipagination"
         :loading="loading"
         class="j-table-force-nowrap"
+        :scroll="{x:'max-content'}"
         :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
         @change="handleTableChange">
 
         <span slot="action" slot-scope="text, record">
-          <a v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE'" @click="handleEdit(record)">缂栬緫</a>
-          <a-divider type="vertical" />
+          <a v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE' && isShowAuth('eam:weekMaintenance:edit')" @click="handleEdit(record)">缂栬緫</a>
+          <a-divider type="vertical" v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE' && isShowAuth('eam:weekMaintenance:edit')" />
+          <a-popconfirm title="纭畾棰嗗彇鍚�?" @confirm="() => handlerCollect(record.id)">
+            <a>棰嗗彇</a>
+          </a-popconfirm>
           <a-dropdown>
             <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a>
             <a-menu slot="overlay">
-               <a-menu-item v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE'">
-                <a-popconfirm title="纭畾棰嗗彇鍚�?" @confirm="() => handlerCollect(record.id)">
-                  <a>棰嗗彇</a>
-                </a-popconfirm>
-              </a-menu-item>
-              <a-menu-item v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE'">
+              <a-menu-item v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE'  && isShowAuth('eam:weekMaintenance:abolish')">
                 <a-popconfirm title="纭畾浣滃簾鍚�?" @confirm="() => handlerAbolish(record.id)">
                   <a>浣滃簾</a>
                 </a-popconfirm>
@@ -106,7 +105,7 @@
 
     <!-- 琛ㄥ崟鍖哄煙 -->
     <eamWeekMaintenanceOrder-modal ref="modalForm" @ok="modalFormOk"></eamWeekMaintenanceOrder-modal>
-    <week-maintenance-approval-modal ref="weekMaintenanceApprovalModal"></week-maintenance-approval-modal>
+    <week-maintenance-approval-modal ref="weekMaintenanceApprovalModal" :selectShenpiData="selectWeekMaintenanceData"></week-maintenance-approval-modal>
   </a-card>
 </template>
 
@@ -126,9 +125,17 @@
     EamWeekMaintenanceOrderModal,
     WeekMaintenanceApprovalModal
   },
+  props: {
+    isDisplayOperation: {
+      type: Boolean,
+      default: true
+    }
+  },
   data() {
     return {
       description: '鍛ㄤ繚宸ュ崟绠$悊椤甸潰',
+      disableMixinCreated: true,
+      selectWeekMaintenanceData:{},
       // 琛ㄥご
       columns: [
         {
@@ -265,22 +272,38 @@
           dataIndex: 'remark',
           width: 60,
         },
-        {
-          title: '鎿嶄綔',
-          dataIndex: 'action',
-          align: 'center',
-          fixed: 'right',
-          width: 100,
-          scopedSlots: { customRender: 'action' }
-        }
+        // {
+        //   title: '鎿嶄綔',
+        //   dataIndex: 'action',
+        //   align: 'center',
+        //   fixed: 'right',
+        //   width: 100,
+        //   scopedSlots: { customRender: 'action' }
+        // }
       ],
       url: {
         list: '/eam/weekMaintenanceOrder/list',
         abolish: '/eam/weekMaintenanceOrder/abolish',
         abolishBatch: '/eam/weekMaintenanceOrder/abolishBatch',
         collect: '/eam/weekMaintenanceOrder/collect',
+        collectBatch: '/eam/weekMaintenanceOrder/collectBatch',
       }
     }
+  },
+  created() {
+    if (!this.isDisplayOperation) {
+      return
+    }
+    const operationColumn = {
+      title: '鎿嶄綔',
+      dataIndex: 'action',
+      align: 'center',
+      fixed: 'right',
+      width: 147,
+      scopedSlots: { customRender: 'action' }
+    }
+    this.columns = [...this.columns, operationColumn]
+    this.loadData(1)
   },
   computed: {},
   methods: {
@@ -389,9 +412,55 @@
     },
     //鎵归噺棰嗗彇
     handlerBatchCollect(){
-
+      if(!this.url.collectBatch){
+        this.$message.error("璇疯缃畊rl.abolishBatch灞炴��!")
+        return
+      }
+      if (this.selectedRowKeys.length <= 0) {
+        // this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒');
+        this.$notification.warning({
+          message:'娑堟伅',
+          description:"璇烽�夋嫨涓�鏉¤褰�"
+        });
+        return;
+      } else {
+        var ids = "";
+        for (var a = 0; a < this.selectedRowKeys.length; a++) {
+          ids += this.selectedRowKeys[a] + ",";
+        }
+        var that = this;
+        this.$confirm({
+          title: "纭棰嗗彇",
+          content: "鏄惁棰嗗彇閫変腑鏁版嵁锛屽彧鏈夊緟淇濆吇鐘舵�佺殑鏁版嵁鎵嶅彲棰嗗彇鎴愬姛?",
+          onOk: function () {
+            that.loading = true;
+            deleteAction(that.url.collectBatch, {ids: ids}).then((res) => {
+              if (res.success) {
+                //閲嶆柊璁$畻鍒嗛〉闂
+                that.reCalculatePage(that.selectedRowKeys.length)
+                // that.$message.success(res.message);
+                that.$notification.success({
+                  message:'娑堟伅',
+                  description:res.message
+                });
+                that.loadData();
+                that.onClearSelected();
+              } else {
+                // that.$message.warning(res.message);
+                that.$notification.warning({
+                  message:'娑堟伅',
+                  description:res.message
+                });
+              }
+            }).finally(() => {
+              that.loading = false;
+            });
+          }
+        });
+      }
     },
     handleDetail(record) {
+      this.selectWeekMaintenanceData = Object.assign({}, record)
       this.$refs.weekMaintenanceApprovalModal.recordDetail(record)
       this.$refs.weekMaintenanceApprovalModal.title = '璇︽儏';
       this.$refs.weekMaintenanceApprovalModal.disableSubmit = true

--
Gitblit v1.9.3