1 line
28 KiB
JavaScript
1 line
28 KiB
JavaScript
import{Ct as e,Dt as t,Jt as n,Kt as r,Ot as i,Rn as a,St as o,Ut as s,bn as c,bt as l,hn as u,ht as d,in as f,kt as p,pn as ee,wt as m,xt as h}from"./client-Bz0sY7Lm.js";import{o as te}from"./utils-bfD2zlXe.js";import{t as g}from"./Card-DL2KXmKm.js";import{n as ne,r as _}from"./es-D-sREWjF.js";import{c as v,l as y,o as b,s as x}from"./Suffix-Bm031ONx.js";import{t as S}from"./Modal-B0y3ZylS.js";import{n as C,t as re}from"./DatePicker-DBLXPX0z.js";import{t as w}from"./FormItem-CfGpNXX4.js";import{t as T}from"./Button-BDXKfTYe.js";import{t as E}from"./Select-7_HlVtx5.js";import{t as D}from"./_plugin-vue_export-helper-CaiaXQaI.js";import{t as O}from"./Input-CljXp9mH.js";import{t as k}from"./Alert-BLBqGVLy.js";import{t as A}from"./Flex-DktOjnxQ.js";import{t as j}from"./Spin-COBKNimF.js";import{i as ie,ut as M,w as ae}from"./index-BtdmUaqY.js";import{t as oe}from"./HeaderMenu-DvKwvAZi.js";var se={name:`ru-RU`,global:{undo:`Отменить`,redo:`Вернуть`,confirm:`Подтвердить`,clear:`Очистить`},Popconfirm:{positiveText:`Подтвердить`,negativeText:`Отмена`},Cascader:{placeholder:`Выбрать`,loading:`Загрузка`,loadingRequiredMessage:e=>`Загрузите все дочерние узлы ${e} прежде чем они станут необязательными`},Time:{dateFormat:`yyyy-MM-dd`,dateTimeFormat:`yyyy-MM-dd HH:mm:ss`},DatePicker:{yearFormat:`yyyy`,monthFormat:`MMM`,dayFormat:`eeeeee`,yearTypeFormat:`yyyy`,monthTypeFormat:`yyyy-MM`,dateFormat:`yyyy-MM-dd`,dateTimeFormat:`yyyy-MM-dd HH:mm:ss`,quarterFormat:`yyyy-qqq`,weekFormat:`YYYY-w`,clear:`Очистить`,now:`Сейчас`,confirm:`Подтвердить`,selectTime:`Выбрать время`,selectDate:`Выбрать дату`,datePlaceholder:`Выбрать дату`,datetimePlaceholder:`Выбрать дату и время`,monthPlaceholder:`Выберите месяц`,yearPlaceholder:`Выберите год`,quarterPlaceholder:`Выберите квартал`,weekPlaceholder:`Select Week`,startDatePlaceholder:`Дата начала`,endDatePlaceholder:`Дата окончания`,startDatetimePlaceholder:`Дата и время начала`,endDatetimePlaceholder:`Дата и время окончания`,startMonthPlaceholder:`Начало месяца`,endMonthPlaceholder:`Конец месяца`,monthBeforeYear:!0,firstDayOfWeek:0,today:`Сегодня`},DataTable:{checkTableAll:`Выбрать все в таблице`,uncheckTableAll:`Отменить все в таблице`,confirm:`Подтвердить`,clear:`Очистить`},LegacyTransfer:{sourceTitle:`Источник`,targetTitle:`Назначение`},Transfer:{selectAll:`Выбрать все`,unselectAll:`Снять все`,clearAll:`Очистить`,total:e=>`Всего ${e} элементов`,selected:e=>`${e} выбрано элементов`},Empty:{description:`Нет данных`},Select:{placeholder:`Выбрать`},TimePicker:{placeholder:`Выбрать время`,positiveText:`OK`,negativeText:`Отменить`,now:`Сейчас`,clear:`Очистить`},Pagination:{goto:`Перейти`,selectionSuffix:`страница`},DynamicTags:{add:`Добавить`},Log:{loading:`Загрузка`},Input:{placeholder:`Ввести`},InputNumber:{placeholder:`Ввести`},DynamicInput:{create:`Создать`},ThemeEditor:{title:`Редактор темы`,clearAllVars:`Очистить все`,clearSearch:`Очистить поиск`,filterCompName:`Фильтровать по имени компонента`,filterVarName:`Фильтровать имена переменных`,import:`Импорт`,export:`Экспорт`,restore:`Сбросить`},Image:{tipPrevious:`Предыдущее изображение (←)`,tipNext:`Следующее изображение (→)`,tipCounterclockwise:`Против часовой стрелки`,tipClockwise:`По часовой стрелке`,tipZoomOut:`Отдалить`,tipZoomIn:`Приблизить`,tipDownload:`Скачать`,tipClose:`Закрыть (Esc)`,tipOriginalSize:`Вернуть исходный размер`},Heatmap:{less:`меньше`,more:`больше`,monthFormat:`MMM`,weekdayFormat:`eeeeee`}};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:y({formats:{full:`EEEE, d MMMM y 'г.'`,long:`d MMMM y 'г.'`,medium:`d MMM y 'г.'`,short:`dd.MM.y`},defaultWidth:`full`}),time:y({formats:{full:`H:mm:ss zzzz`,long:`H:mm:ss z`,medium:`H:mm:ss`,short:`H:mm`},defaultWidth:`full`}),dateTime:y({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 C(e,t,n)?B(r):z(r)},yesterday:`'вчера в' p`,today:`'сегодня в' p`,tomorrow:`'завтра в' p`,nextWeek:(e,t,n)=>{let r=e.getDay();return C(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:v({values:{narrow:[`до н.э.`,`н.э.`],abbreviated:[`до н. э.`,`н. э.`],wide:[`до нашей эры`,`нашей эры`]},defaultWidth:`wide`}),quarter:v({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`1-й кв.`,`2-й кв.`,`3-й кв.`,`4-й кв.`],wide:[`1-й квартал`,`2-й квартал`,`3-й квартал`,`4-й квартал`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:v({values:{narrow:[`Я`,`Ф`,`М`,`А`,`М`,`И`,`И`,`А`,`С`,`О`,`Н`,`Д`],abbreviated:[`янв.`,`фев.`,`март`,`апр.`,`май`,`июнь`,`июль`,`авг.`,`сент.`,`окт.`,`нояб.`,`дек.`],wide:[`январь`,`февраль`,`март`,`апрель`,`май`,`июнь`,`июль`,`август`,`сентябрь`,`октябрь`,`ноябрь`,`декабрь`]},defaultWidth:`wide`,formattingValues:{narrow:[`Я`,`Ф`,`М`,`А`,`М`,`И`,`И`,`А`,`С`,`О`,`Н`,`Д`],abbreviated:[`янв.`,`фев.`,`мар.`,`апр.`,`мая`,`июн.`,`июл.`,`авг.`,`сент.`,`окт.`,`нояб.`,`дек.`],wide:[`января`,`февраля`,`марта`,`апреля`,`мая`,`июня`,`июля`,`августа`,`сентября`,`октября`,`ноября`,`декабря`]},defaultFormattingWidth:`wide`}),day:v({values:{narrow:[`В`,`П`,`В`,`С`,`Ч`,`П`,`С`],short:[`вс`,`пн`,`вт`,`ср`,`чт`,`пт`,`сб`],abbreviated:[`вск`,`пнд`,`втр`,`срд`,`чтв`,`птн`,`суб`],wide:[`воскресенье`,`понедельник`,`вторник`,`среда`,`четверг`,`пятница`,`суббота`]},defaultWidth:`wide`}),dayPeriod:v({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:b({matchPattern:/^(\d+)(-?(е|я|й|ое|ье|ая|ья|ый|ой|ий|ый))?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:x({matchPatterns:{narrow:/^((до )?н\.?\s?э\.?)/i,abbreviated:/^((до )?н\.?\s?э\.?)/i,wide:/^(до нашей эры|нашей эры|наша эра)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^д/i,/^н/i]},defaultParseWidth:`any`}),quarter:x({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:x({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:x({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:x({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=D(p({__name:`TasksPage`,setup(p){let v=ie(),y=ne(),b=[{label:`Новая`,value:`new`},{label:`В работе`,value:`in_progress`},{label:`На проверке`,value:`review`},{label:`Готово`,value:`done`}],x=u([]),C=u([]),D=u(!1),N=u(!0),P=u(!1),F=u(``),I=u(`all`),L=u(!1),R=u(),z=u(),B=u(null),V=u(),H=ee({title:``,description:``,status:`new`,assigneeID:null,dueDate:null}),U=l(()=>C.value.map(e=>({label:e.name||`#${e.ID}`,value:e.ID}))),W=l(()=>[{label:`Все ответственные`,value:`all`},{label:`Без ответственного`,value:0},...U.value,...x.value.filter(e=>e.assigneeID&&!C.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=l(()=>{if(!H.assigneeID||U.value.some(e=>e.value===H.assigneeID))return U.value;let e=x.value.find(e=>e.ID===R.value);return[...U.value,{label:`${e?.assigneeName||`#${H.assigneeID}`} (роль отозвана)`,value:H.assigneeID,disabled:!0}]}),ve=l(()=>b.map(e=>({...e,tasks:x.value.filter(t=>t.status===e.value&&(I.value===`all`||(t.assigneeID||0)===I.value))}))),G=l(()=>x.value.find(e=>e.ID===R.value)),K=l(()=>H.title.trim()?[...H.title.trim()].length>255?`Не более 255 символов`:void 0:`Введите название задачи`),q=l(()=>[...H.description].length>1e4?`Не более 10 000 символов`:void 0),J=l(()=>R.value!==void 0&&G.value!==void 0&&G.value.version!==z.value),Y=l(()=>R.value!==void 0&&!G.value);function ye(e){return b.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 v.GetPermissions({});if(D.value=e.permissions?.includes(`tasks_page`)||!1,!D.value)return;let[t,n]=await Promise.all([v.GetTasks({}),v.GetTaskAssignees({})]);x.value=t.tasks||[],C.value=n.assignees||[]}catch(e){F.value=e instanceof Error&&e.message===`unauthorized`?`Войдите под учётной записью разработчика или администратора`:e instanceof Error?e.message:`Не удалось загрузить задачи`,y.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){y.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 v.CreateTask(t):await v.UpdateTask({...t,ID:R.value,version:z.value});if(n.task){let e=n.task;x.value=R.value===void 0?[e,...x.value]:x.value.map(t=>t.ID===e.ID?e:t)}L.value=!1,y.success(`Задача сохранена`)}catch(e){y.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=x.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 v.SetTaskStatus({ID:t.ID,status:e,version:t.version});if(n.task){let e=n.task;x.value=x.value.map(n=>n.ID===t.ID?e:n)}y.success(`Статус изменён`)}catch(e){y.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 v.DeleteTask({ID:B.value.ID,version:B.value.version}),x.value=x.value.filter(e=>e.ID!==B.value?.ID),B.value=null,L.value=!1,y.success(`Задача удалена`)}catch(e){y.error(e instanceof Error?e.message:`Не удалось удалить задачу`),B.value=null}finally{P.value=!1}await Z()}}function Ce(){z.value=G.value?.version}return s(()=>{N.value=!1,Z()}),(s,l)=>(r(),o(c(ae),{locale:c(se),"date-locale":c(ce)},{default:f(()=>[h(`div`,ue,[h(`div`,de,[i(c(A),{class:`toolbar`,justify:`space-between`,align:`center`},{default:f(()=>[l[16]||=h(`h1`,null,`Задачи`,-1),i(c(A),null,{default:f(()=>[i(c(T),{loading:N.value,disabled:P.value,onClick:Z},{default:f(()=>[...l[14]||=[t(`Обновить`,-1)]]),_:1},8,[`loading`,`disabled`]),D.value?(r(),o(c(T),{key:0,type:`primary`,disabled:P.value||N.value,onClick:l[0]||=e=>Q()},{default:f(()=>[...l[15]||=[t(` Создать задачу `,-1)]]),_:1},8,[`disabled`])):e(``,!0)]),_:1})]),_:1}),F.value?(r(),o(c(k),{key:0,type:`error`,class:`notice`},{default:f(()=>[t(a(F.value),1)]),_:1})):e(``,!0),N.value&&!D.value?(r(),o(c(j),{key:1,class:`initial-loading`})):!D.value&&!F.value?(r(),o(c(k),{key:2,type:`warning`},{default:f(()=>[...l[17]||=[t(` Страница доступна разработчикам и администратору. `,-1)]]),_:1})):e(``,!0),D.value?(r(),m(d,{key:3},[i(c(E),{value:I.value,"onUpdate:value":l[1]||=e=>I.value=e,options:W.value,"aria-label":`Фильтр по ответственному`,class:`assignee-filter`},null,8,[`value`,`options`]),i(c(j),{show:N.value||P.value},{default:f(()=>[h(`div`,fe,[(r(!0),m(d,null,n(ve.value,s=>(r(),m(`section`,{key:s.value,class:`column`,"aria-label":s.label,onDragover:l[3]||=M(()=>{},[`prevent`]),onDrop:M(e=>xe(s.value),[`prevent`])},[i(c(A),{justify:`space-between`,align:`center`,class:`column-heading`},{default:f(()=>[h(`h2`,null,a(s.label),1),i(c(_),{size:`small`},{default:f(()=>[t(a(s.tasks.length),1)]),_:2},1024)]),_:2},1024),s.tasks.length?e(``,!0):(r(),o(c(te),{key:0,description:`Нет задач`,class:`empty-column`})),(r(!0),m(d,null,n(s.tasks,n=>(r(),o(c(g),{key:n.ID,class:`task-card`,size:`small`,draggable:!P.value&&!N.value,onDragstart:e=>be(e,n),onDragend:l[2]||=e=>V.value=void 0},{default:f(()=>[h(`div`,me,`#`+a(n.ID),1),h(`h3`,he,a(n.title),1),h(`p`,null,a(n.assigneeName||`Без ответственного`),1),i(c(A),{align:`center`,class:`task-due`},{default:f(()=>[h(`span`,null,a(X(n.dueDate)),1),c(le)(n)?(r(),o(c(_),{key:0,type:`error`,size:`small`},{default:f(()=>[...l[18]||=[t(`Просрочена`,-1)]]),_:1})):e(``,!0)]),_:2},1024),i(c(T),{size:`small`,disabled:P.value||N.value,onClick:e=>Q(n)},{default:f(()=>[...l[19]||=[t(` Открыть задачу `,-1)]]),_:1},8,[`disabled`,`onClick`])]),_:2},1032,[`draggable`,`onDragstart`]))),128))],40,pe))),128))])]),_:1},8,[`show`])],64)):e(``,!0)])]),i(oe,{active:`tasks`}),i(c(S),{show:L.value,"onUpdate:show":l[11]||=e=>L.value=e,"mask-closable":!P.value,"close-on-esc":!P.value},{default:f(()=>[i(c(g),{class:`task-modal`,title:R.value?`Задача #${R.value}`:`Новая задача`,role:`dialog`,"aria-modal":`true`},{default:f(()=>[Y.value?(r(),o(c(k),{key:0,type:`warning`,class:`notice`},{default:f(()=>[...l[20]||=[t(` Задача удалена другим пользователем. Черновик сохранён в этой форме. `,-1)]]),_:1})):e(``,!0),J.value&&G.value?(r(),o(c(k),{key:1,type:`warning`,class:`notice`},{default:f(()=>[l[22]||=t(` Задача изменена другим пользователем. Ваш черновик сохранён. Актуальные данные: `,-1),h(`p`,null,a(G.value.title)+` — `+a(ye(G.value.status)),1),h(`p`,null,a(G.value.assigneeName||`Без ответственного`)+` · `+a(X(G.value.dueDate)),1),h(`p`,ge,a(G.value.description||`Без описания`),1),i(c(T),{disabled:N.value||P.value,onClick:Ce},{default:f(()=>[...l[21]||=[t(` Продолжить с моим черновиком `,-1)]]),_:1},8,[`disabled`])]),_:1})):e(``,!0),i(c(w),{label:`Название *`,"label-for":`task-title`,feedback:K.value,"validation-status":K.value?`error`:void 0},{default:f(()=>[i(c(O),{"input-props":{id:`task-title`},value:H.title,"onUpdate:value":l[4]||=e=>H.title=e,disabled:P.value,placeholder:`Название задачи`},null,8,[`value`,`disabled`])]),_:1},8,[`feedback`,`validation-status`]),i(c(w),{label:`Описание`,"label-for":`task-description`,feedback:q.value,"validation-status":q.value?`error`:void 0},{default:f(()=>[i(c(O),{"input-props":{id:`task-description`},value:H.description,"onUpdate:value":l[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`]),i(c(w),{label:`Статус`,"label-for":`task-status`},{default:f(()=>[i(c(E),{"input-props":{id:`task-status`,"aria-label":`Статус`},filterable:``,value:H.status,"onUpdate:value":l[6]||=e=>H.status=e,options:b,disabled:P.value},null,8,[`value`,`disabled`])]),_:1}),i(c(w),{label:`Ответственный`,"label-for":`task-assignee`},{default:f(()=>[i(c(E),{"input-props":{id:`task-assignee`,"aria-label":`Ответственный`},value:H.assigneeID,"onUpdate:value":l[7]||=e=>H.assigneeID=e,options:_e.value,disabled:P.value,placeholder:`Без ответственного`,clearable:``,filterable:``},null,8,[`value`,`options`,`disabled`])]),_:1}),i(c(w),{label:`Срок выполнения`,"label-for":`task-due-date`},{default:f(()=>[i(c(re),{id:`task-due-date`,"formatted-value":H.dueDate,"onUpdate:formattedValue":l[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}),i(c(A),{justify:`space-between`},{default:f(()=>[R.value&&G.value?(r(),o(c(T),{key:0,type:`error`,disabled:P.value||N.value,onClick:l[9]||=e=>B.value=G.value},{default:f(()=>[...l[23]||=[t(`Удалить`,-1)]]),_:1},8,[`disabled`])):e(``,!0),i(c(A),null,{default:f(()=>[i(c(T),{disabled:P.value,onClick:l[10]||=e=>L.value=!1},{default:f(()=>[...l[24]||=[t(`Закрыть`,-1)]]),_:1},8,[`disabled`]),i(c(T),{type:`primary`,loading:P.value,disabled:N.value||J.value||Y.value||!!K.value||!!q.value,onClick:$},{default:f(()=>[...l[25]||=[t(`Сохранить`,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1},8,[`title`])]),_:1},8,[`show`,`mask-closable`,`close-on-esc`]),i(c(S),{show:!!B.value,"mask-closable":!P.value,"close-on-esc":!P.value,"onUpdate:show":l[13]||=e=>!P.value&&(B.value=null)},{default:f(()=>[i(c(g),{class:`task-modal`,title:`Удалить задачу?`,role:`dialog`,"aria-modal":`true`},{default:f(()=>[h(`p`,null,`Удалить «`+a(B.value?.title)+`»? Это действие необратимо.`,1),i(c(A),{justify:`end`,class:`delete-actions`},{default:f(()=>[i(c(T),{disabled:P.value,onClick:l[12]||=e=>B.value=null},{default:f(()=>[...l[26]||=[t(`Отмена`,-1)]]),_:1},8,[`disabled`]),i(c(T),{type:`error`,loading:P.value,onClick:Se},{default:f(()=>[...l[27]||=[t(`Удалить`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`show`,`mask-closable`,`close-on-esc`])]),_:1},8,[`locale`,`date-locale`]))}}),[[`__scopeId`,`data-v-ff75f974`]]),W=p({__name:`TasksView`,setup(e){return(e,t)=>(r(),o(U))}});export{W as default}; |