|
|
@@ -6,19 +6,407 @@ |
|
|
|
--> |
|
|
|
|
|
|
|
<template> |
|
|
|
<div class="SpecialEquipmentPlanConfig"></div> |
|
|
|
<div class="app-container SpecialEquipmentPlanConfig"> |
|
|
|
<!-- 搜索工作栏 --> |
|
|
|
<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" :has-files="false" /> |
|
|
|
</base-dialog> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script> |
|
|
|
import moment from 'moment'; |
|
|
|
import basicPageMixin from '@/mixins/lb/basicPageMixin'; |
|
|
|
import { deleteEqMaintainPlan } from '@/api/equipment/base/maintain/record'; |
|
|
|
import { publicFormatter } from '@/utils/dict'; |
|
|
|
import PlanConfigAdd from './PlanConfig--add.vue'; |
|
|
|
|
|
|
|
export default { |
|
|
|
name: 'SpecialEquipmentPlanConfig', |
|
|
|
components: {}, |
|
|
|
props: {}, |
|
|
|
components: { DialogForm: PlanConfigAdd }, |
|
|
|
mixins: [basicPageMixin], |
|
|
|
data() { |
|
|
|
return {}; |
|
|
|
const t = new Date(); |
|
|
|
const [y, m, d] = [t.getFullYear(), t.getMonth(), t.getDate()]; |
|
|
|
return { |
|
|
|
searchBarKeys: ['equipmentName', 'specialType', 'createTime'], |
|
|
|
tableBtn: [ |
|
|
|
{ |
|
|
|
type: 'detail', |
|
|
|
btnName: '保养记录', |
|
|
|
}, |
|
|
|
this.$auth.hasPermi('equipment:plan-config:update') |
|
|
|
? { |
|
|
|
type: 'edit', |
|
|
|
btnName: '修改', |
|
|
|
} |
|
|
|
: undefined, |
|
|
|
this.$auth.hasPermi('equipment:plan-config:delete') |
|
|
|
? { |
|
|
|
type: 'delete', |
|
|
|
btnName: '删除', |
|
|
|
} |
|
|
|
: undefined, |
|
|
|
].filter((v) => v), |
|
|
|
tableProps: [ |
|
|
|
// { |
|
|
|
// prop: 'createTime', |
|
|
|
// label: '添加时间', |
|
|
|
// fixed: true, |
|
|
|
// width: 180, |
|
|
|
// filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'), |
|
|
|
// }, |
|
|
|
{ prop: 'name', label: '计划名称' }, |
|
|
|
{ prop: 'code', label: '计划编号' }, |
|
|
|
{ |
|
|
|
prop: 'enabled', |
|
|
|
label: '启用状态', |
|
|
|
filter: (val) => ['停用', '启用'][val], |
|
|
|
}, |
|
|
|
{ prop: 'lineName', label: '产线' }, |
|
|
|
{ |
|
|
|
prop: 'equipmentCategory', |
|
|
|
label: '设备大类', |
|
|
|
filter: (val) => |
|
|
|
val != null ? ['-', '安全', '消防', '特种'][val] : '-', |
|
|
|
}, |
|
|
|
{ prop: 'equipmentName', label: '设备名称' }, |
|
|
|
{ width: 144, prop: 'maintainDuration', label: '计划保养用时(h)' }, |
|
|
|
{ width: 144, prop: 'maintenancePeriod', label: '保养频率(天/次)' }, |
|
|
|
{ |
|
|
|
prop: 'maintainType', |
|
|
|
label: '保养类型', |
|
|
|
filter: publicFormatter('maintain_type'), |
|
|
|
}, |
|
|
|
{ prop: 'remark', label: '备注' }, |
|
|
|
], |
|
|
|
searchBarFormConfig: [ |
|
|
|
{ |
|
|
|
type: 'select', |
|
|
|
label: '设备大类', |
|
|
|
selectOptions: [ |
|
|
|
{ id: 1, name: '安全设备' }, |
|
|
|
{ id: 2, name: '消防设备' }, |
|
|
|
{ id: 3, name: '特种设备' }, |
|
|
|
], |
|
|
|
placeholder: '请选择设备大类', |
|
|
|
param: 'specialType', |
|
|
|
}, |
|
|
|
{ |
|
|
|
type: 'input', |
|
|
|
label: '设备名', |
|
|
|
placeholder: '请输入设备名称', |
|
|
|
param: 'equipmentName', |
|
|
|
}, |
|
|
|
{ |
|
|
|
type: 'datePicker', |
|
|
|
label: '时间段', |
|
|
|
dateType: 'daterange', |
|
|
|
format: 'yyyy-MM-dd', |
|
|
|
valueFormat: 'yyyy-MM-dd HH:mm:ss', |
|
|
|
rangeSeparator: '-', |
|
|
|
startPlaceholder: '开始时间', |
|
|
|
endPlaceholder: '结束时间', |
|
|
|
param: 'createTime', |
|
|
|
}, |
|
|
|
{ |
|
|
|
type: 'button', |
|
|
|
btnName: '查询', |
|
|
|
name: 'search', |
|
|
|
color: 'primary', |
|
|
|
}, |
|
|
|
{ |
|
|
|
type: 'separate', |
|
|
|
}, |
|
|
|
{ |
|
|
|
type: this.$auth.hasPermi('equipment:plan-config:create') |
|
|
|
? 'button' |
|
|
|
: '', |
|
|
|
btnName: '新增', |
|
|
|
name: 'add', |
|
|
|
plain: true, |
|
|
|
color: 'success', |
|
|
|
}, |
|
|
|
// { |
|
|
|
// type: this.$auth.hasPermi('base:quality-inspection-type:export') |
|
|
|
// ? 'button' |
|
|
|
// : '', |
|
|
|
// btnName: '导出', |
|
|
|
// name: 'export', |
|
|
|
// color: 'warning', |
|
|
|
// }, |
|
|
|
], |
|
|
|
rows: [ |
|
|
|
[ |
|
|
|
{ |
|
|
|
input: true, |
|
|
|
label: '计划名称', |
|
|
|
prop: 'name', |
|
|
|
rules: [ |
|
|
|
{ required: true, message: '计划名称不能为空', trigger: 'blur' }, |
|
|
|
], |
|
|
|
}, |
|
|
|
{ |
|
|
|
input: true, |
|
|
|
label: '计划编号', |
|
|
|
prop: 'code', |
|
|
|
url: '/base/equipment-maintain-plan/getCode', |
|
|
|
rules: [ |
|
|
|
{ required: true, message: '计划编号不能为空', trigger: 'blur' }, |
|
|
|
], |
|
|
|
}, |
|
|
|
], |
|
|
|
[ |
|
|
|
{ |
|
|
|
select: true, |
|
|
|
label: '设备大类', |
|
|
|
prop: 'equipmentCategory', |
|
|
|
options: [ |
|
|
|
{ value: 1, label: '安全设备' }, |
|
|
|
{ value: 2, label: '消防设备' }, |
|
|
|
{ value: 3, label: '特种设备' }, |
|
|
|
], |
|
|
|
rules: [ |
|
|
|
{ required: true, message: '设备名称不能为空', trigger: 'blur' }, |
|
|
|
], |
|
|
|
}, |
|
|
|
{ |
|
|
|
select: true, |
|
|
|
label: '设备名称', |
|
|
|
prop: 'equipmentId', |
|
|
|
url: '/base/core-equipment/listAll', |
|
|
|
rules: [ |
|
|
|
{ required: true, message: '设备名称不能为空', trigger: 'blur' }, |
|
|
|
], |
|
|
|
}, |
|
|
|
{ |
|
|
|
select: true, |
|
|
|
label: '保养类型', |
|
|
|
prop: 'maintainType', |
|
|
|
options: this.getDictDatas(this.DICT_TYPE.MAINTAIN_TYPE), |
|
|
|
}, |
|
|
|
], |
|
|
|
[ |
|
|
|
{ |
|
|
|
input: true, |
|
|
|
label: '保养时长(h)', |
|
|
|
prop: 'maintainDuration', |
|
|
|
rules: [ |
|
|
|
{ |
|
|
|
type: 'number', |
|
|
|
trigger: 'blur', |
|
|
|
message: '请输入正确的数字', |
|
|
|
transform: (val) => Number(val), |
|
|
|
}, |
|
|
|
], |
|
|
|
}, |
|
|
|
{ |
|
|
|
input: true, |
|
|
|
label: '保养频率(天/次)', |
|
|
|
prop: 'maintenancePeriod', |
|
|
|
rules: [ |
|
|
|
{ |
|
|
|
type: 'number', |
|
|
|
trigger: 'blur', |
|
|
|
message: '请输入正确的数字', |
|
|
|
transform: (val) => Number(val), |
|
|
|
}, |
|
|
|
], |
|
|
|
rules: [ |
|
|
|
{ required: true, message: '保养频率不能为空', trigger: 'blur' }, |
|
|
|
], |
|
|
|
}, |
|
|
|
], |
|
|
|
[ |
|
|
|
{ |
|
|
|
switch: true, |
|
|
|
label: '启用状态', |
|
|
|
prop: 'enabled', |
|
|
|
bind: { |
|
|
|
'active-value': 1, |
|
|
|
'inactive-value': 0, |
|
|
|
}, |
|
|
|
}, |
|
|
|
], |
|
|
|
[{ input: true, label: '备注', prop: 'remark' }], |
|
|
|
], |
|
|
|
// 是否显示弹出层 |
|
|
|
open: false, |
|
|
|
// 查询参数 |
|
|
|
queryParams: { |
|
|
|
pageNo: 1, |
|
|
|
pageSize: 10, |
|
|
|
equipmentName: null, |
|
|
|
createTime: null, |
|
|
|
specialType: null, |
|
|
|
}, |
|
|
|
// 表单参数 |
|
|
|
form: {}, |
|
|
|
basePath: '/base/equipment-maintain-plan', |
|
|
|
}; |
|
|
|
}, |
|
|
|
created() { |
|
|
|
if (this.$route.query) { |
|
|
|
this.queryParams.equipmentId = |
|
|
|
this.$route.query?.equipmentId ?? undefined; |
|
|
|
this.searchBarFormConfig[0].defaultSelect = |
|
|
|
this.$route.query.equipmentName ?? undefined; |
|
|
|
} |
|
|
|
this.getList(); |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
/** 查询列表 */ |
|
|
|
getList() { |
|
|
|
this.loading = true; |
|
|
|
// 执行查询 |
|
|
|
this.recv({ |
|
|
|
...this.queryParams, |
|
|
|
special: true, |
|
|
|
}).then((response) => { |
|
|
|
this.list = response.data.list; |
|
|
|
this.total = response.data.total; |
|
|
|
this.loading = false; |
|
|
|
}); |
|
|
|
}, |
|
|
|
/** 取消按钮 */ |
|
|
|
cancel() { |
|
|
|
this.open = false; |
|
|
|
this.reset(); |
|
|
|
}, |
|
|
|
/** 表单重置 */ |
|
|
|
reset() { |
|
|
|
this.form = { |
|
|
|
code: null, |
|
|
|
name: null, |
|
|
|
equipmentId: null, |
|
|
|
enabled: null, |
|
|
|
maintenancePeriod: null, |
|
|
|
maintainDuration: null, |
|
|
|
maintainType: null, |
|
|
|
remark: null, |
|
|
|
enabled: 1, |
|
|
|
equipmentCategory: null, |
|
|
|
}; |
|
|
|
this.resetForm('form'); |
|
|
|
}, |
|
|
|
/** 搜索按钮操作 */ |
|
|
|
handleQuery() { |
|
|
|
this.queryParams.pageNo = 1; |
|
|
|
this.getList(); |
|
|
|
}, |
|
|
|
/** 重置按钮操作 */ |
|
|
|
resetQuery() { |
|
|
|
this.resetForm('queryForm'); |
|
|
|
this.handleQuery(); |
|
|
|
}, |
|
|
|
/** 新增按钮操作 */ |
|
|
|
handleAdd() { |
|
|
|
this.reset(); |
|
|
|
this.open = true; |
|
|
|
this.title = '添加保养计划'; |
|
|
|
}, |
|
|
|
handleDetail(row) { |
|
|
|
// alert('跳转到 保养记录') |
|
|
|
// console.log(row) |
|
|
|
const queryData = { |
|
|
|
equipmentId: row.equipmentId, |
|
|
|
maintainPlanId: row.id, |
|
|
|
isAdd: 1, |
|
|
|
// relatePlan: row.enabled |
|
|
|
}; |
|
|
|
if (this.queryParams.createTime) { |
|
|
|
queryData.createTime = this.queryParams.createTime; |
|
|
|
} |
|
|
|
this.$router.push({ |
|
|
|
path: '/equipment/base/maintain/record', |
|
|
|
query: queryData, |
|
|
|
}); |
|
|
|
// this.$router.push({ path: '/equipment/base/maintain/record', query: { orderNo: row.orderNo }}) |
|
|
|
}, |
|
|
|
/** 修改按钮操作 */ |
|
|
|
handleUpdate(row) { |
|
|
|
this.reset(); |
|
|
|
const id = row.id; |
|
|
|
this.info({ id }).then((response) => { |
|
|
|
this.form = response.data; |
|
|
|
debugger; |
|
|
|
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 deleteEqMaintainPlan(id); |
|
|
|
}) |
|
|
|
.then(() => { |
|
|
|
this.getList(); |
|
|
|
this.$modal.msgSuccess('删除成功'); |
|
|
|
}) |
|
|
|
.catch(() => {}); |
|
|
|
}, |
|
|
|
}, |
|
|
|
computed: {}, |
|
|
|
methods: {}, |
|
|
|
}; |
|
|
|
</script> |
|
|
|
|
|
|
|