You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
21 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["pages-index-index"],{1350:function(t,e,n){"use strict";n.d(e,"b",(function(){return s})),n.d(e,"c",(function(){return i})),n.d(e,"a",(function(){return a}));var a={uIcon:n("4fee").default,uButton:n("eb80").default},s=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-uni-view",{staticClass:"checkin-page"},[n("v-uni-view",{staticClass:"checkin-container"},[t._v(t._s(t.vuex_token)),n("v-uni-view",{staticClass:"course-card"},[n("v-uni-view",{staticClass:"course-title"},[t._v(t._s(t.course.theme?t.course.theme:""))]),n("v-uni-view",{staticClass:"course-info"},[n("v-uni-view",{staticClass:"info-item"},[n("u-icon",{staticClass:"info-icon",attrs:{name:"calendar-fill"}}),n("v-uni-text",[t._v(t._s(t.course.date?t.course.date:"")+" - "+t._s(t.course.period?t.course.period:""))])],1),n("v-uni-view",{staticClass:"info-item"},[n("u-icon",{staticClass:"info-icon",attrs:{name:"map-fill"}}),n("v-uni-text",[t._v(t._s(t.course.address?t.course.address:""))])],1),n("v-uni-view",{staticClass:"info-item"},[n("u-icon",{staticClass:"info-icon",attrs:{name:"account-fill"}}),n("v-uni-text",[t._v(t._s(t.course.teacher?t.course.teacher.name:""))])],1)],1)],1),t.courseContentList.length>0?n("v-uni-view",{staticClass:"status-card"},[n("h6",{staticClass:"card-title"},[n("u-icon",{staticClass:"title-icon",attrs:{name:"order"}}),t._v("当前其他可签到课程")],1),t._l(t.courseContentList,(function(e){return n("v-uni-view",{key:e.id,staticClass:"course-card"},[n("v-uni-view",{staticClass:"course-title"},[t._v(t._s(e.theme||""))]),n("v-uni-view",{staticClass:"course-info"},[e.date||e.period?n("v-uni-view",{staticClass:"info-item"},[n("u-icon",{staticClass:"info-icon",attrs:{name:"calendar-fill"}}),n("v-uni-text",[t._v(t._s(e.date||"")+" - "+t._s(e.period||""))])],1):t._e(),e.address?n("v-uni-view",{staticClass:"info-item"},[n("u-icon",{staticClass:"info-icon",attrs:{name:"map-fill"}}),n("v-uni-text",[t._v(t._s(e.address))])],1):t._e(),e.teacher&&e.teacher.name?n("v-uni-view",{staticClass:"info-item"},[n("u-icon",{staticClass:"info-icon",attrs:{name:"account-fill"}}),n("v-uni-text",[t._v(t._s(e.teacher.name))])],1):t._e()],1)],1)}))],2):t._e(),n("v-uni-view",{staticClass:"status-card"},[n("h6",{staticClass:"card-title"},[n("u-icon",{staticClass:"title-icon",attrs:{name:"shield-checkmark"}}),t._v("签到状态检测")],1),n("v-uni-view",{staticClass:"status-item"},[n("v-uni-text",{staticClass:"status-label"},[t._v("定位状态")]),n("v-uni-view",{class:["status-value","status-"+t.locationStatus.type]},[n("u-icon",{attrs:{name:t.getStatusIcon(t.locationStatus.type)}}),n("v-uni-text",[t._v(t._s(t.locationStatus.text))])],1)],1),n("v-uni-view",{staticClass:"status-item"},[n("v-uni-text",{staticClass:"status-label"},[t._v("打卡范围")]),n("v-uni-view",{class:["status-value","status-"+t.rangeStatus.type]},[n("u-icon",{attrs:{name:t.getStatusIcon(t.rangeStatus.type)}}),n("v-uni-text",[t._v(t._s(t.rangeStatus.text))])],1)],1)],1),null!==t.distance?n("v-uni-view",{staticClass:"distance-info"},[n("v-uni-view",{staticClass:"distance-value"},[t._v(t._s(t.formattedDistance))]),n("v-uni-view",{staticClass:"distance-label"},[t._v("距离课程地点")])],1):t._e(),t.alertInfo.message?n("v-uni-view",{class:["alert-custom","alert-"+t.alertInfo.type]},[n("u-icon",{staticClass:"alert-icon",attrs:{name:t.getStatusIcon(t.alertInfo.type)}}),n("v-uni-text",[t._v(t._s(t.alertInfo.message))])],1):t._e(),n("v-uni-view",{staticClass:"checkin-actions"},[n("u-button",{staticClass:"checkin-btn",attrs:{type:"primary",disabled:!t.canCheckin},on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.performCheckin.apply(void 0,arguments)}}},[n("u-icon",{staticClass:"btn-icon",attrs:{name:"map"}}),t._v(t._s(t.hasCheckedIn?"已签到":"位置签到"))],1),n("u-button",{staticClass:"recheck-btn",attrs:{type:"success"},on:{click:function(e){arguments[0]=e=t.$handleEvent(e),t.handleRecheckClick.apply(void 0,arguments)}}},[n("u-icon",{staticClass:"btn-icon",attrs:{name:t.hasLocationPermission?"reload":"location"}}),t._v(t._s(t.hasLocationPermission?"重新定位":"获取定位权限"))],1)],1),n("v-uni-view",{staticClass:"status-card"},[n("h6",{staticClass:"card-title"},[n("u-icon",{staticClass:"title-icon",attrs:{name:"order"}}),t._v("签到记录")],1),0===t.checkinHistory.length?n("v-uni-view",{staticClass:"history-empty"},[t._v("暂无签到记录")]):n("v-uni-view",{staticClass:"history-list"},t._l(t.checkinHistory,(function(e,a){return n("v-uni-view",{key:a,staticClass:"history-item"},[n("v-uni-text",[t._v("签到时间: "+t._s(e.created_at))])],1)})),1)],1)],1)],1)},i=[]},"16da":function(t,e,n){"use strict";n.r(e);var a=n("dd5e"),s=n.n(a);for(var i in a)["default"].indexOf(i)<0&&function(t){n.d(e,t,(function(){return a[t]}))}(i);e["default"]=s.a},4418:function(t,e,n){"use strict";var a=n("dba7"),s=n.n(a);s.a},dba7:function(t,e,n){var a=n("e813");a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[t.i,a,""]]),a.locals&&(t.exports=a.locals);var s=n("967d").default;s("4bc5ea66",a,!0,{sourceMap:!1,shadowMode:!1})},dd5e:function(t,e,n){"use strict";n("6a54");var a=n("f5bd").default;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,n("8f71"),n("bf0f"),n("e838"),n("64aa");var s=a(n("9b1b")),i=a(n("5de6")),o=a(n("2634")),c=a(n("2fdc")),r={data:function(){return{courseContentList:[],course_content_id:"",course:{},userLocation:null,distance:null,canCheckin:!1,hasCheckedIn:!1,locationStatus:{type:"default",text:"未定位"},rangeStatus:{type:"default",text:"未计算"},alertInfo:{type:"",message:""},checkinHistory:[],hasLocationPermission:!1,coordinateConfig:{backendSystem:"wgs84",enableConversion:!0}}},computed:{formattedDistance:function(){var t=this.distance;return null==t?"":t>=1e3?"".concat(Math.round(t/1e3),"km"):"".concat(t,"m")}},onLoad:function(t){console.log("页面加载options:",t),this.course_content_id=null===t||void 0===t?void 0:t.course_content_id,this.testCoordinateConversion(),console.log("开始检查权限..."),this.checkPermissionAndInit()},methods:{getCourseList:function(){var t=this;return(0,c.default)((0,o.default)().mark((function e(){var n;return(0,o.default)().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,t.$u.api.myCourseContent({date:t.course.date});case 2:if(n=e.sent,n.list&&0!==n.list.length){e.next=7;break}return t.canCheckin=!1,t.courseContentList=[],e.abrupt("return");case 7:t.courseContentList=n.list.filter((function(e){return e.id!=t.course.id}));case 8:case"end":return e.stop()}}),e)})))()},checkPermissionAndInit:function(){var t=this;return(0,c.default)((0,o.default)().mark((function e(){var n,a,s;return(0,o.default)().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return console.log("开始检查权限..."),n=!1,e.prev=2,e.next=5,new Promise((function(t){uni.getSetting({success:t,fail:function(){return t({})}})}));case 5:a=e.sent,console.log("获取设置结果:",a),s=(null===a||void 0===a?void 0:a.authSetting)||{},console.log("权限设置:",s),n=!!s["scope.userLocation"],t.hasLocationPermission=n,console.log("权限检测结果:",n,"hasLocationPermission:",t.hasLocationPermission),e.next=18;break;case 14:e.prev=14,e.t0=e["catch"](2),console.log("权限检测异常:",e.t0),t.hasLocationPermission=!1;case 18:return console.log("开始获取课程信息..."),e.next=21,t.getCourse();case 21:return e.next=23,t.signGet();case 23:if(n){e.next=29;break}return console.log("无权限,设置状态为未获取定位权限"),t.locationStatus={type:"warning",text:"未获取定位权限"},t.rangeStatus={type:"default",text:"未计算"},t.canCheckin=!1,e.abrupt("return");case 29:return console.log("有权限,开始完整签到流程"),e.next=32,t.initializeCheckin();case 32:case"end":return e.stop()}}),e,null,[[2,14]])})))()},handleRecheckClick:function(){console.log("按钮被点击,当前权限状态:",this.hasLocationPermission),this.hasLocationPermission?(console.log("有权限,执行重新定位"),this.initializeCheckin()):(console.log("无权限,请求定位权限"),this.requestLocationPermission())},requestLocationPermission:function(){var t=this;console.log("开始请求定位权限..."),uni.authorize({scope:"scope.userLocation",success:function(){console.log("定位权限授权成功"),t.hasLocationPermission=!0,t.locationStatus={type:"warning",text:"定位中..."},t.initializeCheckin()},fail:function(e){console.log("定位权限授权失败:",e),uni.openSetting({success:function(e){var n=(null===e||void 0===e?void 0:e.authSetting)&&e.authSetting["scope.userLocation"];n&&(console.log("通过设置页面获取定位权限成功"),t.hasLocationPermission=!0,t.locationStatus={type:"warning",text:"定位中..."},t.initializeCheckin())}})}})},getLocation:function(){return new Promise((function(t,e){uni.getLocation({success:function(e){return t({lat:e.latitude,lng:e.longitude})},fail:function(t){return e(t)}})}))},getCourse:function(){var t=this;return(0,c.default)((0,o.default)().mark((function e(){var n,a,c,r,u,l,d,f,h;return(0,o.default)().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,t.$u.api.courseContentDetail({course_content_id:t.course_content_id});case 2:n=e.sent,a=n||{},c=a.latitude||a.lat,r=a.longitude||a.lng,u=r,l=c,t.coordinateConfig.enableConversion&&"gcj02"!==t.coordinateConfig.backendSystem&&(d=t.convertCoordinates(r,c,t.coordinateConfig.backendSystem,"gcj02"),f=(0,i.default)(d,1),h=f[0],u=h[0],l=h[1]),console.log("原始坐标:",{lng:r,lat:c,system:t.coordinateConfig.backendSystem}),console.log("转换后坐标:",{lng:u,lat:l,system:"gcj02"}),t.course=(0,s.default)((0,s.default)((0,s.default)({},t.course),a),{},{location:{lat:l,lng:u,originalLat:c,originalLng:r,coordinateSystem:"gcj02"},allowedDistance:500}),t.getCourseList();case 13:case"end":return e.stop()}}),e)})))()},signGet:function(){var t=this;return(0,c.default)((0,o.default)().mark((function e(){var n,a;return(0,o.default)().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,t.$u.api.signGet({course_content_id:t.course_content_id});case 2:n=e.sent,a=(null===n||void 0===n?void 0:n.list)||[],t.checkinHistory=Array.isArray(a)?a:[],t.checkinHistory.length>0&&(t.hasCheckedIn=!0,t.canCheckin=!1,t.alertInfo={type:"warning",message:"已存在签到记录,不能重复打卡"});case 6:case"end":return e.stop()}}),e)})))()},signDistance:function(){var t=this;return(0,c.default)((0,o.default)().mark((function e(){var n,a,s,i,c,r,u,l,d,f;return(0,o.default)().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return n=null,a=t.course.allowedDistance||500,e.prev=2,s=t.userLocation.lat,i=t.userLocation.lng,console.log("用户位置坐标:",{lat:s,lng:i,system:"gcj02"}),console.log("课程位置坐标:",{lat:t.course.location.lat,lng:t.course.location.lng,system:t.course.location.coordinateSystem}),e.next=9,t.$u.api.signDistance({course_content_id:t.course_content_id,latitude:s,longitude:i});case 9:c=e.sent,r=c||{},r&&null!=r.distance&&!isNaN(parseFloat(r.distance))&&(u=parseFloat(r.distance),n=Math.round(1e3*u)),r&&null!=r.content_check_range&&!isNaN(parseFloat(r.content_check_range))&&(l=parseFloat(r.content_check_range),a=Math.round(1e3*l)),e.next=17;break;case 15:e.prev=15,e.t0=e["catch"](2);case 17:null===n&&(d=t.getDistanceFromLatLonInM(t.userLocation.lat,t.userLocation.lng,t.course.location.lat,t.course.location.lng),n=Math.round(d)),t.distance=n,t.course.allowedDistance=a,t.distance<=a?(t.rangeStatus={type:"success",text:"在打卡范围内"},t.canCheckin=!t.hasCheckedIn,t.alertInfo=t.hasCheckedIn?{type:"warning",message:"已存在签到记录,不能重复打卡"}:{type:"success",message:"您已进入打卡范围,距离".concat(t.formatDistanceVal(t.distance),"。")}):(f=Math.max(0,t.distance-a),t.rangeStatus={type:"error",text:"超出范围约".concat(t.formatDistanceVal(f))},t.canCheckin=!1,t.alertInfo={type:"warning",message:"您需要进入".concat(t.formatDistanceVal(a),"范围内才能签到。")});case 21:case"end":return e.stop()}}),e,null,[[2,15]])})))()},signCheck:function(){var t=arguments,e=this;return(0,c.default)((0,o.default)().mark((function n(){var a;return(0,o.default)().wrap((function(n){while(1)switch(n.prev=n.next){case 0:return a=t.length>0&&void 0!==t[0]?t[0]:0,n.prev=1,n.next=4,e.$u.api.signCheck({course_content_id:e.course_content_id,latitude:e.userLocation.lat,longitude:e.userLocation.lng,batch_sign:a});case 4:return n.sent,e.hasCheckedIn=!0,e.canCheckin=!1,1===a?(e.alertInfo={type:"success",message:"批量签到成功!已签到所有课程"},uni.showToast({title:"批量签到成功!",icon:"success"})):(e.alertInfo={type:"success",message:"签到成功"},uni.showToast({title:"签到成功!",icon:"success"})),n.prev=8,n.next=11,e.signGet();case 11:n.next=15;break;case 13:n.prev=13,n.t0=n["catch"](8);case 15:n.next=21;break;case 17:n.prev=17,n.t1=n["catch"](1),console.error("签到失败:",n.t1),uni.showToast({title:"签到失败",icon:"none"});case 21:case"end":return n.stop()}}),n,null,[[1,17],[8,13]])})))()},initializeCheckin:function(){var t=this;return(0,c.default)((0,o.default)().mark((function e(){var n;return(0,o.default)().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return t.locationStatus={type:"warning",text:"定位中..."},t.rangeStatus={type:"default",text:"未计算"},t.canCheckin=!1,t.distance=null,t.alertInfo={type:"",message:""},e.prev=5,e.next=8,t.getLocation();case 8:return n=e.sent,console.log(n),t.userLocation=n,t.locationStatus={type:"success",text:"定位成功"},e.next=14,t.signDistance();case 14:e.next=21;break;case 16:e.prev=16,e.t0=e["catch"](5),t.locationStatus={type:"error",text:"定位失败"},t.rangeStatus={type:"error",text:"无法计算"},t.alertInfo={type:"error",message:"获取信息或位置失败,请检查权限和网络。"};case 21:case"end":return e.stop()}}),e,null,[[5,16]])})))()},wgs84ToGcj02:function(t,e){var n=6378245,a=.006693421622965943;if(this.outOfChina(t,e))return[t,e];var s=this.transformLat(t-105,e-35),i=this.transformLng(t-105,e-35),o=e/180*Math.PI,c=Math.sin(o);c=1-a*c*c;var r=Math.sqrt(c);return s=180*s/(n*(1-a)/(c*r)*Math.PI),i=180*i/(n/r*Math.cos(o)*Math.PI),[t+i,e+s]},gcj02ToWgs84:function(t,e){if(this.outOfChina(t,e))return[t,e];var n=this.transformLat(t-105,e-35),a=this.transformLng(t-105,e-35),s=e/180*Math.PI,i=Math.sin(s);i=1-.006693421622965943*i*i;var o=Math.sqrt(i);return n=180*n/(6335552.717000426/(i*o)*Math.PI),a=180*a/(6378245/o*Math.cos(s)*Math.PI),[t-a,e-n]},outOfChina:function(t,e){return!(t>73.66&&t<135.05&&e>3.86&&e<53.55)},transformLat:function(t,e){var n=2*t-100+3*e+.2*e*e+.1*t*e+.2*Math.sqrt(Math.abs(t));return n+=2*(20*Math.sin(6*t*Math.PI)+20*Math.sin(2*t*Math.PI))/3,n+=2*(20*Math.sin(e*Math.PI)+40*Math.sin(e/3*Math.PI))/3,n+=2*(160*Math.sin(e/12*Math.PI)+320*Math.sin(e*Math.PI/30))/3,n},transformLng:function(t,e){var n=300+t+2*e+.1*t*t+.1*t*e+.1*Math.sqrt(Math.abs(e));return n+=2*(20*Math.sin(6*t*Math.PI)+20*Math.sin(2*t*Math.PI))/3,n+=2*(20*Math.sin(t*Math.PI)+40*Math.sin(t/3*Math.PI))/3,n+=2*(150*Math.sin(t/12*Math.PI)+300*Math.sin(t/30*Math.PI))/3,n},convertCoordinates:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"gcj02",a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"gcj02";if(n===a)return[t,e];if("wgs84"===n&&"gcj02"===a)return this.wgs84ToGcj02(t,e);if("gcj02"===n&&"wgs84"===a)return this.gcj02ToWgs84(t,e);if("wgs84"===n){var s=this.wgs84ToGcj02(t,e);return this.convertCoordinates(s[0],s[1],"gcj02",a)}return[t,e]},testCoordinateConversion:function(){console.log("=== 坐标转换测试 ==="),console.log("WGS84坐标:",{lng:116.397128,lat:39.916527});var t=this.wgs84ToGcj02(116.397128,39.916527);console.log("转换为GCJ-02:",{lng:t[0],lat:t[1]});var e=this.gcj02ToWgs84(t[0],t[1]);console.log("转换回WGS84:",{lng:e[0],lat:e[1]});var n={lng:Math.abs(e[0]-116.397128),lat:Math.abs(e[1]-39.916527)};console.log("转换精度误差:",n),console.log("=== 测试结束 ===")},getDistanceFromLatLonInM:function(t,e,n,a){var s=this.deg2rad(n-t),i=this.deg2rad(a-e),o=Math.sin(s/2)*Math.sin(s/2)+Math.cos(this.deg2rad(t))*Math.cos(this.deg2rad(n))*Math.sin(i/2)*Math.sin(i/2),c=2*Math.atan2(Math.sqrt(o),Math.sqrt(1-o));return 6371*c*1e3},deg2rad:function(t){return t*(Math.PI/180)},formatDistanceVal:function(t){if(null==t)return"";var e=Number(t);return isNaN(e)?"":e>=1e3?"".concat(Math.round(e/1e3),"km"):"".concat(Math.round(e),"m")},getStatusIcon:function(t){return{success:"checkmark-circle-fill",error:"close-circle-fill",warning:"error-circle-fill",default:"question-circle-fill"}[t]||"question-circle-fill"},performCheckin:function(){var t=this;return(0,c.default)((0,o.default)().mark((function e(){return(0,o.default)().wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(!t.hasCheckedIn){e.next=3;break}return uni.showToast({title:"您今天已经签过到了",icon:"none"}),e.abrupt("return");case 3:if(t.canCheckin){e.next=5;break}return e.abrupt("return");case 5:if(!(t.courseContentList.length>0)){e.next=10;break}console.log(t.courseContentList),uni.showModal({title:"批量签到提示",content:"检测到您还有".concat(t.courseContentList.length,"门课程可以签到,是否要一次性合并签到所有课程?"),confirmText:"批量签到",cancelText:"单个签到",success:function(){var e=(0,c.default)((0,o.default)().mark((function e(n){return(0,o.default)().wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(!n.confirm){e.next=5;break}return e.next=3,t.signCheck(1);case 3:e.next=7;break;case 5:return e.next=7,t.signCheck(0);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),fail:function(t){console.log(t)}}),e.next=12;break;case 10:return e.next=12,t.signCheck(0);case 12:case"end":return e.stop()}}),e)})))()},loadCheckinHistory:function(){var t=uni.getStorageSync("checkinHistory")||[];if(this.checkinHistory=t,t.length>0){var e=new Date(t[0].time);e.toDateString()===(new Date).toDateString()&&(this.hasCheckedIn=!0)}}}};e.default=r},e430:function(t,e,n){"use strict";n.r(e);var a=n("1350"),s=n("16da");for(var i in s)["default"].indexOf(i)<0&&function(t){n.d(e,t,(function(){return s[t]}))}(i);n("4418");var o=n("828b"),c=Object(o["a"])(s["default"],a["b"],a["c"],!1,null,"28470049",null,!1,a["a"],void 0);e["default"]=c.exports},e813:function(t,e,n){var a=n("c86c");e=a(!1),e.push([t.i,".checkin-page[data-v-28470049]{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:%?20?%}.checkin-container[data-v-28470049]{max-width:400px;margin:0 auto}.course-card[data-v-28470049], .status-card[data-v-28470049]{background:#fff;border-radius:%?32?%;box-shadow:0 %?8?% %?32?% rgba(0,0,0,.1);padding:%?32?%;margin-bottom:%?30?%}\n/* 其他可签到课程中的课程卡片样式 */.status-card .course-card[data-v-28470049]{padding:%?24?%;margin-bottom:%?20?%;border:%?1?% solid #e9ecef;background:#f8f9fa}.status-card .course-card[data-v-28470049]:last-child{margin-bottom:0}.status-card .course-card .course-title[data-v-28470049]{font-size:%?32?%;margin-bottom:%?20?%}.status-card .course-card .course-info[data-v-28470049]{gap:%?12?%}.status-card .course-card .info-item[data-v-28470049]{padding:%?10?%;font-size:%?24?%}.course-title[data-v-28470049]{font-size:%?36?%;font-weight:600;text-align:center;margin-bottom:%?24?%}.course-info[data-v-28470049]{display:flex;flex-direction:column;gap:%?16?%}.info-item[data-v-28470049]{display:flex;align-items:center;gap:%?16?%;padding:%?12?%;background:#f8f9fa;border-radius:%?16?%;font-size:%?26?%}.info-icon[data-v-28470049]{color:#3498db}.card-title[data-v-28470049]{display:flex;align-items:center;gap:%?12?%;font-size:%?30?%;font-weight:600;margin-bottom:%?16?%}.status-item[data-v-28470049]{display:flex;justify-content:space-between;align-items:center;padding:%?16?% 0;border-bottom:%?1?% solid #e9ecef;font-size:%?28?%}.status-item[data-v-28470049]:last-child{border-bottom:none}.status-label[data-v-28470049]{font-weight:500}.status-value[data-v-28470049]{display:flex;align-items:center;gap:%?8?%}.status-success[data-v-28470049]{color:#2ecc71}.status-error[data-v-28470049]{color:#e74c3c}.status-warning[data-v-28470049]{color:#f1c40f}.status-default[data-v-28470049]{color:#909399}.distance-info[data-v-28470049]{text-align:center;padding:%?24?%;background:#fff;border-radius:%?32?%;margin-bottom:%?24?%}.distance-value[data-v-28470049]{font-size:%?48?%;font-weight:700;color:#3498db}.distance-label[data-v-28470049]{font-size:%?26?%;color:#6c757d;margin-top:%?8?%}.alert-custom[data-v-28470049]{border-radius:%?24?%;padding:%?24?%;margin-bottom:%?24?%;display:flex;align-items:center;gap:%?16?%;font-size:%?26?%;color:#fff}.alert-success[data-v-28470049]{background:#2ecc71}.alert-error[data-v-28470049]{background:#e74c3c}.alert-warning[data-v-28470049]{background:#f1c40f}.checkin-actions[data-v-28470049]{display:flex;flex-direction:column;gap:%?20?%;margin-bottom:%?30?%}.checkin-btn[data-v-28470049] .u-btn, .recheck-btn[data-v-28470049] .u-btn{height:%?90?%}.btn-icon[data-v-28470049]{margin-right:%?12?%}.history-empty[data-v-28470049]{text-align:center;color:#999;padding:%?30?% 0;font-size:%?26?%}.history-list[data-v-28470049]{display:flex;flex-direction:column;gap:%?12?%}.history-item[data-v-28470049]{display:flex;justify-content:space-between;font-size:%?24?%;color:#666;background:#f8f9fa;padding:%?12?%;border-radius:%?12?%}",""]),t.exports=e}}]);