import{$ as e,H as t,L as n,P as r,V as i,Wt as a,_ as o,_t as s,d as c,et as l,f as u,i as d,l as f,lt as p,p as m,st as h,u as g,v as _,z as v}from"./runtime-core.esm-bundler-DbRZbT7v.js";import{o as y,s as b,t as x}from"./index-DK5nh4op.js";import"./request-BcX6wdRT.js";import{t as S}from"./iconify-f5JHLb1p.js";import{t as C}from"./service-B9DzomAc.js";var w={class:`p-6 space-y-4`},T={class:`bg-white rounded-2xl border border-gray-100 shadow-sm p-4 flex items-center flex-wrap gap-3`},E={key:0,class:`bg-rose-50 border border-rose-200 rounded-xl px-4 py-3 flex items-center gap-2`},D={class:`text-rose-600 text-sm font-medium`},ee={class:`text-rose-700 font-bold`},te={class:`bg-white rounded-2xl border border-gray-100 shadow-sm`},O={class:`flex items-center justify-between px-5 py-4 border-b border-gray-50`},k={class:`px-2`},A={key:0,class:`text-amber-500 font-medium`},j={key:1,class:`text-gray-300`},M={class:`px-5 py-3 border-t border-gray-50`},N=x({__name:`index`,setup(x){let N=p([]),P=p(0),F=p(!1),I=p(!1),L=p(!1),R=new Date().toISOString().slice(0,10),z=h({order_id:``,technician_id:``,status:``,date:R}),B=h({page:1,per_page:20}),V=p(null),H=h({order_id:``,service_item_name:``,technician_id:``,technician_name:``,scheduled_at:``,notes:``}),U={scheduled:`待执行`,in_progress:`执行中`,completed:`已完成`,cancelled:`已取消`},W={scheduled:`warning`,in_progress:`primary`,completed:`success`,cancelled:`info`},G={order_id:[{required:!0,message:`请输入关联订单ID`,trigger:`blur`}],service_item_name:[{required:!0,message:`请输入服务项目名称`,trigger:`blur`}],scheduled_at:[{required:!0,message:`请选择计划执行时间`,trigger:`change`}]};function K({row:e}){return(e.scheduled_at?e.scheduled_at.slice(0,10):``)===R&&e.status===`scheduled`?`row-today-highlight`:``}let q=f(()=>N.value.filter(e=>(e.scheduled_at?e.scheduled_at.slice(0,10):``)===R&&e.status===`scheduled`).length);async function J(){F.value=!0;try{let e=await C.getList({...z,...B});N.value=e.data?.list||e.data?.data||[],P.value=e.data?.total||0}catch{b.error(`加载失败`)}finally{F.value=!1}}function Y(){B.page=1,J()}function X(){Object.assign(z,{order_id:``,technician_id:``,status:``,date:R}),Y()}function Z(){Object.assign(H,{order_id:``,service_item_name:``,technician_id:``,technician_name:``,scheduled_at:``,notes:``}),I.value=!0}async function ne(e){await y.confirm(`确认「${e.service_item_name}」已执行完成?`,`标记完成`,{type:`success`,confirmButtonText:`确认完成`});try{await C.finish(e.id),b.success(`已标记完成`),J()}catch{b.error(`操作失败`)}}async function re(){V.value&&await V.value.validate(async e=>{if(e){L.value=!0;try{await C.create(H),b.success(`创建成功`),I.value=!1,J()}catch{b.error(`创建失败`)}finally{L.value=!1}}})}function ie(e){B.page=e,J()}function Q(e){B.per_page=e,B.page=1,J()}return r(()=>J()),(r,f)=>{let p=i(`el-input`),h=i(`el-option`),y=i(`el-select`),b=i(`el-date-picker`),x=i(`el-button`),C=i(`el-table-column`),R=i(`el-tag`),J=i(`el-table`),ae=i(`el-pagination`),$=i(`el-form-item`),oe=i(`el-form`),se=i(`el-dialog`),ce=t(`loading`);return n(),m(`div`,w,[g(`div`,T,[_(p,{modelValue:z.order_id,"onUpdate:modelValue":f[0]||=e=>z.order_id=e,placeholder:`订单ID`,clearable:``,style:{width:`140px`}},null,8,[`modelValue`]),_(p,{modelValue:z.technician_id,"onUpdate:modelValue":f[1]||=e=>z.technician_id=e,placeholder:`技师ID`,clearable:``,style:{width:`140px`}},null,8,[`modelValue`]),_(y,{modelValue:z.status,"onUpdate:modelValue":f[2]||=e=>z.status=e,placeholder:`执行状态`,clearable:``,style:{width:`130px`}},{default:e(()=>[(n(),m(d,null,v(U,(e,t)=>_(h,{key:t,label:e,value:t},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`]),_(b,{modelValue:z.date,"onUpdate:modelValue":f[3]||=e=>z.date=e,type:`date`,"value-format":`YYYY-MM-DD`,placeholder:`执行日期`,style:{width:`160px`}},null,8,[`modelValue`]),_(x,{type:`primary`,onClick:Y},{default:e(()=>[_(s(S),{icon:`solar:magnifer-bold-duotone`,class:`mr-1`}),f[13]||=o(`查询 `,-1)]),_:1}),_(x,{onClick:X},{default:e(()=>[...f[14]||=[o(`重置`,-1)]]),_:1})]),q.value>0?(n(),m(`div`,E,[_(s(S),{icon:`solar:bell-bing-bold-duotone`,class:`text-rose-500 text-xl flex-shrink-0`}),g(`span`,D,[f[15]||=o(` 今日共有 `,-1),g(`span`,ee,a(q.value),1),f[16]||=o(` 条待执行服务,已高亮显示。 `,-1)])])):u(``,!0),g(`div`,te,[g(`div`,O,[f[18]||=g(`div`,{class:`flex items-center gap-2`},[g(`span`,{class:`w-1 h-5 bg-rose-500 rounded-full inline-block`}),g(`span`,{class:`font-semibold text-gray-700`},`服务执行记录`)],-1),_(x,{type:`primary`,onClick:Z},{default:e(()=>[_(s(S),{icon:`solar:add-circle-bold-duotone`,class:`mr-1`}),f[17]||=o(`新建执行记录 `,-1)]),_:1})]),g(`div`,k,[l((n(),c(J,{data:N.value,style:{width:`100%`},"row-class-name":K},{default:e(()=>[_(C,{prop:`service_item_name`,label:`服务项目`,"min-width":`140`}),_(C,{label:`客户`,"min-width":`100`},{default:e(({row:e})=>[o(a(e.customer_name||`-`),1)]),_:1}),_(C,{label:`执行技师`,"min-width":`100`},{default:e(({row:e})=>[o(a(e.technician_name||`-`),1)]),_:1}),_(C,{prop:`scheduled_at`,label:`计划时间`,"min-width":`160`}),_(C,{prop:`completed_at`,label:`完成时间`,"min-width":`160`},{default:e(({row:e})=>[o(a(e.completed_at||`—`),1)]),_:1}),_(C,{label:`客户评分`,width:`90`,align:`center`},{default:e(({row:e})=>[e.customer_rating?(n(),m(`span`,A,a(e.customer_rating)+` ★`,1)):(n(),m(`span`,j,`—`))]),_:1}),_(C,{label:`状态`,width:`90`,align:`center`},{default:e(({row:t})=>[_(R,{type:W[t.status],size:`small`},{default:e(()=>[o(a(U[t.status]||`-`),1)]),_:2},1032,[`type`])]),_:1}),_(C,{label:`操作`,width:`120`,fixed:`right`,align:`center`},{default:e(({row:t})=>[t.status===`scheduled`||t.status===`in_progress`?(n(),c(x,{key:0,size:`small`,type:`success`,text:``,onClick:e=>ne(t)},{default:e(()=>[...f[19]||=[o(` 标记完成 `,-1)]]),_:1},8,[`onClick`])):u(``,!0)]),_:1})]),_:1},8,[`data`])),[[ce,F.value]])]),g(`div`,M,[_(ae,{"current-page":B.page,"onUpdate:currentPage":f[4]||=e=>B.page=e,"page-size":B.per_page,"onUpdate:pageSize":f[5]||=e=>B.per_page=e,total:P.value,"page-sizes":[10,20,50],layout:`total,sizes,prev,pager,next,jumper`,background:``,onCurrentChange:ie,onSizeChange:Q},null,8,[`current-page`,`page-size`,`total`])])]),_(se,{modelValue:I.value,"onUpdate:modelValue":f[12]||=e=>I.value=e,title:`新建执行记录`,width:`540px`,"destroy-on-close":``},{footer:e(()=>[_(x,{onClick:f[11]||=e=>I.value=!1},{default:e(()=>[...f[20]||=[o(`取消`,-1)]]),_:1}),_(x,{type:`primary`,loading:L.value,onClick:re},{default:e(()=>[...f[21]||=[o(`确定`,-1)]]),_:1},8,[`loading`])]),default:e(()=>[_(oe,{ref_key:`formRef`,ref:V,model:H,rules:G,"label-width":`100px`},{default:e(()=>[_($,{label:`关联订单ID`,prop:`order_id`},{default:e(()=>[_(p,{modelValue:H.order_id,"onUpdate:modelValue":f[6]||=e=>H.order_id=e,placeholder:`请输入服务订单ID`},null,8,[`modelValue`])]),_:1}),_($,{label:`服务项目`,prop:`service_item_name`},{default:e(()=>[_(p,{modelValue:H.service_item_name,"onUpdate:modelValue":f[7]||=e=>H.service_item_name=e,placeholder:`服务项目名称`},null,8,[`modelValue`])]),_:1}),_($,{label:`执行技师`},{default:e(()=>[_(p,{modelValue:H.technician_name,"onUpdate:modelValue":f[8]||=e=>H.technician_name=e,placeholder:`技师姓名(可选)`},null,8,[`modelValue`])]),_:1}),_($,{label:`计划时间`,prop:`scheduled_at`},{default:e(()=>[_(b,{modelValue:H.scheduled_at,"onUpdate:modelValue":f[9]||=e=>H.scheduled_at=e,type:`datetime`,"value-format":`YYYY-MM-DD HH:mm:ss`,placeholder:`选择计划执行时间`,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),_($,{label:`备注`},{default:e(()=>[_(p,{modelValue:H.notes,"onUpdate:modelValue":f[10]||=e=>H.notes=e,type:`textarea`,rows:2,placeholder:`执行备注(可选)`},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`])])}}},[[`__scopeId`,`data-v-42007c88`]]);export{N as default};