2 lines
6.3 KiB
JavaScript
2 lines
6.3 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 r,b as i,q as d,v as f,F as m,t as p,B as g,m as _,j as h,E as b,s as v,l as x,d as y,S as k,I as S,C as V,G as j,H as T}from"./index-OB0VlTdH.js";import{_ as w}from"./home_bg.BmQJoAoC.js";import{_ as C}from"./ic_back.BKIFUCMS.js";import{o as I}from"./uni-app.es.BkdVxj0c.js";import{c as R}from"./trunk.BNECu3Go.js";import{_ as $}from"./_plugin-vue_export-helper.BCo6x5W8.js";import"./api.BiZegRX6.js";import"./index.C3pN8Hdu.js";function F(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),r=c+2*u;n.fillStyle="rgba(0,0,0,0.4)",n.fillRect(0,t-r,a,r),n.fillStyle="#ffffff",n.font=`${c}px sans-serif`,n.textBaseline="middle",n.fillText(e,u,t-r/2),l(o.toDataURL("image/jpeg",.9))},s.onerror=a=>t(a||new Error("图片加载失败")),s.src=a}))}const U=$({__name:"index",setup($){const U=a().statusBarHeight||0,H=e([]),M=e(""),N=e(!1),B=l({faultTime:"",personnel:"",faultReason:"",mileage:"",cableName:"",latitude:0,longitude:0,remark:""});function D(){h()}function E(){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");B.faultTime=`${e}/${l}/${t} ${s}:${o}`}}})}function P(){navigator.geolocation?navigator.geolocation.getCurrentPosition((a=>{B.latitude=a.coords.latitude,B.longitude=a.coords.longitude,v({title:"获取成功",icon:"success"})}),(()=>{v({title:"获取位置失败,请检查浏览器定位权限",icon:"none"})}),{enableHighAccuracy:!0,timeout:1e4}):v({title:"当前浏览器不支持定位",icon:"none"})}async function q(){if(0!==H.value.length)if(M.value){if(!N.value){N.value=!0,j({title:"提交中...",mask:!0});try{const e=`${B.faultTime} ${B.personnel}`,l=[];for(const o of H.value)try{const a=await F(o,e);l.push(a)}catch(a){l.push(o)}const t={files:l.map(((a,e)=>({name:"images",uri:a}))),data:{cableId:M.value,faultTime:B.faultTime,personnel:B.personnel,faultReason:B.faultReason,mileage:B.mileage,latitude:String(B.latitude),longitude:String(B.longitude),remark:B.remark}},s=await R(t);200===s.code?(v({title:"提交成功",icon:"success"}),setTimeout((()=>{h()}),1500)):v({title:s.msg||"提交失败",icon:"none"})}catch(a){v({title:"网络异常,请重试",icon:"none"})}finally{T(),N.value=!1}}}else v({title:"所属光缆信息缺失,无法提交",icon:"none"});else v({title:"请至少拍摄一张照片",icon:"none"})}return I((a=>{a.cableId&&(M.value=a.cableId),a.cableName&&(B.cableName=decodeURIComponent(a.cableName))})),(a,e)=>{const l=x,h=y,b=o,v=k,j=S,T=V;return n(),t(b,{class:"fault-add-page"},{default:s((()=>[c(l,{class:"bg-image",src:w,mode:"aspectFill"}),c(b,{class:"content"},{default:s((()=>[c(b,{class:"nav-bar",style:u({paddingTop:r(U)+"px"})},{default:s((()=>[c(b,{class:"nav-bar-inner"},{default:s((()=>[c(l,{class:"nav-icon",src:C,mode:"aspectFit",onClick:D}),c(h,{class:"nav-title"},{default:s((()=>[i("新增故障")])),_: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:E},{default:s((()=>[c(h,{class:"plus-icon"},{default:s((()=>[i("+")])),_:1}),c(h,{class:"add-text"},{default:s((()=>[i("点击拍摄")])),_: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((()=>[i("故障时间")])),_:1}),c(b,{class:"form-display"},{default:s((()=>[c(h,{class:"display-text"},{default:s((()=>[i(p(B.faultTime||"拍摄第一张照片后自动填充"),1)])),_:1})])),_:1})])),_:1}),c(b,{class:"form-group"},{default:s((()=>[c(h,{class:"form-label"},{default:s((()=>[i("人员")])),_:1}),c(j,{class:"form-input",modelValue:B.personnel,"onUpdate:modelValue":e[0]||(e[0]=a=>B.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((()=>[i("故障原因")])),_:1}),c(j,{class:"form-input",modelValue:B.faultReason,"onUpdate:modelValue":e[1]||(e[1]=a=>B.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((()=>[i("表显故障里程")])),_:1}),c(j,{class:"form-input",modelValue:B.mileage,"onUpdate:modelValue":e[2]||(e[2]=a=>B.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((()=>[i("所属光缆")])),_:1}),c(b,{class:"form-display"},{default:s((()=>[c(h,{class:"display-text"},{default:s((()=>[i(p(B.cableName),1)])),_:1})])),_:1})])),_:1}),c(b,{class:"form-group"},{default:s((()=>[c(h,{class:"form-label"},{default:s((()=>[i("地点")])),_:1}),c(b,{class:"location-btn",onClick:P},{default:s((()=>[c(h,{class:"location-btn-text"},{default:s((()=>[i("点击获取当前经纬度")])),_:1})])),_:1}),c(h,{class:"location-text"},{default:s((()=>[i("当前经度:"+p(B.longitude)+" 当前纬度:"+p(B.latitude),1)])),_:1})])),_:1}),c(b,{class:"form-group"},{default:s((()=>[c(h,{class:"form-label"},{default:s((()=>[i("备注")])),_:1}),c(T,{class:"form-textarea",modelValue:B.remark,"onUpdate:modelValue":e[3]||(e[3]=a=>B.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":N.value}]),onClick:_(q,["stop"])},{default:s((()=>[c(h,{class:"submit-btn-text"},{default:s((()=>[i(p(N.value?"提交中...":"提交故障"),1)])),_:1})])),_:1},8,["class"])])),_:1})])),_:1})}}},[["__scopeId","data-v-52efe58f"]]);export{U as default};
|