var devcomponent = { template:`
井位 设备
搜索 新增
搜索 导出仪器明细 导出井位明细
取 消 确 定 取 消 确 定
`, data(){ // 获取当前屏幕的分辨率 let screenW = window.screen.width; let screenH = window.innerHeight; console.log("screen width:",screenW); console.log("screen height:",screenH); return { tHeight1: screenH * 0.5, tableData: [], 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); }); }, } }