2 lines
7.8 KiB
JavaScript
2 lines
7.8 KiB
JavaScript
"use strict";const t=require("../../request/api.js"),e=require("../../common/vendor.js"),a=require("../../common/assets.js"),n={name:"LCCalendar",data:()=>({weekList:["日","一","二","三","四","五","六"],monthDateList:[],selectMonthIndex:0,selectMonth:"",selectDateStr:"",startDateStr:"",endDateStr:"",selectYear:"",Month:"",calendarApiData:[]}),created(){let t=new Date,e=t.getFullYear(),a=t.getMonth()+1,n=t.getDate();this.selectMonthIndex=240+a-1,this.selectMonth=e+"年"+a+"月",this.startDateStr=e+"-"+(a>9?a:"0"+a)+"-01",this.endDateStr=this.selectDateStr=`${e}-${a>9?a:"0"+a}-${n>9?n:"0"+n}`,this.getYesterdayDateData(),this.generateMonthDateListData(),this.emitDateChange(e,a,n,this.getTodayItem(e,a,n),this.getPrevDayItem(e,a,n))},mounted(){this.getCalendarCombinedData()},methods:{getPrevDayItem(t,e,a){const n=new Date(new Date(`${t}-${e}-${a}`).getTime()-864e5),s=n.getFullYear(),o=n.getMonth()+1,r=n.getDate(),l=`${s}-${o>9?o:"0"+o}-${r>9?r:"0"+r}`,i=(this.monthDateList[this.selectMonthIndex]||[]).find((t=>t.date===l))||null,h=this.getCalendarItemByDate(l)||{};return{...i,zt_count:h.zt_count||0,top_sector:h.top_sector||"-",zaban_rate:h.zaban_rate||"0%"}},getTodayItem(t,e,a){const n=`${t}-${e>9?e:"0"+e}-${a>9?a:"0"+a}`,s=(this.monthDateList[this.selectMonthIndex]||[]).find((t=>t.date===n))||null;if(!s)return null;const o=this.getCalendarItemByDate(n)||{};return{...s,zt_count:o.zt_count||0,top_sector:o.top_sector||"-",zaban_rate:o.zaban_rate||"0%"}},emitDateChange(t,e,a,n,s={zt_count:0}){const o=`${t}-${e>9?e:"0"+e}`,r=`${t}-${e>9?e:"0"+e}-${a>9?a:"0"+a}`;this.$emit("date-change",{yearMonth:o,fullDate:r,item:n||{date:r,year:t,month:e,day:a,zt_count:0,top_sector:"-",zaban_rate:"0%"},prevItem:s||{zt_count:0,top_sector:"-",zaban_rate:"0%"},year:t,month:e,day:a})},getYesterdayDateData(){let t=new Date(new Date);t.setDate(t.getDate()-1),t.getFullYear(),t.getMonth(),t.getDate(),this.selectYear=t.getFullYear(),this.Month=t.getMonth()+1},getCalendarItemByDate(t){if(!t||!this.calendarApiData.length)return null;const e=t.replace(/-/g,"");return this.calendarApiData.find((t=>t.date===e))||null},getZtCountBgClass:(t,e)=>e%7==0||e%7==6||0===t||null==t?"":t>=80?"zt-bg-80":t>=60?"zt-bg-60":t>=40?"zt-bg-40":"zt-bg-40-less",getZtCountTextColor:(t,e)=>void 0===e||e%7!=0&&e%7!=6?null==t||0===t?"#2A2A2A":t>=80?"#5D288F":t>=60?"#BE1B1B":t>=40?"#F59B38":"#2958AA":"#999999",async getCalendarCombinedData(){try{let e={year:this.selectYear,month:this.Month};const a=await t.calendarCombinedData(e);if(a.success&&Array.isArray(a.data)){if(this.calendarApiData=a.data,this.selectDateStr){const[t,e,a]=this.selectDateStr.split("-").map(Number);this.emitDateChange(t,e,a,this.getTodayItem(t,e,a),this.getPrevDayItem(t,e,a))}}else this.calendarApiData=[],console.warn("日历接口返回数据格式异常",a)}catch(e){this.calendarApiData=[],console.error("获取日历数据失败",e)}},generateMonthDateListData(){let t=new Date,e=t.getFullYear(),a=t.getMonth()+1,n=t.getDate(),s=[];for(var o=e-20;o<e+20;o++)for(var r=0;r<12;r++){let t=new Date(o,r+1,0),i=new Date(o,r+1,0);i.setDate(1);let h=t.getDate(),d=i.getDay()+1,c=[];for(var l=1;l<=h;l++){let t=new Date(o,r+1,0);t.setDate(l);let s=t.getMonth()+1,i=t.getDate(),d=t.getTime(),D=o+"-"+(s>9?s:"0"+s)+"-"+(i>9?i:"0"+i);c.push({date:D,year:o,month:s,day:i,isToday:o==e&&s==a&&i==n,isCurrentMonth:!0,isLastDay:i==h,timestamp:d})}for(l=0;l<d-1;l++){let t=o,e=r;r<1&&(t=o-1,e=12);let a=new Date(t,e,0).getDate(),n=new Date(t,e-1,a-l),s=n.getMonth()+1,i=n.getDate(),h=n.getTime(),d=t+"-"+(s>9?s:"0"+s)+"-"+(i>9?i:"0"+i);c.unshift({date:d,year:t,month:s,day:i,isToday:!1,isCurrentMonth:!1,isLastDay:!1,timestamp:h})}let D=new Date(o,r+1,1),g=new Date(D-864e5).getDay()+1;for(l=1;l<8-g;l++){let t=o,e=r;e>11&&(e=0,t++);let a=new Date(t,e+1,l),n=a.getMonth()+1,s=a.getDate(),i=a.getTime(),h=t+"-"+(n>9?n:"0"+n)+"-"+(s>9?s:"0"+s);c.push({date:h,year:t,month:n,day:s,isToday:!1,isCurrentMonth:!1,isLastDay:!1,timestamp:i})}s.push(c)}this.monthDateList=s},clickPreMonth(){if(this.selectMonthIndex>0){this.selectMonthIndex--;let t=this.monthDateList[this.selectMonthIndex],e="",a="";for(let s of t)if(s.isCurrentMonth){e=s.year,a=s.month;break}let n="";for(let s of t)if(s.isLastDay){n=s.day;break}this.selectMonth=e+"年"+a+"月",this.startDateStr=e+"-"+(a>9?a:"0"+a)+"-01",this.endDateStr=e+"-"+(a>9?a:"0"+a)+"-"+n,this.selectYear=e,this.Month=a,this.getCalendarCombinedData(),console.log("点击上个月")}},clickNextMonth(){if(this.selectMonthIndex<this.monthDateList.length-1){this.selectMonthIndex++;let t=this.monthDateList[this.selectMonthIndex],e="",a="";for(let s of t)if(s.isCurrentMonth){e=s.year,a=s.month;break}let n="";for(let s of t)if(s.isLastDay){n=s.day;break}this.selectMonth=e+"年"+a+"月",this.startDateStr=e+"-"+(a>9?a:"0"+a)+"-01",this.endDateStr=e+"-"+(a>9?a:"0"+a)+"-"+n,console.log("点击下个月"),this.selectYear=e,this.Month=a,this.getCalendarCombinedData()}},monthChange(t){let e=(new Date).getFullYear(),a=t.detail.value,n=parseInt(a.split("-")[0]),s=parseInt(a.split("-")[1]);this.selectMonthIndex=12*(n-(e-20))+s-1,this.selectMonth=n+"年"+s+"月",this.startDateStr=n+"-"+(s>9?s:"0"+s)+"-01";let o=new Date(n,s,0);this.endDateStr=n+"-"+(s>9?s:"0"+s)+"-"+o.getDate(),console.log("月份变更"),this.selectYear=n,this.Month=s,this.getCalendarCombinedData()},clickSelectDate(t,e){if(t.isCurrentMonth&&this.selectDateStr!=t.date){this.selectDateStr=t.date;const a=this.getCalendarItemByDate(t.date)||{},n={...t,zt_count:a.zt_count||0,top_sector:a.top_sector||"-",zaban_rate:a.zaban_rate||"0%",isWeekend:e%7==0||e%7==6},s=new Date(t.date),o=new Date(s.getTime()-864e5),r=o.getFullYear(),l=o.getMonth()+1,i=o.getDate(),h=`${r}-${l>9?l:"0"+l}-${i>9?i:"0"+i}`,d=this.getCalendarItemByDate(h)||{};let c=null;if(c=(this.monthDateList[this.selectMonthIndex]||[]).find((t=>t.date===h)),!c){const e=this.selectMonthIndex-(l<t.month?1:0);c=(this.monthDateList[e]||[]).find((t=>t.date===h))}const D={...c||{},zt_count:d.zt_count||0,top_sector:d.top_sector||"-",zaban_rate:d.zaban_rate||"0%",isWeekend:!1};this.chgStockData=n;const[g,u,m]=t.date.split("-").map(Number);this.emitDateChange(g,u,m,n,D),console.log("点击某天(含接口数据)",{current:n,prev:D})}}}};const s=e._export_sfc(n,[["render",function(t,n,s,o,r,l){return{a:a._imports_0$1,b:e.o((t=>l.clickPreMonth())),c:a._imports_1$16,d:e.t(r.selectDateStr),e:a._imports_1$2,f:e.o((t=>l.clickNextMonth())),g:e.f(r.weekList,((t,a,n)=>({a:e.t(t),b:a}))),h:e.f(r.monthDateList[r.selectMonthIndex],((t,a,n)=>{var s,o,i,h,d,c,D,g,u,m,C,y,_,M;return e.e({a:t.date==r.selectDateStr},t.date==r.selectDateStr?e.e({b:e.t(t.day),c:a%7==0||a%7==6},a%7==0||a%7==6?{}:e.e({d:(null==(s=l.getCalendarItemByDate(t.date))?void 0:s.zt_count)>0},(null==(o=l.getCalendarItemByDate(t.date))?void 0:o.zt_count)>0?{e:e.t(null==(i=l.getCalendarItemByDate(t.date))?void 0:i.zt_count),f:l.getZtCountTextColor(null==(h=l.getCalendarItemByDate(t.date))?void 0:h.zt_count),g:e.t((null==(d=l.getCalendarItemByDate(t.date))?void 0:d.top_sector)||"-"),h:l.getZtCountTextColor(null==(c=l.getCalendarItemByDate(t.date))?void 0:c.zt_count)}:{}),{i:e.n(l.getZtCountBgClass(null==(D=l.getCalendarItemByDate(t.date))?void 0:D.zt_count))}):e.e({j:!t.isCurrentMonth},t.isCurrentMonth?e.e({k:e.t(t.day),l:a%7==0||a%7==6?"#999999":"#2A2A2A",m:a%7==0||a%7==6},a%7==0||a%7==6?{}:e.e({n:(null==(g=l.getCalendarItemByDate(t.date))?void 0:g.zt_count)>0},(null==(u=l.getCalendarItemByDate(t.date))?void 0:u.zt_count)>0?{o:e.t(null==(m=l.getCalendarItemByDate(t.date))?void 0:m.zt_count),p:l.getZtCountTextColor(null==(C=l.getCalendarItemByDate(t.date))?void 0:C.zt_count),q:e.t((null==(y=l.getCalendarItemByDate(t.date))?void 0:y.top_sector)||"-"),r:l.getZtCountTextColor(null==(_=l.getCalendarItemByDate(t.date))?void 0:_.zt_count)}:{}),{s:e.n(l.getZtCountBgClass(null==(M=l.getCalendarItemByDate(t.date))?void 0:M.zt_count))}):{}),{t:a,v:e.o((e=>l.clickSelectDate(t)),a)})}))}}]]);wx.createComponent(s);
|