| | |
| | | <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="请输入设备ID" v-model="queryParam.equipmentId"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="标准ID"> |
| | | <a-input placeholder="请输入标准ID" v-model="queryParam.standardId"></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.planStartTime"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | </template> |
| | | <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="计划保养日期"> |
| | | <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="second_maintenance_status" |
| | | v-model="queryParam.maintenanceStatus" /> |
| | | </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="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> |
| | | |
| | |
| | | </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-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"> 批量操作 |
| | |
| | | |
| | | <!-- 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> |
| | |
| | | @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> |
| | |
| | | import '@/assets/less/TableExpand.less' |
| | | import EamThirdMaintenanceOrderModal from './modules/EamThirdMaintenanceOrderModal' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' |
| | | import { deleteAction, getAction } from '@api/manage' |
| | | |
| | | export default { |
| | | name: 'EamThirdMaintenanceOrderList', |
| | | mixins: [JeecgListMixin], |
| | | components: { |
| | | LxSearchEquipmentSelect, |
| | | EamThirdMaintenanceOrderModal |
| | | }, |
| | | props: { |
| | | isDisplayOperation: { |
| | | type: Boolean, |
| | | default: true |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | key: 'rowIndex', |
| | | width: 60, |
| | | align: 'center', |
| | | 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: '实际开始时间', |
| | |
| | | { |
| | | title: '保养人', |
| | | align: 'center', |
| | | dataIndex: 'operator' |
| | | dataIndex: 'operator_dictText' |
| | | }, |
| | | { |
| | | title: '保养状态', |
| | | align: 'center', |
| | | dataIndex: 'maintenanceStatus' |
| | | dataIndex: 'maintenanceStatus_dictText' |
| | | }, |
| | | { |
| | | title: '创建方式', |
| | | align: 'center', |
| | | dataIndex: 'creationMethod' |
| | | }, |
| | | { |
| | | title: '设备管理员确认', |
| | | align: 'center', |
| | | dataIndex: 'confirmUser' |
| | | }, |
| | | { |
| | | title: '确认时间', |
| | | align: 'center', |
| | | dataIndex: 'confirmTime' |
| | | }, |
| | | { |
| | | title: '确认状态', |
| | | align: 'center', |
| | | dataIndex: 'confirmStatus' |
| | | }, |
| | | { |
| | | title: '照片文件ids;id以逗号分隔', |
| | | align: 'center', |
| | | dataIndex: 'imageFiles' |
| | | dataIndex: 'creationMethod_dictText' |
| | | }, |
| | | { |
| | | title: '备注', |
| | | align: 'center', |
| | | dataIndex: 'remark' |
| | | }, |
| | | { |
| | | title: '操作', |
| | | dataIndex: 'action', |
| | | align: 'center', |
| | | scopedSlots: { customRender: 'action' } |
| | | } |
| | | ], |
| | | url: { |
| | | list: '/eam/eamThirdMaintenanceOrder/list', |
| | | delete: '/eam/eamThirdMaintenanceOrder/delete', |
| | | deleteBatch: '/eam/eamThirdMaintenanceOrder/deleteBatch', |
| | | exportXlsUrl: 'eam/eamThirdMaintenanceOrder/exportXls', |
| | | importExcelUrl: 'eam/eamThirdMaintenanceOrder/importExcel' |
| | | list: '/eam/thirdMaintenanceOrder/list', |
| | | abolish: '/eam/thirdMaintenanceOrder/abolish', |
| | | abolishBatch: '/eam/thirdMaintenanceOrder/abolishBatch', |
| | | collect: '/eam/thirdMaintenanceOrder/collect', |
| | | collectBatch: '/eam/thirdMaintenanceOrder/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('请设置url.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('请设置url.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('请设置url.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('请设置url.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> |