1565 lines
51 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="fullHeight whiteBlock">
<div style="padding: 15px 15px 0">
<p class="pageTitle">自有设备管理</p>
<el-form
:inline="true"
ref="searchForm"
:model="searchForm"
size="medium"
>
<el-form-item label="设备名称">
<el-input
v-model="searchForm.deviceName"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" plain @click="getList">{{
$t('message.energyManage.waybill.query')
}}</el-button>
<el-button type="warning" plain @click="refresh">{{
$t('message.deviceManage.refresh')
}}</el-button>
<el-button type="primary" size="medium" @click="add(1)"
>新增</el-button
>
</el-form-item>
</el-form>
</div>
<div class="table_wrap whiteBlock">
<el-table class="tables" :data="List" @row-click="showDetailFn">
<el-table-column
prop="deviceName"
label="设备名称"
align="center"
></el-table-column>
<el-table-column
prop="deviceType"
align="center"
label="设备类型"
></el-table-column>
<el-table-column
prop="deviceModel"
align="center"
label="设备型号"
></el-table-column>
<el-table-column
prop="structuralForm"
align="center"
label="结构形式"
></el-table-column>
<el-table-column
prop="propertyFilingNumber"
align="center"
label="产权备案编号"
></el-table-column>
<el-table-column
prop="manufacturingLicenseNumber"
align="center"
label="制造许可证号"
></el-table-column>
<el-table-column
prop="manufacturer"
align="center"
label="生产厂家"
></el-table-column>
<el-table-column
prop="appearanceDate"
align="center"
label="出场日期"
></el-table-column>
<el-table-column
prop="ratedLoadCapacity"
align="center"
label="额定载重重量"
></el-table-column>
<!-- <el-table-column
prop="rentalUnit"
align="center"
label="租赁单位"
></el-table-column> -->
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<div class="tableBtns" style="margin-left: 10px !important">
<div @click.stop="edit(scope.row, 1)" class="operationText">
<img
src="@/assets/images/icon-edit.png"
width="15px"
height="15px"
/>
<span>编辑</span>
</div>
<div @click.stop="deleteDev(scope.row, 1)" class="operationText">
<img
src="@/assets/images/icon-delete.png"
width="15px"
height="15px"
/>
<span>删除</span>
</div>
</div>
</template>
</el-table-column>
</el-table>
<el-pagination
class="pagerBox"
@size-change="SizeChange"
@current-change="CurrentChange"
:current-page="pagInfo.pageNo"
:page-sizes="$store.state.PAGESIZRS"
:page-size="pagInfo.pageSize"
layout="total, sizes, prev, pager, next"
:total="Number(pagInfo.total)"
background
></el-pagination>
</div>
<!-- 新增弹框 -->
<el-dialog
:modal-append-to-body="false"
:title="basicForTitle"
:visible.sync="dialogShow"
width="1500px"
>
<div class="dialog_content" style="margin-top: -30px">
<el-form
size="medium"
:model="contractForm"
ref="contractForm"
:rules="contractFormRules"
label-width="68px"
:inline="true"
>
<h4>设备基本信息</h4>
<el-form-item label="设备名称" prop="deviceName" label-width="80px">
<el-input
v-model="contractForm.deviceName"
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<el-form-item label="设备类型" prop="deviceType">
<el-input
v-model="contractForm.deviceType"
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<el-form-item label="设备型号" prop="deviceModel">
<el-input
v-model="contractForm.deviceModel"
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<el-form-item label="结构形式" prop="structuralForm" >
<el-input
v-model="contractForm.structuralForm"
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<el-form-item label="生产厂家" prop="manufacturer">
<el-input
v-model="contractForm.manufacturer"
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<!-- <el-form-item label="租赁单位" prop="remarks" label-width="70px">
<el-input
v-model="contractForm.rentalUnit"
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item> -->
<el-form-item label="额定载重重量" prop="remarks" label-width="100px">
<el-input
v-model="contractForm.ratedLoadCapacity"
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<el-form-item
label="产权备案编号"
prop="receivingAddr"
label-width="100px"
>
<el-input
v-model="contractForm.propertyFilingNumber"
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<el-form-item label="制造许可证号" prop="remarks" label-width="100px">
<el-input
v-model="contractForm.manufacturingLicenseNumber"
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<el-form-item label="设备来源" prop="deviceSource">
<el-input
v-model="contractForm.deviceSource"
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<!-- <div class="formCenter">
<div class="formLeft">
<h4 style="text-align: center">升降机</h4>
<el-form-item
label="昉坠器出场日期(左)"
prop="receivingAddr"
label-width="150px"
>
<el-date-picker
v-model="contractForm.liftFallArresterAppearanceLeftDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item
label="检测日期(左)"
prop="receivingAddr"
label-width="150px"
>
<el-date-picker
v-model="contractForm.liftInspectionLeftDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item
label="昉坠器出场日期(右)"
prop="receivingAddr"
label-width="150px"
>
<el-date-picker
v-model="contractForm.liftFallArresterAppearanceRightDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item
label="检测日期(右)"
prop="receivingAddr"
label-width="150px"
>
<el-date-picker
v-model="contractForm.liftInspectionRightDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
</div>
<div class="formRight">
<h4 style="text-align: center">塔吊</h4>
<el-form-item
label="初始安装高度"
prop="remarks"
label-width="120px"
>
<el-input
v-model="contractForm.towerCraneInitialInstallationHeight"
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<el-form-item label="臂长" prop="remarks">
<el-input
v-model="contractForm.towerBoomLength"
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
</div>
</div> -->
<h4>设备进场信息</h4>
<el-form-item
label="设备现场编号"
prop="remarks"
label-width="120px"
style="margin-left: -20px"
>
<el-input
v-model="contractForm.deviceSiteNumber"
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<el-form-item label="进场日期" prop="receivingAddr">
<el-date-picker
v-model="contractForm.entryDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item label="安装单位" prop="remarks">
<el-input
v-model="contractForm.installationUnit"
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<el-form-item label="附件">
<el-upload
class="upload-demo"
name="files"
:action="$store.state.UPLOADURL"
:on-remove="(file, fileList) => handleRemove(file, fileList, 1)"
:multiple="false"
:on-success="(res, file) => handleSuccess(res, file, 1)"
:file-list="fileUplodList1"
accept=".doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf"
>
<el-button size="medium" type="primary" plain>
上传附件
</el-button>
</el-upload>
</el-form-item>
<h4>设备退场信息</h4>
<el-form-item label="出场日期" prop="receivingAddr">
<el-date-picker
v-model="contractForm.appearanceDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item label="附件">
<el-upload
class="upload-demo"
name="files"
:action="$store.state.UPLOADURL"
:on-remove="(file, fileList) => handleRemove(file, fileList, 2)"
:multiple="false"
:on-success="(res, file) => handleSuccess(res, file, 2)"
:file-list="fileUplodList2"
accept=".doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf"
>
<el-button size="medium" type="primary" plain>
上传附件
</el-button>
</el-upload>
</el-form-item>
<el-form-item
label="设备去向"
prop="equipmentWhereabouts"
style="margin-left: 30px"
>
<el-input
v-model="contractForm.equipmentWhereabouts"
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
</el-form>
<div class="dialog-footer">
<el-button
class="cancleBtn"
@click="dialogShow = false"
icon="el-icon-circle-close"
size="medium"
>{{ $t('message.deviceManage.cancel') }}
</el-button>
<el-button
type="primary"
icon="el-icon-circle-check"
@click="submit(1)"
size="medium"
>{{ $t('message.deviceManage.save') }}
</el-button>
</div>
</div>
</el-dialog>
<!-- 详情弹框 -->
<el-dialog
:modal-append-to-body="false"
title="详情"
:visible.sync="addOrEditDialog"
width="1450px"
>
<div class="dialog_content">
<el-form
size="medium"
:model="contractForm"
ref="contractForm"
label-width="70px"
:inline="true"
>
<h4>设备基本信息</h4>
<el-form-item label="设备名称" prop="orderNumber">
<el-input
v-model="detailData.deviceName"
disabled
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<el-form-item label="设备类型" prop="orderNumber">
<el-input
v-model="detailData.deviceType"
disabled
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<el-form-item label="设备型号" prop="orderNumber">
<el-input
v-model="detailData.deviceModel"
disabled
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<el-form-item label="结构形式" prop="buyerName">
<el-input
v-model="detailData.structuralForm"
disabled
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<el-form-item label="生产厂家" prop="remarks">
<el-input
v-model="detailData.manufacturer"
disabled
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<!-- <el-form-item label="租赁单位" prop="remarks" label-width="70px">
<el-input
v-model="detailData.rentalUnit"
disabled
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item> -->
<el-form-item label="额定载重重量" prop="remarks" label-width="100px">
<el-input
v-model="detailData.ratedLoadCapacity"
disabled
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<el-form-item
label="产权备案编号"
prop="receivingAddr"
label-width="100px"
>
<el-input
v-model="detailData.propertyFilingNumber"
disabled
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<el-form-item label="制造许可证号" prop="remarks" label-width="100px">
<el-input
v-model="detailData.manufacturingLicenseNumber"
disabled
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<el-form-item
label="设备来源"
prop="equipmentWhereabouts"
style="margin-left: 30px"
>
<el-input
disabled
v-model="detailData.deviceSource"
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<!-- <div class="formCenter">
<div class="formLeft">
<h4 style="text-align: center">升降机</h4>
<el-form-item
label="昉坠器出场日期()"
prop="receivingAddr"
label-width="150px"
>
<el-date-picker
v-model="detailData.liftFallArresterAppearanceLeftDate"
disabled
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item
label="检测日期"
prop="receivingAddr"
label-width="150px"
>
<el-date-picker
v-model="detailData.liftInspectionLeftDate"
disabled
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item
label="昉坠器出场日期()"
prop="receivingAddr"
label-width="150px"
>
<el-date-picker
v-model="detailData.liftFallArresterAppearanceRightDate"
disabled
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item
label="检测日期"
prop="receivingAddr"
label-width="150px"
>
<el-date-picker
v-model="detailData.liftInspectionRightDate"
disabled
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
</div>
<div class="formRight">
<h4 style="text-align: center">塔吊</h4>
<el-form-item
label="初始安装高度"
prop="remarks"
label-width="120px"
>
<el-input
v-model="detailData.towerCraneInitialInstallationHeight"
disabled
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<el-form-item label="臂长" prop="remarks">
<el-input
v-model="detailData.towerBoomLength"
disabled
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
</div>
</div> -->
<h4>设备进场信息</h4>
<el-form-item
label="设备现场编号"
prop="remarks"
label-width="120px"
style="margin-left: -20px"
>
<el-input
v-model="detailData.deviceSiteNumber"
disabled
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<el-form-item label="进场日期" prop="receivingAddr">
<el-date-picker
v-model="detailData.entryDate"
disabled
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item label="安装单位" prop="remarks">
<el-input
v-model="detailData.installationUnit"
disabled
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
<el-form-item label="附件">
<el-button
size="medium"
type="primary"
plain
@click.stop="
download(detailData.deviceEntryInformationAttachment, 1)
"
>
下载附件
</el-button>
</el-form-item>
<h4>设备退场信息</h4>
<el-form-item label="出场日期" prop="receivingAddr">
<el-date-picker
v-model="detailData.appearanceDate"
disabled
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item label="附件">
<el-button
size="medium"
type="primary"
plain
@click.stop="
download(detailData.deviceExitInformationAttachment, 2)
"
>
下载附件
</el-button>
</el-form-item>
<el-form-item
label="设备去向"
prop="deviceSource"
style="margin-left: 30px"
>
<el-input
disabled
v-model="detailData.equipmentWhereabouts"
:placeholder="$t('message.companyDiagram.PleaseEnter')"
></el-input>
</el-form-item>
</el-form>
<div class="btnAdd">
<el-button type="primary" size="medium" @click="add(2)"
>新增</el-button
>
</div>
<el-tabs
style="margin-bottom: 5px; width: 223px"
v-model="dialogSteps"
type="card"
>
<el-tab-pane label="维保记录" name="0"></el-tab-pane>
<el-tab-pane label="强制检验记录" name="1"></el-tab-pane>
</el-tabs>
<div class="importMaterialBox" v-show="dialogSteps == 0">
<el-table
class="tables"
:data="MaintenanceList"
height="360"
style="min-height: auto"
>
<el-table-column
label="维保单位"
prop="maintenanceUnit"
align="center"
></el-table-column>
<el-table-column
label="维保人"
prop="maintainer"
align="center"
></el-table-column>
<el-table-column
label="维保状态"
prop="maintenanceStatus"
align="center"
></el-table-column>
<el-table-column
label="维保时间"
prop="maintenanceTime"
align="center"
>
</el-table-column>
<el-table-column
label="维保照片"
prop="maintenancePhoto"
align="center"
>
<template slot-scope="scope">
<img
:preview="
scope.row.maintenancePhoto[0]
? scope.row.maintenancePhoto[0].url
: []
"
:src="
scope.row.maintenancePhoto[0]
? scope.row.maintenancePhoto[0].url
: []
"
alt=""
width="50px"
/>
</template>
</el-table-column>
<el-table-column
label="下次维保时间"
prop="nextMaintenanceTime"
align="center"
>
</el-table-column>
<el-table-column label="备注" prop="remark" align="center">
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<div class="tableBtns" style="margin-left: 20px">
<div
@click="edit(scope.row, 2)"
class="operationText"
style="margin-right: 20px !important"
>
<img
src="@/assets/images/icon-edit.png"
width="15px"
height="15px"
/>
<span>编辑</span>
</div>
<div @click="deleteDev(scope.row, 2)" class="operationText">
<img
src="@/assets/images/icon-delete.png"
width="15px"
height="15px"
/>
<span>删除</span>
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
<div class="importMaterialBox" v-show="dialogSteps == 1">
<el-table
class="tables"
:data="orderMaterialList"
height="360"
style="min-height: auto"
>
<el-table-column
label="强制检验单位"
prop="mandatoryInspectionUnit"
align="center"
></el-table-column>
<el-table-column
label="检验人"
prop="examiner"
align="center"
></el-table-column>
<el-table-column
label="检验状态"
prop="verifyStatus"
align="center"
></el-table-column>
<el-table-column
label="检验时间"
prop="inspectionTime"
align="center"
>
</el-table-column>
<el-table-column
label="强制检验照片"
prop="mandatoryInspectionPhoto"
align="center"
>
<template slot-scope="scope">
<img
:preview="
scope.row.mandatoryInspectionPhoto[0]
? scope.row.mandatoryInspectionPhoto[0].url
: []
"
:src="
scope.row.mandatoryInspectionPhoto[0]
? scope.row.mandatoryInspectionPhoto[0].url
: []
"
alt=""
width="50px"
/>
</template>
</el-table-column>
<el-table-column
label="下次检验时间"
prop="nextInspectionTime"
align="center"
>
</el-table-column>
<el-table-column label="备注" prop="remark" align="center">
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<div class="tableBtns" style="margin-left: 15px">
<div @click="edit(scope.row, 3)" class="operationText">
<img
src="@/assets/images/icon-edit.png"
width="15px"
height="15px"
/>
<span>编辑</span>
</div>
<div @click="deleteDev(scope.row, 3)" class="operationText">
<img
src="@/assets/images/icon-delete.png"
width="15px"
height="15px"
/>
<span>删除</span>
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
<div class="dialog-footer">
<el-button
type="primary"
icon="el-icon-circle-check"
@click="addOrEditDialog = false"
size="medium"
>确认
</el-button>
</div>
</div>
</el-dialog>
<!-- 详情-维保记录新增 -->
<el-dialog
:modal-append-to-body="false"
@close="close"
:title="tenderRecordStitle"
:visible.sync="tenderRecordsShow"
width="667px"
>
<div class="dialog_content">
<el-form
size="medium"
ref="tenderRecordsForm"
:model="tenderRecordsForm"
label-width="120px"
class="dialogFormBox"
>
<el-form-item label="维保单位" prop="maintenanceUnit">
<el-input
v-model="tenderRecordsForm.maintenanceUnit"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="维保人" prop="header">
<el-input
v-model="tenderRecordsForm.maintainer"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="维保状态" prop="headerPhone">
<el-input
v-model="tenderRecordsForm.maintenanceStatus"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="维保时间" prop="headerPhone">
<el-date-picker
v-model="tenderRecordsForm.maintenanceTime"
type="date"
placeholder="选择日期"
style="width: 320px !important"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item label="下次维保时间" prop="headerPhone">
<el-date-picker
v-model="tenderRecordsForm.nextMaintenanceTime"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
style="width: 320px !important"
>
</el-date-picker>
</el-form-item>
<el-form-item label="备注" prop="headerPhone">
<el-input
v-model="tenderRecordsForm.remark"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="维保照片">
<el-upload
:action="$store.state.UPLOADURL"
list-type="picture-card"
multiple
name="files"
:limit="1"
:file-list="fileUplodList3"
:on-success="(res, file) => handleSuccess(res, file, 3)"
:on-remove="(file, fileList) => handleRemove(file, fileList, 3)"
>
<i class="el-icon-plus"></i>
</el-upload>
</el-form-item>
<div class="dialog-footer">
<el-button
class="cancleBtn"
@click="tenderRecordsShow = false"
icon="el-icon-circle-close"
size="medium"
>{{ $t('message.deviceManage.cancel') }}
</el-button>
<el-button
type="primary"
icon="el-icon-circle-check"
@click="submit(2)"
size="medium"
>{{ $t('message.deviceManage.save') }}
</el-button>
</div>
</el-form>
</div>
</el-dialog>
<!-- 详情-强制检验新增 -->
<el-dialog
:modal-append-to-body="false"
@close="close"
:title="tenderListShowtitle"
:visible.sync="tenderListShow"
width="667px"
>
<div class="dialog_content">
<el-form
size="medium"
ref="tenderListForm"
:model="tenderListForm"
label-width="120px"
class="dialogFormBox"
>
<el-form-item label="强制检验单位" prop="warehouseName">
<el-input
v-model="tenderListForm.mandatoryInspectionUnit"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="检验人" prop="header">
<el-input
v-model="tenderListForm.examiner"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="检验状态" prop="headerPhone">
<el-input
v-model="tenderListForm.verifyStatus"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="检验时间" prop="headerPhone">
<el-date-picker
v-model="tenderListForm.inspectionTime"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
style="width: 320px !important"
>
</el-date-picker>
</el-form-item>
<el-form-item label="下次检验时间" prop="headerPhone">
<el-date-picker
v-model="tenderListForm.nextInspectionTime"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
style="width: 320px !important"
>
</el-date-picker>
</el-form-item>
<el-form-item label="备注" prop="headerPhone">
<el-input
v-model="tenderListForm.remark"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="强制检验照片">
<el-upload
:action="$store.state.UPLOADURL"
list-type="picture-card"
multiple
name="files"
:limit="1"
:file-list="fileUplodList4"
:on-success="(res, file) => handleSuccess(res, file, 4)"
:on-remove="(file, fileList) => handleRemove(file, fileList, 4)"
>
<i class="el-icon-plus"></i>
</el-upload>
</el-form-item>
<div class="dialog-footer">
<el-button
class="cancleBtn"
@click="tenderListShow = false"
icon="el-icon-circle-close"
size="medium"
>{{ $t('message.deviceManage.cancel') }}
</el-button>
<el-button
type="primary"
icon="el-icon-circle-check"
@click="submit(3)"
size="medium"
>{{ $t('message.deviceManage.save') }}
</el-button>
</div>
</el-form>
</div>
</el-dialog>
</div>
</template>
<script>
import {
addGtMaterialDeviceApi,//自有设备
deletGtMaterialDeviceApi,
editGtMaterialDeviceApi,
gettGMaterialDevicePageApi,
addGMaterialDeviceMaintenanceRecordApi,//维保记录
deletGtMaterialDeviceMaintenanceRecordApi,
editGtMaterialDeviceMaintenanceRecordApi,
gettGMaterialDeviceMaintenanceRecordApi,
addGMaterialDeviceMandatoryInspectionRecordApi,//强制检验记录
deletGtMaterialDeviceMandatoryInspectionRecordApi,
editGtMaterialDeviceMandatoryInspectionRecordApi,
gettGMaterialDeviceMandatoryInspectionRecordApi
} from '@/assets/js/api/materialManagement.js'
export default {
mounted() {
this.getList()
},
data() {
return {
searchForm: {
deviceName: '',
},
contractForm: {
deviceName: '',
deviceType: '',
deviceModel: '',
structuralForm: '',
manufacturer: '',
rentalUnit: '',
ratedLoadCapacity: '',
propertyFilingNumber: '',
manufacturingLicenseNumber: '',
liftFallArresterAppearanceLeftDate: '',
liftFallArresterAppearanceRightDate: '',
liftInspectionLeftDate: '',
liftInspectionRightDate: '',
towerCraneInitialInstallationHeight: '',
towerBoomLength: '',
deviceSiteNumber: '',
entryDate: '',
installationUnit: '',
deviceEntryInformationAttachment: '',//进场信息附件
appearanceDate: '',
deviceExitInformationAttachment: '',//退场信息附件
type: '',
deviceSource: '',
equipmentWhereabouts: '',
},//自有表单
fileUplodList1: [],
fileUplodList2: [],
fileUplodList3: [],
fileUplodList4: [],
tenderRecordsForm: {
maintenanceUnit: '',
maintainer: '',
maintenanceStatus: '',
maintenanceTime: '',
nextMaintenanceTime: '',
remark: '',
maintenancePhoto: '',//维保照片
gtMaterialDeviceId: '',
},//维保记录表单
MaintenanceList: [],
gtMaterialDeviceId: '',
tenderListForm: {
mandatoryInspectionUnit: '',
examiner: '',
verifyStatus: '',
inspectionTime: '',
nextInspectionTime: '',
remark: '',
mandatoryInspectionPhoto: '',
gtMaterialDeviceId: '',
},//强制检验表单
basicForTitle: '',//新增
tenderListShowtitle: '',//详情-招标清单
tenderListShow: false,//详情-招标清单
tenderListForm: {},//详情-招标清单
tenderRecordStitle: '',//详情-投标记录
tenderRecordsShow: false,//详情-投标记录
tenderRecordsList: [],//详情-投标记录
orderMaterialList: [],
detailData: {},
dialogSteps: 0,
contractForm: {},
contractFormRules: {
deviceName:[
{ required: true, message: '必填', trigger: 'change' }
]
},
addOrEditDialog: false,
surveySchemeList: [],
dialogShow: false,
pagInfo: {
pageNo: 1, //页数
pageSize: 10, //条数
total: 0 //总条数
},
List: [],
addEditRules: {},
}
},
methods: {
//查询设备数据
getList() {
gettGMaterialDevicePageApi({
pageNo: this.pagInfo.pageNo,
pageSize: this.pagInfo.pageSize,
projectSn: this.$store.state.projectSn,
deviceName: this.searchForm.deviceName,
type: 1,
}).then((result) => {
if (result.success) {
this.List = result.result.records
this.pagInfo.total = result.result.total
}
})
},
//查询维保数据
getMaintenanceList() {
gettGMaterialDeviceMaintenanceRecordApi({
projectSn: this.$store.state.projectSn,
gtMaterialDeviceId: this.gtMaterialDeviceId,
}).then((result) => {
if (result.success) {
result.result.map((item) => {
if (item.maintenancePhoto.includes("[")) {
item.maintenancePhoto = JSON.parse(item.maintenancePhoto);
if (item.maintenancePhoto.length !== 0 && !item.maintenancePhoto[0].url.includes(this.$store.state.FILEURL)) {
item.maintenancePhoto[0].url =
this.$store.state.FILEURL + item.maintenancePhoto[0].url;
}
} else {
let url = item.maintenancePhoto
if (url.length !== 0 && !url.includes(this.$store.state.FILEURL)) {
item.maintenancePhoto = [{}]
item.maintenancePhoto[0].url =
this.$store.state.FILEURL + url;
}
}
});
this.MaintenanceList = result.result
}
})
},
//查询强制检验记录
getInspectList() {
gettGMaterialDeviceMandatoryInspectionRecordApi({
projectSn: this.$store.state.projectSn,
gtMaterialDeviceId: this.gtMaterialDeviceId,
}).then((result) => {
if (result.success) {
result.result.map((item) => {
if (item.mandatoryInspectionPhoto.includes("[")) {
item.mandatoryInspectionPhoto = JSON.parse(item.mandatoryInspectionPhoto);
if (item.mandatoryInspectionPhoto.length !== 0 && !item.mandatoryInspectionPhoto[0].url.includes(this.$store.state.FILEURL)) {
item.mandatoryInspectionPhoto[0].url =
this.$store.state.FILEURL + item.mandatoryInspectionPhoto[0].url;
}
} else {
let url = item.mandatoryInspectionPhoto
if (url.length !== 0 && !url.includes(this.$store.state.FILEURL)) {
item.mandatoryInspectionPhoto = [{}]
item.mandatoryInspectionPhoto[0].url =
this.$store.state.FILEURL + url;
}
}
});
this.orderMaterialList = result.result
}
})
},
add(type) {
if (type == 1) {
this.basicForTitle = '新增设备信息'
this.dialogShow = true
this.contractForm = {}
this.close()
}
else if (type == 2 && this.dialogSteps == 0) {
this.tenderRecordStitle = '新增记录'
this.tenderRecordsShow = true
this.tenderRecordsForm = {}
this.close()
}
else if (type == 2 && this.dialogSteps == 1) {
this.tenderListShowtitle = '新增记录'
this.tenderListShow = true
this.tenderListForm = {}
this.close()
}
},
edit(obj, type) {
if (type == 1) {
this.basicForTitle = '编辑设备信息'
this.dialogShow = true
this.contractForm = JSON.parse(JSON.stringify(obj))
this.fileUplodList1 = obj.deviceEntryInformationAttachment
this.fileUplodList2 = obj.deviceExitInformationAttachment
if (typeof obj.deviceEntryInformationAttachment === 'string') {
this.contractForm.deviceEntryInformationAttachment = JSON.parse(obj.deviceEntryInformationAttachment)
this.fileUplodList1 = this.contractForm.deviceEntryInformationAttachment
}
if (typeof obj.deviceExitInformationAttachment === 'string') {
this.contractForm.deviceExitInformationAttachment = JSON.parse(obj.deviceExitInformationAttachment)
this.fileUplodList2 = this.contractForm.deviceExitInformationAttachment
}
} else if (type == 2) {
this.tenderRecordStitle = '编辑记录'
this.tenderRecordsShow = true
this.tenderRecordsForm = JSON.parse(JSON.stringify(obj))
this.fileUplodList3 = obj.maintenancePhoto
if (typeof obj.maintenancePhoto === 'string') {
this.tenderRecordsForm.maintenancePhoto = JSON.parse(obj.maintenancePhoto)
this.fileUplodList3 = this.tenderRecordsForm.maintenancePhoto
}
} else if (type == 3) {
this.tenderListShowtitle = '编辑记录'
this.tenderListShow = true
this.tenderListForm = JSON.parse(JSON.stringify(obj))
this.fileUplodList4 = obj.mandatoryInspectionPhoto
if (typeof obj.mandatoryInspectionPhoto === 'string') {
this.tenderListForm.mandatoryInspectionPhoto = JSON.parse(obj.mandatoryInspectionPhoto)
this.fileUplodList3 = this.tenderListForm.mandatoryInspectionPhoto
}
}
},
submit(type) {
if (type == 1) {
let params = JSON.parse(JSON.stringify(this.contractForm))
params.projectSn = this.$store.state.projectSn
params.type = 1
params.deviceEntryInformationAttachment = JSON.stringify(this.fileUplodList1)
params.deviceExitInformationAttachment = JSON.stringify(this.fileUplodList2)
this.$refs.contractForm.validate((valid) => {
if (valid) {
if (this.basicForTitle == '新增设备信息') {
addGtMaterialDeviceApi(params).then((result) => {
if (result.success) {
this.$message.success(result.message)
this.getList()
}
})
} else if (this.basicForTitle == '编辑设备信息') {
editGtMaterialDeviceApi(params).then((result) => {
if (result.success) {
this.$message.success(result.message)
this.getList()
}
})
}
this.dialogShow = false
} else {
return false
}
})
} else if (type == 2) {
let params = JSON.parse(JSON.stringify(this.tenderRecordsForm))
params.projectSn = this.$store.state.projectSn
params.maintenancePhoto = JSON.stringify(this.fileUplodList3)
params.gtMaterialDeviceId = this.gtMaterialDeviceId
this.$refs.tenderRecordsForm.validate((valid) => {
if (valid) {
if (this.tenderRecordStitle == '新增记录') {
addGMaterialDeviceMaintenanceRecordApi(params).then((result) => {
if (result.success) {
this.$message.success(result.message)
this.getMaintenanceList()
}
})
} else if (this.tenderRecordStitle == '编辑记录') {
editGtMaterialDeviceMaintenanceRecordApi(params).then((result) => {
if (result.success) {
this.$message.success(result.message)
this.getMaintenanceList()
}
})
}
this.tenderRecordsShow = false
} else {
return false
}
})
} else if (type == 3) {
let params = JSON.parse(JSON.stringify(this.tenderListForm))
params.projectSn = this.$store.state.projectSn
params.mandatoryInspectionPhoto = JSON.stringify(this.fileUplodList4)
params.gtMaterialDeviceId = this.gtMaterialDeviceId
this.$refs.tenderListForm.validate((valid) => {
if (valid) {
if (this.tenderListShowtitle == '新增记录') {
addGMaterialDeviceMandatoryInspectionRecordApi(params).then((result) => {
if (result.success) {
this.$message.success(result.message)
this.getInspectList()
}
})
} else if (this.tenderListShowtitle == '编辑记录') {
editGtMaterialDeviceMandatoryInspectionRecordApi(params).then((result) => {
if (result.success) {
this.$message.success(result.message)
this.getInspectList()
}
})
}
this.tenderListShow = false
} else {
return false
}
})
}
},
// 删除文件
handleRemove(file, fileList, type) {
if (type == 1) {
this.fileUplodList1 = fileList
}
else if (type == 2) {
this.fileUplodList2 = fileList
}
else if (type == 3) {
this.fileUplodList3 = fileList
}
else if (type == 4) {
this.fileUplodList4 = fileList
}
},
handleSuccess(res, file, type) {
if (res.status == 'SUCCESS') {
if (type == 1) {
this.fileUplodList1.push({
name: file.name,
url: this.$store.state.FILEURL + file.response.data[0].imageUrl
})
}
else if (type == 2) {
this.fileUplodList2.push({
name: file.name,
url: this.$store.state.FILEURL + file.response.data[0].imageUrl
})
}
else if (type == 3) {
console.log('进来了吗----33333333333');
this.fileUplodList3.push({
name: file.name,
url: this.$store.state.FILEURL + file.response.data[0].imageUrl
})
}
else if (type == 4) {
console.log('进来了吗----44444444444444');
this.fileUplodList4.push({
name: file.name,
url: this.$store.state.FILEURL + file.response.data[0].imageUrl
})
}
}
},
//显示检查详细弹框
showDetailFn(row) {
this.detailData = row
this.addOrEditDialog = true
this.gtMaterialDeviceId = this.detailData.id
this.getMaintenanceList()
this.getInspectList()
},
//下载附件
download(val) {
if(val =='[]'){
this.$message.error('未查询到附件')
}else{
let arr = []
arr = JSON.parse(val)
arr.forEach(element => {
let url = this.$http.defaults.baseURL + 'xmgl/upload/getRenameFile?fileUrl='+ element.url + '&fileName=' + element.name
window.location.href = url;
});
}
},
deleteDev(obj, type) {
if (type == 1) {
this.$confirm("此操作将永久删除, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
deletGtMaterialDeviceApi({ id: obj.id }).then((res) => {
if (res.success) {
this.getList()
this.$message({
type: "success",
message: "删除成功!",
});
} else {
this.$message({
type: "error",
message: res.message,
});
}
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
}
else if (type == 2) {
this.$confirm("此操作将永久删除, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
deletGtMaterialDeviceMaintenanceRecordApi({ id: obj.id }).then((res) => {
if (res.success) {
this.getMaintenanceList()
this.$message({
type: "success",
message: "删除成功!",
});
} else {
this.$message({
type: "error",
message: res.message,
});
}
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
} else if (type == 3) {
this.$confirm("此操作将永久删除, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
deletGtMaterialDeviceMandatoryInspectionRecordApi({ id: obj.id }).then((res) => {
if (res.success) {
this.getInspectList()
this.$message({
type: "success",
message: "删除成功!",
});
} else {
this.$message({
type: "error",
message: res.message,
});
}
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
}
},
close() {
this.fileUplodList1 = []
this.fileUplodList2 = []
this.fileUplodList3 = []
this.fileUplodList4 = []
},
SizeChange(val) {
this.pagInfo.pageSize = val
this.getList()
},
CurrentChange(val) {
this.pagInfo.pageNo = val
this.getList()
},
refresh() {
this.searchForm = {}
this.pagInfo.pageNo = 1 //页数
this.pagInfo.pageSize = 10 //条数
this.getList()
},
}
}
</script>
<style lang="less" scoped>
.tables2 {
min-height: auto;
}
.formCenter {
display: flex;
.formLeft {
width: 53%;
border: 2px dotted #d8dbe8;
border-radius: 5px;
}
.formRight {
border: 2px dotted #d8dbe8;
border-radius: 5px;
width: 44%;
margin-left: 2%;
}
}
::v-deep .dialog_content {
padding: 0 0px;
}
.btnAdd {
position: absolute;
right: 20px;
}
::v-deep .el-date-editor.el-input,
.el-date-editor.el-input__inner {
width: 200px !important;
}
</style>