nw-cqdevicemgt-ui/src/views/repairTest/testExamine/index.vue

1215 lines
49 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="app-container" id="testExamine">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-form-item label="关键字" prop="keyword">
<el-input
v-model="queryParams.keyword"
placeholder="请输入关键字"
clearable
maxlength="50"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="单位名称" prop="backUnit">
<el-select
v-model="queryParams.backUnit"
placeholder="请选择单位名称"
clearable
filterable
style="width: 240px"
>
<el-option
v-for="dict in unitInfoSelectList"
:key="dict.unitId"
:label="dict.unitName"
:value="dict.unitId"
/>
</el-select>
</el-form-item>
<el-form-item label="工程名称" prop="backPro">
<el-select
v-model="queryParams.backPro"
placeholder="请选择工程名称"
clearable
filterable
style="width: 240px"
>
<el-option
v-for="dict in projectSelectList"
:key="dict.projectId"
:label="dict.projectName"
:value="dict.projectId"
/>
</el-select>
</el-form-item>
<el-form-item label="工机具类型" prop="type">
<!-- <selectTree-->
<!-- ref="mychild"-->
<!-- style="width: 240px"-->
<!-- :treeList="deptList"-->
<!-- :treeProps="{-->
<!-- children: 'children',-->
<!-- label: 'label',-->
<!-- }"-->
<!-- nodeKey="id"-->
<!-- :defaultSelect="true"-->
<!-- :defaultData="defaultData"-->
<!-- :clearable="true"-->
<!-- :placeholder="'请选择'"-->
<!-- @handleNodeClick="selectDrop"-->
<!-- ></selectTree>-->
<Tree ref="mychildSon" :width="240" :dataList="deptList" @changeId="selectDrop"></Tree>
</el-form-item>
<el-form-item label="修试审核单号" prop="backCode">
<el-input
v-model="queryParams.backCode"
placeholder="请选择修试审核单号"
clearable
maxlength="50"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="修试审核状态" prop="taskStatus">
<el-select
v-model="queryParams.taskStatus"
placeholder="请选择修试审核状态"
clearable
filterable
style="width: 240px"
>
<el-option v-for="dict in dicSelectList" :key="dict.id" :label="dict.name" :value="dict.id" />
</el-select>
</el-form-item>
<el-form-item label="任务创建时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" :disabled="multiple" @click="checkClick"
>批量审核</el-button
>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
>导出</el-button
>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="typeList" @selection-change="handleSelectionChange" border>
<el-table-column type="selection" width="55" align="center" :selectable="selectable" />
<el-table-column
label="序号"
align="center"
width="80"
type="index"
:index="indexContinuation(queryParams.pageNum, queryParams.pageSize)"
>
<!-- <template slot-scope="scope">
<span>{{
(queryParams.pageNum - 1) * 10 + scope.$index + 1
}}</span>
</template> -->
</el-table-column>
<el-table-column label="修试审核单号" align="center" prop="scrapNum" show-overflow-tooltip />
<el-table-column label="单位名称" align="center" prop="unitName" show-overflow-tooltip />
<el-table-column label="工程名称" align="center" prop="projectName" show-overflow-tooltip />
<el-table-column label="机具类型" align="center" prop="itemType" show-overflow-tooltip />
<el-table-column label="任务创建人" align="center" prop="createBy" show-overflow-tooltip />
<el-table-column label="任务创建时间" align="center" prop="createTime" show-overflow-tooltip />
<el-table-column label="维修单号" align="center" prop="repairNum" show-overflow-tooltip />
<el-table-column label="审核状态" align="center" prop="taskStatusName" show-overflow-tooltip />
<el-table-column label="不通过原因" align="center" prop="remark" show-overflow-tooltip />
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-zoom-in" @click="handleSee(scope.row, 'see')"
>查看</el-button
>
<!-- -->
<el-button
size="mini"
type="text"
icon="el-icon-circle-check"
:disabled="scope.row.taskStatus !== 46"
@click="handleUpdate(scope.row, 'update')"
>审核</el-button
>
<el-button size="mini" type="text" icon="el-icon-document" @click="openUpkeep(scope.row)"
>保养记录表</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改参数配置对话框 -->
<el-dialog :title="dialogTitle" :visible.sync="open" width="1300px" append-to-body :before-close="onClose">
<el-form
:model="dialogQueryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-row>
<el-form-item label="关键字" prop="keyword">
<el-input
v-model="dialogQueryParams.keyword"
placeholder="请输入关键字"
:clearable="false"
maxlength="50"
style="width: 240px"
/>
</el-form-item>
<el-form-item label="机具名称" prop="typeName">
<!-- <treeselect
style="width: 250px"
v-model="dialogQueryParams.typeName"
:options="deptList"
:normalizer="normalizer"
placeholder="请选择类型名称"
/> -->
<selectTree
ref="mychildDialog"
style="width: 240px"
:treeList="deptList"
:treeProps="{
children: 'children',
label: 'label',
}"
nodeKey="id"
:defaultSelect="true"
:defaultData="defaultData"
:clearable="false"
:placeholder="'请选择'"
@handleNodeClick="selectDropDialog"
></selectTree>
</el-form-item>
<el-form-item label="规格型号" prop="type">
<selectTree
ref="mychildDialogTwo"
style="width: 240px"
:treeList="deptTypeList"
:treeProps="{
children: 'children',
label: 'label',
}"
nodeKey="id"
:defaultSelect="true"
:defaultData="defaultData"
:clearable="false"
:placeholder="'请选择'"
@handleNodeClick="selectDropDialogTwo"
></selectTree>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getdialogList"
>查询</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQueryDialog">重置</el-button>
</el-form-item>
</el-row>
</el-form>
<el-table
v-loading="loading"
:data="dialogList"
height="500px"
@selection-change="handleDialogSelectionChange"
>
<el-table-column type="selection" width="55" align="center" :selectable="selectableDialog" />
<!-- <el-table-column
label="序号"
align="center"
width="80"
type="index"
>
<template scope="scope">
<span>{{
(dialogQueryParams.pageNum - 1) * 10 +
scope.$index +
1
}}</span>
</template>
</el-table-column> -->
<el-table-column
align="center"
label="序号"
type="index"
:index="indexContinuation(queryParams.pageNum, queryParams.pageSize)"
/>
<el-table-column label="机具名称" align="center" prop="machineTypeName" :show-overflow-tooltip="true" />
<el-table-column
label="规格型号"
align="center"
prop="specificationType"
:show-overflow-tooltip="true"
/>
<el-table-column label="编码" align="center" prop="maCode" width="200" :show-overflow-tooltip="true" />
<el-table-column label="维修总量" align="center" prop="repairNum" :show-overflow-tooltip="true" />
<el-table-column label="维修数量" align="center" prop="repairedNum" :show-overflow-tooltip="true" />
<el-table-column label="报废数量" align="center" prop="scrapNum" :show-overflow-tooltip="true" />
<el-table-column label="状态" align="center" prop="status" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="scope.row.status == '0'">未审核</span>
<span v-if="scope.row.status == '1'">通过</span>
<span v-if="scope.row.status == '2'">驳回</span>
</template>
</el-table-column>
<el-table-column label="附件" align="center" prop="fileList" :show-overflow-tooltip="true">
<template slot-scope="scope">
<el-upload
class="upload-demo"
:action="uploadUrl"
:headers="headers"
accept="image/*,application/pdf,.doc,.docx"
multiple
:limit="5"
:on-preview="handlePreview"
:before-remove="beforeRemove"
:on-remove="(file, fileList) => handleRemove(file, fileList, scope.row)"
:on-exceed="handleExceed"
:before-upload="beforeUpload"
:file-list="scope.row.fileList"
:on-success="(res, file, fileList) => handleSuccess(res, file, fileList, scope.row)"
>
<el-button size="small" type="text">点击上传</el-button>
</el-upload>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200px">
<template slot-scope="scope">
<el-button size="mini" type="primary" icon="el-icon-zoom-in" @click="repairRecord(scope.row)"
>维修记录</el-button
>
<!-- <el-button
size="mini"
type="warning"
icon="el-icon-circle-check"
@click="partRecord(scope.row)"
>配件详情</el-button> -->
</template>
</el-table-column>
</el-table>
<pagination
v-show="dialogTotal > 0"
:total="dialogTotal"
:page.sync="dialogQueryParams.pageNum"
:limit.sync="dialogQueryParams.pageSize"
@pagination="getdialogList"
/>
<div
slot="footer"
class="dialog-footer-btn"
style="text-align: center"
v-if="type == 'update' && dialogList.length !== 0"
>
<el-button type="primary" @click="submitForm(1)" :disabled="dialogMultiple">通过</el-button>
<el-button @click="returnSubmit(1)" :disabled="dialogMultiple">不通过</el-button>
</div>
</el-dialog>
<!-- 维修记录 -->
<el-dialog
v-loading.fullscreen.lock="fullscreenLoading"
:title="title"
:visible.sync="openRepairRecord"
append-to-body
width="1200px"
>
<el-table :data="repairRecordList" height="450px">
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{ (repairRecordParams.pageNum - 1) * 10 + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="维修内容" align="center" prop="repairContent" :show-overflow-tooltip="true" />
<el-table-column label="维修数量" align="center" prop="repairNum" :show-overflow-tooltip="true" />
<el-table-column label="维修人" align="center" prop="repairer" :show-overflow-tooltip="true" />
<el-table-column label="维修方式" align="center" prop="repairType" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="scope.row.repairType == '1'">内部</span>
<span v-if="scope.row.repairType == '2'">返厂</span>
<span v-if="scope.row.repairType == '3'">报废</span>
</template>
</el-table-column>
<el-table-column label="返厂名称" align="center" prop="supplier" :show-overflow-tooltip="true" />
<el-table-column label="报废原因" align="center" prop="scrapReason" :show-overflow-tooltip="true" />
<el-table-column label="报废数量" align="center" prop="scrapNum" :show-overflow-tooltip="true" />
<el-table-column label="报废类型" align="center" prop="scrapType" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="scope.row.scrapType == '0'">自然报废</span>
<span v-if="scope.row.scrapType == '1'">人为报废</span>
</template>
</el-table-column>
<!-- <el-table-column-->
<!-- label="配件名称"-->
<!-- align="center"-->
<!-- prop="partName"-->
<!-- :show-overflow-tooltip="true"-->
<!-- />-->
<el-table-column label="配件数量" align="center" prop="partNum" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span @click="partRecord(scope.row)" style="color: blue; text-decoration: underline">{{
scope.row.partNum
}}</span>
</template>
</el-table-column>
<!-- <el-table-column-->
<!-- label="配件单价"-->
<!-- align="center"-->
<!-- prop="partPrice"-->
<!-- :show-overflow-tooltip="true"-->
<!-- />-->
<el-table-column label="类型" align="center" prop="partType" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="scope.row.partType == '0'">不收费</span>
<span v-if="scope.row.partType == '1'">收费</span>
</template>
</el-table-column>
</el-table>
<pagination
v-show="repairRecordTotal > 0"
:total="repairRecordTotal"
:page.sync="repairRecordParams.pageNum"
:limit.sync="repairRecordParams.pageSize"
@pagination="getRepairRecordList"
/>
</el-dialog>
<!-- 维修记录 -->
<el-dialog
v-loading.fullscreen.lock="fullscreenLoading"
:title="title"
:visible.sync="openPartRecord"
append-to-body
width="1200px"
>
<el-table :data="partRecordList" height="450px">
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{ (partRecordParams.pageNum - 1) * 10 + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="配件名称" align="center" prop="partName" :show-overflow-tooltip="true" />
<el-table-column label="配件数量" align="center" prop="partNum" :show-overflow-tooltip="true" />
<el-table-column label="配件费用" align="center" prop="partCost" :show-overflow-tooltip="true" />
<!-- <el-table-column-->
<!-- label="类型"-->
<!-- align="center"-->
<!-- prop="partType"-->
<!-- :show-overflow-tooltip="true"-->
<!-- >-->
<!-- <template slot-scope="scope">-->
<!-- <span v-if="scope.row.partType == '0'">不收费</span>-->
<!-- <span v-if="scope.row.partType == '1'">收费</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
</el-table>
<pagination
v-show="partRecordTotal > 0"
:total="partRecordTotal"
:page.sync="partRecordParams.pageNum"
:limit.sync="partRecordParams.pageSize"
@pagination="getPartRecordList"
/>
</el-dialog>
<el-dialog
v-loading.fullscreen.lock="fullscreenLoading"
:title="title"
:visible.sync="openOne"
append-to-body
width="400px"
>
<div class="submit_box">
<div>
<i class="el-icon-circle-check" style="color: #ff9900; font-size: 30px"></i>
</div>
<div class="submit_box_title">
<div>{{ openTextOne }}</div>
<div>{{ openTextTwo }}</div>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="submitOpenOneFeturn">返回</el-button>
<el-button type="primary" @click="submitOpenOneForm()">确定</el-button>
</div>
</el-dialog>
<el-dialog
v-loading.fullscreen.lock="fullscreenLoading"
:title="title"
:visible.sync="openTwo"
append-to-body
width="400px"
:before-close="openTextThreeClose"
>
<div class="submit_box_two">
<div>
<i class="el-icon-circle-check" style="color: #00c196; font-size: 30px"></i>
</div>
<div class="submit_box_title">{{ openTextThree }}</div>
</div>
<div slot="footer" class="dialog-footer"></div>
</el-dialog>
<el-dialog
v-loading.fullscreen.lock="fullscreenLoading"
:title="title"
:visible.sync="openThree"
append-to-body
width="800px"
>
<div class="submit_box">
<el-form ref="form" :model="form" :rules="rules" label-width="140px">
<el-form-item label="请输入驳回原因:" prop="remark">
<el-input
style="width: 600px"
type="textarea"
v-model="form.remark"
:autosize="{ minRows: 2, maxRows: 4 }"
show-word-limit
maxlength="100"
></el-input>
</el-form-item>
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="formCancel">返回</el-button>
<el-button type="primary" @click="formSubmit">保存</el-button>
</div>
</el-dialog>
<el-dialog
v-loading.fullscreen.lock="fullscreenLoading"
:title="title"
:visible.sync="openFour"
append-to-body
width="400px"
>
<div class="submit_box_openFour"> 你选择了{{ selectionList.length }}条数据,请进行审批 </div>
<div slot="footer" class="dialog-footer">
<el-button @click="submitForm(2)" type="primary">通过</el-button>
<el-button @click="returnSubmit(2)">不通过</el-button>
</div>
</el-dialog>
<!-- 维修记录表 -->
<el-dialog title="维修记录表" :visible.sync="upkeepVisible" width="46%">
<vue-easy-print tableShow ref="printRef">
<div style="padding: 0 30px">
<h2 style="text-align: center; font-size: 33px">重庆市送变电工程有限公司</h2>
<h3 style="text-align: center; font-size: 28px">设备维修保养记录表</h3>
<div
style="
border: 1px solid #000;
min-height: 800px;
line-height: 1.9;
font-size: 20px;
position: relative;
box-sizing: border-box;
width: 100%;
"
>
<!-- 第一行 -->
<div style="display: flex; border-bottom: 1px solid #000">
<div style="text-align: center; border-right: 1px solid #000; width: 25%">设备名称</div>
<div style="text-align: center; border-right: 1px solid #000; width: 25%">型号厂家</div>
<div style="text-align: center; border-right: 1px solid #000; width: 18%">编号</div>
<div style="text-align: center; border-right: 1px solid #000; width: 12%">数量</div>
<div style="text-align: center; border-right: 1px solid #000; width: 20%">主修人</div>
<div style="text-align: center; width: 20%">验收人</div>
</div>
<!-- 第二行 -->
<div style="display: flex; border-bottom: 1px solid #000">
<div style="text-align: center; border-right: 1px solid #000; width: 25%">{{
upkeepObj.typeName
}}</div>
<div style="text-align: center; border-right: 1px solid #000; width: 25%">{{
upkeepObj.itemType
}}</div>
<div
style="
text-align: center;
border-right: 1px solid #000;
width: calc(18%);
white-space: pre-wrap;
word-break: break-word;
"
><span style="margin: 0 5px">{{ upkeepObj.repairNum }}</span></div
>
<div style="text-align: center; border-right: 1px solid #000; width: 12%">{{
upkeepObj.num
}}</div>
<div style="text-align: center; border-right: 1px solid #000; width: 20%">{{
upkeepObj.createBy
}}</div>
<div style="text-align: center; width: 20%">{{ upkeepObj.createBy }}</div>
</div>
<!-- 第三行 -->
<div style="display: flex; border-bottom: 1px solid #000">
<div style="padding-left: 10px; border-right: 1px solid #000; width: 20.85%">设备名称</div>
<div style="padding-left: 10px">{{ upkeepObj.unitName }} {{ upkeepObj.projectName }}</div>
</div>
<!-- 第四行 -->
<div style="width: 100%; min-height: 200px; border-bottom: 1px solid #000; padding-left: 10px"
>设备维修前情况:
</div>
<!-- 第五行 -->
<div style="width: 100%; min-height: 200px; border-bottom: 1px solid #000; padding-left: 10px"
>技术鉴定情况:
</div>
<!-- 第六行 -->
<div style="width: 100%; min-height: 200px; padding-left: 10px">维修处理情况: </div>
<div
style="
width: 100%;
border-top: 1px solid #000;
padding-left: 10px;
position: absolute;
bottom: 20px;
left: 0;
"
>验收情况:
</div>
</div>
<div style="text-align: end; font-size: 20px; margin-top: 20px">
<span>{{ '2025' }} 年 </span>
<span>{{ '3' }} 月 </span>
<span>{{ '10' }} 日 </span>
</div>
</div>
</vue-easy-print>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="print">打 印</el-button>
<el-button @click="upkeepVisible = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {
getQuestListApi,
getRepairAuditListApi,
addDetailsAuditApi,
getRepairRecord,
getPartRecord,
} from '@/api/repairTest/testExamine'
import { getProjectList } from '@/api/claimAndRefund/receive'
import {
getUnitInfoSelectApi,
getProjectSelectApi,
getDicSelectApi,
listPartTypeApi,
getMaTypeSelectApi,
} from '@/api/repairTest/repair'
import selectTree from '../repair/selectTree.vue'
import Tree from '@/views/repairTest/repair/tree.vue'
import vueEasyPrint from 'vue-easy-print'
export default {
name: 'TestExamine',
components: { Tree, selectTree, vueEasyPrint },
dicts: ['sys_normal_disable'],
data() {
return {
uploadUrl: process.env.VUE_APP_BASE_API + '/system/sys/file/upload', // 上传的图片服务器地址
headers: {
Authorization: 'Bearer ' + localStorage.getItem('token'),
},
checkResultOne: false,
defaultData: null,
selectionList: [],
unitInfoSelectList: [],
projectSelectList: [],
dicSelectList: [],
dialogList: [],
deptList: [],
deptTypeList: [],
rowObj: {},
fullscreenLoading: false,
openOne: false,
openTwo: false,
openThree: false,
openFour: false,
openTextOne: '',
openTextTwo: '',
openTextThree: '',
type: '',
// 遮罩层
loading: false,
// 选中数组
ids: [],
dialogIds: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 非单个禁用
dialogSingle: true,
// 非多个禁用
dialogMultiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
dialogTotal: 0,
// 字典表格数据
typeList: [],
// 弹出层标题
title: '',
dialogTitle: '',
// 是否显示弹出层
open: false,
// 日期范围
dateRange: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
keyword: '',
backUnit: '',
backPro: '',
type: '',
backCode: '',
taskStatus: '',
},
dialogQueryParams: {
pageNum: 1,
pageSize: 10,
},
// 表单参数
form: {},
// 表单校验
rules: {
remark: [
{
required: true,
message: '原因不能为空',
trigger: 'blur',
},
{
min: 1,
max: 100,
message: '长度在 1 到 100 个字符',
trigger: 'blur',
},
],
},
repairId: '',
openRepairRecord: false,
repairRecordList: [],
repairRecordParams: {
pageNum: 1,
pageSize: 10,
},
repairRecordTotal: 0,
openPartRecord: false,
partRecordList: [],
partRecordParams: {
pageNum: 1,
pageSize: 10,
},
partRecordTotal: 0,
upkeepVisible: false, // 维修记录表
upkeepObj: {},
}
},
created() {
this.getList()
getUnitInfoSelectApi().then((res) => {
this.unitInfoSelectList = res.data
})
getProjectList().then((res) => {
this.projectSelectList = res.data
})
getDicSelectApi({ value: 'ws_shenhe' }).then((res) => {
this.dicSelectList = res.data
})
this.getTree()
},
methods: {
/** 查询字典类型列表 */
getList() {
this.loading = true
getQuestListApi(this.addDateRange(this.queryParams, this.dateRange)).then((response) => {
this.typeList = response.rows
this.total = response.total
this.loading = false
})
},
// 封装弹框页面查询
getdialogList() {
let params = {
taskId: this.rowObj.taskId,
pageNum: this.dialogQueryParams.pageNum,
keyword: this.dialogQueryParams.keyword,
typeName: this.dialogQueryParams.typeName,
type: this.dialogQueryParams.type,
pageSize: this.dialogQueryParams.pageSize,
}
// this.loading = true;
getRepairAuditListApi(params)
.then((response) => {
if (response.code == 200) {
// this.loading = false;
this.open = true
this.dialogList = response.rows
this.dialogTotal = response.total
this.repairId = rows.repairId
}
})
.catch(() => {})
},
checkClick() {
this.title = '审批'
this.openFour = true
},
// 取消按钮
cancel() {
this.open = false
this.reset()
},
// 表单重置
reset() {
this.form = {
dictId: undefined,
dictName: undefined,
dictType: undefined,
status: '0',
remark: undefined,
}
this.resetForm('form')
},
onClose() {
this.open = false
this.queryParams.type = ''
// this.resetQueryDialog()
this.getList()
},
resetQueryDialog() {
this.dialogQueryParams = {}
this.resetForm('dialogQueryParams')
this.$refs.mychildDialog.clearSelect()
this.$refs.mychildDialogTwo.clearSelect()
this.dialogQueryParams.pageNum = 1
this.dialogQueryParams.pageSize = 10
this.getdialogList()
},
selectDrop(value) {
this.queryParams.type = value
},
selectDropDialog(value) {
this.dialogQueryParams.typeName = value
},
selectDropDialogTwo(value) {
this.dialogQueryParams.type = value
},
getTree() {
listPartTypeApi().then((response) => {
this.deptList = response.data
// this.deptList = this.handleTree(response.data, "id");
})
getMaTypeSelectApi().then((response) => {
this.deptTypeList = response.data
})
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = []
this.queryParams.backUnit = ''
this.queryParams.backPro = ''
this.resetForm('queryForm')
this.$refs.mychildSon.inputValue = ''
this.queryParams.type = ''
this.handleQuery()
},
/** 新增按钮操作 */
handleAdd() {
this.reset()
this.open = true
this.title = '新建'
},
selectable(row) {
if (row.taskStatus == 46) {
return true
} else {
return false
}
},
selectableDialog(row) {
if (row.status == '0') {
return true
} else {
return false
}
},
// 多选框选中数据
handleSelectionChange(selection) {
this.selectionList = selection
this.checkResultOne = selection.every((item) => item.taskStatus == 46)
this.ids = selection.map((item) => item.dictId)
this.single = selection.length != 1
this.multiple = !selection.length
// console.log(this.checkResultOne)
console.log(this.checkResultOne)
},
handleDialogSelectionChange(selection) {
this.dialogIds = selection.map((item) => item)
this.dialogSingle = selection.length != 1
this.dialogMultiple = !selection.length
console.log(this.checkResultOne)
},
handleSee(row, type) {
this.dialogTitle = '查看'
this.rowObj = row
this.reset()
this.type = type
this.getdialogList()
},
/** 修改按钮操作 */
handleUpdate(row, type) {
this.dialogTitle = '审核'
this.rowObj = row
this.reset()
this.type = type
this.getdialogList()
},
/** 提交按钮 */
submitForm(val) {
// val 1代表对话框中审核 2代表批量审核
this.checkResult = val
this.openOne = true
this.openFour = false
this.openTextOne = '确定审批通过么?'
this.openTextTwo = '确定审批通过么?'
},
submitOpenOneForm() {
this.openOne = false
this.open = false
// val 1代表对话框中审核 2代表批量审核
if (this.checkResult == 1) {
let taskIdList = []
taskIdList.push(this.rowObj.taskId)
let params = {
checkResult: '通过',
taskIdList: taskIdList,
auditDetailList: this.dialogIds,
}
// console.log(params)
addDetailsAuditApi(params)
.then((res) => {
this.openTwo = true
this.open = false
this.openTextThree = '审批通过!'
// this.getdialogList()
this.getList()
})
.catch(() => {})
}
if (this.checkResult == 2) {
let taskIdList = []
this.selectionList.map((item) => {
taskIdList.push(item.taskId)
})
let params = {
checkResult: '通过',
taskIdList: taskIdList,
}
addDetailsAuditApi(params)
.then((res) => {
this.openTwo = true
this.openTextThree = '审批通过!'
this.getList()
})
.catch(() => {})
}
},
openTextThreeClose() {
this.open = false
this.openOne = false
this.openTwo = false
this.openThree = false
this.openFour = false
this.getList()
},
submitOpenOneFeturn() {
this.openOne = false
},
//维修记录
repairRecord(row) {
this.repairRecordParams.pageNum = 1
this.repairRecordParams.pageSize = 10
this.repairId = row.repairId
console.log(this.repairId, 'repairId')
this.getRepairRecordList()
},
getRepairRecordList() {
let params = {
repairId: this.repairId,
pageNum: this.repairRecordParams.pageNum,
pageSize: this.repairRecordParams.pageSize,
}
getRepairRecord(params)
.then((res) => {
this.repairRecordList = res.rows
this.repairRecordTotal = res.total
this.openRepairRecord = true
this.title = '维修记录'
})
.catch(() => {})
},
//配件详情
partRecord(row) {
this.partRecordParams.pageNum = 1
this.partRecordParams.pageSize = 10
// this.repairId = row.repairId
// console.log(row, 'row===============')
console.log(this.repairId)
console.log(111111111111)
this.getPartRecordList(row)
},
getPartRecordList() {
let params = {
repairId: this.repairId,
pageNum: this.partRecordParams.pageNum,
pageSize: this.partRecordParams.pageSize,
}
console.log(params)
getPartRecord(params)
.then((res) => {
this.partRecordList = res.rows
this.partRecordTotal = res.total
this.openPartRecord = true
this.title = '配件详情'
})
.catch(() => {})
},
returnSubmit(val) {
this.checkResult = val
this.title = '驳回原因'
this.openThree = true
},
formCancel() {
this.$refs.form.resetFields()
this.openThree = false
},
formSubmit() {
this.$refs.form.validate((valid) => {
if (valid) {
if (this.checkResult == 1) {
let taskIdList = []
taskIdList.push(this.rowObj.taskId)
let params = {
checkResult: '不通过',
taskIdList: taskIdList,
auditDetailList: this.dialogIds,
remark: this.form.remark,
}
addDetailsAuditApi(params)
.then((res) => {
this.$refs.form.resetFields()
this.formCancel()
this.open = false
this.openThree = false
// this.getdialogList()
this.getList()
})
.catch(() => {})
}
if (this.checkResult == 2) {
let taskIdList = []
this.selectionList.map((item) => {
taskIdList.push(item.taskId)
})
let params = {
checkResult: '不通过',
taskIdList: taskIdList,
remark: this.form.remark,
}
addDetailsAuditApi(params)
.then((res) => {
// if (res.code == 200) {
this.$refs.form.resetFields()
this.openThree = false
this.openFour = false
this.getList()
// }
})
.catch(() => {})
}
} else {
return false
}
})
},
/** 导出按钮操作 */
handleExport() {
this.download(
'material/details/export',
{
...this.queryParams,
},
`试验检验单_${new Date().getTime()}.xlsx`,
)
},
// 维修记录表-打印
print() {
this.$nextTick(() => {
this.$refs.printRef.print()
})
},
// 维修记录表
openUpkeep(row) {
console.log('🚀 ~ openUpkeep ~ row:', row)
this.upkeepVisible = true
this.upkeepObj = row
},
handlePreview(file) {
console.log('🚀 ~ handlePreview ~ file:', file)
if (file.response) {
window.open(file.response.data.fileUrl)
} else {
window.open(file.fileUrl)
}
},
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 5 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
files.length + fileList.length
} 个文件`,
)
},
beforeUpload(file) {
const isLtMB = file.size / 1024 / 1024 < 20
if (!isLtMB) {
this.$message.error('上传文件大小不能超过 20MB!')
}
return isLtMB
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name} `)
},
handleSuccess(res, file, fileList, row) {
console.log('🚀 ~ handleSuccess ~ res:', res)
console.log('🚀 ~ handleSuccess ~ file:', file)
console.log('🚀 ~ handleSuccess ~ fileList:', fileList)
console.log('🚀 ~ handleSuccess ~ row:', row)
if (res.code == 200) {
if (!row.fileList) {
row.fileList = []
}
row.fileList.push({
typeId: row.typeId,
fileName: res.data.fileName,
fileUrl: res.data.fileUrl,
})
}
console.log('🚀 ~ row.fileList=fileList.map ~ row.fileList:', row.fileList)
},
},
}
</script>
<style lang="scss" scoped>
.submit_box {
display: flex;
justify-content: flex-start;
align-items: center;
.submit_box_title {
display: flex;
flex-direction: column;
margin-left: 15px;
:first-child {
font-size: 14px;
font-weight: 600;
}
:last-child {
margin-top: 6px;
font-size: 12px;
}
}
}
.submit_box_two {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
align-items: center;
margin-left: 40%;
.submit_box_title {
display: flex;
flex-direction: column;
margin-left: 10px;
font-size: 18px;
font-weight: 600;
}
}
::v-deep.el-table .fixed-width .el-button--mini {
width: 70px !important;
margin-bottom: 6px;
}
.dialog-footer-btn {
display: flex;
align-items: center;
justify-content: flex-end;
}
.submit_box_openFour {
display: flex;
justify-content: center;
align-content: center;
font-size: 18px;
}
</style>