PageSourceSearch

https://smartkintai.ai/assets/HolidayManagement-3iOsKaJ_.js

js smartkintai.ai collected 2026-10-05 15:06:32 UTC 10,559 bytes, 4 lines download raw bytes

1import{A as re}from"./AdminLayout-CKFEpq6x.js";import{d as ie,r as c,a as L,o as ue,n as $,w as t,W as _,s as f,f as r,g as l,i,u as g,a1 as de,aG as P,a7 as pe,P as G,a3 as me,A as u,t as S,e as k,a5 as fe,aM as ce,F as W,j as J,aF as ye,k as ve,ad as _e,a9 as ge}from"./index-C6DB0I7I.js";import{g as we,u as Ve,c as be,d as ke,i as De}from"./holidays-D4wB0WyV.js";import{_ as Ce}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./AdminHeader-CxaYCU54.js";import"./client-CRttDGue.js";import"./index-D5lHaTRS.js";import"./authApi-gU8Bzwv7.js";import"./employeeClient-DfmVny7z.js";const xe={class:"holiday-management"},Ye={key:1},$e={style:{display:"flex",gap:"4px","justify-content":"center"}},Se={class:"import-info"},Me={style:{"margin-top":"12px"}},ze={key:0,class:"import-result"},Re={key:0,class:"error-list"},He={class:"error-items"},Be=ie({__name:"HolidayManagement",setup(Fe){const H=c(!1),B=c(!1),V=c(!1),M=c(!1),F=c(!1),m=c(null),D=c(!1),A=c([]),z=c(null),R=c(),v=L({year:new Date().getFullYear().toString(),type:""}),s=L({holidayDate:"",name:"",isRecurring:!1,type:"company"}),K={holidayDate:[{required:!0,message:"日付を選択してください"}],name:[{required:!0,message:"休日名を入力してください",trigger:"blur"}],type:[{required:!0,message:"区分を選択してください"}]},C=async()=>{var n,e;H.value=!0;try{const d=await we({year:v.year?parseInt(v.year):void 0,type:v.type||void 0});A.value=d.data||[]}catch(d){_.error(((e=(n=d.response)==null?void 0:n.data)==null?void 0:e.message)||"データの取得に失敗しました")}finally{H.value=!1}},O=async()=>{R.value&&await R.value.validate(async n=>{var e,d;if(n){B.value=!0;try{const o={...s};if(s.isRecurring&&s.holidayDate){const y=new Date(s.holidayDate),x=String(y.getMonth()+1).padStart(2,"0"),p=String(y.getDate()).padStart(2,"0");o.recurrencePattern=`${x}-${p}`}D.value&&z.value?(await Ve(z.value.id,o),_.success("休日を更新しました")):(await be(o),_.success("休日を追加しました")),V.value=!1,C(),Z()}catch(o){_.error(((d=(e=o.response)==null?void 0:e.data)==null?void 0:d.message)||"操作に失敗しました")}finally{B.value=!1}}})},Q=n=>{D.value=!0,z.value=n,s.holidayDate=n.holidayDate,s.name=n.name,s.isRecurring=n.isRecurring,s.type=n.type,V.value=!0},X=async n=>{var e,d;try{await ge.confirm(`「${n.name}」を削除しますか?`,"確認",{confirmButtonText:"削除",cancelButtonText:"キャンセル",type:"warning"}),await ke(n.id),_.success("企業休日を削除しました"),C()}catch(o){o!=="cancel"&&_.error(((d=(e=o.response)==null?void 0:e.data)==null?void 0:d.message)||"削除に失敗しました")}},Z=()=>{var n;D.value=!1,z.value=null,s.holidayDate="",s.name="",s.isRecurring=!1,s.type="company",(n=R.value)==null||n.resetFields()},I=n=>{if(!n)return"";const e=new Date(n),d=e.getFullYear(),o=String(e.getMonth()+1).padStart(2,"0"),y=String(e.getDate()).padStart(2,"0"),p=["日","月","火","水","木","金","土"][e.getDay()];return`${d}/${o}/${y} (${p})`},h=async n=>{var e,d;try{F.value=!0,m.value=null;const o=await De(n.raw);m.value=o.data,_.success(o.message||"インポートが完了しました"),await C()}catch(o){_.error(((d=(e=o.response)==null?void 0:e.data)==null?void 0:d.message)||"インポートに失敗しました")}finally{F.value=!1}};return ue(()=>{C()}),(n,e)=>{const d=i("el-date-picker"),o=i("el-form-item"),y=i("el-option"),x=i("el-select"),p=i("el-button"),Y=i("el-tooltip"),N=i("el-form"),q=i("el-card"),b=i("el-table-column"),w=i("el-tag"),ee=i("el-table"),le=i("el-input"),te=i("el-switch"),T=i("el-dialog"),ae=i("el-divider"),U=i("el-icon"),oe=i("el-link"),ne=i("el-upload"),se=i("el-alert"),j=me("loading");return f(),$(re,{title:"休日カレンダー管理"},{default:t(()=>[r("div",xe,[l(q,{class:"filter-card"},{default:t(()=>[l(N,{inline:!0,model:v},{default:t(()=>[l(o,{label:"年"},{default:t(()=>[l(d,{modelValue:v.year,"onUpdate:modelValue":e[0]||(e[0]=a=>v.year=a),type:"year",placeholder:"年を選択",format:"YYYY年","value-format":"YYYY",style:{width:"150px"}},null,8,["modelValue"])]),_:1}),l(o,{label:"種別"},{default:t(()=>[l(x,{modelValue:v.type,"onUpdate:modelValue":e[1]||(e[1]=a=>v.type=a),placeholder:"全て",clearable:"",style:{width:"150px"}},{default:t(()=>[l(y,{label:"法定休日",value:"legal"}),l(y,{label:"企業休日",value:"company"})]),_:1},8,["modelValue"])]),_:1}),l(o,null,{default:t(()=>[l(Y,{content:"検索",placement:"top"},{default:t(()=>
1[l(p,{type:"primary",circle:"",icon:g(de),onClick:C},null,8,["icon"])]),_:1}),l(Y,{content:"CSVインポート",placement:"top"},{default:t(()=>[l(p,{type:"success",circle:"",icon:g(P),onClick:e[2]||(e[2]=a=>M.value=!0)},null,8,["icon"])]),_:1}),l(Y,{content:"休日を追加",placement:"top"},{default:t(()=>[l(p,{type:"primary",circle:"",icon:g(pe),onClick:e[3]||(e[3]=a=>V.value=!0)},null,8,["icon"])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),l(q,null,{default:t(()=>[G((f(),$(ee,{data:A.value,stripe:""},{default:t(()=>[l(b,{label:"日付",width:"150"},{default:t(({row:a})=>[u(S(I(a.holidayDate)),1)]),_:1}),l(b,{label:"休日名","min-width":"200",prop:"name"}),l(b,{label:"種別",width:"120"},{default:t(({row:a})=>[l(w,{type:a.type==="legal"?"success":"primary",size:"small"},{default:t(()=>[u(S(a.type==="legal"?"法定休日":"企業休日"),1)]),_:2},1032,["type"])]),_:1}),l(b,{label:"繰り返し",width:"100"},{default:t(({row:a})=>[a.isRecurring?(f(),$(w,{key:0,type:"info",size:"small"},{default:t(()=>[...e[13]||(e[13]=[u("毎年",-1)])]),_:1})):(f(),k("span",Ye,"-"))]),_:1}),l(b,{label:"登録日",width:"150"},{default:t(({row:a})=>[u(S(I(a.createdAt)),1)]),_:1}),l(b,{label:"操作",width:"90",fixed:"right",align:"center"},{default:t(({row:a})=>[r("div",$e,[a.type==="company"?(f(),k(W,{key:0},[l(Y,{content:"編集",placement:"top"},{default:t(()=>[l(p,{size:"small",circle:"",type:"primary",icon:g(fe),onClick:E=>Q(a)},null,8,["icon","onClick"])]),_:2},1024),l(Y,{content:"削除",placement:"top"},{default:t(()=>[l(p,{size:"small",circle:"",type:"danger",icon:g(ce),onClick:E=>X(a)},null,8,["icon","onClick"])]),_:2},1024)],64)):(f(),$(w,{key:1,type:"info",size:"small"},{default:t(()=>[...e[14]||(e[14]=[u("システム",-1)])]),_:1}))])]),_:1})]),_:1},8,["data"])),[[j,H.value]])]),_:1}),l(T,{modelValue:V.value,"onUpdate:modelValue":e[9]||(e[9]=a=>V.value=a),title:D.value?"休日を編集":"休日を追加",width:"500px","close-on-click-modal":!1},{footer:t(()=>[l(p,{onClick:e[8]||(e[8]=a=>V.value=!1)},{default:t(()=>[...e[15]||(e[15]=[u("キャンセル",-1)])]),_:1}),l(p,{type:"primary",onClick:O,loading:B.value},{default:t(()=>[u(S(D.value?"更新":"追加"),1)]),_:1},8,["loading"])]),default:t(()=>[l(N,{model:s,rules:K,ref_key:"formRef",ref:R,"label-width":"120px"},{default:t(()=>[l(o,{label:"休日日付",prop:"holidayDate"},{default:t(()=>[l(d,{modelValue:s.holidayDate,"onUpdate:modelValue":e[4]||(e[4]=a=>s.holidayDate=a),type:"date",placeholder:"日付を選択",format:"YYYY/MM/DD","value-format":"YYYY-MM-DD",style:{width:"100%"}},null,8,["modelValue"])]),_:1}),l(o,{label:"区分",prop:"type"},{default:t(()=>[l(x,{modelValue:s.type,"onUpdate:modelValue":e[5]||(e[5]=a=>s.type=a),style:{width:"100%"}},{default:t(()=>[l(y,{label:"企業休日",value:"company"}),l(y,{label:"法定休日",value:"legal"})]),_:1},8,["modelValue"])]),_:1}),l(o,{label:"休日名",prop:"name"},{default:t(()=>[l(le,{modelValue:s.name,"onUpdate:modelValue":e[6]||(e[6]=a=>s.name=a),placeholder:"例: 創立記念日"},null,8,["modelValue"])]),_:1}),l(o,{label:"毎年繰り返す"},{default:t(()=>[l(te,{modelValue:s.isRecurring,"onUpdate:modelValue":e[7]||(e[7]=a=>s.isRecurring=a)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),l(T,{modelValue:M.value,"onUpdate:modelValue":e[11]||(e[11]=a=>M.value=a),title:"CSVインポート",width:"700px","close-on-click-modal":!1,onClose:e[12]||(e[12]=a=>m.value=null)},{footer:t(()=>[l(p,{onClick:e[10]||(e[10]=a=>M.value=!1)},{default:t(()=>[...e[34]||(e[34]=[u("閉じる",-1)])]),_:1})]),default:t(()=>[r("div",Se,[e[28]||(e[28]=r("p",null,[r("strong",null,"CSVフォーマット:")],-1)),e[29]||(e[29]=r("pre",null,`日付,名称,種別,毎年繰り返し
22027-01-01,元日,legal,true
32027-05-03,憲法記念日,legal,true
42027-12-25,クリスマス休暇,company,false`,-1)),l(ae),r("p",null,[e[18]||(e[18]=r("strong",null,"種別:",-1)),e[19]||(e[19]=u()),l(w,{size:"small",type:"success"},{default:t(()=>[...e[16]||(e[16]=[u("legal",-1)])]),_:1}),e[20]||(e[20]=u(" (法定休日) または ",-1)),l(w,{size:"small",type:"primary"},{default:t(()=>[...e[17]||(e[17]=[u("company",-1)])]),_:1}),e[21]||(e[21]=u(" (企業休日)",-1))]),r("p",null,[e[24]||(e[24]=r("strong",null,"毎年繰り返し:",-1)),e[25]||(e[25]=u()),l(w,{size:"small"},{default:t(()=>[...e[22]||(e[22]=[u("true",-1)])]),_:1}),e[26]||(e[26]=u(" または ",-1)),l(w,{size:"small"},{default:t(()=>[...e[23]||(e[23]=[u("false",-1)])]),_:1})]),e[30]||(e[30]=r("p",{style:{color:"#909399","font-size":"14px"}},"※ 重複する休日は自動的にスキップされます",-1)),r("div",Me,[l(oe,{type:"primary",href:"/templates/holidays_2027_template.csv",download:""},{default:t(()=>[l(U,null,{default:t(()=>[l(g(ye))]),_:1}
4),e[27]||(e[27]=u(" 法定休日テンプレートをダウンロード ",-1))]),_:1})])]),G((f(),$(ne,{drag:"","auto-upload":!1,"on-change":h,accept:".csv",limit:1,"show-file-list":!1},{tip:t(()=>[...e[31]||(e[31]=[r("div",{class:"el-upload__tip"},"CSV形式のファイルのみアップロード可能(最大5MB)",-1)])]),default:t(()=>[l(U,{class:"el-icon--upload",size:67},{default:t(()=>[l(g(P))]),_:1}),e[32]||(e[32]=r("div",{class:"el-upload__text"},[u(" ファイルをドラッグ または "),r("em",null,"クリックしてアップロード")],-1))]),_:1})),[[j,F.value]]),m.value?(f(),k("div",ze,[l(se,{type:m.value.failed===0?"success":"warning",title:`インポート完了: 成功 ${m.value.success}件 / 失敗 ${m.value.failed}件 / 合計 ${m.value.total}件`,closable:!1,"show-icon":""},null,8,["type","title"]),m.value.errors&&m.value.errors.length>0?(f(),k("div",Re,[e[33]||(e[33]=r("p",null,[r("strong",null,"エラー詳細:")],-1)),r("div",He,[(f(!0),k(W,null,ve(m.value.errors,(a,E)=>(f(),k("div",{key:E,class:"error-item"},[l(U,{color:"#f56c6c"},{default:t(()=>[l(g(_e))]),_:1}),r("span",null,S(a),1)]))),128))])])):J("",!0)])):J("",!0)]),_:1},8,["modelValue"])])]),_:1})}}}),Pe=Ce(Be,[["__scopeId","data-v-cfc31bfb"]]);export{Pe as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.