deesCloud-web/scripts/dev.js

1260 lines
37 KiB
JavaScript
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.

//组件
var devcomponent = {
template:`
<div>
<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>
</div>
<div class="span" v-if='radio1=="1"' style="max-height: calc(100vh - 200px); overflow-x: auto;">
<el-table
:data="tableData"
style="width: 100%;font-size:14px"
:height="tHeight"
: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>
<div class="block" v-if='radio1=="1"'>
<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>
<div class="span" v-if='radio1=="2"' style="max-height: calc(100vh - 250px); overflow-y: auto;">
<el-table
:data="devListTableData"
style="width: 100%;font-size:14px"
:height="tHeight"
:cell-style="{background:'#304156'}"
border
>
<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>
<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>
</el-row>
<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>
</el-row>
<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 {
tHeight:screenH-192,
tHeight1:screenH*0.5,
tableData: Array(0),
input:'',
currentPage: 1,
pagesize:50,
recordTotal:0,
radio1:'1',
// 设备列表相关数据
devListTableData: [],
devSearchForm: {
sid: [],
iid: [],
wellname: '',
wellnameList: [],
engineerList: [],
in_time_start: '',
in_time_end: ''
},
// 设备筛选下拉选项
devSidOptions: [],
devIidOptions: [],
devWellnameOptions: [],
devEngineerOptions: [],
devCurrentPage: 1,
devPagesize: 50,
devRecordTotal: 0,
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:'',
// 日期选择器配置
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;
}
},
}
},
mounted() {
var _this = this;
this.getQueryWellData();
this.getWell();
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);
});
// 获取设备筛选选项
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', {
opuser:localStorage.getItem("online_user"),
opuser_uuid:localStorage.getItem("uuid"),
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
});
}
})
.catch(function (error) {
console.log(error);
});
},
update_dev_manage(){
this.$refs['bform'].validate((valid) => {
if (valid) {
var _this = this;
var r;
axios.post('/deescloud/update_dev_manage', {
opuser:localStorage.getItem("online_user"),
opuser_uuid:localStorage.getItem("uuid"),
data:{
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
}
})
.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: _this.$data.form.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
});
}
_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) => {
if (valid) {
var _this = this;
var r;
axios.post('/deescloud/add_dev_manage', {
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
}
})
.then(function (response) {
console.log(response.data);
r = response.data.r;
if (r==0){
_this.$message({
message: "添加成功",
type: "success",
duration: 1500
});
}else{
_this.$message({
message: "添加失败",
type: "error",
duration: 1500
});
}
_this.$data.add_visible=false;
})
.catch(function (error) {
console.log(error);
});
}})
},
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;
})
.catch(function (error) {
console.log(error);
});
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
},
).then(function (response) {
console.log(response.data);
var fileid = response.data.fileId;
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;
})
.catch(function (error) {
console.log(error);
});
},
getWell(_search_name){
this.$data.currentPage=1;
var _this = this;
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;
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);
});
},
handleCurrentChange(val) {
//console.log(`当前页: ${val}`);
this.$data.currentPage = val;
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);
});
},
}
}