|
|
@@ -0,0 +1,371 @@ |
|
|
|
<template> |
|
|
|
<div class="app-container"> |
|
|
|
<!-- 搜索工作栏 --> |
|
|
|
<SearchBar |
|
|
|
:formConfigs="searchBarFormConfig" |
|
|
|
ref="search-bar" |
|
|
|
@headBtnClick="handleSearchBarBtnClick" /> |
|
|
|
|
|
|
|
<!-- 列表 --> |
|
|
|
<base-table |
|
|
|
:table-props="tableProps" |
|
|
|
:page="queryParams.pageNo" |
|
|
|
:limit="queryParams.pageSize" |
|
|
|
:table-data="list" |
|
|
|
@emitFun="handleEmitFun"> |
|
|
|
<method-btn |
|
|
|
v-if="tableBtn.length" |
|
|
|
slot="handleBtn" |
|
|
|
label="操作" |
|
|
|
:width="120" |
|
|
|
:method-list="tableBtn" |
|
|
|
@clickBtn="handleTableBtnClick" /> |
|
|
|
</base-table> |
|
|
|
|
|
|
|
<!-- 分页组件 --> |
|
|
|
<pagination |
|
|
|
v-show="total > 0" |
|
|
|
:total="total" |
|
|
|
:page.sync="queryParams.pageNo" |
|
|
|
:limit.sync="queryParams.pageSize" |
|
|
|
@pagination="getList" /> |
|
|
|
|
|
|
|
<!-- 对话框(添加 / 修改) --> |
|
|
|
<base-dialog |
|
|
|
:dialogTitle="title" |
|
|
|
:dialogVisible="open" |
|
|
|
@close="cancel" |
|
|
|
@cancel="cancel" |
|
|
|
@confirm="submitForm"> |
|
|
|
<DialogForm |
|
|
|
v-if="open" |
|
|
|
ref="form" |
|
|
|
v-model="form" |
|
|
|
:disabled="mode == 'detail'" |
|
|
|
:has-files="true" |
|
|
|
:rows="rows" /> |
|
|
|
</base-dialog> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script> |
|
|
|
import moment from 'moment'; |
|
|
|
import basicPageMixin from '@/mixins/lb/basicPageMixin'; |
|
|
|
|
|
|
|
const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'); |
|
|
|
|
|
|
|
export default { |
|
|
|
name: 'EquipmentRepair', |
|
|
|
components: {}, |
|
|
|
mixins: [basicPageMixin], |
|
|
|
data() { |
|
|
|
return { |
|
|
|
searchBarKeys: ['equipmentId', 'createTime'], |
|
|
|
tableBtn: [ |
|
|
|
this.$auth.hasPermi('equipment:check-record:update') |
|
|
|
? { |
|
|
|
type: 'detail', |
|
|
|
btnName: '详情', |
|
|
|
} |
|
|
|
: undefined, |
|
|
|
this.$auth.hasPermi('equipment:check-record:update') |
|
|
|
? { |
|
|
|
type: 'edit', |
|
|
|
btnName: '修改', |
|
|
|
} |
|
|
|
: undefined, |
|
|
|
this.$auth.hasPermi('equipment:check-record:delete') |
|
|
|
? { |
|
|
|
type: 'delete', |
|
|
|
btnName: '删除', |
|
|
|
} |
|
|
|
: undefined, |
|
|
|
].filter((v) => v), |
|
|
|
tableProps: [ |
|
|
|
{ prop: 'repairOrderNumber', label: '配置名称' }, |
|
|
|
{ prop: 'maintenanceDuration', label: '设备名称' }, |
|
|
|
{ prop: 'lineName', label: '数据来源' }, |
|
|
|
{ prop: 'sectionName', label: '计划巡检时间' }, |
|
|
|
{ prop: 'equipmentName', label: '实际巡检时间' }, |
|
|
|
{ prop: 'maintenanceDetail', label: '完成状态' }, |
|
|
|
{ prop: 'repairman', label: '巡检人' }, |
|
|
|
], |
|
|
|
searchBarFormConfig: [ |
|
|
|
{ |
|
|
|
type: 'select', |
|
|
|
label: '设备', |
|
|
|
placeholder: '请选择设备', |
|
|
|
param: 'equipmentId', |
|
|
|
}, |
|
|
|
// 开始结束时间 |
|
|
|
{ |
|
|
|
type: 'datePicker', |
|
|
|
label: '时间段', |
|
|
|
dateType: 'daterange', // datetimerange |
|
|
|
format: 'yyyy-MM-dd', |
|
|
|
valueFormat: 'timestamp', |
|
|
|
rangeSeparator: '-', |
|
|
|
startPlaceholder: '开始日期', |
|
|
|
endPlaceholder: '结束日期', |
|
|
|
defaultTime: ['00:00:00', '23:59:59'], |
|
|
|
param: 'startTime', |
|
|
|
// width: 350, |
|
|
|
}, |
|
|
|
{ |
|
|
|
type: 'button', |
|
|
|
btnName: '查询', |
|
|
|
name: 'search', |
|
|
|
color: 'primary', |
|
|
|
}, |
|
|
|
{ |
|
|
|
type: 'separate', |
|
|
|
}, |
|
|
|
{ |
|
|
|
type: this.$auth.hasPermi('equipment:check-record:create') |
|
|
|
? 'button' |
|
|
|
: '', |
|
|
|
btnName: '新增', |
|
|
|
name: 'add', |
|
|
|
plain: true, |
|
|
|
color: 'success', |
|
|
|
}, |
|
|
|
{ |
|
|
|
type: this.$auth.hasPermi('equipment:check-record:export') |
|
|
|
? 'button' |
|
|
|
: '', |
|
|
|
btnName: '导出', |
|
|
|
name: 'export', |
|
|
|
color: 'warning', |
|
|
|
}, |
|
|
|
], |
|
|
|
rows: [ |
|
|
|
[ |
|
|
|
{ |
|
|
|
input: true, |
|
|
|
label: '维修单号', |
|
|
|
prop: 'repairOrderNumber', |
|
|
|
}, |
|
|
|
{ |
|
|
|
select: true, |
|
|
|
label: '设备名称', |
|
|
|
prop: 'equipmentId', |
|
|
|
url: '/base/core-equipment/listAll', |
|
|
|
bind: { |
|
|
|
filterable: true, |
|
|
|
clearable: true, |
|
|
|
}, |
|
|
|
rules: [{ required: true, message: '不能为空', trigger: 'blur' }], |
|
|
|
}, |
|
|
|
], |
|
|
|
[ |
|
|
|
{ |
|
|
|
// TODO: 和班组联动 |
|
|
|
select: true, |
|
|
|
label: '维修工', |
|
|
|
prop: 'repairman', |
|
|
|
// url: '/base/core-equipment/listAll', |
|
|
|
bind: { |
|
|
|
filterable: true, |
|
|
|
clearable: true, |
|
|
|
multiple: true, |
|
|
|
}, |
|
|
|
options: [{ label: 'test', value: 'test' }], |
|
|
|
rules: [{ required: true, message: '不能为空', trigger: 'blur' }], |
|
|
|
}, |
|
|
|
{ |
|
|
|
input: true, |
|
|
|
label: '联系方式', |
|
|
|
prop: 'repairmanPhone', |
|
|
|
}, |
|
|
|
], |
|
|
|
[ |
|
|
|
{ |
|
|
|
datetime: true, |
|
|
|
label: '故障发生时间', |
|
|
|
prop: 'faultTime', |
|
|
|
rules: [{ required: true, message: '不能为空', trigger: 'blur' }], |
|
|
|
bind: { |
|
|
|
format: 'yyyy-MM-dd HH:mm:ss', |
|
|
|
'value-format': 'timestamp', |
|
|
|
// 'value-format': 'yyyy-MM-dd HH:mm:ss', |
|
|
|
clearable: true, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
select: true, |
|
|
|
label: '故障级别', |
|
|
|
prop: 'faultLevel', // 数据字典 |
|
|
|
options: this.getDictDatas(this.DICT_TYPE.FAULT_LEVEL), |
|
|
|
}, |
|
|
|
], |
|
|
|
], |
|
|
|
// 是否显示弹出层 |
|
|
|
open: false, |
|
|
|
// 查询参数 |
|
|
|
queryParams: { |
|
|
|
pageNo: 1, |
|
|
|
pageSize: 10, |
|
|
|
maintenanceStatus: null, |
|
|
|
createTime: null, |
|
|
|
equipmentId: null, |
|
|
|
}, |
|
|
|
// 表单参数 |
|
|
|
form: {}, |
|
|
|
basePath: '/base/equipment-repair-log', |
|
|
|
mode: null, |
|
|
|
}; |
|
|
|
}, |
|
|
|
created() { |
|
|
|
this.initSearchBar(); |
|
|
|
this.getList(); |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
initSearchBar() { |
|
|
|
this.http('/base/core-equipment/listAll', 'get').then(({ data }) => { |
|
|
|
this.$set( |
|
|
|
this.searchBarFormConfig[0], |
|
|
|
'selectOptions', |
|
|
|
data.map((item) => ({ |
|
|
|
name: item.name, |
|
|
|
id: item.id, |
|
|
|
})) |
|
|
|
); |
|
|
|
}); |
|
|
|
}, |
|
|
|
/** 查询列表 */ |
|
|
|
getList() { |
|
|
|
this.loading = true; |
|
|
|
// 执行查询 |
|
|
|
this.recv(this.queryParams).then((response) => { |
|
|
|
this.list = response.data.list; |
|
|
|
this.total = response.data.total; |
|
|
|
this.loading = false; |
|
|
|
}); |
|
|
|
}, |
|
|
|
/** 取消按钮 */ |
|
|
|
cancel() { |
|
|
|
this.open = false; |
|
|
|
this.mode = null; |
|
|
|
this.reset(); |
|
|
|
}, |
|
|
|
/** 表单重置 */ |
|
|
|
reset() { |
|
|
|
this.form = { |
|
|
|
id: null, |
|
|
|
repairOrderNumber: null, |
|
|
|
equipmentId: null, |
|
|
|
repairman: null, |
|
|
|
repairmanPhone: null, |
|
|
|
faultTime: null, |
|
|
|
faultLevel: null, |
|
|
|
maintenanceStartTime: null, |
|
|
|
maintenanceFinishTime: null, |
|
|
|
faultType: null, |
|
|
|
repairMode: null, |
|
|
|
maintenanceStatus: null, |
|
|
|
faultDetail: null, |
|
|
|
maintenanceDetail: null, |
|
|
|
remark: null, |
|
|
|
files: [ |
|
|
|
// { |
|
|
|
// fileName: '', |
|
|
|
// fileType: '', |
|
|
|
// fileUrl: '', |
|
|
|
// }, |
|
|
|
], |
|
|
|
}; |
|
|
|
this.resetForm('form'); |
|
|
|
}, |
|
|
|
/** 搜索按钮操作 */ |
|
|
|
handleQuery() { |
|
|
|
this.queryParams.pageNo = 1; |
|
|
|
this.getList(); |
|
|
|
}, |
|
|
|
/** 重置按钮操作 */ |
|
|
|
resetQuery() { |
|
|
|
this.resetForm('queryForm'); |
|
|
|
this.handleQuery(); |
|
|
|
}, |
|
|
|
/** 新增按钮操作 */ |
|
|
|
handleAdd() { |
|
|
|
this.reset(); |
|
|
|
this.open = true; |
|
|
|
this.title = '添加维修记录'; |
|
|
|
}, |
|
|
|
/** 修改按钮操作 */ |
|
|
|
handleUpdate(row) { |
|
|
|
this.reset(); |
|
|
|
const id = row.id; |
|
|
|
this.info({ id }).then((response) => { |
|
|
|
this.form = response.data; |
|
|
|
this.open = true; |
|
|
|
this.title = '修改维修记录'; |
|
|
|
}); |
|
|
|
}, |
|
|
|
/** 提交按钮 */ |
|
|
|
submitForm() { |
|
|
|
this.$refs['form'].validate((valid) => { |
|
|
|
if (!valid) { |
|
|
|
return; |
|
|
|
} |
|
|
|
// 修改的提交 |
|
|
|
if (this.form.id != null) { |
|
|
|
this.put(this.form).then((response) => { |
|
|
|
this.$modal.msgSuccess('修改成功'); |
|
|
|
this.open = false; |
|
|
|
this.getList(); |
|
|
|
}); |
|
|
|
return; |
|
|
|
} |
|
|
|
// 添加的提交 |
|
|
|
this.post(this.form).then((response) => { |
|
|
|
this.$modal.msgSuccess('新增成功'); |
|
|
|
this.open = false; |
|
|
|
this.getList(); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
/** 删除按钮操作 */ |
|
|
|
handleDelete(row) { |
|
|
|
const id = row.id; |
|
|
|
this.$modal |
|
|
|
.confirm('是否确认删除记录"' + row.name + '"?') |
|
|
|
.then(function () { |
|
|
|
return this.delete({ id }); |
|
|
|
}) |
|
|
|
.then(() => { |
|
|
|
this.getList(); |
|
|
|
this.$modal.msgSuccess('删除成功'); |
|
|
|
}) |
|
|
|
.catch(() => {}); |
|
|
|
}, |
|
|
|
handleDetail({ id }) { |
|
|
|
this.reset(); |
|
|
|
this.mode = 'detail'; |
|
|
|
this.info({ id }).then((response) => { |
|
|
|
this.form = response.data; |
|
|
|
this.open = true; |
|
|
|
this.title = '修改维修记录'; |
|
|
|
}); |
|
|
|
}, |
|
|
|
/** 导出按钮操作 */ |
|
|
|
handleExport() { |
|
|
|
// 处理查询参数 |
|
|
|
let params = { ...this.queryParams }; |
|
|
|
params.pageNo = undefined; |
|
|
|
params.pageSize = undefined; |
|
|
|
this.$modal |
|
|
|
.confirm('是否确认导出所有维修记录?') |
|
|
|
.then(() => { |
|
|
|
this.exportLoading = true; |
|
|
|
return exportEquipmentTypeExcel(params); |
|
|
|
}) |
|
|
|
.then((response) => { |
|
|
|
this.$download.excel(response, '维修记录.xls'); |
|
|
|
this.exportLoading = false; |
|
|
|
}) |
|
|
|
.catch(() => {}); |
|
|
|
}, |
|
|
|
}, |
|
|
|
}; |
|
|
|
</script> |