2026-05-19 16:54:18 +08:00
|
|
|
|
var devcomponent = {
|
2025-08-01 16:50:32 +08:00
|
|
|
|
template:`
|
|
|
|
|
|
<div>
|
2026-05-19 15:06:53 +08:00
|
|
|
|
<div style="display: flex;margin-top: 10px; flex-wrap: wrap; align-items: center;">
|
|
|
|
|
|
<el-radio-group v-model="radio1" @change="radio_change" style="display: inline-flex; flex-direction: row; flex-wrap: nowrap;">
|
|
|
|
|
|
<el-radio-button label="1">井位</el-radio-button>
|
|
|
|
|
|
<el-radio-button label="2">设备</el-radio-button>
|
|
|
|
|
|
</el-radio-group>
|
|
|
|
|
|
<!-- 井位页签的筛选框放在这里,与页签同行 -->
|
|
|
|
|
|
<div v-if="radio1=='1'" style="display: flex; margin-left: 20px; align-items: center;">
|
|
|
|
|
|
<el-input v-model="input" placeholder="请输入井名" clearable style="width: 200px;"></el-input>
|
|
|
|
|
|
<el-button style="margin-left: 5px;" id ="bt_serach" plain type="primary" icon="el-icon-search" @click="getWell(input)">搜索</el-button>
|
|
|
|
|
|
<el-button style="margin-left: 5px;" id ="bt_add" plain type="primary" icon="el-icon-circle-plus-outline" @click="add_dev_manage_dialog()">新增</el-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<!-- 设备页签的时间筛选框,与页签同行 -->
|
|
|
|
|
|
<div v-if="radio1=='2'" style="display: flex; margin-left: 20px; align-items: center; flex-wrap: wrap;">
|
|
|
|
|
|
<el-date-picker
|
|
|
|
|
|
v-model="devSearchForm.in_time_start"
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
placeholder="入井开始时间"
|
|
|
|
|
|
value-format="yyyy-MM-dd"
|
|
|
|
|
|
:picker-options="startTimeOptions"
|
|
|
|
|
|
style="width: 160px;">
|
|
|
|
|
|
</el-date-picker>
|
|
|
|
|
|
<el-date-picker
|
|
|
|
|
|
v-model="devSearchForm.in_time_end"
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
placeholder="入井结束时间"
|
|
|
|
|
|
value-format="yyyy-MM-dd"
|
|
|
|
|
|
:picker-options="endTimeOptions"
|
|
|
|
|
|
style="width: 160px; margin-left: 5px;">
|
|
|
|
|
|
</el-date-picker>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 设备页签的时间筛选框,与页签同行 -->
|
|
|
|
|
|
<div v-if="radio1=='2'" style="display: flex; align-items: center; margin-top: 10px; flex-wrap: wrap; white-space: nowrap;">
|
|
|
|
|
|
<el-select v-model="devSearchForm.wellnameList" placeholder="请输入井名称" filterable clearable multiple collapse-tags style="width: 240px; max-width: 380px; margin-left: 0px;">
|
|
|
|
|
|
<el-option v-for="item in devWellnameOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
<el-select v-model="devSearchForm.sid" placeholder="请输入系列号" filterable clearable multiple collapse-tags style="width: 180px; max-width: 320px; margin-left: 5px;">
|
|
|
|
|
|
<el-option v-for="item in devSidOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
<el-select v-model="devSearchForm.iid" placeholder="请输入编号" filterable clearable multiple collapse-tags style="width: 180px; max-width: 320px; margin-left: 5px;">
|
|
|
|
|
|
<el-option v-for="item in devIidOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
<el-select v-model="devSearchForm.engineerList" placeholder="请输入仪器工程师" filterable clearable multiple collapse-tags style="width: 200px; max-width: 320px; margin-left: 5px;">
|
|
|
|
|
|
<el-option v-for="item in devEngineerOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
<el-button style="margin-left: 5px;" plain type="primary" icon="el-icon-search" @click="getDevList()">搜索</el-button>
|
|
|
|
|
|
<el-button style="margin-left: 5px;" plain type="primary" icon="el-icon-document-checked" @click="exportSeirDetail()">导出仪器明细</el-button>
|
|
|
|
|
|
<el-button style="margin-left: 5px;" plain type="primary" icon="el-icon-document-checked" @click="exportWellDetail()">导出井位明细</el-button>
|
|
|
|
|
|
</div>
|
2025-08-01 16:50:32 +08:00
|
|
|
|
</div>
|
2026-05-19 16:54:18 +08:00
|
|
|
|
<div class="span" v-if='radio1=="1"' style="height: calc(100vh - 200px); overflow-x: auto;">
|
2025-08-01 16:50:32 +08:00
|
|
|
|
<el-table
|
|
|
|
|
|
:data="tableData"
|
|
|
|
|
|
style="width: 100%;font-size:14px"
|
2026-05-19 16:54:18 +08:00
|
|
|
|
height="100%"
|
2025-08-01 16:50:32 +08:00
|
|
|
|
:cell-style="{background:'#304156'}"
|
|
|
|
|
|
border
|
|
|
|
|
|
>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="wellNameSource"
|
|
|
|
|
|
label="井号"
|
|
|
|
|
|
:width="150"
|
|
|
|
|
|
:show-overflow-tooltip="true">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="welltime"
|
|
|
|
|
|
label="建井时间"
|
|
|
|
|
|
:width="170">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="welloperator"
|
|
|
|
|
|
label="操作用户"
|
|
|
|
|
|
:width="150"
|
|
|
|
|
|
:show-overflow-tooltip="true">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="upload_user"
|
|
|
|
|
|
label="上传用户"
|
|
|
|
|
|
:width="150"
|
|
|
|
|
|
:show-overflow-tooltip="true">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
label="操作"
|
|
|
|
|
|
width="120">
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<el-button @click="show_pdf(scope.row)" type="text" size="medium">详情</el-button>
|
|
|
|
|
|
<el-button @click="export_pdf(scope.row)" type="text" size="medium">导出</el-button>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
</el-table>
|
|
|
|
|
|
</div>
|
2026-05-19 15:06:53 +08:00
|
|
|
|
<div class="block" v-if='radio1=="1"'>
|
2025-08-01 16:50:32 +08:00
|
|
|
|
<span class="demonstration" style="background-color: #ECF5FF;"></span>
|
|
|
|
|
|
<el-pagination
|
|
|
|
|
|
@size-change="handleSizeChange"
|
|
|
|
|
|
@current-change="handleCurrentChange"
|
|
|
|
|
|
:current-page="currentPage"
|
|
|
|
|
|
:page-sizes="[50,100, 200, 300]"
|
|
|
|
|
|
:page-size="pagesize"
|
|
|
|
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
|
|
|
|
:total="recordTotal" style="background-color: #ECF5FF;">
|
|
|
|
|
|
</el-pagination>
|
|
|
|
|
|
</div>
|
2026-05-19 15:44:49 +08:00
|
|
|
|
<div class="span" v-if='radio1=="2"' style="height: calc(100vh - 250px); overflow-x: auto;">
|
|
|
|
|
|
<el-table
|
|
|
|
|
|
:data="devListTableData"
|
|
|
|
|
|
style="width: 100%;font-size:14px"
|
|
|
|
|
|
height="100%"
|
|
|
|
|
|
:cell-style="{background:'#304156'}"
|
|
|
|
|
|
border
|
2026-05-19 15:06:53 +08:00
|
|
|
|
>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="instrument_name"
|
|
|
|
|
|
label="仪器名称"
|
|
|
|
|
|
:width="150"
|
|
|
|
|
|
:show-overflow-tooltip="true">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="sid"
|
|
|
|
|
|
label="系列号"
|
|
|
|
|
|
:width="120">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="iid"
|
|
|
|
|
|
label="编号"
|
|
|
|
|
|
:width="120"
|
|
|
|
|
|
:show-overflow-tooltip="true">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="wellname"
|
|
|
|
|
|
label="井名称"
|
|
|
|
|
|
:width="150"
|
|
|
|
|
|
:show-overflow-tooltip="true">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="in_time"
|
|
|
|
|
|
label="入井时间"
|
|
|
|
|
|
width="160">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="out_time"
|
|
|
|
|
|
label="出井时间"
|
|
|
|
|
|
width="160">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="engineer"
|
|
|
|
|
|
label="仪器工程师"
|
|
|
|
|
|
width="120">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="duration_current"
|
|
|
|
|
|
label="本次时长(h)"
|
|
|
|
|
|
width="120">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="duration_total"
|
|
|
|
|
|
label="累计时长(h)"
|
|
|
|
|
|
width="120">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="location"
|
|
|
|
|
|
label="所在地"
|
|
|
|
|
|
width="150"
|
|
|
|
|
|
:show-overflow-tooltip="true">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
</el-table>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="block" v-if='radio1=="2"' style="margin-top: 5px; margin-bottom: 5px;">
|
|
|
|
|
|
<span class="demonstration" style="background-color: #ECF5FF;"></span>
|
|
|
|
|
|
<el-pagination
|
|
|
|
|
|
@size-change="handleDevSizeChange"
|
|
|
|
|
|
@current-change="handleDevCurrentChange"
|
|
|
|
|
|
:current-page="devCurrentPage"
|
|
|
|
|
|
:page-sizes="[50,100, 200, 300]"
|
|
|
|
|
|
:page-size="devPagesize"
|
|
|
|
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
|
|
|
|
:total="devRecordTotal" style="background-color: #ECF5FF;">
|
|
|
|
|
|
</el-pagination>
|
|
|
|
|
|
</div>
|
2025-08-01 16:50:32 +08:00
|
|
|
|
|
|
|
|
|
|
<el-dialog
|
|
|
|
|
|
title="设备资产信息"
|
|
|
|
|
|
:visible.sync="pdf_visible"
|
|
|
|
|
|
:lock-scroll ="false"
|
|
|
|
|
|
:append-to-body="true"
|
|
|
|
|
|
width="93%">
|
|
|
|
|
|
<el-table
|
|
|
|
|
|
:data="dev_tableData"
|
|
|
|
|
|
style="width: 100%;font-size:14px"
|
|
|
|
|
|
:height="tHeight1"
|
|
|
|
|
|
:cell-style="{background:'#304156'}"
|
|
|
|
|
|
border
|
|
|
|
|
|
>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="wellname"
|
|
|
|
|
|
label="井号"
|
|
|
|
|
|
:width="150"
|
|
|
|
|
|
:show-overflow-tooltip="true">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="sid"
|
|
|
|
|
|
label="系列号"
|
|
|
|
|
|
:width="100"
|
|
|
|
|
|
:show-overflow-tooltip="true">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="iid"
|
|
|
|
|
|
label="编码"
|
|
|
|
|
|
:width="100">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="ver"
|
|
|
|
|
|
label="版本号"
|
|
|
|
|
|
:width="100"
|
|
|
|
|
|
:show-overflow-tooltip="true">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="p_date"
|
|
|
|
|
|
label="出厂日期"
|
|
|
|
|
|
:width="100">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="cal_date"
|
|
|
|
|
|
label="校准日期"
|
|
|
|
|
|
:width="100">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="total_wt"
|
|
|
|
|
|
label="出厂累计工时"
|
|
|
|
|
|
:width="100">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="cur_wt"
|
|
|
|
|
|
label="当次累计工时"
|
|
|
|
|
|
:width="100">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="repair_cnt"
|
|
|
|
|
|
label="维保次数"
|
|
|
|
|
|
:width="100">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="region"
|
|
|
|
|
|
label="所属区域"
|
|
|
|
|
|
:width="100">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="location"
|
|
|
|
|
|
label="所在地"
|
|
|
|
|
|
:width="100"
|
|
|
|
|
|
:show-overflow-tooltip="true">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="responsible"
|
|
|
|
|
|
label="责任人"
|
|
|
|
|
|
:width="100"
|
|
|
|
|
|
:show-overflow-tooltip="true">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
label="操作"
|
|
|
|
|
|
width="100">
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<el-button v-if="scope.row.flag" @click="update_dev_m_dialog(scope.row)" type="text" size="medium">修改</el-button>
|
|
|
|
|
|
<el-button v-if="scope.row.flag" @click="remove_dev_m(scope.row)" type="text" size="medium">删除</el-button>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
</el-table>
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
|
|
|
|
|
|
<el-dialog
|
|
|
|
|
|
title="设备信息"
|
|
|
|
|
|
:visible.sync="add_visible"
|
|
|
|
|
|
:lock-scroll ="false"
|
|
|
|
|
|
width="45%">
|
|
|
|
|
|
<el-form ref="bform" :model="form" :rules="rules" label-width="100px" :inline="false" class="demo-form-inline" size="medium">
|
|
|
|
|
|
|
|
|
|
|
|
<el-row :gutter="10">
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="井名" prop="wellname">
|
|
|
|
|
|
<el-select v-model="form.wellname" filterable placeholder="请选择井名">
|
|
|
|
|
|
<el-option
|
|
|
|
|
|
v-for="item in wellnames"
|
|
|
|
|
|
:key="item.value"
|
|
|
|
|
|
:label="item.label"
|
|
|
|
|
|
:value="item.value">
|
|
|
|
|
|
</el-option>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="系列号" prop="sid">
|
|
|
|
|
|
<el-input v-model="form.sid" ></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
|
|
|
|
|
|
<el-row :gutter="10">
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="编码" prop="iid">
|
|
|
|
|
|
<el-input v-model="form.iid" ></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="版本号" prop="ver">
|
|
|
|
|
|
<el-input v-model="form.ver" ></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
|
|
|
|
|
|
<el-row :gutter="10">
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="出厂日期" prop="p_date">
|
|
|
|
|
|
<el-date-picker
|
|
|
|
|
|
v-if="if_show_bt"
|
|
|
|
|
|
key="2"
|
|
|
|
|
|
style="width: 200px;"
|
|
|
|
|
|
v-model="form.p_date"
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
placeholder="选择日期"
|
|
|
|
|
|
value-format="yyyy-MM-dd">
|
|
|
|
|
|
</el-date-picker>
|
|
|
|
|
|
<el-date-picker
|
|
|
|
|
|
v-if="if_show_et"
|
|
|
|
|
|
key="2"
|
|
|
|
|
|
style="width: 200px;"
|
|
|
|
|
|
v-model="form.p_date"
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
placeholder="选择日期"
|
|
|
|
|
|
format="MM-dd-yyyy"
|
|
|
|
|
|
value-format="yyyy-MM-dd">
|
|
|
|
|
|
</el-date-picker>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="校准日期" prop="cal_date">
|
|
|
|
|
|
<el-date-picker
|
|
|
|
|
|
v-if="if_show_bt"
|
|
|
|
|
|
key="2"
|
|
|
|
|
|
style="width: 200px;"
|
|
|
|
|
|
v-model="form.cal_date"
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
placeholder="选择日期"
|
|
|
|
|
|
value-format="yyyy-MM-dd">
|
|
|
|
|
|
</el-date-picker>
|
|
|
|
|
|
<el-date-picker
|
|
|
|
|
|
v-if="if_show_et"
|
|
|
|
|
|
key="2"
|
|
|
|
|
|
style="width: 200px;"
|
|
|
|
|
|
v-model="form.cal_date"
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
placeholder="选择日期"
|
|
|
|
|
|
format="MM-dd-yyyy"
|
|
|
|
|
|
value-format="yyyy-MM-dd">
|
|
|
|
|
|
</el-date-picker>
|
|
|
|
|
|
</el-form-item>
|
2026-05-19 15:06:53 +08:00
|
|
|
|
</el-row>
|
2025-08-01 16:50:32 +08:00
|
|
|
|
|
|
|
|
|
|
<el-row :gutter="10">
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="出厂累计工时" prop="total_wt">
|
|
|
|
|
|
<el-input v-model="form.total_wt" ></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="当次累计工时" prop="cur_wt">
|
|
|
|
|
|
<el-input v-model="form.cur_wt" ></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
|
|
|
|
|
|
<el-row :gutter="10">
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="所在地" prop="location">
|
|
|
|
|
|
<el-input v-model="form.location" ></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="责任人" prop="responsible">
|
|
|
|
|
|
<el-input v-model="form.responsible" ></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
|
|
|
|
|
|
<el-row :gutter="10">
|
|
|
|
|
|
<!--<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="维保次数" prop="repair_cnt">
|
|
|
|
|
|
<el-input v-model="form.repair_cnt" ></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
-->
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="所属区域" prop="region">
|
|
|
|
|
|
<el-input v-model="form.region" ></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
|
|
|
|
|
|
</el-form>
|
|
|
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
|
|
|
<el-button @click="add_visible = false">取 消</el-button>
|
|
|
|
|
|
<el-button id ="bt_ok" plain type="primary" @click="add_dev_manage()">确 定</el-button>
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-dialog
|
|
|
|
|
|
title="设备信息"
|
|
|
|
|
|
:visible.sync="update_visible"
|
|
|
|
|
|
:lock-scroll ="false"
|
|
|
|
|
|
width="45%">
|
|
|
|
|
|
<el-form ref="bform" :model="form" :rules="rules" label-width="100px" :inline="false" class="demo-form-inline" size="medium">
|
|
|
|
|
|
|
|
|
|
|
|
<el-row :gutter="10">
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="井名" prop="wellname">
|
|
|
|
|
|
<el-select v-model="form.wellname" filterable placeholder="请选择井名" disabled >
|
|
|
|
|
|
<el-option
|
|
|
|
|
|
v-for="item in wellnames"
|
|
|
|
|
|
:key="item.value"
|
|
|
|
|
|
:label="item.label"
|
|
|
|
|
|
:value="item.value">
|
|
|
|
|
|
</el-option>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="系列号" prop="sid">
|
|
|
|
|
|
<el-input v-model="form.sid" ></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
|
|
|
|
|
|
<el-row :gutter="10">
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="编码" prop="iid">
|
|
|
|
|
|
<el-input v-model="form.iid" ></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="版本号" prop="ver">
|
|
|
|
|
|
<el-input v-model="form.ver" ></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
|
|
|
|
|
|
<el-row :gutter="10">
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="出厂日期" prop="p_date">
|
|
|
|
|
|
<el-date-picker
|
|
|
|
|
|
v-if="if_show_bt"
|
|
|
|
|
|
key="2"
|
|
|
|
|
|
style="width: 200px;"
|
|
|
|
|
|
v-model="form.p_date"
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
placeholder="选择日期"
|
|
|
|
|
|
value-format="yyyy-MM-dd">
|
|
|
|
|
|
</el-date-picker>
|
|
|
|
|
|
<el-date-picker
|
|
|
|
|
|
v-if="if_show_et"
|
|
|
|
|
|
key="2"
|
|
|
|
|
|
style="width: 200px;"
|
|
|
|
|
|
v-model="form.p_date"
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
placeholder="选择日期"
|
|
|
|
|
|
format="MM-dd-yyyy"
|
|
|
|
|
|
value-format="yyyy-MM-dd">
|
|
|
|
|
|
</el-date-picker>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="校准日期" prop="cal_date">
|
|
|
|
|
|
<el-date-picker
|
|
|
|
|
|
v-if="if_show_bt"
|
|
|
|
|
|
key="2"
|
|
|
|
|
|
style="width: 200px;"
|
|
|
|
|
|
v-model="form.cal_date"
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
placeholder="选择日期"
|
|
|
|
|
|
value-format="yyyy-MM-dd">
|
|
|
|
|
|
</el-date-picker>
|
|
|
|
|
|
<el-date-picker
|
|
|
|
|
|
v-if="if_show_et"
|
|
|
|
|
|
key="2"
|
|
|
|
|
|
style="width: 200px;"
|
|
|
|
|
|
v-model="form.cal_date"
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
placeholder="选择日期"
|
|
|
|
|
|
format="MM-dd-yyyy"
|
|
|
|
|
|
value-format="yyyy-MM-dd">
|
|
|
|
|
|
</el-date-picker>
|
|
|
|
|
|
</el-form-item>
|
2026-05-19 15:06:53 +08:00
|
|
|
|
</el-row>
|
2025-08-01 16:50:32 +08:00
|
|
|
|
|
|
|
|
|
|
<el-row :gutter="10">
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="出厂累计工时" prop="total_wt">
|
|
|
|
|
|
<el-input v-model="form.total_wt" ></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="当次累计工时" prop="cur_wt">
|
|
|
|
|
|
<el-input v-model="form.cur_wt" ></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
|
|
|
|
|
|
<el-row :gutter="10">
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="所在地" prop="location">
|
|
|
|
|
|
<el-input v-model="form.location" ></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="责任人" prop="responsible">
|
|
|
|
|
|
<el-input v-model="form.responsible" ></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
|
|
|
|
|
|
<el-row :gutter="10">
|
|
|
|
|
|
<!--<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="维保次数" prop="repair_cnt">
|
|
|
|
|
|
<el-input v-model="form.repair_cnt" ></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>-->
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-form-item label="所属区域" prop="region">
|
|
|
|
|
|
<el-input v-model="form.region" ></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
|
|
|
|
|
|
</el-form>
|
|
|
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
|
|
|
<el-button @click="update_visible = false">取 消</el-button>
|
|
|
|
|
|
<el-button id ="bt_ok" plain type="primary" @click="update_dev_manage()">确 定</el-button>
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
`,
|
|
|
|
|
|
data(){
|
|
|
|
|
|
// 获取当前屏幕的分辨率
|
|
|
|
|
|
let screenW = window.screen.width;
|
|
|
|
|
|
let screenH = window.innerHeight;
|
|
|
|
|
|
console.log("screen width:",screenW);
|
|
|
|
|
|
console.log("screen height:",screenH);
|
|
|
|
|
|
return {
|
2026-05-19 16:54:18 +08:00
|
|
|
|
tHeight1: screenH * 0.5,
|
|
|
|
|
|
tableData: [],
|
|
|
|
|
|
input: '',
|
|
|
|
|
|
currentPage: 1,
|
|
|
|
|
|
pagesize: 50,
|
|
|
|
|
|
recordTotal: 0,
|
|
|
|
|
|
radio1: '1',
|
2026-05-19 15:06:53 +08:00
|
|
|
|
|
|
|
|
|
|
// 设备列表相关数据
|
|
|
|
|
|
devListTableData: [],
|
|
|
|
|
|
devSearchForm: {
|
|
|
|
|
|
sid: [],
|
|
|
|
|
|
iid: [],
|
|
|
|
|
|
wellname: '',
|
|
|
|
|
|
wellnameList: [],
|
|
|
|
|
|
engineerList: [],
|
|
|
|
|
|
in_time_start: '',
|
|
|
|
|
|
in_time_end: ''
|
|
|
|
|
|
},
|
|
|
|
|
|
// 设备筛选下拉选项
|
|
|
|
|
|
devSidOptions: [],
|
|
|
|
|
|
devIidOptions: [],
|
|
|
|
|
|
devWellnameOptions: [],
|
|
|
|
|
|
devEngineerOptions: [],
|
|
|
|
|
|
|
2026-05-19 16:54:18 +08:00
|
|
|
|
devCurrentPage: 1,
|
|
|
|
|
|
devPagesize: 50,
|
2026-05-19 15:06:53 +08:00
|
|
|
|
devRecordTotal: 0,
|
2025-08-01 16:50:32 +08:00
|
|
|
|
|
|
|
|
|
|
pdf_visible:false,
|
|
|
|
|
|
dev_tableData:[],
|
|
|
|
|
|
|
|
|
|
|
|
wellnames:[],
|
|
|
|
|
|
|
|
|
|
|
|
add_visible:false,
|
|
|
|
|
|
update_visible:false,
|
|
|
|
|
|
|
|
|
|
|
|
form: {
|
|
|
|
|
|
id:0,
|
|
|
|
|
|
wellname:'',
|
|
|
|
|
|
sid:'',
|
|
|
|
|
|
iid:'',
|
|
|
|
|
|
ver: '',
|
|
|
|
|
|
p_date:'',
|
|
|
|
|
|
cal_date:'',
|
|
|
|
|
|
total_wt:'',
|
|
|
|
|
|
cur_wt:'',
|
|
|
|
|
|
repair_cnt:'',
|
|
|
|
|
|
region:'',
|
|
|
|
|
|
location:'',
|
|
|
|
|
|
responsible:''
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
rules: {
|
|
|
|
|
|
wellname: [
|
|
|
|
|
|
{ required: true, message: '系列号不可为空', trigger: 'blur' }
|
|
|
|
|
|
],
|
|
|
|
|
|
sid: [
|
|
|
|
|
|
{ required: true, message: '系列号不可为空', trigger: 'blur' }
|
|
|
|
|
|
],
|
|
|
|
|
|
iid: [
|
|
|
|
|
|
{ required: true, message: '编码不可为空', trigger: 'blur' }
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
if_show_bt:true,
|
|
|
|
|
|
if_show_et:false,
|
|
|
|
|
|
ps_info:'',
|
2026-05-19 15:06:53 +08:00
|
|
|
|
|
|
|
|
|
|
// 日期选择器配置
|
|
|
|
|
|
startTimeOptions: {
|
|
|
|
|
|
disabledDate: (time) => {
|
|
|
|
|
|
if (this.devSearchForm.in_time_end) {
|
|
|
|
|
|
return time.getTime() > new Date(this.devSearchForm.in_time_end).getTime();
|
|
|
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
endTimeOptions: {
|
|
|
|
|
|
disabledDate: (time) => {
|
|
|
|
|
|
if (this.devSearchForm.in_time_start) {
|
|
|
|
|
|
return time.getTime() < new Date(this.devSearchForm.in_time_start).getTime();
|
|
|
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
2025-08-01 16:50:32 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
mounted() {
|
|
|
|
|
|
var _this = this;
|
|
|
|
|
|
|
2026-05-19 15:06:53 +08:00
|
|
|
|
this.getQueryWellData();
|
|
|
|
|
|
this.getWell();
|
|
|
|
|
|
|
2025-08-01 16:50:32 +08:00
|
|
|
|
axios.post('/deescloud/get_page_setting', {
|
|
|
|
|
|
opuser:localStorage.getItem("online_user"),
|
|
|
|
|
|
opuser_uuid:localStorage.getItem("uuid"),
|
|
|
|
|
|
})
|
|
|
|
|
|
.then(function (response) {
|
|
|
|
|
|
if(response.data.r3=="1"){
|
|
|
|
|
|
_this.$data.ps_info = response.data;
|
|
|
|
|
|
_this.$data.if_show_bt=true;
|
|
|
|
|
|
_this.$data.if_show_et=false;
|
|
|
|
|
|
}else{
|
|
|
|
|
|
_this.$data.if_show_et=true;
|
|
|
|
|
|
_this.$data.if_show_bt=false;
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch(function (error) {
|
|
|
|
|
|
console.log(error);
|
|
|
|
|
|
});
|
|
|
|
|
|
|
2026-05-19 15:06:53 +08:00
|
|
|
|
// 获取设备筛选选项
|
|
|
|
|
|
this.getDevFilterOptions();
|
|
|
|
|
|
|
|
|
|
|
|
// 初始加载时自动执行查询,传入空字符串以获取所有数据或默认数据
|
|
|
|
|
|
// 直接调用,不依赖 nextTick,因为 axios 请求不依赖 DOM 渲染
|
|
|
|
|
|
this.getWell('');
|
|
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
|
|
|
getQueryWellData() {
|
|
|
|
|
|
var _this = this;
|
|
|
|
|
|
axios.post('/deescloud/getQueryWell', {
|
|
|
|
|
|
opuser: localStorage.getItem("online_user"),
|
|
|
|
|
|
opuser_uuid: localStorage.getItem("uuid")
|
|
|
|
|
|
})
|
|
|
|
|
|
.then(function (response) {
|
|
|
|
|
|
console.log("getQueryWell 响应参数:", response.data);
|
|
|
|
|
|
if (response.data && response.data.code === 0 && response.data.data) {
|
|
|
|
|
|
const data = response.data.data;
|
|
|
|
|
|
// 映射井名称选项
|
|
|
|
|
|
if (data.wellNames && Array.isArray(data.wellNames)) {
|
|
|
|
|
|
_this.devWellnameOptions = data.wellNames.map(name => ({
|
|
|
|
|
|
value: name,
|
|
|
|
|
|
label: name
|
|
|
|
|
|
}));
|
|
|
|
|
|
}
|
|
|
|
|
|
// 映射系列号选项
|
|
|
|
|
|
if (data.series && Array.isArray(data.series)) {
|
|
|
|
|
|
_this.devSidOptions = data.series.map(sid => ({
|
|
|
|
|
|
value: sid,
|
|
|
|
|
|
label: sid
|
|
|
|
|
|
}));
|
|
|
|
|
|
}
|
|
|
|
|
|
// 映射编号/仪器选项
|
|
|
|
|
|
if (data.instruments && Array.isArray(data.instruments)) {
|
|
|
|
|
|
_this.devIidOptions = data.instruments.map(inst => ({
|
|
|
|
|
|
value: inst,
|
|
|
|
|
|
label: inst
|
|
|
|
|
|
}));
|
|
|
|
|
|
}
|
|
|
|
|
|
// 映射工程师选项
|
|
|
|
|
|
if (data.engineers && Array.isArray(data.engineers)) {
|
|
|
|
|
|
_this.devEngineerOptions = data.engineers.map(engineer => ({
|
|
|
|
|
|
value: engineer,
|
|
|
|
|
|
label: engineer
|
|
|
|
|
|
}));
|
|
|
|
|
|
}
|
|
|
|
|
|
// 注意:locations 目前前端模板中没有对应的 select 绑定变量,
|
|
|
|
|
|
// 如果后续需要添加所在地和工程师的下拉筛选,需先在 data 中定义对应 options 变量并在模板中添加 el-select
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch(function (error) {
|
|
|
|
|
|
console.error("getQueryWell 请求失败:", error);
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
radio_change(){
|
|
|
|
|
|
console.log(this.$data.radio1);
|
|
|
|
|
|
// 切换到设备页签时,可以自动加载一次数据,或者依赖用户点击搜索
|
|
|
|
|
|
if(this.$data.radio1 == '2') {
|
|
|
|
|
|
this.getDevList();
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
// 获取设备列表
|
|
|
|
|
|
getDevList() {
|
|
|
|
|
|
// 校验时间范围
|
|
|
|
|
|
if (this.devSearchForm.in_time_start && this.devSearchForm.in_time_end) {
|
|
|
|
|
|
if (new Date(this.devSearchForm.in_time_end) < new Date(this.devSearchForm.in_time_start)) {
|
|
|
|
|
|
this.$message({
|
|
|
|
|
|
message: "结束时间不能早于开始时间",
|
|
|
|
|
|
type: "warning",
|
|
|
|
|
|
duration: 2000
|
|
|
|
|
|
});
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var _this = this;
|
|
|
|
|
|
|
|
|
|
|
|
axios.post('/deescloud/get_dev_list', {
|
|
|
|
|
|
opuser: localStorage.getItem("online_user"), // 操作用户
|
|
|
|
|
|
opuser_uuid: localStorage.getItem("uuid"), // 用户UUID
|
|
|
|
|
|
serial: this.$data.devSearchForm.sid, // 系列号筛选条件
|
|
|
|
|
|
number: this.$data.devSearchForm.iid, // 编号筛选条件
|
|
|
|
|
|
wellname: this.$data.devSearchForm.wellnameList, // 井名称筛选条件,使用用户选择的列表
|
|
|
|
|
|
engineer: this.$data.devSearchForm.engineerList, // 仪器工程师筛选条件
|
|
|
|
|
|
in_time_start: this.$data.devSearchForm.in_time_start, // 入井开始时间筛选条件
|
|
|
|
|
|
in_time_end: this.$data.devSearchForm.in_time_end, // 入井结束时间筛选条件
|
|
|
|
|
|
index: this.$data.devCurrentPage, // 当前页码
|
|
|
|
|
|
count: this.$data.devPagesize // 每页数量
|
|
|
|
|
|
})
|
|
|
|
|
|
.then(function (response) {
|
|
|
|
|
|
console.log(response.data);
|
|
|
|
|
|
if(response.data && response.data.data) {
|
|
|
|
|
|
// 兼容后端字段命名差异,统一映射到前端表格使用的字段
|
|
|
|
|
|
_this.$data.devListTableData = (response.data.data || []).map(function(item) {
|
|
|
|
|
|
var sid = item.sid != null ? item.sid : (item.serial != null ? item.serial : '');
|
|
|
|
|
|
var iid = item.iid != null ? item.iid : (item.number != null ? item.number : '');
|
|
|
|
|
|
var durationCurrent = item.duration_current != null ? item.duration_current : (item.current_work_time != null ? item.current_work_time : '');
|
|
|
|
|
|
var durationTotal = item.duration_total != null ? item.duration_total : (item.total_work_time != null ? item.total_work_time : '');
|
|
|
|
|
|
// 兼容 product_name 到 instrument_name
|
|
|
|
|
|
var instrumentName = item.instrument_name != null ? item.instrument_name : (item.product_name != null ? item.product_name : '');
|
|
|
|
|
|
return Object.assign({}, item, {
|
|
|
|
|
|
sid: sid,
|
|
|
|
|
|
iid: iid,
|
|
|
|
|
|
duration_current: durationCurrent,
|
|
|
|
|
|
duration_total: durationTotal,
|
|
|
|
|
|
instrument_name: instrumentName
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
_this.$data.devRecordTotal = response.data.total || 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch(function (error) {
|
|
|
|
|
|
console.log(error);
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
handleDevSizeChange(val) {
|
|
|
|
|
|
this.$data.devPagesize = val;
|
|
|
|
|
|
this.$data.devCurrentPage = 1;
|
|
|
|
|
|
this.getDevList();
|
|
|
|
|
|
},
|
|
|
|
|
|
handleDevCurrentChange(val) {
|
|
|
|
|
|
this.$data.devCurrentPage = val;
|
|
|
|
|
|
this.getDevList();
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
exportSeirDetail() {
|
|
|
|
|
|
// 校验时间范围
|
|
|
|
|
|
if (this.devSearchForm.in_time_start && this.devSearchForm.in_time_end) {
|
|
|
|
|
|
if (new Date(this.devSearchForm.in_time_end) < new Date(this.devSearchForm.in_time_start)) {
|
|
|
|
|
|
this.$message({
|
|
|
|
|
|
message: "结束时间不能早于开始时间",
|
|
|
|
|
|
type: "warning",
|
|
|
|
|
|
duration: 2000
|
|
|
|
|
|
});
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 调用导出接口,参数与 getDevList 一致
|
|
|
|
|
|
axios.post('/deescloud/export_Seir_detail', {
|
|
|
|
|
|
opuser: localStorage.getItem("online_user"),
|
|
|
|
|
|
opuser_uuid: localStorage.getItem("uuid"),
|
|
|
|
|
|
serial: this.devSearchForm.sid,
|
|
|
|
|
|
number: this.devSearchForm.iid,
|
|
|
|
|
|
wellname: this.devSearchForm.wellnameList,
|
|
|
|
|
|
engineer: this.devSearchForm.engineerList,
|
|
|
|
|
|
in_time_start: this.devSearchForm.in_time_start,
|
|
|
|
|
|
in_time_end: this.devSearchForm.in_time_end,
|
|
|
|
|
|
index: this.devCurrentPage,
|
|
|
|
|
|
count: this.devPagesize
|
|
|
|
|
|
})
|
|
|
|
|
|
.then(response => {
|
|
|
|
|
|
console.log("导出井位明细响应:", response.data);
|
|
|
|
|
|
|
|
|
|
|
|
// 判断返回码
|
|
|
|
|
|
if (response.data && response.data.code === 1) {
|
|
|
|
|
|
// 当 code=1 时,显示错误信息
|
|
|
|
|
|
this.$message({
|
|
|
|
|
|
message: response.data.msg || "导出失败",
|
|
|
|
|
|
type: "error",
|
|
|
|
|
|
duration: 2000
|
|
|
|
|
|
});
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// code 不为 1 时,正常处理文件下载
|
|
|
|
|
|
if (response.data && response.data.fileId) {
|
|
|
|
|
|
const fileid = response.data.fileId;
|
|
|
|
|
|
const downUrl = 'file/' + fileid;
|
|
|
|
|
|
downloadUrl("井上仪器明细清单(按仪器查询).xlsx", downUrl);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.$message({
|
|
|
|
|
|
message: "导出失败:未获取到文件",
|
|
|
|
|
|
type: "error",
|
|
|
|
|
|
duration: 2000
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch(error => {
|
|
|
|
|
|
console.error("导出井位明细错误:", error);
|
|
|
|
|
|
this.$message({
|
|
|
|
|
|
message: "导出请求失败",
|
|
|
|
|
|
type: "error",
|
|
|
|
|
|
duration: 2000
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
exportWellDetail() {
|
|
|
|
|
|
var _this = this;
|
|
|
|
|
|
// 调用导出接口,参数与 getDevList 一致,支持多选井名
|
|
|
|
|
|
axios.post('/deescloud/export_Well_detail', {
|
|
|
|
|
|
opuser: localStorage.getItem("online_user"),
|
|
|
|
|
|
opuser_uuid: localStorage.getItem("uuid"),
|
|
|
|
|
|
serial: this.devSearchForm.sid,
|
|
|
|
|
|
number: this.devSearchForm.iid,
|
|
|
|
|
|
wellname: this.devSearchForm.wellnameList,
|
|
|
|
|
|
engineer: this.devSearchForm.engineerList,
|
|
|
|
|
|
in_time_start: this.devSearchForm.in_time_start,
|
|
|
|
|
|
in_time_end: this.devSearchForm.in_time_end,
|
|
|
|
|
|
index: this.devCurrentPage,
|
|
|
|
|
|
count: this.devPagesize
|
|
|
|
|
|
})
|
|
|
|
|
|
.then(response => {
|
|
|
|
|
|
console.log("导出井位明细响应:", response.data);
|
|
|
|
|
|
// 增加 code=1 的错误处理
|
|
|
|
|
|
if (response.data && response.data.code === 1) {
|
|
|
|
|
|
_this.$message({
|
|
|
|
|
|
message: response.data.msg || "导出失败",
|
|
|
|
|
|
type: "error",
|
|
|
|
|
|
duration: 2000
|
|
|
|
|
|
});
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (response.data && response.data.fileId) {
|
|
|
|
|
|
const fileid = response.data.fileId;
|
|
|
|
|
|
const downUrl = 'file/' + fileid;
|
|
|
|
|
|
downloadUrl("井上仪器明细清单(按井位查询).xlsx", downUrl);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
_this.$message({
|
|
|
|
|
|
message: "导出失败:未获取到文件",
|
|
|
|
|
|
type: "error",
|
|
|
|
|
|
duration: 2000
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch(error => {
|
|
|
|
|
|
console.error("导出井位明细错误:", error);
|
|
|
|
|
|
_this.$message({
|
|
|
|
|
|
message: "导出请求失败",
|
|
|
|
|
|
type: "error",
|
|
|
|
|
|
duration: 2000
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
remove_dev_m(row){
|
|
|
|
|
|
var _this = this;
|
|
|
|
|
|
|
|
|
|
|
|
var r;
|
|
|
|
|
|
axios.post('/deescloud/remove_dev_manage', {
|
2025-08-01 16:50:32 +08:00
|
|
|
|
opuser:localStorage.getItem("online_user"),
|
|
|
|
|
|
opuser_uuid:localStorage.getItem("uuid"),
|
2026-05-19 15:06:53 +08:00
|
|
|
|
data:{
|
|
|
|
|
|
id: row.id
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
.then(function (response) {
|
|
|
|
|
|
console.log(response.data);
|
|
|
|
|
|
r = response.data.r;
|
|
|
|
|
|
if (r==0){
|
|
|
|
|
|
axios.post('/deescloud/get_dev_manage', {
|
|
|
|
|
|
opuser:localStorage.getItem("online_user"),
|
|
|
|
|
|
opuser_uuid:localStorage.getItem("uuid"),
|
|
|
|
|
|
wellname: row.wellname,
|
|
|
|
|
|
})
|
|
|
|
|
|
.then(function (response) {
|
|
|
|
|
|
console.log(response.data);
|
|
|
|
|
|
_this.$data.dev_tableData = response.data.data;
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch(function (error) {
|
|
|
|
|
|
console.log(error);
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
_this.$message({
|
|
|
|
|
|
message: "删除成功",
|
|
|
|
|
|
type: "success",
|
|
|
|
|
|
duration: 1500
|
|
|
|
|
|
});
|
|
|
|
|
|
}else{
|
|
|
|
|
|
_this.$message({
|
|
|
|
|
|
message: "删除失败",
|
|
|
|
|
|
type: "error",
|
|
|
|
|
|
duration: 1500
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
2025-08-01 16:50:32 +08:00
|
|
|
|
|
2026-05-19 15:06:53 +08:00
|
|
|
|
})
|
|
|
|
|
|
.catch(function (error) {
|
|
|
|
|
|
console.log(error);
|
|
|
|
|
|
});
|
2025-08-01 16:50:32 +08:00
|
|
|
|
},
|
2026-05-19 15:06:53 +08:00
|
|
|
|
update_dev_manage(){
|
|
|
|
|
|
this.$refs['bform'].validate((valid) => {
|
|
|
|
|
|
if (valid) {
|
2025-08-01 16:50:32 +08:00
|
|
|
|
var _this = this;
|
|
|
|
|
|
|
|
|
|
|
|
var r;
|
2026-05-19 15:06:53 +08:00
|
|
|
|
axios.post('/deescloud/update_dev_manage', {
|
2025-08-01 16:50:32 +08:00
|
|
|
|
opuser:localStorage.getItem("online_user"),
|
|
|
|
|
|
opuser_uuid:localStorage.getItem("uuid"),
|
|
|
|
|
|
data:{
|
2026-05-19 15:06:53 +08:00
|
|
|
|
id:_this.$data.form.id,
|
|
|
|
|
|
wellname:_this.$data.form.wellname,
|
|
|
|
|
|
sid:_this.$data.form.sid,
|
|
|
|
|
|
iid:_this.$data.form.iid,
|
|
|
|
|
|
ver: _this.$data.form.ver,
|
|
|
|
|
|
p_date:_this.$data.form.p_date,
|
|
|
|
|
|
cal_date:_this.$data.form.cal_date,
|
|
|
|
|
|
total_wt:_this.$data.form.total_wt,
|
|
|
|
|
|
cur_wt:_this.$data.form.cur_wt,
|
|
|
|
|
|
repair_cnt:_this.$data.form.repair_cnt,
|
|
|
|
|
|
region:_this.$data.form.region,
|
|
|
|
|
|
location:_this.$data.form.location,
|
|
|
|
|
|
responsible:_this.$data.form.responsible
|
2025-08-01 16:50:32 +08:00
|
|
|
|
}
|
2026-05-19 15:06:53 +08:00
|
|
|
|
})
|
|
|
|
|
|
.then(function (response) {
|
|
|
|
|
|
console.log(response.data);
|
2025-08-01 16:50:32 +08:00
|
|
|
|
r = response.data.r;
|
|
|
|
|
|
if (r==0){
|
|
|
|
|
|
axios.post('/deescloud/get_dev_manage', {
|
|
|
|
|
|
opuser:localStorage.getItem("online_user"),
|
|
|
|
|
|
opuser_uuid:localStorage.getItem("uuid"),
|
2026-05-19 15:06:53 +08:00
|
|
|
|
wellname: _this.$data.form.wellname,
|
|
|
|
|
|
})
|
|
|
|
|
|
.then(function (response) {
|
2025-08-01 16:50:32 +08:00
|
|
|
|
console.log(response.data);
|
|
|
|
|
|
_this.$data.dev_tableData = response.data.data;
|
2026-05-19 15:06:53 +08:00
|
|
|
|
})
|
|
|
|
|
|
.catch(function (error) {
|
2025-08-01 16:50:32 +08:00
|
|
|
|
console.log(error);
|
2026-05-19 15:06:53 +08:00
|
|
|
|
});
|
|
|
|
|
|
|
2025-08-01 16:50:32 +08:00
|
|
|
|
_this.$message({
|
2026-05-19 15:06:53 +08:00
|
|
|
|
message: "修改成功",
|
2025-08-01 16:50:32 +08:00
|
|
|
|
type: "success",
|
|
|
|
|
|
duration: 1500
|
|
|
|
|
|
});
|
|
|
|
|
|
}else{
|
|
|
|
|
|
_this.$message({
|
2026-05-19 15:06:53 +08:00
|
|
|
|
message: "修改失败",
|
2025-08-01 16:50:32 +08:00
|
|
|
|
type: "error",
|
|
|
|
|
|
duration: 1500
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-05-19 15:06:53 +08:00
|
|
|
|
_this.$data.update_visible=false;
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch(function (error) {
|
|
|
|
|
|
console.log(error);
|
|
|
|
|
|
});
|
|
|
|
|
|
}})
|
|
|
|
|
|
},
|
|
|
|
|
|
update_dev_m_dialog(row){
|
|
|
|
|
|
this.$data.form.id=row.id;
|
|
|
|
|
|
console.log("wellname",row.wellname);
|
|
|
|
|
|
this.$data.form.wellname=row.wellname;
|
|
|
|
|
|
this.$data.form.sid=row.sid;
|
|
|
|
|
|
this.$data.form.iid=row.iid;
|
|
|
|
|
|
this.$data.form.ver= row.ver;
|
|
|
|
|
|
|
|
|
|
|
|
if(this.$data.ps_info.r3=="1"){
|
|
|
|
|
|
this.$data.form.p_date=row.p_date;
|
|
|
|
|
|
this.$data.form.cal_date=row.cal_date;
|
|
|
|
|
|
}else{
|
|
|
|
|
|
if (row.p_date.length>=10){
|
|
|
|
|
|
var arr = row.p_date.split("-")
|
|
|
|
|
|
var t = arr[2]+"-"+arr[0]+"-"+arr[1];
|
|
|
|
|
|
console.log(t);
|
|
|
|
|
|
this.$data.form.p_date=t;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (row.cal_date.length>=10){
|
|
|
|
|
|
var arr = row.cal_date.split("-")
|
|
|
|
|
|
var t = arr[2]+"-"+arr[0]+"-"+arr[1];
|
|
|
|
|
|
console.log(t);
|
|
|
|
|
|
this.$data.form.cal_date=t;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//this.$data.form.p_date=row.p_date;
|
|
|
|
|
|
//this.$data.form.cal_date=row.cal_date;
|
|
|
|
|
|
this.$data.form.total_wt=row.total_wt;
|
|
|
|
|
|
this.$data.form.cur_wt=row.cur_wt;
|
|
|
|
|
|
this.$data.form.repair_cnt=row.repair_cnt;
|
|
|
|
|
|
this.$data.form.region=row.region;
|
|
|
|
|
|
this.$data.form.location=row.location;
|
|
|
|
|
|
this.$data.form.responsible=row.responsible;
|
|
|
|
|
|
|
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
|
this.$refs['bform'].clearValidate()
|
|
|
|
|
|
});
|
|
|
|
|
|
this.$data.update_visible=true;
|
|
|
|
|
|
},
|
|
|
|
|
|
add_dev_manage(){
|
|
|
|
|
|
this.$refs['bform'].validate((valid) => {
|
2025-08-01 16:50:32 +08:00
|
|
|
|
if (valid) {
|
|
|
|
|
|
var _this = this;
|
|
|
|
|
|
|
|
|
|
|
|
var r;
|
2026-05-19 15:06:53 +08:00
|
|
|
|
axios.post('/deescloud/add_dev_manage', {
|
2025-08-01 16:50:32 +08:00
|
|
|
|
opuser:localStorage.getItem("online_user"),
|
|
|
|
|
|
opuser_uuid:localStorage.getItem("uuid"),
|
|
|
|
|
|
data:{
|
|
|
|
|
|
wellname:_this.$data.form.wellname,
|
|
|
|
|
|
sid:_this.$data.form.sid,
|
|
|
|
|
|
iid:_this.$data.form.iid,
|
|
|
|
|
|
ver: _this.$data.form.ver,
|
|
|
|
|
|
p_date:_this.$data.form.p_date,
|
|
|
|
|
|
cal_date:_this.$data.form.cal_date,
|
|
|
|
|
|
total_wt:_this.$data.form.total_wt,
|
|
|
|
|
|
cur_wt:_this.$data.form.cur_wt,
|
|
|
|
|
|
repair_cnt:_this.$data.form.repair_cnt,
|
|
|
|
|
|
region:_this.$data.form.region,
|
|
|
|
|
|
location:_this.$data.form.location,
|
|
|
|
|
|
responsible:_this.$data.form.responsible
|
|
|
|
|
|
}
|
2026-05-19 15:06:53 +08:00
|
|
|
|
})
|
|
|
|
|
|
.then(function (response) {
|
2025-08-01 16:50:32 +08:00
|
|
|
|
console.log(response.data);
|
|
|
|
|
|
r = response.data.r;
|
|
|
|
|
|
if (r==0){
|
|
|
|
|
|
_this.$message({
|
2026-05-19 15:06:53 +08:00
|
|
|
|
message: "添加成功",
|
2025-08-01 16:50:32 +08:00
|
|
|
|
type: "success",
|
|
|
|
|
|
duration: 1500
|
|
|
|
|
|
});
|
|
|
|
|
|
}else{
|
|
|
|
|
|
_this.$message({
|
2026-05-19 15:06:53 +08:00
|
|
|
|
message: "添加失败",
|
2025-08-01 16:50:32 +08:00
|
|
|
|
type: "error",
|
|
|
|
|
|
duration: 1500
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-05-19 15:06:53 +08:00
|
|
|
|
_this.$data.add_visible=false;
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch(function (error) {
|
2025-08-01 16:50:32 +08:00
|
|
|
|
console.log(error);
|
2026-05-19 15:06:53 +08:00
|
|
|
|
});
|
2025-08-01 16:50:32 +08:00
|
|
|
|
}})
|
2026-05-19 15:06:53 +08:00
|
|
|
|
},
|
|
|
|
|
|
add_dev_manage_dialog(){
|
|
|
|
|
|
document.getElementById("bt_add").blur();
|
|
|
|
|
|
|
|
|
|
|
|
this.$data.form.wellname='';
|
|
|
|
|
|
this.$data.form.sid='';
|
|
|
|
|
|
this.$data.form.iid='';
|
|
|
|
|
|
this.$data.form.ver= '';
|
|
|
|
|
|
this.$data.form.p_date='';
|
|
|
|
|
|
this.$data.form.cal_date='';
|
|
|
|
|
|
this.$data.form.total_wt='';
|
|
|
|
|
|
this.$data.form.cur_wt='';
|
|
|
|
|
|
this.$data.form.repair_cnt='';
|
|
|
|
|
|
this.$data.form.region='';
|
|
|
|
|
|
this.$data.form.location='';
|
|
|
|
|
|
this.$data.form.responsible='';
|
|
|
|
|
|
|
|
|
|
|
|
var _this = this;
|
|
|
|
|
|
axios.post('/deescloud/getWellNames',{
|
|
|
|
|
|
opuser:localStorage.getItem("online_user"),
|
|
|
|
|
|
opuser_uuid:localStorage.getItem("uuid"),
|
|
|
|
|
|
})
|
|
|
|
|
|
.then(function (response) {
|
|
|
|
|
|
console.log(response.data);
|
|
|
|
|
|
_this.$data.wellnames = response.data;
|
2025-08-01 16:50:32 +08:00
|
|
|
|
})
|
2026-05-19 15:06:53 +08:00
|
|
|
|
.catch(function (error) {
|
|
|
|
|
|
console.log(error);
|
2025-08-01 16:50:32 +08:00
|
|
|
|
});
|
2026-05-19 15:06:53 +08:00
|
|
|
|
|
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
|
this.$refs['bform'].clearValidate()
|
|
|
|
|
|
});
|
|
|
|
|
|
this.$data.add_visible=true;
|
|
|
|
|
|
},
|
|
|
|
|
|
export_pdf(row){
|
|
|
|
|
|
var _this = this;
|
|
|
|
|
|
|
|
|
|
|
|
axios.post('deescloud/get_dev_manage_pdf',{
|
|
|
|
|
|
opuser:localStorage.getItem("online_user"),
|
|
|
|
|
|
opuser_uuid:localStorage.getItem("uuid"),
|
|
|
|
|
|
wellname: row.wellNameSource
|
2025-08-01 16:50:32 +08:00
|
|
|
|
},
|
2026-05-19 15:06:53 +08:00
|
|
|
|
).then(function (response) {
|
|
|
|
|
|
console.log(response.data);
|
|
|
|
|
|
var fileid = response.data.fileId;
|
2025-08-01 16:50:32 +08:00
|
|
|
|
|
2026-05-19 15:06:53 +08:00
|
|
|
|
var downUrl = 'file/'+fileid;
|
|
|
|
|
|
downloadUrl(row.wellNameSource+"-设备资产管理报告.pdf",downUrl);
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch(function (error) {
|
|
|
|
|
|
console.log(error);
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
show_pdf(row){
|
|
|
|
|
|
let _this= this;
|
|
|
|
|
|
axios.post('/deescloud/get_dev_manage', {
|
|
|
|
|
|
opuser:localStorage.getItem("online_user"),
|
|
|
|
|
|
opuser_uuid:localStorage.getItem("uuid"),
|
|
|
|
|
|
wellname: row.wellNameSource,
|
|
|
|
|
|
})
|
|
|
|
|
|
.then(function (response) {
|
|
|
|
|
|
console.log(response.data);
|
|
|
|
|
|
_this.$data.dev_tableData = response.data.data;
|
|
|
|
|
|
_this.$data.pdf_visible = true;
|
2025-08-01 16:50:32 +08:00
|
|
|
|
})
|
|
|
|
|
|
.catch(function (error) {
|
2026-05-19 15:06:53 +08:00
|
|
|
|
console.log(error);
|
2025-08-01 16:50:32 +08:00
|
|
|
|
});
|
2026-05-19 15:06:53 +08:00
|
|
|
|
},
|
|
|
|
|
|
getWell(_search_name){
|
|
|
|
|
|
|
|
|
|
|
|
this.$data.currentPage=1;
|
2025-08-01 16:50:32 +08:00
|
|
|
|
|
2026-05-19 15:06:53 +08:00
|
|
|
|
var _this = this;
|
2025-08-01 16:50:32 +08:00
|
|
|
|
|
2026-05-19 15:06:53 +08:00
|
|
|
|
var objs;
|
|
|
|
|
|
axios.post('/deescloud/get_well_dev', {
|
|
|
|
|
|
opuser:localStorage.getItem("online_user"),
|
|
|
|
|
|
opuser_uuid:localStorage.getItem("uuid"),
|
|
|
|
|
|
Wellname: _search_name,
|
|
|
|
|
|
index: this.$data.currentPage,
|
|
|
|
|
|
count: this.$data.pagesize
|
|
|
|
|
|
})
|
|
|
|
|
|
.then(function (response) {
|
|
|
|
|
|
console.log(response.data);
|
|
|
|
|
|
objs = response.data.data;
|
|
|
|
|
|
rcnt = response.data.total;
|
|
|
|
|
|
_this.$data.tableData = objs;
|
|
|
|
|
|
_this.$data.recordTotal = rcnt;
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch(function (error) {
|
|
|
|
|
|
console.log(error);
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
handleSizeChange(val) {
|
|
|
|
|
|
//console.log(`每页 ${val} 条`);
|
|
|
|
|
|
this.$data.pagesize = val;
|
|
|
|
|
|
this.$data.currentPage = 1;
|
2025-08-01 16:50:32 +08:00
|
|
|
|
var _this = this;
|
2026-05-19 15:06:53 +08:00
|
|
|
|
|
2025-08-01 16:50:32 +08:00
|
|
|
|
var objs;
|
|
|
|
|
|
axios.post('/deescloud/get_well_dev', {
|
|
|
|
|
|
opuser:localStorage.getItem("online_user"),
|
|
|
|
|
|
opuser_uuid:localStorage.getItem("uuid"),
|
2026-05-19 15:06:53 +08:00
|
|
|
|
Wellname: this.$data.input,
|
2025-08-01 16:50:32 +08:00
|
|
|
|
index: this.$data.currentPage,
|
|
|
|
|
|
count: this.$data.pagesize
|
2026-05-19 15:06:53 +08:00
|
|
|
|
})
|
|
|
|
|
|
.then(function (response) {
|
2025-08-01 16:50:32 +08:00
|
|
|
|
console.log(response.data);
|
2026-05-19 15:06:53 +08:00
|
|
|
|
objs = response.data.data;
|
|
|
|
|
|
rcnt = response.data.total;
|
|
|
|
|
|
_this.$data.tableData = objs;
|
|
|
|
|
|
_this.$data.recordTotal = rcnt;
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch(function (error) {
|
2025-08-01 16:50:32 +08:00
|
|
|
|
console.log(error);
|
2026-05-19 15:06:53 +08:00
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
handleCurrentChange(val) {
|
|
|
|
|
|
//console.log(`当前页: ${val}`);
|
|
|
|
|
|
this.$data.currentPage = val;
|
2025-08-01 16:50:32 +08:00
|
|
|
|
|
2026-05-19 15:06:53 +08:00
|
|
|
|
var _this = this;
|
|
|
|
|
|
|
|
|
|
|
|
var objs;
|
|
|
|
|
|
axios.post('/deescloud/get_well_dev', {
|
|
|
|
|
|
opuser:localStorage.getItem("online_user"),
|
|
|
|
|
|
opuser_uuid:localStorage.getItem("uuid"),
|
|
|
|
|
|
Wellname: this.$data.input,
|
|
|
|
|
|
index: this.$data.currentPage,
|
|
|
|
|
|
count: this.$data.pagesize
|
|
|
|
|
|
})
|
|
|
|
|
|
.then(function (response) {
|
|
|
|
|
|
console.log(response.data);
|
|
|
|
|
|
objs = response.data.data;
|
|
|
|
|
|
rcnt = response.data.total;
|
|
|
|
|
|
_this.$data.tableData = objs;
|
|
|
|
|
|
_this.$data.recordTotal = rcnt;
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch(function (error) {
|
|
|
|
|
|
console.log(error);
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
},
|
2026-05-19 16:54:18 +08:00
|
|
|
|
}
|
2025-08-01 16:50:32 +08:00
|
|
|
|
}
|
|
|
|
|
|
|