feat: 设备管理优化

演示数据2.0
chenhc 1 year ago
parent 00ccec1ebf
commit 8a9940ae25

@ -18,3 +18,13 @@ export function deviceRepairApplyDetailDiagnosis(query) {
} }
) )
} }
export function listByIdAndCode(query) {
return axios(
{
url: "/udi/device/repair/apply/listByIdAndCode",
method: "POST",
data: query
}
)
}

@ -128,9 +128,13 @@
>巡检详情 >巡检详情
</el-button> </el-button>
<el-button :disabled="!(scope.row.finishFlag && scope.row.exceptionCount>0&&!scope.row.repairId)" type="text" <el-button v-if="(scope.row.finishFlag && scope.row.exceptionCount>0 && !(scope.row.repairId || scope.row.applyId) )" type="text"
@click="createRepair(scope.row)" @click="createRepair(scope.row)"
>维修 >报修
</el-button>
<el-button v-if="scope.row.applyId" type="text"
@click="applyIdSelect(scope.row)"
>报修单
</el-button> </el-button>
<el-button v-if="scope.row.repairId" type="text" <el-button v-if="scope.row.repairId" type="text"
@click="repairId = scope.row.repairId" @click="repairId = scope.row.repairId"
@ -253,7 +257,7 @@
<el-dialog <el-dialog
:visible="true" :visible="true"
title="创建修单" title="创建修单"
v-if="repairRow" v-if="repairRow"
width="80%" width="80%"
@close="repairRow = null" @close="repairRow = null"
@ -289,46 +293,45 @@
maxlength="300" v-model.trim="repairRow.description"/> maxlength="300" v-model.trim="repairRow.description"/>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="维修方式" :span="3"> <!-- <el-descriptions-item label="维修方式" :span="3">-->
<el-form-item label=" " prop="innerFlag" style="margin-bottom: 0"> <!-- <el-form-item label=" " prop="innerFlag" style="margin-bottom: 0">-->
<el-radio-group v-model="repairRow.innerFlag"> <!-- <el-radio-group v-model="repairRow.innerFlag">-->
<el-radio :label="true">内部维修</el-radio> <!-- <el-radio :label="true">内部维修</el-radio>-->
<el-radio :label="false">外部维修</el-radio> <!-- <el-radio :label="false">外部维修</el-radio>-->
</el-radio-group> <!-- </el-radio-group>-->
</el-form-item> <!-- </el-form-item>-->
</el-descriptions-item> <!-- </el-descriptions-item>-->
<!-- <el-descriptions-item label="维修部门" :span="3">-->
<el-descriptions-item label="维修部门" :span="3"> <!-- <el-form-item label=" " prop="repairDeptCode" style="margin-bottom: 10px">-->
<el-form-item label=" " prop="repairDeptCode" style="margin-bottom: 10px"> <!-- <deptSelect :value.sync="repairRow.repairDeptCode" :maintenance="true" placeholder="请选择报修部门" />-->
<deptSelect :value.sync="repairRow.repairDeptCode" :maintenance="true" placeholder="请选择报修部门" /> <!-- </el-form-item>-->
</el-form-item> <!-- </el-descriptions-item>-->
</el-descriptions-item> <!-- <el-descriptions-item label="维修人姓名" :span="3">-->
<el-descriptions-item label="维修人姓名" :span="3"> <!-- <el-form-item label=" " prop="repairUserName" style="margin-bottom: 10px">-->
<el-form-item label=" " prop="repairUserName" style="margin-bottom: 10px"> <!-- <el-select-->
<el-select <!-- v-model="repairRow.repairUserName"-->
v-model="repairRow.repairUserName" <!-- >-->
> <!-- <el-option-->
<el-option <!-- v-for="(item, index) in userlist"-->
v-for="(item, index) in userlist" <!-- :key="index"-->
:key="index" <!-- :label="item.employeeName"-->
:label="item.employeeName" <!-- :value="item.employeeName"-->
:value="item.employeeName" <!-- />-->
/> <!-- </el-select>-->
</el-select> <!-- </el-form-item>-->
</el-form-item> <!-- </el-descriptions-item>-->
</el-descriptions-item> <el-descriptions-item label="报修人电话" :span="3">
<el-descriptions-item label="维修人电话" :span="3">
<el-form-item label=" " prop="repairUserPhone" style="margin-bottom: 10px"> <el-form-item label=" " prop="repairUserPhone" style="margin-bottom: 10px">
<el-input v-model.trim="repairRow.repairUserPhone" placeholder="请输入维修人电话"/> <el-input v-model.trim="repairRow.repairUserPhone" placeholder="请输入报修人电话"/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="诊断信息" :label-style="{'height': '100px'}" :span="3">
<el-form-item label=" " prop="diagnosisInfo" style="margin-bottom: 10px">
<el-input type="textarea" resize="none" :autosize="{ minRows: 4, maxRows: 4 }" clearable
show-word-limit
maxlength="300" v-model.trim="repairRow.diagnosisInfo"/>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<!-- <el-descriptions-item label="诊断信息" :label-style="{'height': '100px'}" :span="3">-->
<!-- <el-form-item label=" " prop="diagnosisInfo" style="margin-bottom: 10px">-->
<!-- <el-input type="textarea" resize="none" :autosize="{ minRows: 4, maxRows: 4 }" clearable-->
<!-- show-word-limit-->
<!-- maxlength="300" v-model.trim="repairRow.diagnosisInfo"/>-->
<!-- </el-form-item>-->
<!-- </el-descriptions-item>-->
</el-descriptions> </el-descriptions>
</el-form> </el-form>
</el-card> </el-card>
@ -342,6 +345,53 @@
width="80%" width="80%"
> >
<deviceRepairDialog :repairId="repairId"/> <deviceRepairDialog :repairId="repairId"/>
</el-dialog>
<el-dialog
visible
v-if="applyId"
@close="applyId=null"
title="报修单信息"
width="80%"
>
<el-card>
<div slot="header" class="clearfix">
<div class="fl">
{{ `巡检设备--${selectRepairRow.deviceCode}--${selectRepairRow.productName}(${selectRepairRow.ggxh})` }}
</div>
</div>
<el-form :model="selectRepairRow" label-width="auto" disabled>
<el-descriptions border label-style="width:90px" :column="3">
<el-descriptions-item label="名称">{{ selectRepairRow.productName }}</el-descriptions-item>
<el-descriptions-item label="规格">{{ selectRepairRow.ggxh }}</el-descriptions-item>
<el-descriptions-item label="销售标识">{{ selectRepairRow.nameCode }}</el-descriptions-item>
<el-descriptions-item label="注册/备案号">{{ selectRepairRow.zczbhhzbapzbh }}</el-descriptions-item>
<el-descriptions-item label="生产企业">{{ selectRepairRow.manufactory }}</el-descriptions-item>
<el-descriptions-item label="供应商">{{ selectRepairRow.supName }}</el-descriptions-item>
<el-descriptions-item label="批次号">{{ selectRepairRow.batchNo }}</el-descriptions-item>
<el-descriptions-item label="序列号">{{ selectRepairRow.serialNo }}</el-descriptions-item>
<el-descriptions-item label="udi码">{{ selectRepairRow.udi }}</el-descriptions-item>
<el-descriptions-item label="生产日期">{{ selectRepairRow.productionDate }}</el-descriptions-item>
<el-descriptions-item label="过期时间">{{ selectRepairRow.expireDate }}</el-descriptions-item>
<el-descriptions-item label=""></el-descriptions-item>
<el-descriptions-item label="问题描述" :label-style="{'height': '100px'}" :span="3">
<el-form-item label=" " prop="description" style="margin-bottom: 10px">
<el-input type="textarea" resize="none" :autosize="{ minRows: 4, maxRows: 4 }" clearable
show-word-limit
maxlength="300" v-model.trim="selectRepairRow.description"/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="报修人电话" :span="3">
<el-form-item label=" " prop="repairUserPhone" style="margin-bottom: 10px">
<el-input v-model.trim="selectRepairRow.repairUserPhone" placeholder="请输入报修人电话"/>
</el-form-item>
</el-descriptions-item>
</el-descriptions>
</el-form>
</el-card>
</el-dialog> </el-dialog>
<el-dialog <el-dialog
@ -370,6 +420,8 @@ import {deviceCheckDetailItemFinish, deviceCheckDetailItemPage} from "@/api/dev/
import {copyProperties, getLoading} from "@/utils"; import {copyProperties, getLoading} from "@/utils";
import deptDeviceCheckDetail from "@/views/dev/deptDeviceCheckDetail"; import deptDeviceCheckDetail from "@/views/dev/deptDeviceCheckDetail";
import {filterListByDeptCode} from "@/api/system/deptUser"; import {filterListByDeptCode} from "@/api/system/deptUser";
import {deviceRepairApplyAdd} from "@/api/dev/deviceRepairApplyApi";
import {listByIdAndCode} from "@/api/dev/deviceRepairApplyDetailApi.js";
let query = { let query = {
page: 1, page: 1,
@ -436,6 +488,7 @@ export default {
suggestion: [{required: true, message: "巡检意见不能为空", trigger: ["change", "blur"]}], suggestion: [{required: true, message: "巡检意见不能为空", trigger: ["change", "blur"]}],
}, },
repairRow: null, repairRow: null,
selectRepairRow: null,
repairRules: { repairRules: {
innerFlag: [{ innerFlag: [{
required: true, required: true,
@ -461,6 +514,7 @@ export default {
diagnosisInfo: [{required: true, message: "诊断信息不能为空", trigger: ["change", "blur"]}], diagnosisInfo: [{required: true, message: "诊断信息不能为空", trigger: ["change", "blur"]}],
}, },
repairId: null, repairId: null,
applyId: null,
// //
checkTipDialogVisible: false, checkTipDialogVisible: false,
@ -480,13 +534,40 @@ watch: {
} }
}, },
methods: { methods: {
applyIdSelect(row){
this.applyId = row.applyId;
//
let load = getLoading(this)
listByIdAndCode({applyId:row.applyId,deviceCode:row.deviceCode}).then(res => {
load.close()
if (res.code != 20000) {
// this.$message.error(res.message)
return
}
// this.$message.success(res.message)
this.selectRepairRow = res.data
}).catch(() => {
load.close()
})
},
commitRepair() { commitRepair() {
this.$refs.repairForm.validate(b => { this.$refs.repairForm.validate(b => {
if (!b) { if (!b) {
return return
} }
let load = getLoading(this) let load = getLoading(this)
deviceCheckDetailRepair(this.repairRow).then(res => { let pData = {
applyUserPhone:"",
taskId:"",
details: []
}
pData.details.push({
deviceCode: this.repairRow.deviceCode,
description: this.repairRow.description
})
pData.applyUserPhone = this.repairRow.repairUserPhone
pData.taskId = this.repairRow.taskId
deviceRepairApplyAdd(pData).then(res => {
load.close() load.close()
if (res.code != 20000) { if (res.code != 20000) {
this.$message.error(res.message) this.$message.error(res.message)

@ -124,8 +124,8 @@ export default {
this.$message.error(res.message) this.$message.error(res.message)
return return
} }
this.$message.success(res.message)
this.closeAddDevice(res.data); this.closeAddDevice(res.data);
this.$message.success("添加成功")
}).catch(e => { }).catch(e => {
}) })
}, },

@ -92,7 +92,8 @@
{{ `计划详情 ${clickRow ? '——' + clickRow.name : ''}` }} {{ `计划详情 ${clickRow ? '——' + clickRow.name : ''}` }}
</div> </div>
</div> </div>
<el-table :data="detailList" @row-click="rowClick" v-loading="detailLoading" click-row-light <el-table :data="detailList"
v-loading="detailLoading" click-row-light
highlight-current-row> highlight-current-row>
<el-table-column label="序号" width="50" type="index"/> <el-table-column label="序号" width="50" type="index"/>
<el-table-column label="科室名称" prop="deptName"/> <el-table-column label="科室名称" prop="deptName"/>
@ -203,6 +204,7 @@ let itemQuery = {
} }
let planData = { let planData = {
planId: null,
name: null, name: null,
chargeDeptCode: null, chargeDeptCode: null,
startDate: null, startDate: null,

@ -248,6 +248,7 @@ export default {
methods: { methods: {
getDetailList() { getDetailList() {
if (this.detailQuery.planId != null){
this.detailLoading = true this.detailLoading = true
devicePlanDetailPage(this.detailQuery).then(res => { devicePlanDetailPage(this.detailQuery).then(res => {
this.detailLoading = false this.detailLoading = false
@ -262,6 +263,7 @@ export default {
this.detailTotal = 0 this.detailTotal = 0
this.detailLoading = false this.detailLoading = false
}) })
}
}, },
addDevice() { addDevice() {
@ -274,6 +276,7 @@ export default {
closeAddDevice(data) { closeAddDevice(data) {
this.chooseDeviceFlag = false this.chooseDeviceFlag = false
this.planData = data this.planData = data
this.detailQuery.planId = data.planId
this.getDetailList() this.getDetailList()
}, },

Loading…
Cancel
Save