1 line
25 KiB
JavaScript
1 line
25 KiB
JavaScript
import{At as e,Cn as t,Ct as n,Gt as r,Jt as i,Ot as a,St as o,Tt as s,Vn as c,Xt as l,gn as ee,gt as u,kt as d,sn as f,vn as p,wt as m,xt as h}from"./client-DrrW410h.js";import{o as te}from"./utils-B8DiXMbh.js";import{i as g,r as ne}from"./ui-CXICC9ah.js";import{c as _,l as v,o as y,s as b}from"./Suffix-CV0EsaP5.js";import{t as x}from"./Modal-CUD1N8ld.js";import{n as S,t as re}from"./DatePicker-UeEZr2Ml.js";import{t as C}from"./FormItem-wq05wphK.js";import{t as w}from"./Button-BZxcJJGv.js";import{t as T}from"./Select-D0BL7DpH.js";import{t as E}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{t as ie}from"./ruRU-GUVPj0Y9.js";import{t as D}from"./Input-Bg8PolMg.js";import{t as O}from"./Alert-CewvQG_z.js";import{t as k}from"./Card-B6dtDIKO.js";import{t as A}from"./Flex-YVOjVK0A.js";import{t as j}from"./Spin-D1uP99th.js";import{D as ae,i as oe,mt as M}from"./index-cNEa5D1b.js";import{t as se}from"./HeaderMenu-BvkSHjS4.js";function N(e,t){if(e.one!==void 0&&t===1)return e.one;let n=t%10,r=t%100;return n===1&&r!==11?e.singularNominative.replace(`{{count}}`,String(t)):n>=2&&n<=4&&(r<10||r>20)?e.singularGenitive.replace(`{{count}}`,String(t)):e.pluralGenitive.replace(`{{count}}`,String(t))}function P(e){return(t,n)=>n?.addSuffix?n.comparison&&n.comparison>0?e.future?N(e.future,t):`через `+N(e.regular,t):e.past?N(e.past,t):N(e.regular,t)+` назад`:N(e.regular,t)}var F={lessThanXSeconds:P({regular:{one:`меньше секунды`,singularNominative:`меньше {{count}} секунды`,singularGenitive:`меньше {{count}} секунд`,pluralGenitive:`меньше {{count}} секунд`},future:{one:`меньше, чем через секунду`,singularNominative:`меньше, чем через {{count}} секунду`,singularGenitive:`меньше, чем через {{count}} секунды`,pluralGenitive:`меньше, чем через {{count}} секунд`}}),xSeconds:P({regular:{singularNominative:`{{count}} секунда`,singularGenitive:`{{count}} секунды`,pluralGenitive:`{{count}} секунд`},past:{singularNominative:`{{count}} секунду назад`,singularGenitive:`{{count}} секунды назад`,pluralGenitive:`{{count}} секунд назад`},future:{singularNominative:`через {{count}} секунду`,singularGenitive:`через {{count}} секунды`,pluralGenitive:`через {{count}} секунд`}}),halfAMinute:(e,t)=>t?.addSuffix?t.comparison&&t.comparison>0?`через полминуты`:`полминуты назад`:`полминуты`,lessThanXMinutes:P({regular:{one:`меньше минуты`,singularNominative:`меньше {{count}} минуты`,singularGenitive:`меньше {{count}} минут`,pluralGenitive:`меньше {{count}} минут`},future:{one:`меньше, чем через минуту`,singularNominative:`меньше, чем через {{count}} минуту`,singularGenitive:`меньше, чем через {{count}} минуты`,pluralGenitive:`меньше, чем через {{count}} минут`}}),xMinutes:P({regular:{singularNominative:`{{count}} минута`,singularGenitive:`{{count}} минуты`,pluralGenitive:`{{count}} минут`},past:{singularNominative:`{{count}} минуту назад`,singularGenitive:`{{count}} минуты назад`,pluralGenitive:`{{count}} минут назад`},future:{singularNominative:`через {{count}} минуту`,singularGenitive:`через {{count}} минуты`,pluralGenitive:`через {{count}} минут`}}),aboutXHours:P({regular:{singularNominative:`около {{count}} часа`,singularGenitive:`около {{count}} часов`,pluralGenitive:`около {{count}} часов`},future:{singularNominative:`приблизительно через {{count}} час`,singularGenitive:`приблизительно через {{count}} часа`,pluralGenitive:`приблизительно через {{count}} часов`}}),xHours:P({regular:{singularNominative:`{{count}} час`,singularGenitive:`{{count}} часа`,pluralGenitive:`{{count}} часов`}}),xDays:P({regular:{singularNominative:`{{count}} день`,singularGenitive:`{{count}} дня`,pluralGenitive:`{{count}} дней`}}),aboutXWeeks:P({regular:{singularNominative:`около {{count}} недели`,singularGenitive:`около {{count}} недель`,pluralGenitive:`около {{count}} недель`},future:{singularNominative:`приблизительно через {{count}} неделю`,singularGenitive:`приблизительно через {{count}} недели`,pluralGenitive:`приблизительно через {{count}} недель`}}),xWeeks:P({regular:{singularNominative:`{{count}} неделя`,singularGenitive:`{{count}} недели`,pluralGenitive:`{{count}} недель`}}),aboutXMonths:P({regular:{singularNominative:`около {{count}} месяца`,singularGenitive:`около {{count}} месяцев`,pluralGenitive:`около {{count}} месяцев`},future:{singularNominative:`приблизительно через {{count}} месяц`,singularGenitive:`приблизительно через {{count}} месяца`,pluralGenitive:`приблизительно через {{count}} месяцев`}}),xMonths:P({regular:{singularNominative:`{{count}} месяц`,singularGenitive:`{{count}} месяца`,pluralGenitive:`{{count}} месяцев`}}),aboutXYears:P({regular:{singularNominative:`около {{count}} года`,singularGenitive:`около {{count}} лет`,pluralGenitive:`около {{count}} лет`},future:{singularNominative:`приблизительно через {{count}} год`,singularGenitive:`приблизительно через {{count}} года`,pluralGenitive:`приблизительно через {{count}} лет`}}),xYears:P({regular:{singularNominative:`{{count}} год`,singularGenitive:`{{count}} года`,pluralGenitive:`{{count}} лет`}}),overXYears:P({regular:{singularNominative:`больше {{count}} года`,singularGenitive:`больше {{count}} лет`,pluralGenitive:`больше {{count}} лет`},future:{singularNominative:`больше, чем через {{count}} год`,singularGenitive:`больше, чем через {{count}} года`,pluralGenitive:`больше, чем через {{count}} лет`}}),almostXYears:P({regular:{singularNominative:`почти {{count}} год`,singularGenitive:`почти {{count}} года`,pluralGenitive:`почти {{count}} лет`},future:{singularNominative:`почти через {{count}} год`,singularGenitive:`почти через {{count}} года`,pluralGenitive:`почти через {{count}} лет`}})},I=(e,t,n)=>F[e](t,n),L={date:v({formats:{full:`EEEE, d MMMM y 'г.'`,long:`d MMMM y 'г.'`,medium:`d MMM y 'г.'`,short:`dd.MM.y`},defaultWidth:`full`}),time:v({formats:{full:`H:mm:ss zzzz`,long:`H:mm:ss z`,medium:`H:mm:ss`,short:`H:mm`},defaultWidth:`full`}),dateTime:v({formats:{any:`{{date}}, {{time}}`},defaultWidth:`any`})},R=[`воскресенье`,`понедельник`,`вторник`,`среду`,`четверг`,`пятницу`,`субботу`];function z(e){let t=R[e];switch(e){case 0:return`'в прошлое `+t+` в' p`;case 1:case 2:case 4:return`'в прошлый `+t+` в' p`;case 3:case 5:case 6:return`'в прошлую `+t+` в' p`}}function B(e){let t=R[e];return e===2?`'во `+t+` в' p`:`'в `+t+` в' p`}function V(e){let t=R[e];switch(e){case 0:return`'в следующее `+t+` в' p`;case 1:case 2:case 4:return`'в следующий `+t+` в' p`;case 3:case 5:case 6:return`'в следующую `+t+` в' p`}}var H={lastWeek:(e,t,n)=>{let r=e.getDay();return S(e,t,n)?B(r):z(r)},yesterday:`'вчера в' p`,today:`'сегодня в' p`,tomorrow:`'завтра в' p`,nextWeek:(e,t,n)=>{let r=e.getDay();return S(e,t,n)?B(r):V(r)},other:`P`},ce={name:`ru-RU`,locale:{code:`ru`,formatDistance:I,formatLong:L,formatRelative:(e,t,n,r)=>{let i=H[e];return typeof i==`function`?i(t,n,r):i},localize:{ordinalNumber:(e,t)=>{let n=Number(e),r=t?.unit,i;return i=r===`date`?`-е`:r===`week`||r===`minute`||r===`second`?`-я`:`-й`,n+i},era:_({values:{narrow:[`до н.э.`,`н.э.`],abbreviated:[`до н. э.`,`н. э.`],wide:[`до нашей эры`,`нашей эры`]},defaultWidth:`wide`}),quarter:_({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`1-й кв.`,`2-й кв.`,`3-й кв.`,`4-й кв.`],wide:[`1-й квартал`,`2-й квартал`,`3-й квартал`,`4-й квартал`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:_({values:{narrow:[`Я`,`Ф`,`М`,`А`,`М`,`И`,`И`,`А`,`С`,`О`,`Н`,`Д`],abbreviated:[`янв.`,`фев.`,`март`,`апр.`,`май`,`июнь`,`июль`,`авг.`,`сент.`,`окт.`,`нояб.`,`дек.`],wide:[`январь`,`февраль`,`март`,`апрель`,`май`,`июнь`,`июль`,`август`,`сентябрь`,`октябрь`,`ноябрь`,`декабрь`]},defaultWidth:`wide`,formattingValues:{narrow:[`Я`,`Ф`,`М`,`А`,`М`,`И`,`И`,`А`,`С`,`О`,`Н`,`Д`],abbreviated:[`янв.`,`фев.`,`мар.`,`апр.`,`мая`,`июн.`,`июл.`,`авг.`,`сент.`,`окт.`,`нояб.`,`дек.`],wide:[`января`,`февраля`,`марта`,`апреля`,`мая`,`июня`,`июля`,`августа`,`сентября`,`октября`,`ноября`,`декабря`]},defaultFormattingWidth:`wide`}),day:_({values:{narrow:[`В`,`П`,`В`,`С`,`Ч`,`П`,`С`],short:[`вс`,`пн`,`вт`,`ср`,`чт`,`пт`,`сб`],abbreviated:[`вск`,`пнд`,`втр`,`срд`,`чтв`,`птн`,`суб`],wide:[`воскресенье`,`понедельник`,`вторник`,`среда`,`четверг`,`пятница`,`суббота`]},defaultWidth:`wide`}),dayPeriod:_({values:{narrow:{am:`ДП`,pm:`ПП`,midnight:`полн.`,noon:`полд.`,morning:`утро`,afternoon:`день`,evening:`веч.`,night:`ночь`},abbreviated:{am:`ДП`,pm:`ПП`,midnight:`полн.`,noon:`полд.`,morning:`утро`,afternoon:`день`,evening:`веч.`,night:`ночь`},wide:{am:`ДП`,pm:`ПП`,midnight:`полночь`,noon:`полдень`,morning:`утро`,afternoon:`день`,evening:`вечер`,night:`ночь`}},defaultWidth:`any`,formattingValues:{narrow:{am:`ДП`,pm:`ПП`,midnight:`полн.`,noon:`полд.`,morning:`утра`,afternoon:`дня`,evening:`веч.`,night:`ночи`},abbreviated:{am:`ДП`,pm:`ПП`,midnight:`полн.`,noon:`полд.`,morning:`утра`,afternoon:`дня`,evening:`веч.`,night:`ночи`},wide:{am:`ДП`,pm:`ПП`,midnight:`полночь`,noon:`полдень`,morning:`утра`,afternoon:`дня`,evening:`вечера`,night:`ночи`}},defaultFormattingWidth:`wide`})},match:{ordinalNumber:y({matchPattern:/^(\d+)(-?(е|я|й|ое|ье|ая|ья|ый|ой|ий|ый))?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:b({matchPatterns:{narrow:/^((до )?н\.?\s?э\.?)/i,abbreviated:/^((до )?н\.?\s?э\.?)/i,wide:/^(до нашей эры|нашей эры|наша эра)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^д/i,/^н/i]},defaultParseWidth:`any`}),quarter:b({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^[1234](-?[ыои]?й?)? кв.?/i,wide:/^[1234](-?[ыои]?й?)? квартал/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:b({matchPatterns:{narrow:/^[яфмаисонд]/i,abbreviated:/^(янв|фев|март?|апр|ма[йя]|июн[ья]?|июл[ья]?|авг|сент?|окт|нояб?|дек)\.?/i,wide:/^(январ[ья]|феврал[ья]|марта?|апрел[ья]|ма[йя]|июн[ья]|июл[ья]|августа?|сентябр[ья]|октябр[ья]|октябр[ья]|ноябр[ья]|декабр[ья])/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^я/i,/^ф/i,/^м/i,/^а/i,/^м/i,/^и/i,/^и/i,/^а/i,/^с/i,/^о/i,/^н/i,/^я/i],any:[/^я/i,/^ф/i,/^мар/i,/^ап/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^ав/i,/^с/i,/^о/i,/^н/i,/^д/i]},defaultParseWidth:`any`}),day:b({matchPatterns:{narrow:/^[впсч]/i,short:/^(вс|во|пн|по|вт|ср|чт|че|пт|пя|сб|су)\.?/i,abbreviated:/^(вск|вос|пнд|пон|втр|вто|срд|сре|чтв|чет|птн|пят|суб).?/i,wide:/^(воскресень[ея]|понедельника?|вторника?|сред[аы]|четверга?|пятниц[аы]|суббот[аы])/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^в/i,/^п/i,/^в/i,/^с/i,/^ч/i,/^п/i,/^с/i],any:[/^в[ос]/i,/^п[он]/i,/^в/i,/^ср/i,/^ч/i,/^п[ят]/i,/^с[уб]/i]},defaultParseWidth:`any`}),dayPeriod:b({matchPatterns:{narrow:/^([дп]п|полн\.?|полд\.?|утр[оа]|день|дня|веч\.?|ноч[ьи])/i,abbreviated:/^([дп]п|полн\.?|полд\.?|утр[оа]|день|дня|веч\.?|ноч[ьи])/i,wide:/^([дп]п|полночь|полдень|утр[оа]|день|дня|вечера?|ноч[ьи])/i},defaultMatchWidth:`wide`,parsePatterns:{any:{am:/^дп/i,pm:/^пп/i,midnight:/^полн/i,noon:/^полд/i,morning:/^у/i,afternoon:/^д[ен]/i,evening:/^в/i,night:/^н/i}},defaultParseWidth:`any`})},options:{weekStartsOn:1,firstWeekContainsDate:1}}};function le(e,t=new Date){let n=`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`;return e.status!==`done`&&!!e.dueDate&&e.dueDate<n}var ue={class:`center-block-custom`},de={class:`width1200`},fe={class:`board`},pe=[`aria-label`,`onDrop`],me={class:`task-id`},he={class:`task-title`},ge={class:`server-description`},U=E(e({__name:`TasksPage`,setup(e){let _=oe(),v=ne(),y=[{label:`Новая`,value:`new`},{label:`В работе`,value:`in_progress`},{label:`На проверке`,value:`review`},{label:`Готово`,value:`done`}],b=p([]),S=p([]),E=p(!1),N=p(!0),P=p(!1),F=p(``),I=p(`all`),L=p(!1),R=p(),z=p(),B=p(null),V=p(),H=ee({title:``,description:``,status:`new`,assigneeID:null,dueDate:null}),U=h(()=>S.value.map(e=>({label:e.name||`#${e.ID}`,value:e.ID}))),W=h(()=>[{label:`Все ответственные`,value:`all`},{label:`Без ответственного`,value:0},...U.value,...b.value.filter(e=>e.assigneeID&&!S.value.some(t=>t.ID===e.assigneeID)).filter((e,t,n)=>n.findIndex(t=>t.assigneeID===e.assigneeID)===t).map(e=>({label:e.assigneeName||`#${e.assigneeID}`,value:e.assigneeID}))]),_e=h(()=>{if(!H.assigneeID||U.value.some(e=>e.value===H.assigneeID))return U.value;let e=b.value.find(e=>e.ID===R.value);return[...U.value,{label:`${e?.assigneeName||`#${H.assigneeID}`} (роль отозвана)`,value:H.assigneeID,disabled:!0}]}),ve=h(()=>y.map(e=>({...e,tasks:b.value.filter(t=>t.status===e.value&&(I.value===`all`||(t.assigneeID||0)===I.value))}))),G=h(()=>b.value.find(e=>e.ID===R.value)),K=h(()=>H.title.trim()?[...H.title.trim()].length>255?`Не более 255 символов`:void 0:`Введите название задачи`),q=h(()=>[...H.description].length>1e4?`Не более 10 000 символов`:void 0),J=h(()=>R.value!==void 0&&G.value!==void 0&&G.value.version!==z.value),Y=h(()=>R.value!==void 0&&!G.value);function ye(e){return y.find(t=>t.value===e)?.label||e}function X(e){return e?e.split(`-`).reverse().join(`.`):`Без срока`}async function Z(){if(!(N.value||P.value)){N.value=!0,F.value=``;try{let e=await _.GetPermissions({});if(E.value=e.permissions?.includes(`tasks_page`)||!1,!E.value)return;let[t,n]=await Promise.all([_.GetTasks({}),_.GetTaskAssignees({})]);b.value=t.tasks||[],S.value=n.assignees||[]}catch(e){F.value=e instanceof Error&&e.message===`unauthorized`?`Войдите под учётной записью разработчика или администратора`:e instanceof Error?e.message:`Не удалось загрузить задачи`,v.error(F.value)}finally{N.value=!1}}}function Q(e){P.value||(R.value=e?.ID,z.value=e?.version,Object.assign(H,{title:e?.title||``,description:e?.description||``,status:e?.status||`new`,assigneeID:e?.assigneeID??null,dueDate:e?.dueDate||null}),L.value=!0)}async function $(){if(P.value||N.value||J.value||Y.value)return;let e=H.title.trim();if(!e||[...e].length>255||[...H.description].length>1e4){v.error(`Введите название до 255 символов и описание до 10 000 символов`);return}P.value=!0;try{let t={title:e,description:H.description,status:H.status,assigneeID:H.assigneeID??void 0,dueDate:H.dueDate||``},n=R.value===void 0?await _.CreateTask(t):await _.UpdateTask({...t,ID:R.value,version:z.value});if(n.task){let e=n.task;b.value=R.value===void 0?[e,...b.value]:b.value.map(t=>t.ID===e.ID?e:t)}L.value=!1,v.success(`Задача сохранена`)}catch(e){v.error(e instanceof Error?e.message:`Не удалось сохранить задачу`)}finally{P.value=!1}await Z()}function be(e,t){if(P.value||N.value||!e.dataTransfer){e.preventDefault();return}V.value=t.ID,e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,String(t.ID))}async function xe(e){let t=b.value.find(e=>e.ID===V.value);if(V.value=void 0,!(!t||t.status===e||P.value||N.value)){P.value=!0;try{let n=await _.SetTaskStatus({ID:t.ID,status:e,version:t.version});if(n.task){let e=n.task;b.value=b.value.map(n=>n.ID===t.ID?e:n)}v.success(`Статус изменён`)}catch(e){v.error(e instanceof Error?e.message:`Не удалось изменить статус`)}finally{P.value=!1}await Z()}}async function Se(){if(!(!B.value||P.value||N.value)){P.value=!0;try{await _.DeleteTask({ID:B.value.ID,version:B.value.version}),b.value=b.value.filter(e=>e.ID!==B.value?.ID),B.value=null,L.value=!1,v.success(`Задача удалена`)}catch(e){v.error(e instanceof Error?e.message:`Не удалось удалить задачу`),B.value=null}finally{P.value=!1}await Z()}}function Ce(){z.value=G.value?.version}return r(()=>{N.value=!1,Z()}),(e,r)=>(i(),n(t(ae),{locale:t(ie),"date-locale":t(ce)},{default:f(()=>[o(`div`,ue,[o(`div`,de,[d(t(A),{class:`toolbar`,justify:`space-between`,align:`center`},{default:f(()=>[r[16]||=o(`h1`,null,`Задачи`,-1),d(t(A),null,{default:f(()=>[d(t(w),{loading:N.value,disabled:P.value,onClick:Z},{default:f(()=>[...r[14]||=[a(`Обновить`,-1)]]),_:1},8,[`loading`,`disabled`]),E.value?(i(),n(t(w),{key:0,type:`primary`,disabled:P.value||N.value,onClick:r[0]||=e=>Q()},{default:f(()=>[...r[15]||=[a(` Создать задачу `,-1)]]),_:1},8,[`disabled`])):m(``,!0)]),_:1})]),_:1}),F.value?(i(),n(t(O),{key:0,type:`error`,class:`notice`},{default:f(()=>[a(c(F.value),1)]),_:1})):m(``,!0),N.value&&!E.value?(i(),n(t(j),{key:1,class:`initial-loading`})):!E.value&&!F.value?(i(),n(t(O),{key:2,type:`warning`},{default:f(()=>[...r[17]||=[a(` Страница доступна разработчикам и администратору. `,-1)]]),_:1})):m(``,!0),E.value?(i(),s(u,{key:3},[d(t(T),{value:I.value,"onUpdate:value":r[1]||=e=>I.value=e,options:W.value,"aria-label":`Фильтр по ответственному`,class:`assignee-filter`},null,8,[`value`,`options`]),d(t(j),{show:N.value||P.value},{default:f(()=>[o(`div`,fe,[(i(!0),s(u,null,l(ve.value,e=>(i(),s(`section`,{key:e.value,class:`column`,"aria-label":e.label,onDragover:r[3]||=M(()=>{},[`prevent`]),onDrop:M(t=>xe(e.value),[`prevent`])},[d(t(A),{justify:`space-between`,align:`center`,class:`column-heading`},{default:f(()=>[o(`h2`,null,c(e.label),1),d(t(g),{size:`small`},{default:f(()=>[a(c(e.tasks.length),1)]),_:2},1024)]),_:2},1024),e.tasks.length?m(``,!0):(i(),n(t(te),{key:0,description:`Нет задач`,class:`empty-column`})),(i(!0),s(u,null,l(e.tasks,e=>(i(),n(t(k),{key:e.ID,class:`task-card`,size:`small`,draggable:!P.value&&!N.value,onDragstart:t=>be(t,e),onDragend:r[2]||=e=>V.value=void 0},{default:f(()=>[o(`div`,me,`#`+c(e.ID),1),o(`h3`,he,c(e.title),1),o(`p`,null,c(e.assigneeName||`Без ответственного`),1),d(t(A),{align:`center`,class:`task-due`},{default:f(()=>[o(`span`,null,c(X(e.dueDate)),1),t(le)(e)?(i(),n(t(g),{key:0,type:`error`,size:`small`},{default:f(()=>[...r[18]||=[a(`Просрочена`,-1)]]),_:1})):m(``,!0)]),_:2},1024),d(t(w),{size:`small`,disabled:P.value||N.value,onClick:t=>Q(e)},{default:f(()=>[...r[19]||=[a(` Открыть задачу `,-1)]]),_:1},8,[`disabled`,`onClick`])]),_:2},1032,[`draggable`,`onDragstart`]))),128))],40,pe))),128))])]),_:1},8,[`show`])],64)):m(``,!0)])]),d(se,{active:`tasks`}),d(t(x),{show:L.value,"onUpdate:show":r[11]||=e=>L.value=e,"mask-closable":!P.value,"close-on-esc":!P.value},{default:f(()=>[d(t(k),{class:`task-modal`,title:R.value?`Задача #${R.value}`:`Новая задача`,role:`dialog`,"aria-modal":`true`},{default:f(()=>[Y.value?(i(),n(t(O),{key:0,type:`warning`,class:`notice`},{default:f(()=>[...r[20]||=[a(` Задача удалена другим пользователем. Черновик сохранён в этой форме. `,-1)]]),_:1})):m(``,!0),J.value&&G.value?(i(),n(t(O),{key:1,type:`warning`,class:`notice`},{default:f(()=>[r[22]||=a(` Задача изменена другим пользователем. Ваш черновик сохранён. Актуальные данные: `,-1),o(`p`,null,c(G.value.title)+` — `+c(ye(G.value.status)),1),o(`p`,null,c(G.value.assigneeName||`Без ответственного`)+` · `+c(X(G.value.dueDate)),1),o(`p`,ge,c(G.value.description||`Без описания`),1),d(t(w),{disabled:N.value||P.value,onClick:Ce},{default:f(()=>[...r[21]||=[a(` Продолжить с моим черновиком `,-1)]]),_:1},8,[`disabled`])]),_:1})):m(``,!0),d(t(C),{label:`Название *`,"label-for":`task-title`,feedback:K.value,"validation-status":K.value?`error`:void 0},{default:f(()=>[d(t(D),{"input-props":{id:`task-title`},value:H.title,"onUpdate:value":r[4]||=e=>H.title=e,disabled:P.value,placeholder:`Название задачи`},null,8,[`value`,`disabled`])]),_:1},8,[`feedback`,`validation-status`]),d(t(C),{label:`Описание`,"label-for":`task-description`,feedback:q.value,"validation-status":q.value?`error`:void 0},{default:f(()=>[d(t(D),{"input-props":{id:`task-description`},value:H.description,"onUpdate:value":r[5]||=e=>H.description=e,type:`textarea`,disabled:P.value,placeholder:`Что нужно сделать`,autosize:{minRows:3,maxRows:10}},null,8,[`value`,`disabled`])]),_:1},8,[`feedback`,`validation-status`]),d(t(C),{label:`Статус`,"label-for":`task-status`},{default:f(()=>[d(t(T),{"input-props":{id:`task-status`,"aria-label":`Статус`},filterable:``,value:H.status,"onUpdate:value":r[6]||=e=>H.status=e,options:y,disabled:P.value},null,8,[`value`,`disabled`])]),_:1}),d(t(C),{label:`Ответственный`,"label-for":`task-assignee`},{default:f(()=>[d(t(T),{"input-props":{id:`task-assignee`,"aria-label":`Ответственный`},value:H.assigneeID,"onUpdate:value":r[7]||=e=>H.assigneeID=e,options:_e.value,disabled:P.value,placeholder:`Без ответственного`,clearable:``,filterable:``},null,8,[`value`,`options`,`disabled`])]),_:1}),d(t(C),{label:`Срок выполнения`,"label-for":`task-due-date`},{default:f(()=>[d(t(re),{id:`task-due-date`,"formatted-value":H.dueDate,"onUpdate:formattedValue":r[8]||=e=>H.dueDate=e,type:`date`,placeholder:`Дата завершения`,"value-format":`yyyy-MM-dd`,format:`dd.MM.yyyy`,disabled:P.value,clearable:``,class:`date-picker`},null,8,[`formatted-value`,`disabled`])]),_:1}),d(t(A),{justify:`space-between`},{default:f(()=>[R.value&&G.value?(i(),n(t(w),{key:0,type:`error`,disabled:P.value||N.value,onClick:r[9]||=e=>B.value=G.value},{default:f(()=>[...r[23]||=[a(`Удалить`,-1)]]),_:1},8,[`disabled`])):m(``,!0),d(t(A),null,{default:f(()=>[d(t(w),{disabled:P.value,onClick:r[10]||=e=>L.value=!1},{default:f(()=>[...r[24]||=[a(`Закрыть`,-1)]]),_:1},8,[`disabled`]),d(t(w),{type:`primary`,loading:P.value,disabled:N.value||J.value||Y.value||!!K.value||!!q.value,onClick:$},{default:f(()=>[...r[25]||=[a(`Сохранить`,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1},8,[`title`])]),_:1},8,[`show`,`mask-closable`,`close-on-esc`]),d(t(x),{show:!!B.value,"mask-closable":!P.value,"close-on-esc":!P.value,"onUpdate:show":r[13]||=e=>!P.value&&(B.value=null)},{default:f(()=>[d(t(k),{class:`task-modal`,title:`Удалить задачу?`,role:`dialog`,"aria-modal":`true`},{default:f(()=>[o(`p`,null,`Удалить «`+c(B.value?.title)+`»? Это действие необратимо.`,1),d(t(A),{justify:`end`,class:`delete-actions`},{default:f(()=>[d(t(w),{disabled:P.value,onClick:r[12]||=e=>B.value=null},{default:f(()=>[...r[26]||=[a(`Отмена`,-1)]]),_:1},8,[`disabled`]),d(t(w),{type:`error`,loading:P.value,onClick:Se},{default:f(()=>[...r[27]||=[a(`Удалить`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`show`,`mask-closable`,`close-on-esc`])]),_:1},8,[`locale`,`date-locale`]))}}),[[`__scopeId`,`data-v-ff75f974`]]),W=e({__name:`TasksView`,setup(e){return(e,t)=>(i(),n(U))}});export{W as default}; |