odf_new/web/assets/pages-fault-add-index.52bGneF5.js
2026-03-15 11:10:00 +08:00

2 lines
6.4 KiB
JavaScript

import{g as a,e,f as l,c as t,w as s,i as o,o as n,a as c,n as u,u as i,b as r,q as d,v as f,F as m,t as p,B as g,m as _,j as h,E as b,G as v,H as x,s as y,l as S,d as k,S as w,I as V,C as j}from"./index-CIxOuGOJ.js";import{_ as T}from"./home_bg.BmQJoAoC.js";import{_ as M}from"./ic_back.BKIFUCMS.js";import{o as C}from"./uni-app.es.Dchp3Gm5.js";import{c as I}from"./trunk.Cc97OjLe.js";import{_ as R}from"./_plugin-vue_export-helper.BCo6x5W8.js";import"./api.PO1wRoFK.js";import"./index.BXsJeu9Y.js";function $(a,e){return new Promise(((l,t)=>{const s=new Image;s.crossOrigin="anonymous",s.onload=()=>{const a=s.naturalWidth,t=s.naturalHeight,o=document.createElement("canvas");o.width=a,o.height=t;const n=o.getContext("2d");n.drawImage(s,0,0,a,t);const c=Math.max(Math.floor(.03*a),14),u=Math.floor(.8*c),i=c+2*u;n.fillStyle="rgba(0,0,0,0.4)",n.fillRect(0,t-i,a,i),n.fillStyle="#ffffff",n.font=`${c}px sans-serif`,n.textBaseline="middle",n.fillText(e,u,t-i/2),l(o.toDataURL("image/jpeg",.9))},s.onerror=a=>t(a||new Error("图片加载失败")),s.src=a}))}const F=R({__name:"index",setup(R){const F=a().statusBarHeight||0,H=e([]),U=e(""),A=e(!1),N=l({faultTime:"",personnel:"",faultReason:"",mileage:"",cableName:"",latitude:0,longitude:0,remark:""});function D(){h()}function G(){b({count:1,sourceType:["camera"],success(a){const e=a.tempFilePaths[0];if(H.value.push(e),1===H.value.length){const a=new Date,e=a.getFullYear(),l=String(a.getMonth()+1).padStart(2,"0"),t=String(a.getDate()).padStart(2,"0"),s=String(a.getHours()).padStart(2,"0"),o=String(a.getMinutes()).padStart(2,"0");N.faultTime=`${e}/${l}/${t} ${s}:${o}`}}})}function P(){v({title:"定位中...",mask:!0}),window.AMap?AMap.plugin("AMap.Geolocation",(()=>{new AMap.Geolocation({enableHighAccuracy:!0,timeout:1e4}).getCurrentPosition(((a,e)=>{x(),"complete"===a&&e.position?(N.longitude=e.position.lng,N.latitude=e.position.lat,y({title:"获取成功",icon:"success"})):(console.error("[GPS-H5] 高德定位失败:",e),y({title:"获取位置失败,请检查浏览器定位权限",icon:"none"}))}))})):(x(),y({title:"地图SDK加载失败",icon:"none"}))}async function B(){if(0!==H.value.length)if(U.value){if(!A.value){A.value=!0,v({title:"提交中...",mask:!0});try{const e=`${N.faultTime} ${N.personnel}`,l=[];for(const o of H.value)try{const a=await $(o,e);l.push(a)}catch(a){l.push(o)}const t={files:l.map(((a,e)=>({name:"images",uri:a}))),data:{cableId:U.value,faultTime:N.faultTime,personnel:N.personnel,faultReason:N.faultReason,mileage:N.mileage,latitude:String(N.latitude),longitude:String(N.longitude),remark:N.remark}},s=await I(t);200===s.code?(y({title:"提交成功",icon:"success"}),setTimeout((()=>{h()}),1500)):y({title:s.msg||"提交失败",icon:"none"})}catch(a){y({title:"网络异常,请重试",icon:"none"})}finally{x(),A.value=!1}}}else y({title:"所属光缆信息缺失,无法提交",icon:"none"});else y({title:"请至少拍摄一张照片",icon:"none"})}return C((a=>{a.cableId&&(U.value=a.cableId),a.cableName&&(N.cableName=decodeURIComponent(a.cableName))})),(a,e)=>{const l=S,h=k,b=o,v=w,x=V,y=j;return n(),t(b,{class:"fault-add-page"},{default:s((()=>[c(l,{class:"bg-image",src:T,mode:"aspectFill"}),c(b,{class:"content"},{default:s((()=>[c(b,{class:"nav-bar",style:u({paddingTop:i(F)+"px"})},{default:s((()=>[c(b,{class:"nav-bar-inner"},{default:s((()=>[c(l,{class:"nav-icon",src:M,mode:"aspectFit",onClick:D}),c(h,{class:"nav-title"},{default:s((()=>[r("新增故障")])),_:1}),c(b,{class:"nav-icon-placeholder"})])),_:1})])),_:1},8,["style"]),c(b,{class:"photo-area"},{default:s((()=>[c(v,{class:"photo-scroll","scroll-x":""},{default:s((()=>[c(b,{class:"photo-list"},{default:s((()=>[c(b,{class:"photo-add-btn",onClick:G},{default:s((()=>[c(h,{class:"plus-icon"},{default:s((()=>[r("+")])),_:1}),c(h,{class:"add-text"},{default:s((()=>[r("点击拍摄")])),_:1})])),_:1}),(n(!0),d(m,null,f(H.value,((a,e)=>(n(),t(l,{class:"photo-thumb",key:e,src:a,mode:"aspectFill"},null,8,["src"])))),128))])),_:1})])),_:1})])),_:1}),c(b,{class:"form-area"},{default:s((()=>[c(b,{class:"form-group"},{default:s((()=>[c(h,{class:"form-label"},{default:s((()=>[r("故障时间")])),_:1}),c(b,{class:"form-display"},{default:s((()=>[c(h,{class:"display-text"},{default:s((()=>[r(p(N.faultTime||"拍摄第一张照片后自动填充"),1)])),_:1})])),_:1})])),_:1}),c(b,{class:"form-group"},{default:s((()=>[c(h,{class:"form-label"},{default:s((()=>[r("人员")])),_:1}),c(x,{class:"form-input",modelValue:N.personnel,"onUpdate:modelValue":e[0]||(e[0]=a=>N.personnel=a),placeholder:"请输入","placeholder-class":"input-placeholder"},null,8,["modelValue"])])),_:1}),c(b,{class:"form-group"},{default:s((()=>[c(h,{class:"form-label"},{default:s((()=>[r("故障原因")])),_:1}),c(x,{class:"form-input",modelValue:N.faultReason,"onUpdate:modelValue":e[1]||(e[1]=a=>N.faultReason=a),placeholder:"请输入","placeholder-class":"input-placeholder"},null,8,["modelValue"])])),_:1}),c(b,{class:"form-group"},{default:s((()=>[c(h,{class:"form-label"},{default:s((()=>[r("表显故障里程")])),_:1}),c(x,{class:"form-input",modelValue:N.mileage,"onUpdate:modelValue":e[2]||(e[2]=a=>N.mileage=a),placeholder:"请输入","placeholder-class":"input-placeholder"},null,8,["modelValue"])])),_:1}),c(b,{class:"form-group"},{default:s((()=>[c(h,{class:"form-label"},{default:s((()=>[r("所属光缆")])),_:1}),c(b,{class:"form-display"},{default:s((()=>[c(h,{class:"display-text"},{default:s((()=>[r(p(N.cableName),1)])),_:1})])),_:1})])),_:1}),c(b,{class:"form-group"},{default:s((()=>[c(h,{class:"form-label"},{default:s((()=>[r("地点")])),_:1}),c(b,{class:"location-btn",onClick:P},{default:s((()=>[c(h,{class:"location-btn-text"},{default:s((()=>[r("点击获取当前经纬度")])),_:1})])),_:1}),c(h,{class:"location-text"},{default:s((()=>[r("当前经度:"+p(N.longitude)+" 当前纬度:"+p(N.latitude),1)])),_:1})])),_:1}),c(b,{class:"form-group"},{default:s((()=>[c(h,{class:"form-label"},{default:s((()=>[r("备注")])),_:1}),c(y,{class:"form-textarea",modelValue:N.remark,"onUpdate:modelValue":e[3]||(e[3]=a=>N.remark=a),placeholder:"请输入","placeholder-class":"input-placeholder"},null,8,["modelValue"])])),_:1})])),_:1})])),_:1}),c(b,{class:"bottom-bar"},{default:s((()=>[c(b,{class:g(["submit-btn",{"submit-btn-disabled":A.value}]),onClick:_(B,["stop"])},{default:s((()=>[c(h,{class:"submit-btn-text"},{default:s((()=>[r(p(A.value?"提交中...":"提交故障"),1)])),_:1})])),_:1},8,["class"])])),_:1})])),_:1})}}},[["__scopeId","data-v-11f89630"]]);export{F as default};