cmms/frontend/dist/assets/CreateWorkOrderView-Cry3C_b...

2 lines
12 KiB
JavaScript

import{_,q as F,r as m,c as T,o as W,a as d,b as l,d as o,w as p,f as L,e as i,F as b,h as R,j as z,af as E,aQ as H,v as N,g as n,k as y,t as V}from"./index-BUdRbiwj.js";import{F as f}from"./FPInput-CzR_dWoe.js";import{F as g}from"./FPSelect-C7p47Ma2.js";import{W as $}from"./WorkOrderIdGenerator-BPGN0soM.js";import{T as q,P as j,A as G}from"./AudioRecorder-CcKMXbWt.js";import"./FPCheckbox-Bu8jNAEW.js";import"./FPBadge-BKY5dPnL.js";const J={class:"create-work-order"},K={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"},Q={class:"mb-8"},X={class:"flex","aria-label":"Breadcrumb"},Y={class:"flex items-center space-x-4"},Z={class:"mt-2 flex items-center justify-between"},ee={class:"flex space-x-2"},le={key:0},te={key:1},ae={class:"bg-white shadow rounded-lg p-6"},re={class:"grid grid-cols-1 gap-6 sm:grid-cols-2"},oe={class:"sm:col-span-2"},se={class:"sm:col-span-2"},ie={class:"sm:col-span-2"},de={class:"bg-white shadow rounded-lg p-6"},ne={class:"grid grid-cols-1 gap-6 sm:grid-cols-2"},ue={class:"bg-white shadow rounded-lg p-6"},me={class:"grid grid-cols-1 gap-6 sm:grid-cols-3"},ve={class:"grid grid-cols-1 lg:grid-cols-2 gap-8"},pe={class:"bg-white shadow rounded-lg p-6"},ge={class:"bg-white shadow rounded-lg p-6"},ce={class:"bg-white shadow rounded-lg p-6"},be={class:"mb-8"},fe={class:"border-2 border-dashed border-gray-300 rounded-lg p-8 text-center"},ye={class:"mt-4"},xe={class:"cursor-pointer"},ke={key:0,class:"mt-4 space-y-2"},we={class:"flex items-center"},Ve={class:"text-sm text-gray-900"},he={class:"text-xs text-gray-500 ml-2"},Ie={class:"flex justify-end space-x-4 pt-6 border-t border-gray-200"},Ce={key:0},Me={key:1},De={__name:"CreateWorkOrderView",setup(Oe){const h=N(),I=F(),v=m(!1),s=m({}),t=m({workOrderId:"",title:"",description:"",priority:"MEDIUM",dueDate:"",startDate:"",estimatedDuration:null,primaryUserId:null,assignedToIds:[],assetId:null,locationId:null,categoryId:null,tasks:[],parts:[],audioRecordings:[],files:[]}),C=[{value:"LOW",label:"Low"},{value:"MEDIUM",label:"Medium"},{value:"HIGH",label:"High"},{value:"CRITICAL",label:"Critical"}],x=m([{value:1,label:"John Smith"},{value:2,label:"Jane Doe"},{value:3,label:"Mike Johnson"},{value:4,label:"Sarah Wilson"},{value:5,label:"Tom Brown"}]),M=m([{value:1,label:"Conveyor Belt System A1"},{value:2,label:"Hydraulic Press B2"},{value:3,label:"CNC Machine C3"},{value:4,label:"Packaging Line D4"},{value:5,label:"Air Compressor E5"}]),D=m([{value:1,label:"Production Floor A"},{value:2,label:"Warehouse B"},{value:3,label:"Maintenance Shop"},{value:4,label:"Office Building"},{value:5,label:"Loading Dock"}]),O=m([{value:1,label:"Mechanical Repair"},{value:2,label:"Electrical Maintenance"},{value:3,label:"Preventive Maintenance"},{value:4,label:"Emergency Repair"},{value:5,label:"Inspection"}]),c=T(()=>I.user),U=()=>{var e,u;s.value={};let r=!0;return(e=t.value.title)!=null&&e.trim()||(s.value.title="Title is required",r=!1),t.value.priority||(s.value.priority="Priority is required",r=!1),(u=t.value.workOrderId)!=null&&u.trim()||(s.value.workOrderId="Work Order ID is required",r=!1),r},k=async()=>{if(U())try{v.value=!0,await new Promise(e=>setTimeout(e,2e3));const r={...t.value,id:Math.floor(Math.random()*1e3)+1,status:"OPEN",createdAt:new Date().toISOString(),createdBy:c.value};console.log("Creating work order:",r),h.push(`/work-orders/${r.id}`)}catch(r){s.value.general=r.message||"Failed to create work order"}finally{v.value=!1}},S=r=>{console.log("Recording saved:",r)},B=r=>{const e=Array.from(r.target.files);t.value.files.push(...e)},P=r=>{t.value.files.splice(r,1)},A=r=>{if(!r)return"0 B";const e=["B","KB","MB","GB"],u=Math.floor(Math.log(r)/Math.log(1024));return`${Math.round(r/Math.pow(1024,u)*100)/100} ${e[u]}`};return W(()=>{c.value&&(t.value.primaryUserId=c.value.id);const r=new Date;r.setMinutes(r.getMinutes()-r.getTimezoneOffset()),t.value.startDate=r.toISOString().slice(0,16)}),(r,e)=>{const u=L("router-link");return n(),d("div",J,[l("div",K,[l("div",Q,[l("nav",X,[l("ol",Y,[l("li",null,[o(u,{to:"/work-orders",class:"text-gray-400 hover:text-gray-500"},{default:p(()=>e[17]||(e[17]=[y(" Work Orders ",-1)])),_:1,__:[17]})]),e[18]||(e[18]=l("li",null,[l("svg",{class:"flex-shrink-0 h-5 w-5 text-gray-300",fill:"currentColor",viewBox:"0 0 20 20"},[l("path",{"fill-rule":"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z","clip-rule":"evenodd"})])],-1)),e[19]||(e[19]=l("li",{class:"text-gray-500"},"Create New",-1))])]),l("div",Z,[e[21]||(e[21]=l("div",null,[l("h1",{class:"text-2xl font-bold text-gray-900"},"Create Work Order"),l("p",{class:"text-gray-600"},"Create a new work order for maintenance tasks")],-1)),l("div",ee,[o(i(b),{variant:"outline",onClick:e[0]||(e[0]=a=>r.$router.push("/work-orders"))},{default:p(()=>e[20]||(e[20]=[y(" Cancel ",-1)])),_:1,__:[20]}),o(i(b),{variant:"primary",onClick:k,disabled:v.value},{default:p(()=>[v.value?(n(),d("span",le,"Creating...")):(n(),d("span",te,"Create Work Order"))]),_:1},8,["disabled"])])])]),l("form",{onSubmit:R(k,["prevent"]),class:"space-y-8"},[l("div",ae,[e[22]||(e[22]=l("h2",{class:"text-lg font-medium text-gray-900 mb-6"},"Basic Information",-1)),l("div",re,[l("div",oe,[o($,{modelValue:t.value.workOrderId,"onUpdate:modelValue":e[1]||(e[1]=a=>t.value.workOrderId=a),error:s.value.workOrderId},null,8,["modelValue","error"])]),l("div",se,[o(i(f),{modelValue:t.value.title,"onUpdate:modelValue":e[2]||(e[2]=a=>t.value.title=a),label:"Title",placeholder:"Enter work order title",required:"",error:s.value.title},null,8,["modelValue","error"])]),l("div",ie,[o(i(f),{modelValue:t.value.description,"onUpdate:modelValue":e[3]||(e[3]=a=>t.value.description=a),label:"Description",type:"textarea",rows:"4",placeholder:"Enter detailed description of the work to be performed",error:s.value.description},null,8,["modelValue","error"])]),l("div",null,[o(i(g),{modelValue:t.value.priority,"onUpdate:modelValue":e[4]||(e[4]=a=>t.value.priority=a),label:"Priority",options:C,required:"",error:s.value.priority},null,8,["modelValue","error"])]),l("div",null,[o(i(f),{modelValue:t.value.dueDate,"onUpdate:modelValue":e[5]||(e[5]=a=>t.value.dueDate=a),label:"Due Date",type:"datetime-local",error:s.value.dueDate},null,8,["modelValue","error"])]),l("div",null,[o(i(f),{modelValue:t.value.estimatedDuration,"onUpdate:modelValue":e[6]||(e[6]=a=>t.value.estimatedDuration=a),label:"Estimated Duration (hours)",type:"number",step:"0.5",min:"0",placeholder:"0",error:s.value.estimatedDuration},null,8,["modelValue","error"])]),l("div",null,[o(i(f),{modelValue:t.value.startDate,"onUpdate:modelValue":e[7]||(e[7]=a=>t.value.startDate=a),label:"Planned Start Date",type:"datetime-local",error:s.value.startDate},null,8,["modelValue","error"])])])]),l("div",de,[e[23]||(e[23]=l("h2",{class:"text-lg font-medium text-gray-900 mb-6"},"Assignment",-1)),l("div",ne,[l("div",null,[o(i(g),{modelValue:t.value.primaryUserId,"onUpdate:modelValue":e[8]||(e[8]=a=>t.value.primaryUserId=a),label:"Primary Assignee",options:x.value,searchable:"",placeholder:"Select primary assignee",error:s.value.primaryUserId},null,8,["modelValue","options","error"])]),l("div",null,[o(i(g),{modelValue:t.value.assignedToIds,"onUpdate:modelValue":e[9]||(e[9]=a=>t.value.assignedToIds=a),label:"Team Members",options:x.value,multiple:"",searchable:"",placeholder:"Select team members",error:s.value.assignedToIds},null,8,["modelValue","options","error"])])])]),l("div",ue,[e[24]||(e[24]=l("h2",{class:"text-lg font-medium text-gray-900 mb-6"},"Asset & Location",-1)),l("div",me,[l("div",null,[o(i(g),{modelValue:t.value.assetId,"onUpdate:modelValue":e[10]||(e[10]=a=>t.value.assetId=a),label:"Asset",options:M.value,searchable:"",clearable:"",placeholder:"Select asset",error:s.value.assetId},null,8,["modelValue","options","error"])]),l("div",null,[o(i(g),{modelValue:t.value.locationId,"onUpdate:modelValue":e[11]||(e[11]=a=>t.value.locationId=a),label:"Location",options:D.value,searchable:"",clearable:"",placeholder:"Select location",error:s.value.locationId},null,8,["modelValue","options","error"])]),l("div",null,[o(i(g),{modelValue:t.value.categoryId,"onUpdate:modelValue":e[12]||(e[12]=a=>t.value.categoryId=a),label:"Category",options:O.value,searchable:"",clearable:"",placeholder:"Select category",error:s.value.categoryId},null,8,["modelValue","options","error"])])])]),l("div",ve,[l("div",pe,[e[25]||(e[25]=l("h2",{class:"text-lg font-medium text-gray-900 mb-6"},"Tasks & Checklist",-1)),e[26]||(e[26]=l("p",{class:"text-sm text-gray-600 mb-4"},"Define the tasks required to complete this work order",-1)),o(q,{modelValue:t.value.tasks,"onUpdate:modelValue":e[13]||(e[13]=a=>t.value.tasks=a),"current-user":c.value,"allow-edit":!0},null,8,["modelValue","current-user"])]),l("div",ge,[e[27]||(e[27]=l("h2",{class:"text-lg font-medium text-gray-900 mb-6"},"Parts & Materials",-1)),e[28]||(e[28]=l("p",{class:"text-sm text-gray-600 mb-4"},"Plan the parts and materials needed for this work order",-1)),o(j,{modelValue:t.value.parts,"onUpdate:modelValue":e[14]||(e[14]=a=>t.value.parts=a),"allow-add":!0,"allow-edit":!0},null,8,["modelValue"])])]),l("div",ce,[e[36]||(e[36]=l("h2",{class:"text-lg font-medium text-gray-900 mb-6"},"Initial Documentation",-1)),e[37]||(e[37]=l("p",{class:"text-sm text-gray-600 mb-4"},"Add any initial notes, photos, or documentation for this work order",-1)),l("div",be,[e[29]||(e[29]=l("h3",{class:"text-md font-medium text-gray-900 mb-4"},"Audio Notes",-1)),o(G,{modelValue:t.value.audioRecordings,"onUpdate:modelValue":e[15]||(e[15]=a=>t.value.audioRecordings=a),"current-user":c.value,"auto-transcribe":!0,"enable-visualization":!0,onRecordingSaved:S},null,8,["modelValue","current-user"])]),l("div",null,[e[35]||(e[35]=l("h3",{class:"text-md font-medium text-gray-900 mb-4"},"File Attachments",-1)),l("div",fe,[e[31]||(e[31]=l("svg",{class:"mx-auto h-12 w-12 text-gray-400",stroke:"currentColor",fill:"none",viewBox:"0 0 48 48"},[l("path",{d:"M28 8H12a4 4 0 00-4 4v20m32-12v8m0 0v8a4 4 0 01-4 4H12a4 4 0 01-4-4v-4m32-4l-3.172-3.172a4 4 0 00-5.656 0L28 28M8 32l9.172-9.172a4 4 0 015.656 0L28 28m0 0l4 4m4-24h8m-4-4v8m-12 4h.02","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),l("div",ye,[l("label",xe,[e[30]||(e[30]=l("span",{class:"mt-2 block text-sm font-medium text-gray-900"}," Drop files here or click to upload ",-1)),l("input",{type:"file",class:"sr-only",multiple:"",onChange:B},null,32)])]),e[32]||(e[32]=l("p",{class:"mt-2 text-xs text-gray-500"}," PNG, JPG, PDF up to 10MB each ",-1))]),t.value.files.length>0?(n(),d("div",ke,[(n(!0),d(E,null,H(t.value.files,(a,w)=>(n(),d("div",{key:w,class:"flex items-center justify-between p-3 bg-gray-50 rounded-lg"},[l("div",we,[e[33]||(e[33]=l("svg",{class:"w-5 h-5 text-gray-400 mr-3",fill:"currentColor",viewBox:"0 0 20 20"},[l("path",{"fill-rule":"evenodd",d:"M4 4a2 2 0 012-2h4.586A2 2 0 0112 2.586L15.414 6A2 2 0 0116 7.414V16a2 2 0 01-2 2H6a2 2 0 01-2-2V4zm2 6a1 1 0 011-1h6a1 1 0 110 2H7a1 1 0 01-1-1zm1 3a1 1 0 100 2h6a1 1 0 100-2H7z","clip-rule":"evenodd"})],-1)),l("span",Ve,V(a.name),1),l("span",he,"("+V(A(a.size))+")",1)]),o(i(b),{variant:"ghost",size:"sm",onClick:Ue=>P(w),class:"text-red-600 hover:text-red-800"},{default:p(()=>e[34]||(e[34]=[y(" Remove ",-1)])),_:2,__:[34]},1032,["onClick"])]))),128))])):z("",!0)])]),l("div",Ie,[o(i(b),{type:"button",variant:"outline",onClick:e[16]||(e[16]=a=>r.$router.push("/work-orders"))},{default:p(()=>e[38]||(e[38]=[y(" Cancel ",-1)])),_:1,__:[38]}),o(i(b),{type:"submit",variant:"primary",disabled:v.value},{default:p(()=>[v.value?(n(),d("span",Ce,"Creating...")):(n(),d("span",Me,"Create Work Order"))]),_:1},8,["disabled"])])],32)])])}}},We=_(De,[["__scopeId","data-v-d8064b6b"]]);export{We as default};