Files
anmo/server/public/shop/assets/u-calendar.2b2c13f9.js
2025-08-19 14:16:51 +08:00

2 lines
9.9 KiB
JavaScript
Executable File

import{b4 as t,r as e,a,o as s,c as n,w as r,b as i,d as o,t as l,e as h,m as d,l as u,F as c,G as m,n as y,f as _,i as g,s as f}from"./index-b1ac9181.js";import{_ as p}from"./u-icon.2a47889e.js";import{_ as D}from"./u-button.69f9d71a.js";import{_ as $}from"./u-popup.9c712d62.js";import{_ as b}from"./_plugin-vue_export-helper.1b428a4d.js";const k=b({name:"u-calendar",emits:["update:modelValue","input","change"],props:{value:{type:Boolean,default:!1},modelValue:{type:Boolean,default:!1},safeAreaInsetBottom:{type:Boolean,default:!1},maskCloseAble:{type:Boolean,default:!0},zIndex:{type:[String,Number],default:0},changeYear:{type:Boolean,default:!0},changeMonth:{type:Boolean,default:!0},mode:{type:String,default:"date"},maxYear:{type:[Number,String],default:2050},minYear:{type:[Number,String],default:1950},minDate:{type:[Number,String],default:"1950-01-01"},maxDate:{type:[Number,String],default:""},borderRadius:{type:[String,Number],default:20},monthArrowColor:{type:String,default:"#606266"},yearArrowColor:{type:String,default:"#909399"},color:{type:String,default:"#303133"},activeBgColor:{type:String,default:"#2979ff"},activeColor:{type:String,default:"#ffffff"},rangeBgColor:{type:String,default:"rgba(41,121,255,0.13)"},rangeColor:{type:String,default:"#2979ff"},startText:{type:String,default:"开始"},endText:{type:String,default:"结束"},btnType:{type:String,default:"primary"},isActiveCurrent:{type:Boolean,default:!0},isChange:{type:Boolean,default:!1},closeable:{type:Boolean,default:!0},toolTip:{type:String,default:"选择日期"},blur:{type:[Number,String],default:0}},data:()=>({popupValue:!1,weekday:1,weekdayArr:[],days:0,daysArr:[],showTitle:"",year:2020,month:0,day:0,startYear:0,startMonth:0,startDay:0,endYear:0,endMonth:0,endDay:0,today:"",activeDate:"",startDate:"",endDate:"",isStart:!0,min:null,max:null,weekDayZh:["日","一","二","三","四","五","六"]}),computed:{valueCom(){return this.modelValue},dataChange(){return`${this.mode}-${this.minDate}-${this.maxDate}`},uZIndex(){return this.zIndex?this.zIndex:this.$u.zIndex.popup}},watch:{dataChange(t){this.init()},valueCom(t,e){this.popupValue=t}},created(){this.init()},methods:{getColor(t,e){let a=1==e?"":this.color,s=t+1,n=`${this.year}-${this.month}-${s}`,r=new Date(n.replace(/\-/g,"/")).getTime(),i=this.startDate.replace(/\-/g,"/"),o=this.endDate.replace(/\-/g,"/");return this.isActiveCurrent&&this.activeDate==n||this.startDate==n||this.endDate==n?a=1==e?this.activeBgColor:this.activeColor:this.endDate&&r>new Date(i).getTime()&&r<new Date(o).getTime()&&(a=1==e?this.rangeBgColor:this.rangeColor),a},init(){let t=new Date;this.year=t.getFullYear(),this.month=t.getMonth()+1,this.day=t.getDate(),this.today=`${t.getFullYear()}-${t.getMonth()+1}-${t.getDate()}`,this.activeDate=this.today,this.min=this.initDate(this.minDate),this.max=this.initDate(this.maxDate||this.today),this.startDate="",this.startYear=0,this.startMonth=0,this.startDay=0,this.endYear=0,this.endMonth=0,this.endDay=0,this.endDate="",this.isStart=!0,this.changeData()},initDate(t){let e=t.split("-");return{year:Number(e[0]||1920),month:Number(e[1]||1),day:Number(e[2]||1)}},openDisAbled:function(t,e,a){let s=!0,n=`${t}/${e}/${a}`,r=`${this.min.year}/${this.min.month}/${this.min.day}`,i=`${this.max.year}/${this.max.month}/${this.max.day}`,o=new Date(n).getTime();return o>=new Date(r).getTime()&&o<=new Date(i).getTime()&&(s=!1),s},generateArray:function(t,e){return Array.from(new Array(e+1).keys()).slice(t)},formatNum:function(t){return t<10?"0"+t:t+""},getMonthDay:(t,e)=>new Date(t,e,0).getDate(),getWeekday:(t,e)=>new Date(`${t}/${e}/01 00:00:00`).getDay(),checkRange(e){let a=!1;return(e<this.minYear||e>this.maxYear)&&(t({title:"日期超出范围啦~",icon:"none"}),a=!0),a},changeMonthHandler(t){if(t){let t=this.month+1,e=t>12?this.year+1:this.year;this.checkRange(e)||(this.month=t>12?1:t,this.year=e,this.changeData())}else{let t=this.month-1,e=t<1?this.year-1:this.year;this.checkRange(e)||(this.month=t<1?12:t,this.year=e,this.changeData())}},changeYearHandler(t){let e=t?this.year+1:this.year-1;this.checkRange(e)||(this.year=e,this.changeData())},changeData(){this.days=this.getMonthDay(this.year,this.month),this.daysArr=this.generateArray(1,this.days),this.weekday=this.getWeekday(this.year,this.month),this.weekdayArr=this.generateArray(1,this.weekday),this.showTitle=`${this.year}${this.month}`,this.isChange&&"date"==this.mode&&this.btnFix(!0)},dateClick:function(t){if(t+=1,!this.openDisAbled(this.year,this.month,t)){this.day=t;let e=`${this.year}-${this.month}-${t}`;if("date"==this.mode)this.activeDate=e;else{let t=new Date(e.replace(/\-/g,"/")).getTime()<new Date(this.startDate.replace(/\-/g,"/")).getTime();this.isStart||t?(this.startDate=e,this.startYear=this.year,this.startMonth=this.month,this.startDay=this.day,this.endYear=0,this.endMonth=0,this.endDay=0,this.endDate="",this.activeDate="",this.isStart=!1):(this.endDate=e,this.endYear=this.year,this.endMonth=this.month,this.endDay=this.day,this.isStart=!0)}}},close(){this.$emit("input",!1),this.$emit("update:modelValue",!1)},getWeekText:t=>"星期"+["日","一","二","三","四","五","六"][(t=new Date(`${t.replace(/\-/g,"/")} 00:00:00`)).getDay()],btnFix(t){if(t||this.close(),"date"==this.mode){let t=this.activeDate.split("-"),e=this.isChange?this.year:Number(t[0]),a=this.isChange?this.month:Number(t[1]),s=this.isChange?this.day:Number(t[2]),n=this.getMonthDay(e,a),r=`${e}-${this.formatNum(a)}-${this.formatNum(s)}`,i=this.getWeekText(r),o=!1;`${e}-${a}-${s}`==this.today&&(o=!0),this.$emit("change",{year:e,month:a,day:s,days:n,result:r,week:i,isToday:o})}else{if(!this.startDate||!this.endDate)return;let t=this.formatNum(this.startMonth),e=this.formatNum(this.startDay),a=`${this.startYear}-${t}-${e}`,s=this.getWeekText(a),n=this.formatNum(this.endMonth),r=this.formatNum(this.endDay),i=`${this.endYear}-${n}-${r}`,o=this.getWeekText(i);this.$emit("change",{startYear:this.startYear,startMonth:this.startMonth,startDay:this.startDay,startDate:a,startWeek:s,endYear:this.endYear,endMonth:this.endMonth,endDay:this.endDay,endDate:i,endWeek:o})}}}},[["render",function(t,b,k,C,w,x){const A=g,v=e(a("u-icon"),p),Y=f,M=e(a("u-button"),D),S=e(a("u-popup"),$);return s(),n(S,{blur:k.blur,closeable:"",maskCloseAble:k.maskCloseAble,mode:"bottom",popup:!1,modelValue:w.popupValue,"onUpdate:modelValue":b[5]||(b[5]=t=>w.popupValue=t),length:"auto",safeAreaInsetBottom:k.safeAreaInsetBottom,onClose:x.close,"z-index":x.uZIndex,"border-radius":k.borderRadius},{default:r((()=>[i(A,{class:"u-calendar"},{default:r((()=>[i(A,{class:"u-calendar__header"},{default:r((()=>[t.$slots.tooltip?h(t.$slots,"tooltip",{key:1},void 0,!0):(s(),n(A,{key:0,class:"u-calendar__header__text"},{default:r((()=>[o(l(k.toolTip),1)])),_:1}))])),_:3}),i(A,{class:"u-calendar__action u-flex u-row-center"},{default:r((()=>[i(A,{class:"u-calendar__action__icon"},{default:r((()=>[k.changeYear?(s(),n(v,{key:0,name:"arrow-left-double",color:k.yearArrowColor,onClick:b[0]||(b[0]=t=>x.changeYearHandler(0))},null,8,["color"])):d("v-if",!0)])),_:1}),i(A,{class:"u-calendar__action__icon"},{default:r((()=>[k.changeMonth?(s(),n(v,{key:0,name:"arrow-left",color:k.monthArrowColor,onClick:b[1]||(b[1]=t=>x.changeMonthHandler(0))},null,8,["color"])):d("v-if",!0)])),_:1}),i(A,{class:"u-calendar__action__text"},{default:r((()=>[o(l(w.showTitle),1)])),_:1}),i(A,{class:"u-calendar__action__icon"},{default:r((()=>[k.changeMonth?(s(),n(v,{key:0,name:"arrow-right",color:k.monthArrowColor,onClick:b[2]||(b[2]=t=>x.changeMonthHandler(1))},null,8,["color"])):d("v-if",!0)])),_:1}),i(A,{class:"u-calendar__action__icon"},{default:r((()=>[k.changeYear?(s(),n(v,{key:0,name:"arrow-right-double",color:k.yearArrowColor,onClick:b[3]||(b[3]=t=>x.changeYearHandler(1))},null,8,["color"])):d("v-if",!0)])),_:1})])),_:1}),i(A,{class:"u-calendar__week-day"},{default:r((()=>[(s(!0),u(c,null,m(w.weekDayZh,((t,e)=>(s(),n(A,{class:"u-calendar__week-day__text",key:e},{default:r((()=>[o(l(t),1)])),_:2},1024)))),128))])),_:1}),i(A,{class:"u-calendar__content"},{default:r((()=>[d(" 前置空白部分 "),(s(!0),u(c,null,m(w.weekdayArr,((t,e)=>(s(),n(A,{key:e,class:"u-calendar__content__item"})))),128)),(s(!0),u(c,null,m(w.daysArr,((t,e)=>(s(),n(A,{class:y(["u-calendar__content__item",{"u-hover-class":x.openDisAbled(w.year,w.month,e+1),"u-calendar__content--start-date":"range"==k.mode&&w.startDate==`${w.year}-${w.month}-${e+1}`||"date"==k.mode,"u-calendar__content--end-date":"range"==k.mode&&w.endDate==`${w.year}-${w.month}-${e+1}`||"date"==k.mode}]),style:_({backgroundColor:x.getColor(e,1)}),key:e,onClick:t=>x.dateClick(e)},{default:r((()=>[i(A,{class:"u-calendar__content__item__inner",style:_({color:x.getColor(e,2)})},{default:r((()=>[i(A,null,{default:r((()=>[o(l(e+1),1)])),_:2},1024)])),_:2},1032,["style"]),"range"==k.mode&&w.startDate==`${w.year}-${w.month}-${e+1}`&&w.startDate!=w.endDate?(s(),n(A,{key:0,class:"u-calendar__content__item__tips",style:_({color:k.activeColor})},{default:r((()=>[o(l(k.startText),1)])),_:1},8,["style"])):d("v-if",!0),"range"==k.mode&&w.endDate==`${w.year}-${w.month}-${e+1}`?(s(),n(A,{key:1,class:"u-calendar__content__item__tips",style:_({color:k.activeColor})},{default:r((()=>[o(l(k.endText),1)])),_:1},8,["style"])):d("v-if",!0)])),_:2},1032,["class","style","onClick"])))),128)),i(A,{class:"u-calendar__content__bg-month"},{default:r((()=>[o(l(w.month),1)])),_:1})])),_:1}),i(A,{class:"u-calendar__bottom"},{default:r((()=>[i(A,{class:"u-calendar__bottom__choose"},{default:r((()=>[i(Y,null,{default:r((()=>[o(l("date"==k.mode?w.activeDate:w.startDate),1)])),_:1}),w.endDate?(s(),n(Y,{key:0},{default:r((()=>[o("至"+l(w.endDate),1)])),_:1})):d("v-if",!0)])),_:1}),i(A,{class:"u-calendar__bottom__btn"},{default:r((()=>[i(M,{type:k.btnType,shape:"circle",size:"default",onClick:b[4]||(b[4]=t=>x.btnFix(!1))},{default:r((()=>[o("确定")])),_:1},8,["type"])])),_:1})])),_:1})])),_:3})])),_:3},8,["blur","maskCloseAble","modelValue","safeAreaInsetBottom","onClose","z-index","border-radius","closeable"])}],["__scopeId","data-v-e8f3cc38"]]);export{k as _};