@@ -14,7 +14,8 @@ VUE_APP_TITLE = MES系统 | |||
# 芋道管理系统/开发环境 | |||
# VUE_APP_BASE_API = 'http://100.64.0.26:48082' | |||
# VUE_APP_BASE_API = 'http://10.70.2.2:8080' | |||
VUE_APP_BASE_API = 'http://192.168.0.33:48082' | |||
VUE_APP_BASE_API = 'http://192.168.1.47:48082' | |||
# VUE_APP_BASE_API = 'http://192.168.0.33:48082' | |||
# VUE_APP_BASE_API = 'http://192.168.4.173:48080' | |||
# VUE_APP_BASE_API = 'http://192.168.2.173:48080' | |||
# VUE_APP_BASE_API = 'http://192.168.1.49:48082' | |||
@@ -106,6 +106,8 @@ export default { | |||
case 'detail': | |||
this.handleDetail(data); | |||
break; | |||
default: | |||
this.handleTableActions({data, type}); | |||
} | |||
}, | |||
// 处理搜索栏按钮 | |||
@@ -15,34 +15,55 @@ | |||
<el-row :gutter="20"> | |||
<el-col :span="12"> | |||
<el-form-item | |||
label="计划名称" | |||
label="保养计划名称" | |||
prop="name" | |||
:rules="[ | |||
{ required: true, message: '请输入计划名称', trigger: 'blur' }, | |||
{ required: true, message: '请输入保养计划名称', trigger: 'blur' }, | |||
]"> | |||
<el-input | |||
v-model="form.name" | |||
@change="$emit('update', form)" | |||
:placeholder="`请输入计划名称`" | |||
:placeholder="`请输入保养计划名称`" | |||
:disabled="disabled" /> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="12"> | |||
<el-form-item | |||
label="计划编号" | |||
label="保养计划编号" | |||
prop="code" | |||
:rules="[ | |||
{ required: true, message: '请输入计划编号', trigger: 'blur' }, | |||
{ required: true, message: '请输入保养计划编号', trigger: 'blur' }, | |||
]"> | |||
<el-input | |||
v-model="form.code" | |||
@change="$emit('update', form)" | |||
:placeholder="`请输入计划编号`" | |||
:placeholder="`请输入保养计划编号`" | |||
:disabled="disabled" /> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="12"> | |||
<el-form-item | |||
label="部门" | |||
prop="departmentId" | |||
:rules="[{ required: true, message: '请选择部门', trigger: 'blur' }]"> | |||
<el-select | |||
v-model="form.departmentId" | |||
:placeholder="`请选择部门`" | |||
:disabled="disabled" | |||
clearable | |||
filterable | |||
@change="$emit('update', form)"> | |||
<el-option | |||
v-for="opt in departmentOptions" | |||
:key="opt.value" | |||
:label="opt.label" | |||
:value="opt.value" /> | |||
</el-select> | |||
</el-form-item> | |||
<!-- <el-form-item | |||
label="设备大类" | |||
prop="equipmentCategory" | |||
:rules="[ | |||
@@ -59,10 +80,29 @@ | |||
:label="opt.label" | |||
:value="opt.value" /> | |||
</el-select> | |||
</el-form-item> | |||
</el-form-item> --> | |||
</el-col> | |||
<el-col :span="12"> | |||
<el-form-item | |||
label="产线" | |||
prop="lineId" | |||
:rules="[{ required: true, message: '请选择产线', trigger: 'blur' }]"> | |||
<el-select | |||
v-model="form.lineId" | |||
:placeholder="`请选择产线`" | |||
:disabled="disabled" | |||
clearable | |||
filterable | |||
@change="$emit('update', form)"> | |||
<el-option | |||
v-for="opt in lineOptions" | |||
:key="opt.value" | |||
:label="opt.label" | |||
:value="opt.value" /> | |||
</el-select> | |||
</el-form-item> | |||
<!-- <el-form-item | |||
label="设备" | |||
prop="equipmentId" | |||
:rules="[{ required: true, message: '请选择设备', trigger: 'blur' }]"> | |||
@@ -77,9 +117,52 @@ | |||
:label="opt.label" | |||
:value="opt.value" /> | |||
</el-select> | |||
</el-form-item> --> | |||
</el-col> | |||
<el-col :span="12"> | |||
<el-form-item | |||
label="保养频率(天/次)" | |||
prop="maintenancePeriod" | |||
:rules="[ | |||
{ | |||
type: 'number', | |||
message: '请输入正确的数字', | |||
trigger: 'blur', | |||
transform: (val) => Number(val), | |||
}, | |||
{ required: true, message: '保养频率不能为空', trigger: 'blur' }, | |||
]"> | |||
<el-input | |||
v-model="form.maintenancePeriod" | |||
@change="$emit('update', form)" | |||
:placeholder="`请输入保养频率`" | |||
:disabled="disabled" /> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="12"> | |||
<el-form-item | |||
label="确认时限(h)" | |||
prop="confirmTimeLimit" | |||
:rules="[ | |||
{ required: true, message: '请输入确认时限', trigger: 'blur' }, | |||
{ | |||
type: 'number', | |||
message: '请输入正确的数字', | |||
trigger: 'blur', | |||
transform: (val) => Number(val), | |||
}, | |||
]"> | |||
<el-input | |||
v-model="form.confirmTimeLimit" | |||
@change="$emit('update', form)" | |||
:placeholder="`请输入确认时限(小时)`" | |||
:disabled="disabled" /> | |||
</el-form-item> | |||
</el-col> | |||
<!-- <el-col :span="12"> | |||
<el-form-item label="保养类型" prop="maintainType"> | |||
<el-select | |||
v-model="form.maintainType" | |||
@@ -93,7 +176,8 @@ | |||
:value="+opt.value" /> | |||
</el-select> | |||
</el-form-item> | |||
</el-col> | |||
</el-col> --> | |||
<el-col :span="12"> | |||
<el-form-item | |||
label="保养时长(h)" | |||
@@ -109,30 +193,47 @@ | |||
<el-input | |||
v-model="form.maintainDuration" | |||
@change="$emit('update', form)" | |||
:placeholder="`请输入保养时长`" | |||
:placeholder="`请输入保养时长(小时)`" | |||
:disabled="disabled" /> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="12"> | |||
<el-form-item label="首次保养时间" prop="firstMaintenanceTime"> | |||
<el-date-picker | |||
v-model="form.firstMaintenanceTime" | |||
type="datetime" | |||
:disabled="edit" | |||
:placeholder="`请选择首次保养时间`" | |||
@change="$emit('update', form)" | |||
value-format="timestamp"></el-date-picker> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="12"> | |||
<el-form-item | |||
label="保养频率(天/次)" | |||
prop="maintenancePeriod" | |||
label="计划保养人员" | |||
prop="maintainer" | |||
:rules="[ | |||
{ | |||
type: 'number', | |||
message: '请输入正确的数字', | |||
trigger: 'blur', | |||
transform: (val) => Number(val), | |||
}, | |||
{ required: true, message: '保养频率不能为空', trigger: 'blur' }, | |||
{ required: true, message: '请选择计划保养人员', trigger: 'blur' }, | |||
]"> | |||
<el-input | |||
v-model="form.maintenancePeriod" | |||
@change="$emit('update', form)" | |||
:placeholder="`请输入保养频率`" | |||
:disabled="disabled" /> | |||
<el-select | |||
v-model="form.maintainer" | |||
:placeholder="`请选择计划保养人员`" | |||
:disabled="disabled" | |||
multiple | |||
clearable | |||
filterable | |||
@change="$emit('update', form)"> | |||
<el-option | |||
v-for="opt in maintainerOptions" | |||
:key="opt.value" | |||
:label="opt.label" | |||
:value="opt.value" /> | |||
</el-select> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="24"> | |||
<el-form-item label="备注" prop="remark"> | |||
<el-input | |||
@@ -168,6 +269,10 @@ export default { | |||
type: Boolean, | |||
default: false, | |||
}, | |||
edit: { | |||
type: Boolean, | |||
default: false, | |||
}, | |||
hasFiles: { | |||
type: Boolean | Array, | |||
default: false, | |||
@@ -185,20 +290,21 @@ export default { | |||
return { | |||
form: {}, | |||
formLoading: true, | |||
dataLoaded: false, | |||
equipmentList: [], | |||
equipmentOptions: [], | |||
equipmentTypeOptions: [ | |||
{ label: '安全设备', value: 1 }, | |||
{ label: '消防设备', value: 2 }, | |||
{ label: '特种设备', value: 3 }, | |||
], | |||
lineList: [], | |||
maintainerList: [], | |||
departmentList: [] | |||
}; | |||
}, | |||
watch: { | |||
dataForm: { | |||
handler(val) { | |||
this.form = JSON.parse(JSON.stringify(val)); | |||
if (typeof val.maintainer == 'string') this.form.maintainer = val.maintainer.split(',') | |||
if (this.form.equipmentCategory != null) { | |||
setTimeout(() => { | |||
this.equipmentOptions = this.equipmentList | |||
@@ -224,8 +330,33 @@ export default { | |||
}, | |||
}, | |||
mounted() { | |||
this.getEquipmentList(); | |||
this.getCode('/base/equipment-maintain-plan/getCode'); | |||
!this.edit && this.getCode('/base/equipment-maintain-plan/getCode'); | |||
this.getList('maintainer'); | |||
this.getList('department'); | |||
this.getList('line'); | |||
}, | |||
computed: { | |||
departmentOptions() { | |||
return (this.departmentList || []).map((item) => ({ | |||
id: item.id, | |||
label: item.name, | |||
value: item.id, | |||
})); | |||
}, | |||
lineOptions() { | |||
return (this.lineList || []).map((item) => ({ | |||
id: item.id, | |||
label: item.name, | |||
value: item.id, | |||
})); | |||
}, | |||
maintainerOptions() { | |||
return (this.maintainerList || []).map((item) => ({ | |||
id: item.id, | |||
label: item.name, | |||
value: item.name, | |||
})); | |||
}, | |||
}, | |||
methods: { | |||
/** 模拟透传 ref */ | |||
@@ -253,6 +384,29 @@ export default { | |||
})); | |||
this.formLoading = false; | |||
}, | |||
async getList(source = 'department') { | |||
const urls = [ | |||
'/base/core-production-line/listAll', | |||
'/base/core-department/listAll', | |||
'/base/core-worker/listAll', | |||
]; | |||
let res; | |||
switch (source) { | |||
case 'department': | |||
res = await this.$axios(urls[1]); | |||
this.departmentList = res.data || []; | |||
break; | |||
case 'maintainer': | |||
res = await this.$axios(urls[2]); | |||
this.maintainerList = res.data || []; | |||
break; | |||
case 'line': | |||
res = await this.$axios(urls[0]); | |||
this.lineList = res.data || []; | |||
break; | |||
} | |||
this.formLoading = false; | |||
}, | |||
// handlers | |||
handleEqTypeChange(type) { | |||
@@ -24,7 +24,7 @@ | |||
v-if="tableBtn.length" | |||
slot="handleBtn" | |||
label="操作" | |||
:width="120" | |||
:width="180" | |||
:method-list="tableBtn" | |||
@clickBtn="handleTableBtnClick" /> | |||
</base-table> | |||
@@ -44,7 +44,7 @@ | |||
@close="cancel" | |||
@cancel="cancel" | |||
@confirm="submitForm"> | |||
<DialogForm v-if="open" ref="form" v-model="form" :has-files="false" /> | |||
<DialogForm v-if="open" ref="form" :edit="form.id != null" v-model="form" :has-files="false" /> | |||
</base-dialog> | |||
</div> | |||
</template> | |||
@@ -64,11 +64,15 @@ export default { | |||
const t = new Date(); | |||
const [y, m, d] = [t.getFullYear(), t.getMonth(), t.getDate()]; | |||
return { | |||
searchBarKeys: ['equipmentName', 'specialType', 'createTime'], | |||
searchBarKeys: ['planName'], // 'specialType', 'equipmentName', 'createTime'], | |||
tableBtn: [ | |||
// { | |||
// type: 'detail', | |||
// btnName: '保养记录', | |||
// }, | |||
{ | |||
type: 'detail', | |||
btnName: '保养记录', | |||
type: 'addContent', | |||
btnName: '添加内容', | |||
}, | |||
this.$auth.hasPermi('equipment:plan-config:update') | |||
? { | |||
@@ -84,6 +88,23 @@ export default { | |||
: undefined, | |||
].filter((v) => v), | |||
tableProps: [ | |||
{ prop: 'name', label: '计划名称' }, | |||
{ prop: 'departmentName', label: '部门' }, | |||
{ width: 144, prop: 'lineName', label: '产线名' }, | |||
{ width: 144, prop: 'maintenancePeriod', label: '保养频率(天/次)' }, | |||
{ width: 144, prop: 'firstMaintenanceTime', label: '首次保养时间' }, | |||
{ width: 144, prop: 'maintainDuration', label: '保养时长' }, | |||
{ prop: 'maintainer', label: '计划保养人员' }, | |||
{ | |||
width: 144, | |||
prop: 'confirmTimeLimit', | |||
label: '确认时限', | |||
filter: (val) => | |||
val != null && val > 24 | |||
? `${(val - (val % 24)) / 24}天${val % 24}小时` | |||
: `${val}小时`, | |||
}, | |||
{ prop: 'remark', label: '备注' }, | |||
// { | |||
// prop: 'createTime', | |||
// label: '添加时间', | |||
@@ -91,59 +112,64 @@ export default { | |||
// 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: '备注' }, | |||
// { prop: 'code', label: '计划编号' }, | |||
// { | |||
// prop: 'enabled', | |||
// label: '启用状态', | |||
// filter: (val) => ['停用', '启用'][val], | |||
// }, | |||
// { | |||
// prop: 'equipmentCategory', | |||
// label: '设备大类', | |||
// filter: (val) => | |||
// val != null ? ['-', '安全', '消防', '特种'][val] : '-', | |||
// }, | |||
// { prop: 'equipmentName', label: '设备名称' }, | |||
// { width: 144, prop: 'maintainDuration', label: '计划保养用时(h)' }, | |||
// { | |||
// prop: 'maintainType', | |||
// label: '保养类型', | |||
// filter: publicFormatter('maintain_type'), | |||
// }, | |||
], | |||
searchBarFormConfig: [ | |||
{ | |||
type: 'select', | |||
label: '设备大类', | |||
selectOptions: [ | |||
{ id: 1, name: '安全设备' }, | |||
{ id: 2, name: '消防设备' }, | |||
{ id: 3, name: '特种设备' }, | |||
], | |||
placeholder: '请选择设备大类', | |||
param: 'specialType', | |||
}, | |||
// { | |||
// 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', | |||
label: '保养计划名称', | |||
placeholder: '请输入保养计划名称', | |||
param: 'planName', | |||
// selectOptions: [ | |||
// {name: 1, id: 1} | |||
// ] | |||
}, | |||
// { | |||
// 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: '查询', | |||
@@ -271,9 +297,10 @@ export default { | |||
queryParams: { | |||
pageNo: 1, | |||
pageSize: 10, | |||
equipmentName: null, | |||
createTime: null, | |||
// equipmentName: null, | |||
// createTime: null, | |||
specialType: null, | |||
planName: null, | |||
}, | |||
// 表单参数 | |||
form: {}, | |||
@@ -311,19 +338,33 @@ export default { | |||
/** 表单重置 */ | |||
reset() { | |||
this.form = { | |||
id: null, | |||
code: null, | |||
name: null, | |||
equipmentId: null, | |||
enabled: null, | |||
// equipmentId: null, | |||
maintainer: null, | |||
lineId: null, | |||
departmentId: null, | |||
// enabled: null, | |||
maintenancePeriod: null, | |||
maintainDuration: null, | |||
maintainType: null, | |||
remark: null, | |||
enabled: 1, | |||
equipmentCategory: null, | |||
confirmTimeLimit: null, | |||
firstMaintenanceTime: null, | |||
speical: false, | |||
// equipmentCategory: null, | |||
}; | |||
this.resetForm('form'); | |||
}, | |||
handleTableActions({data, type}) { | |||
switch(type) { | |||
case 'addContent': | |||
// 添加内容 | |||
alert('添加内容...') | |||
break; | |||
} | |||
}, | |||
/** 搜索按钮操作 */ | |||
handleQuery() { | |||
this.queryParams.pageNo = 1; | |||
@@ -364,7 +405,6 @@ export default { | |||
const id = row.id; | |||
this.info({ id }).then((response) => { | |||
this.form = response.data; | |||
debugger; | |||
this.open = true; | |||
this.title = '修改保养计划'; | |||
}); | |||
@@ -377,7 +417,10 @@ export default { | |||
} | |||
// 修改的提交 | |||
if (this.form.id != null) { | |||
this.put(this.form).then((response) => { | |||
this.put({ | |||
...this.form, | |||
maintainer: this.form.maintainer.join(','), | |||
}).then((response) => { | |||
this.$modal.msgSuccess('修改成功'); | |||
this.open = false; | |||
this.getList(); | |||
@@ -385,7 +428,11 @@ export default { | |||
return; | |||
} | |||
// 添加的提交 | |||
this.post(this.form).then((response) => { | |||
this.post({ | |||
...this.form, | |||
special: true, | |||
maintainer: this.form.maintainer.join(','), | |||
}).then((response) => { | |||
this.$modal.msgSuccess('新增成功'); | |||
this.open = false; | |||
this.getList(); | |||