PageSourceSearch

https://smartkintai.ai/assets/ExpenseDetail-D_gMHMnL.js

js smartkintai.ai collected 2026-10-05 15:06:36 UTC 9,623 bytes, 1 lines download raw bytes

1import{d as ae,r as C,a as B,c as F,o as le,q as oe,W as y,n as m,w as t,s as u,P as se,j as v,g as a,a3 as ne,e as x,F as L,i as p,A as l,t as s,f,u as S,v as re,H as ie,k as ue,ab as de,b8 as pe}from"./index-C6DB0I7I.js";import{A as me}from"./AdminLayout-CKFEpq6x.js";import{f as j,h as ce,r as ve,d as I}from"./expenses-7Rph15F5.js";import{_ as fe}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 be={class:"content"},_e={class:"subtotal"},ge={class:"subtotal"},ye={class:"total"},ke={class:"attachment-name"},we={class:"attachment-size"},xe=ae({__name:"ExpenseDetail",setup(Ne){const w=oe(),M=re(),D=C(!1),n=C(null),b=B({visible:!1,notes:""}),c=B({visible:!1,reason:""}),R=C([]),T=C(!1),r=F(()=>{var i;return((i=n.value)==null?void 0:i.applicationData)??{}}),P=F(()=>n.value?{"transportation-daily":"毎日通勤費詳細","transportation-pass":"定期券詳細","transportation-business":"出張旅費詳細","misc-expense":"雑費詳細"}[n.value.applicationType]??"経費詳細":"経費詳細");le(async()=>{D.value=!0;try{n.value=await j(w.params.id)}catch{y.error("経費情報の取得に失敗しました")}finally{D.value=!1}});const q=()=>{b.notes="",b.visible=!0},H=async()=>{try{await ce(w.params.id,b.notes||void 0),y.success("承認しました"),b.visible=!1,n.value=await j(w.params.id)}catch{y.error("承認に失敗しました")}},K=()=>{c.reason="",c.visible=!0},W=async()=>{if(!c.reason.trim()){y.error("却下理由を入力してください");return}try{await ve(w.params.id,c.reason),y.success("却下しました"),c.visible=!1,n.value=await j(w.params.id)}catch{y.error("却下に失敗しました")}},G=async i=>{try{const e=await I(i.id);["image/jpeg","image/png","image/gif","image/webp"].includes(i.mimeType)?(R.value=[e],T.value=!0):window.open(e,"_blank")}catch{y.error("ファイルのURLの取得に失敗しました")}},J=async i=>{try{const e=await I(i);window.open(e,"_blank")}catch{y.error("ダウンロードURLの取得に失敗しました")}},O=i=>({pending:"申請中",approved:"承認済",rejected:"却下",returned:"差戻し"})[i]??i,Q=i=>({pending:"warning",approved:"success",rejected:"danger",returned:"info"})[i]??"",X=i=>i<1024?`${i}B`:i<1024*1024?`${(i/1024).toFixed(1)}KB`:`${(i/(1024*1024)).toFixed(1)}MB`;return(i,e)=>{const z=p("el-tag"),N=p("el-col"),_=p("el-button"),Y=p("el-row"),k=p("el-card"),d=p("el-descriptions-item"),V=p("el-descriptions"),g=p("el-table-column"),A=p("el-table"),Z=p("el-icon"),$=p("el-input"),h=p("el-form-item"),E=p("el-dialog"),ee=ne("loading");return u(),m(me,{title:P.value},{default:t(()=>{var U;return[se((u(),x("div",be,[n.value?(u(),x(L,{key:0},[a(k,{class:"status-card"},{default:t(()=>[a(Y,{gutter:20,align:"middle"},{default:t(()=>[a(N,{span:4},{default:t(()=>[a(z,{type:Q(n.value.status),size:"large"},{default:t(()=>[l(s(O(n.value.status)),1)]),_:1},8,["type"])]),_:1}),a(N,{span:7},{default:t(()=>[e[8]||(e[8]=f("span",{class:"label"},"申請者:",-1)),l(" "+s(n.value.employeeName),1)]),_:1}),a(N,{span:6},{default:t(()=>{var o;return[e[9]||(e[9]=f("span",{class:"label"},"申請日:",-1)),l(" "+s((o=n.value.createdAt)==null?void 0:o.slice(0,10)),1)]}),_:1}),a(N,{span:7,class:"action-buttons"},{default:t(()=>[a(_,{onClick:e[0]||(e[0]=o=>S(M).back())},{default:t(()=>[...e[10]||(e[10]=[l("戻る",-1)])]),_:1}),n.value.status==="pending"?(u(),x(L,{key:0},[a(_,{type:"success",onClick:q},{default:t(()=>[...e[11]||(e[11]=[l("承認",-1)])]),_:1}),a(_,{type:"danger",onClick:K},{default:t(()=>[...e[12]||(e[12]=[l("却下",-1)])]),_:1})],64)):v("",!0)]),_:1})]),_:1})]),_:1}),(U=n.value.applicationData)!=null&&U.approvalNotes||n.value.rejectionReason?(u(),m(k,{key:0,class:"detail-card"},{default:t(()=>[a(V,{column:1,border:""},{default:t(()=>{var o;return[(o=n.value.applicationData)!=null&&o.approvalNotes?(u(),m(d,{key:0,label:"承認コメント"},{default:t(()=>[l(s(n.value.applicationData.approvalNotes),1)]),_:1})):v("",!0),n.value.rejectionReason?(u(),m(d,{key:1,label:"却下理由"},{default:t(()=>[l(s(n.value.rejectionReason),1)]),_:1})):v("",!0)]}),_:1})]),_:1})):v("",!0),n.value.applicationType==="transportation-daily"?(u(),m(k,{key:1,class:"detail-card"},{header:t(()=>[...e[13]||(e[13]=[l("毎日通勤費",-1)])]),default:t(()=>[a(V,{column:2,border:""},{default:t(()=>[a(d,{label:"日付"},{default:t(()=>[l(s(r.value.expenseDate),1)]),_:1}),a(d,{label:"金額"},{default:t(()=>
1[l("¥"+s(Number(r.value.amount).toLocaleString()),1)]),_:1}),a(d,{label:"片道/往復"},{default:t(()=>[l(s(r.value.tripType),1)]),_:1}),a(d,{label:"線路"},{default:t(()=>[l(s(r.value.route),1)]),_:1}),r.value.notes?(u(),m(d,{key:0,label:"備考",span:2},{default:t(()=>[l(s(r.value.notes),1)]),_:1})):v("",!0)]),_:1})]),_:1})):n.value.applicationType==="transportation-pass"?(u(),m(k,{key:2,class:"detail-card"},{header:t(()=>[...e[14]||(e[14]=[l("定期券",-1)])]),default:t(()=>[a(V,{column:2,border:""},{default:t(()=>[a(d,{label:"購入日"},{default:t(()=>[l(s(r.value.purchaseDate),1)]),_:1}),a(d,{label:"有効期間"},{default:t(()=>[l(s(r.value.validFrom)+" 〜 "+s(r.value.validTo),1)]),_:1}),a(d,{label:"金額"},{default:t(()=>[l("¥"+s(Number(r.value.amount).toLocaleString()),1)]),_:1}),a(d,{label:"線路"},{default:t(()=>[l(s(r.value.route),1)]),_:1}),r.value.notes?(u(),m(d,{key:0,label:"備考",span:2},{default:t(()=>[l(s(r.value.notes),1)]),_:1})):v("",!0)]),_:1})]),_:1})):n.value.applicationType==="transportation-business"?(u(),m(k,{key:3,class:"detail-card"},{header:t(()=>[...e[15]||(e[15]=[l("出張旅費",-1)])]),default:t(()=>[f("div",{class:ie(["trip-reason",{"trip-reason--muted":!r.value.tripReason}])},s(r.value.tripReason||"(内容・理由の入力なし)"),3),e[16]||(e[16]=f("div",{class:"section-title"},"交通費明細",-1)),a(A,{data:r.value.transportationItems??[],size:"small",border:""},{default:t(()=>[a(g,{prop:"date",label:"日付",width:"120"}),a(g,{label:"金額",width:"100",align:"right"},{default:t(({row:o})=>[l("¥"+s(Number(o.amount).toLocaleString()),1)]),_:1}),a(g,{prop:"tripType",label:"片道/往復",width:"90"}),a(g,{prop:"route",label:"線路+駅名"}),a(g,{prop:"notes",label:"備考",width:"160"})]),_:1},8,["data"]),f("div",_e,"交通費小計: ¥"+s(Number(r.value.transportationSubtotal).toLocaleString()),1),e[17]||(e[17]=f("div",{class:"section-title",style:{"margin-top":"16px"}},"宿泊費明細",-1)),a(A,{data:r.value.hotelItems??[],size:"small",border:""},{default:t(()=>[a(g,{prop:"date",label:"日付",width:"120"}),a(g,{label:"金額",width:"100",align:"right"},{default:t(({row:o})=>[l("¥"+s(Number(o.amount).toLocaleString()),1)]),_:1}),a(g,{prop:"hotelName",label:"ホテル名"}),a(g,{prop:"notes",label:"備考",width:"160"})]),_:1},8,["data"]),f("div",ge,"宿泊費小計: ¥"+s(Number(r.value.hotelSubtotal).toLocaleString()),1),f("div",ye,"合計: ¥"+s(Number(r.value.totalAmount).toLocaleString()),1)]),_:1})):n.value.applicationType==="misc-expense"?(u(),m(k,{key:4,class:"detail-card"},{header:t(()=>[...e[18]||(e[18]=[l("雑費",-1)])]),default:t(()=>[a(V,{column:2,border:""},{default:t(()=>[a(d,{label:"日付"},{default:t(()=>[l(s(r.value.expenseDate),1)]),_:1}),a(d,{label:"金額"},{default:t(()=>[l("¥"+s(Number(r.value.amount).toLocaleString()),1)]),_:1}),a(d,{label:"雑費内容",span:2},{default:t(()=>[l(s(r.value.expenseName),1)]),_:1})]),_:1})]),_:1})):v("",!0),n.value.attachments&&n.value.attachments.length>0?(u(),m(k,{key:5,class:"detail-card"},{header:t(()=>[...e[19]||(e[19]=[l("添付ファイル",-1)])]),default:t(()=>[(u(!0),x(L,null,ue(n.value.attachments,o=>(u(),x("div",{key:o.id,class:"attachment-item"},[a(Z,null,{default:t(()=>[a(S(de))]),_:1}),f("span",ke,s(o.fileName),1),f("span",we,s(X(o.fileSize)),1),a(_,{link:"",type:"primary",size:"small",onClick:te=>G(o)},{default:t(()=>[...e[20]||(e[20]=[l(" プレビュー ",-1)])]),_:1},8,["onClick"]),a(_,{link:"",size:"small",onClick:te=>J(o.id)},{default:t(()=>[...e[21]||(e[21]=[l(" ダウンロード ",-1)])]),_:1},8,["onClick"])]))),128))]),_:1})):v("",!0)],64)):v("",!0)])),[[ee,D.value]]),T.value?(u(),m(S(pe),{key:0,"url-list":R.value,onClose:e[1]||(e[1]=o=>T.value=!1)},null,8,["url-list"])):v("",!0),a(E,{modelValue:b.visible,"onUpdate:modelValue":e[4]||(e[4]=o=>b.visible=o),title:"承認",width:"400px"},{footer:t(()=>[a(_,{onClick:e[3]||(e[3]=o=>b.visible=!1)},{default:t(()=>[...e[22]||(e[22]=[l("キャンセル",-1)])]),_:1}),a(_,{type:"success",onClick:H},{default:t(()=>[...e[23]||(e[23]=[l("承認する",-1)])]),_:1})]),default:t(()=>[a(h,{label:"承認コメント(任意)"},{default:t(()=>[a($,{modelValue:b.notes,"onUpdate:modelValue":e[2]||(e[2]=o=>b.notes=o),type:"textarea",rows:3,placeholder:"承認に関するコメントを入力(任意)"},null,8,["modelValue"])]),_:1})]),_:1},8,["modelValue"]),a(E,{modelValue:c.visible,"onUpdate:modelValue":e[7]||
1(e[7]=o=>c.visible=o),title:"却下理由",width:"400px"},{footer:t(()=>[a(_,{onClick:e[6]||(e[6]=o=>c.visible=!1)},{default:t(()=>[...e[24]||(e[24]=[l("キャンセル",-1)])]),_:1}),a(_,{type:"danger",onClick:W},{default:t(()=>[...e[25]||(e[25]=[l("却下する",-1)])]),_:1})]),default:t(()=>[a($,{modelValue:c.reason,"onUpdate:modelValue":e[5]||(e[5]=o=>c.reason=o),type:"textarea",rows:3,placeholder:"却下理由を入力してください"},null,8,["modelValue"])]),_:1},8,["modelValue"])]}),_:1},8,["title"])}}}),Ae=fe(xe,[["__scopeId","data-v-e0d0a099"]]);export{Ae 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.