报修单 维保设备清单代码提交
parent
ab781e1742
commit
0f48ec7628
@ -0,0 +1,40 @@
|
||||
import axios from "../../utils/request";
|
||||
|
||||
|
||||
export function getprojectSetList(params) {
|
||||
return axios({
|
||||
url: "/udiwms/inv/device/project/set/filter",
|
||||
method: "get",
|
||||
params: params
|
||||
});
|
||||
}
|
||||
|
||||
export function insertDevprojectSet(params) {
|
||||
return axios({
|
||||
url: "/udiwms/inv/device/project/set/insertDevprojectSet",
|
||||
method: "post",
|
||||
data: params
|
||||
});
|
||||
}
|
||||
|
||||
export function updateDevprojectSet(params) {
|
||||
return axios({
|
||||
url: "/udiwms/inv/device/project/set/updateDevprojectSet",
|
||||
method: "post",
|
||||
data: params
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
export function deleteDevprojectSet(params) {
|
||||
return axios({
|
||||
url: "/udiwms/inv/device/project/set/deleteDevprojectSet",
|
||||
method: "get",
|
||||
params: params
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,331 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="el-card">
|
||||
<el-form :model="filterQuery" class="query-form" label-width="100px" v-show="showSearch">
|
||||
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item class="query-form-item" label="项目编码:">
|
||||
<el-input v-model="filterQuery.code" style="width: 90%" placeholder="请输入项目编码"
|
||||
clearable="true"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item class="query-form-item" label="项目内容:">
|
||||
<el-input v-model="filterQuery.content" style="width: 90%" placeholder="请输入项目内容"
|
||||
clearable="true"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item class="query-form-item" label="项目类型:">
|
||||
<el-select v-model="filterQuery.type" style="width: 90%" placeholder="请选择项目类型" clearable="true"
|
||||
>
|
||||
<el-option label="巡检" :value="1"></el-option>
|
||||
<el-option label="养护" :value="2"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item class="query-form-item" label="创建时间:">
|
||||
<el-date-picker
|
||||
:picker-options="pickerOptions"
|
||||
v-model="actDateRange"
|
||||
type="daterange"
|
||||
format="yyyy 年 MM 月 dd 日"
|
||||
value-format="yyyy-MM-dd"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
style="width: 90%"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div class="top-right-btn">
|
||||
<el-button-group style="margin-left: 10px;display:flex;">
|
||||
<el-button icon="el-icon-view" type="primary" @click="hideSearch">显示/隐藏搜索栏</el-button>
|
||||
<el-button type="primary" icon="el-icon-refresh" @click="onReset">重置</el-button>
|
||||
<el-button type="primary" icon="el-icon-search" @click="onSubmit">查询</el-button>
|
||||
<el-button type="primary" icon="el-icon-plus" @click="addRepairOrder">新增维保设备清单</el-button>
|
||||
</el-button-group>
|
||||
</div>
|
||||
|
||||
<el-divider style="margin: 15px"></el-divider>
|
||||
|
||||
<el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row
|
||||
border>
|
||||
<el-table-column label="序号" type="index"></el-table-column>
|
||||
<el-table-column label="项目编码" prop="code" show-overflow-tooltip width="140"></el-table-column>
|
||||
<el-table-column label="项目内容" prop="content" show-overflow-tooltip width="180"></el-table-column>
|
||||
<el-table-column label="项目类型" prop="type" show-overflow-tooltip width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-tag>
|
||||
{{ projectSetType[scope.row.type] }}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建人" prop="createUserName" show-overflow-tooltip width="140"></el-table-column>
|
||||
<el-table-column label="更新人" prop="updateUserName" show-overflow-tooltip width="140"></el-table-column>
|
||||
<el-table-column label="创建时间" prop="createTime" show-overflow-tooltip width="140"></el-table-column>
|
||||
<el-table-column label="更新时间" prop="udpateTime" show-overflow-tooltip width="140"></el-table-column>
|
||||
<el-table-column label="备注" prop="remark" show-overflow-tooltip width="140"></el-table-column>
|
||||
|
||||
<el-table-column label="操作" width="140" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click.native.stop="editOrder(scope.row)"
|
||||
>编辑
|
||||
</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click.native.stop="deleteDialog(scope.row.id)"
|
||||
>删除
|
||||
</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:limit.sync="filterQuery.limit"
|
||||
:page.sync="filterQuery.page"
|
||||
@pagination="getList"
|
||||
></pagination>
|
||||
</el-card>
|
||||
|
||||
<el-dialog
|
||||
:title="formMap[formName]"
|
||||
:visible.sync="formVisible"
|
||||
:close-on-click-modal="false"
|
||||
:close-on-press-escape="false"
|
||||
width="40%"
|
||||
v-if="formVisible"
|
||||
>
|
||||
<DeviceProjectSetDialog
|
||||
:repairOrder="deviceRepairOrder"
|
||||
:closeDialog="closeDialog"
|
||||
:formName="formName"
|
||||
></DeviceProjectSetDialog>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {findInvByUser} from "@/api/system/invSubWarehouse";
|
||||
import {getprojectSetList, deleteDevprojectSet,} from "@/api/inventory/deviceProjectSet";
|
||||
import deviceRepairOrderModify from "@/views/inventory/DeviceRepairOrderModify.vue";
|
||||
import DeviceProjectSetDialog from "@/views/inventory/DeviceProjectSetDialog"
|
||||
|
||||
|
||||
export default {
|
||||
name: "DeviceProjectSet",
|
||||
data() {
|
||||
return {
|
||||
filterQuery: {
|
||||
id: null,
|
||||
code: "",
|
||||
content: null,
|
||||
type: null,
|
||||
startTime: null,
|
||||
endTime: null,
|
||||
page: 1,
|
||||
limit: 20
|
||||
},
|
||||
list: [],
|
||||
total: 0,
|
||||
loading: false,
|
||||
formVisible: false,
|
||||
codeTableLoading: false,
|
||||
|
||||
projectSetType: {
|
||||
1: "巡检",
|
||||
2: "养护"
|
||||
},
|
||||
|
||||
formName: null,
|
||||
formMap: {
|
||||
add: "新增维保设备清单",
|
||||
edit: "编辑维保设备清单"
|
||||
},
|
||||
deviceRepairOrder: {},
|
||||
showSearch: true,
|
||||
actDateRange: [],
|
||||
pickerOptions: {
|
||||
shortcuts: [
|
||||
{
|
||||
text: "最近一周",
|
||||
onClick(picker) {
|
||||
const end = new Date();
|
||||
const start = new Date();
|
||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
|
||||
picker.$emit("pick", [start, end]);
|
||||
},
|
||||
},
|
||||
{
|
||||
text: "最近一个月",
|
||||
onClick(picker) {
|
||||
const end = new Date();
|
||||
const start = new Date();
|
||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
|
||||
picker.$emit("pick", [start, end]);
|
||||
},
|
||||
},
|
||||
{
|
||||
text: "最近三个月",
|
||||
onClick(picker) {
|
||||
const end = new Date();
|
||||
const start = new Date();
|
||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
|
||||
picker.$emit("pick", [start, end]);
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
hideSearch() {
|
||||
this.showSearch = !this.showSearch;
|
||||
},
|
||||
onReset() {
|
||||
this.$router.push({
|
||||
path: "",
|
||||
});
|
||||
this.filterQuery = {
|
||||
id: null,
|
||||
code: "",
|
||||
content: null,
|
||||
type: null,
|
||||
startTime: null,
|
||||
endTime: null,
|
||||
page: 1,
|
||||
limit: 20
|
||||
};
|
||||
this.actDateRange = [];
|
||||
this.getList();
|
||||
},
|
||||
onSubmit() {
|
||||
if (this.actDateRange !== null) {
|
||||
this.filterQuery.startTime = this.actDateRange[0];
|
||||
this.filterQuery.endTime = this.actDateRange[1];
|
||||
} else {
|
||||
this.filterQuery.startTime = null;
|
||||
this.filterQuery.endTime = null;
|
||||
}
|
||||
this.filterQuery.page = 1;
|
||||
this.getList();
|
||||
},
|
||||
getList() {
|
||||
this.loading = true;
|
||||
getprojectSetList(this.filterQuery).then((res) => {
|
||||
this.loading = false;
|
||||
if (res.code === 20000) {
|
||||
this.list = res.data.list || [];
|
||||
this.total = res.data.total || 0;
|
||||
} else {
|
||||
this.$message.error(res.message);
|
||||
this.list = [];
|
||||
this.total = 0;
|
||||
}
|
||||
}).catch((error) => {
|
||||
this.loading = false;
|
||||
this.$message.error(error.message);
|
||||
this.list = [];
|
||||
this.total = 0;
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
invChange() {
|
||||
this.getList();
|
||||
},
|
||||
getInvList() {
|
||||
let params = {deptCode: this.filterQuery.deptCode};
|
||||
findInvByUser(params)
|
||||
.then((response) => {
|
||||
this.invList = response.data || [];
|
||||
this.getList();
|
||||
})
|
||||
.catch(() => {
|
||||
});
|
||||
},
|
||||
addRepairOrder() {
|
||||
this.formVisible = true;
|
||||
this.formName = 'add';
|
||||
},
|
||||
editOrder(row) {
|
||||
this.formVisible = true;
|
||||
this.formName = 'edit';
|
||||
this.deviceRepairOrder = row;
|
||||
},
|
||||
deleteDialog(rowId) {
|
||||
this.$confirm('此操作将永久删除该领用记录, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
let params = {id: rowId};
|
||||
this.loading = true;
|
||||
deleteDevprojectSet(params).then((res) => {
|
||||
this.loading = false;
|
||||
if (res.code === 20000) {
|
||||
this.$message.success("删除成功!");
|
||||
this.getList();
|
||||
} else {
|
||||
this.$message.error(res.message);
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
});
|
||||
},
|
||||
closeDialog() {
|
||||
this.formVisible = false;
|
||||
this.getList();
|
||||
},
|
||||
|
||||
},
|
||||
components: {
|
||||
deviceRepairOrderModify, DeviceProjectSetDialog
|
||||
},
|
||||
filters: {
|
||||
statusFilterType(status) {
|
||||
const statusMap = {
|
||||
2: "warning",
|
||||
3: "success",
|
||||
4: "danger",
|
||||
};
|
||||
return statusMap[status];
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
document.body.ondrop = function (event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style type="text/scss" lang="scss">
|
||||
</style>
|
||||
|
@ -0,0 +1,143 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card style="margin: 5px;margin-top: -20px">
|
||||
<el-form :model="projectSet" ref="dataForm" label-width="100px" style="width: 80%; margin: auto ;">
|
||||
<el-button-group style="display: flex;margin: 0px 0 10px 80%; height: 35px">
|
||||
<el-button
|
||||
type="primary"
|
||||
@click.native="submit()"
|
||||
>确认
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
@click.native="cancel()"
|
||||
>取消
|
||||
</el-button>
|
||||
</el-button-group>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="20">
|
||||
<el-form-item class="query-form-item" label="项目编码:">
|
||||
<el-input v-model="projectSet.code" placeholder="请输入项目编码" style="width: 100%"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="20">
|
||||
<el-form-item label="项目类型:">
|
||||
<el-select v-model="projectSet.type" style="width: 100%; " placeholder="请选择项目类型" clearable="true"
|
||||
>
|
||||
<el-option label="巡检" :value="1"></el-option>
|
||||
<el-option label="养护" :value="2"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="20">
|
||||
<el-form-item class="query-form-item" label="备注:">
|
||||
<el-input v-model="projectSet.remark" placeholder="请输入备注" style="width: 100%"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="20">
|
||||
<el-form-item class="query-form-item" label="项目内容:">
|
||||
<el-input v-model="projectSet.content" placeholder="请输入项目内容" style="width: 100%" rows=10
|
||||
type="textarea"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {isBlank} from "@/utils/strUtil";
|
||||
|
||||
import {insertDevprojectSet, updateDevprojectSet,} from "@/api/inventory/deviceProjectSet";
|
||||
|
||||
|
||||
export default {
|
||||
props: {
|
||||
repairOrder: {
|
||||
type: Object,
|
||||
required: true
|
||||
},
|
||||
closeDialog: {
|
||||
type: Function,
|
||||
required: true
|
||||
},
|
||||
formName: {
|
||||
type: Function,
|
||||
required: true
|
||||
},
|
||||
|
||||
},
|
||||
name: "DeviceProjectSetDialog",
|
||||
data() {
|
||||
return {
|
||||
projectSet: {
|
||||
id: null,
|
||||
code: "",
|
||||
content: null,
|
||||
type: null,
|
||||
}
|
||||
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
submit() {
|
||||
if ("add" === this.formName) {
|
||||
insertDevprojectSet(this.projectSet).then((res) => {
|
||||
if (res.code == 20000) {
|
||||
this.$message.success("添加成功!");
|
||||
this.closeDialog();
|
||||
} else {
|
||||
this.$message.error(res.message);
|
||||
}
|
||||
|
||||
})
|
||||
} else {
|
||||
updateDevprojectSet(this.projectSet).then((res) => {
|
||||
if (res.code == 20000) {
|
||||
this.$message.success("修改成功!");
|
||||
this.closeDialog();
|
||||
} else {
|
||||
this.$message.error(res.message);
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
cancel() {
|
||||
this.closeDialog();
|
||||
},
|
||||
|
||||
|
||||
},
|
||||
created() {
|
||||
if (!isBlank(this.repairOrder.id)) {
|
||||
//编辑
|
||||
this.projectSet = this.repairOrder;
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
@ -0,0 +1,394 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card style="margin: 5px;margin-top: -20px">
|
||||
<el-form :model="repairOrder" ref="dataForm" label-width="120px" style="margin-bottom: -15px">
|
||||
|
||||
<el-row>
|
||||
<el-col :span="10">
|
||||
<el-form-item label="设备报修记录号:">
|
||||
<el-input v-model="repairOrder.orderId" style="width: 90%"
|
||||
disabled
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="10">
|
||||
<el-form-item class="query-form-item" label="部门:">
|
||||
<el-select v-model="repairOrder.deptCode"
|
||||
placeholder="请选择部门"
|
||||
clearable="true"
|
||||
@change="deptChange"
|
||||
style="width: 90%"
|
||||
disabled
|
||||
>
|
||||
<el-option
|
||||
v-for="item in deptList"
|
||||
:key="item.name"
|
||||
:label="item.name"
|
||||
:value="item.code">
|
||||
<span style="float: left">{{ item.name }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="10">
|
||||
<el-form-item class="query-form-item" label="仓库:">
|
||||
<el-select v-model="repairOrder.invCode"
|
||||
placeholder="请选择仓库"
|
||||
clearable="true"
|
||||
style="width: 90%"
|
||||
disabled
|
||||
>
|
||||
<el-option
|
||||
v-for="item in invList"
|
||||
:key="item.name"
|
||||
:label="item.name"
|
||||
:value="item.code">
|
||||
<span style="float: left">{{ item.name }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="10">
|
||||
<el-form-item label="设备名称:">
|
||||
<el-input v-model="repairOrder.deviceName" placeholder="请输入设备名称" style="width: 90%"
|
||||
disabled
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="10">
|
||||
<el-form-item label="物资编码:">
|
||||
<el-input v-model="repairOrder.code" placeholder="请输入编码" style="width: 90%" clearable
|
||||
disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="10">
|
||||
<el-form-item label="维修类型:">
|
||||
<el-select v-model="repairOrder.repairType" placeholder="请选择维修类型" style="width: 90%" disabled
|
||||
clearable>
|
||||
<el-option label="自行维修" :value=1></el-option>
|
||||
<el-option label="外部维修" :value=2></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
|
||||
<el-col :span="10">
|
||||
<el-form-item label="紧急程度:">
|
||||
<el-select v-model="repairOrder.urgencyType" placeholder="请选择紧急程度" style="width: 90%" disabled
|
||||
clearable>
|
||||
<el-option label="正常" :value=1></el-option>
|
||||
<el-option label="较急" :value=2></el-option>
|
||||
<el-option label="特急" :value=3></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<el-form-item label="计划完成日期:" prop="planTime">
|
||||
<el-date-picker
|
||||
v-model="repairOrder.planTime"
|
||||
type="datetime"
|
||||
placeholder="选择日期"
|
||||
style="width: 90%"
|
||||
clearable
|
||||
disabled
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
|
||||
<el-col :span="10">
|
||||
<el-form-item class="query-form-item" label="维修人:">
|
||||
<el-select v-model="repairOrder.repariName"
|
||||
placeholder="请选择维修人"
|
||||
clearable="true"
|
||||
style="width: 90%"
|
||||
disabled
|
||||
>
|
||||
<el-option
|
||||
v-for="item in userList"
|
||||
:key="item.id"
|
||||
:label="item.employeeName"
|
||||
:value="item.userid">
|
||||
<span style="float: left">{{ item.employeeName }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="10">
|
||||
<el-form-item class="query-form-item" label="审核人:">
|
||||
<el-input v-model="repairOrder.auditUserName" placeholder="请输入审核人" style="width: 90%"
|
||||
disabled clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="10">
|
||||
<el-form-item label="维修开始时间:" prop="repariStartTime">
|
||||
<el-date-picker
|
||||
v-model="repairOrder.repariStartTime"
|
||||
type="datetime"
|
||||
placeholder="选择日期"
|
||||
style="width: 90%"
|
||||
clearable
|
||||
disabled
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<el-form-item label="维修结束时间:" prop="repariEndTime">
|
||||
<el-date-picker
|
||||
v-model="repairOrder.repariEndTime"
|
||||
type="datetime"
|
||||
placeholder="选择日期"
|
||||
style="width: 90%"
|
||||
clearable
|
||||
disabled
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="10">
|
||||
<el-form-item label="报修说明:">
|
||||
<el-input v-model="repairOrder.msg" placeholder="请输入报修信息" style="width: 90%"
|
||||
disabled clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<el-form-item label="维修说明:">
|
||||
<el-input v-model="repairOrder.repariRemark" placeholder="请输入报修信息" style="width: 90%"
|
||||
disabled clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {isBlank} from "@/utils/strUtil";
|
||||
import {getDeptListByUser} from "@/api/auth/authDept";
|
||||
import {getInvListByUser} from "@/api/system/invWarehouse";
|
||||
import {updateStatusAndTime, updateStatusAndImg} from "@/api/inventory/deviceRepairOrder";
|
||||
import {getDeptDeviceList} from "@/api/inventory/deptDevice";
|
||||
import store from "@/store";
|
||||
import {warehouseUserList} from "@/api/system/invWarehouse"
|
||||
|
||||
|
||||
export default {
|
||||
props: {
|
||||
repairOrder: {
|
||||
type: Object,
|
||||
required: true
|
||||
},
|
||||
closeDialog: {
|
||||
type: Function,
|
||||
required: true
|
||||
},
|
||||
|
||||
|
||||
},
|
||||
name: "DeviceRepairOrderDetails",
|
||||
data() {
|
||||
return {
|
||||
deptList: [],
|
||||
invList: [],
|
||||
deviceDialogVisible: false,
|
||||
deviceLoading: false,
|
||||
filterQuery: {
|
||||
code: null,
|
||||
deptCode: null,
|
||||
invCode: null,
|
||||
page: 1,
|
||||
limit: 10
|
||||
},
|
||||
deviceList: [],
|
||||
deviceTotal: 0,
|
||||
deptName: null,
|
||||
invName: null,
|
||||
selectRow: null,
|
||||
fileList: [],
|
||||
userList: [],
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
deptChange() {
|
||||
this.repairOrder.invCode = null;
|
||||
this.invList = [];
|
||||
this.getInvList();
|
||||
},
|
||||
getDeptList() {
|
||||
getDeptListByUser().then((res) => {
|
||||
this.deptList = res.data || [];
|
||||
this.getInvList();
|
||||
});
|
||||
},
|
||||
getInvList() {
|
||||
let params = {deptCode: this.repairOrder.deptCode};
|
||||
getInvListByUser(params)
|
||||
.then((response) => {
|
||||
this.invList = response.data || [];
|
||||
this.getList();
|
||||
})
|
||||
.catch(() => {
|
||||
});
|
||||
},
|
||||
getuserList() {
|
||||
let param = {code: this.repairOrder.invCode}
|
||||
warehouseUserList(param).then((res) => {
|
||||
this.userList = res.data.list || [];
|
||||
})
|
||||
},
|
||||
|
||||
getDeviceList() {
|
||||
this.deviceLoading = true;
|
||||
this.deviceList = [];
|
||||
getDeptDeviceList(this.filterQuery).then((res) => {
|
||||
this.deviceLoading = false;
|
||||
if (res.code === 20000) {
|
||||
this.deviceList = res.data.list || [];
|
||||
this.deviceTotal = res.data.total || 0;
|
||||
} else {
|
||||
this.$message.error(res.message);
|
||||
this.deviceList = [];
|
||||
this.deviceTotal = 0;
|
||||
}
|
||||
}).catch((error) => {
|
||||
this.deviceLoading = false;
|
||||
this.deviceList = [];
|
||||
this.deviceTotal = 0;
|
||||
});
|
||||
},
|
||||
setDeptAnInvName() {
|
||||
this.deptList.forEach((item) => {
|
||||
if (item.code === this.repairOrder.deptCode) {
|
||||
this.deptName = item.name;
|
||||
}
|
||||
});
|
||||
|
||||
this.invList.forEach((item) => {
|
||||
if (item.code === this.repairOrder.invCode) {
|
||||
this.invName = item.name;
|
||||
}
|
||||
})
|
||||
},
|
||||
onReset() {
|
||||
this.filterQuery.code = null;
|
||||
this.filterQuery.page = 1;
|
||||
this.getDeviceList();
|
||||
},
|
||||
queryDevice() {
|
||||
this.filterQuery.page = 1;
|
||||
this.getDeviceList();
|
||||
},
|
||||
handleCurrentChange(row) {
|
||||
this.selectRow = row;
|
||||
},
|
||||
combine() {
|
||||
this.deviceDialogVisible = false;
|
||||
this.repairOrder.code = this.selectRow.code;
|
||||
this.repairOrder.deviceName = this.selectRow.deviceName;
|
||||
},
|
||||
stareTask() {
|
||||
this.$confirm('是否开始任务?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
center: true
|
||||
}).then(() => {
|
||||
let param = {
|
||||
orderId: this.repairOrder.orderId,
|
||||
status: 4,
|
||||
}
|
||||
|
||||
updateStatusAndTime(param).then((res) => {
|
||||
if (res.code == 20000) {
|
||||
this.$message.success("任务确认成功!");
|
||||
this.closeDialog();
|
||||
} else {
|
||||
this.$message.error(res.message);
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
}).catch(() => {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '已取消'
|
||||
});
|
||||
});
|
||||
},
|
||||
overTask() {
|
||||
this.$confirm('是否结束任务?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
center: true
|
||||
}).then(() => {
|
||||
let param = {
|
||||
orderId: this.repairOrder.orderId,
|
||||
status: 5,
|
||||
repariRemark: this.repairOrder.repariRemark,
|
||||
repariImage: this.repairOrder.repariImage
|
||||
}
|
||||
updateStatusAndImg(param).then((res) => {
|
||||
if (res.code == 20000) {
|
||||
this.$message.success("任务已结束!");
|
||||
this.closeDialog();
|
||||
} else {
|
||||
this.$message.error(res.message);
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
}).catch(() => {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '已取消'
|
||||
});
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
|
||||
},
|
||||
created() {
|
||||
|
||||
this.getDeptList();
|
||||
this.getuserList();
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
@ -0,0 +1,356 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="el-card">
|
||||
<el-form :model="filterQuery" class="query-form" label-width="100px" v-show="showSearch">
|
||||
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item class="query-form-item" label="报修记录号:">
|
||||
<el-input v-model="filterQuery.orderId" style="width: 90%" placeholder="请输入报修记录号"
|
||||
clearable="true"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item class="query-form-item" label="部门:">
|
||||
<el-select v-model="filterQuery.deptCode" style="width: 90%" placeholder="请选择部门" clearable="true"
|
||||
@change="deptChange"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in deptList"
|
||||
:key="item.name"
|
||||
:label="item.name"
|
||||
:value="item.code">
|
||||
<span style="float: left">{{ item.name }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item class="query-form-item" label="仓库:">
|
||||
<el-select v-model="filterQuery.invCode" style="width: 90%" placeholder="请选择仓库" clearable="true"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in invList"
|
||||
:key="item.name"
|
||||
:label="item.name"
|
||||
:value="item.code">
|
||||
<span style="float: left">{{ item.name }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item class="query-form-item" label="资产编码:">
|
||||
<el-input v-model="filterQuery.code" style="width: 90%" placeholder="请输入资产编码"
|
||||
clearable="true"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div class="top-right-btn">
|
||||
<el-button-group style="margin-left: 10px;display:flex;">
|
||||
<el-button icon="el-icon-view" type="primary" @click="hideSearch">显示/隐藏搜索栏</el-button>
|
||||
<el-button type="primary" icon="el-icon-refresh" @click="onReset">重置</el-button>
|
||||
<el-button type="primary" icon="el-icon-search" @click="onSubmit">查询</el-button>
|
||||
</el-button-group>
|
||||
</div>
|
||||
|
||||
<el-divider style="margin: 15px"></el-divider>
|
||||
|
||||
<el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row
|
||||
border>
|
||||
<el-table-column label="序号" type="index"></el-table-column>
|
||||
<el-table-column label="设备报修记录号" prop="orderId" show-overflow-tooltip width="140"></el-table-column>
|
||||
<el-table-column label="部门" prop="deptName" show-overflow-tooltip width="120"></el-table-column>
|
||||
<el-table-column label="仓库" prop="invName" show-overflow-tooltip width="120"></el-table-column>
|
||||
<el-table-column label="设备名称" prop="deviceName" show-overflow-tooltip width="120"></el-table-column>
|
||||
<el-table-column label="规格型号" prop="ggxh" show-overflow-tooltip width="120"></el-table-column>
|
||||
<el-table-column label="批次号" prop="batchNo" show-overflow-tooltip width="120"></el-table-column>
|
||||
<el-table-column label="资产编码" prop="code" show-overflow-tooltip width="120"></el-table-column>
|
||||
<!--<el-table-column label="创建日期" prop="createTime"></el-table-column>-->
|
||||
<el-table-column label="创建人" prop="createUserName" show-overflow-tooltip width="120"></el-table-column>
|
||||
<el-table-column label="审核人" prop="auditUserName" show-overflow-tooltip width="120"></el-table-column>
|
||||
<el-table-column label="维修人" prop="repName" show-overflow-tooltip width="120"></el-table-column>
|
||||
<el-table-column label="开始时间" prop="repariStartTime" show-overflow-tooltip width="140"></el-table-column>
|
||||
<el-table-column label="结束日期" prop="repariEndTime" show-overflow-tooltip width="140"></el-table-column>
|
||||
<el-table-column label="报修说明" prop="msg" show-overflow-tooltip width="180"></el-table-column>
|
||||
<el-table-column label="报修照片" prop="uploadImage" show-overflow-tooltip width="250">
|
||||
<template slot-scope="scope">
|
||||
<div style="color: #1890ff;" @click="showImgViewer(scope.row.uploadImage)">{{ scope.row.uploadImage }}</div>
|
||||
</template>
|
||||
|
||||
</el-table-column>
|
||||
<el-table-column label="维修说明" prop="repariRemark" show-overflow-tooltip width="180"></el-table-column>
|
||||
<el-table-column label="维修照片" prop="repariImage" show-overflow-tooltip width="250">
|
||||
<template slot-scope="scope">
|
||||
<div style="color: #1890ff;" @click="showImgViewer(scope.row.repariImage)">{{ scope.row.repariImage }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" show-overflow-tooltip width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-tag>{{ statusMap[scope.row.status] }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="操作" width="200" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click.native.stop="startOrder(scope.row)"
|
||||
:disabled="scope.row.status != 2 "
|
||||
>开始任务
|
||||
</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click.native.stop="endOrder(scope.row)"
|
||||
:disabled="scope.row.status == 2 || scope.row.status == 5"
|
||||
>结束任务
|
||||
</el-button
|
||||
>
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click.native.stop="deleteDialog(scope.row.id)"
|
||||
>删除
|
||||
</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:limit.sync="filterQuery.limit"
|
||||
:page.sync="filterQuery.page"
|
||||
@pagination="getList"
|
||||
></pagination>
|
||||
</el-card>
|
||||
|
||||
<el-dialog
|
||||
:title="repairMap[formName]"
|
||||
:visible.sync="formVisible"
|
||||
:close-on-click-modal="false"
|
||||
:close-on-press-escape="false"
|
||||
width="65%"
|
||||
v-if="formVisible"
|
||||
>
|
||||
<DeviceRepairOrderStart
|
||||
:repairOrder="deviceRepairOrder"
|
||||
:closeDialog="closeDialog"
|
||||
:formName="formName"
|
||||
></DeviceRepairOrderStart>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
<el-image-viewer v-if="imgViewerVisible" style="z-index:9999" :on-close="closeImgViewer" :url-list="imgList"/>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {getDeptListByUser} from "@/api/auth/authDept";
|
||||
import {findInvByUser} from "@/api/system/invSubWarehouse";
|
||||
import {getRepairList, updateStatus, deleteRepairOrder} from "@/api/inventory/deviceRepairOrder";
|
||||
import {previewImage} from "@/api/purchase/supCompany";
|
||||
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
|
||||
import DeviceRepairOrderStart from "@/views/inventory/DeviceRepairOrderStart";
|
||||
|
||||
export default {
|
||||
name: "DeviceRepairOrderAudit",
|
||||
data() {
|
||||
return {
|
||||
BASE_URL: process.env.VUE_APP_BASE_API,
|
||||
imgViewerVisible: false,
|
||||
imgList: [],
|
||||
filterQuery: {
|
||||
orderId: null,
|
||||
deptCode: this.$store.getters.locDeptCode,
|
||||
invCode: null,
|
||||
// status: 2,
|
||||
statusList: [2, 4, 5],
|
||||
page: 1,
|
||||
limit: 20
|
||||
},
|
||||
list: [],
|
||||
total: 0,
|
||||
deptList: [],
|
||||
invList: [],
|
||||
loading: false,
|
||||
formVisible: false,
|
||||
codeTableLoading: false,
|
||||
deviceRepairOrder: {},
|
||||
statusMap: {
|
||||
0: "草稿",
|
||||
1: "未审核",
|
||||
2: "已审核",
|
||||
3: "未处理",
|
||||
4: "维修中",
|
||||
5: "已处理"
|
||||
},
|
||||
showSearch: true,
|
||||
formName: null,
|
||||
repairMap: {
|
||||
start: "开始任务",
|
||||
end: "结束任务"
|
||||
}
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
hideSearch() {
|
||||
this.showSearch = !this.showSearch;
|
||||
},
|
||||
onReset() {
|
||||
this.$router.push({
|
||||
path: "",
|
||||
});
|
||||
this.filterQuery = {
|
||||
orderId: null,
|
||||
deptCode: this.$store.getters.locDeptCode,
|
||||
invCode: null,
|
||||
statusList: [2, 4, 5],
|
||||
page: 1,
|
||||
limit: 20
|
||||
};
|
||||
this.getList();
|
||||
},
|
||||
onSubmit() {
|
||||
this.filterQuery.page = 1;
|
||||
this.getList();
|
||||
},
|
||||
getList() {
|
||||
this.loading = true;
|
||||
getRepairList(this.filterQuery).then((res) => {
|
||||
this.loading = false;
|
||||
if (res.code === 20000) {
|
||||
this.list = res.data.list || [];
|
||||
this.total = res.data.total || 0;
|
||||
} else {
|
||||
this.$message.error(res.message);
|
||||
this.list = [];
|
||||
this.total = 0;
|
||||
}
|
||||
}).catch((error) => {
|
||||
this.loading = false;
|
||||
this.$message.error(error.message);
|
||||
this.list = [];
|
||||
this.total = 0;
|
||||
})
|
||||
},
|
||||
deptChange() {
|
||||
this.invList = [];
|
||||
this.filterQuery.invCode = null;
|
||||
this.getInvList();
|
||||
},
|
||||
getDeptList() {
|
||||
getDeptListByUser().then((res) => {
|
||||
this.deptList = res.data || [];
|
||||
this.getInvList();
|
||||
// this.getList();
|
||||
});
|
||||
},
|
||||
invChange() {
|
||||
this.getList();
|
||||
},
|
||||
getInvList() {
|
||||
let params = {deptCode: this.filterQuery.deptCode};
|
||||
findInvByUser(params)
|
||||
.then((response) => {
|
||||
this.invList = response.data || [];
|
||||
this.getList();
|
||||
})
|
||||
.catch(() => {
|
||||
});
|
||||
},
|
||||
deleteDialog(rowId) {
|
||||
this.$confirm('此操作将永久删除该领用记录, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
let params = {id: rowId};
|
||||
this.loading = true;
|
||||
deleteRepairOrder(params).then((res) => {
|
||||
this.loading = false;
|
||||
if (res.code === 20000) {
|
||||
this.$message.success("删除成功!");
|
||||
this.getList();
|
||||
} else {
|
||||
this.$message.error(res.message);
|
||||
}
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
});
|
||||
},
|
||||
startOrder(row) {
|
||||
this.formVisible = true;
|
||||
this.deviceRepairOrder = row;
|
||||
this.formName = "start";
|
||||
},
|
||||
|
||||
endOrder(row) {
|
||||
this.formVisible = true;
|
||||
this.deviceRepairOrder = row;
|
||||
this.formName = "end";
|
||||
},
|
||||
|
||||
showImgViewer(row) {
|
||||
if (row.substr(-1) == ',') {
|
||||
row = row.slice(0, row.length - 1);
|
||||
}
|
||||
this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
|
||||
console.log(this.certFileUrl + "========");
|
||||
this.imgList = [];
|
||||
previewImage({imageUrl: row, certFileUrl: this.certFileUrl}).then(response => {
|
||||
if (response.code === 20000) {
|
||||
this.imgList = response.data;
|
||||
}
|
||||
console.log(this.imgList)
|
||||
this.imgViewerVisible = true;
|
||||
});
|
||||
const m = (e) => {
|
||||
e.preventDefault()
|
||||
};
|
||||
document.body.style.overflow = 'hidden';
|
||||
document.addEventListener("touchmove", m, false); // 禁止页面滑动
|
||||
|
||||
},
|
||||
closeImgViewer() {
|
||||
this.imgViewerVisible = false;
|
||||
const m = (e) => {
|
||||
e.preventDefault()
|
||||
};
|
||||
document.body.style.overflow = 'auto';
|
||||
document.removeEventListener("touchmove", m, true);
|
||||
},
|
||||
closeDialog() {
|
||||
this.formVisible = false;
|
||||
this.getList();
|
||||
},
|
||||
|
||||
|
||||
},
|
||||
components: {DeviceRepairOrderStart, ElImageViewer},
|
||||
mounted() {
|
||||
document.body.ondrop = function (event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getDeptList();
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style type="text/scss" lang="scss">
|
||||
</style>
|
||||
|
Loading…
Reference in New Issue