From 0e7e374499c22df4f166ccaa6587a4660aed6243 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期四, 15 五月 2025 14:54:59 +0800
Subject: [PATCH] art: 设备管理-三保-列表,新增,编辑,作废,领取
---
src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue | 479 ++++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 325 insertions(+), 154 deletions(-)
diff --git a/src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue b/src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue
index 4aa53d0..02310e0 100644
--- a/src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue
+++ b/src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue
@@ -2,45 +2,36 @@
<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="6" :lg="7" :md="8" :sm="24">
- <a-form-item label="鍒犻櫎鏍囪">
- <a-input placeholder="璇疯緭鍏ュ垹闄ゆ爣璁�" v-model="queryParam.delFlag"></a-input>
- </a-form-item>
- </a-col>
- <a-col :xl="6" :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-form-item>
</a-col>
- <template v-if="toggleSearchStatus">
- <a-col :xl="6" :lg="7" :md="8" :sm="24">
- <a-form-item label="璁惧ID">
- <a-input placeholder="璇疯緭鍏ヨ澶嘔D" v-model="queryParam.equipmentId"></a-input>
+ <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="6" :lg="7" :md="8" :sm="24">
- <a-form-item label="鏍囧噯ID">
- <a-input placeholder="璇疯緭鍏ユ爣鍑咺D" v-model="queryParam.standardId"></a-input>
+ <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="6" :lg="7" :md="8" :sm="24">
- <a-form-item label="璁″垝寮�濮嬫椂闂�">
- <a-input placeholder="璇疯緭鍏ヨ鍒掑紑濮嬫椂闂�" v-model="queryParam.planStartTime"></a-input>
+ <a-col :xl="4" :lg="7" :md="8" :sm="24">
+ <a-form-item label="淇濆吇鐘舵��">
+ <j-dict-select-tag placeholder="璇烽�夋嫨淇濆吇鐘舵��" dict-code="second_maintenance_status"
+ v-model="queryParam.maintenanceStatus" />
</a-form-item>
</a-col>
- </template>
- <a-col :xl="6" :lg="7" :md="8" :sm="24">
+ <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="primary" @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-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button>
</span>
</a-col>
@@ -49,24 +40,31 @@
</div>
<!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
- <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>
+ <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-icon type="delete"/>鍒犻櫎</a-menu-item>
+ <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"> 鎵归噺鎿嶄綔 <a-icon type="down" /></a-button>
+ <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;">
- <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a style="font-weight: 600">{{ selectedRowKeys.length }}</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>
@@ -84,19 +82,35 @@
@change="handleTableChange">
<span slot="action" slot-scope="text, record">
+ <template v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE' && isShowAuth('eam:secondMaintenance:edit')">
<a @click="handleEdit(record)">缂栬緫</a>
<a-divider type="vertical" />
+
+ <a-popconfirm title="纭畾棰嗗彇鍚�?" @confirm="() => handlerCollect(record.id)">
+ <a>棰嗗彇</a>
+ </a-popconfirm>
+
+ <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 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>
+ </template>
</span>
</a-table>
@@ -109,132 +123,289 @@
</template>
<script>
- import '@/assets/less/TableExpand.less'
- import EamSecondMaintenanceOrderModal from './modules/EamSecondMaintenanceOrderModal'
- import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+import '@/assets/less/TableExpand.less'
+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'
- export default {
- name: "EamSecondMaintenanceOrderList",
- mixins:[JeecgListMixin],
- components: {
- EamSecondMaintenanceOrderModal
- },
- data () {
- return {
- description: '璁惧浜岀骇淇濆吇绠$悊椤甸潰',
- // 琛ㄥご
- columns: [
- {
- title: '#',
- dataIndex: '',
- key:'rowIndex',
- width:60,
- align:"center",
- customRender:function (t,r,index) {
- return parseInt(index)+1;
- }
- },
- {
- title: '鍒犻櫎鏍囪',
- align:"center",
- dataIndex: 'delFlag'
- },
- {
- title: '宸ュ崟鍙�',
- align:"center",
- dataIndex: 'orderNum'
- },
- {
- title: '璁惧ID',
- align:"center",
- dataIndex: 'equipmentId'
- },
- {
- title: '鏍囧噯ID',
- align:"center",
- dataIndex: 'standardId'
- },
- {
- title: '璁″垝寮�濮嬫椂闂�',
- align:"center",
- dataIndex: 'planStartTime'
- },
- {
- title: '璁″垝缁撴潫鏃堕棿',
- align:"center",
- dataIndex: 'planEndTime'
- },
- {
- title: '瀹為檯寮�濮嬫椂闂�',
- align:"center",
- dataIndex: 'actualStartTime'
- },
- {
- title: '瀹為檯缁撴潫鏃堕棿',
- align:"center",
- dataIndex: 'actualEndTime'
- },
- {
- title: '淇濆吇浜�',
- align:"center",
- dataIndex: 'operator'
- },
- {
- title: '淇濆吇鐘舵��',
- align:"center",
- dataIndex: 'maintenanceStatus'
- },
- {
- title: '鍒涘缓鏂瑰紡',
- align:"center",
- dataIndex: 'creationMethod'
- },
- {
- title: '璁惧绠$悊鍛樼‘璁�',
- align:"center",
- dataIndex: 'confirmUser'
- },
- {
- title: '纭鏃堕棿',
- align:"center",
- dataIndex: 'confirmTime'
- },
- {
- title: '鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧',
- align:"center",
- dataIndex: 'imageFiles'
- },
- {
- title: '澶囨敞',
- align:"center",
- dataIndex: 'remark'
- },
- {
- title: '鎿嶄綔',
- dataIndex: 'action',
- align:"center",
- scopedSlots: { customRender: 'action' },
+export default {
+ name: 'EamSecondMaintenanceOrderList',
+ mixins: [JeecgListMixin],
+ components: {
+ LxSearchEquipmentSelect,
+ EamSecondMaintenanceOrderModal
+ },
+ props: {
+ isDisplayOperation: {
+ type: Boolean,
+ default: true
+ }
+ },
+ data() {
+ return {
+ description: '璁惧浜岀骇淇濆吇绠$悊椤甸潰',
+ // 琛ㄥご
+ columns: [
+ {
+ title: '#',
+ dataIndex: '',
+ key: 'rowIndex',
+ width: 60,
+ align: 'center',
+ fixed: 'left',
+ customRender: function(t, r, index) {
+ return parseInt(index) + 1
}
- ],
- url: {
- list: "/eam/eamSecondMaintenanceOrder/list",
- delete: "/eam/eamSecondMaintenanceOrder/delete",
- deleteBatch: "/eam/eamSecondMaintenanceOrder/deleteBatch",
- exportXlsUrl: "eam/eamSecondMaintenanceOrder/exportXls",
- importExcelUrl: "eam/eamSecondMaintenanceOrder/importExcel",
- },
+ },
+ {
+ title: '宸ュ崟鍙�',
+ align: 'center',
+ dataIndex: 'orderNum',
+ fixed: 'left',
+ width: 60
+ },
+ {
+ title: '璁惧缂栧彿',
+ align: 'center',
+ dataIndex: 'equipmentCode',
+ fixed: 'left',
+ width: 60
+ },
+ {
+ title: '璁惧鍚嶇О',
+ align: 'center',
+ dataIndex: 'equipmentName',
+ fixed: 'left',
+ width: 60
+ },
+ {
+ title: '鏍囧噯鍚嶇О',
+ align: 'center',
+ dataIndex: 'standardId_dictText'
+ },
+ {
+ title: '璁″垝淇濆吇鏃ユ湡',
+ align: 'center',
+ dataIndex: 'maintenanceDate'
+ },
+ {
+ title: '瀹為檯寮�濮嬫椂闂�',
+ align: 'center',
+ dataIndex: 'actualStartTime'
+ },
+ {
+ title: '瀹為檯缁撴潫鏃堕棿',
+ align: 'center',
+ dataIndex: 'actualEndTime'
+ },
+ {
+ title: '淇濆吇浜�',
+ align: 'center',
+ dataIndex: 'operator_dictText'
+ },
+ {
+ title: '淇濆吇鐘舵��',
+ align: 'center',
+ dataIndex: 'maintenanceStatus_dictText'
+ },
+ {
+ title: '鍒涘缓鏂瑰紡',
+ align: 'center',
+ dataIndex: 'creationMethod_dictText'
+ },
+ {
+ title: '澶囨敞',
+ align: 'center',
+ dataIndex: 'remark'
+ }
+ ],
+ url: {
+ 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
+ })
+ }
+ })
+ }
}
}
+}
</script>
<style scoped>
- @import '~@assets/less/common.less';
+@import '~@assets/less/common.less';
</style>
\ No newline at end of file
--
Gitblit v1.9.3