import{$ as e,H as t,L as n,P as r,V as i,Wt as a,_ as o,d as s,et as c,f as l,i as u,lt as d,p as f,st as p,u as m,v as h,z as g}from"./runtime-core.esm-bundler-DbRZbT7v.js";import{o as _,s as v}from"./index-DK5nh4op.js";import"./request-BcX6wdRT.js";import{i as y}from"./crm-D8MwtJCV.js";import{n as b}from"./room-CR75Q7cU.js";var x={class:`p-6 space-y-4`},S={class:`bg-white rounded-2xl border border-gray-100 shadow-sm p-4 flex items-center flex-wrap gap-3`},C={class:`bg-white rounded-2xl border border-gray-100 shadow-sm`},w={class:`flex items-center justify-between px-5 py-4 border-b border-gray-50`},T={class:`px-2`},E={class:`px-5 py-3 border-t border-gray-50`},D={__name:`index`,setup(D){let O=d([]),k=d(0),A=d(!1),j=d(!1),M=d(!1),N=d(!1),P=d(null),F=d([]),I=p({customer_id:``,status:``,date:``}),L=p({page:1,per_page:20}),R=d(null),z=p({customer_id:``,outing_time:``,expected_return:``,reason:``}),B=p({actual_return:``,remark:``}),V={customer_id:[{required:!0,message:`请选择客户`,trigger:`change`}],outing_time:[{required:!0,message:`请选择外出时间`,trigger:`change`}],expected_return:[{required:!0,message:`请选择预计返回时间`,trigger:`change`}]},H={pending:`待出发`,out:`外出中`,returned:`已返回`},U={pending:`warning`,out:`primary`,returned:`success`};async function W(){A.value=!0;try{let e=await b.getList({...I,...L});O.value=e.data?.list||e.data?.data||[],k.value=e.data?.total||0}finally{A.value=!1}}async function G(){try{let e=await y.getList({per_page:500});F.value=e.data?.list||e.data?.data||[]}catch{}}function K(){L.page=1,W()}function q(){Object.assign(I,{customer_id:``,status:``,date:``}),K()}function J(){Object.assign(z,{customer_id:``,outing_time:``,expected_return:``,reason:``}),j.value=!0}async function Y(){R.value&&await R.value.validate(async e=>{if(e){M.value=!0;try{await b.create(z),v.success(`外出申请已创建`),j.value=!1,W()}finally{M.value=!1}}})}function X(e){P.value=e,Object.assign(B,{actual_return:``,remark:``}),N.value=!0}async function ee(){if(!B.actual_return){v.warning(`请选择实际返回时间`);return}await b.recordBack(P.value.id,B),v.success(`返回登记成功`),N.value=!1,W()}async function te(e){await _.confirm(`确定删除该外出记录吗?`,`删除确认`,{type:`warning`});try{await b.getDetail(e.id),v.error(`暂不支持删除,请联系管理员`)}catch(e){console.error(e)}}function ne(e){L.page=e,W()}function re(e){L.per_page=e,L.page=1,W()}return r(()=>{W(),G()}),(r,d)=>{let p=i(`el-option`),_=i(`el-select`),v=i(`el-date-picker`),y=i(`el-button`),b=i(`el-table-column`),D=i(`el-tag`),P=i(`el-table`),W=i(`el-pagination`),G=i(`el-form-item`),Z=i(`el-input`),Q=i(`el-form`),$=i(`el-dialog`),ie=t(`loading`);return n(),f(`div`,x,[m(`div`,S,[h(_,{modelValue:I.customer_id,"onUpdate:modelValue":d[0]||=e=>I.customer_id=e,placeholder:`选择客户`,clearable:``,filterable:``,style:{width:`180px`}},{default:e(()=>[(n(!0),f(u,null,g(F.value,e=>(n(),s(p,{key:e.id,label:`${e.name}(${e.phone})`,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`]),h(_,{modelValue:I.status,"onUpdate:modelValue":d[1]||=e=>I.status=e,placeholder:`状态`,clearable:``,style:{width:`120px`}},{default:e(()=>[(n(),f(u,null,g(H,(e,t)=>h(p,{key:t,label:e,value:t},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`]),h(v,{modelValue:I.date,"onUpdate:modelValue":d[2]||=e=>I.date=e,type:`date`,placeholder:`外出日期`,"value-format":`YYYY-MM-DD`,style:{width:`150px`}},null,8,[`modelValue`]),h(y,{type:`primary`,onClick:K},{default:e(()=>[...d[15]||=[o(`查询`,-1)]]),_:1}),h(y,{onClick:q},{default:e(()=>[...d[16]||=[o(`重置`,-1)]]),_:1})]),m(`div`,C,[m(`div`,w,[d[18]||=m(`div`,{class:`flex items-center gap-2`},[m(`span`,{class:`w-1 h-5 bg-rose-500 rounded-full inline-block`}),m(`span`,{class:`font-medium text-gray-700`},`外出记录`)],-1),h(y,{type:`primary`,onClick:J},{default:e(()=>[...d[17]||=[o(`新建外出申请`,-1)]]),_:1})]),m(`div`,T,[c((n(),s(P,{data:O.value,style:{width:`100%`}},{default:e(()=>[h(b,{label:`客户`,"min-width":`100`},{default:e(({row:e})=>[o(a(e.customer_name||e.customer?.name||`-`),1)]),_:1}),h(b,{prop:`outing_time`,label:`外出时间`,"min-width":`160`}),h(b,{prop:`expected_return`,label:`预计返回`,"min-width":`160`}),h(b,{prop:`actual_return`,label:`实际返回`,"min-width":`160`},{default:e(({row:e})=>[o(a(e.actual_return||`-`),1)]),_:1}),h(b,{prop:`reason`,label:`外出原因`,"min-width":`150`,"show-overflow-tooltip":``}),h(b,{label:`状态`,width:`90`,align:`center`},{default:e(({row:t})=>[h(D,{type:U[t.status],size:`small`},{default:e(()=>[o(a(H[t.status]),1)]),_:2},1032,[`type`])]),_:1}),h(b,{label:`操作`,width:`180`,fixed:`right`,align:`center`},{default:e(({row:t})=>[t.status===`out`?(n(),s(y,{key:0,size:`small`,type:`success`,text:``,onClick:e=>X(t)},{default:e(()=>[...d[19]||=[o(`登记返回`,-1)]]),_:1},8,[`onClick`])):l(``,!0),t.status===`returned`?l(``,!0):(n(),s(y,{key:1,size:`small`,type:`danger`,text:``,onClick:e=>te(t)},{default:e(()=>[...d[20]||=[o(`删除`,-1)]]),_:1},8,[`onClick`]))]),_:1})]),_:1},8,[`data`])),[[ie,A.value]])]),m(`div`,E,[h(W,{"current-page":L.page,"onUpdate:currentPage":d[3]||=e=>L.page=e,"page-size":L.per_page,"onUpdate:pageSize":d[4]||=e=>L.per_page=e,total:k.value,"page-sizes":[10,20,50],layout:`total,sizes,prev,pager,next,jumper`,background:``,onCurrentChange:ne,onSizeChange:re},null,8,[`current-page`,`page-size`,`total`])])]),h($,{modelValue:j.value,"onUpdate:modelValue":d[10]||=e=>j.value=e,title:`新建外出申请`,width:`520px`,"destroy-on-close":``},{footer:e(()=>[h(y,{onClick:d[9]||=e=>j.value=!1},{default:e(()=>[...d[21]||=[o(`取消`,-1)]]),_:1}),h(y,{type:`primary`,loading:M.value,onClick:Y},{default:e(()=>[...d[22]||=[o(`确定`,-1)]]),_:1},8,[`loading`])]),default:e(()=>[h(Q,{ref_key:`formRef`,ref:R,model:z,rules:V,"label-width":`100px`},{default:e(()=>[h(G,{label:`客户`,prop:`customer_id`},{default:e(()=>[h(_,{modelValue:z.customer_id,"onUpdate:modelValue":d[5]||=e=>z.customer_id=e,filterable:``,placeholder:`请选择客户`,style:{width:`100%`}},{default:e(()=>[(n(!0),f(u,null,g(F.value,e=>(n(),s(p,{key:e.id,label:`${e.name}(${e.phone})`,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),h(G,{label:`外出时间`,prop:`outing_time`},{default:e(()=>[h(v,{modelValue:z.outing_time,"onUpdate:modelValue":d[6]||=e=>z.outing_time=e,type:`datetime`,"value-format":`YYYY-MM-DD HH:mm:ss`,placeholder:`请选择外出时间`,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),h(G,{label:`预计返回`,prop:`expected_return`},{default:e(()=>[h(v,{modelValue:z.expected_return,"onUpdate:modelValue":d[7]||=e=>z.expected_return=e,type:`datetime`,"value-format":`YYYY-MM-DD HH:mm:ss`,placeholder:`请选择预计返回时间`,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),h(G,{label:`外出原因`},{default:e(()=>[h(Z,{modelValue:z.reason,"onUpdate:modelValue":d[8]||=e=>z.reason=e,type:`textarea`,rows:3,placeholder:`请输入外出原因`},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`]),h($,{modelValue:N.value,"onUpdate:modelValue":d[14]||=e=>N.value=e,title:`登记返回`,width:`420px`,"destroy-on-close":``},{footer:e(()=>[h(y,{onClick:d[13]||=e=>N.value=!1},{default:e(()=>[...d[23]||=[o(`取消`,-1)]]),_:1}),h(y,{type:`primary`,onClick:ee},{default:e(()=>[...d[24]||=[o(`确定`,-1)]]),_:1})]),default:e(()=>[h(Q,{"label-width":`100px`},{default:e(()=>[h(G,{label:`实际返回时间`},{default:e(()=>[h(v,{modelValue:B.actual_return,"onUpdate:modelValue":d[11]||=e=>B.actual_return=e,type:`datetime`,"value-format":`YYYY-MM-DD HH:mm:ss`,placeholder:`请选择实际返回时间`,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),h(G,{label:`备注`},{default:e(()=>[h(Z,{modelValue:B.remark,"onUpdate:modelValue":d[12]||=e=>B.remark=e,type:`textarea`,rows:2,placeholder:`可选备注`},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])])}}};export{D as default};