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
17 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"],{"16da":function(e,t,n){"use strict";n.r(t);var i=n("dd5e"),o=n.n(i);for(var a in i)["default"].indexOf(a)<0&&function(e){n.d(t,e,(function(){return i[e]}))}(a);t["default"]=o.a},"1ee5":function(e,t,n){"use strict";var i=n("af7a"),o=n.n(i);o.a},"3c98":function(e,t,n){"use strict";n.d(t,"b",(function(){return o})),n.d(t,"c",(function(){return a})),n.d(t,"a",(function(){return i}));var i={uIcon:n("4fee").default,uButton:n("eb80").default,uModal:n("fe05").default,uInput:n("25cf").default},o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("v-uni-view",{staticClass:"checkin-page"},[n("v-uni-view",{staticClass:"checkin-container"},[n("v-uni-view",{staticClass:"course-card"},[n("v-uni-view",{staticClass:"course-title"},[e._v(e._s(e.course.theme?e.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",[e._v(e._s(e.course.date?e.course.date:"")+" - "+e._s(e.course.period?e.course.period:""))])],1),n("v-uni-view",{staticClass:"info-item"},[n("u-icon",{staticClass:"info-icon",attrs:{name:"map-fill"}}),n("v-uni-text",[e._v(e._s(e.course.address?e.course.address:""))])],1),n("v-uni-view",{staticClass:"info-item"},[n("u-icon",{staticClass:"info-icon",attrs:{name:"account-fill"}}),n("v-uni-text",[e._v(e._s(e.course.teacher?e.course.teacher.name:""))])],1)],1)],1),n("v-uni-view",{staticClass:"checkin-actions"},[n("u-button",{staticClass:"checkin-btn",attrs:{type:"primary",disabled:!e.canCheckin,shape:"circle"},on:{click:function(t){arguments[0]=t=e.$handleEvent(t),e.performCheckin.apply(void 0,arguments)}}},[n("u-icon",{staticClass:"btn-icon",attrs:{name:"checkmark-circle"}}),e._v("立即签到")],1)],1),n("v-uni-view",{staticClass:"status-card"},[n("h6",{staticClass:"card-title"},[n("u-icon",{staticClass:"title-icon",attrs:{name:"order"}}),e._v("签到记录")],1),0===e.checkinHistory.length?n("v-uni-view",{staticClass:"history-empty"},[e._v("暂无签到记录")]):n("v-uni-view",{staticClass:"history-list"},e._l(e.checkinHistory,(function(t,i){return n("v-uni-view",{key:i,staticClass:"history-item"},[n("v-uni-text",[e._v("签到时间: "+e._s(t.created_at))])],1)})),1)],1)],1),n("u-modal",{attrs:{"show-cancel-button":!1,"show-confirm-button":!1,"show-title":!1,width:"650rpx","border-radius":32},model:{value:e.showLoginModal,callback:function(t){e.showLoginModal=t},expression:"showLoginModal"}},[n("v-uni-view",{staticClass:"login-modal-content"},[n("v-uni-view",{staticClass:"login-header"},[n("v-uni-view",{staticClass:"login-title"},[n("u-icon",{staticClass:"title-icon",attrs:{name:"account-circle"}}),n("v-uni-text",[e._v("确认报名信息")])],1),n("v-uni-view",{staticClass:"login-subtitle"},[e._v("请输入手机号获取验证码完成签到")])],1),n("v-uni-view",{staticClass:"login-form"},[n("v-uni-view",{staticClass:"form-item"},[n("v-uni-view",{staticClass:"form-label"},[n("u-icon",{staticClass:"label-icon",attrs:{name:"phone"}}),n("v-uni-text",[e._v("手机号")])],1),n("u-input",{staticClass:"form-input",attrs:{placeholder:"请输入11位手机号",type:"number",maxlength:"11",border:!0},model:{value:e.loginForm.mobile,callback:function(t){e.$set(e.loginForm,"mobile",t)},expression:"loginForm.mobile"}})],1),n("v-uni-view",{staticClass:"form-item"},[n("v-uni-view",{staticClass:"form-label"},[n("u-icon",{staticClass:"label-icon",attrs:{name:"shield-checkmark"}}),n("v-uni-text",[e._v("验证码")])],1),n("v-uni-view",{staticClass:"code-input-group"},[n("u-input",{staticClass:"code-input",attrs:{placeholder:"请输入验证码",type:"number",border:!0},model:{value:e.loginForm.code,callback:function(t){e.$set(e.loginForm,"code",t)},expression:"loginForm.code"}}),n("u-button",{staticClass:"code-btn",attrs:{type:"primary",size:"small",disabled:e.codeCountdown>0,shape:"circle"},on:{click:function(t){arguments[0]=t=e.$handleEvent(t),e.getVerificationCode.apply(void 0,arguments)}}},[e._v(e._s(e.codeCountdown>0?e.codeCountdown+"s":"获取验证码"))])],1)],1)],1),n("v-uni-view",{staticClass:"login-actions"},[n("u-button",{staticClass:"cancel-btn",attrs:{type:"default",shape:"circle"},on:{click:function(t){arguments[0]=t=e.$handleEvent(t),e.cancelLogin.apply(void 0,arguments)}}},[e._v("取消")]),n("u-button",{staticClass:"confirm-btn",attrs:{type:"primary",disabled:!e.canLogin,shape:"circle"},on:{click:function(t){arguments[0]=t=e.$handleEvent(t),e.confirmLogin.apply(void 0,arguments)}}},[e._v("确认签到")])],1)],1)],1)],1)},a=[]},af7a:function(e,t,n){var i=n("f148");i.__esModule&&(i=i.default),"string"===typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);var o=n("967d").default;o("65ac1146",i,!0,{sourceMap:!1,shadowMode:!1})},dd5e:function(e,t,n){"use strict";n("6a54");var i=n("f5bd").default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,n("5c47"),n("0506");var o=i(n("9b1b")),a=i(n("2634")),r=i(n("2fdc")),c={data:function(){return{course_content_id:"",course_id:"",course:{},canCheckin:!1,checkinHistory:[],token:"",showLoginModal:!1,loginForm:{mobile:"",code:""},codeCountdown:0,countdownTimer:null}},computed:{canLogin:function(){return 11===this.loginForm.mobile.length}},onLoad:function(e){console.log("页面加载options:",e),this.course_content_id=null===e||void 0===e?void 0:e.course_content_id,this.course_id=null===e||void 0===e?void 0:e.course_id,this.initPage()},onUnload:function(){this.countdownTimer&&(clearInterval(this.countdownTimer),this.countdownTimer=null),this.clearToken()},methods:{initPage:function(){var e=this;return(0,r.default)((0,a.default)().mark((function t(){return(0,a.default)().wrap((function(t){while(1)switch(t.prev=t.next){case 0:return console.log("开始初始化页面..."),t.next=3,e.getCourse();case 3:e.canCheckin=!0;case 4:case"end":return t.stop()}}),t)})))()},getCourse:function(){var e=this;return(0,r.default)((0,a.default)().mark((function t(){var n,i;return(0,a.default)().wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,e.$u.api.courseContentDetail({course_content_id:e.course_content_id});case 2:n=t.sent,i=n||{},e.course=(0,o.default)((0,o.default)({},e.course),i);case 5:case"end":return t.stop()}}),t)})))()},signCheck:function(){var e=this;return(0,r.default)((0,a.default)().mark((function t(){return(0,a.default)().wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e.$u.api.signCheck({course_content_id:e.course_content_id});case 3:return t.sent,uni.showToast({title:"签到成功!",icon:"success"}),t.next=7,e.refreshSignRecord();case 7:t.next=13;break;case 9:t.prev=9,t.t0=t["catch"](0),console.error("签到失败:",t.t0),uni.showToast({title:"签到失败",icon:"none"});case 13:case"end":return t.stop()}}),t,null,[[0,9]])})))()},refreshSignRecord:function(){var e=this;return(0,r.default)((0,a.default)().mark((function t(){var n,i;return(0,a.default)().wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e.$u.api.signGet({course_content_id:e.course_content_id});case 3:n=t.sent,i=(null===n||void 0===n?void 0:n.list)||[],e.checkinHistory=Array.isArray(i)?i:[],t.next=11;break;case 8:t.prev=8,t.t0=t["catch"](0),console.error("刷新签到记录失败:",t.t0);case 11:case"end":return t.stop()}}),t,null,[[0,8]])})))()},getStatusIcon:function(e){return{success:"checkmark-circle-fill",error:"close-circle-fill",warning:"error-circle-fill",default:"question-circle-fill"}[e]||"question-circle-fill"},performCheckin:function(){var e=this;return(0,r.default)((0,a.default)().mark((function t(){return(0,a.default)().wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(e.canCheckin){t.next=2;break}return t.abrupt("return");case 2:e.showLoginModal=!0;case 3:case"end":return t.stop()}}),t)})))()},getVerificationCode:function(){var e=this;return(0,r.default)((0,a.default)().mark((function t(){var n;return(0,a.default)().wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(e.loginForm.mobile){t.next=3;break}return uni.showToast({title:"请输入手机号",icon:"none"}),t.abrupt("return");case 3:if(/^1[3-9]\d{9}$/.test(e.loginForm.mobile)){t.next=6;break}return uni.showToast({title:"请输入正确的手机号",icon:"none"}),t.abrupt("return");case 6:return t.prev=6,uni.showLoading({title:"发送中..."}),t.next=10,e.$u.api.mobileLoginCode({course_id:e.course_id,course_content_id:e.course_content_id,mobile:e.loginForm.mobile});case 10:if(n=t.sent,uni.hideLoading(),!(Array.isArray(n)&&n.length>0)){t.next=19;break}return e.checkinHistory=n,e.canCheckin=!1,uni.showToast({title:"您已签到",icon:"none"}),e.showLoginModal=!1,e.resetLoginForm(),t.abrupt("return");case 19:uni.showToast({title:"验证码已发送",icon:"success"}),e.startCountdown(),t.next=28;break;case 23:t.prev=23,t.t0=t["catch"](6),uni.hideLoading(),console.error("获取验证码失败:",t.t0),uni.showToast({title:"获取验证码失败",icon:"none"});case 28:case"end":return t.stop()}}),t,null,[[6,23]])})))()},confirmLogin:function(){var e=this;return(0,r.default)((0,a.default)().mark((function t(){var n;return(0,a.default)().wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(e.loginForm.mobile){t.next=3;break}return uni.showToast({title:"请输入手机号",icon:"none"}),t.abrupt("return");case 3:if(/^1[3-9]\d{9}$/.test(e.loginForm.mobile)){t.next=6;break}return uni.showToast({title:"请输入正确的手机号",icon:"none"}),t.abrupt("return");case 6:if(e.loginForm.code){t.next=9;break}return uni.showToast({title:"请输入验证码",icon:"none"}),t.abrupt("return");case 9:return t.prev=9,uni.showLoading({title:"登录中..."}),t.next=13,e.$u.api.loginCode({mobile:e.loginForm.mobile,code:e.loginForm.code});case 13:return n=t.sent,uni.hideLoading(),uni.showToast({title:"登录成功",icon:"success"}),n&&n.token&&e.setToken(n.token),e.showLoginModal=!1,t.next=20,e.checkSignRecord();case 20:t.next=27;break;case 22:t.prev=22,t.t0=t["catch"](9),uni.hideLoading(),console.error("登录失败:",t.t0),uni.showToast({title:"登录失败",icon:"none"});case 27:case"end":return t.stop()}}),t,null,[[9,22]])})))()},checkSignRecord:function(){var e=this;return(0,r.default)((0,a.default)().mark((function t(){var n,i;return(0,a.default)().wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.prev=0,uni.showLoading({title:"检查签到状态..."}),t.next=4,e.$u.api.signGet({course_content_id:e.course_content_id});case 4:if(n=t.sent,uni.hideLoading(),i=(null===n||void 0===n?void 0:n.list)||[],e.checkinHistory=Array.isArray(i)?i:[],!(e.checkinHistory.length>0)){t.next=13;break}uni.showToast({title:"您已经签到过了",icon:"none"}),e.canCheckin=!1,t.next=15;break;case 13:return t.next=15,e.signCheck();case 15:t.next=23;break;case 17:return t.prev=17,t.t0=t["catch"](0),uni.hideLoading(),console.error("检查签到记录失败:",t.t0),t.next=23,e.signCheck();case 23:case"end":return t.stop()}}),t,null,[[0,17]])})))()},setToken:function(e){this.$data.token=e,getApp().globalData.token=e},getToken:function(){return this.$data.token||getApp().globalData.token||""},clearToken:function(){this.token="";try{var e=getApp();e&&e.globalData&&(e.globalData.token="")}catch(t){console.log("清除token失败:",t)}},cancelLogin:function(){this.showLoginModal=!1,this.resetLoginForm()},resetLoginForm:function(){this.loginForm.mobile="",this.loginForm.code="",this.codeCountdown=0,this.countdownTimer&&(clearInterval(this.countdownTimer),this.countdownTimer=null)},startCountdown:function(){var e=this;this.codeCountdown=60,this.countdownTimer=setInterval((function(){e.codeCountdown--,e.codeCountdown<=0&&(clearInterval(e.countdownTimer),e.countdownTimer=null)}),1e3)},loadCheckinHistory:function(){var e=uni.getStorageSync("checkinHistory")||[];if(this.checkinHistory=e,e.length>0){var t=new Date(e[0].time);t.toDateString()===(new Date).toDateString()&&(this.hasCheckedIn=!0)}}}};t.default=c},e430:function(e,t,n){"use strict";n.r(t);var i=n("3c98"),o=n("16da");for(var a in o)["default"].indexOf(a)<0&&function(e){n.d(t,e,(function(){return o[e]}))}(a);n("1ee5");var r=n("828b"),c=Object(r["a"])(o["default"],i["b"],i["c"],!1,null,"147f0b9c",null,!1,i["a"],void 0);t["default"]=c.exports},f148:function(e,t,n){var i=n("c86c");t=i(!1),t.push([e.i,".checkin-page[data-v-147f0b9c]{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:%?20?%}.checkin-container[data-v-147f0b9c]{max-width:400px;margin:0 auto}.course-card[data-v-147f0b9c], .status-card[data-v-147f0b9c]{background:#fff;border-radius:%?32?%;box-shadow:0 %?12?% %?40?% rgba(0,0,0,.08);padding:%?40?%;margin-bottom:%?30?%;border:%?1?% solid hsla(0,0%,100%,.2);-webkit-backdrop-filter:blur(%?10?%);backdrop-filter:blur(%?10?%)}.course-title[data-v-147f0b9c]{font-size:%?40?%;font-weight:700;text-align:center;margin-bottom:%?32?%;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.course-info[data-v-147f0b9c]{display:flex;flex-direction:column;gap:%?20?%}.info-item[data-v-147f0b9c]{display:flex;align-items:center;gap:%?20?%;padding:%?20?%;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:%?20?%;font-size:%?28?%;border:%?1?% solid rgba(102,126,234,.1);transition:all .3s ease}.info-item[data-v-147f0b9c]:hover{-webkit-transform:translateY(%?-2?%);transform:translateY(%?-2?%);box-shadow:0 %?8?% %?24?% rgba(102,126,234,.15)}.info-icon[data-v-147f0b9c]{color:#667eea;font-size:%?32?%}.card-title[data-v-147f0b9c]{display:flex;align-items:center;gap:%?16?%;font-size:%?32?%;font-weight:700;margin-bottom:%?24?%;color:#333}.title-icon[data-v-147f0b9c]{color:#667eea;font-size:%?36?%}.alert-custom[data-v-147f0b9c]{border-radius:%?24?%;padding:%?24?%;margin-bottom:%?24?%;display:flex;align-items:center;gap:%?16?%;font-size:%?26?%;color:#fff}.alert-success[data-v-147f0b9c]{background:#2ecc71}.alert-error[data-v-147f0b9c]{background:#e74c3c}.alert-warning[data-v-147f0b9c]{background:#f1c40f}.checkin-actions[data-v-147f0b9c]{display:flex;flex-direction:column;gap:%?20?%;margin-bottom:%?30?%}.checkin-btn[data-v-147f0b9c] .u-btn{height:%?100?%;font-size:%?32?%;font-weight:600;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 %?8?% %?24?% rgba(102,126,234,.3)}.btn-icon[data-v-147f0b9c]{margin-right:%?12?%}.history-empty[data-v-147f0b9c]{text-align:center;color:#999;padding:%?60?% 0;font-size:%?28?%;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:%?16?%;border:%?2?% dashed #ddd}.history-list[data-v-147f0b9c]{display:flex;flex-direction:column;gap:%?16?%}.history-item[data-v-147f0b9c]{display:flex;justify-content:space-between;align-items:center;font-size:%?26?%;color:#333;background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:%?20?%;border-radius:%?16?%;border:%?1?% solid rgba(102,126,234,.1);transition:all .3s ease}.history-item[data-v-147f0b9c]:hover{-webkit-transform:translateY(%?-2?%);transform:translateY(%?-2?%);box-shadow:0 %?4?% %?16?% rgba(102,126,234,.1)}\n/* 登录弹窗样式 */.login-modal-content[data-v-147f0b9c]{padding:%?40?% %?30?%;background:linear-gradient(135deg,#f8f9fa,#fff);border-radius:%?32?%;overflow:hidden}\n/* 确保弹窗容器有圆角 */[data-v-147f0b9c] .u-modal{border-radius:%?32?%!important;overflow:hidden!important}[data-v-147f0b9c] .u-modal__content{border-radius:%?32?%!important;overflow:hidden!important}.login-header[data-v-147f0b9c]{text-align:center;margin-bottom:%?50?%;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:%?120?%}.login-title[data-v-147f0b9c]{display:flex;align-items:center;justify-content:center;gap:%?16?%;font-size:%?36?%;font-weight:700;color:#333;margin-bottom:%?16?%}.title-icon[data-v-147f0b9c]{color:#667eea;font-size:%?40?%}.login-subtitle[data-v-147f0b9c]{font-size:%?26?%;color:#666;line-height:1.5}.login-form[data-v-147f0b9c]{margin-bottom:%?50?%}.form-item[data-v-147f0b9c]{margin-bottom:%?40?%}.form-label[data-v-147f0b9c]{display:flex;align-items:center;gap:%?12?%;font-size:%?30?%;color:#333;margin-bottom:%?20?%;font-weight:600}.label-icon[data-v-147f0b9c]{color:#667eea;font-size:%?32?%}.form-input[data-v-147f0b9c]{border-radius:%?16?%;border:%?2?% solid #e9ecef;transition:all .3s ease}.form-input[data-v-147f0b9c]:focus{border-color:#667eea;box-shadow:0 0 0 %?4?% rgba(102,126,234,.1)}.code-input-group[data-v-147f0b9c]{display:flex;align-items:center;gap:%?20?%}.code-input[data-v-147f0b9c]{flex:1;border-radius:%?16?%;border:%?2?% solid #e9ecef;transition:all .3s ease}.code-input[data-v-147f0b9c]:focus{border-color:#667eea;box-shadow:0 0 0 %?4?% rgba(102,126,234,.1)}.code-btn[data-v-147f0b9c]{min-width:%?180?%;height:%?80?%;font-size:%?26?%;background:linear-gradient(135deg,#667eea,#764ba2);border:none;box-shadow:0 %?4?% %?16?% rgba(102,126,234,.3)}.code-btn[data-v-147f0b9c]:disabled{background:#ccc;box-shadow:none}.login-actions[data-v-147f0b9c]{display:flex;gap:%?24?%;justify-content:center}.cancel-btn[data-v-147f0b9c]{min-width:%?140?%;height:%?80?%;font-size:%?28?%;background:#f8f9fa;color:#666;border:%?2?% solid #e9ecef}.confirm-btn[data-v-147f0b9c]{min-width:%?140?%;height:%?80?%;font-size:%?28?%;font-weight:600;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 %?6?% %?20?% rgba(102,126,234,.3)}.confirm-btn[data-v-147f0b9c]:disabled{background:#ccc;box-shadow:none}",""]),e.exports=t}}]);