feat: 设备管理优化

dev_ksck2.0
chenhc 1 year ago
parent 2ca04c2165
commit 00ccec1ebf

@ -19,11 +19,12 @@ export function deviceRepairInfo(repairId) {
) )
} }
export function finishRepairByUser(repairId) { export function finishRepairByUser(query) {
return axios( return axios(
{ {
url: `/udi/device/repair/finishByUser/${repairId}`, url: `/udi/device/repair/finishByUser/repairId`,
method: "GET" method: "POST",
data: query
} }
) )
} }

@ -3,7 +3,7 @@ import {filterList} from "@/api/system/invWarehouse";
export default { export default {
name: 'deptSelect', name: 'deptSelect',
props: { value: { required: true }, notCode: null,maintenance: null, props: { value: { required: true }, notCode: null,maintenance: null,disabled: false,
}, },
data() { data() {
return { return {

@ -1,6 +1,6 @@
<template> <template>
<el-select v-model="val" class="width-full" placeholder="请选择" filterable clearable> <el-select v-model="val" class="width-full" placeholder="请选择" filterable clearable :disabled="disabled">
<el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.code"/> <el-option v-for="item in list" :key="item.id" :label="item.name" :value="item.code"/>
</el-select> </el-select>
</template> </template>

@ -39,6 +39,9 @@
<el-descriptions-item label="诊断信息" :label-style="{'height': '100px'}" :span="4"> <el-descriptions-item label="诊断信息" :label-style="{'height': '100px'}" :span="4">
{{ info.diagnosisInfo }} {{ info.diagnosisInfo }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="维修内容" :label-style="{'height': '100px'}" :span="4" >
<el-input type="textarea" resize="none" :autosize="{ minRows: 4, maxRows: 4 }" clearable v-model.trim="info.repairDescription" :disabled="info.finishFlag"></el-input>
</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
</template> </template>

@ -114,18 +114,21 @@
<el-table-column label="供应商" width="100" prop="supName"/> <el-table-column label="供应商" width="100" prop="supName"/>
<el-table-column label="UDI码" width="150" prop="udi"/> <el-table-column label="UDI码" width="150" prop="udi"/>
<el-table-column label="注册/备案号" width="150" prop="zczbhhzbapzbh"/> <el-table-column label="注册/备案号" width="150" prop="zczbhhzbapzbh"/>
<el-table-column label="操作" width="160" fixed="right"> <el-table-column label="操作" width="200" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <el-button type="text" @click="openItem(scope.row)"--> <!-- <el-button type="text" @click="openItem(scope.row)"-->
<!-- >开始巡检--> <!-- >开始巡检-->
<!-- </el-button>--> <!-- </el-button>-->
<el-button type="text" @click="startCheck(scope.row)" <el-button type="text" @click="startCheck(scope.row)" v-if="!scope.row.finishFlag"
>开始巡检 >开始巡检
</el-button> </el-button>
<el-button type="text" @click="startCheck(scope.row)" v-if="scope.row.finishFlag"
>巡检详情
</el-button>
<el-button :disabled="!(scope.row.finishFlag&&scope.row.exceptionCount>0&&!scope.row.repairId)" type="text" <el-button :disabled="!(scope.row.finishFlag && scope.row.exceptionCount>0&&!scope.row.repairId)" type="text"
@click="createRepair(scope.row)" @click="createRepair(scope.row)"
>维修 >维修
</el-button> </el-button>
@ -294,9 +297,24 @@
</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-form-item label=" " prop="repairDeptCode" style="margin-bottom: 10px">
<deptSelect :value.sync="repairRow.repairDeptCode" :maintenance="true" placeholder="请选择报修部门" />
</el-form-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-input v-model.trim="repairRow.repairUserName" placeholder="请输入维修人姓名"/> <el-select
v-model="repairRow.repairUserName"
>
<el-option
v-for="(item, index) in userlist"
:key="index"
:label="item.employeeName"
:value="item.employeeName"
/>
</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">
@ -351,6 +369,7 @@ import {deviceCheckDetailPage, deviceCheckDetailRepair} from "@/api/dev/deviceCh
import {deviceCheckDetailItemFinish, deviceCheckDetailItemPage} from "@/api/dev/deviceCheckDetailItemApi"; import {deviceCheckDetailItemFinish, deviceCheckDetailItemPage} from "@/api/dev/deviceCheckDetailItemApi";
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";
let query = { let query = {
page: 1, page: 1,
@ -380,6 +399,7 @@ let repairData = {
innerFlag: true, innerFlag: true,
repairUserName: null, repairUserName: null,
repairUserPhone: null, repairUserPhone: null,
repairDeptCode: null,
} }
export default { export default {
@ -393,6 +413,7 @@ export default {
clickRow: null, clickRow: null,
showSearch: true, showSearch: true,
loading: false, loading: false,
userlist:[],
total: .0, total: .0,
list: [], list: [],
query: {...query}, query: {...query},
@ -431,6 +452,11 @@ export default {
message: "维修人电话不能为空", message: "维修人电话不能为空",
trigger: ["change", "blur"] trigger: ["change", "blur"]
}], }],
repairDeptCode: [{
required: true,
message: "维修部门不能为空",
trigger: ["change", "blur"]
}],
description: [{required: true, message: "问题描述不能为空", trigger: ["change", "blur"]}], description: [{required: true, message: "问题描述不能为空", trigger: ["change", "blur"]}],
diagnosisInfo: [{required: true, message: "诊断信息不能为空", trigger: ["change", "blur"]}], diagnosisInfo: [{required: true, message: "诊断信息不能为空", trigger: ["change", "blur"]}],
}, },
@ -444,6 +470,15 @@ export default {
created() { created() {
this.getList() this.getList()
}, },
watch: {
'repairRow.repairDeptCode': {
handler (newV, oldV) {
this.getUerList()
},
// deep: true,
// immediate: true,
}
},
methods: { methods: {
commitRepair() { commitRepair() {
this.$refs.repairForm.validate(b => { this.$refs.repairForm.validate(b => {
@ -581,6 +616,23 @@ export default {
this.total = 0 this.total = 0
this.loading = false this.loading = false
}) })
},
getUerList() {
if (this.repairRow.repairDeptCode != null){
let userQuery = {
deptCode: this.repairRow.repairDeptCode,
}
filterListByDeptCode(userQuery).then((response) => {
// this.loading = false;
this.userlist = response.data.list || [];
// this.userTotal = response.data.total;
})
.catch(() => {
// this.loading = false;
this.userlist = [];
// this.userTotal = 0;
});
}
} }
} }
} }

@ -6,11 +6,11 @@
<!-- {{ `巡检记录表&#45;&#45;${itemRow.itemName}[${itemRow.itemCode}]` }}--> <!-- {{ `巡检记录表&#45;&#45;${itemRow.itemName}[${itemRow.itemCode}]` }}-->
<!-- </div>--> <!-- </div>-->
<div class="fr"> <div class="fr">
<el-button @click="itemRow = null">取消</el-button> <el-button @click="itemRow = null" v-if="!itemRow.finishFlag" >取消</el-button>
<el-button type="primary" @click="commitItemCheck"></el-button> <el-button type="primary" @click="commitItemCheck" v-if="!itemRow.finishFlag" >提交</el-button>
</div> </div>
</div> </div>
<el-form :model="itemRow" :rules="itemRules" ref="itemForm" label-width="auto"> <el-form :model="itemRow" :rules="itemRules" ref="itemForm" label-width="auto" :disabled="itemRow.finishFlag">
<el-descriptions border :column="2" label-style="width:100px"> <el-descriptions border :column="2" label-style="width:100px">
<el-descriptions-item label="所属部门"> <el-descriptions-item label="所属部门">
{{ itemRow.deptName }} {{ itemRow.deptName }}

@ -1,12 +1,11 @@
<template> <template>
<div> <div>
<el-card> <el-card>
<el-form :model="query" v-if="showSearch" label-width="auto"> <el-form :model="query" v-if="showSearch" label-width="auto">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="所属科室"> <el-form-item label="所属科室">
<deptSelect :value.sync="query.deptCode"/> <deptSelect :value.sync="query.deptCode" clearable/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">

@ -4,11 +4,11 @@
<el-form :model="query" v-if="showSearch" label-width="auto"> <el-form :model="query" v-if="showSearch" label-width="auto">
<el-row :gutter="20"> <el-row :gutter="20">
<!-- <el-col :span="6">--> <el-col :span="6">
<!-- <el-form-item label="所属科室" >--> <el-form-item label="所属科室" >
<!-- <deptSelect :value.sync="query.deptCode" />--> <deptSelect :value.sync="query.deptCode" :disabled="disabled"/>
<!-- </el-form-item>--> </el-form-item>
<!-- </el-col>--> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="设备编码"> <el-form-item label="设备编码">
<el-input v-model="query.deviceCode" clearable/> <el-input v-model="query.deviceCode" clearable/>
@ -164,4 +164,4 @@
</template> </template>
<script src="./js/deviceInfoFull.js"/> <script src="./js/deviceInfoSelf.js"/>

@ -76,6 +76,7 @@
<el-table-column label="操作" fixed="right" width="80"> <el-table-column label="操作" fixed="right" width="80">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" v-if="!scope.row.finishFlag" @click="finishFuncFlag(scope.row)"></el-button> <el-button type="text" v-if="!scope.row.finishFlag" @click="finishFuncFlag(scope.row)"></el-button>
<el-button type="text" v-if="scope.row.finishFlag" @click="finishFuncFlag(scope.row)"></el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -101,7 +102,7 @@
{{ `设备号:${currentRow.deviceCode}` }} {{ `设备号:${currentRow.deviceCode}` }}
</div> </div>
<div class="fr"> <div class="fr">
<el-button type="primary" @click="finishFunc" >完成维修</el-button> <el-button type="primary" @click="finishFunc" v-if="!currentRow.finishFlag" >完成维修</el-button>
</div> </div>
</div> </div>
<el-descriptions border label-style="width:90px" :column="4"> <el-descriptions border label-style="width:90px" :column="4">
@ -135,6 +136,9 @@
<el-descriptions-item label="诊断信息" :label-style="{'height': '100px'}" :span="4"> <el-descriptions-item label="诊断信息" :label-style="{'height': '100px'}" :span="4">
{{ currentRow.diagnosisInfo }} {{ currentRow.diagnosisInfo }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="维修内容" :label-style="{'height': '100px'}" :span="4" >
<el-input type="textarea" resize="none" :autosize="{ minRows: 4, maxRows: 4 }" clearable v-model.trim="currentRow.repairDescription" :disabled="currentRow.finishFlag"></el-input>
</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
</el-dialog> </el-dialog>

@ -118,7 +118,7 @@
<el-table-column label="生产企业" width="180" prop="manufactory"/> <el-table-column label="生产企业" width="180" prop="manufactory"/>
<el-table-column label="操作" fixed="right" width="100"> <el-table-column label="操作" fixed="right" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" v-if="scope.row.repairId" @click="repairId = scope.row.repairId"> <el-button type="text" :disabled="!scope.row.repairId" @click="repairId = scope.row.repairId">查看维修
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>

@ -36,6 +36,7 @@ export default {
props: {isChoose: {required: false, default: false, type: Boolean}, chooseFunc: {required: false, type: Function}}, props: {isChoose: {required: false, default: false, type: Boolean}, chooseFunc: {required: false, type: Function}},
data() { data() {
return { return {
disabled:false,
deviceInfoFlag: false, deviceInfoFlag: false,
locDeptCode: null, locDeptCode: null,
clickRow: null, clickRow: null,
@ -75,6 +76,7 @@ export default {
this.$message.success(res.message) this.$message.success(res.message)
}) })
// this.deviceInfoFlag = false; // this.deviceInfoFlag = false;
}, },
downloadBase64Image, downloadBase64Image,
genQR(row) { genQR(row) {

@ -37,6 +37,7 @@ export default {
props: {isChoose: {required: false, default: false, type: Boolean}, chooseFunc: {required: false, type: Function}}, props: {isChoose: {required: false, default: false, type: Boolean}, chooseFunc: {required: false, type: Function}},
data() { data() {
return { return {
disabled:true,
deviceInfoFlag: false, deviceInfoFlag: false,
locDeptCode: null, locDeptCode: null,
clickRow: null, clickRow: null,

@ -41,12 +41,12 @@ export default {
}, },
finishFunc() { finishFunc() {
let row = this.currentRow let row = this.currentRow
this.$confirm("确定完成维修吗", "提示", { // this.$confirm("确定完成维修吗", "提示", {
confirmButtonText: '完成维修', // confirmButtonText: '完成维修',
cancelButtonText: "取消" // cancelButtonText: "取消"
}).then((r) => { // }).then((r) => {
let loading = getLoading(this); let loading = getLoading(this);
finishRepairByUser(row.id).then(res => { finishRepairByUser(row).then(res => {
loading.close() loading.close()
if (res.code != 20000) { if (res.code != 20000) {
this.$message.error(res.message) this.$message.error(res.message)
@ -57,7 +57,7 @@ export default {
}).catch(e=>{ }).catch(e=>{
loading.close() loading.close()
}) })
}) // })
}, },
search() { search() {
this.query.page = 1 this.query.page = 1

Loading…
Cancel
Save