嘉禾二期设备管理
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1284 lines
41 KiB

<template>
<!-- 巡检任务 -->
<basic-container>
<avue-crud
ref="crud"
:data="data"
id="avue-id"
:option="option"
:page.sync="listPage"
:row-key="getRowKeys"
:table-loading="loading"
@row-del="rowDel"
@row-save="rowSave"
@search-reset="reset"
@row-update="rowUpdate"
@refresh-change="refresh"
@search-change="searchChangeScope"
@selection-change="selectionChange"
@size-change="sizeChange"
@current-change="currentChange"
>
<template slot="menuLeft">
<el-form
ref="searchForm"
:model="searchForm"
label-width="120px"
style="border: 0px solid red; margin-bottom: 8px"
>
<el-row>
<el-col :span="2.5">
<el-select
v-model="searchForm.taskStatus"
class="search-select"
placeholder="请选择任务状态"
>
<el-option label="待检" :value="0"></el-option>
<el-option label="检中" :value="1"></el-option>
<el-option label="结束" :value="2"></el-option>
<el-option label="取消" :value="3"></el-option>
</el-select>
</el-col>
<el-col :span="2.5">
<el-select
v-model="searchForm.groupId"
class="search-select"
placeholder="请选择巡检班组"
>
<el-option v-for="item in groupList" :key="item.id" :label="item.fullName" :value="item.id"></el-option>
</el-select>
</el-col>
<el-col :span="2.5">
<el-input
class="search-input"
v-model="searchForm.taskCode"
placeholder="请输入任务单据"
></el-input>
</el-col>
<el-col :span="2.5">
<el-input
class="search-input"
v-model="searchForm.planName"
placeholder="请输入巡检名称"
></el-input>
</el-col>
<el-col style="margin-left: 18px" :span="3.5">
<el-button class="search" @click="searchHandle(0)"
>查询</el-button
>
<el-button class="reset" @click="searchHandle(1)">重置</el-button>
</el-col>
</el-row>
</el-form>
</template>
<template slot-scope="{ type }" slot="menuForm">
<el-button
class="buttonOne"
size="small"
@click="$refs.crud.closeDialog()"
>取 消</el-button
>
<el-button
v-if="type == 'add'"
class="buttonOne"
size="small"
@click="$refs.crud.rowSave()"
>确 定</el-button
>
<el-button
v-if="type == 'edit'"
class="buttonOne"
size="small"
@click="$refs.crud.rowUpdate()"
>修 改</el-button
>
</template>
<!-- <template slot="menuRight">
<el-button class="search" style="width: 120px" @click="handleAdd"
>新建</el-button
>
</template> -->
<template slot-scope="{ row }" slot="taskStatus">
<span v-if="row.taskStatus == 0" style="color: #e56926">待检</span>
<span v-if="row.taskStatus == 1" style="color: #1e62f6">检中</span>
<span v-if="row.taskStatus == 2" style="color: #34c447">结束</span>
<span v-if="row.taskStatus == 3" style="color: #999999">取消</span>
</template>
<template slot-scope="{ row }" slot="type">
<span v-if="row.type === 1">类型1</span>
<span v-if="row.type === 2">类型2</span>
</template>
<template slot-scope="{ row }" slot="device">
<span>{{row.device | deviceName}}</span>
</template>
<template slot-scope="{ row, index }" slot="menu">
<el-button @click="handleView(row, index)" class="look">查看</el-button>
<el-button v-show="row.taskStatus == 0 || row.taskStatus == 1" @click="handleEdit(row, index)" class="look">编辑</el-button>
<el-button v-show="row.taskStatus == 0" @click="handleDelete(row, index)" class="look">删除</el-button>
<el-button v-show="row.taskStatus == 1" @click="handleFinish(row, index)" class="look">完成</el-button>
<el-button v-show="row.taskStatus == 0 || row.taskStatus == 1" @click="handleCancel(row, index)" class="look">取消</el-button>
</template>
</avue-crud>
<!-- 新增/编辑巡检任务 弹窗 -->
<el-dialog
:before-close="handleClose"
:cell-style="tableCellStyle"
:visible.sync="showAddDialog"
:title="title"
width="70%"
:append-to-body="true"
:close-on-click-modal="false"
:close-on-press-escape="false"
custom-class="planAdd_form"
>
<div style="height: 550px; overflow-y: auto; overflow-x: hidden">
<el-form :model="addForm" :rules="addRules" ref="addForm">
<div class="add_all">
<h1
style="
font-size: 16px;
font-weight: 500;
color: rgba(0, 0, 0, 0.85);
line-height: 20px;
"
>
<span
style="
border-left: 4px solid blue;
margin-top: -20px;
height: 15px;
display: inline-block;
transform: translateY(2px);
"
>
</span
>&ensp;<b>基本信息</b>
</h1>
</div>
<el-row :gutter="20">
<el-col :span="6" style="width: 31%; margin-left: 1%">
<el-form-item label="巡检名称" prop="planName">
<el-input
style="width: 98%"
v-model="addForm.planName"
placeholder="请输入巡检名称"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="width: 31%; margin-left: 1%">
<el-form-item label="计划单据" prop="taskCode">
<el-input
style="width: 98%"
v-model="addForm.taskCode"
placeholder="请输入计划单据"
disabled
></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="width: 31%; margin-left: 1%">
<el-form-item label="巡检班组" prop="groupName">
<el-input
style="width: 98%"
v-model="addForm.groupName"
placeholder="巡检班组"
disabled
></el-input>
</el-form-item>
<!-- <el-form-item label="巡检班组" prop="groupId">
<el-select
v-model="addForm.groupId"
placeholder="请选择巡检班组"
style="width: 98%"
>
<el-option v-for="item in groupList" :key="item.id" :label="item.fullName" :value="item.id"></el-option>
</el-select>
</el-form-item> -->
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="6" style="width: 31%; margin-left: 1%">
<el-form-item label="实际开始" prop="actStartTime">
<el-date-picker
v-model="addForm.actStartTime"
type="date"
placeholder="请选择实际开始"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
style="width: 98%"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6" style="width: 31%; margin-left: 1%">
<el-form-item label="实际完成" prop="actFinishTime">
<el-date-picker
v-model="addForm.actFinishTime"
type="date"
placeholder="请选择实际完成"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
style="width: 98%"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6" style="width: 31%; margin-left: 1%">
<el-form-item label="完成用时(时)" prop="actTotalCost">
<el-input-number style="width: 98%" controls-position="right" v-model="addForm.actTotalCost" :min="0" :precision="1" :step="1"></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col style="width: 90%; margin-left: 1%">
<el-form-item label="任务反馈" prop="content">
<el-input
style="width: 100%"
type="textarea"
v-model="addForm.content"
placeholder="请输入任务反馈"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col style="width: 90%; margin-left: 1%">
<el-form-item label="备注" prop="notes">
<el-input
style="width: 100%"
type="textarea"
v-model="addForm.notes"
placeholder="请输入备注"
></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="add_all">
<h1
style="
font-size: 16px;
font-weight: 500;
color: rgba(0, 0, 0, 0.85);
line-height: 20px;
"
>
<span
style="
border-left: 4px solid blue;
margin-top: -20px;
height: 15px;
display: inline-block;
transform: translateY(2px);
"
>
</span
>&ensp;<b>巡检计划</b>
</h1>
</div>
<el-row :gutter="20">
<!-- <el-col :span="6" style="width: 31%; margin-left: 1%">
<el-form-item label="预计用时(时)" prop="planCompletionTime">
<el-input-number style="width: 98%" controls-position="right" v-model="addForm.planCompletionTime" :min="0" :precision="1" :step="1"></el-input-number>
</el-form-item>
</el-col> -->
<el-col :span="6" style="width: 31%; margin-left: 1%">
<el-form-item label="巡检顺序" prop="planInspectionMethod">
<el-select
v-model="addForm.planInspectionMethod"
placeholder="请选择巡检顺序"
style="width: 98%"
>
<el-option label="顺序" :value="1"></el-option>
<el-option label="随机" :value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6" style="width: 31%; margin-left: 1%">
<el-form-item label="应开始时间" prop="planStartTime">
<el-date-picker
v-model="addForm.planStartTime"
type="date"
placeholder="请选择应开始时间"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
style="width: 98%"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col style="width: 90%; margin-left: 1%">
<el-form-item label="巡检备注" prop="planNotes">
<el-input
style="width: 100%"
type="textarea"
v-model="addForm.planNotes"
placeholder="请输入巡检备注"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="add_all">
<h1
style="
font-size: 16px;
font-weight: 500;
color: rgba(0, 0, 0, 0.85);
line-height: 20px;
"
>
<span
style="
border-left: 4px solid blue;
margin-top: -20px;
height: 15px;
display: inline-block;
transform: translateY(2px);
"
>
</span
>&ensp;<b>巡检点</b>
</h1>
</div>
<el-row :gutter="20">
<el-table
:data="addForm.orderList"
:key="index"
border
style="
margin-bottom: 30px;
width: 92%;
margin-left: 4%;
border-radius: 4px;
"
header-cell-style="background-color:#fafafa;font-size:12px;color:black"
>
<el-table-column
prop="pointStatus"
label="巡检状态"
show-overflow-tooltip
>
<template slot-scope="scope">
<div v-if="scope.row.pointStatus == 0">待检</div>
<div v-if="scope.row.pointStatus == 1">正常</div>
<div v-if="scope.row.pointStatus == 2">异常</div>
<div v-if="scope.row.pointStatus == 3">不巡检</div>
</template>
</el-table-column>
<!-- <el-table-column
prop="people"
label="操作人"
show-overflow-tooltip
></el-table-column> -->
<el-table-column
prop="content"
label="巡检结果"
show-overflow-tooltip
></el-table-column>
<!-- <el-table-column
prop="time"
label="操作时间"
show-overflow-tooltip
></el-table-column> -->
<el-table-column
prop="pointCode"
label="巡检编码"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop="pointName"
label="巡检点"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop="pointContent"
label="巡检内容"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop="pointPos"
label="位置"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop="pointNotes"
label="巡检点备注"
show-overflow-tooltip
></el-table-column>
<!-- <el-table-column
prop="itemCount"
label="检查项数"
show-overflow-tooltip
></el-table-column> -->
<el-table-column
fixed="right"
align="left"
header-align="left"
label="操作"
width="200px"
>
<template slot-scope="scope">
<el-button
class="look"
size="mini"
@click="handleExecute(scope.row)"
>执行</el-button
>
<el-button
class="look"
size="mini"
@click="handleViewCheck(scope.row)"
>检查项</el-button
>
</template>
</el-table-column>
</el-table>
</el-row>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="showAddDialog = false">取 消</el-button>
<el-button @click="handleSubmit()">提 交</el-button>
</span>
</el-dialog>
<!-- 查看巡检任务详情 弹窗 -->
<el-dialog
:before-close="handleClose"
:cell-style="tableCellStyle"
:visible.sync="showTaskDialog"
title="查看巡检任务"
width="70%"
:append-to-body="true"
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<div style="height: 550px; overflow-y: auto; overflow-x: hidden">
<div class="add_all">
<h1
style="
font-size: 16px;
font-weight: 500;
color: rgba(0, 0, 0, 0.85);
line-height: 20px;
"
>
<span
style="
border-left: 4px solid blue;
margin-top: -20px;
height: 15px;
display: inline-block;
transform: translateY(2px);
"
>
</span
>&ensp;<b>基本信息</b>
</h1>
</div>
<el-descriptions :column="3" border direction="vertical">
<el-descriptions-item span="1" label="巡检名称">{{taskForm.planName}}</el-descriptions-item>
<el-descriptions-item span="1" label="计划单据">{{taskForm.taskCode}}</el-descriptions-item>
<el-descriptions-item span="1" label="巡检班组">
{{taskForm.groupName}}
</el-descriptions-item>
<el-descriptions-item span="1" label="实际开始">{{taskForm.actStartTime}}</el-descriptions-item>
<el-descriptions-item span="1" label="实际完成">{{taskForm.actFinishTime}}</el-descriptions-item>
<el-descriptions-item span="2" label="完成用时(时)">{{taskForm.actTotalCost}}</el-descriptions-item>
<el-descriptions-item span="3" label="任务反馈">{{taskForm.content}}</el-descriptions-item>
<el-descriptions-item span="3" label="备注">{{taskForm.notes}}</el-descriptions-item>
</el-descriptions>
<div class="add_all">
<h1
style="
font-size: 16px;
font-weight: 500;
color: rgba(0, 0, 0, 0.85);
line-height: 20px;
"
>
<span
style="
border-left: 4px solid blue;
margin-top: -20px;
height: 15px;
display: inline-block;
transform: translateY(2px);
"
>
</span
>&ensp;<b>巡检计划</b>
</h1>
</div>
<el-descriptions :column="3" border direction="vertical">
<el-descriptions-item span="1" label="巡检顺序">{{taskForm.planInspectionMethod == 1 ? '顺序' : taskForm.planInspectionMethod == 2 ? '随机' : ''}}</el-descriptions-item>
<el-descriptions-item span="1" label="应开始时间">{{taskForm.planStartTime}}</el-descriptions-item>
<el-descriptions-item span="3" label="巡检备注">{{taskForm.planNotes}}</el-descriptions-item>
</el-descriptions>
<div class="add_all">
<h1
style="
font-size: 16px;
font-weight: 500;
color: rgba(0, 0, 0, 0.85);
line-height: 20px;
"
>
<span
style="
border-left: 4px solid blue;
margin-top: -20px;
height: 15px;
display: inline-block;
transform: translateY(2px);
"
>
</span
>&ensp;<b>巡检点</b>
</h1>
</div>
<el-row :gutter="20">
<el-table
:data="taskForm.orderList"
:key="index"
border
style="
margin-bottom: 30px;
width: 92%;
margin-left: 4%;
border-radius: 4px;
"
header-cell-style="background-color:#fafafa;font-size:12px;color:black"
>
<el-table-column
prop="pointStatus"
label="巡检状态"
show-overflow-tooltip
>
<template slot-scope="scope">
<div v-if="scope.row.pointStatus == 0">待检</div>
<div v-if="scope.row.pointStatus == 1">正常</div>
<div v-if="scope.row.pointStatus == 2">异常</div>
<div v-if="scope.row.pointStatus == 3">不巡检</div>
</template>
</el-table-column>
<!-- <el-table-column
prop="people"
label="操作人"
show-overflow-tooltip
></el-table-column> -->
<el-table-column
prop="content"
label="巡检结果"
show-overflow-tooltip
></el-table-column>
<!-- <el-table-column
prop="time"
label="操作时间"
show-overflow-tooltip
></el-table-column> -->
<el-table-column
prop="pointCode"
label="巡检编码"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop="pointName"
label="巡检点"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop="pointContent"
label="巡检内容"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop="pointPos"
label="位置"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop="pointNotes"
label="巡检点备注"
show-overflow-tooltip
></el-table-column>
<el-table-column
fixed="right"
align="left"
header-align="left"
label="操作"
width="100px"
>
<template slot-scope="scope">
<el-button
class="look"
size="mini"
@click="handleViewCheck(scope.row)"
>检查项</el-button
>
</template>
</el-table-column>
</el-table>
</el-row>
</div>
</el-dialog>
<!-- 查看巡检检查项 弹窗 -->
<el-dialog
:before-close="handleClose"
:cell-style="tableCellStyle"
:visible.sync="showCheckProDialog"
height="160vh"
max-height="480"
title="查看检查项"
width="60%"
:append-to-body="true"
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<div style="height: 550px; overflow-y: auto; overflow-x: hidden">
<!-- 查询区-->
<!--<el-form
ref="proForm"
:model="proForm"
label-width="120px"
style="border: 0px solid red; margin-bottom: 8px"
>
<el-row>
<el-col :span="2.5">
<el-input
class="search-input"
v-model="proForm.code"
placeholder="请输入检查项编码"
clearable
></el-input>
</el-col>
<el-col :span="2.5">
<el-input
class="search-input"
clearable
v-model="proForm.name"
placeholder="请输入检查项"
></el-input>
</el-col>
<el-col style="margin-left: 18px" :span="3.5">
<el-button class="search" @click="searchCheck()">查询</el-button>
</el-col>
</el-row>
</el-form> -->
<!-- 表格区 -->
<el-table
ref="maintainTable"
:data="checkTableData"
:row-style="{ height: '66px' }"
:header-cell-style="{
background: '#f6f8fa',
color: '#999999',
fontWeight: '400',
height: '66px',
}"
:row-key="getRowKey"
tooltip-effect="dark"
style="width: 100%; color: #333333"
v-loading="loading"
>
<el-table-column fixed type="selection" :reserve-selection="true" width="50"></el-table-column>
<el-table-column
align="left"
prop="name"
label="检查项"
show-overflow-tooltip
/>
<el-table-column
align="left"
prop="code"
label="检查项编码"
show-overflow-tooltip
/>
<!-- applyStatus:0-暂存 1-提交 2-审批通过 3-审批驳回 4-完成 -->
<el-table-column align="left" prop="checkDesc" width="120" label="检查项描述">
</el-table-column>
</el-table>
<!-- 分页器 -->
<!-- <el-row
:gutter="20"
id="avue-id"
style="margin-top: 40px; margin-bottom: 20px"
>
<el-col :span="12" :offset="8"
><div class="grid-content bg-purple">
<div class="block">
<el-pagination
:current-page="checkPage[0].current"
:page-sizes="[10, 20, 30, 50, 100]"
:page-size="10"
layout="total, sizes, prev, pager, next, jumper"
:total="this.checkTotal"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
</div>
</div>
</el-col>
</el-row> -->
</div>
</el-dialog>
<!-- 巡检点执行 弹窗 -->
<el-dialog
:before-close="handleClose"
:cell-style="tableCellStyle"
:visible.sync="showExecuteDialog"
title="巡检点巡检"
width="50%"
:append-to-body="true"
:close-on-click-modal="false"
:close-on-press-escape="false"
custom-class="planAdd_form"
>
<div style="height: 550px; overflow-y: auto; overflow-x: hidden">
<el-form :model="executeForm" :rules="addRules" ref="executeForm">
<el-row :gutter="20">
<el-col :span="6" style="width: 31%; margin-left: 1%">
<el-form-item label="巡检状态" prop="pointStatus">
<el-select
v-model="executeForm.pointStatus"
placeholder="请选择巡检状态"
style="width: 98%"
>
<el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col style="width: 90%; margin-left: 1%">
<el-form-item label="巡检结果" prop="content">
<el-input
style="width: 100%"
type="textarea"
v-model="executeForm.content"
placeholder="请输入巡检结果"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col style="width: 90%; margin-left: 1%">
<el-form-item label="图片" prop="images">
<el-upload
:headers="headers"
action="/api/blade-lims/inspectionTaskPoint/uploadFile"
:on-success="handleSuccess"
:on-remove="handleRemove"
:limit="1"
:file-list="fileList"
list-type="picture-card">
<i class="el-icon-plus"></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="showExecuteDialog = false"> </el-button>
<el-button @click="handleSubmitExec"> </el-button>
</span>
</el-dialog>
</basic-container>
</template>
<script>
import {getTaskList,saveInsTask,getInsTaskDetail,submitExecute,completeInsTask,deleteInsTask,cancelInsTask} from "@/api/inspection/insTask"
import {getPointDetail} from "@/api/inspection/setting/point"
import {getCheckList} from "@/api/inspection/setting/check"
import {getGroup} from "@/api/inspection/plan"
import { getToken } from "@/util/auth";
let that;
export default {
data() {
return {
showAddDialog: false,
showTaskDialog:false,
showExecuteDialog:false,
showCheckProDialog:false,
proForm:{},
addForm: {
orderList: [],
},
currentId:'',
// 图片
headers: {
"Blade-Auth": "",
}, //认证
imgList:[],
fileList:[],
searchForm: {
name: null,
status: null,
type: null,
code: null,
},
executeForm:{},
option: {
searchMenuSpan: 8,
selection: true,
index: true,
delBtn: false,
editBtn: false,
labelSuffix: " ", //控制标题后缀
labelWidth: 120,
gutter: 20, //设置input的大小
expandLevel: 3,
headerAlign: "left",
menuWidth: 450,
align: "left",
menuPosition: "left",
tree: true,
menuBtn: false,
submitBtn: true,
emptyBtn: false,
addBtn: false,
searchBtn: false,
columnBtn: false,
refreshBtn: false,
tip: false,
border: false,
saveBtn: false,
cancelBtn: false,
dialogWidth: 920,
updateBtn: false,
labelPosition: "top",
dialogCustomClass: "custom",
indexLabel: "序号",
column: [
{
label: "任务单据",
prop: "taskCode",
overHidden: true,
align: "left",
width:"200"
},
{
label: "巡检名称",
prop: "planName",
overHidden: true,
align: "left",
width:"200"
},
{
label: "任务状态",
prop: "taskStatus",
slot: true,
align: "left",
width:"200",
overHidden: true,
},
{
label: "巡检点数(总数)",
prop: "pointCount",
overHidden: true,
align: "left",
width:"200"
},
{
label: "巡检点数(待检)",
prop: "unPointCount",
overHidden: true,
align: "left",
width:"200"
},
{
label: "巡检点数(正常)",
overHidden: true,
prop: "pointNormalCount",
align: "left",
width:"120"
},
{
label: "巡检点数(异常)",
overHidden: true,
prop: "pointAbnormalCount",
align: "left",
},
],
},
data: [],
checkPage:[
{
size: 10,
current: 1,
total: 2,
},
],
checkTotal:0,
listPage:{
current: 1, //当前第几页
total: 0, //总页数
size: 10, //每一页加载多少数据
},
loading:false,
addRules:{
planName:[{required:true,message:'请输入巡检名称',trigger:'blur'}],
groupId:[{required:true,message:'请选择保养班组',trigger:'blur'}],
},
groupList:[],
title:'',
statusList:[
{label:'待检',value:0},
{label:'正常',value:1},
{label:'异常',value:2},
{label:'不巡检',value:3},
],
taskForm:{},
checkTableData:[]
};
},
beforeCreate() {
that = this
},
created() {
this.headers["Blade-Auth"] = getToken();
getGroup().then(res =>{
this.groupList = res.data.data
})
this.onLoad();
},
filters: {
groupName:(data) => {
for (const i in that.groupList) {
const element = that.groupList[i];
if (data == element.id) {
return element.fullName;
}
}
}
},
methods: {
getRowKey(row) {
return row.id;
},
// 查询 0搜索 1重置
searchHandle(val) {
if (val == 0) {
this.onLoad();
} else {
this.searchForm = {
status: null,
name: null,
code: null,
type: null,
};
this.onLoad();
}
},
// 图片上传成功
handleSuccess(response,file,fileList){
this.imgList.push(response.data)
this.fileList.push({url:response.data})
},
// 删除图片
handleRemove(file, fileList){
if(file.status == "success"){
this.imgList = this.imgList.filter(item => item != file.url)
this.fileList = this.imgList.filter(item => item.url != file.url)
}
},
// 按照条数查询检查项
handleSizeChange(val){
this.checkPage[0].size = val
this.searchCheck()
},
// 分页查询保养项目
handleCurrentChange(val){
this.checkPage[0].current = val;
this.searchCheck()
},
// 查询数据
onLoad() {
this.loading = true
getTaskList({current:this.listPage.current,size:this.listPage.size,...this.searchForm}).then(res =>{
this.data = res.data.data.records
this.listPage.total = res.data.data.total
this.loading = false
})
},
// 查看
handleView(row, index) {
getInsTaskDetail(row.id).then(res =>{
console.log('res =====>',res)
this.taskForm = res.data.data
this.taskForm.orderList = res.data.data.taskPointList
this.showTaskDialog = true
})
},
// 编辑巡检任务保存
handleSubmit() {
this.$refs['addForm'].validate((valid) => {
if(valid){
console.log("row ========>", this.addForm);
saveInsTask(this.addForm).then(res =>{
if(res.data.code == 200){
this.$message.success('修改成功')
this.showAddDialog = false
this.listPage.current = 1
this.onLoad()
}
})
}
})
},
// 巡检任务列表分页
currentChange(currentPage) {
this.listPage.current = currentPage;
this.onLoad();
},
// 巡检任务列表条数
sizeChange(pageSize) {
this.listPage.size = pageSize;
this.onLoad();
},
// 打开巡检任务编辑弹窗
handleEdit(row, index) {
this.currentId = row.id
getInsTaskDetail(row.id).then(res =>{
console.log('res =====>',res)
this.addForm = res.data.data
this.addForm.orderList = res.data.data.taskPointList
this.addForm.planInspectionMethod = Number(this.addForm.planInspectionMethod)
this.showAddDialog = true
})
},
// 执行
handleExecute(row,index){
console.log('执行=======>',row)
this.executeForm = {
id:row.id,
taskId:row.taskId,
pointStatus:Number(row.pointStatus),
content:row.content,
imageId:null
}
this.showExecuteDialog = true
},
// 执行提交
handleSubmitExec(){
this.executeForm.imageId = this.imgList.length != 0 ? this.imgList[0] : null
console.log('row =======>',this.executeForm)
submitExecute(this.executeForm).then(res =>{
if(res.data.code == 200){
getInsTaskDetail(this.currentId).then(res =>{
this.addForm = res.data.data
this.addForm.orderList = res.data.data.taskPointList
this.addForm.planInspectionMethod = Number(this.addForm.planInspectionMethod)
this.showExecuteDialog = false
this.onLoad()
this.$message.success('执行成功')
})
}
})
},
// 查看检查项
handleViewCheck(row){
getPointDetail(row.pointId).then(res =>{
console.log('检查项===>',res)
this.checkTableData = res.data.data.checkItemList
this.showCheckProDialog = true
})
},
// 查询检查项
searchCheck(){
console.log('pro ====>',this.proForm)
getCheckList({current:this.checkPage[0].current,size:this.checkPage[0].size,...this.proForm}).then(res =>{
console.log('pros ====>',res)
this.checkTableData = res.data.data.records
this.checkTotal = res.data.data.total
})
},
// 删除巡检任务
handleDelete(row,index){
this.$confirm("确定删除此巡检任务吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
deleteInsTask(row.id).then(res =>{
if(res.data.code == 200){
this.$message.success('删除成功')
this.onLoad()
}
})
})
},
// 完成巡检任务
handleFinish(row){
this.$confirm("确定完成此巡检任务吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
completeInsTask(row.id).then(res =>{
if(res.data.code == 200){
this.$message.success('任务完成')
this.onLoad()
}
})
})
},
// 取消巡检任务
handleCancel(row){
this.$confirm("确定取消此巡检任务吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
cancelInsTask(row.id).then(res =>{
if(res.data.code == 200){
this.$message.success('取消成功')
this.onLoad()
}
})
})
}
},
};
</script>
<style lang="scss" scoped>
::v-deep .el-table td.el-table__cell,
.el-table th.el-table__cell.is-leaf {
border-bottom: 1px solid #f0f3f7;
}
::v-deep .el-table .el-table__cell.is-center {
text-align: left;
}
::v-deep .avue-crud .el-table th {
color: #999999;
font-weight: 400;
background: #f6f8fa;
height: 66px;
}
::v-deep .avue-crud .el-table td {
height: 66px;
color: #333333;
}
::v-deep .el-table .el-table__cell.is-center {
text-align: left;
}
::v-deep .el-table__row .el-button--default,
.el-table__row .el-button--text {
background-color: #fff !important;
}
// 按钮样式
::v-deep .el-table__row .el-button--default,
.el-table__row .el-button--text {
background-color: #fff !important;
width: 70px;
height: 36px;
border-radius: 0;
padding: 10px;
border-color: #e4e7ec;
color: #333333;
}
// /deep/ .avue-crud__pagination {
// height: 30px;
// padding-top: 30px;
// padding-bottom: 30px;
// }
.search-input {
width: 255px;
height: 46px;
margin-left: 10px;
/deep/ .el-input__inner {
width: 255px;
height: 46px;
}
}
.search {
color: #fff;
background-color: #1e60f5;
border-color: #1e60f5;
height: 46px;
width: 100px;
border-radius: 0px;
// margin-left:18px!important;
margin-right: 0 !important;
}
// 重置按钮
.reset {
color: #999999;
background-color: #fff;
border-color: #e4e7ec;
height: 46px;
width: 100px;
margin-left: 18px !important;
border-radius: 0px;
}
.search-picker {
width: 240px;
height: 46px;
border-radius: 0;
margin-left: 10px;
}
.search-select {
width: 240px !important;
height: 46px;
border-radius: 0;
margin-left: 10px;
/deep/ .el-input__inner {
width: 240px;
height: 46px;
}
}
.search_select {
width: 150px !important;
height: 46px;
border-radius: 0;
margin-left: 10px;
/deep/ .el-input__inner {
width: 150px;
height: 46px;
}
}
// 新增取消确定
.buttonOne {
color: #999999;
background-color: #fff;
border-color: #e4e7ec;
height: 46px;
width: 100px;
border-radius: 0px;
margin-left: 20px;
}
.buttonOne:hover {
color: #fff;
background-color: #1e60f5;
border-color: #1e60f5;
height: 46px;
width: 100px;
border-radius: 0px;
margin-left: 20px;
}
// 分页
::v-deep .el-pagination .el-select .el-input .el-input__inner {
height: 20px;
}
</style>
<style lang="scss">
/*选择日期,年份的隐藏 */
.picker-dateNoneYear {
.el-date-picker__header {
span:nth-child(3) { /*第三个标签是span的标签,把它隐藏*/
display: none;
}
button:nth-child(1) {
display: none;
}
button:nth-child(5) {
display: none;
}
}
}
</style>