巡检维修需求开发

master
zhangdi 10 months ago
parent 50af8b0554
commit a5e99a9b72
  1. 51
      src/views/businessManagement/inspection/repair.vue
  2. 16
      src/views/businessManagement/inspection/task.vue
  3. 44
      src/views/device/deviceSystem.vue

@ -98,13 +98,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="异常原因" prop="remark" width="100"></el-table-column> <el-table-column label="异常原因" prop="remark" width="100"></el-table-column>
<!-- <el-table-column label="价格" prop="price" v-if="errorForm.repairStatus != 1"></el-table-column>
<el-table-column label="价格" prop="price" v-if="errorForm.repairStatus == 1">
<template slot-scope="scope">
<el-input v-model="scope.row.price"
:disabled="viewType == 'view' || viewType == 'evaluate' || viewType == 'confirm'"></el-input>
</template>
</el-table-column> -->
<el-table-column prop="isRepair" align="center" label="是否维修" <el-table-column prop="isRepair" align="center" label="是否维修"
v-if="(errorForm.repairStatus >= 3) && (errorForm.repairStatus != 101)" width="150"> v-if="(errorForm.repairStatus >= 3) && (errorForm.repairStatus != 101)" width="150">
<template slot-scope="scope"> <template slot-scope="scope">
@ -116,17 +110,16 @@
</el-radio-group> </el-radio-group>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="repairOption" align="center" label="维修方案" width="150"> <el-table-column prop="repairOption" align="center" label="维修方案" width="150" v-if="(viewType != 'view')|| (errorForm.repairStatus != 1 && errorForm.repairStatus != 101)">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input placeholder="请输入维修方案" <el-input placeholder="请输入维修方案"
:disabled="viewType == 'view' || (errorForm.repairStatus != 1 && errorForm.repairStatus != 101)" :disabled="viewType == 'view' || (errorForm.repairStatus != 1 && errorForm.repairStatus != 101)"
v-model="scope.row.repairOption" style="width: 98%;"></el-input> v-model="scope.row.repairOption" style="width: 98%;"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="isNeed" align="center" label="是否需要物料" width="120"> <el-table-column prop="isNeed" align="center" label="是否需要物料" width="120" v-if="(viewType != 'view')|| (errorForm.repairStatus != 1 && errorForm.repairStatus != 101)">
<template slot-scope="scope"> <template slot-scope="scope">
<el-radio-group v-model="scope.row.isNeed" fill="red"> <el-radio-group v-model="scope.row.isNeed" fill="red">
<!-- || errorForm.repairStatus != 1 -->
<el-radio <el-radio
:disabled="viewType == 'view' || (errorForm.repairStatus != 1 && errorForm.repairStatus != 101)" :disabled="viewType == 'view' || (errorForm.repairStatus != 1 && errorForm.repairStatus != 101)"
:label="'1'"></el-radio> :label="'1'"></el-radio>
@ -136,7 +129,7 @@
</el-radio-group> </el-radio-group>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="物料配置" width="120" v-if="errorForm.repairStatus == 1"> <el-table-column align="center" label="物料配置" width="120" v-if="(viewType != 'view')|| (errorForm.repairStatus != 1 && errorForm.repairStatus != 101)">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="setMaterial(scope.row)" :disabled="scope.row.isNeed == 0" <el-button @click="setMaterial(scope.row)" :disabled="scope.row.isNeed == 0"
size="mini">物料配置</el-button> size="mini">物料配置</el-button>
@ -144,7 +137,7 @@
</el-table-column> </el-table-column>
<!-- 维修完成 --> <!-- 维修完成 -->
<el-table-column align="center" label="维修完成图片" width="200" <el-table-column align="center" label="维修完成图片" width="200"
v-if="errorForm.repairStatus == 4 || errorForm.repairStatus == 5 || errorForm.repairStatus == 6 || errorForm.repairStatus == 7 || errorForm.repairStatus == 8"> v-if="(viewType != 'view')|| errorForm.repairStatus == 5 || errorForm.repairStatus == 6 || errorForm.repairStatus == 7 || errorForm.repairStatus == 8">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="errorForm.repairStatus == 4"> <div v-if="errorForm.repairStatus == 4">
<el-upload action="/api/blade-resource/oss/endpoint/put-file" list-type="picture-card" <el-upload action="/api/blade-resource/oss/endpoint/put-file" list-type="picture-card"
@ -164,17 +157,18 @@
</el-form-item> </el-form-item>
<el-form-item label="差旅费"> <el-form-item label="差旅费" v-if="(viewType != 'view')|| (errorForm.repairStatus != 1 && errorForm.repairStatus != 101)">
<el-input placeholder="请输入差旅费" v-model="errorForm.travelExpense" style="width:98%;" <el-input placeholder="请输入差旅费" v-model="errorForm.travelExpense" style="width:98%;"
:disabled="viewType == 'view' || (errorForm.repairStatus != 1 && errorForm.repairStatus != 101)" :disabled="viewType == 'view' || (errorForm.repairStatus != 1 && errorForm.repairStatus != 101)"
@input="actualAmount()"><template slot="append"></template></el-input> ><template slot="append"></template></el-input>
</el-form-item> </el-form-item>
<el-form-item label="处理结果"> <el-form-item label="处理结果" v-if="(viewType != 'view')|| (errorForm.repairStatus != 1 && errorForm.repairStatus != 101)">
<el-input placeholder="请输入处理结果" type="textarea" v-model="errorForm.processingResult" style="width:98%;" <el-input placeholder="请输入处理结果" type="textarea" v-model="errorForm.processingResult" style="width:98%;"
:disabled="viewType == 'view' || (errorForm.repairStatus != 1 && errorForm.repairStatus != 101)"></el-input> :disabled="viewType == 'view' || (errorForm.repairStatus != 1 && errorForm.repairStatus != 101)"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="维修总计" <el-form-item label="维修总计"
v-if="errorForm.repairStatus == 2 || errorForm.repairStatus == 3 || errorForm.repairStatus == 4 || errorForm.repairStatus == 5 || errorForm.repairStatus == 6 || errorForm.repairStatus == 7 || errorForm.repairStatus == 8 || errorForm.repairStatus == 102"> v-if="viewType != 'view' ||(errorForm.repairStatus == 2 || errorForm.repairStatus == 3 || errorForm.repairStatus == 4 || errorForm.repairStatus == 5 || errorForm.repairStatus == 6 || errorForm.repairStatus == 7 || errorForm.repairStatus == 8 || errorForm.repairStatus == 102)">
<el-input placeholder="请输入" v-model="errorForm.actualAmount" style="width:98%;" <el-input placeholder="请输入" v-model="errorForm.actualAmount" style="width:98%;"
:disabled="viewType == 'view' || (errorForm.repairStatus != 2 && errorForm.repairStatus != 102)"><template :disabled="viewType == 'view' || (errorForm.repairStatus != 2 && errorForm.repairStatus != 102)"><template
slot="append"></template></el-input> slot="append"></template></el-input>
@ -212,7 +206,7 @@
</div> </div>
<!-- 客户确认审核效果 --> <!-- 客户确认方案 -->
<div v-show="errorForm.repairStatus == 3 && viewType != 'view'"> <div v-show="errorForm.repairStatus == 3 && viewType != 'view'">
<div style=" <div style="
color: #101010; color: #101010;
@ -236,7 +230,7 @@
</div> </div>
<!-- 维修效果确认 --> <!-- 维修效果确认 -->
<div <div
v-show="(errorForm.repairStatus == 5 || errorForm.repairStatus == 6 || errorForm.repairStatus == 7 || errorForm.repairStatus == 8)"> v-show="viewType != 'view'||( errorForm.repairStatus == 6 || errorForm.repairStatus == 7 || errorForm.repairStatus == 8)">
<div style=" <div style="
color: #101010; color: #101010;
font-size: 20px; font-size: 20px;
@ -651,10 +645,6 @@ export default {
return sums; return sums;
},
//
actualAmount() {
}, },
closeName() { closeName() {
if (this.nameImg == '') { if (this.nameImg == '') {
@ -1349,15 +1339,7 @@ export default {
} }
// this.$confirm('?', '', {
// confirmButtonText: '',
// cancelButtonText: '',
// type: 'warning'
// }).then(() => {
// this.$message.success('')
// this.viewType = ''
// this.dialogerror = false
// })
} }
}) })
}, },
@ -1409,7 +1391,7 @@ export default {
let data = this.checkDeepData(res.data.data.details) let data = this.checkDeepData(res.data.data.details)
if (this.errorForm.repairStatus > 1) { if (this.errorForm.repairStatus > 1) {
data.forEach(item => { data.forEach(item => {
item.completeImgList = JSON.parse(item.completeImgList) item.completeImgList =item.completeImgList==''?[]:JSON.parse(item.completeImgList)
if (item.detailGoodsList.length > 0) { if (item.detailGoodsList.length > 0) {
item.isNeed = '1' item.isNeed = '1'
} else { } else {
@ -1516,7 +1498,10 @@ export default {
getExpandedKeys(table) { getExpandedKeys(table) {
this.expandedKeys = [] this.expandedKeys = []
table.forEach(item => { table.forEach(item => {
this.expandedKeys.push(item.id) if(item.detailGoodsList.length>0){
this.expandedKeys.push(item.id)
}
}) })
} }
} }

@ -23,6 +23,7 @@
</template> </template>
</avue-crud> </avue-crud>
<!--查看 指派 接单 -->
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" :append-to-body="true" width="70%" <el-dialog :title="dialogTitle" :visible.sync="dialogVisible" :append-to-body="true" width="70%"
:close-on-click-modal="false"> :close-on-click-modal="false">
<div style="height: 500px; overflow: auto"> <div style="height: 500px; overflow: auto">
@ -129,22 +130,19 @@
<el-form-item label="使用人签字" prop="signUrl" v-if="addForm.taskStatus >= 3"> <el-form-item label="使用人签字" prop="signUrl" v-if="addForm.taskStatus >= 3">
<el-input placeholder="请输入使用人签字" v-model="addForm.signUrl" disabled style="width: 98%;"></el-input> <el-input placeholder="请输入使用人签字" v-model="addForm.signUrl" disabled style="width: 98%;"></el-input>
</el-form-item> </el-form-item>
<!-- <el-form-item label="巡检结论" prop="remark" v-if="addForm.taskStatus >= 3">
<el-input placeholder="请输入巡检结论" type="textarea" v-model="addForm.inspectionConclusion" disabled
style="width: 98%;"></el-input>
</el-form-item> -->
<el-form-item label="备注" prop="remark" v-if="addForm.taskStatus >= 3"> <el-form-item label="备注" prop="remark" v-if="addForm.taskStatus >= 3">
<el-input placeholder="请输入备注" type="textarea" v-model="addForm.remark" disabled <el-input placeholder="请输入备注" type="textarea" v-model="addForm.remark" disabled
style="width: 98%;"></el-input> style="width: 98%;"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div> <!-- 处理情况 -->
<div v-if="addForm.taskStatus != 0|| dialogType != '查看'">
<div style=" <div style="
color: #101010; color: #101010;
font-size: 20px; font-size: 20px;
font-weight: 550; font-weight: 550;
margin-bottom: 20px; margin-bottom: 20px;
"> " >
处理情况 处理情况
</div> </div>
<el-form-item label="巡检人员" prop="servicemanId"> <el-form-item label="巡检人员" prop="servicemanId">
@ -156,6 +154,7 @@
</el-form-item> </el-form-item>
</div> </div>
<div v-show="addForm.taskStatus == 4"> <!-- --> <div v-show="addForm.taskStatus == 4"> <!-- -->
<div style=" <div style="
color: #101010; color: #101010;
@ -175,7 +174,8 @@
<el-input type="textarea" disabled v-model="addForm.approveRemark" style="width: 98%;"></el-input> <el-input type="textarea" disabled v-model="addForm.approveRemark" style="width: 98%;"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div v-show="addForm.taskStatus == 1"> <!-- 维修人员 接单 -->
<div v-show="addForm.taskStatus == 2||addForm.taskStatus == 3||addForm.taskStatus == 4|| dialogType != '查看'">
<div style=" <div style="
color: #101010; color: #101010;
font-size: 20px; font-size: 20px;
@ -197,6 +197,7 @@
<el-button v-show="dialogType != '查看'" type="primary" @click="handleConfirm"> </el-button> <el-button v-show="dialogType != '查看'" type="primary" @click="handleConfirm"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
<el-dialog class="inspectionDialog" :title="dialogTitle" :visible.sync="dialogInspection" :append-to-body="true" <el-dialog class="inspectionDialog" :title="dialogTitle" :visible.sync="dialogInspection" :append-to-body="true"
width="70%" :close-on-click-modal="false" custom-class="task_dialog"> width="70%" :close-on-click-modal="false" custom-class="task_dialog">
<div style="height: 500px; overflow: auto"> <div style="height: 500px; overflow: auto">
@ -756,6 +757,7 @@ export default {
let firstRoom = firstFloor.details.find(item => item.deptName == this.activeRoom) let firstRoom = firstFloor.details.find(item => item.deptName == this.activeRoom)
this.tableData = firstRoom.details this.tableData = firstRoom.details
this.dialogVisible = true this.dialogVisible = true
this.addForm.appointTime = res.data.data.reservationTime
this.addForm = { this.addForm = {
...res.data.data, ...res.data.data,
inspectionData: res.data.data.details, inspectionData: res.data.data.details,

@ -130,8 +130,8 @@
v-model="addForm.description"></el-input> v-model="addForm.description"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="关联实验室" prop="lab"> <el-form-item label="关联实验室" prop="lab">
<el-cascader :props="labProps" style="width:98%;" v-model="addForm.lab" <el-cascader :props="labProps" style="width:98%;" v-model="addForm.lab" :disabled="viewType == 'view'"
:disabled="viewType == 'view'" ref="labRef"></el-cascader> ref="labRef" clearable></el-cascader>
</el-form-item> </el-form-item>
</div> </div>
@ -614,9 +614,9 @@ export default {
} }
}, },
treeData: [],// treeData: [],//
typeProps:{ typeProps: {
value:'id', value: 'id',
label:'title', label: 'title',
} }
} }
}, },
@ -625,13 +625,13 @@ export default {
}, },
mounted() { mounted() {
this.dataTypes = this.userInfo.dataType this.dataTypes = this.userInfo.dataType
if(this.dataTypes==1){ if (this.dataTypes == 1) {
// //
this.option.column.forEach(item => { this.option.column.forEach(item => {
if (item.prop == 'supplier') { if (item.prop == 'supplier') {
item.hide = false item.hide = false
} }
if (item.prop == 'brand' ){ if (item.prop == 'brand') {
item.hide = false item.hide = false
} }
}) })
@ -672,7 +672,7 @@ export default {
}, },
methods: { methods: {
// //
nodeClick(data){ nodeClick(data) {
// this.treeDeptId = data.id; // this.treeDeptId = data.id;
this.searchForm.limsName = data.title this.searchForm.limsName = data.title
this.page.currentPage = 1; this.page.currentPage = 1;
@ -1045,8 +1045,9 @@ export default {
}) })
}) })
// //
let typeNameList = this.$refs.typeRef.getCheckedNodes()[0].pathNodes
let typeName_ = typeNameList.map(item=>item.label) let typeNameList = this.$refs.typeRef.getCheckedNodes()[0] != null ? this.$refs.typeRef.getCheckedNodes()[0].pathNodes : []
let typeName_ = typeNameList.map(item => item.label)
// //
let query = { let query = {
@ -1054,7 +1055,7 @@ export default {
name: this.addForm.name ? this.addForm.name : null, name: this.addForm.name ? this.addForm.name : null,
model: this.addForm.model ? this.addForm.model : null, model: this.addForm.model ? this.addForm.model : null,
type: this.addForm.type ? this.addForm.type.join(',') : null, type: this.addForm.type ? this.addForm.type.join(',') : null,
typeName:typeName_.join('/'), typeName: typeName_.join('/'),
position: this.addForm.position.node ? this.addForm.position.node : null, position: this.addForm.position.node ? this.addForm.position.node : null,
supplier: this.addForm.supplier ? this.addForm.supplier : null, supplier: this.addForm.supplier ? this.addForm.supplier : null,
produceTime: this.addForm.produceTime ? this.addForm.produceTime.length <= 10 ? this.addForm.produceTime + ' 00:00:00' : this.addForm.produceTime : null, produceTime: this.addForm.produceTime ? this.addForm.produceTime.length <= 10 ? this.addForm.produceTime + ' 00:00:00' : this.addForm.produceTime : null,
@ -1072,14 +1073,17 @@ export default {
description: this.addForm.description description: this.addForm.description
} }
if (this.addForm.lab && this.addForm.lab.length > 0) { if (this.addForm.lab && this.addForm.lab.length > 0) {
let labNameList = this.$refs.labRef.getCheckedNodes()[0].pathNodes // let labNameList = this.$refs.labRef.getCheckedNodes()[0].pathNodes
let labNameList = this.$refs.labRef.getCheckedNodes()[0] != null ? this.$refs.labRef.getCheckedNodes()[0].pathNodes : []
if (labNameList.length > 0) {
query.limsId = this.addForm.lab[0]
query.floorId = this.addForm.lab[1]
query.roomId = this.addForm.lab[2]
query.limsNmae = labNameList[0].label
query.floorName = labNameList[1].label
query.roomName = labNameList[2].label
}
query.limsId = this.addForm.lab[0]
query.floorId = this.addForm.lab[1]
query.roomId = this.addForm.lab[2]
query.limsNmae = labNameList[0].label
query.floorName = labNameList[1].label
query.roomName = labNameList[2].label
} }
if (this.viewType == 'add') { if (this.viewType == 'add') {
@ -1136,7 +1140,7 @@ export default {
supplier: this.searchForm.supplier ? this.searchForm.supplier : '',// supplier: this.searchForm.supplier ? this.searchForm.supplier : '',//
brand: this.searchForm.brand ? this.searchForm.brand : '',// brand: this.searchForm.brand ? this.searchForm.brand : '',//
size: this.page.pageSize, size: this.page.pageSize,
limsName:this.searchForm.limsName limsName: this.searchForm.limsName
} }
if (this.role_id == '1846419477876510721') { if (this.role_id == '1846419477876510721') {

Loading…
Cancel
Save