fix(设备维修):取消手动填报维修工时

This commit is contained in:
chengzhaofeng 2025-03-17 15:09:54 +08:00
parent 78bfcafad4
commit 53c57a4826
3 changed files with 56 additions and 67 deletions

View File

@ -146,6 +146,7 @@ export const tableOption = {
prop: "completedTime",
span: 12,
row: true,
hide: true,
},
{
type: "input",

View File

@ -21,32 +21,15 @@
label-width="150px">
<el-tabs v-model="tabActiveName">
<el-tab-pane label="报修内容" name="main">
<!-- <el-row>-->
<!-- <el-col :span="24">-->
<!-- <el-form-item label="设备识别方式:" prop="isEquipmentCode" label-width="200px">-->
<!-- <el-radio-group v-model="formObj.isEquipmentCode" :disabled="onlyView">-->
<!-- <el-radio-->
<!-- v-for="item in options"-->
<!-- :key="item.value"-->
<!-- :label="item.value"-->
<!-- :disabled="onlyView || isUpdate"-->
<!-- >-->
<!-- {{ item.label }}-->
<!-- </el-radio>-->
<!-- </el-radio-group>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row>
<el-col :span="12">
<el-form-item label="设备编号:" prop="zPmsResrceExtBo">
<div v-if="onlyView">
{{ formObj.zPmsResrceExtBo }}
</div>
<el-input v-else v-model="formObj.zPmsResrceExtBo" maxlength="100"
:disabled="formObj.isEquipmentCode === 'N' || isUpdate">
<el-input v-else v-model="formObj.zPmsResrceExtBo" maxlength="100" :disabled="onlyView || isUpdate">
<i slot="suffix" class="el-input__icon el-icon-copy-document" @click.stop="showDevicesDialog()"
v-if="formObj.isEquipmentCode === 'O' && !isUpdate"></i>
v-if="!onlyView"></i>
</el-input>
</el-form-item>
</el-col>
@ -56,7 +39,7 @@
<div v-if="onlyView">
{{ formObj.location }}
</div>
<el-input v-else v-model="formObj.location" maxlength="250" :readonly="isUpdate"></el-input>
<el-input v-else v-model="formObj.location" maxlength="250" :disabled="onlyView || isUpdate"></el-input>
</el-col>
</el-form-item>
</el-col>
@ -67,7 +50,7 @@
<div v-if="onlyView">
{{ formObj.reportUser }}
</div>
<el-input v-else v-model="formObj.reportUser" :disabled="true" :readonly="!isUpdate"></el-input>
<el-input v-else v-model="formObj.reportUser" :disabled="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
@ -75,8 +58,7 @@
<div v-if="onlyView">
{{ formObj.reportTime }}
</div>
<el-input v-else v-model="formObj.reportTime" maxlength="100" :readonly="!isUpdate"
:disabled="true"></el-input>
<el-input v-else v-model="formObj.reportTime" maxlength="100" :disabled="true"></el-input>
</el-form-item>
</el-col>
</el-row>
@ -86,8 +68,7 @@
<div v-if="onlyView">
{{ formObj.reportSection }}
</div>
<el-input v-else v-model="formObj.reportSection" maxlength="100" :readonly="!isUpdate"
:disabled="true"></el-input>
<el-input v-else v-model="formObj.reportSection" maxlength="100" :disabled="onlyView"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
@ -95,9 +76,9 @@
<div v-if="onlyView">
{{ formObj.faultDescription }}
</div>
<el-input v-else v-model="formObj.faultDescription" :readonly="isUpdate">
<el-input v-else v-model="formObj.faultDescription" :disabled="onlyView">
<i slot="suffix" class="el-input__icon el-icon-copy-document" @click.stop="showFaultDialog()"
v-if="!isUpdate"></i>
v-if="!onlyView"></i>
</el-input>
</el-form-item>
</el-col>
@ -118,7 +99,9 @@
:file-list="uploadList"
:data="uploadData"
:disabled="onlyView">
<el-button size="small" type="primary" @click="beforeUpload(formObj.handle)">点击上传</el-button>
<el-button size="small" type="primary" @click="beforeUpload(formObj.handle)" v-if="!onlyView">
点击上传
</el-button>
</el-upload>
</el-form-item>
</el-col>
@ -131,7 +114,7 @@
<div v-if="onlyView">
{{ formObj.waitReson }}
</div>
<el-input v-else v-model="formObj.waitReson" type="textarea" :disabled="isUpdate"></el-input>
<el-input v-else v-model="formObj.waitReson" type="textarea" :disabled="onlyView"></el-input>
</el-form-item>
</el-col>
</el-row>
@ -237,10 +220,10 @@ export default {
reportUser: '',
reportSection: '',
reportTime: '',
isEquipmentCode: 'O',
repairPerson: '',
contentRemarks: '',
waitReson: '',
isEquipmentCode: 'O'
},
openList: getCategory,
getDevicePage: getDevices,
@ -319,19 +302,10 @@ export default {
}
}
},
watch: {
// 'formObj.isEquipmentCode'(newValue, oldValue) {
// let me = this;
// if (newValue === 'O') {
// me.rule.isEquipmentCode = [{required: true, message: '请选择设备识别方式', trigger: 'change'}];
// } else if (newValue === 'N') {
// me.formObj.zPmsResrceExtBo = ''
// }
// }
},
watch: {},
created() {
this.formObj = Object.assign({}, this.initData)
this.formObj.isEquipmentCode = 'O'
this.formObj.isEquipmentCode = 'O'
this.username = this.userInfo['name'];
this.part_add = this.permissions['part_add']
this.part_del = this.permissions['part_del']
@ -407,7 +381,7 @@ export default {
if (response.data.code !== 0) {
me.$message.error('删除文件失败:' + response.data.msg);
}
}).catch( error => {
}).catch(error => {
hideLoading()
me.$message.error("删除失败:" + error)
})
@ -428,7 +402,7 @@ export default {
beforeUpload(handle) {
if (handle) {
this.uploadData.handle = handle
}else {
} else {
this.uploadData.handle = ''
}
},
@ -482,6 +456,7 @@ export default {
// 新增(開窗)
handleAdd() {
let me = this
me.tabActiveName = 'main'
me.titleText = '报修工单-提报'
me.onlyView = false
me.isAdd = true
@ -521,6 +496,7 @@ export default {
// 查看(開窗)
handleView(row, index) {
let me = this
me.tabActiveName = 'main'
this.titleText = '故障工单-查看'
this.onlyView = true
this.isUpdate = false
@ -560,7 +536,7 @@ export default {
submitForm() {
let me = this
if (!me.isUpdate) {
if (me.formObj.isEquipmentCode === 'O' && !me.formObj.zPmsResrceExtBo) {
if (!me.formObj.zPmsResrceExtBo) {
return me.$message.error('请输入设备编号!')
}
if (!me.formObj.location) {
@ -586,13 +562,13 @@ export default {
let me = this;
showLoading()
addObj({
isEquipmentCode: row.isEquipmentCode,
zPmsResrceExtBo: row.resrce,
location: row.location,
reportUser: row.reportUser,
reportTime: row.reportTime,
reportSection: row.reportSection,
faultDescription: row.faultDescription,
isEquipmentCode: 'O',
site: me.site,
uploadFileHandleList: me.uploadFileHandleList // 上传文件编码
}).then(response => {
@ -607,7 +583,7 @@ export default {
me.getList(this.page)
}).catch((e) => {
hideLoading()
me.$message.error('添加失败:' + e)
console.log(e)
})
},
// 編輯(API)

View File

@ -161,14 +161,17 @@
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="维修耗时:" label-width="35%" prop="consumeTime">
<el-input v-model="formObj.hour" :disabled="executeType || isView" style="width: 30%">
</el-input>
<span>&nbsp;时</span>
<el-input v-model="formObj.minute" :disabled="executeType || isView" style="width: 30%">
</el-input>
<span>&nbsp;分</span>
<el-form-item label="维修开始时间:" label-width="35%" prop="playTime">
<el-input v-model="formObj.playTime" :disabled="true"></el-input>
</el-form-item>
<!-- <el-form-item label="维修耗时:" label-width="35%" prop="consumeTime">-->
<!-- <el-input v-model="formObj.hour" :disabled="executeType || isView" style="width: 30%">-->
<!-- </el-input>-->
<!-- <span>&nbsp;时</span>-->
<!-- <el-input v-model="formObj.minute" :disabled="executeType || isView" style="width: 30%">-->
<!-- </el-input>-->
<!-- <span>&nbsp;分</span>-->
<!-- </el-form-item>-->
</el-col>
<el-col :span="8">
<el-form-item label="结果说明:" label-width="35%" prop="resultExplain">
@ -375,13 +378,7 @@ import {
getReportOrderFile
} from "@/api/mes/pms/repair-failure-reporting";
import {hideLoading, showLoading} from "@/const/loading";
import {
addObj as addConsum,
delObj as delConsum,
getPartPage,
putObj as putConsum
} from "@/api/mes/pms/report-order-consum";
import {addObj as addItem} from "@/api/mes/pms/report-order-item";
import {getPartPage,} from "@/api/mes/pms/report-order-consum";
import {
addObj,
checkFail,
@ -436,6 +433,7 @@ export default {
isView: false,
repairCategories: [],
formObj: {
playTime: '',
repairOrderNumber: '',
resrce: '',
location: '',
@ -1049,6 +1047,7 @@ export default {
},
doUpdate(type) {
let me = this;
const now = me.getDateTime()
// 中止维修
if (type === 'stop') {
if (this.reasonDiscontinuation) {
@ -1085,13 +1084,25 @@ export default {
if (!me.formObj.repairCategory) {
return me.$message.warning('请选择维修类别')
}
if (me.formObj.hour || me.formObj.minute) {
me.formObj.consumeTime = (me.formObj.hour || '0') + ',' + (me.formObj.minute || '0')
} else {
return me.$message.warning('请完整输入维修耗时')
}
// if (me.formObj.hour || me.formObj.minute) {
// me.formObj.consumeTime = (me.formObj.hour || '0') + ',' + (me.formObj.minute || '0')
// } else {
// return me.$message.warning('请完整输入维修耗时')
// }
// 用playTime-当前时间 再格式化为hh,mm的格式
// 创建两个 Date 对象
const date1 = new Date(me.formObj.playTime);
const date2 = new Date(now);
// 计算时间差(毫秒)
const timeDifference = date2 - date1;
// 将时间差转换为秒、分钟、小时
const minutes = Math.floor(timeDifference / 60000);
const hours = Math.floor(minutes / 60);
me.formObj.consumeTime = hours + ',' + minutes
me.formObj.orderStatus = 'TB_CHECK'
me.formObj.completedTime = me.getDateTime()
me.formObj.completedTime = now
// 维修耗材参数加工
if (me.consumableRecord.length > 0) {
// 组装保存参数
@ -1130,7 +1141,8 @@ export default {
me.formObj.pmsReportOrderConsums = me.consumableRecord
}
if (type === 'start') {
this.formObj.startRepair = 'Y'
me.formObj.startRepair = 'Y'
me.formObj.playTime = now
}
// 此处是因为在搜索界面检索出来时,会返回一个zPmsResrceExtBo,但不为BO,需要加上前缀,否则会报错
if (me.formObj.zPmsResrceExtBo && me.formObj.zPmsResrceExtBo.indexOf('ResourceBO:') === -1) {