From 4bdafebef311d37a28f84c09dcf74bebb096dbb6 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期一, 23 六月 2025 14:43:50 +0800
Subject: [PATCH] 1、mdc设备多选输入框优化新增点击输入框同样触发查询按钮弹出抽屉或弹窗 2、解决进入过产品结构树页面后再进入设备日志页面后设备状态分布图样式变形问题以及优化组件代码
---
src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue | 510 ++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 422 insertions(+), 88 deletions(-)
diff --git a/src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue b/src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue
index 55e52ef..fd98045 100644
--- a/src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue
+++ b/src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue
@@ -2,41 +2,91 @@
<a-card :bordered="false">
<!-- 鏌ヨ鍖哄煙 -->
- <div class="table-page-search-wrapper">
- <a-form layout="inline" @keyup.enter.native="searchQuery">
+ <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">
+ <a-col
+ :xl="4"
+ :lg="7"
+ :md="8"
+ :sm="24"
+ >
<a-form-item label="宸ュ崟鍙�">
- <a-input placeholder="璇疯緭鍏ュ伐鍗曞彿" v-model="queryParam.orderNum"></a-input>
+ <a-input
+ placeholder="璇疯緭鍏ュ伐鍗曞彿"
+ v-model="queryParam.orderNum"
+ ></a-input>
</a-form-item>
</a-col>
- <a-col :xl="4" :lg="7" :md="8" :sm="24">
+ <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>
+ <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-col
+ :xl="6"
+ :lg="7"
+ :md="8"
+ :sm="24"
+ >
+ <a-form-item label="璁″垝淇濆吇鏃ユ湡">
+ <a-range-picker
+ v-model="queryParam.maintenanceDateRange"
+ @change="onMaintenanceDateChange"
+ format="YYYY-MM-DD"
+ value-format="YYYY-MM-DD"
+ />
+ </a-form-item>
+ </a-col>
+ <a-col
+ :xl="4"
+ :lg="7"
+ :md="8"
+ :sm="24"
+ >
<a-form-item label="淇濆吇鐘舵��">
- <j-dict-select-tag placeholder="璇烽�夋嫨淇濆吇鐘舵��" dict-code="week_maintenance_status"
- v-model="queryParam.maintenanceStatus"/>
+ <j-dict-select-tag
+ placeholder="璇烽�夋嫨淇濆吇鐘舵��"
+ dict-code="second_maintenance_status"
+ v-model="queryParam.maintenanceStatus"
+ />
</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.planStartTime"></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>
+ <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>
@@ -45,13 +95,34 @@
</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:secondMaintenance:add')"
+ >鏂板
+ </a-button>
<a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay">
- <a-menu-item key="1" @click="batchDel">
+ <a-menu-item
+ key="1"
+ @click="handlerBatchAbolish"
+ v-if="isShowAuth('eam:secondMaintenance:abolish')"
+ >
<a-icon type="delete" />
- 鍒犻櫎
+ 浣滃簾
+ </a-menu-item>
+ <a-menu-item
+ key="2"
+ @click="handlerBatchCollect"
+ v-if="isShowAuth('eam:secondMaintenance:collect')"
+ >
+ <a-icon type="form" />
+ 棰嗗彇
</a-menu-item>
</a-menu>
<a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔
@@ -62,10 +133,16 @@
<!-- table鍖哄煙-begin -->
<div>
- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
- <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>
+ <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>
</div>
<a-table
@@ -78,23 +155,63 @@
:pagination="ipagination"
:loading="loading"
class="j-table-force-nowrap"
+ :scroll="{x:'max-content'}"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
- @change="handleTableChange">
+ @change="handleTableChange"
+ >
- <span slot="action" slot-scope="text, record">
- <a @click="handleEdit(record)">缂栬緫</a>
+ <span
+ slot="action"
+ slot-scope="text, record"
+ >
+ <template v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE'">
+ <a
+ @click="handleEdit(record)"
+ v-if="isShowAuth('eam:secondMaintenance:edit')"
+ >缂栬緫</a>
- <a-divider type="vertical" />
- <a-dropdown>
- <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a>
- <a-menu slot="overlay">
- <a-menu-item>
- <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)">
- <a>鍒犻櫎</a>
- </a-popconfirm>
- </a-menu-item>
- </a-menu>
- </a-dropdown>
+ <a-divider
+ type="vertical"
+ v-if="isShowAuth('eam:secondMaintenance:edit')"
+ />
+
+ <a-popconfirm
+ title="纭畾棰嗗彇鍚�?"
+ @confirm="() => handlerCollect(record.id)"
+ v-if="isShowAuth('eam:secondMaintenance:collect')"
+ >
+ <a>棰嗗彇</a>
+ </a-popconfirm>
+
+ <a-divider
+ type="vertical"
+ v-if="isShowAuth('eam:secondMaintenance:collect')"
+ />
+
+ <a-dropdown>
+ <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a>
+ <a-menu slot="overlay">
+ <a-menu-item v-if="isShowAuth('eam:secondMaintenance:abolish')">
+ <a-popconfirm
+ title="纭畾浣滃簾鍚�?"
+ @confirm="() => handlerAbolish(record.id)"
+ >
+ <a>浣滃簾</a>
+ </a-popconfirm>
+ </a-menu-item>
+ <a-menu-item>
+ <a @click="handleDetail(record)">璇︽儏</a>
+ </a-menu-item>
+ </a-menu>
+ </a-dropdown>
+ </template>
+
+ <template v-else>
+ <a @click="handleDetail(record)">璇︽儏</a>
+ <a-divider type="vertical" />
+ <a @click="handlePrint(record)">鎵撳嵃</a>
+ </template>
+
</span>
</a-table>
@@ -102,7 +219,15 @@
<!-- table鍖哄煙-end -->
<!-- 琛ㄥ崟鍖哄煙 -->
- <eamSecondMaintenanceOrder-modal ref="modalForm" @ok="modalFormOk"></eamSecondMaintenanceOrder-modal>
+ <eamSecondMaintenanceOrder-modal
+ ref="modalForm"
+ @ok="modalFormOk"
+ ></eamSecondMaintenanceOrder-modal>
+
+ <second-maintenance-approval-modal
+ ref="secondMaintenanceApprovalModal"
+ :selectShenpiData="selectSecondMaintenanceData"
+ />
</a-card>
</template>
@@ -111,17 +236,28 @@
import EamSecondMaintenanceOrderModal from './modules/EamSecondMaintenanceOrderModal'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue'
+import { deleteAction, getAction } from '@api/manage'
+import SecondMaintenanceApprovalModal from '@views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue'
export default {
name: 'EamSecondMaintenanceOrderList',
mixins: [JeecgListMixin],
components: {
LxSearchEquipmentSelect,
- EamSecondMaintenanceOrderModal
+ EamSecondMaintenanceOrderModal,
+ SecondMaintenanceApprovalModal
+ },
+ props: {
+ isDisplayOperation: {
+ type: Boolean,
+ default: true
+ }
},
data() {
return {
description: '璁惧浜岀骇淇濆吇绠$悊椤甸潰',
+ disableMixinCreated: true,
+ selectSecondMaintenanceData: {},
// 琛ㄥご
columns: [
{
@@ -130,39 +266,41 @@
key: 'rowIndex',
width: 60,
align: 'center',
- customRender: function(t, r, index) {
+ fixed: 'left',
+ customRender: function (t, r, index) {
return parseInt(index) + 1
}
},
{
- title: '鍒犻櫎鏍囪',
- align: 'center',
- dataIndex: 'delFlag'
- },
- {
title: '宸ュ崟鍙�',
align: 'center',
- dataIndex: 'orderNum'
+ dataIndex: 'orderNum',
+ fixed: 'left',
+ width: 60
},
{
- title: '璁惧ID',
+ title: '璁惧缂栧彿',
align: 'center',
- dataIndex: 'equipmentId'
+ dataIndex: 'equipmentCode',
+ fixed: 'left',
+ width: 60
},
{
- title: '鏍囧噯ID',
+ title: '璁惧鍚嶇О',
align: 'center',
- dataIndex: 'standardId'
+ dataIndex: 'equipmentName',
+ fixed: 'left',
+ width: 60
},
{
- title: '璁″垝寮�濮嬫椂闂�',
+ title: '鏍囧噯鍚嶇О',
align: 'center',
- dataIndex: 'planStartTime'
+ dataIndex: 'standardId_dictText'
},
{
- title: '璁″垝缁撴潫鏃堕棿',
+ title: '璁″垝淇濆吇鏃ユ湡',
align: 'center',
- dataIndex: 'planEndTime'
+ dataIndex: 'maintenanceDate'
},
{
title: '瀹為檯寮�濮嬫椂闂�',
@@ -177,60 +315,256 @@
{
title: '淇濆吇浜�',
align: 'center',
- dataIndex: 'operator'
+ dataIndex: 'operator_dictText'
},
{
title: '淇濆吇鐘舵��',
align: 'center',
- dataIndex: 'maintenanceStatus'
+ dataIndex: 'maintenanceStatus_dictText'
},
{
title: '鍒涘缓鏂瑰紡',
align: 'center',
- dataIndex: 'creationMethod'
+ dataIndex: 'creationMethod_dictText'
},
{
- title: '璁惧绠$悊鍛樼‘璁�',
+ title: '纭绠$悊鍛�',
align: 'center',
- dataIndex: 'confirmUser'
+ dataIndex: 'confirmUser_dictText',
+ width: 60
},
{
- title: '纭鏃堕棿',
+ title: '绠$悊鍛樼‘璁ゆ椂闂�',
align: 'center',
- dataIndex: 'confirmTime'
+ dataIndex: 'confirmTime',
+ width: 60
},
{
- title: '鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧',
+ title: '绠$悊鍛樻剰瑙�',
align: 'center',
- dataIndex: 'imageFiles'
+ dataIndex: 'confirmComment',
+ width: 60
+ },
+ {
+ title: '纭棰嗗',
+ align: 'center',
+ dataIndex: 'confirmLeader_dictText',
+ width: 60
+ },
+ {
+ title: '棰嗗纭鏃堕棿',
+ align: 'center',
+ dataIndex: 'leaderConfirmTime',
+ width: 60
+ },
+ {
+ title: '棰嗗鎰忚',
+ align: 'center',
+ dataIndex: 'leaderConfirmComment',
+ width: 60
},
{
title: '澶囨敞',
align: 'center',
dataIndex: 'remark'
- },
- {
- title: '鎿嶄綔',
- dataIndex: 'action',
- align: 'center',
- scopedSlots: { customRender: 'action' }
}
],
url: {
- list: '/eam/eamSecondMaintenanceOrder/list',
- delete: '/eam/eamSecondMaintenanceOrder/delete',
- deleteBatch: '/eam/eamSecondMaintenanceOrder/deleteBatch',
- exportXlsUrl: 'eam/eamSecondMaintenanceOrder/exportXls',
- importExcelUrl: 'eam/eamSecondMaintenanceOrder/importExcel'
+ list: '/eam/secondMaintenanceOrder/list',
+ abolish: '/eam/secondMaintenanceOrder/abolish',
+ abolishBatch: '/eam/secondMaintenanceOrder/abolishBatch',
+ collect: '/eam/secondMaintenanceOrder/collect',
+ collectBatch: '/eam/secondMaintenanceOrder/collectBatch'
}
}
},
- computed: {
- importExcelUrl: function() {
- return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
+ created() {
+ if (!this.isDisplayOperation) {
+ return
}
+ const operationColumn = {
+ title: '鎿嶄綔',
+ dataIndex: 'action',
+ align: 'center',
+ fixed: 'right',
+ width: 200,
+ scopedSlots: { customRender: 'action' }
+ }
+ this.columns = [...this.columns, operationColumn]
+ this.loadData(1)
},
- methods: {}
+ computed: {},
+ methods: {
+ onMaintenanceDateChange: function (value, dateString) {
+ if (dateString && dateString.length === 2) {
+ this.queryParam.maintenanceDateBegin = dateString[0]
+ this.queryParam.maintenanceDateEnd = dateString[1]
+ } else {
+ this.queryParam.maintenanceDateBegin = undefined
+ this.queryParam.maintenanceDateEnd = undefined
+ }
+ },
+ handlerAbolish(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
+ })
+ }
+ })
+ },
+ handlerBatchAbolish() {
+ if (!this.url.abolishBatch) {
+ 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.abolishBatch, { 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
+ })
+ }
+ })
+ }
+ },
+ //鍗曚釜棰嗗彇
+ handlerCollect(id) {
+ if (!this.url.collect) {
+ this.$message.error('璇疯缃畊rl.collect灞炴��!')
+ return
+ }
+ let that = this
+ getAction(that.url.collect, { 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
+ })
+ }
+ })
+ },
+ //鎵归噺棰嗗彇
+ 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.selectSecondMaintenanceData = Object.assign({}, record)
+ this.$refs.secondMaintenanceApprovalModal.recordDetail(record)
+ this.$refs.secondMaintenanceApprovalModal.title = '璇︽儏'
+ this.$refs.secondMaintenanceApprovalModal.disableSubmit = true
+ },
+
+ handlePrint(record) {
+ // let href = `${window._CONFIG['domianURL']}/jmreport/view/1094871242505912320`; //缃戠珯閾炬帴
+ let href = `${window._CONFIG['domianURL']}/jmreport/view/1094834721929232384?id=` + record.id; //缃戠珯閾炬帴
+ window.open(href, "_blank");
+ },
+ }
}
</script>
<style scoped>
--
Gitblit v1.9.3