From a40d8462edbf25418207d2ec212e15d3d15ce9dd Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期一, 31 三月 2025 17:36:58 +0800
Subject: [PATCH] art: 设备管理-保养标准-明细项展示

---
 src/views/eam/equipment/EamEquipmentList.vue |  246 ++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 190 insertions(+), 56 deletions(-)

diff --git a/src/views/eam/equipment/EamEquipmentList.vue b/src/views/eam/equipment/EamEquipmentList.vue
index 2c13c29..802b6ca 100644
--- a/src/views/eam/equipment/EamEquipmentList.vue
+++ b/src/views/eam/equipment/EamEquipmentList.vue
@@ -15,16 +15,47 @@
               <a-input placeholder="璇疯緭鍏ヨ澶囧悕绉�" v-model="queryParam.equipmentName"></a-input>
             </a-form-item>
           </a-col>
+          <a-col :xl="6" :lg="7" :md="8" :sm="24">
+            <a-form-item label="鍏抽敭璁惧鏍囪瘑">
+              <j-dict-select-tag dict-code="yn" placeholder="璇烽�夋嫨鍏抽敭璁惧鏍囪瘑"
+                                 v-model="queryParam.equipmentImportance"></j-dict-select-tag>
+            </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.equipmentModel"></a-input>
+              <a-form-item label="璧勪骇鐘舵��">
+                <j-dict-select-tag dict-code="asset_status" placeholder="璇烽�夋嫨璧勪骇鐘舵��"
+                                   v-model="queryParam.assetStatus"></j-dict-select-tag>
               </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.equipmentSpecification"></a-input>
+              <a-form-item label="鎶�鏈姸鎬�">
+                <j-dict-select-tag dict-code="technology_status" placeholder="璇烽�夋嫨鎶�鏈姸鎬�"
+                                   v-model="queryParam.technologyStatus"></j-dict-select-tag>
+              </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.operationSystem"></a-input>
+              </a-form-item>
+            </a-col>
+            <a-col :xl="6" :lg="7" :md="8" :sm="24">
+              <a-form-item label="浣跨敤杞﹂棿">
+                <a-tree-select v-model="queryParam.orgId"
+                               style="width: 100%"
+                               :tree-data="treeData"
+                               :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
+                               placeholder="璇烽�夋嫨浣跨敤杞﹂棿"
+                               allow-clear
+                               tree-default-expand-all
+                >
+                </a-tree-select>
+              </a-form-item>
+            </a-col>
+            <a-col :xl="6" :lg="7" :md="8" :sm="24">
+              <a-form-item label="璁惧鍒嗙被">
+                <j-dict-select-tag dict-code="equipment_category" placeholder="璇烽�夋嫨璁惧鍒嗙被"
+                                   v-model="queryParam.equipmentCategory"></j-dict-select-tag>
               </a-form-item>
             </a-col>
           </template>
@@ -34,7 +65,7 @@
               <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-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
               </a>
             </span>
           </a-col>
@@ -51,15 +82,16 @@
                 @change="handleImportExcel">
         <a-button type="primary" icon="import">瀵煎叆</a-button>
       </a-upload>
+      <a-button type="primary" icon="download" @click="handleTemplateXlsDownload">瀵煎叆妯℃澘涓嬭浇</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-icon type="delete"/>
             鍒犻櫎
           </a-menu-item>
         </a-menu>
         <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔
-          <a-icon type="down" />
+          <a-icon type="down"/>
         </a-button>
       </a-dropdown>
     </div>
@@ -84,18 +116,34 @@
         :scroll="{ x: 'max-content' }"
         :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
         @change="handleTableChange">
-
         <span slot="equipmentImportance" slot-scope="text">
-          <lx-switch v-model="text" disabled checked-children='鏄�' un-checked-children='鍚�' />
+          <lx-switch v-model="text" disabled checked-children="鏄�" un-checked-children="鍚�"/>
         </span>
-
+        <span slot="mdcFlag" slot-scope="text">
+          <lx-switch v-model="text" disabled checked-children="鏄�" un-checked-children="鍚�"/>
+        </span>
+        <span slot="processParametersFlag" slot-scope="text">
+          <lx-switch v-model="text" disabled checked-children="鏈�" un-checked-children="鏃�"/>
+        </span>
+        <span slot="precisionParametersFlag" slot-scope="text">
+          <lx-switch v-model="text" disabled checked-children="鏈�" un-checked-children="鏃�"/>
+        </span>
+        <span slot="specialEquipment" slot-scope="text">
+          <lx-switch v-model="text" disabled checked-children="鏄�" un-checked-children="鍚�"/>
+        </span>
         <span slot="action" slot-scope="text, record">
           <a @click="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>
+                <a href="javascript:;" @click="handleOpenNameplateModal(record)">閾墝</a>
+              </a-menu-item>
+              <a-menu-item>
+                <a href="javascript:;" @click="handleDetail(record)">璇︽儏</a>
+              </a-menu-item>
               <a-menu-item>
                 <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)">
                   <a>鍒犻櫎</a>
@@ -111,6 +159,8 @@
 
     <!-- 琛ㄥ崟鍖哄煙 -->
     <eamEquipment-modal ref="modalForm" @ok="modalFormOk"></eamEquipment-modal>
+    <!--閾墝寮圭獥-->
+    <nameplate-modal ref="nameplateModalRef"/>
   </a-card>
 </template>
 
@@ -118,11 +168,15 @@
 import '@/assets/less/TableExpand.less'
 import EamEquipmentModal from './modules/EamEquipmentModal'
 import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+import { getAction, templateXlsDownload } from '@api/manage'
+import NameplateModal from '@views/eam/equipment/modules/NameplateModal.vue'
+import { getSystemConfigValue } from '@api/api'
 
 export default {
   name: 'EamEquipmentList',
   mixins: [JeecgListMixin],
   components: {
+    NameplateModal,
     EamEquipmentModal
   },
   data() {
@@ -138,7 +192,8 @@
           align: 'center',
           customRender: function(t, r, index) {
             return parseInt(index) + 1
-          }
+          },
+          fixed: 'left'
         },
         {
           title: '璁惧缂栧彿',
@@ -146,7 +201,8 @@
           width: 100,
           dataIndex: 'equipmentCode',
           ellipsis: true,
-          fixed: 'left'
+          fixed: 'left',
+          sorter: true
         },
         {
           title: '璁惧鍚嶇О',
@@ -159,147 +215,164 @@
         {
           title: '鍏抽敭璁惧鏍囪瘑',
           align: 'center',
-          width : 100,
+          width: 120,
           dataIndex: 'equipmentImportance',
           scopedSlots: { customRender: 'equipmentImportance' }
         },
         {
+          title: '璧勪骇鐘舵��',
+          align: 'center',
+          width: 100,
+          dataIndex: 'assetStatus_dictText'
+        },
+        {
           title: '鎶�鏈姸鎬�',
           align: 'center',
-          width : 100,
+          width: 100,
           dataIndex: 'technologyStatus_dictText'
+        },
+        {
+          title: '缁翠慨鐘舵��',
+          align: 'center',
+          width: 100,
+          dataIndex: 'repairStatus_dictText'
+        },
+        {
+          title: '淇濆吇鐘舵��',
+          align: 'center',
+          width: 100,
+          dataIndex: 'maintenanceStatus_dictText'
         },
         {
           title: '鎿嶄綔绯荤粺',
           align: 'center',
-          width : 100,
+          width: 100,
           dataIndex: 'operationSystem'
         },
         {
-          title: '浣跨敤閮ㄩ棬',
+          title: '浣跨敤杞﹂棿',
           align: 'center',
-          width : 100,
-          dataIndex: 'orgId'
+          width: 100,
+          dataIndex: 'orgId_dictText'
         },
         {
           title: '璁惧绠$悊鍛�',
           align: 'center',
-          width : 100,
-          dataIndex: 'equipmentManager'
+          width: 100,
+          dataIndex: 'equipmentManager_dictText'
         },
         {
           title: '璁惧鍒嗙被',
           align: 'center',
-          width : 100,
+          width: 100,
           dataIndex: 'equipmentCategory_dictText'
         },
         {
           title: '璁惧鍨嬪彿',
           align: 'center',
-          width : 100,
+          width: 100,
           dataIndex: 'equipmentModel'
         },
         {
           title: '璁惧瑙勬牸',
           align: 'center',
-          width : 100,
+          width: 100,
           dataIndex: 'equipmentSpecification'
         },
         {
           title: '涓昏酱杩炴帴灏哄',
           align: 'center',
-          width : 100,
+          width: 120,
           dataIndex: 'spindleConnectDimension'
         },
         {
           title: '鎬诲姛鐜�',
           align: 'center',
-          width : 100,
+          width: 100,
           dataIndex: 'equipmentPower'
         },
         {
           title: '瀹夎浣嶇疆',
           align: 'center',
-          width : 100,
+          width: 100,
           dataIndex: 'installationPosition'
         },
-        {
-          title: '璧勪骇鐘舵��',
-          align: 'center',
-          width : 100,
-          dataIndex: 'assetStatus_dictText'
-        },
+
         {
           title: '绔嬮」鍗″彿',
           align: 'center',
-          width : 100,
+          width: 100,
           dataIndex: 'cardNumber'
         },
         {
           title: '鍑哄巶缂栧彿',
           align: 'center',
-          width : 100,
+          width: 100,
           dataIndex: 'factoryNumber'
         },
         {
           title: '鏈哄簥鍘傚',
           align: 'center',
-          width : 100,
+          width: 100,
           dataIndex: 'manufacturingEnterprise'
         },
         {
           title: '鏉ユ簮鍥藉',
           align: 'center',
-          width : 100,
+          width: 100,
           dataIndex: 'originCountry'
         },
         {
           title: '鍑哄巶鏃ユ湡',
           align: 'center',
-          width : 100,
+          width: 100,
           dataIndex: 'leaveFactoryDate'
         },
         {
           title: '楠屾敹鏃ユ湡',
           align: 'center',
-          width : 100,
+          width: 100,
           dataIndex: 'acceptanceCheckDate'
         },
         {
           title: '璐ㄤ繚寮�濮嬫棩鏈�',
           align: 'center',
-          width : 100,
+          width: 120,
           dataIndex: 'warrantyStartDate'
         },
         {
           title: '璐ㄤ繚缁撴潫鏃ユ湡',
           align: 'center',
-          width : 100,
+          width: 120,
           dataIndex: 'warrantyEndDate'
         },
         {
           title: '鏄惁瀹炴柦MDC',
           align: 'center',
-          width : 100,
-          dataIndex: 'mdcFlag'
+          width: 120,
+          dataIndex: 'mdcFlag',
+          scopedSlots: { customRender: 'mdcFlag' }
         },
         {
-          title: '鏄惁鏈夊伐鑹哄弬鏁�',
+          title: '鏈夋棤宸ヨ壓鍙傛暟',
           align: 'center',
-          width : 100,
-          dataIndex: 'processParametersFlag'
+          width: 120,
+          dataIndex: 'processParametersFlag',
+          scopedSlots: { customRender: 'processParametersFlag' }
         },
         {
-          title: '鏄惁鏈夌簿搴﹀弬鏁�',
+          title: '鏈夋棤绮惧害鍙傛暟',
           align: 'center',
-          width : 100,
-          dataIndex: 'precisionParametersFlag'
+          width: 120,
+          dataIndex: 'precisionParametersFlag',
+          scopedSlots: { customRender: 'precisionParametersFlag' }
         },
         {
           title: '鏄惁涓虹壒绉嶈澶�',
           align: 'center',
-          width : 100,
-          dataIndex: 'specialEquipment'
+          width: 120,
+          dataIndex: 'specialEquipment',
+          scopedSlots: { customRender: 'specialEquipment' }
         },
         {
           title: '閲嶉噺',
@@ -317,6 +390,26 @@
           align: 'center',
           width: 100,
           dataIndex: 'coordinateNum'
+        },
+        {
+          title: '鍒涘缓浜�',
+          align: "center",
+          dataIndex: 'createBy_dictText'
+        },
+        {
+          title: '鍒涘缓鏃堕棿',
+          align: "center",
+          dataIndex: 'createTime',
+        },
+        {
+          title: '鏇存柊浜�',
+          align: "center",
+          dataIndex: 'updateBy_dictText'
+        },
+        {
+          title: '鏇存柊鏃堕棿',
+          align: "center",
+          dataIndex: 'updateTime',
         },
         {
           title: '澶囨敞',
@@ -338,8 +431,12 @@
         delete: '/eam/equipment/delete',
         deleteBatch: '/eam/equipment/deleteBatch',
         exportXlsUrl: 'eam/equipment/exportXls',
-        importExcelUrl: 'eam/equipment/importExcel'
-      }
+        importExcelUrl: 'eam/equipment/importExcel',
+        loadProductionOptions: '/mdc/mdcProduction/loadProductionTreeOptions',
+        templateXlsDownloadUrl: '瀵煎叆妯℃澘/璁惧鍙拌处瀵煎叆妯℃澘_v1.0.xlsx',
+      },
+      treeData: [],
+      appHomeUrl: '',
     }
   },
   computed: {
@@ -347,7 +444,44 @@
       return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
     }
   },
-  methods: {}
+  created() {
+    this.loadAllProductionTree();
+    this.loadAppHomeUrlConfigValue();
+  },
+  methods: {
+    loadAllProductionTree() {
+      //鍔犺浇杞﹂棿閫夋嫨鏍�
+      getAction(this.url.loadProductionOptions).then(res => {
+        if (res.success) {
+          this.treeData = [...res.result]
+        } else {
+          that.$message.warning(res.message)
+        }
+      })
+    },
+
+    /**
+     * 寮�鍚摥鐗屽脊绐�
+     * @param record
+     */
+    handleOpenNameplateModal(record) {
+      this.$refs.nameplateModalRef.model = Object.assign({}, record)
+      this.$refs.nameplateModalRef.httpUrl = this.appHomeUrl + record.equipmentCode;
+      this.$refs.nameplateModalRef.visible = true
+
+    },
+    handleTemplateXlsDownload(){
+      templateXlsDownload(this.url.templateXlsDownloadUrl);
+    },
+    loadAppHomeUrlConfigValue() {
+      let params = {settingKey: 'app_home_url'};
+      getSystemConfigValue(params).then(res => {
+        if (res.success) {
+          this.appHomeUrl = res.result.settingValue;
+        }
+      })
+    },
+  }
 }
 </script>
 <style scoped>

--
Gitblit v1.9.3