odf_new/web/assets/pages-fault-add-index.DmpRwVaL.js
zpc 6c901fc2f9
All checks were successful
continuous-integration/drone/push Build is passing
21
2026-04-04 18:32:11 +08:00

2 lines
7.5 KiB
JavaScript

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