PageSourceSearch

https://demo.swop.su/assets/HistoryPage-mKrhF204.js

js swop.su collected 2026-10-09 00:00:12 UTC 9,269 bytes, 1 lines download raw bytes

1import{a,j as e}from"./vendor-react-DM_sQ5hc.js";import{N as ie}from"./NavbarHeader-PvlVwzoY.js";import{F as le}from"./Footer-CrZ3lXNn.js";import{E as oe}from"./EquipmentHoverList-DByEvXYM.js";import{h as re,$ as ce,D as G}from"./index-CZztf0aN.js";import{g as de,c as C,u as z}from"./urlParams-DKC2qyyE.js";/* empty css                         */import{u as pe,a as he}from"./vendor-router-CvjK0qh7.js";import{f as me,u as q,w as ue,a3 as j,a4 as g,V as f,F as I,H as T,a as b,b as D,R as xe,aR as je,D as ge,a1 as fe,g as P,h as A,S as K,T as l,l as B,ap as be,aq as Se,aO as ve,a0 as ye,B as E,aK as Ce,aX as ze,A as _e,v as ke,aM as we,aN as Fe,a5 as qe,a6 as Ie,a7 as J,a8 as h,a9 as Te,aa as m,y as De}from"./vendor-chakra-DZDzh2OW.js";import"./vendor-framer-DC02EMZq.js";import"./UserAvatar-B4fPBtsi.js";import"./vendor-emotion-dEMDqnb3.js";import"./BugReportButton-CCuiGF3m.js";/* empty css                     */import"./placeholders-Dqo6e40R.js";import"./vendor-react-dom-DMm23ssT.js";import"./vendor-axios-BfzdOZtb.js";import"./vendor-socket-DlddAlD3.js";import"./vendor-forms-DB1PHeCe.js";const Ye=()=>{var X;const d=pe(),r=he(),M=me(),L=q("gray.700","gray.200"),_=q("gray.600","gray.400"),Q=q("gray.50","whiteAlpha.50"),[o,Y]=a.useState(null),[Z,R]=a.useState(!0),[H,N]=a.useState(null),[S,$]=a.useState(null),[p,u]=a.useState({q:"",date_from:"",date_to:"",type:"",page:1,pageSize:25}),[c,x]=a.useState({...p});a.useEffect(()=>{const s=de(r.search),t={q:s.q||"",date_from:s.date_from||"",date_to:s.date_to||"",type:s.type||"",page:parseInt(s.page)||1,pageSize:parseInt(s.pageSize)||25};u(t),x(t)},[r.search]);const V=a.useCallback(async(s={})=>{const{silent:t=!1}=s;try{t||R(!0),N(null);const i=C(p),n=await re.get("/api/v1/audit/logs",{params:i,withCredentials:!0});if(n.data.success)Y(n.data.data);else throw new Error(n.data.message||"Ошибка загрузки данных")}catch{N("Не удалось загрузить историю действий")}finally{t||R(!1)}},[p]);a.useEffect(()=>{V()},[V]);const v=a.useCallback((s,t)=>{x(i=>({...i,[s]:t}))},[]),W=a.useCallback(()=>{if(c.date_from&&c.date_to){const t=new Date(c.date_from),i=new Date(c.date_to);if(t>i){M({title:"Ошибка валидации",description:"Дата 'до' не может быть раньше даты 'с'",status:"warning",duration:3e3,isClosable:!0});return}}const s={...c,page:1};u(s),z(C(s),d,r.pathname)},[c,d,r.pathname,M]),k=a.useCallback(()=>{const s={q:"",date_from:"",date_to:"",type:"",page:1,pageSize:25};u(s),x(s),z({},d,r.pathname)},[d,r.pathname]),w=a.useCallback(s=>{const t={...p,page:s};u(t),x(t),z(C(t),d,r.pathname)},[p,d,r.pathname]),O=a.useCallback(s=>{const t={...p,pageSize:parseInt(s),page:1};u(t),x(t),z(C(t),d,r.pathname)},[p,d,r.pathname]),ee=a.useCallback(s=>{if(!s)return{local:"—",utc:"—"};const t=new Date(s),i=ce(s),n=t.toISOString();return{local:i,utc:n}},[]),U=a.useCallback((s,t)=>{t&&typeof t.stopPropagation=="function"&&t.stopPropagation(),$(S===s?null:s)},[S]),se=a.useCallback(s=>{let t="gray",i=s;const n=String(s).toLowerCase();return n.includes("приёмка")||n.includes("receipt")||n.includes("с ремонта")?t="green":n.includes("отправка")||n.includes("send")||n.includes("в ремонт")?t="blue":n.includes("transfer")?t="purple":n.includes("maintenance")&&(t="orange"),e.jsx(ue,{colorScheme:t,variant:"subtle",children:i})},[]),te=a.useMemo(()=>e.jsx(j,{mb:6,className:"pt-fade-up pt-stagger-3",children:e.jsx(g,{children:e.jsxs(f,{spacing:4,align:"stretch",children:[e.jsxs(I,{justify:"space-between",align:"center",children:[e.jsx(T,{size:"md",color:L,children:"Фильтры"}),e.jsxs(b,{spacing:2,children:[e.jsx(D,{size:"sm",variant:"outline",leftIcon:e.jsx(xe,{}),onClick:k,children:"Сброс"}),e.jsx(D,{size:"sm",colorScheme:"blue",leftIcon:e.jsx(je,{}),onClick:W,children:"Применить"})]})]}),e.jsx(ge,{}),e.jsxs(fe,{columns:{base:1,md:2,lg:4},spacing:4,children:[e.jsxs(P,{children:[e.jsx(A,{fontSize:"sm",children:"Поиск"}),e.jsx(G,{value:c.q,onChange:s=>v("q",s),size:"sm"})]}),e.jsxs(P,{children:[e.jsx(A,{fontSize:"sm",children:"Дата по"}),e.jsx(G,{value:c.date_to,onChange:s=>v("date_to",s),size:"sm"})]}),e.jsxs(P,{children:[e.jsx(A,{fontSize:"sm",children:"Категория"}
1),e.jsxs(K,{value:c.type,onChange:s=>v("type",s.target.value),size:"sm",children:[e.jsx("option",{value:"",children:"Все категории"}),e.jsx("option",{value:"movement",children:"Перемещения"}),e.jsx("option",{value:"maintenance",children:"Обслуживание"}),e.jsx("option",{value:"logs",children:"Системные логи"})]})]})]})]})})}),[c,k,W,v]),ne=a.useMemo(()=>{if(!(o!=null&&o.pagination))return null;const{page:s,pageSize:t,totalPages:i,totalItems:n}=o.pagination,y=(s-1)*t+1,F=Math.min(s*t,n);return e.jsx(j,{children:e.jsx(g,{children:e.jsxs(I,{justify:"space-between",align:"center",wrap:"wrap",gap:4,children:[e.jsxs(b,{spacing:2,children:[e.jsxs(l,{fontSize:"sm",color:_,children:["Показано ",y,"-",F," из ",n]}),e.jsxs(K,{size:"sm",value:t,onChange:ae=>O(ae.target.value),w:"auto",children:[e.jsx("option",{value:"10",children:"10"}),e.jsx("option",{value:"25",children:"25"}),e.jsx("option",{value:"50",children:"50"}),e.jsx("option",{value:"100",children:"100"})]}),e.jsx(l,{fontSize:"sm",color:_,children:"на странице"})]}),e.jsxs(b,{spacing:1,children:[e.jsx(B,{size:"sm",icon:e.jsx(be,{}),onClick:()=>w(s-1),isDisabled:s<=1,"aria-label":"Предыдущая страница"}),e.jsxs(l,{fontSize:"sm",px:3,children:["Страница ",s," из ",i]}),e.jsx(B,{size:"sm",icon:e.jsx(Se,{}),onClick:()=>w(s+1),isDisabled:s>=i,"aria-label":"Следующая страница"})]})]})})})},[o==null?void 0:o.pagination,w,O]);return e.jsxs("div",{children:[e.jsx(ie,{}),e.jsx(ve,{maxW:"container.xl",py:6,children:e.jsxs(f,{spacing:6,align:"stretch",children:[e.jsx(I,{justify:"space-between",align:"center",className:"pt-fade-up pt-stagger-1",children:e.jsxs(b,{spacing:4,children:[e.jsx(B,{icon:e.jsx(ye,{}),onClick:()=>d(-1),variant:"outline","aria-label":"На главную"}),e.jsxs(E,{children:[e.jsx(T,{size:"lg",color:L,children:"История действий"}),e.jsx(l,{color:_,children:"Все операции в системе (перемещения, обслуживание, логи)"})]})]})}),te,Z?e.jsx(j,{children:e.jsx(g,{children:e.jsxs(f,{spacing:4,children:[e.jsx(Ce,{height:"20px"}),e.jsx(ze,{noOfLines:10,spacing:"4"})]})})}):H?e.jsxs(_e,{status:"error",borderRadius:"md",children:[e.jsx(ke,{}),e.jsx(we,{children:"Ошибка загрузки!"}),e.jsx(Fe,{children:H})]}):((X=o==null?void 0:o.items)==null?void 0:X.length)>0?e.jsxs(e.Fragment,{children:[e.jsx(j,{children:e.jsx(g,{p:0,children:e.jsx(E,{overflowX:"auto",children:e.jsxs(qe,{variant:"simple",size:"sm",children:[e.jsx(Ie,{bg:Q,children:e.jsxs(J,{children:[e.jsx(h,{children:"Номер / ID"}),e.jsx(h,{children:"Дата"}),e.jsx(h,{children:"Тип"}),e.jsx(h,{children:"Оборудование"}),e.jsx(h,{children:"Место / Назначение"}),e.jsx(h,{children:"Комментарий"}),e.jsx(h,{children:"Выполнил"})]})}),e.jsx(Te,{children:o.items.map(s=>{var i,n;const t=ee(s.operation_date);return e.jsxs(J,{_hover:{bg:"gray.50"},children:[e.jsx(m,{children:e.jsxs(b,{spacing:2,children:[e.jsx(l,{fontSize:"sm",fontWeight:"medium",color:"blue.600",children:s.movement_number||`#${s.id}`}),e.jsx(l,{fontSize:"xs",color:"gray.400",children:s.unified_type})]})}),e.jsx(m,{children:e.jsx(De,{label:`UTC: ${t.utc}`,placement:"top",children:e.jsx(l,{fontSize:"sm",children:t.local})})}),e.jsx(m,{children:se(s.movement_type)}),e.jsx(m,{children:e.jsx(oe,{equipmentList:s.equipment_list||[],movementId:s.id,isPinned:S===s.id,onPin:(y,F)=>U(s.id,F),trigger:e.jsx(E,{"data-popover-trigger":!0,onClick:y=>U(s.id,y),cursor:"pointer",_hover:{bg:"blue.50"},p:1,borderRadius:"sm",transition:"background-color 0.2s",children:e.jsxs(f,{align:"start",spacing:1,children:[e.jsx(l,{fontWeight:"medium",fontSize:"sm",color:S===s.id?"blue.600":"inherit",children:s.equipment_list&&s.equipment_list.length>0?s.equipment_list.length===1?s.equipment_list[0].name:`${s.equipment_list.length} единиц`:"—"}),s.equipment_list&&s.equipment_list.length>0&&s.equipment_list[0].number&&e.jsxs(l,{fontSize:"xs",color:"gray.500",fontFamily:"mono",children:["#",s.equipment_list[0].number]})]})})})}),e.jsx(m,{children:e.jsx(l,{fontSize:"sm",children:((i=s.destination)==null?void 0:i.name)||"—"})}),e.jsx(m,{children:e.jsx(l,{fontSize:"sm",children:s.comment||"—"})}),e.jsx(m,{children:e.jsx(l,{fontSize:"sm",children:((n=s.executor)==null?void 0:n.displayName)||"—"})})]},`${s.unified_type}-${s.id}`)})})]})})})}),ne]}):e.jsx(j,{children:e.jsx(g,{textAlign:"center",py:12,children:e.jsxs(f,{spacing:4,children:[e.jsx(l,{fontSize:"6xl",children:"📋"}),e.jsx(T,{size:"md",color:"gray.500",children:"Нет данных"}),e.jsx(l,{color:"gray.400",children:"По заданным фильтрам история не найдена"}),e.jsx(D,{colorScheme:"blue",variant:"outline",onClick:k,children:"Сбросить фильтры"})]})})})]})}),e.jsx(le,{})]})};export{Ye 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.