2 行
6.3 KiB
JavaScript
可执行文件
2 行
6.3 KiB
JavaScript
可执行文件
import{_ as e,H as t,r as a,I as s,o as i,b as l,c as o,d as n,w as r,Z as _,i as m,P as u,a0 as d,ad as c,j as k,m as w,n as f,C as v,D as p,F as y,u as h,q as C,y as g,K as P,aa as V,A as I,x as E}from"./index-fL1SRM2N.js";const b={onLoad(){}},S=e(Object.assign(b,{__name:"work-time",setup(e,{expose:b}){const{proxy:S}=g(),$=t(),U=a(!0),x=a(!1),T=a([]),j=a(["","周一","周二","周三","周四","周五","周六","周日"]);s(()=>$.state.userInfo);const q=async()=>{U.value=!0;try{const e=await S.$api.user.getWorkTime();1===e.code?T.value=z(e.data||[]):_({title:e.msg||"加载失败",icon:"none"})}catch(e){console.error("加载工作时间失败:",e),_({title:"网络错误,请重试",icon:"none"})}finally{U.value=!1}},z=e=>{const t=[];for(let a=1;a<=7;a++){const s=e.find(e=>e.week_day==a);if(s){const e=D(s.start_time||"09:00:00"),i=D(s.end_time||"18:00:00");t.push({...s,day_name:j.value[a],is_work:parseInt(s.is_work),is_work_switch:parseInt(s.is_work),start_time:e,end_time:i,start_time_timestamp:F(e),end_time_timestamp:F(i),showStartPicker:!1,showEndPicker:!1})}else t.push({week_day:a,day_name:j.value[a],is_work:1,is_work_switch:1,start_time:"09:00",end_time:"18:00",start_time_timestamp:F("09:00"),end_time_timestamp:F("18:00"),showStartPicker:!1,showEndPicker:!1})}return t},D=e=>{if(!e)return"09:00";const t=e.split(":");return`${(t[0]||"09").padStart(2,"0")}:${(t[1]||"00").padStart(2,"0")}`},F=e=>{if(!e)return Date.now();const[t,a]=e.split(":"),s=new Date;return s.setHours(parseInt(t)||0,parseInt(a)||0,0,0),s.getTime()},W=(e,t,a)=>{T.value[e][t]=a,"start_time"===t?T.value[e].showStartPicker=!1:"end_time"===t&&(T.value[e].showEndPicker=!1)},A=()=>{T.value.forEach((e,t)=>{e.week_day>=1&&e.week_day<=5?(T.value[t].is_work=1,T.value[t].is_work_switch=1,T.value[t].start_time="09:00",T.value[t].end_time="18:00",T.value[t].start_time_timestamp=F("09:00"),T.value[t].end_time_timestamp=F("18:00")):(T.value[t].is_work=0,T.value[t].is_work_switch=0)})},H=()=>{T.value.forEach((e,t)=>{T.value[t].is_work=1,T.value[t].is_work_switch=1,T.value[t].start_time="09:00",T.value[t].end_time="18:00",T.value[t].start_time_timestamp=F("09:00"),T.value[t].end_time_timestamp=F("18:00")})},K=()=>{P({title:"确认清空",content:"确定要清空所有工作时间设置吗?",success:e=>{e.confirm&&T.value.forEach((e,t)=>{T.value[t].is_work=0,T.value[t].is_work_switch=0})}})},L=async()=>{if((()=>{for(let e of T.value)if(1===e.is_work){if(!e.start_time||!e.end_time)return _({title:`${e.day_name}的工作时间不能为空`,icon:"none"}),!1;if(!e.start_time||!e.end_time)return _({title:`${e.day_name}的时间设置不完整`,icon:"none"}),!1;const t=e.start_time.split(":"),a=e.end_time.split(":");if(60*parseInt(t[0])+parseInt(t[1])>=60*parseInt(a[0])+parseInt(a[1]))return _({title:`${e.day_name}的结束时间必须晚于开始时间`,icon:"none"}),!1}return!0})()){x.value=!0;try{const e=T.value.map(e=>({week_day:e.week_day,is_work:e.is_work,start_time:1===e.is_work?e.start_time:"",end_time:1===e.is_work?e.end_time:""})),t=await S.$api.user.setWorkTime({work_times:e});1===t.code?(_({title:"设置成功",icon:"success"}),setTimeout(()=>{V()},1500)):_({title:t.msg||"设置失败",icon:"none"})}catch(e){console.error("设置工作时间失败:",e),_({title:"网络错误,请重试",icon:"none"})}finally{x.value=!1}}};return i(()=>{q()}),b({loadWorkTime:q}),(e,t)=>{const a=m,s=l(o("u-switch"),u),i=I,_=l(o("u-datetime-picker"),d),g=l(o("u-loading-icon"),c),P=l(o("u-button"),k);return w(),n(a,{class:"work-time-page"},{default:r(()=>[f(a,{class:"content"},{default:r(()=>[U.value?h("",!0):(w(),n(a,{key:0,class:"work-time-section"},{default:r(()=>[f(a,{class:"work-time-list"},{default:r(()=>[(w(!0),v(y,null,p(T.value,(e,t)=>(w(),n(a,{class:"work-time-item",key:e.week_day},{default:r(()=>[f(a,{class:"day-info"},{default:r(()=>[f(a,{class:"day-name"},{default:r(()=>[C(E(e.day_name),1)]),_:2},1024),f(s,{modelValue:e.is_work_switch,"onUpdate:modelValue":t=>e.is_work_switch=t,"active-value":1,"inactive-value":0,onChange:e=>((e,t)=>{T.value[e].is_work=t,T.value[e].is_work_switch=t,!t||T.value[e].start_time&&T.value[e].end_time||(T.value[e].start_time="09:00",T.value[e].end_time="18:00",T.value[e].start_time_timestamp=F("09:00"),T.value[e].end_time_timestamp=F("18:00"))})(t,e),"active-color":"#007AFF"},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:2},1024),1===e.is_work?(w(),n(a,{key:0,class:"time-setting"},{default:r(()=>[f(a,{class:"time-item"},{default:r(()=>[f(i,{class:"time-label"},{default:r(()=>[C("开始时间")]),_:1}),f(a,{class:"time-display",onClick:e=>(e=>{T.value[e].showStartPicker=!0})(t)},{default:r(()=>[C(E(e.start_time),1)]),_:2},1032,["onClick"]),f(_,{show:e.showStartPicker,modelValue:e.start_time,"onUpdate:modelValue":t=>e.start_time=t,mode:"time",onConfirm:e=>W(t,"start_time",e),onClose:t=>e.showStartPicker=!1},null,8,["show","modelValue","onUpdate:modelValue","onConfirm","onClose"])]),_:2},1024),f(a,{class:"time-separator"},{default:r(()=>[C("-")]),_:1}),f(a,{class:"time-item"},{default:r(()=>[f(i,{class:"time-label"},{default:r(()=>[C("结束时间")]),_:1}),f(a,{class:"time-display",onClick:e=>(e=>{T.value[e].showEndPicker=!0})(t)},{default:r(()=>[C(E(e.end_time),1)]),_:2},1032,["onClick"]),f(_,{show:e.showEndPicker,modelValue:e.end_time,"onUpdate:modelValue":t=>e.end_time=t,mode:"time",onConfirm:e=>W(t,"end_time",e),onClose:t=>e.showEndPicker=!1},null,8,["show","modelValue","onUpdate:modelValue","onConfirm","onClose"])]),_:2},1024)]),_:2},1024)):h("",!0)]),_:2},1024))),128))]),_:1})]),_:1})),U.value?(w(),n(a,{key:1,class:"loading-state"},{default:r(()=>[f(g,{mode:"circle"}),f(i,null,{default:r(()=>[C("加载中...")]),_:1})]),_:1})):h("",!0),U.value?h("",!0):(w(),n(a,{key:2,class:"quick-setting-section"},{default:r(()=>[f(a,{class:"section-title"},{default:r(()=>[C("快捷设置")]),_:1}),f(a,{class:"quick-buttons"},{default:r(()=>[f(P,{type:"info",size:"small",onClick:A},{default:r(()=>[C(" 设为工作日 ")]),_:1}),f(P,{type:"info",size:"small",onClick:H},{default:r(()=>[C(" 设为全周 ")]),_:1}),f(P,{type:"warning",size:"small",onClick:K},{default:r(()=>[C(" 全部清空 ")]),_:1})]),_:1})]),_:1})),U.value?h("",!0):(w(),n(a,{key:3,class:"button-container"},{default:r(()=>[f(P,{type:"primary",loading:x.value,onClick:L},{default:r(()=>[C(" 保存设置 ")]),_:1},8,["loading"])]),_:1}))]),_:1})]),_:1})}}}),[["__scopeId","data-v-d95b7f8f"]]);export{S as default};
|