From dbb3445dc720a8f36b3424e73f2e02a6b0f9deb6 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期日, 27 四月 2025 11:31:57 +0800
Subject: [PATCH] art: 从沃克项目迁移设备管理代码到航宇

---
 src/views/eam/base/EamMaintenanceStandardList.vue |  275 +++++++++++++++++++++++++++++++++---------------------
 1 files changed, 167 insertions(+), 108 deletions(-)

diff --git a/src/views/eam/base/EamMaintenanceStandardList.vue b/src/views/eam/base/EamMaintenanceStandardList.vue
index 7afe258..a422f17 100644
--- a/src/views/eam/base/EamMaintenanceStandardList.vue
+++ b/src/views/eam/base/EamMaintenanceStandardList.vue
@@ -1,71 +1,77 @@
 <template>
   <a-card :bordered="false">
 
-    <!-- 鏌ヨ鍖哄煙 -->
-    <div class="table-page-search-wrapper">
-      <a-form layout="inline" @keyup.enter.native="searchQuery">
-        <a-row :gutter="24">
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="鏍囧噯缂栫爜">
-              <a-input placeholder="璇疯緭鍏ユ爣鍑嗙紪鐮�" v-model="queryParam.standardCode"></a-input>
-            </a-form-item>
-          </a-col>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="鏍囧噯鍚嶇О">
-              <a-input placeholder="璇疯緭鍏ユ爣鍑嗗悕绉�" v-model="queryParam.standardName"></a-input>
-            </a-form-item>
-          </a-col>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="璁惧缂栧彿">
-              <a-input placeholder="璇疯緭鍏ヨ澶囩紪鍙�" v-model="queryParam.equipmentCode"></a-input>
-            </a-form-item>
-          </a-col>
-          <template v-if="toggleSearchStatus">
-            <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="淇濆吇鍒嗙被">
-                <a-input placeholder="璇疯緭鍏ヤ繚鍏诲垎绫�" v-model="queryParam.maintenanceCategory"></a-input>
+    <template v-if="isDisplayOperation">
+      <!-- 鏌ヨ鍖哄煙 -->
+      <div class="table-page-search-wrapper">
+        <a-form layout="inline" @keyup.enter.native="searchQuery">
+          <a-row :gutter="24">
+            <a-col :xl="4" :lg="7" :md="8" :sm="24">
+              <a-form-item label="鏍囧噯缂栫爜">
+                <a-input placeholder="璇疯緭鍏ユ爣鍑嗙紪鐮�" v-model="queryParam.standardCode"></a-input>
               </a-form-item>
             </a-col>
-          </template>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
-              <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button>
-              <a-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button>
-              <a @click="handleToggleSearch" style="margin-left: 8px">
-                {{ toggleSearchStatus ? '鏀惰捣' : '灞曞紑' }}
-                <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
-              </a>
-            </span>
-          </a-col>
+            <a-col :xl="4" :lg="7" :md="8" :sm="24">
+              <a-form-item label="鏍囧噯鍚嶇О">
+                <a-input placeholder="璇疯緭鍏ユ爣鍑嗗悕绉�" v-model="queryParam.standardName"></a-input>
+              </a-form-item>
+            </a-col>
+            <a-col :xl="4" :lg="7" :md="8" :sm="24">
+              <a-form-item label="璁惧缂栧彿">
+                <lx-search-equipment-select placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储" v-model="queryParam.equipmentId"></lx-search-equipment-select>
+              </a-form-item>
+            </a-col>
+            <a-col :xl="4" :lg="7" :md="8" :sm="24">
+              <a-form-item label="淇濆吇鍒嗙被">
+                <j-dict-select-tag dict-code="maintenance_category" placeholder="璇烽�夋嫨淇濆吇鍒嗙被" v-model="queryParam.maintenanceCategory" />
+              </a-form-item>
+            </a-col>
+            <a-col :xl="4" :lg="7" :md="8" :sm="24">
+              <a-form-item label="鏍囧噯鐘舵��">
+                <j-dict-select-tag dict-code="maintenance_standard_status" placeholder="璇烽�夋嫨鏍囧噯鐘舵��" v-model="queryParam.standardStatus" />
+              </a-form-item>
+            </a-col>
+            <a-col :xl="4" :lg="7" :md="8" :sm="24">
+              <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
+                <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button>
+                <a-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button>
+              </span>
+            </a-col>
+          </a-row>
+        </a-form>
+      </div>
 
-        </a-row>
-      </a-form>
-    </div>
+      <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
+      <div class="table-operator">
+        <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button>
+        <a-upload name="file" :showUploadList="false" :multiple="true" :headers="tokenHeader" :action="inspectionImportExcel"
+                  @change="handleImportExcel">
+          <a-button type="primary" icon="import">鐐规鏍囧噯瀵煎叆</a-button>
+        </a-upload>
+        <a-button type="primary" icon="download" @click="handleTemplateXlsDownload(url.inspectionXlsDownloadUrl)">鐐规鏍囧噯妯℃澘涓嬭浇</a-button>
+        <a-upload name="file" :showUploadList="false" :multiple="true" :headers="tokenHeader" :action="weekMaintenanceImportExcel"
+                  @change="handleImportExcel">
+          <a-button type="primary" icon="import">鍛ㄤ繚鏍囧噯瀵煎叆</a-button>
+        </a-upload>
+        <a-button type="primary" icon="download" @click="handleTemplateXlsDownload(url.weekMaintenanceXlsDownloadUrl)">鍛ㄤ繚鏍囧噯妯℃澘涓嬭浇</a-button>
+        <a-dropdown v-if="selectedRowKeys.length > 0">
+          <a-menu slot="overlay">
+            <a-menu-item key="1" @click="batchDel">
+              <a-icon type="delete"/>
+              鍒犻櫎
+            </a-menu-item>
+          </a-menu>
+          <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔
+            <a-icon type="down"/>
+          </a-button>
+        </a-dropdown>
+      </div>
+    </template>
 
-    <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
-    <div class="table-operator">
-      <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button>
-      <a-button type="primary" icon="download" @click="handleExportXls('淇濆吇鏍囧噯')">瀵煎嚭</a-button>
-      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
-                @change="handleImportExcel">
-        <a-button type="primary" icon="import">瀵煎叆</a-button>
-      </a-upload>
-      <a-dropdown v-if="selectedRowKeys.length > 0">
-        <a-menu slot="overlay">
-          <a-menu-item key="1" @click="batchDel">
-            <a-icon type="delete" />
-            鍒犻櫎
-          </a-menu-item>
-        </a-menu>
-        <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔
-          <a-icon type="down" />
-        </a-button>
-      </a-dropdown>
-    </div>
 
     <!-- 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>
@@ -85,15 +91,23 @@
         :customRow='clickThenSelect'
         @change="handleTableChange">
         <template slot="referenceFile" slot-scope="text, record, index">
-          <a v-if="text && text !== ''" @click="handlePreview(record)">棰勮</a>
+          <a v-if="text && text !== ''" @click.stop="handlePreview(record)">棰勮</a>
         </template>
         <span slot="action" slot-scope="text, record">
-          <a @click="handleEdit(record)">缂栬緫</a>
+          <a v-if="record.standardStatus === 'NORMAL'" @click.stop="handleEdit(record)">缂栬緫</a>
 
-          <a-divider type="vertical" />
+          <a-divider type="vertical"/>
           <a-dropdown>
-            <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a>
+            <a class="ant-dropdown-link">鏇村 <a-icon type="down"/></a>
             <a-menu slot="overlay">
+              <a-menu-item v-if="record.standardStatus === 'NORMAL'">
+                <a @click.stop="handleUpgrade(record)">鍗囩増</a>
+              </a-menu-item>
+              <a-menu-item v-if="record.standardStatus === 'NORMAL'">
+                <a-popconfirm title="纭畾浣滃簾鍚�?" @confirm="() => handleAbolish(record.id)">
+                  <a>浣滃簾</a>
+                </a-popconfirm>
+              </a-menu-item>
               <a-menu-item>
                 <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)">
                   <a>鍒犻櫎</a>
@@ -106,15 +120,9 @@
       </a-table>
 
       <a-tabs defaultActiveKey="1">
-        <a-tab-pane
-          tab='淇濆吇鏍囧噯鏄庣粏椤�'
-          key="1"
-        >
-          <div
-            class="table-operator"
-            style="margin:-16px"
-          >
-            <eam-maintenance-standard-detail-list :standardId="standardId" />
+        <a-tab-pane tab='淇濆吇鏍囧噯鏄庣粏椤�' key="1">
+          <div class="table-operator" style="margin:-16px">
+            <eam-maintenance-standard-detail-list ref="standardDetailRef" :standardId="standardId"/>
           </div>
         </a-tab-pane>
 
@@ -133,30 +141,30 @@
 import EamMaintenanceStandardModal from './modules/EamMaintenanceStandardModal'
 import { JeecgListMixin } from '@/mixins/JeecgListMixin'
 import EamMaintenanceStandardDetailList from '@views/eam/base/modules/EamMaintenanceStandardDetailList'
+import { deleteAction, templateXlsDownload } from '@api/manage'
+import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue'
 
 
 export default {
   name: 'EamMaintenanceStandardList',
   mixins: [JeecgListMixin],
+  props: {
+    isDisplayOperation: {
+      type: Boolean,
+      default: true
+    }
+  },
   components: {
+    LxSearchEquipmentSelect,
     EamMaintenanceStandardModal,
     EamMaintenanceStandardDetailList
   },
   data() {
     return {
       description: '淇濆吇鏍囧噯绠$悊椤甸潰',
+      disableMixinCreated: true,
       // 琛ㄥご
       columns: [
-        {
-          title: '#',
-          dataIndex: '',
-          key: 'rowIndex',
-          width: 60,
-          align: 'center',
-          customRender: function(t, r, index) {
-            return parseInt(index) + 1
-          }
-        },
         {
           title: '鏍囧噯缂栫爜',
           align: 'center',
@@ -207,12 +215,6 @@
           align: 'center',
           dataIndex: 'referenceFile',
           scopedSlots: { customRender: 'referenceFile' }
-        },
-        {
-          title: '鎿嶄綔',
-          dataIndex: 'action',
-          align: 'center',
-          scopedSlots: { customRender: 'action' }
         }
       ],
       url: {
@@ -220,33 +222,56 @@
         delete: '/eam/maintenanceStandard/delete',
         deleteBatch: '/eam/maintenanceStandard/deleteBatch',
         exportXlsUrl: 'eam/maintenanceStandard/exportXls',
-        importExcelUrl: 'eam/maintenanceStandard/importExcel'
+        inspectionImportExcel: 'eam/maintenanceStandard/inspectionImportExcel',
+        weekMaintenanceImportExcel: 'eam/maintenanceStandard/weekMaintenanceImportExcel',
+        inspectionXlsDownloadUrl: '瀵煎叆妯℃澘/鐐规鏍囧噯瀵煎叆妯℃澘_v1.0.xlsx',
+        weekMaintenanceXlsDownloadUrl: '瀵煎叆妯℃澘/鍛ㄤ繚鏍囧噯瀵煎叆妯℃澘_v1.0.xlsx',
+        abolish: '/eam/maintenanceStandard/abolish',
       },
       fileUrl: '',
-      standardId: '-1',
+      standardId: '-1'
     }
   },
   computed: {
-    importExcelUrl: function() {
-      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
+    inspectionImportExcel: function() {
+      return `${window._CONFIG['domianURL']}/${this.url.inspectionImportExcel}`
+    },
+    weekMaintenanceImportExcel: function() {
+      return `${window._CONFIG['domianURL']}/${this.url.weekMaintenanceImportExcel}`
     }
   },
+  created() {
+    if (!this.isDisplayOperation) {
+      return
+    }
+    const operationColumn = {
+      title: '鎿嶄綔',
+      dataIndex: 'action',
+      align: 'center',
+      scopedSlots: { customRender: 'action' }
+    }
+    this.columns = [...this.columns, operationColumn]
+    this.loadData(1)
+  },
   methods: {
-    handlePreview: function (record) {
-      if(record.referenceFile) {
+    handlePreview: function(record) {
+      if (record.referenceFile) {
         try {
-          let file = JSON.parse(record.referenceFile);
-          this.$refs.lxFilePreview.preview(file.filePath);
-        }catch (e) {
-          console.error(e);
-          this.$message.error(e.message);
+          let file = JSON.parse(record.referenceFile)
+          this.$refs.lxFilePreview.preview(file.filePath)
+        } catch (e) {
+          console.error(e)
+          this.$message.error(e.message)
         }
-      }else {
-        this.$message.warning("鍙傝�冩枃浠朵负绌猴紒");
+      } else {
+        this.$message.warning('鍙傝�冩枃浠朵负绌猴紒')
       }
     },
     clickThenSelect(record) {
       return {
+        style: {
+          cursor: 'pointer'
+        },
         on: {
           click: () => {
             this.onSelectChange(record.id.split(','), [record])
@@ -255,23 +280,57 @@
       }
     },
     onClearSelected() {
-      this.selectedRowKeys = [];
-      this.selectionRows = [];
-      this.standardId = '-1';
+      this.selectedRowKeys = []
+      this.selectionRows = []
+      this.standardId = '-1'
     },
     onSelectChange(selectedRowKeys, selectionRows) {
-      this.selectedRowKeys = selectedRowKeys;
-      this.selectionRows = selectionRows;
+      this.selectedRowKeys = selectedRowKeys
+      this.selectionRows = selectionRows
       if (selectedRowKeys.length === 1) {
-        this.standardId = selectionRows[0]['id']
+        this.standardId = selectedRowKeys[0]
       } else {
         this.standardId = '-1'
       }
     },
     searchReset() {
-      this.standardId = '-1';
+      this.standardId = '-1'
       this.queryParam = {}
-      this.loadData(1);
+      this.loadData(1)
+    },
+    handleTemplateXlsDownload(url) {
+      templateXlsDownload(url)
+    },
+    handleAbolish: function (id) {
+      if(!this.url.abolish){
+        this.$message.error("璇疯缃畊rl.abolish灞炴��!")
+        return
+      }
+      var that = this;
+      deleteAction(that.url.abolish, {id: id}).then((res) => {
+        if (res.success) {
+          //閲嶆柊璁$畻鍒嗛〉闂
+          that.reCalculatePage(1)
+          // that.$message.success(res.message);
+          that.$notification.success({
+            message:'娑堟伅',
+            description:res.message
+          });
+          that.loadData();
+        } else {
+          // that.$message.warning(res.message);
+          that.$notification.warning({
+            message:'娑堟伅',
+            description:res.message
+          });
+        }
+      });
+    },
+    handleUpgrade(record) {
+      //鍗囩増
+      this.$refs.modalForm.upgrade(record);
+      this.$refs.modalForm.title = "鍗囩増";
+      this.$refs.modalForm.disableSubmit = false;
     },
   }
 }

--
Gitblit v1.9.3