From 1e65f7d90460d6df6b1852de39ea1a215653d8c7 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期二, 10 六月 2025 16:25:42 +0800
Subject: [PATCH] 生产设备自主维护点检表页面表格新增管理制度字段展示
---
src/views/eam/RepairOrderList.vue | 500 +++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 356 insertions(+), 144 deletions(-)
diff --git a/src/views/eam/RepairOrderList.vue b/src/views/eam/RepairOrderList.vue
index 8f8c5d1..ffcae34 100644
--- a/src/views/eam/RepairOrderList.vue
+++ b/src/views/eam/RepairOrderList.vue
@@ -1,6 +1,6 @@
<template>
<a-card
- title="缁翠慨宸ュ崟"
+ title=""
:bordered="false"
>
<div class="table-page-search-wrapper">
@@ -8,6 +8,25 @@
layout="inline"
@keyup.enter.native="searchQuery"
>
+ <a-row
+ :gutter="24"
+ style="margin-bottom: 1%;"
+ >
+ <a-col
+ :xl="24"
+ :lg="7"
+ :md="8"
+ :sm="24"
+ >
+ <a-form-item label="缁熶竴缂栧彿缇�">
+ <a-textarea
+ placeholder="璇疯緭鍏ユ墍鏈夌粺涓�缂栫爜,椤荤敤绌烘牸闅斿紑,鍚﹀垯鍙兘鏌ヨ鍑洪敊璇俊鎭�"
+ v-model="queryParam.nums"
+ :auto-size="{ minRows: 2, maxRows:2 }"
+ ></a-textarea>
+ </a-form-item>
+ </a-col>
+ </a-row>
<a-row :gutter="24">
<a-col
:xl="6"
@@ -20,7 +39,7 @@
allow-clear
placeholder="璇烽�夋嫨宸ュ崟鐘舵��"
:triggerChange="true"
- dictCode="repair_order_status"
+ dictCode="true_repair_status"
v-model="queryParam.status"
/>
</a-form-item>
@@ -44,14 +63,14 @@
:md="8"
:sm="24"
>
- <a-form-item label="璁惧缂栫爜">
+ <a-form-item label="缁熶竴缂栫爜">
<a-input
- placeholder="璇疯緭鍏ヨ澶囩紪鐮�"
+ placeholder="璇疯緭鍏ョ粺涓�缂栫爜"
v-model="queryParam.equipmentNum"
></a-input>
</a-form-item>
</a-col>
- <a-col :span="3">
+ <!-- <a-col :span="3">
<span
style="float: left;overflow: hidden;"
class="table-page-search-submitButtons"
@@ -64,32 +83,29 @@
<a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
</a>
</span>
+ </a-col> -->
+ <a-col
+ :xl="6"
+ :lg="7"
+ :md="8"
+ :sm="24"
+ >
+ <a-form-item label="璁惧鍚嶇О">
+ <a-input
+ placeholder="璇疯緭鍏ヨ澶囧悕绉�"
+ v-model="queryParam.equipmentName"
+ ></a-input>
+ </a-form-item>
</a-col>
</a-row>
-
- <template v-if="toggleSearchStatus">
- <a-row :gutter="24">
- <a-col
- :xl="6"
- :lg="7"
- :md="8"
- :sm="24"
- >
- <a-form-item label="璁惧鍚嶇О">
- <a-input
- placeholder="璇疯緭鍏ヨ澶囧悕绉�"
- v-model="queryParam.equipmentName"
- ></a-input>
- </a-form-item>
- </a-col>
- <a-col
+ <a-row :gutter="24">
+ <a-col
:xl="6"
- :lg="7"
- :md="8"
- :sm="24">
- <a-form-item
- label="璁惧鎵�灞炲垎绫�"
- >
+ :lg="7"
+ :md="8"
+ :sm="24"
+ >
+ <a-form-item label="璁惧鎵�灞炲垎绫�">
<j-dict-select-tag
dictCode="mom_eam_equipment_category,name,id"
placeholder="璇疯緭鍏ユ悳绱㈡潯浠跺苟閫夋嫨"
@@ -97,33 +113,29 @@
/>
</a-form-item>
</a-col>
- <a-col
- :xl="6"
+ <a-col
+ :xl="6"
:lg="7"
- :md="8"
- :sm="24"
+ :md="8"
+ :sm="24"
>
- <a-form-item
- label="杞﹂棿"
- >
+ <a-form-item label="宸ュ尯">
<j-dict-select-tag
allow-clear
- placeholder="璇烽�夋嫨璧勮溅闂�"
+ placeholder="璇烽�夋嫨璧勫伐鍖�"
:triggerChange="true"
- dictCode="mom_base_factory_model,name,id,del_flag!='1'"
+ dictCode="mom_base_area,name,id,del_flag!='1'"
v-model="queryParam.factoryModelId"
/>
</a-form-item>
</a-col>
<a-col
- :xl="6"
+ :xl="6"
:lg="7"
- :md="8"
- :sm="24"
+ :md="8"
+ :sm="24"
>
- <a-form-item
- label="鏄惁鍏抽敭璁惧"
- >
+ <a-form-item label="鏄惁鍏抽敭璁惧">
<j-dict-select-tag
allow-clear
placeholder="璇烽�夋嫨鏄惁鍏抽敭璁惧"
@@ -133,41 +145,101 @@
/>
</a-form-item>
</a-col>
- </a-row>
- <!-- <a-row :gutter="24">
- <a-col
+ <a-col
:xl="6"
:lg="7"
- :md="8"
- :sm="24">
- <a-form-item
- label="宸ュ尯"
- >
+ :md="8"
+ :sm="24"
+ >
+ <a-form-item label="缁翠慨鐘舵��">
<j-dict-select-tag
allow-clear
- placeholder="璇烽�夋嫨宸ュ尯"
+ placeholder="璇烽�夋嫨缁翠慨鐘舵��"
:triggerChange="true"
- dictCode="mom_base_area,name,id,del_flag!='1'"
- v-model="queryParam.factoryModelId"
+ dictCode="repair_status"
+ v-model="queryParam.repairOrderUda1"
/>
</a-form-item>
</a-col>
- </a-row> -->
- </template>
+ </a-row>
+ <a-row :gutter="24">
+ <a-col
+ :xl="6"
+ :lg="7"
+ :md="8"
+ :sm="24"
+ >
+ <a-form-item label="ABC鏍囪瘑">
+ <j-dict-select-tag
+ allow-clear
+ placeholder="璇烽�夋嫨ABC鏍囪瘑"
+ :triggerChange="true"
+ dictCode="ABC-standard-result"
+ v-model="queryParam.equipmentImportanceId"
+ />
+ </a-form-item>
+ </a-col>
+ <a-col
+ :xl="6"
+ :lg="7"
+ :md="8"
+ :sm="24"
+ >
+ <a-form-item label="鏁呴殰鍘熷洜">
+ <j-dict-select-tag
+ allow-clear
+ placeholder="璇烽�夋嫨鏁呴殰鍘熷洜"
+ :triggerChange="true"
+ dictCode="repair_order_fault_cause"
+ v-model="queryParam.faultCause"
+ />
+ </a-form-item>
+ </a-col>
+ <a-col
+ :xl="6"
+ :lg="7"
+ :md="8"
+ :sm="24"
+ >
+ <a-form-item label="鎶ヤ慨鏃堕棿">
+ <a-range-picker
+ style="width: 100%;"
+ format="YYYY-MM-DD HH:mm:ss"
+ v-model="faultTime"
+ @change="timeChange"
+ />
+ </a-form-item>
+ </a-col>
+ <a-col
+ :xl="6"
+ :lg="7"
+ :md="8"
+ :sm="24"
+ >
+ <a-form-item label="鍒涘缓鏃堕棿">
+ <a-range-picker
+ style="width: 100%;"
+ format="YYYY-MM-DD HH:mm:ss"
+ v-model="createTimes"
+ @change="timeChangeCreate"
+ />
+ </a-form-item>
+ </a-col>
+ </a-row>
</a-form>
</div>
<!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
<div class="table-operator">
- <a-dropdown>
+ <!-- <a-dropdown>
<a-menu slot="overlay">
<a-menu-item
key="1"
@click="handleAddPre(1)"
><a-icon type="smile" />鑷缓</a-menu-item>
- <!-- <a-menu-item
+ <a-menu-item
key="2"
@click="handleAddPre(2)"
- ><a-icon type="copy" />鍙傜収鏁呴殰鎶ヤ慨鍗�</a-menu-item> -->
+ ><a-icon type="copy" />鍙傜収鏁呴殰鎶ヤ慨鍗�</a-menu-item>
<a-menu-item
key="2"
@click="handleAddPre(3)"
@@ -177,7 +249,7 @@
type="primary"
icon="plus"
>鏂板</a-button>
- </a-dropdown>
+ </a-dropdown> -->
<a-button
type="primary"
@@ -190,6 +262,11 @@
icon="reload"
>閲嶇疆</a-button>
<a-button
+ type="primary"
+ icon="download"
+ @click="handleExportXls('缁翠慨灞ュ巻')"
+ >瀵煎嚭</a-button>
+ <a-button
hidden
type="primary"
icon="plus"
@@ -197,9 +274,10 @@
:disabled="selectionRows.length==0"
>娲惧伐</a-button>
<a-button
- type="primary"
- icon="plus"
- @click="getReports"
+ type="primary"
+ icon="plus"
+ @click="getReports"
+ v-has="'repair:accept'"
>棰嗗彇</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">
@@ -228,16 +306,38 @@
bordered
rowKey="id"
class="j-table-force-nowrap"
- :scroll="{ x: 'calc(2700px + 50%)', y: 900 }"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
@change="handleTableChange"
:customRow="clickThenSelect"
+ :rowClassName="tableRowClass"
+ :scroll="{ x: 'calc(1700px + 50%)', y: 900 }"
>
- <span slot="jell" slot-scope="text">
- <j-ellipsis :value="text" :length="8" />
+ <span
+ slot="jell"
+ slot-scope="text"
+ >
+ <j-ellipsis
+ :value="text"
+ :length="8"
+ />
+ </span>
+ <span
+ slot="specificEquipment"
+ slot-scope="text"
+ >
+ <a-icon
+ type="check"
+ style="color: chartreuse;"
+ v-if="text==='0'"
+ />
+ <a-icon
+ type="close"
+ v-else
+ style="color:red;"
+ />
</span>
<span
slot="num"
@@ -247,8 +347,14 @@
v-if="record.status === '3' || record.status === '4' ||record.status === '5' ||record.status === '7' "
class="lot"
@click="handleOrderExe(record)"
- ><j-ellipsis :value="text" :length="15"/></a>
- <span v-else> <j-ellipsis :value="text" :length="15"/></span>
+ ><j-ellipsis
+ :value="text"
+ :length="15"
+ /></a>
+ <span v-else> <j-ellipsis
+ :value="text"
+ :length="15"
+ /></span>
</span>
<span
slot="action"
@@ -295,6 +401,7 @@
<a
v-if="record.status === '2' || record.status === '3' "
@click="handleOrderExe(record)"
+ v-has="'repair:excute'"
>鎵ц</a>
<a-divider
v-if="record.status === '2' || record.status === '3' "
@@ -326,6 +433,44 @@
</a-dropdown>
</span>
+ <template
+ slot="equipmentNum"
+ slot-scope="text, record"
+ >
+ <a-popover title="鏁呴殰鍘熷洜缁熻">
+ <template slot="content">
+ <p
+ v-for="(faultCauseMap, index) in record.equipmentFaultCause"
+ :key="index"
+ >
+ <span class="fontweight">{{ faultCauseMap.faultCause }}锛歿{ faultCauseMap.total }}</span>
+ </p>
+ </template>
+ <span>
+ {{ record.equipmentNum }}
+ </span>
+ </a-popover>
+ </template>
+
+ <template
+ slot="faultCauseCount"
+ slot-scope="text, record"
+ >
+ <a-popover title="鏁呴殰鍘熷洜缁熻">
+ <template slot="content">
+ <p
+ v-for="(faultCauseMap, index) in record.allFaultCause"
+ :key="index"
+ >
+ <span class="fontweight">{{ faultCauseMap.faultCause }}锛歿{ faultCauseMap.total }}</span>
+ </p>
+ </template>
+ <span>
+ {{ record.faultCauseCount }}
+ </span>
+ </a-popover>
+ </template>
+
</a-table>
</div>
@@ -342,6 +487,7 @@
<a-tab-pane
tab="缁翠慨瑕佹眰"
key="2"
+ v-if="false"
>
<RepairOrderDetailList
:mainId="repairOrderDetailMainId"
@@ -352,6 +498,7 @@
tab="璁″垝鐢ㄦ枡"
key="3"
forceRender
+ v-if="false"
>
<RepairOrderPlanMaterialList
:addStatus="sonsAddStatus"
@@ -362,6 +509,7 @@
tab="鍗遍櫓闃叉帶"
key="4"
forceRender
+ v-if="false"
>
<RepairOrderRiskPreventionList
:addStatus="sonsAddStatus"
@@ -372,6 +520,7 @@
tab="浣滀笟鎸囧涔�"
key="5"
forceRender
+ v-if="false"
>
<EquipmentDocumentList
:addStatus="sonsAddStatus"
@@ -382,8 +531,9 @@
tab="瀹為檯鐢ㄦ枡"
key="6"
forceRender
- v-if="!sonsAddStatus&&selectedRowKeys.length!=0"
+ v-if="false"
>
+ <!-- v-if="!sonsAddStatus&&selectedRowKeys.length!=0" -->
<RepairOrderActualMaterialList :mainId="repairOrderActualMaterialMainId" />
</a-tab-pane>
<a-tab-pane
@@ -422,6 +572,7 @@
</repair-order-excute-drawer>
<fault-report-repair
ref="FaultReportRepair"
+ @ok="modalFormOk"
></fault-report-repair>
</a-card>
</template>
@@ -439,21 +590,13 @@
import EquipmentDocumentList from './RepairOrderEquipmentDocumentList'
import '@/assets/less/TableExpand.less'
import { putAction } from '../../api/manage'
-import RepairOrderAssignTask from './modules/repairorder/RepairOrderAssignTask.vue'
+import RepairOrderAssignTask from './modules/repairorder/RepairOrderAssignTask'
import RepairOrderExcuteDrawer from './modules/repairorder/repairOrderExcuteDrawer'
import FaultDescriptionList from './FaultDescriptionList'
import FaultReportRepair from './modules/repairorder/moudles/select/FaultReportRepair.vue'
import store from '@/store'
-import {
- ACCESS_TOKEN,
- USER_NAME,
- USER_INFO,
- USER_AUTH,
- SYS_BUTTON_AUTH,
- UI_CACHE_DB_DICT_DATA,
- TENANT_ID,
- CACHE_INCLUDED_ROUTES
-} from '@/store/mutation-types'
+import dayjs from 'dayjs'
+import moment from 'moment'
export default {
name: "RepairOrderList",
mixins: [JeecgListMixin],
@@ -473,10 +616,17 @@
FaultReportRepair,
store
},
+ mounted() {
+ let intervalId = setInterval(() => {
+ this.loadData();
+ }, 600 * 1000); // 1000姣锛屽嵆1绉�
+ },
data() {
return {
description: '缁翠慨宸ュ崟绠$悊椤甸潰',
// 琛ㄥご
+ faultTime: [],
+ createTimes: [],
columns: [
{
title: '#',
@@ -489,9 +639,29 @@
}
},
{
+ title: '鍏抽敭璁惧',
+ align: "center",
+ dataIndex: 'specificEquipment',
+ width: 90,
+ scopedSlots: { customRender: 'specificEquipment' }
+ },
+ {
+ title: 'ABC鏍囪瘑',
+ align: "center",
+ dataIndex: 'equipmentImportanceId',
+ },
+ {
title: '鐘舵��',
align: "center",
dataIndex: 'status_dictText'
+ },
+ {
+ title: '缁翠慨鐘舵��',
+ align: "center",
+ dataIndex: 'repairOrderUda1_dictText',
+ customRender: function (t, r, index) {
+ return t === null || r.repairOrderUda1 === null ? '/' : t;
+ }
},
{
title: '鍗曟嵁鍙�',
@@ -505,9 +675,10 @@
// dataIndex: 'businessType_dictText'
// },
{
- title: '璁惧缂栫爜',
+ title: '缁熶竴缂栫爜',
align: "center",
- dataIndex: 'equipmentNum'
+ dataIndex: 'equipmentNum',
+ scopedSlots: { customRender: 'equipmentNum' }
},
{
title: '璁惧鍚嶇О',
@@ -543,8 +714,8 @@
title: '缁翠慨鐝粍',
align: "center",
dataIndex: 'teamId_dictText',
- scopedSlots: {
- customRender: 'jell'
+ scopedSlots: {
+ customRender: 'jell'
}
},
{
@@ -552,48 +723,54 @@
align: "center",
dataIndex: 'responsibilityId_dictText'
},
- {
- title: '娲惧伐鏂瑰紡',
- align: "center",
- dataIndex: 'dispatchMethod_dictText'
- },
+ // {
+ // title: '娲惧伐鏂瑰紡',
+ // align: "center",
+ // dataIndex: 'dispatchMethod_dictText'
+ // },
// {
// title: '鐗圭璁惧',
// align: "center",
// dataIndex: 'specificEquipment_dictText'
// },
{
+ title: '鏁呴殰鏃堕棿',
+ align: "center",
+ dataIndex: 'faultTime'
+ },
+ // {
+ // title: '鎶ヤ慨浜�',
+ // align: "center",
+ // dataIndex: 'errUda2',
+ // },
+ {
title: '鏁呴殰鎻忚堪',
align: "center",
dataIndex: 'faultDescription',
- scopedSlots: {
- customRender: 'jell'
+ scopedSlots: {
+ customRender: 'jell'
}
},
{
title: '鏁呴殰鍘熷洜',
align: "center",
- dataIndex: 'faultReason'
- },
- {
- title: '鏁呴殰鐜拌薄',
- align: "center",
- dataIndex: 'faultPhenomenon'
- },
- {
- title: '鏁呴殰鎺掗櫎',
- align: "center",
- dataIndex: 'faultRemove'
- },
- {
- title: '棰勯槻鎺柦',
- align: "center",
- dataIndex: 'preventiveMeasure'
+ dataIndex: 'faultCauseCount',
+ scopedSlots: { customRender: 'faultCauseCount' }
},
// {
- // title: '鏁呴殰鏃堕棿',
+ // title: '鏁呴殰鐜拌薄',
// align: "center",
- // dataIndex: 'faultTime'
+ // dataIndex: 'faultPhenomenon'
+ // },
+ // {
+ // title: '鏁呴殰鎺掗櫎',
+ // align: "center",
+ // dataIndex: 'faultRemove'
+ // },
+ // {
+ // title: '棰勯槻鎺柦',
+ // align: "center",
+ // dataIndex: 'preventiveMeasure'
// },
// {
// title: '鏁呴殰鐓х墖',
@@ -611,31 +788,31 @@
// align: "center",
// dataIndex: 'workingHourQuota'
// },
- {
- title: '瀹為檯宸ユ椂',
- align: "center",
- dataIndex: 'actualHour'
- },
- {
- title: '璁″垝寮�濮嬫椂闂�',
- align: "center",
- dataIndex: 'planStartTime'
- },
- {
- title: '璁″垝缁撴潫鏃堕棿',
- align: "center",
- dataIndex: 'planEndTime'
- },
- {
- title: '瀹為檯寮�濮嬫椂闂�',
- align: "center",
- dataIndex: 'actualStartTime'
- },
- {
- title: '瀹為檯缁撴潫鏃堕棿',
- align: "center",
- dataIndex: 'actualEndTime'
- },
+ // {
+ // title: '瀹為檯宸ユ椂',
+ // align: "center",
+ // dataIndex: 'actualHour'
+ // },
+ // {
+ // title: '璁″垝寮�濮嬫椂闂�',
+ // align: "center",
+ // dataIndex: 'planStartTime'
+ // },
+ // {
+ // title: '璁″垝缁撴潫鏃堕棿',
+ // align: "center",
+ // dataIndex: 'planEndTime'
+ // },
+ // {
+ // title: '瀹為檯寮�濮嬫椂闂�',
+ // align: "center",
+ // dataIndex: 'actualStartTime'
+ // },
+ // {
+ // title: '瀹為檯缁撴潫鏃堕棿',
+ // align: "center",
+ // dataIndex: 'actualEndTime'
+ // },
{
title: '鍒涘缓浜�',
align: "center",
@@ -651,9 +828,10 @@
dataIndex: 'action',
align: "center",
fixed: "right",
- width: 230,
+ width: 130,
scopedSlots: { customRender: 'action' },
}
+
],
url: {
list: "/eam/repairOrder/list",
@@ -670,8 +848,8 @@
/* 鍒嗛〉鍙傛暟 */
ipagination: {
current: 1,
- pageSize: 5,
- pageSizeOptions: ['5', '10', '50'],
+ pageSize: 20,
+ pageSizeOptions: ['5', '10', '20', '50'],
showTotal: (total, range) => {
return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�"
},
@@ -720,8 +898,14 @@
},
methods: {
-
-
+ timeChange() {
+ this.queryParam.faultStartTime = moment(this.faultTime[0]).format("YYYY-MM-DD HH:mm:ss")
+ this.queryParam.faultEndTime = moment(this.faultTime[1]).format("YYYY-MM-DD HH:mm:ss")
+ },
+ timeChangeCreate() {
+ this.queryParam.createStartTime = moment(this.createTimes[0]).format("YYYY-MM-DD HH:mm:ss")
+ this.queryParam.createEndTime = moment(this.createTimes[1]).format("YYYY-MM-DD HH:mm:ss")
+ },
clickThenSelect(record) {
return {
on: {
@@ -872,6 +1056,12 @@
this.$refs.repairOrderExcuteDrawer.visible = true
this.$refs.repairOrderExcuteDrawer.title = '缁翠慨宸ュ崟鎵ц'
},
+ handleDetail(record) {
+ this.excuteRepairOrder = record;
+ this.excuteRepairOrder.status = '4';
+ this.$refs.repairOrderExcuteDrawer.visible = true
+ this.$refs.repairOrderExcuteDrawer.title = '缁翠慨璇︽儏'
+ },
searchQuery() {
this.loadData(1)
@@ -886,15 +1076,37 @@
this.loadData(1)
this.onClearSelected()
this.$refs.FaultDescriptionList.faultId = '-1'
+ this.faultTime = []
+ this.createTimes = []
},
- getReports(){
- this.$refs.FaultReportRepair.title = '鏁呴殰鎶ヤ慨鍗�';
- this.$refs.FaultReportRepair.visible = true;
- }
+ getReports() {
+ this.$refs.FaultReportRepair.title = '鏁呴殰鎶ヤ慨鍗�';
+ this.$refs.FaultReportRepair.loadData();
+ this.$refs.FaultReportRepair.visible = true;
+ },
+ tableRowClass(record, index) {
+ if ("2" === record.status) {
+ if (record.specificEquipment === '0' && dayjs(record.faultTime).add(12, 'hour') < dayjs()) {
+ return 'error'
+ } else if (dayjs(record.faultTime).add(7, 'day') < dayjs()) {
+ return 'primary'
+ }
+ }
+ },
},
}
</script>
-<style scoped>
+<style lang="less" scoped>
@import '~@assets/less/common.less';
+
+/deep/.error {
+ color: red;
+ font-weight: bold;
+}
+
+/deep/.primary {
+ color: rgb(255, 0, 251);
+ font-weight: bold;
+}
</style>
\ No newline at end of file
--
Gitblit v1.9.3