bms-shared-components 1.1.72 → 1.1.74

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -121672,7 +121672,7 @@ const refbook = {
121672
121672
  Ht.value?.length === 0 && M.patientSnils && (Ht.value = await J({ Snils: M.patientSnils }) || null), Wt.value?.length === 0 && M.patientSnils && (Wt.value = (await V({ Snils: M.patientSnils, Monetized: !1, Active: !0, Deleted: !1 })).filter((pa) => Object.values(an).includes(pa.BenefitProgram)) || null), nr.value = Ht.value, mr.value = Wt.value;
121673
121673
  }
121674
121674
  async function ud() {
121675
- zt.value?.length === 0 && (zt = await window.axios.get(window.localhost + "refs/BenefitMap").then((pa) => (pa.data?.length ? pa.data : pa.data.Body).map((hu) => ({
121675
+ zt.value?.length === 0 && (zt.value = await window.axios.get(window.localhost + "refs/BenefitMap").then((pa) => (pa.data?.length ? pa.data : pa.data.Body).map((hu) => ({
121676
121676
  ...hu
121677
121677
  })))), nr.value?.length !== 0 && (tr.value = zt.value?.filter((pa) => nr.value.map((wa) => wa.BenefitCodeShort).includes(pa.BenefitCodeShort))), mr.value?.length !== 0 && (Vn.value = zt.value?.filter((pa) => mr.value.map((wa) => wa.BenefitCodeShort).includes(pa.BenefitCodeShort)));
121678
121678
  }
@@ -1297,7 +1297,7 @@ This will fail in production.`);ze=activePinia,ze._s.has(e)||(V?createSetupStore
1297
1297
  `,_n),_n.data.length){V.value=_n.data;let An=_n.data.find(nr=>Cn===nr[J.idField]),Vn={};Vn[J.idField]="",yt.value=An||Vn,Ft.value=An?Cn:""}else if("Body"in _n.data){V.value=_n.data.Body;let An=V.value.find(nr=>Cn===nr[J.idField]),Vn={};Vn[J.idField]="",yt.value=An||Vn,Ft.value=An?Cn:""}else{It=!0;let An={};An[J.idField]="",yt.value=An,Ft.value=""}N("onSelect",{data:yt.value,list:M.value,filteredList:V.value}),N("update:modelValue",Ft.value)});else if(J.loadBy&&(J.onlyLoadBy||!Ft.value)){V.value=[];let _n=J.url,An=!0;for(let Vn in J.loadBy){let nr;An?(An=!1,nr="?"):nr="&",_n+=nr+Vn+"="+J.loadBy[Vn]}J.secondParam&&(_n+="&"+J.secondParam),window.axios({url:_n,method:"get"}).then(Vn=>{if(J.devMode&&console.log(`RequestingSelect load by id response:
1298
1298
  `,Vn),!J.targetField&&Vn.data?.length||J.targetField&&(J.targetField==="object"||Vn.data[J.targetField]?.length))Tt="byId",bn(Vn,"","byId",!0),J.targetField&&(J.targetField!=="object"||!Vn.data?.length)?J.targetField==="object"?(yt.value=Vn.data,Ft.value=Vn.data[J.idField]):(yt.value=Vn.data[J.targetField][0],Ft.value=Vn.data[J.targetField][0][J.idField]):(yt.value=Vn.data[0],Ft.value=Vn.data[0][J.idField],J.defaultOption&&!yt.value&&(yt.value=J.defaultOption,Ft.value=J.defaultOption.Id));else{let nr={};nr[J.idField]="",yt.value=nr,Ft.value=""}Ft.value||(yt.value=J.defaultOption,Ft.value=J.defaultOption?.Id),N("onSelect",{data:yt.value,list:M.value,filteredList:V.value})})}else{let _n=J.url+"?"+(J.idFromIdField?J.idField:"Id")+"="+Cn+`${J.secondParam?"&"+J.secondParam:""}`;window.axios({url:_n,method:"get"}).then(An=>{if(J.devMode&&console.log(`RequestingSelect load by id response:
1299
1299
  `,An),An.data.length>0)V.value.push(An.data[0]),yt.value=An.data[0],Ft.value=An.data[0][J.idField];else{let Vn={};Vn[J.idField]="",yt.value=Vn,Ft.value=""}N("onSelect",{data:yt.value,list:M.value,filteredList:V.value})})}};vue.watch(()=>J.getFirstFromString,()=>{J.getFirstFromString&&(Tt="firstFromString",lr(J.getFirstFromString,"firstFromString",()=>{V.value?.length&&Hn(V.value[0])}))},{immediate:!0}),vue.watch(()=>J.modelValue,(Cn,_n)=>{if(Cn!==_n&&yt.value&&J.idField in yt.value&&J?.modelValue!==yt.value[J.idField]&&J?.filterField)It=!1,Kt(J.modelValue);else if(!J?.modelValue){let An={};An[J.idField]="",yt.value=An,Ft.value=""}}),vue.watch(()=>J.loadBy,(Cn,_n)=>{let An=!1;for(let Vn in Cn)(!_n||Cn[Vn]!=_n[Vn])&&(An=!0);An&&Kt(J.modelValue)},{deep:!0,immediate:!0}),vue.watch(()=>J.newElement,()=>{if(J.newElement){let Cn=!1;J.checkForPush?Cn=J.checkForPush(J.newElement,V.value):Cn=!0,Cn?(V.value.push(J.newElement),N("newElementSuccess")):N("newElementReject")}}),vue.watch(()=>J.deleteElement,()=>{J.devDelete&&notifyWarning("Удаление этого элемента на сервере пока не доступно.");let Cn;typeof J.deleteElement!="string"?Cn=J.deleteElement[J.idField]:Cn=J.deleteElement,V.value=V.value.filter(Vn=>Vn[J.idField]!==Cn);let _n={};_n[J.idField]="",yt.value=_n,Ft.value="";let An;J?.deleteUrl?An=J.deleteUrl+"?"+(J.idFromIdField?J.idField:"Id")+"="+Cn:An=J.url+"?"+(J.idFromIdField?J.idField:"Id")+"="+Cn,N("newData",{data:V.value}),Cn&&!J.devDelete&&window.axios({url:An,method:"delete"}).then(Vn=>{Vn.status===200?notifySuccess("Шаблон удалён."):notifyError$1("При удалении шаблона что-то пошло не так!")})});let Mn=!1;function Bn(){if(yt.value&&J.idField in yt.value&&J.modelValue!==yt.value[J.idField]&&J?.modelValue&&!Mn)if(J?.url){Mn=!0;let Cn=J.url;window.axios({url:Cn+"?"+(J.idFromIdField?J.idField:"Id")+"="+J.modelValue,method:"get"}).then(_n=>{J.devMode&&console.log(`RequestingSelect load on mounted response:
1300
- `,_n);let An;if(J?.targetField?J.targetField==="object"?An=[_n.data]:An=_n.data[J.targetField]:An=_n.data,An?.length){let Vn=J.idFromIdField?J.idField:"Id",nr=An.find(hr=>hr[Vn]==J.modelValue);V.value.push(nr),yt.value=nr,Ft.value=nr&&Vn in nr?nr[Vn]:null,N("newData",{data:V.value}),N("onSelect",{data:yt.value,list:M.value,filteredList:V.value})}Mn=!1})}else Kt(J.modelValue);else Ot&&J.preload&&(Ot=!1,gr())}function gr(){if(J?.url){V.value=[],M.value=[];for(let Cn of $t.value)dn(J.url+Cn)}else V.value=[],M.value=[],J.apiString.get().then(Cn=>{Tt="withoutString",bn(Cn,"","withoutString",!0)})}return vue.onMounted(Bn),vue.onUpdated(Bn),(Cn,_n)=>(vue.openBlock(),vue.createBlock(_sfc_main$O,{modelValue:Ft.value,"onUpdate:modelValue":_n[0]||(_n[0]=An=>Ft.value=An),"display-expr":J.displayExpr,data:V.value,searchable:"",onInput:an,label:J.label,onSelect:Hn,onClear:un,"no-filtering":"","id-field":J.idField,limit:200},{option:vue.withCtx(({item:An})=>[vue.renderSlot(Cn.$slots,"option",{item:An})]),_:3},8,["modelValue","display-expr","data","label","id-field"]))}},_sfc_main$K={__name:"NewMkbSelectBox",props:{mkbId:{type:[String,null]},label:{type:String,default:"Диагноз"},readOnly:{type:Boolean},isValidated:{type:Boolean,default:!1},mkbCode:{type:String,default:""},filterCodes:{type:Array,default:()=>[]},OMC:{type:Boolean,default:null}},emits:["getMKBId","getMKBItem","validate"],setup(e,{emit:I}){const N=I,J=e;vue.watch(()=>J.OMC,()=>{M.value={Id:""},N("getMKBId",{choosedMKB:null}),N("getMKBItem",{choosedMKB:null})}),vue.ref([]);const V=vue.ref(!1),M=vue.ref({Id:""}),ze=vue.ref(""),yt=vue.computed(()=>({_mkb_oplata_param_:J.OMC===null?null:String(!!J.OMC),_mkb_codes_param_:J.filterCodes?.length?J.filterCodes.join(","):null}));function Ct({data:Ot}){ze.value="",Ot?.Id?(N("getMKBId",{choosedMKB:Ot.Id}),N("getMKBItem",{choosedMKB:Ot})):(M.value={Id:""},N("getMKBId",{choosedMKB:null}),N("getMKBItem",{choosedMKB:null}))}function Ft(Ot,Nt,It){return Ot.Code.indexOf(".")!==-1||Nt.filter(Vt=>Vt.Code.startsWith(Ot.Code)).length===1&&(Tt(It[0])&&It.length>2||!Tt(It[0])&&It.length>1)}function Tt(Ot){return new RegExp("^\\p{L}$","u").test(Ot)}return vue.watch(()=>J.mkbCode,()=>{J.mkbCode||(M.value={Id:""},Ct({data:M.value}))}),vue.watch(()=>J.mkbId,(Ot,Nt)=>{Ot?Nt!==Ot&&(M.value={Id:Ot}):(M.value={Id:""},Ct({data:M.value}))},{immediate:!0}),vue.watch(()=>M.value,()=>{J.isValidated&&(M.value?.Id?(N("validate",{isValid:!0}),N("getMKBItem",{choosedMKB:M.value}),V.value=!0):(N("validate",{isValid:!1}),N("getMKBId",{choosedMKB:""}),V.value=!1))}),(Ot,Nt)=>(vue.openBlock(),vue.createBlock(_sfc_main$L,{disabled:J.readOnly,modelValue:M.value.Id,"onUpdate:modelValue":Nt[0]||(Nt[0]=It=>M.value.Id=It),"display-expr":It=>"("+It.Code+") "+It.Name,"api-string":vue.unref(api$1).Mkb,"api-id":vue.unref(api$1).MkbById,label:J.label,"get-first-from-string":J.mkbCode,"result-filter":Ft,params:yt.value,onOnSelect:Ct,clearable:""},null,8,["disabled","modelValue","display-expr","api-string","api-id","label","get-first-from-string","params"]))}},_sfc_main$J={__name:"FilterInput",props:{type:{type:String,required:!0},modelValue:{required:!0},name:{type:String,required:!0},list:{type:[Array,null],default:null},display:{type:[Function,null],default:null},style:{type:Object,default:()=>({})},idField:{type:String,default:null},mask:{type:String,default:null},placeholder:{type:String,default:null}},emits:["update:modelValue"],setup(e,{emit:I}){const N=I,J=e,V=vue.ref(null);vue.watch(()=>J.modelValue,()=>{V.value=J.modelValue},{immediate:!0});const M=vue.computed(()=>{let ze={label:J.name};return J.type==="select"&&(ze.data=J.list,ze.searchable=!0,ze.clearable=!0,J.idField&&(ze.idField=J.idField),J.display&&(ze.displayExpr=J.display),J.placeholder&&(ze.placeholder=J.placeholder)),J.type==="text"&&(ze.mask=J.mask),ze});return vue.watch(V,()=>{V.value!==J.modelValue&&N("update:modelValue",V.value)}),(ze,yt)=>(vue.openBlock(),vue.createElementBlock("div",null,[J.type==="text"?(vue.openBlock(),vue.createElementBlock("div",{key:0,style:vue.normalizeStyle(J.style)},[vue.createVNode(vue.unref($A),vue.mergeProps({modelValue:V.value,"onUpdate:modelValue":yt[0]||(yt[0]=Ct=>V.value=Ct)},M.value),null,16,["modelValue"])],4)):J.type==="checkbox"?(vue.openBlock(),vue.createElementBlock("div",{key:1,style:vue.normalizeStyle(J.style)},[vue.createVNode(vue.unref(jc),vue.mergeProps({modelValue:V.value,"onUpdate:modelValue":yt[1]||(yt[1]=Ct=>V.value=Ct)},M.value),null,16,["modelValue"])],4)):J.type==="select"?(vue.openBlock(),vue.createElementBlock("div",{key:2,style:vue.normalizeStyle(J.style)},[vue.createVNode(_sfc_main$O,vue.mergeProps({modelValue:V.value,"onUpdate:modelValue":yt[2]||(yt[2]=Ct=>V.value=Ct)},M.value),null,16,["modelValue"])],4)):J.type==="mkb"?(vue.openBlock(),vue.createElementBlock("div",{key:3,style:vue.normalizeStyle(J.style)},[vue.createVNode(_sfc_main$K,vue.mergeProps({modelValue:V.value,"onUpdate:modelValue":yt[3]||(yt[3]=Ct=>V.value=Ct)},M.value),null,16,["modelValue"])],4)):J.type==="employee"?(vue.openBlock(),vue.createElementBlock("div",{key:4,style:vue.normalizeStyle(J.style)},[vue.createVNode(_sfc_main$N,vue.mergeProps({modelValue:V.value,"onUpdate:modelValue":yt[4]||(yt[4]=Ct=>V.value=Ct)},M.value,{"other-lpu":"","lpu-id":"9d1790e4-965e-46d3-878f-c8c5ce7ae8c6"}),null,16,["modelValue"])],4)):J.type==="date"?(vue.openBlock(),vue.createElementBlock("div",{key:5,style:vue.normalizeStyle(J.style)},[vue.createVNode(_sfc_main$P,vue.mergeProps({modelValue:V.value,"onUpdate:modelValue":yt[5]||(yt[5]=Ct=>V.value=Ct)},M.value),null,16,["modelValue"])],4)):vue.createCommentVNode("",!0)]))}};var Mode$1=(e=>(e[e.DELAY=0]="DELAY",e[e.INTERVAL=1]="INTERVAL",e[e.INTERVAL_BLOCK=2]="INTERVAL_BLOCK",e))(Mode$1||{});let ActionLimiter$1=(ND=class{constructor(I,N,J){this.action=I,this.milliseconds=N,this.mode=J,this.currentTimerId=null,this.needRepeat=null,this.init()}init(){switch(this.mode){case 0:this.repeat=()=>{console.warn(this.mode+" mode has no repeat function!")},this.start=I=>{this.currentTimerId===null?this.currentTimerId=Number(setTimeout(()=>this.action(I),this.milliseconds)):(clearTimeout(this.currentTimerId),this.currentTimerId=Number(setTimeout(()=>this.action(I),this.milliseconds)))};break;case 1:this.repeat=()=>{this.needRepeat?(this.action(),this.needRepeat=!1,this.currentTimerId=Number(setTimeout(this.repeat,this.milliseconds))):this.needRepeat=null},this.start=()=>{this.needRepeat===null?(this.needRepeat=!0,this.repeat()):this.needRepeat===!1&&(this.needRepeat=!0)};break;case 2:this.repeat=()=>{console.warn(this.mode+" mode has no repeat function!")},this.start=()=>{this.currentTimerId===null&&(this.action(),this.currentTimerId=Number(setTimeout(()=>{this.currentTimerId=null},this.milliseconds)))};break;default:console.error("internal error! invalid mode for ActionLimiter!")}}stop(){clearTimeout(this.currentTimerId),this.currentTimerId=null}},ND.MODE=Mode$1,ND);const _sfc_main$I={__name:"FilterPanel",props:{filterList:{type:Array,required:!0}},emits:["search","update:modelValue"],setup(e,{emit:I}){const N=I,J=e,V=vue.ref({});for(let Tt of J.filterList)Tt?.default&&(V.value[Tt.accessor]=Tt.default);const M=vue.computed(()=>{let Tt={};for(let Ot of J.filterList??[])Ot?.relation?Tt[Ot.accessor]=Ot.relation({filters:J.filterList,values:V.value}):Tt[Ot.accessor]=Ot?.list??null;return Tt}),ze=new ActionLimiter$1(Ft,500,ActionLimiter$1.MODE.DELAY);function yt(){ze.start()}function Ct(){V.value={}}function Ft(){N("search",{filters:V.value})}return vue.watch(V,Tt=>{N("update:modelValue",Tt)},{deep:!0}),(Tt,Ot)=>(vue.openBlock(),vue.createElementBlock("form",{class:"flex flex-wrap gap-x-2 gap-y-0.5 items-end",onSubmit:vue.withModifiers(yt,["prevent"])},[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(J.filterList,Nt=>(vue.openBlock(),vue.createBlock(_sfc_main$J,{key:Nt,modelValue:V.value[Nt.accessor],"onUpdate:modelValue":It=>V.value[Nt.accessor]=It,type:Nt.type,display:Nt?.display??null,name:Nt.name,list:M.value[Nt.accessor],style:vue.normalizeStyle(Nt?.style??null),"id-field":Nt?.idField??null,mask:Nt?.mask??null,placeholder:Nt?.placeholder??null},null,8,["modelValue","onUpdate:modelValue","type","display","name","list","style","id-field","mask","placeholder"]))),128)),vue.createVNode(vue.unref(_2),{label:"Найти",type:"submit",primary:"","prepend-icon":"search"}),vue.createVNode(vue.unref(_2),{label:"Сбросить фильтры",onClick:Ct,delete:"",secondary:"","prepend-icon":"xmark"})],32))}};function validateResponse(e,I,N){getRefbookRequest(e).then(J=>{if(J.status!==200)N(new Error("Ответ со статусом "+J.data.Status));else if(J?.data?.Status==="Error")console.error("------------===Ошибка загрузки справочника===------------"),console.error(J),console.error("------------=================================------------"),N(new Error(J.data.Comment));else{let V=J.data;"target"in e&&(V=V[e.target]),!V?.length&&V?.length!==0?(console.error(J),N(new Error("Ошибка загрузки справочника!"))):I(V)}})}function getRefbookRequest(e){const I=e?.address?e.address:window.localhost;return"params"in e?window.axios.get(I+e.url,{params:e.params}):window.axios.get(I+e.url)}function RefbookPromiseHandler(e,I,N){validateResponse(e,I,N)}const RefbookProxyHandler={get(e,I){if(I===void 0||I==="__v_isRef")return;const N=e[I];if(!N)throw new Error('Справочника "'+I+'" не существует!');return N?.value?Promise.resolve(N.value):new Promise((J,V)=>RefbookPromiseHandler(N,J,V))},set(){throw new Error("Невозможно изменить справочник!")}};function getRefbookPromise(e,I){return new Promise(N=>{e.then(J=>{I?(I(J),N(!0)):N(J)})})}const refbook={BioFactor:{name:"BioFactor",url:"refs/BioFactor",target:"Body"},DiseaseCharacter:{name:"DiseaseCharacter",url:"GetDiseaseCharacters"},DiseaseType:{name:"DiseaseType",url:"GetDiseaseType"},DispTakeForm:{name:"DispTakeForm",url:"DispTakeForm"},Drug:{name:"Drug",url:"refs/Drug",target:"Body"},EmdType:{name:"EmdType",url:"emd/TypeEmd",target:"Body"},OrderType:{name:"OrderType",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.11.1009"}},Status:{name:"Status",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.11.1006"}},PayMethod:{name:"PayMethod",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.11.1039"}},TypeVisit:{name:"TypeVisit",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.11.1007"}},VaccinationConclusion:{name:"VaccinationConclusion",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.99.2.725"}},ConsultationType:{name:"ConsultationType",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.99.2.797"}},BenefitType:{name:"BenefitType",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.99.2.713"}},PostVaccinalComplication:{name:"PostVaccinalComplication",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.99.2.960"}},LabMaterialTakeMethod:{name:"LabMaterialTakeMethod",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.99.2.1065"}},LabMaterial:{name:"LabMaterial",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.99.2.1019"}},BloodComponent:{name:"BloodComponent",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.11.1386"}},RecipeType:{name:"RecipeType",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.99.2.651"}},BenefitProgram:{name:"BenefitProgram",url:"refs/BenefitProgram",target:"Body"},BenefitMap:{name:"BenefitMap",url:"refs/BenefitMap",target:"Body"},Excipient:{name:"Excipient",url:"refs/Excipient",target:"Body"},Outcome:{name:"Outcome",url:"Ffoms",params:{NsiCode:"V012"}},ReasonVisit:{name:"ReasonVisit",url:"Ffoms",params:{NsiCode:"V025"}},Result:{name:"Result",url:"Ffoms",params:{NsiCode:"V009"}},StageResult:{name:"StageResult",url:"Ffoms",params:{NsiCode:"V009",LinkCode:"3"}},Gender:{name:"Gender",url:"Gender"},HivContingent:{name:"HivContingent",url:"refs/HivContingent",target:"Body"},LabTest:{name:"LabTest",url:"refs/LabTest",target:"Body"},Palliatives:{name:"Palliatives",url:"refs/Palliatives",target:"Body"},Position:{name:"Position",url:"Position"},Region:{name:"Region",url:"Region"},ServiceFactType:{name:"ServiceFactType",url:"refs/UslFactType",target:"Body"},ServiceFactTypeGroup:{name:"ServiceFactTypeGroup",url:"refs/UslFactTypeGroup",target:"Body"},ServicePlace:{name:"ServicePlace",url:"GetServicePlaces"},SocialStatus:{name:"SocialStatus",url:"getsocstatus"},Speciality:{name:"Speciality",url:"Speciality"},Uchastok:{name:"Uchastok",url:"Uchastok"},VitalParamTypes:{name:"VitalParamTypes",url:"Reference/VitalParamTypes"},PmoType:{name:"PmoType",url:"PmoType"},HealthGroup:{name:"HealthGroup",url:"HealthGroup"}},exportRefbook=new Proxy(refbook,RefbookProxyHandler),BenefitProgram=(e=null)=>getRefbookPromise(exportRefbook.BenefitProgram,e),BenefitMap=(e=null)=>getRefbookPromise(exportRefbook.BenefitMap,e),useBenefit=()=>{async function e(N){let J=await window.axios.get(window.localhost+"patient/Benefit_v2",{params:N});return J.data.Body=J.data.Body.filter((V,M,ze)=>M===ze.findIndex(yt=>yt.PatientBenefitId===V.PatientBenefitId)),J.data.Body=J.data.Body.sort((V,M)=>new Date(M.LogDateTime)-new Date(V.LogDateTime)),J.data.Body}async function I(N,J=!0){let V=await api$1.PatientBenefit.get(N);if(V.data.Body=V.data.Body.filter((M,ze,yt)=>ze===yt.findIndex(Ct=>Ct.PatientBenefitId===M.PatientBenefitId)),V.data.Body=V.data.Body.sort((M,ze)=>new Date(ze.LogDateTime)-new Date(M.LogDateTime)),J){const M=V.data.Body.reduce((ze,yt)=>{const Ct=`${yt.Snils}-${yt.BenefitCodeShort}`;return ze[Ct]||(ze[Ct]=yt),ze},{});return Object.values(M)}return V.data.Body}return{getBenefitListV2:e,getBenefitList:I}},listStateActionCopy={CHANGE_LP:{state:"change_lp",label:"Редактирование ЛП в потребности"},CHANGE_COPY:{state:"change_copy",label:"Редактирование потребности"},BLOCK_CHANGE_LP:{state:"block_change_lp",label:"Блокировка редактирования поля ЛП"}},_hoisted_1$z={class:"preparat-tooltip-wrapper"},_sfc_main$H={__name:"MkbSelectLite",props:{modelValue:{type:[String,null],default:null},listDiagnosis:{type:Array,required:!0},label:{type:String,default:"Диагноз"},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0}},emits:["update:modelValue","select"],setup(e,{emit:I}){const N=e,J=I,V=vue.ref(N.modelValue),M=vue.ref(""),ze=vue.ref(""),yt=vue.computed(()=>{if(!N.listDiagnosis?.length)return[];if(!M.value)return N.listDiagnosis;const Tt=M.value.toLowerCase().trim(),Ot=swapKeyboardLayout(Tt,!1);return N.listDiagnosis.filter(It=>{const Vt=(It.Code||"").toLowerCase(),$t=(It.Name||"").toLowerCase(),zt=Vt.includes(Tt)||$t.includes(Tt),Wt=Vt.includes(Ot)||$t.includes(Ot);return zt||Wt})});function Ct(Tt){M.value=Tt||""}function Ft(Tt){return Tt?`(${Tt.Code}) ${Tt.Name}`:""}return vue.watch(V,Tt=>{if(J("update:modelValue",Tt),Tt){const Ot=N.listDiagnosis.find(Nt=>Nt.Id===Tt);Ot&&(ze.value=`${Ot.Code} ${Ot.Name}`,J("select",Ot))}else ze.value=""}),vue.watch(()=>N.modelValue,Tt=>{V.value=Tt}),(Tt,Ot)=>(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$z,[vue.createVNode(vue.unref(Ts),{text:ze.value,placement:"top"},{default:vue.withCtx(()=>[vue.createVNode(_sfc_main$O,{modelValue:V.value,"onUpdate:modelValue":Ot[0]||(Ot[0]=Nt=>V.value=Nt),data:yt.value,"onUpdate:data":Ot[1]||(Ot[1]=Nt=>yt.value=Nt),label:e.label,disabled:e.disabled,required:e.required,clearable:e.clearable,limit:1e3,"display-expr":Ft,onInput:Ct,placeholder:"Поиск заболевания..."},null,8,["modelValue","data","label","disabled","required","clearable"])]),_:1},8,["text"])]))}},_sfc_main$G={__name:"SDateInput",props:vue.mergeModels({withHours:{type:Boolean,default:!1},min:{type:Date,default:null},max:{type:Date,default:null}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const I=vue.useModel(e,"modelValue"),N=e;function J(M){return N.min&&hooks(N.min).format("YYYY-MM-DD HH:mm")>=hooks(M).format("YYYY-MM-DD HH:mm")?hooks(N.min).add(1,"minutes").format("YYYY-MM-DD HH:mm"):hooks(M).format("YYYY-MM-DD HH:mm")}function V(M){return M?N.withHours?J(M):M:null}return(M,ze)=>(vue.openBlock(),vue.createBlock(vue.unref(Kc),{format:"",min:e.min,max:e.max,withHours:e.withHours,label:"Дата","model-value":I.value,"onUpdate:modelValue":ze[0]||(ze[0]=yt=>I.value=V(yt))},null,8,["min","max","withHours","model-value"]))}},_hoisted_1$y={class:"flex justify-between items-center"},_hoisted_2$s={key:0},_hoisted_3$n={key:1,class:"text-gray-600"},_hoisted_4$l={key:0},_hoisted_5$j={class:"text-sm text-gray-600"},_sfc_main$F={__name:"ReSimpleOption",props:{item:{type:Object,required:!0},label:{type:[String,null],default:null},labelLow:{type:[String,null],default:null},selected:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["select"],setup(e,{emit:I}){const N=I,J=e;return(V,M)=>(vue.openBlock(),vue.createElementBlock("div",{onClick:M[0]||(M[0]=vue.withModifiers(ze=>J.disabled?null:N("select",J.item),["stop"])),class:vue.normalizeClass([{selected:J.selected,disabled:J.disabled},"px-2 py-1.5 hover:bg-slate-100 cursor-pointer"])},[vue.createElementVNode("div",_hoisted_1$y,[J.label?(vue.openBlock(),vue.createElementBlock("p",_hoisted_2$s,vue.toDisplayString(J.label),1)):(vue.openBlock(),vue.createElementBlock("p",_hoisted_3$n,"Нет имени")),J.selected?(vue.openBlock(),vue.createBlock(vue.unref(Z1),{key:2,name:"check",class:"text-slate-400"})):vue.createCommentVNode("",!0)]),J.labelLow?(vue.openBlock(),vue.createElementBlock("div",_hoisted_4$l,[vue.createElementVNode("p",_hoisted_5$j,vue.toDisplayString(J.labelLow),1)])):vue.createCommentVNode("",!0)],2))}},ReSimpleOption=_export_sfc(_sfc_main$F,[["__scopeId","data-v-6a702340"]]),_hoisted_1$x={class:"text-sm font-medium text-nowrap"},_hoisted_2$r={key:0,class:"text-red-100"},_hoisted_3$m={key:0,class:"text-xs text-black-35 mb-1 cursor-text"},_hoisted_4$k=["readonly","placeholder","required"],_sfc_main$E={__name:"ReSimpleSelect",props:vue.mergeModels({isLoading:{type:Boolean,default:!1},label:{type:String,default:"Выберите из списка"},data:{type:Array,default:()=>[]},placeholder:{type:String,default:"Нажмите для выбора..."},idField:{type:String,default:"Id"},displayExpr:{type:[String,Function,Array],default:"Name"},displayExprLow:{type:[String,Function,Array,null],default:null},required:{type:Boolean,default:!1},maxOptionCount:{type:Number,default:50},listOptionHeightPx:{type:Number,default:400},maxOptionHistoryLength:{type:Number,default:10},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},noLocalFiltering:{type:Boolean,default:!1},devMode:{type:Boolean,default:!1},variant:{type:String,default:"default"},optionDisabled:{type:[Function,null],default:null},customNoOptionText:{type:[String,null],default:null},description:{type:[String,null],default:null},searchByLowField:{type:Boolean,default:!1},compact:{type:Boolean,default:!0}},{modelValue:{type:[String,null],default:null,local:!0},modelModifiers:{}}),emits:vue.mergeModels(["input","onSelectObject","clear"],["update:modelValue"]),setup(e,{emit:I}){const N=I,J=e,V=vue.useModel(e,"modelValue"),M=vue.ref(null),ze=vue.ref(!1),yt=vue.ref(!1),Ct=vue.ref(),Ft=vue.ref(null),Tt=new ActionLimiter$1(yn,500,ActionLimiter$1.MODE.DELAY),Ot=vue.ref([]),Nt=vue.ref({left:0,width:0});vue.watch(yt,()=>{yt.value||$t()},{immediate:!0}),vue.watch(V,()=>{$t()},{immediate:!0}),vue.watch(()=>J.data,()=>{V.value&&!yt.value&&(J.data.find(un=>un[J.idField]===V.value)?(Ct.value=zt(J.data.find(un=>un[J.idField]===V.value)),M.value=J.data.find(un=>un[J.idField]===V.value)):Ot.value.find(un=>un[J.idField]===V.value)&&(Ct.value=zt(Ot.value.find(un=>un[J.idField]===V.value)),M.value=Ot.value.find(un=>un[J.idField]===V.value)))},{immediate:!0});const It=vue.computed(()=>{let un=JSON.parse(JSON.stringify(J.data));return yt.value&&!J.noLocalFiltering&&Ct.value&&(un=un.filter(an=>{let dn=zt(an);if(J.searchByLowField){const fn=Wt(an);dn+=" "+fn}return dn&&an&&Ct.value?dn.toLowerCase().includes(Ct.value.toLowerCase()):!1})),V.value&&V.value!=window.nullGuid&&!yt.value&&(un.find(an=>an[J.idField]===V.value)?un=un.sort((an,dn)=>an[J.idField]===V.value?-1:dn[J.idField]===V.value?1:0):(M.value&&(un=[M.value,...un]),un.findIndex(an=>an[J.idField]===V.value)===-1&&(J.customNoOptionText?notifyError$1(`${J.customNoOptionText} ● ${J.idField}=${V.value}`):notifyError$1(`Не удалось найти опцию с ${J.idField}=${V.value}`)))),un=un.splice(0,J.maxOptionCount),un});function Vt(){if(Ft.value){const un=Ft.value.getBoundingClientRect();Nt.value.left=un.left,Nt.value.width=un.width}}function $t(){if(!V.value){Ct.value=null,M.value=null,N("clear");return}const un=J.data.find(an=>an[J.idField]===V.value)||Ot.value.find(an=>an[J.idField]===V.value)||M.value;un?(Ct.value=zt(un),M.value=un):(Ct.value="Нет в списке",M.value=null)}function zt(un,an=J.displayExpr){if(typeof an=="function")return String(an(un));if(typeof an=="string")return String(un?.[an]);if(Array.isArray(an)){let dn="";for(let fn=0;fn<an.length;fn++){if(!un?.[an[fn]]&&!an[fn].startsWith("*")){J.devMode&&console.error(`Cant find ${an[fn]} in record with ${J.idField} = ${un[J.idField]}`);continue}if(an[fn].startsWith("*")){const fr=an[fn].slice(1);dn+=String(fr)}else dn+=String(un?.[an[fn]]);fn<an.length-1&&(dn+=" ")}return dn}return null}function Wt(un){return zt(un,J.displayExprLow)}function Xt(un){if(M.value=un||null,un[J.idField]===V.value&&J.clearable){nn();return}ze.value=!1,V.value=un[J.idField],Ct.value=zt(un),Ot.value.push(un),N("onSelectObject",un),Ot.value.length>J.maxOptionHistoryLength&&(Ot.value=Ot.value.slice(1,Ot.value.length))}function jt(){J.disabled||(ze.value=!ze.value,Vt())}function hn(un){Ft.value&&!Ft.value.contains(un.target)&&(ze.value=!1)}vue.onMounted(()=>{document.addEventListener("click",hn),window.addEventListener("resize",Vt)}),vue.onBeforeUnmount(()=>{document.removeEventListener("click",hn),window.removeEventListener("resize",Vt)});function ln(){yt.value=!0,ze.value=!0,Vt(),Tt.start()}function bn(){yt.value&&!Ct.value?.length&&J.clearable&&nn(),setTimeout(()=>{yt.value=!1},200)}function nn(){V.value=null,Ct.value=null,N("onSelectObject",null),N("clear")}function yn(){N("input",Ct.value||"")}return(un,an)=>{const dn=vue.resolveComponent("PerfectScrollbar");return vue.openBlock(),vue.createBlock(vue.unref(kt),{shown:ze.value,triggers:[],autoHide:!1,noAutoFocus:""},{popper:vue.withCtx(()=>[vue.createVNode(dn,{class:"max-h-96 min-w-[350px]",style:vue.normalizeStyle({width:Nt.value.width+"px"})},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(It.value,fn=>(vue.openBlock(),vue.createBlock(ReSimpleOption,{onSelect:fr=>Xt(fn),item:fn,selected:fn[J.idField]===V.value,key:fn[J.idField],label:zt(fn),labelLow:Wt(fn),disabled:typeof J.optionDisabled=="function"?J.optionDisabled(fn):!1},null,8,["onSelect","item","selected","label","labelLow","disabled"]))),128)),It.value.length===0?(vue.openBlock(),vue.createBlock(ReSimpleOption,{key:0,disabled:"",label:"Нет данных"})):vue.createCommentVNode("",!0)]),_:1},8,["style"])]),default:vue.withCtx(()=>[vue.createElementVNode("div",{ref_key:"dropdown",ref:Ft,onClick:vue.withModifiers(jt,["prevent"]),class:"relative"},[vue.createElementVNode("label",{class:vue.normalizeClass({"flex flex-row gap-2 items-center":J.variant=="left-label"})},[vue.createElementVNode("p",_hoisted_1$x,[vue.createTextVNode(vue.toDisplayString(J.label)+" ",1),J.required&&!V.value?(vue.openBlock(),vue.createElementBlock("span",_hoisted_2$r,"*")):vue.createCommentVNode("",!0)]),J.description?(vue.openBlock(),vue.createElementBlock("p",_hoisted_3$m,vue.toDisplayString(J.description),1)):vue.createCommentVNode("",!0),vue.createElementVNode("div",{class:vue.normalizeClass(["flex justify-between items-center border px-1 rounded border-slate-200 bg-white",{"bg-gray-100":J.disabled,"w-full":J.variant=="left-label","h-8":J.compact}])},[vue.withDirectives(vue.createElementVNode("input",{class:"border-none bg-transparent w-full text-sm focus:ring-0",readonly:J.disabled,onInput:ln,onBlur:bn,placeholder:J.placeholder,type:"text","onUpdate:modelValue":an[0]||(an[0]=fn=>Ct.value=fn),required:J.required},null,40,_hoisted_4$k),[[vue.vModelText,Ct.value]]),J.isLoading?(vue.openBlock(),vue.createBlock(vue.unref(Z1),{key:J.isLoading,name:"spinner",class:"px-1 text-gray-300 animate-spin"})):vue.createCommentVNode("",!0),V.value&&J.clearable&&!J.disabled?(vue.openBlock(),vue.createBlock(vue.unref(Z1),{key:1,name:"xmark",class:"px-1 text-gray-300 hover:text-gray-600",onClickOnce:nn})):vue.createCommentVNode("",!0),vue.createVNode(vue.unref(Z1),{onClick:an[1]||(an[1]=()=>console.log(123)),name:"chevron-down",style:vue.normalizeStyle({color:J.disabled?"gray":"rgb(108, 139, 201)"}),class:"px-1 hover:bg-slate-100 rounded-full cursor-pointer py-1"},null,8,["style"])],2)],2)],512)]),_:1},8,["shown"])}}},_hoisted_1$w={class:"border p-2 rounded"},_hoisted_2$q={class:"grid grid-cols-2 gap-1"},_hoisted_3$l={class:"border p-2 rounded"},_hoisted_4$j={class:"grid grid-cols-2 gap-1"},_hoisted_5$i={class:"flex gap-3"},_hoisted_6$i={class:"w-[50%] preparat-tooltip-wrapper"},_hoisted_7$h={class:"w-[50%] preparat-tooltip-wrapper"},_hoisted_8$f={class:"flex gap-2 w-full border p-2 rounded-lg"},_hoisted_9$d={class:"preparat-tooltip-wrapper"},_hoisted_10$c={key:0,class:"text-xs text-amber-600 cursor-help border-b border-dashed border-amber-300",title:"При копировании потребности можно заменить препарат на другой только с таким же МНН"},_hoisted_11$b={key:2,class:"flex flex-col gap-1"},_hoisted_12$a={class:"text-sm border rounded px-3 py-1 bg-gray-100 text-gray-800 text-balance"},_hoisted_13$9={class:"flex gap-3"},_hoisted_14$7={class:"preparat-tooltip-wrapper"},_hoisted_15$6={class:"flex gap-3"},_sfc_main$D={__name:"ApplicationFormFields",props:{formData:{type:Object,required:!0},readOnly:{type:Boolean,default:!1},user:{type:Object,required:!0},listDivision:{type:Array,default:()=>[]},selectListLgots:{type:Array,default:()=>[]},api_listProgramms:{type:Array,default:()=>[]},listPreparatsFiltered:{type:Array,default:()=>[]},listDiagnosis:{type:Array,default:()=>[]},selectedPreparatSign:{type:Boolean,default:!1},isNewNeed:{type:Boolean,default:!0},isMkbDisabled:{type:Boolean,default:!1},VKtrue:{type:Boolean,default:!1},isViewSignPreparat:{type:[Boolean,null],default:null},attributesPreparatTemplate:{type:Array,default:()=>[]},preparatDisplayExpr:{type:Function,default:()=>{}},preparatDisplayExprLow:{type:Function,default:()=>{}},labelLgota:{type:String,default:"Льгота"},nameActionCopyNeed:{type:Object,default:null}},emits:["removeLeadingZero","update:isViewSignPreparat"],setup(e,{expose:I,emit:N}){const J=e,V=N,M=vue.ref(null),ze=vue.computed(()=>J.listPreparatsFiltered?.filter(Nt=>J.isViewSignPreparat===null?!0:Nt.Sign===J.isViewSignPreparat)||[]),yt=vue.ref(""),Ct=vue.ref(""),Ft=vue.ref(""),Tt=vue.ref("");vue.watch(()=>J.formData?.Mkb10Id,Nt=>{if(!J.listDiagnosis?.length||!Nt){Tt.value="";return}const It=J.listDiagnosis.find(Vt=>Vt.Id===Nt);Tt.value=It?`${It.Code} ${It.Name}`:""},{immediate:!0}),vue.watch(()=>J.formData?.LgotaId,Nt=>{if(!J.selectListLgots?.length||!Nt){yt.value="";return}const It=J.selectListLgots.find(Vt=>Vt.Id===Nt);yt.value=It?`(${It.BenefitCodeShort}) ${It.BenefitNameLong}`:""},{immediate:!0}),vue.watch(()=>J.formData?.ProgramId,Nt=>{if(!J.api_listProgramms?.length||!Nt){Ct.value="";return}const It=J.api_listProgramms.find(Vt=>Vt.Id===Nt);Ct.value=It?`(${It.Name})`:""},{immediate:!0}),vue.watch(()=>J.formData?.TemplatePreparatId,Nt=>{if(!ze.value?.length||!Nt){Ft.value="";return}const It=J.preparatDisplayExpr(ze.value.find(Vt=>Vt.Id===Nt));Ft.value=It?`(${It})`:""},{immediate:!0});function Ot(Nt){V("removeLeadingZero",Nt)}return I({formRef:M,reportValidity:()=>M.value?.reportValidity()}),(Nt,It)=>(vue.openBlock(),vue.createElementBlock("fieldset",null,[vue.createElementVNode("form",{ref_key:"formRef",ref:M,class:"flex flex-col gap-1"},[e.user.LpuId=="e41d5246-7a49-4b5a-a306-00ef5125d3d8"?(vue.openBlock(),vue.createBlock(vue.unref(jc),{key:0,label:"Дополнительная заявочная кампания",modelValue:e.formData.Additional,"onUpdate:modelValue":It[0]||(It[0]=Vt=>e.formData.Additional=Vt)},null,8,["modelValue"])):vue.createCommentVNode("",!0),vue.createVNode(_sfc_main$G,{label:"Дата заявки",modelValue:e.formData.DateNeed,"onUpdate:modelValue":It[1]||(It[1]=Vt=>e.formData.DateNeed=Vt),disabled:""},null,8,["modelValue"]),vue.createElementVNode("div",_hoisted_1$w,[It[19]||(It[19]=vue.createElementVNode("p",{class:"font-semibold text-sm"},"ВК",-1)),It[20]||(It[20]=vue.createElementVNode("hr",null,null,-1)),vue.createElementVNode("div",_hoisted_2$q,[vue.createVNode(vue.unref($A),{label:"Номер ВК",modelValue:e.formData.NumberVK,"onUpdate:modelValue":It[2]||(It[2]=Vt=>e.formData.NumberVK=Vt),mask:"00000000000",tokens:"0:\\d:optional",required:!e.selectedPreparatSign,disabled:e.readOnly},null,8,["modelValue","required","disabled"]),vue.createVNode(_sfc_main$G,{label:"Дата ВК",modelValue:e.formData.DateVK,"onUpdate:modelValue":It[3]||(It[3]=Vt=>e.formData.DateVK=Vt),required:!e.selectedPreparatSign,disabled:e.readOnly},null,8,["modelValue","required","disabled"])])]),vue.createElementVNode("div",_hoisted_3$l,[It[21]||(It[21]=vue.createElementVNode("p",{class:"font-semibold text-sm"},"НПР",-1)),It[22]||(It[22]=vue.createElementVNode("hr",null,null,-1)),vue.createElementVNode("div",_hoisted_4$j,[vue.createVNode(vue.unref($A),{label:"Номер НПР",modelValue:e.formData.NprNumber,"onUpdate:modelValue":It[4]||(It[4]=Vt=>e.formData.NprNumber=Vt),mask:"00000000000",tokens:"0:\\d:optional",required:!!e.formData.NprDate,disabled:e.readOnly},null,8,["modelValue","required","disabled"]),vue.createVNode(_sfc_main$G,{label:"Дата НПР",modelValue:e.formData.NprDate,"onUpdate:modelValue":It[5]||(It[5]=Vt=>e.formData.NprDate=Vt),required:!!e.formData.NprNumber,disabled:e.readOnly},null,8,["modelValue","required","disabled"])])]),vue.unref(lpusWithDivision).includes(e.user.LpuId)?(vue.openBlock(),vue.createBlock(_sfc_main$O,{key:1,data:e.listDivision,label:"Отделение",modelValue:e.formData.DivisionId,"onUpdate:modelValue":It[6]||(It[6]=Vt=>e.formData.DivisionId=Vt),required:"",clearable:"",disabled:e.readOnly},null,8,["data","modelValue","disabled"])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_5$i,[vue.createElementVNode("div",_hoisted_6$i,[vue.createVNode(vue.unref(Ts),{text:yt.value,placement:"top"},{default:vue.withCtx(()=>[vue.createVNode(_sfc_main$O,{ref:"fieldLgota",label:e.labelLgota,modelValue:e.formData.LgotaId,"onUpdate:modelValue":It[7]||(It[7]=Vt=>e.formData.LgotaId=Vt),data:e.selectListLgots,"display-expr":Vt=>"("+Vt.BenefitCodeShort+") "+Vt.BenefitNameLong,required:"",clearable:"",disabled:!e.isNewNeed||e.readOnly},null,8,["label","modelValue","data","display-expr","disabled"])]),_:1},8,["text"])]),vue.createElementVNode("div",_hoisted_7$h,[vue.createVNode(vue.unref(Ts),{text:Ct.value,placement:"top"},{default:vue.withCtx(()=>[vue.createVNode(_sfc_main$O,{required:"",label:"Программа",modelValue:e.formData.ProgramId,"onUpdate:modelValue":It[8]||(It[8]=Vt=>e.formData.ProgramId=Vt),data:e.api_listProgramms,disabled:""},null,8,["modelValue","data"])]),_:1},8,["text"])])]),vue.createElementVNode("div",_hoisted_8$f,[vue.createVNode(vue.unref(Bv1),{label:"Выбор признака ЛП при поиске в поле [Препарат]","model-value":e.isViewSignPreparat,"onUpdate:modelValue":It[9]||(It[9]=Vt=>V("update:isViewSignPreparat",Vt))},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(e.attributesPreparatTemplate,Vt=>(vue.openBlock(),vue.createBlock(vue.unref(Tv1),{value:Vt.value,label:Vt.label,disabled:e.readOnly||e.nameActionCopyNeed?.state},null,8,["value","label","disabled"]))),256))]),_:1},8,["model-value"])]),vue.createElementVNode("div",_hoisted_9$d,[e.nameActionCopyNeed?.state===vue.unref(listStateActionCopy).CHANGE_LP.state?(vue.openBlock(),vue.createElementBlock("span",_hoisted_10$c," 🔄 Возможна замена только по ранее одобренной\\отклоненной МНН ")):vue.createCommentVNode("",!0),vue.createVNode(vue.unref(Ts),{text:Ft.value,placement:"top"},{default:vue.withCtx(()=>[(vue.openBlock(),vue.createBlock(_sfc_main$E,{key:ze.value.length,modelValue:e.formData.TemplatePreparatId,"onUpdate:modelValue":It[10]||(It[10]=Vt=>e.formData.TemplatePreparatId=Vt),data:ze.value,"display-expr":e.preparatDisplayExpr,"display-expr-low":e.preparatDisplayExprLow,searchByLowField:!e.nameActionCopyNeed,disabled:!e.formData.ProgramId||e.readOnly||e.nameActionCopyNeed?.state===vue.unref(listStateActionCopy).BLOCK_CHANGE_LP.state,clearable:!e.nameActionCopyNeed},null,8,["modelValue","data","display-expr","display-expr-low","searchByLowField","disabled","clearable"]))]),_:1},8,["text"])]),e.VKtrue?(vue.openBlock(),vue.createElementBlock("div",_hoisted_11$b,[It[23]||(It[23]=vue.createElementVNode("p",{class:"text-sm font-medium"},"Торговое наименование",-1)),vue.createElementVNode("p",_hoisted_12$a,vue.toDisplayString(ze.value.find(Vt=>Vt.Id==e.formData.TemplatePreparatId)?.TradeName),1)])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_13$9,[vue.createVNode(vue.unref(jc),{label:"Взаимозаменяемость",modelValue:e.formData.Interchangeability,"onUpdate:modelValue":It[11]||(It[11]=Vt=>e.formData.Interchangeability=Vt),disabled:e.readOnly},null,8,["modelValue","disabled"]),vue.createCommentVNode("",!0)]),vue.createElementVNode("div",_hoisted_14$7,[vue.createVNode(vue.unref(Ts),{text:Tt.value,placement:"top"},{default:vue.withCtx(()=>[vue.createVNode(_sfc_main$H,{label:"Диагноз",modelValue:e.formData.Mkb10Id,"onUpdate:modelValue":It[13]||(It[13]=Vt=>e.formData.Mkb10Id=Vt),required:"",clearable:"",disabled:e.isMkbDisabled||e.readOnly,"list-diagnosis":e.listDiagnosis},null,8,["modelValue","disabled","list-diagnosis"])]),_:1},8,["text"])]),vue.createVNode(vue.unref(o$),{label:"Примечание",modelValue:e.formData.Comment,"onUpdate:modelValue":It[14]||(It[14]=Vt=>e.formData.Comment=Vt),readonly:e.readOnly},null,8,["modelValue","readonly"]),vue.createElementVNode("div",_hoisted_15$6,[vue.createVNode(vue.unref($A),{id:"CountMonth",label:"Кол-во упаковок на 1 месяц",mask:"0",tokens:"0:\\d:multiple",modelValue:e.formData.CountMonth,"onUpdate:modelValue":It[15]||(It[15]=Vt=>e.formData.CountMonth=Vt),disabled:e.readOnly,required:"",onInput:It[16]||(It[16]=Vt=>Ot(Vt))},null,8,["modelValue","disabled"]),vue.createVNode(vue.unref($A),{id:"CountYear",label:"Кол-во упаковок на 1 год",mask:"0",tokens:"0:\\d:multiple",modelValue:e.formData.CountYear,"onUpdate:modelValue":It[17]||(It[17]=Vt=>e.formData.CountYear=Vt),disabled:e.readOnly,required:"",onInput:It[18]||(It[18]=Vt=>Ot(Vt))},null,8,["modelValue","disabled"])])],512)]))}},_hoisted_1$v={key:0},_hoisted_2$p={class:"p-3"},_hoisted_3$k={class:"w-full h-full absolute top-0 left-0 flex justify-center items-center animate-pulse z-[5000]"},_hoisted_4$i={class:"flex justify-end gap-3"},_hoisted_5$h={key:1},_hoisted_6$h={class:"pl-1 pr-1 relative"},_hoisted_7$g={class:"w-full h-full absolute top-0 left-0 flex justify-center items-center animate-pulse z-[5000]"},_sfc_main$C={__name:"ApplicationForm",props:vue.mergeModels({noModal:{type:Boolean,default:!1},needId:{type:String,default:""},waitRequest:{type:Boolean,default:!1},patientId:{type:String,default:"",required:!0},patientSnils:{type:String,default:"",required:!0},userOpen:{type:Object,default:{},required:!0},selectedApplication:{type:Object,default:{}},hiddenControl:{type:Boolean,default:!1},additional:{type:Boolean,default:!1},docAppYear:{type:Number,required:!0},api_listBenefits:{type:Array,default:[]},api_listPreparats:{type:Array,default:[]},api_listProgramms:{type:Array,default:[]},api_historyLgots:{type:Array,default:[]},api_activeLgots:{type:Array,default:[]},api_listDiagnosis:{type:Array,default:[]},api_appDocuments:{type:Array,default:[]}},{readOnly:{default:!1},readOnlyModifiers:{},stateActionCopy:{default:null},stateActionCopyModifiers:{},dataNeedCopy:{default:null},dataNeedCopyModifiers:{},modalVisible:{default:!1},modalVisibleModifiers:{},waitRequest:{default:!1},waitRequestModifiers:{}}),emits:vue.mergeModels(["onSave","onDelete"],["update:readOnly","update:stateActionCopy","update:dataNeedCopy","update:modalVisible","update:waitRequest"]),setup(e,{expose:I,emit:N}){const{getBenefitList:J,getBenefitListV2:V}=useBenefit(),M=e,ze=vue.computed(()=>M.userOpen),yt=N,Ct=vue.useModel(e,"readOnly"),Ft=vue.useModel(e,"stateActionCopy"),Tt=vue.useModel(e,"dataNeedCopy"),Ot=vue.useModel(e,"modalVisible"),Nt=vue.useModel(e,"waitRequest"),It=vue.ref(M.api_listProgramms),Vt=vue.ref(M.api_listBenefits),$t=vue.ref(M.api_listPreparats),zt=vue.ref(M.api_historyLgots),Wt=vue.ref(M.api_activeLgots),Xt=vue.ref(M.api_listDiagnosis),jt=vue.ref(M.api_appDocuments),hn=vue.ref(null),ln=vue.ref(null),bn=vue.ref(!1),nn=vue.ref(M.selectedApplication),yn=vue.ref(M.hiddenControl),un=vue.ref(M.needId),an=Object.values(approvedBenefitProgram),dn=vue.ref(!0),fn=vue.ref(!1),fr=vue.ref("Льгота"),lr=vue.computed(()=>!!ze.value.Permissions.find(pa=>["0","1","40"].includes(pa.AccessCode))),Hn=vue.ref([]),Kt=vue.ref([]),Mn=vue.ref({}),Bn=vue.computed(()=>Kt.value?.find(pa=>pa.Id===ir.value.TemplatePreparatId)),gr=vue.computed(()=>!!Bn.value?.Sign),Cn=vue.ref(null),_n=vue.computed(()=>[{label:"Только ЖВ",value:!0},{label:"Только НЕ ЖВ",value:!1},{label:"Все",value:null}]),An=vue.ref(!1),Vn=vue.computed(()=>{if(ir.value?.ProgramId){let pa=Kt.value;noSignPrograms.includes(ir.value.ProgramId)&&(pa=pa.filter(hu=>hu.Sign));let wa=Object.keys(programToPreparat).find(hu=>hu==ir.value.ProgramId);return wa&&(pa=pa.filter(hu=>hu[programToPreparat[wa]])),pa}return[]}),nr=vue.ref([]),hr=vue.ref([]),zn=vue.ref([]),tr=vue.ref([]),on=vue.ref(!1),vr=vue.ref(!1),ir=vue.ref({DateNeed:new Date().toLocaleDateString("ru-RU"),Additional:M.additional,Interchangeability:!1});vue.onMounted(()=>{yr()});const yr=async()=>{try{if(Yd(),await zl(),Ct.value)Hn.value=tr.value;else{const pa=It.value?.find(hu=>hu.Id===nn?.value?.Program),wa=pa?.BenefitProgramId;if(wa){const hu=zn.value?.filter(no=>no.ProgramId===wa);if(!hu?.length){notifyError$1(`Отсутствует активная льгота по программе ${pa.ProgramName}`,15e3,"Нет активных льгот"),Hn.value=[];return}Hn.value=hu}else Hn.value=zn.value}lpusWithDivision.includes(ze.value.LpuId)&&rd(),await Jr()}catch(pa){const wa=pa.response?.data?.message||pa.message||"Неизвестная ошибка";notifyError$1(`${wa}. Пожалуйста, откройте потребность повторно`,15e3,"Ошибка загрузки данных"),console.error(pa)}finally{qo()}};async function Ur(){if(ir.value.Id){if(vr.value){notifySuccess("Потребность уже была сохранена. Закройте форму!");return}await Fo().then(async pa=>{ir.value.Id=null,await Or()}).catch(pa=>{pa.response.data&&notifyError$1(pa.response.data)}).finally(()=>{})}}async function Or(pa=null){if(vr.value=!1,!!ln.value?.reportValidity?.()){if(ir.value.NprNumber||ir.value.NprDate?ir.value.Npr=!0:ir.value.Npr=!1,!ir.value.LgotaId){notifyError$1("Льгота не выбрана");return}if(!ir.value.TemplatePreparatId){notifyError$1("Препарат не выбран");return}if(!gr.value&&(!ir.value.NumberVK||!ir.value.DateVK)){notifyError$1("Для выбранного препарата требуется заполнить номер и дату ВК");return}if(ir.value.NprNumber&&!ir.value.NprDate){notifyError$1("Заполните дату НПР для указанного номера НПР");return}if(ir.value.NprDate&&!ir.value.NprNumber){notifyError$1("Заполните номер НПР для указанной даты НПР");return}if(!ir.value.ProgramId){notifyError$1("Программа не выбрана");return}if(lpusWithDivision.includes(ze.value.LpuId)&&!ir.value.DivisionId){notifyError$1("Отделение не выбрано");return}if(fn.value){notifyError$1("Невозможно сохранить потребность при неактивной льготе");return}on.value!=!0&&(Yd(),on.value=!0,ir.value.LpuId=ze.value.LpuId,ir.value.EmployeePostId=ze.value.Id,ir.value.PatientId=M.patientId,ir.value.CountMonth=Number(ir.value.CountMonth),ir.value.CountYear=Number(ir.value.CountYear),await window.axios({url:window.localhost+`ApplicationCompany/PatientNeeds?Id=${ir.value.Id??""}${"&AppDocId="+Mn.value.Id}`,method:"post",data:ir.value}).then(async wa=>{if(pa)return{state:200};ir.value.Id||(ir.value.Id=wa.data.Id),notifySuccess("Сохранено"),yt("onSave"),on.value=!1,vr.value=!0}).catch(wa=>{if(wa.response.data&&notifyError$1(wa.response.data),pa)return{state:500};on.value=!1}).finally(()=>{qo()}))}}async function rr(){Yd(),await window.axios.delete(window.localhost+`ApplicationCompany/PatientNeeds?PatientNeedId=${ir.value.Id}`).then(async()=>{await Jr(),notifySuccess("Удалено"),yt("onDelete"),Ot.value=!1}).catch(pa=>{pa?.response?.data?.Status?notifyError$1(pa.response.data.Status):notifyError$1("Произошла ошибка при удалении")}).finally(()=>qo())}async function Fo(){return await window.axios.delete(window.localhost+`ApplicationCompany/PatientNeeds?PatientNeedId=${ir.value.Id}`).catch(pa=>(pa.response.data.Status&&notifyError$1(pa.response.data.Status),"error"))}async function Fr(){if(jt.value?.length===0&&(jt.value=await window.axios.get(window.localhost+"ApplicationCompany/AppDocuments").then(pa=>pa.data)),Ct.value?Mn.value=jt.value?.filter(pa=>pa.Name.includes(`${M.docAppYear}`))[0]??[]:Mn.value=jt.value?.filter(pa=>!pa.Deleted&&pa.Name.includes(`${M.docAppYear}`))[0]??[],!Mn?.value?.Id){notifyError$1(`Неудалось получить перечень ЛП из шаблона за ${M.docAppYear} год. Пожалуйста, откройте потребность повторно или обратитесь в службу. тех. поддержки!`,15e3,"Ошибка загрузки данных"),An.value=!0;return}}async function br(){$t.value?.length===0&&($t.value=await window.axios.get(window.localhost+`ApplicationCompany/TemplatePreparatList?DocumentId=${Mn.value.Id}`).then(wa=>wa.data));const pa=$t?.value?.filter(wa=>wa.AppDocumentId===Mn.value.Id);if(!Ct.value&&pa){const hu=pa.filter(no=>!no.Deleted).filter(no=>!no.DeletedDate);Kt.value=hu}else Kt.value=pa}async function Jr(){Td();let pa=null;if(Tt?.value)pa=Tt.value;else if(M.needId)pa=await window.axios.get(window.localhost+`ApplicationCompany/PatientNeeds?Id=${M.needId}`).then(wa=>wa.data[0]);else return;pa?.DateNeed&&(pa.DateNeed=Ft?.value?new Date().toLocaleDateString("ru-RU"):pa.DateNeed),Ft?.value?.state?.includes("change")&&(pa.NumberVK=null,pa.DateVK=null,pa.Npr=!1,pa.NprDate=null,pa.NprNumber=null),ir.value=pa,console.log("formData ",ir.value)}async function Bo(){It.value?.length===0&&(It.value=await window.axios.get(window.localhost+"PreparatProgram?BaseProgram=true").then(pa=>pa.data.Body.filter(wa=>wa.BenefitProgramId).map(wa=>({...wa,label:wa.ValidName,Name:wa.ValidName}))))}async function Br(){try{if(Xt.value?.length===0){const pa=await api$1.Mkb.get();Xt.value=pa.data}}catch(pa){notifyError$1("Ошибка загрузки справочника МКБ. Пожалуйста, откройте потребность повторно",15e3,"Ошибка загрузки данных"),console.error(pa)}finally{}}async function ga(){zt.value?.length===0&&M.patientSnils&&(zt.value=await J({Snils:M.patientSnils})||null),Wt.value?.length===0&&M.patientSnils&&(Wt.value=(await V({Snils:M.patientSnils,Monetized:!1,Active:!0,Deleted:!1})).filter(pa=>Object.values(an).includes(pa.BenefitProgram))||null),nr.value=zt.value,hr.value=Wt.value}async function ud(){Vt.value?.length===0&&(Vt=await window.axios.get(window.localhost+"refs/BenefitMap").then(pa=>(pa.data?.length?pa.data:pa.data.Body).map(hu=>({...hu})))),nr.value?.length!==0&&(tr.value=Vt.value?.filter(pa=>nr.value.map(wa=>wa.BenefitCodeShort).includes(pa.BenefitCodeShort))),hr.value?.length!==0&&(zn.value=Vt.value?.filter(pa=>hr.value.map(wa=>wa.BenefitCodeShort).includes(pa.BenefitCodeShort)))}async function zl(){await Fr(),await br(),await Br(),await Bo(),await ga(),await ud()}function Td(){ir.value={DateNeed:new Date().toLocaleDateString("ru-RU"),Additional:M.additional,Interchangeability:!1}}vue.watch(()=>Cn.value,()=>{ir.value.TemplatePreparatId=null},{deep:!0}),vue.watch(()=>ir.value.LgotaId,async(pa,wa)=>{if(pa==null){ir.value.Mkb10Id=null,ir.value.ProgramId=null,ir.value.TemplatePreparatId=null,bn.value=!1;return}const no=Hn.value.find(ld=>ld.Id==ir.value.LgotaId)?.BenefitCodeShort,ru=hr.value.find(ld=>ld.BenefitCodeShort==no)?.MkbId;let gl;ir.value.Id?gl=ir.value.Mkb10Id||ru:gl=ru,["Заявка одобрена","Заявка отклонена"].includes(ir.value.ApplicationsStatus)||hr.value.some(ha=>ha.BenefitCodeShort==no)||(Hn.value=tr.value,gl=nr.value.find(ha=>ha.BenefitCodeShort==no)?.MkbId||ir.value.Mkb10Id,hn.value?.$el?.style?.setProperty("background-color","#f9c7c8"),fr.value="Льгота неактивна",fn.value=!0,notifyError$1("Льгота неактивна!",15e3,"ВНИМАНИЕ!"),notifyWarning("Указанная льгота в потребности в данный момент является неактивной! Необходимо принять меры по актуализации потребности(пересоздать) или льготы(восстановить)!",15e3,"Уведомление системы")),ir.value.ProgramId=It.value?.find(ld=>ld.BenefitProgramId==Hn.value?.find(ha=>ha.Id==ir.value.LgotaId)?.ProgramId)?.Id,gl?(ir.value.Mkb10Id=gl,bn.value=!0):Ct.value||(ir.value.Mkb10Id=null,bn.value=!1)},{deep:!0}),vue.watch(()=>ir.value.TemplatePreparatId,(pa,wa)=>{if(!pa)return;if(Ft?.value?.state===listStateActionCopy.CHANGE_LP.state){const ld=["глюкометр","иглы инсулиновые","инфузионные наборы к инсулиновой помпе","медицинские изделия","резервуар к инсулиновой помпе","Резервуары к инсулиновой помпе","Специализированный продукт лечебного питания","тест для определения содержания глюкозы в крови","тест-полоски","шприц - ручка"],ha=Kt?.value?.find(ko=>ko.Id===pa)?.Mnn?.trim()?.toLowerCase();if(!ha){notifyError$1("Не указан МНН у мед. продукции",15e3,"Ошибка в шаблоне ЛП"),Ft.value=listStateActionCopy.BLOCK_CHANGE_LP,Ct.value=!0;return}const Cd=ld.some(ko=>ha===ko.toLowerCase());if(ha&&!Cd){const ko=Kt.value.filter(La=>La.Mnn?.trim().toLowerCase()===ha);Kt.value=ko}else notifyWarning("Изменять по МНН можно только для ЛП",15e3,"Уведомление системы!"),Ft.value=listStateActionCopy.BLOCK_CHANGE_LP}if(!ir.value.ProgramId||!ir.value.TemplatePreparatId)return;const hu=Kt.value?.find(ld=>ld.Id===ir.value.TemplatePreparatId),no=It.value?.find(ld=>ld.Id===ir.value.ProgramId)?.ProgramName??"Неизвестная программа";let jo=Vn.value,ru=jo.some(ld=>ld.Id===ir.value.TemplatePreparatId),gl=(hu?`Неверно выбранный препарат ${hu.Mnn} ${hu.FullName}`:"Не найден препарат в справочнике").trimStart().trimEnd();if(!ru&&jo?.length>0){const ld=`${gl} для программы ${no}`;notifyError$1(ld),Ct.value||(notifyWarning("Выберите заново препарат!"),ir.value.TemplatePreparatId=null)}},{deep:!0}),vue.watch(()=>ir.value.Id,pa=>{dn.value=!pa},{deep:!0});const os=vue.computed(()=>ir.value.NumberVK&&ir.value.DateVK);function Fu(pa){return pa.CodeOKPD2=="1.2.643.5.1.13.13.99.2.1212"&&pa.CodeATX=="Лекарственные препараты и специализированные продукты лечебного питания"?pa.TradeName:""}function Wo(pa){const wa=[];return pa.Mnn&&wa.push(pa.Mnn),pa.FullName&&wa.push(pa.FullName),pa.MaxPriceWithVat&&wa.push(`(Цена: ${pa.MaxPriceWithVat??"не указана"})`),pa.CountInPackage&&wa.push(`(в уп-ке: ${pa.CountInPackage??"не указано"})`),typeof pa.Sign=="boolean"&&wa.push(`(${pa.Sign?"ЖВ":"Не ЖВ"})`),wa.join(" ")}const Yo=vue.ref([]);async function rd(){Yo.value=await window.axios.get(window.localhost+`Frmo?LpuId=${ze.value.LpuId}&TypeCode=18`).then(pa=>pa.data)}async function Yd(){Nt.value=!0,await vue.nextTick()}function qo(){Nt.value=!1}function Po(pa){const wa=pa.target.value;wa.startsWith("0")&&(pa.target.value=wa.replace(/^0+/,""),pa.target.id==="CountMonth"&&(ir.value.CountMonth=pa.target.value),pa.target.id==="CountYear"&&(ir.value.CountYear=pa.target.value))}return I({save:Or,loadData:yr,resetFormData:Td}),(pa,wa)=>e.noModal?(vue.openBlock(),vue.createElementBlock("div",_hoisted_5$h,[vue.createElementVNode("div",_hoisted_6$h,[vue.withDirectives(vue.createElementVNode("div",_hoisted_7$g,[...wa[12]||(wa[12]=[vue.createElementVNode("div",{class:"bg-black/60 w-full h-full absolute top-0 left-0 z-[5001]"},null,-1),vue.createElementVNode("div",{class:"bg-white rounded-lg p-4 flex flex-row gap-3 items-center z-[5002]"},[vue.createElementVNode("div",{role:"status"},[vue.createElementVNode("svg",{"aria-hidden":"true",class:"w-8 h-8 text-gray-200 animate-spin dark:text-gray-300 fill-blue-600",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[vue.createElementVNode("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",fill:"currentColor"}),vue.createElementVNode("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",fill:"currentFill"})])]),vue.createElementVNode("div",null,[vue.createElementVNode("p",{class:"font-bold"},"Загрузка данных"),vue.createElementVNode("p",{class:"text-sm text-gray-500"},"Пожалуйста, подождите...")])],-1)])],512),[[vue.vShow,Nt.value]]),vue.createVNode(_sfc_main$D,{ref_key:"formRef",ref:ln,formData:ir.value,readOnly:Ct.value,user:ze.value,listDivision:Yo.value,selectListLgots:Hn.value,api_listProgramms:It.value,listPreparatsFiltered:Vn.value,selectedPreparatSign:gr.value,isNewNeed:dn.value,isMkbDisabled:bn.value,VKtrue:os.value,isViewSignPreparat:Cn.value,"onUpdate:isViewSignPreparat":wa[7]||(wa[7]=hu=>Cn.value=hu),attributesPreparatTemplate:_n.value,preparatDisplayExpr:Wo,preparatDisplayExprLow:Fu,labelLgota:fr.value,onRemoveLeadingZero:Po,nameActionCopyNeed:Ft.value,listDiagnosis:Xt.value},null,8,["formData","readOnly","user","listDivision","selectListLgots","api_listProgramms","listPreparatsFiltered","selectedPreparatSign","isNewNeed","isMkbDisabled","VKtrue","isViewSignPreparat","attributesPreparatTemplate","labelLgota","nameActionCopyNeed","listDiagnosis"])])])):(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$v,[vue.createVNode(vue.unref(_s),{size:"2xl",title:`${nn.value?.Additional??ir.value.Additional?"Дополнительная":"Основная"} заявка${nn.value?.Number?` № ${nn.value.Number}`:""} на ${e.docAppYear} год ${vr.value?"(Сохранено)":""}`,modelValue:Ot.value,"onUpdate:modelValue":wa[5]||(wa[5]=hu=>Ot.value=hu),onKeydown:wa[6]||(wa[6]=vue.withKeys(hu=>Ct.value?hu.preventDefault():null,["tab"]))},{default:vue.withCtx(()=>[An.value?(vue.openBlock(),vue.createElementBlock("div",{key:0,onKeydown:wa[0]||(wa[0]=vue.withKeys(vue.withModifiers(()=>{},["prevent"]),["tab"])),tabindex:"0",style:{position:"absolute",inset:"0",background:"rgba(200, 200, 200, 0.5)","z-index":"999","pointer-events":"all"}},null,32)):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_2$p,[vue.withDirectives(vue.createElementVNode("div",_hoisted_3$k,[...wa[8]||(wa[8]=[vue.createElementVNode("div",{class:"bg-black/60 w-full h-full absolute top-0 left-0 z-[5001]"},null,-1),vue.createElementVNode("div",{class:"bg-white rounded-lg p-4 flex flex-row gap-3 items-center z-[5002]"},[vue.createElementVNode("div",{role:"status"},[vue.createElementVNode("svg",{"aria-hidden":"true",class:"w-8 h-8 text-gray-200 animate-spin dark:text-gray-300 fill-blue-600",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[vue.createElementVNode("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",fill:"currentColor"}),vue.createElementVNode("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",fill:"currentFill"})])]),vue.createElementVNode("div",null,[vue.createElementVNode("p",{class:"font-bold"},"Загрузка данных"),vue.createElementVNode("p",{class:"text-sm text-gray-500"},"Пожалуйста, подождите...")])],-1)])],512),[[vue.vShow,Nt.value]]),vue.createVNode(_sfc_main$D,{ref_key:"formRef",ref:ln,formData:ir.value,readOnly:Ct.value,user:ze.value,listDivision:Yo.value,selectListLgots:Hn.value,api_listProgramms:It.value,listPreparatsFiltered:Vn.value,selectedPreparatSign:gr.value,isNewNeed:dn.value,isMkbDisabled:bn.value,VKtrue:os.value,isViewSignPreparat:Cn.value,"onUpdate:isViewSignPreparat":wa[1]||(wa[1]=hu=>Cn.value=hu),attributesPreparatTemplate:_n.value,preparatDisplayExpr:Wo,preparatDisplayExprLow:Fu,labelLgota:fr.value,onRemoveLeadingZero:Po,listDiagnosis:Xt.value},null,8,["formData","readOnly","user","listDivision","selectListLgots","api_listProgramms","listPreparatsFiltered","selectedPreparatSign","isNewNeed","isMkbDisabled","VKtrue","isViewSignPreparat","attributesPreparatTemplate","labelLgota","listDiagnosis"])])]),footer:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_4$i,[un.value&&!yn.value?(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:0,delete:"",onClick:wa[2]||(wa[2]=hu=>rr(un.value)),disabled:!lr.value||Ct.value||An.value,loading:Nt.value},{default:vue.withCtx(()=>[...wa[9]||(wa[9]=[vue.createTextVNode("Удалить",-1)])]),_:1},8,["disabled","loading"])):vue.createCommentVNode("",!0),yn.value?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:1,primary:"",onClick:wa[3]||(wa[3]=hu=>un.value?Ur():Or()),loading:Nt.value,disabled:Ct.value||An.value},{default:vue.withCtx(()=>[...wa[10]||(wa[10]=[vue.createTextVNode("Сохранить",-1)])]),_:1},8,["loading","disabled"])),vue.createVNode(vue.unref(_2),{onClick:wa[4]||(wa[4]=hu=>Ot.value=!1)},{default:vue.withCtx(()=>[...wa[11]||(wa[11]=[vue.createTextVNode("Закрыть",-1)])]),_:1})])]),_:1},8,["title","modelValue"])]))}},_hoisted_1$u=["id"],_hoisted_2$o={key:0,class:"flex justify-end mb-1 flex-none"},_hoisted_3$j={class:"min-h-0 overflow-hidden"},_hoisted_4$h={class:"re-table"},_hoisted_5$g={key:0,class:"text-right"},_hoisted_6$g={class:"flex flex-col"},_hoisted_7$f=["onClick"],_hoisted_8$e={class:"flex flex-col gap-0.5 w-[600px]"},_hoisted_9$c={class:"text-sm text-slate-500 text-center"},_hoisted_10$b={open:"",class:"px-1"},_hoisted_11$a={class:"px-1"},_hoisted_12$9={class:"rs-table-btn"},_hoisted_13$8={class:"flex justify-between items-center text-sm text-slate-500 gap-1"},_hoisted_14$6={class:"flex flex-col gap-1"},_hoisted_15$5=["onClick"],_hoisted_16$5={class:"px-1"},_hoisted_17$4=["onClick"],_hoisted_18$4=["onDblclick"],_hoisted_19$4={key:1},_hoisted_20$4=["onContextmenu","onClick"],_hoisted_21$4={key:0,class:"text-right"},_hoisted_22$4=["onClick","title"],_hoisted_23$4={key:0},_hoisted_24$3={key:1},_hoisted_25$3={key:2},_hoisted_26$3=["title"],_hoisted_27$3=["title"],_hoisted_28$3={key:1},_hoisted_29$3=["onClick"],_hoisted_30$3={key:0},_hoisted_31$2={key:0,class:"bg-slate-100 hover:bg-slate-100 cursor-arrow"},_hoisted_32$2={key:0},_hoisted_33$2={key:1},_hoisted_34$2={key:1},_hoisted_35$1={key:0},_hoisted_36$1={class:"mb-3"},_hoisted_37$1={class:"border rounded p-3 bg-gray-50"},_hoisted_38$1=["onDragstart","onDrop"],_hoisted_39$1={class:"flex items-center gap-2"},_hoisted_40$1={class:"text-sm font-medium"},_hoisted_41$1={class:"flex items-center gap-1"},_hoisted_42$1=["onClick"],_hoisted_43$1=["onClick"],_hoisted_44$1={class:"flex justify-end gap-2"},_hoisted_45$1={class:"flex-none pagination-wrapper"},_hoisted_46$1={class:"flex items-center gap-4"},_hoisted_47$1={key:0,class:"pagination"},_hoisted_48$1=["onClick"],_hoisted_49$1={key:1,class:"flex items-center gap-2"},_hoisted_50$1={class:"text-sm text-slate-400"},STORAGE_KEY_ALL_HIDDEN="table_hidden_columns",STORAGE_KEY_ALL_WIDTHS="table_column_widths",STORAGE_KEY_PAGE_SIZE="table_page_size",STORAGE_KEY_COLUMN_ORDER="table_column_order",_sfc_main$B={__name:"ReSimpleTableAppCompany",props:vue.mergeModels({striped:{type:Boolean,default:!1},columns:{type:Array,default:()=>[]},growOnlyX:{type:Boolean,default:!1},data:{type:Array,default:()=>[]},pageSize:{type:Number,default:999},rowActions:{type:Array,default:()=>[]},rowColor:{type:Function,default:()=>{}},enableXlsxExport:{type:Boolean,default:!1},contextActions:{type:Array,default:()=>[]},rowHorizontal:{type:Boolean,default:!1},tableClass:{type:String,default:""},customPagination:{type:Boolean,default:!1},recordTotal:{type:Number,default:0},tableId:{type:String,required:!0},stickyHeader:{type:Boolean,default:!1},wheelPropagation:{type:Boolean,default:!0},numbering:{type:Boolean,default:!1},enablePageSizeSelector:{type:Boolean,default:!1},footer:{type:Boolean,default:!1},height:{type:String}},{sortDirection:{local:!0,default:null},sortDirectionModifiers:{},sortColumnIndex:{local:!0,default:null},sortColumnIndexModifiers:{},page:{local:!0,default:1},pageModifiers:{}}),emits:vue.mergeModels(["rowClicked","cellClicked"],["update:sortDirection","update:sortColumnIndex","update:page"]),setup(e,{expose:I,emit:N}){const J=N,V=vue.ref({}),M=e,ze=vue.useModel(e,"sortDirection"),yt=vue.useModel(e,"sortColumnIndex"),Ct=vue.ref(""),Ft=vue.ref({}),Tt=vue.ref({}),Ot=vue.ref({}),Nt=vue.ref(!1),It=vue.ref([]),Vt=vue.ref(null),$t=vue.ref(M.pageSize);vue.watch(()=>M.pageSize,()=>{$t.value=M.pageSize},{immediate:!0});function zt(){try{const qo=JSON.parse(localStorage.getItem(STORAGE_KEY_ALL_HIDDEN)||"{}"),Po=JSON.parse(localStorage.getItem(STORAGE_KEY_ALL_WIDTHS)||"{}"),pa=JSON.parse(localStorage.getItem(STORAGE_KEY_COLUMN_ORDER)||"{}");qo[M.tableId]&&(fn.value=qo[M.tableId]),Po[M.tableId]&&(nn.value=Po[M.tableId],Xt()),pa[M.tableId]&&Yd(pa[M.tableId])}catch(qo){console.error("Ошибка при загрузке состояния таблицы:",qo)}}function Wt(){try{const qo=JSON.parse(localStorage.getItem(STORAGE_KEY_ALL_HIDDEN)||"{}"),Po=JSON.parse(localStorage.getItem(STORAGE_KEY_ALL_WIDTHS)||"{}"),pa=JSON.parse(localStorage.getItem(STORAGE_KEY_PAGE_SIZE)||"{}"),wa=JSON.parse(localStorage.getItem(STORAGE_KEY_COLUMN_ORDER)||"{}");Object.keys(fn.value).length?qo[M.tableId]=fn.value:delete qo[M.tableId],Object.keys(nn.value).length?Po[M.tableId]=nn.value:delete Po[M.tableId],pa[M.tableId]=$t.value,It.value.length>0?wa[M.tableId]=It.value.map(hu=>hu.originalIndex):delete wa[M.tableId],localStorage.setItem(STORAGE_KEY_ALL_HIDDEN,JSON.stringify(qo)),localStorage.setItem(STORAGE_KEY_ALL_WIDTHS,JSON.stringify(Po)),localStorage.setItem(STORAGE_KEY_PAGE_SIZE,JSON.stringify(pa)),localStorage.setItem(STORAGE_KEY_COLUMN_ORDER,JSON.stringify(wa))}catch(qo){console.error("Ошибка при сохранении состояния таблицы:",qo)}}async function Xt(){if(await vue.nextTick(),!M.tableId){console.log("Не указан идентификатор таблицы",M.columns),notifyError$1("Не указан идентификатор таблицы");return}const qo=document.getElementById(`table-${M.tableId}`);if(!qo)return;const Po=qo.querySelector(".re-table");if(!Po)return;const pa=Po.querySelectorAll("thead th");Object.entries(nn.value).forEach(([wa,hu])=>{const no=pa[parseInt(wa)];no&&hu&&(no.style.width=`${hu}px`,no.style.minWidth=`${hu}px`)})}vue.onMounted(()=>{Jr(),zt(),document.addEventListener("click",Ur),document.addEventListener("keydown",Or)});const jt=vue.useModel(e,"page"),hn=vue.ref(!1),ln=vue.ref({x:"0px",y:"0px"}),bn=vue.ref(null),nn=vue.ref({});let yn=!1,un=null,an=0,dn=0;const fn=vue.ref({}),fr=vue.ref(!1);let lr=vue.ref(null);function Hn(qo){yn=!0,un=qo.target.parentElement,an=qo.pageX,dn=un.offsetWidth,document.addEventListener("mousemove",Kt),document.addEventListener("mouseup",Mn),qo.preventDefault()}function Kt(qo){if(!yn)return;const Po=dn+(qo.pageX-an);if(Po>=50){un.style.width=`${Po}px`,un.style.minWidth=`${Po}px`;const pa=document.getElementById(`table-${M.tableId}`);if(!pa)return;const wa=pa.querySelector(".re-table");if(!wa)return;const hu=wa.querySelectorAll("thead th"),no=Array.from(hu).indexOf(un);no!==-1&&(nn.value[no]=Po,Wt())}}function Mn(){yn=!1,document.removeEventListener("mousemove",Kt),document.removeEventListener("mouseup",Mn)}function Bn(qo){const Po=document.getElementById(`table-${M.tableId}`);if(!Po)return;const pa=Po.querySelector(".re-table");if(!pa)return;const hu=pa.querySelectorAll("thead th")[qo];hu&&(hu.style.width="",hu.style.minWidth="120px",delete nn.value[qo],Wt())}vue.onUnmounted(()=>{document.removeEventListener("mousemove",Kt),document.removeEventListener("mouseup",Mn),document.removeEventListener("click",Ur),Wt()});const gr=vue.computed(()=>{let qo=[...M.data];for(const Po in V.value)V.value[Po]&&(typeof Cn.value[Po]?.Field=="function"?qo=qo.filter(pa=>String(Cn.value[Po].Field(pa))?.toLowerCase().indexOf(V.value[Po]?.toLowerCase())>-1):qo=qo.filter(pa=>String(pa[Cn.value[Po].Field])?.toLowerCase().indexOf(V.value[Po]?.toLowerCase())>-1));for(const Po in Ft.value)Ft.value[Po]&&(qo=qo.filter(pa=>typeof Cn.value[Po]?.Field=="function"?Ft.value[Po].includes(Cn.value[Po].Field(pa)):Ft.value[Po].includes(pa[Cn.value[Po].Field])));for(const Po in Ot.value)Ot.value[Po]&&(qo=qo.filter(pa=>{let wa;return typeof Cn.value[Po]?.Field=="function"?wa=Cn.value[Po].Field(pa):wa=pa[Cn.value[Po].Field],wa==null||wa===""||typeof wa=="string"&&wa.trim()===""}));return yt.value>=0&&ze.value&&(qo=qo.sort((Po,pa)=>typeof Cn.value[yt.value].Field=="function"?typeof Cn.value[yt.value].SortMethod=="function"?Cn.value[yt.value].SortMethod(Po,pa):String(Cn.value[yt.value].Field(Po))>String(Cn.value[yt.value].Field(pa))?1:-1:typeof Cn.value[yt.value].SortMethod=="function"?Cn.value[yt.value].SortMethod(Po,pa):String(Po[Cn.value[yt.value].Field])>String(pa[Cn.value[yt.value].Field])?1:-1),ze.value==="desc"&&(qo=qo.reverse())),qo}),Cn=vue.computed(()=>{let qo=M.columns.filter(Po=>!fn.value[Po.Index]);return It.value.length>0&&(qo=It.value.map(Po=>qo.find((pa,wa)=>wa===Po.originalIndex))),qo}),_n=vue.computed(()=>M.contextActions.filter(qo=>typeof qo.IsVisible=="function"?qo.IsVisible(bn.value):!0)),An=vue.computed(()=>{if(M.customPagination)return M.data;const qo=(jt.value-1)*parseInt($t.value);return gr.value.slice(qo,qo+parseInt($t.value))}),Vn=vue.computed(()=>M.customPagination?Math.ceil(M.recordTotal/parseInt($t.value)):Math.ceil(gr.value.length/parseInt($t.value))),nr=vue.computed(()=>Vn.value>5?jt.value<=3?[1,2,3,4,5,"...",Vn.value]:jt.value>=Vn.value-2?[1,"...",Vn.value-4,Vn.value-3,Vn.value-2,Vn.value-1,Vn.value]:[1,"...",jt.value-2,jt.value-1,jt.value,jt.value+1,jt.value+2,"...",Vn.value]:Array.from({length:Vn.value},(qo,Po)=>Po+1)),hr=vue.computed(()=>M.customPagination?M.recordTotal:gr.value.length);vue.watch(()=>M.data,()=>{M.customPagination||(jt.value=1,Jr())}),vue.watch(()=>Cn.value,(qo,Po)=>{(!Po||qo.length!==Po.length||!qo.every((pa,wa)=>pa.Title===Po[wa].Title))&&(V.value={},fn.value={},nn.value={},Wt(),Jr(),rr(null,null),Ft.value={},Ot.value={})},{deep:!0}),vue.watch(()=>gr.value.length,()=>{M.customPagination||(jt.value=1)}),vue.watch($t,()=>{jt.value=1,Wt()});function zn(){if(gr.value.length===0){notifyError$1("Нет данных для экспорта");return}let qo=[{sheet:"Лист 1",columns:M.columns.map(pa=>({label:pa.Title,value:wa=>{let hu="";return typeof pa.Field=="function"?hu=pa.Field(wa):hu=wa[pa.Field],pa.LowField&&(typeof pa.LowField=="function"?hu+=` (${pa.LowField(wa)})`:wa[pa.LowField]&&(hu+=` (${wa[pa.LowField]})`)),hu}})),content:gr.value}],Po={fileName:"Выгрузка данных от "+hooks().format("L HH:mm:ss"),extraLength:3,writeMode:"writeFile"};xlsx(qo,Po)}function tr(qo,Po){ln.value={x:qo.pageX+"px",y:qo.pageY+"px"},bn.value=Po,hn.value=!0}function on(){bn.value=null,hn.value=!1}function vr(qo,Po){if(fr.value){yr();return}ln.value={x:qo.pageX,y:qo.pageY},lr.value=Po,fr.value=!0,hn.value=!1}function ir(qo){if(!fn.value[qo]&&Cn.value.length-Object.values(fn.value).filter(Boolean).length<=1){notifyError$1("Должен быть виден хотя бы один столбец");return}fn.value[qo]=!fn.value[qo],Wt()}function yr(){fr.value=!1,lr.value=null}function Ur(qo){const Po=document.getElementById("headerContextMenuId");Po&&!Po.contains(qo.target)&&!qo.target.closest(".header-filter-activator")&&yr()}function Or(qo){qo.key==="Escape"&&fr.value&&yr()}function rr(qo,Po){yt.value===qo&&ze.value===Po?(yt.value=null,ze.value=null):(yt.value=qo,ze.value=Po)}function Fo(qo){return yt.value===qo||V.value[qo]||Ft.value[qo]?.length>0||Ot.value[qo]}function Fr(){fn.value={},Wt()}function br(qo){let Po=Ft.value[lr.value]||[];Po.includes(qo)?Po=Po.filter(pa=>pa!==qo):Po.push(qo),Ft.value[lr.value]=Po,Po.length===0&&delete Ft.value[lr.value]}function Jr(){Tt.value={},Cn.value.forEach((qo,Po)=>{Tt.value[Po]=[],M.data.forEach(pa=>{let wa=Tt.value[Po]||[];typeof qo.Field=="function"?wa.push(qo.Field(pa)):wa.push(pa[qo.Field]),Tt.value[Po]=wa}),Tt.value[Po]=[...new Set(Tt.value[Po])],Tt.value[Po].sort()})}function Bo(qo){if(!Tt.value[qo])return[];let Po=[...Tt.value[qo]];return Po=Po.filter(pa=>pa&&String(pa).toLowerCase().includes(Ct.value)),Po}function Br(qo){Ft.value[qo]=Tt.value[qo]}function ga(qo){Ot.value[qo]=!Ot.value[qo],Ot.value[qo]||delete Ot.value[qo]}function ud(qo){let Po=!1;hn.value&&(on(),Po=!0),fr.value&&(yr(),Po=!0),!Po&&J("rowClicked",qo)}function zl(){(It.value.length>0?It.value:null)||(It.value=Cn.value.map((Po,pa)=>({originalIndex:pa,displayIndex:pa,title:Po.Title}))),Nt.value=!0,yr()}function Td(){Nt.value=!1}function os(qo,Po){Vt.value=Po,qo.dataTransfer.effectAllowed="move"}function Fu(qo,Po){if(Vt.value===null||Vt.value===Po)return;const pa=It.value[Vt.value],wa=[...It.value];wa.splice(Vt.value,1),wa.splice(Po,0,pa),wa.forEach((hu,no)=>{hu.displayIndex=no}),It.value=wa,Vt.value=null}function Wo(qo,Po){if(Po==="up"&&qo>0){const pa=It.value[qo];It.value[qo]=It.value[qo-1],It.value[qo-1]=pa,It.value[qo].displayIndex=qo,It.value[qo-1].displayIndex=qo-1}else if(Po==="down"&&qo<It.value.length-1){const pa=It.value[qo];It.value[qo]=It.value[qo+1],It.value[qo+1]=pa,It.value[qo].displayIndex=qo,It.value[qo+1].displayIndex=qo+1}}function Yo(){It.value=M.columns.map((qo,Po)=>({originalIndex:Po,displayIndex:Po,title:qo.Title}))}function rd(){const qo=It.value.map(Po=>Po.originalIndex);try{const Po=JSON.parse(localStorage.getItem(STORAGE_KEY_COLUMN_ORDER)||"{}");Po[M.tableId]=qo,localStorage.setItem(STORAGE_KEY_COLUMN_ORDER,JSON.stringify(Po))}catch(Po){console.error("Ошибка при сохранении порядка столбцов:",Po)}Td()}function Yd(qo){if(!qo||!Array.isArray(qo))return;const Po=qo.filter(pa=>pa>=0&&pa<M.columns.length);Po.length===M.columns.length&&(It.value=Po.map((pa,wa)=>({originalIndex:pa,displayIndex:wa,title:M.columns[pa].Title})))}return I({exportToXlsx:zn,filteredData:gr,showOnlyEmpty:Ot,filterByValue:Ft,filterOption:V,saveTableState:Wt}),(qo,Po)=>{const pa=vue.resolveComponent("PerfectScrollbar");return vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.createElementVNode("div",{style:vue.normalizeStyle({height:M.height}),class:"flex flex-col",id:"table-"+M.tableId},[M.enableXlsxExport?(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$o,[vue.createVNode(vue.unref(_2),{onClick:zn,prependIcon:"file-arrow-down"},{default:vue.withCtx(()=>[...Po[11]||(Po[11]=[vue.createTextVNode("Экспорт в Excel",-1)])]),_:1})])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_3$j,[vue.createVNode(pa,{class:vue.normalizeClass(["h-full pb-4",M.tableClass]),options:{wheelPropagation:M.wheelPropagation}},{default:vue.withCtx(()=>[vue.createElementVNode("table",_hoisted_4$h,[vue.createElementVNode("thead",{class:vue.normalizeClass({sticky:M.stickyHeader})},[vue.createElementVNode("tr",null,[M.numbering?(vue.openBlock(),vue.createElementBlock("th",_hoisted_5$g,"№")):vue.createCommentVNode("",!0),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(Cn.value,(wa,hu)=>vue.withDirectives((vue.openBlock(),vue.createElementBlock("th",{class:"min-w-[120px] relative",key:wa.Title},[vue.createVNode(vue.unref(kt),{shown:fr.value&&vue.unref(lr)!==null&&hu===vue.unref(lr),triggers:[],autoHide:!1,noAutoFocus:""},{popper:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_8$e,[vue.createElementVNode("p",_hoisted_9$c,vue.toDisplayString(Cn.value[vue.unref(lr)]?.Title),1),vue.createVNode(vue.unref(gv1)),vue.createElementVNode("p",{class:vue.normalizeClass(["rs-table-btn",{"!font-bold !text-slate-500 !bg-slate-200":yt.value===vue.unref(lr)&&ze.value==="asc"}]),onClick:Po[0]||(Po[0]=no=>rr(vue.unref(lr),"asc"))}," Сортировать А > Я ",2),vue.createElementVNode("p",{class:vue.normalizeClass(["rs-table-btn",{"!font-bold !text-slate-500 !bg-slate-200":yt.value===vue.unref(lr)&&ze.value==="desc"}]),onClick:Po[1]||(Po[1]=no=>rr(vue.unref(lr),"desc"))}," Сортировать Я > А ",2),vue.createVNode(vue.unref(gv1)),vue.createElementVNode("details",_hoisted_10$b,[Po[12]||(Po[12]=vue.createElementVNode("summary",{class:"rs-table-btn"},"Поиск по значению",-1)),vue.createVNode(vue.unref($A),{type:"text",placeholder:"Введите значение",modelValue:V.value[vue.unref(lr)],"onUpdate:modelValue":Po[2]||(Po[2]=no=>V.value[vue.unref(lr)]=no),modelModifiers:{lazy:!0}},null,8,["modelValue"])]),vue.createElementVNode("details",_hoisted_11$a,[vue.createElementVNode("summary",_hoisted_12$9,[Po[13]||(Po[13]=vue.createTextVNode(" Фильтр по значению ",-1)),Ft.value[vue.unref(lr)]?.length>0?(vue.openBlock(),vue.createBlock(vue.unref(Z1),{key:0,name:"circle-exclamation"})):vue.createCommentVNode("",!0)]),vue.createVNode(vue.unref($A),{placeholder:"Введите значение",modelValue:Ct.value,"onUpdate:modelValue":Po[3]||(Po[3]=no=>Ct.value=no)},null,8,["modelValue"]),vue.createElementVNode("div",_hoisted_13$8,[vue.createElementVNode("p",null," Показано "+vue.toDisplayString(Ft.value[vue.unref(lr)]?.length?Ft.value[vue.unref(lr)].length:Tt.value[vue.unref(lr)]?.length)+" из "+vue.toDisplayString(Tt.value[vue.unref(lr)]?.length),1),vue.createElementVNode("p",{class:"cursor-pointer hover:text-slate-700 hover:underline",onClick:Po[4]||(Po[4]=no=>Br(vue.unref(lr)))},"Все"),vue.createElementVNode("p",{class:"cursor-pointer hover:text-slate-700 hover:underline",onClick:Po[5]||(Po[5]=no=>delete Ft.value[vue.unref(lr)])}," Сбросить ")]),vue.createVNode(pa,{class:"max-h-[300px] max-w-[600px]"},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_14$6,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(Bo(vue.unref(lr)),no=>(vue.openBlock(),vue.createElementBlock("div",{key:no,class:"flex gap-1 select-none cursor-pointer hover:bg-slate-100 rounded",onClick:jo=>br(no)},[vue.createVNode(vue.unref(jc),{checked:Ft.value[vue.unref(lr)]?.includes(no)},null,8,["checked"]),vue.createElementVNode("p",null,vue.toDisplayString(no||"(пусто)"),1)],8,_hoisted_15$5))),128))])]),_:1})]),vue.createElementVNode("details",_hoisted_16$5,[Po[14]||(Po[14]=vue.createElementVNode("summary",{class:"rs-table-btn"},"Скрыть столбец",-1)),vue.createElementVNode("p",{class:"text-sm text-slate-500 text-center cursor-pointer hover:text-slate-700 hover:bg-slate-100 rounded",onClick:Fr}," Показать все "),vue.createVNode(pa,{class:"max-h-[300px] overflow-y-auto"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(Cn.value,(no,jo)=>(vue.openBlock(),vue.createElementBlock("div",{key:no.Title,class:"flex items-center gap-1 px-2 py-1 hover:bg-slate-100 cursor-pointer",onClick:ru=>ir(jo)},[vue.createVNode(vue.unref(Z1),{class:"text-slate-500",name:fn.value[jo]?"square":"check-square"},null,8,["name"]),vue.createElementVNode("span",null,vue.toDisplayString(no.Title),1)],8,_hoisted_17$4))),128))]),_:2},1024)]),vue.createVNode(vue.unref(gv1)),vue.createElementVNode("p",{class:vue.normalizeClass(["rs-table-btn",{"!font-bold !text-slate-500 !bg-slate-200":Ot.value[vue.unref(lr)]}]),onClick:Po[6]||(Po[6]=no=>ga(vue.unref(lr)))}," Показать только пустые ",2),vue.createVNode(vue.unref(gv1)),vue.createElementVNode("p",{class:"rs-table-btn",onClick:zl},"Изменить порядок столбцов")])]),default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_6$g,[vue.createElementVNode("div",{onClick:no=>wa.filterable!=!1?vr(no,hu):null,class:"flex flex-row justify-between items-center gap-1 hover:cursor-pointer hover:bg-slate-200 rounded px-2 py-1 header-filter-activator"},[vue.createElementVNode("p",{class:vue.normalizeClass({"whitespace-nowrap":M.growOnlyX})},vue.toDisplayString(wa.Title),3),wa.filterable!=!1?(vue.openBlock(),vue.createBlock(vue.unref(Z1),{key:0,name:"filter",class:vue.normalizeClass([{activeFilter:Fo(hu)},"text-slate-500"])},null,8,["class"])):vue.createCommentVNode("",!0)],8,_hoisted_7$f)])]),_:2},1032,["shown"]),wa.Template?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("div",{key:0,class:"column-resizer",onMousedown:Po[7]||(Po[7]=no=>Hn(no)),onDblclick:no=>Bn(hu)},null,40,_hoisted_18$4))])),[[vue.vShow,!fn.value[hu]]])),128)),M.rowActions.length?(vue.openBlock(),vue.createElementBlock("th",_hoisted_19$4,[...Po[15]||(Po[15]=[vue.createElementVNode("p",null,"Действия",-1)])])):vue.createCommentVNode("",!0)])],2),vue.createElementVNode("tbody",null,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(An.value,(wa,hu)=>(vue.openBlock(),vue.createElementBlock("tr",{class:vue.normalizeClass({"even:bg-slate-50":M.striped}),onContextmenu:vue.withModifiers(no=>tr(no,wa),["right","prevent"]),onClick:no=>ud(wa),key:wa,style:vue.normalizeStyle({backgroundColor:hn.value&&bn.value===wa?"rgba(0, 0, 0, 0.05)":"",backgroundColor:e.rowColor(wa)})},[M.numbering?(vue.openBlock(),vue.createElementBlock("td",_hoisted_21$4,vue.toDisplayString(jt.value*parseInt($t.value)-parseInt($t.value)+1+hu),1)):vue.createCommentVNode("",!0),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(Cn.value,(no,jo)=>vue.withDirectives((vue.openBlock(),vue.createElementBlock("td",{key:no.Title,class:vue.normalizeClass(["hover:bg-slate-200",typeof no.Class=="function"?no.Class(wa):no.Class]),onClick:ru=>J("cellClicked",{record:wa,column:no,index:jo}),title:typeof no.titleOnHover=="function"?no.titleOnHover(wa):no.titleOnHover},[no.Template?(vue.openBlock(),vue.createElementBlock("div",_hoisted_23$4,[vue.renderSlot(qo.$slots,`cell(${no.Template})`,{record:wa},void 0,!0)])):no.List?(vue.openBlock(),vue.createElementBlock("div",_hoisted_24$3,vue.toDisplayString(no.List.find(ru=>ru.Id===wa[no.Field])?.Name||""),1)):(vue.openBlock(),vue.createElementBlock("div",_hoisted_25$3,[vue.createElementVNode("p",{class:vue.normalizeClass(["primary-text",{"whitespace-nowrap":M.growOnlyX}]),title:typeof no.Field=="function"?no.Field(wa):wa[no.Field]},vue.toDisplayString(typeof no.Field=="function"?no.Field(wa):wa[no.Field]),11,_hoisted_26$3),vue.createElementVNode("p",{class:vue.normalizeClass(["secondary-text",{"whitespace-nowrap":M.growOnlyX}]),title:typeof no.LowField=="function"?no.LowField(wa):wa[no.LowField]},vue.toDisplayString(typeof no.LowField=="function"?no.LowField(wa):wa[no.LowField]),11,_hoisted_27$3)]))],10,_hoisted_22$4)),[[vue.vShow,!fn.value[jo]]])),128)),M.rowActions.length?(vue.openBlock(),vue.createElementBlock("td",_hoisted_28$3,[vue.createElementVNode("div",{class:vue.normalizeClass(["flex flex-col items-start",{horizontalAction:M.rowHorizontal}])},[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(M.rowActions,no=>(vue.openBlock(),vue.createElementBlock("span",{class:"rowAction whitespace-nowrap",onClick:vue.withModifiers(jo=>no.Action(wa),["stop"]),key:no},[typeof no.IsVisible!="function"||no.IsVisible(wa)?(vue.openBlock(),vue.createElementBlock("div",_hoisted_30$3,[no.Icon?(vue.openBlock(),vue.createBlock(vue.unref(Z1),{key:0,name:no.Icon},null,8,["name"])):vue.createCommentVNode("",!0),vue.createTextVNode(" "+vue.toDisplayString(no.Name),1)])):vue.createCommentVNode("",!0)],8,_hoisted_29$3))),128))],2)])):vue.createCommentVNode("",!0)],46,_hoisted_20$4))),128)),M.footer?(vue.openBlock(),vue.createElementBlock("tr",_hoisted_31$2,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(Cn.value,(wa,hu)=>vue.withDirectives((vue.openBlock(),vue.createElementBlock("td",{key:wa.Title},[typeof wa.Footer=="function"?(vue.openBlock(),vue.createElementBlock("p",_hoisted_32$2,vue.toDisplayString(wa.Footer(qo.row)),1)):(vue.openBlock(),vue.createElementBlock("p",_hoisted_33$2,vue.toDisplayString(wa.Footer),1))])),[[vue.vShow,!fn.value[hu]]])),128))])):vue.createCommentVNode("",!0),hr.value?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("tr",_hoisted_34$2,[...Po[16]||(Po[16]=[vue.createElementVNode("td",{colspan:"100",class:"text-center"},[vue.createElementVNode("p",{class:"text-xl text-slate-400 font-semibold"},"Данные отсутствуют")],-1)])]))])])]),_:3},8,["class","options"])]),hn.value?(vue.openBlock(),vue.createElementBlock("div",{id:"contextMenuId",class:"context-menu",key:ln.value,style:vue.normalizeStyle({top:ln.value.y,left:ln.value.x})},[vue.createVNode(vue.unref(Wv1),{spacing:"xs"},{default:vue.withCtx(()=>[_n.value.length?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("p",_hoisted_35$1,"Нет доступных действий контекстного меню")),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(_n.value,wa=>(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:wa,prependIcon:wa.Icon,onClick:hu=>(wa.Action(bn.value),on())},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(wa.Name),1)]),_:2},1032,["prependIcon","onClick"]))),128))]),_:1})],4)):vue.createCommentVNode("",!0),vue.createVNode(vue.unref(_s),{title:"Изменение порядка столбцов",modelValue:Nt.value,"onUpdate:modelValue":Po[9]||(Po[9]=wa=>Nt.value=wa),closeOnClickOutside:!0,class:"p-2"},{footer:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_44$1,[vue.createVNode(vue.unref(_2),{onClick:Yo,variant:"outline",size:"sm"},{default:vue.withCtx(()=>[...Po[18]||(Po[18]=[vue.createTextVNode("Сбросить",-1)])]),_:1}),vue.createVNode(vue.unref(_2),{onClick:rd,size:"sm"},{default:vue.withCtx(()=>[...Po[19]||(Po[19]=[vue.createTextVNode("Сохранить",-1)])]),_:1})])]),default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_36$1,[Po[17]||(Po[17]=vue.createElementVNode("p",{class:"text-sm text-gray-600 mb-2"},"Перетащите столбцы для изменения их порядка:",-1)),vue.createElementVNode("div",_hoisted_37$1,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(It.value,(wa,hu)=>(vue.openBlock(),vue.createElementBlock("div",{key:wa.originalIndex,class:"flex items-center justify-between p-2 mb-1 bg-white rounded border cursor-move hover:bg-gray-50",draggable:"true",onDragstart:no=>os(no,hu),onDragover:Po[8]||(Po[8]=vue.withModifiers(()=>{},["prevent"])),onDrop:no=>Fu(no,hu)},[vue.createElementVNode("div",_hoisted_39$1,[vue.createVNode(vue.unref(Z1),{name:"grip-vertical",class:"text-gray-400 text-sm"}),vue.createElementVNode("span",_hoisted_40$1,vue.toDisplayString(wa.title),1)]),vue.createElementVNode("div",_hoisted_41$1,[hu>0?(vue.openBlock(),vue.createElementBlock("button",{key:0,onClick:no=>Wo(hu,"up"),class:"p-1 hover:bg-gray-200 rounded text-xs",title:"Переместить вверх"},[vue.createVNode(vue.unref(Z1),{name:"chevron-up",class:"text-gray-500"})],8,_hoisted_42$1)):vue.createCommentVNode("",!0),hu<It.value.length-1?(vue.openBlock(),vue.createElementBlock("button",{key:1,onClick:no=>Wo(hu,"down"),class:"p-1 hover:bg-gray-200 rounded text-xs",title:"Переместить вниз"},[vue.createVNode(vue.unref(Z1),{name:"chevron-down",class:"text-gray-500"})],8,_hoisted_43$1)):vue.createCommentVNode("",!0)])],40,_hoisted_38$1))),128))])])]),_:1},8,["modelValue"])],12,_hoisted_1$u),vue.createElementVNode("div",_hoisted_45$1,[vue.createElementVNode("div",_hoisted_46$1,[Vn.value>1?(vue.openBlock(),vue.createElementBlock("ul",_hoisted_47$1,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(nr.value,wa=>(vue.openBlock(),vue.createElementBlock("li",{key:wa,class:vue.normalizeClass({active:wa===jt.value}),onClick:hu=>wa!=="..."?jt.value=wa:null},[vue.createElementVNode("a",null,vue.toDisplayString(wa),1)],10,_hoisted_48$1))),128))])):vue.createCommentVNode("",!0),M.enablePageSizeSelector?(vue.openBlock(),vue.createElementBlock("div",_hoisted_49$1,[Po[21]||(Po[21]=vue.createElementVNode("span",{class:"text-sm text-slate-500"},"Показать:",-1)),vue.withDirectives(vue.createElementVNode("select",{"onUpdate:modelValue":Po[10]||(Po[10]=wa=>$t.value=wa),class:"text-sm border rounded px-1 py-0.5 w-[60px] border-slate-300"},[...Po[20]||(Po[20]=[vue.createElementVNode("option",{value:"5"},"5",-1),vue.createElementVNode("option",{value:"10"},"10",-1),vue.createElementVNode("option",{value:"20"},"20",-1),vue.createElementVNode("option",{value:"100"},"100",-1)])],512),[[vue.vModelSelect,$t.value]])])):vue.createCommentVNode("",!0)]),vue.createElementVNode("p",_hoisted_50$1," Записи "+vue.toDisplayString(jt.value*parseInt($t.value)-parseInt($t.value)+1)+"-"+vue.toDisplayString(Math.min(jt.value*parseInt($t.value),hr.value))+" из "+vue.toDisplayString(hr.value),1)])],64)}}},ReSimpleTableAppCompany=_export_sfc(_sfc_main$B,[["__scopeId","data-v-947a7d0d"]]),_hoisted_1$t={class:"w-full h-full absolute top-0 left-0 flex justify-center items-center animate-pulse z-[5000]"},_hoisted_2$n={class:"border rounded p-2 bg-slate-100"},_hoisted_3$i={class:"h-full flex flex-col p-3 gap-3"},_hoisted_4$g=["title"],_hoisted_5$f=["title"],_hoisted_6$f=["title"],_hoisted_7$e=["title"],_hoisted_8$d=["title"],_hoisted_9$b=["title"],_sfc_main$A={__name:"PatientInfoPageAppCompany",props:{patientId:{type:String,default:"",required:!0},patientSnils:{type:String,default:"",required:!0},nameApp:{type:String,default:""},isParentModalExpanded:{type:Boolean,default:!1},minHeightCalcTable:{type:String,default:"calc(100vh - 290px)"},maxHeightCalcTable:{type:String,default:"calc(100vh - 560px)"},isExportExcelTable:{type:Boolean,default:!0}},setup(e){const I=vue.computed(()=>useUserStore().user),N=e,J=vue.computed(()=>N.isParentModalExpanded?N.minHeightCalcTable:N.maxHeightCalcTable),V=vue.ref(!1),M=vue.ref(!1),ze=vue.ref(!1),yt=vue.ref(!1),Ct=vue.ref(null),Ft=vue.ref(null),Tt=vue.ref(null),Ot=vue.ref(!1),Nt=vue.ref([]),It=vue.ref(null),Vt=vue.ref([]),$t=[{Name:"Просмотр",Icon:"eye",Action:an=>ln(an.NeedsId,an.ApplicationId,an.MessageWarning,an.Period,an.AdditionalApp==="Дополнительная")}];vue.onMounted(async()=>{await nn(),Xt(null)});const zt=vue.computed(()=>{const an=[];for(let dn=0;dn<listStatuses.length;dn++)an.push({Id:listStatuses[dn],Name:listStatuses[dn]});return an}),Wt=vue.computed(()=>{if(!Nt.value?.length)return[];const an=new Set;return Nt.value.forEach(dn=>{if(dn.Name){const fn=dn.Name.match(/\b(20\d{2})\b/);fn&&an.add({Id:fn[1],Name:fn[1]})}}),Array.from(an).sort()});async function Xt(an){yt.value=!1,V.value=!1,Tt.value=null,Ot.value=!1,Ft.value=null,Ct.value=null,ze.value=!1;try{N.patientId&&(M.value=!0,Vt.value=await window.axios.get(window.localhost+`ApplicationCompany/PatientApplications?PatientId=${N.patientId}&Sort=CreateDateApp&Desc=true`,{params:an||{}}).then(dn=>dn.data.map(fn=>({...fn,AdditionalApp:fn.AdditionalApp===!1?"Основная":"Дополнительная",SumPrepapp:fn.SumPrepapp.replace(".",","),SumPrepappfinal:fn.SumPrepappfinal.replace(".",",")}))))}catch(dn){const fn=dn.response?.data?.message||dn.message||"Неизвестная ошибка";notifyError$1(`${fn}. Пожалуйста, выполните поиск повторно`,15e3,"Ошибка загрузки данных")}finally{M.value=!1}}async function jt(an){let dn=await window.axios.get(window.localhost+`ApplicationCompany/Application?ApplicationId=${an}`).then(fn=>fn.data).catch(fn=>{});return Ct.value=dn,dn?(dn.DateClose&&hooks(dn.DateClose).format("YYYY-MM-DD")<hooks().format("YYYY-MM-DD")||dn.Status!="В работе"&&dn.Status!="Заполнение льгот"&&dn.Status!="Проверка"&&dn.Status!="Заявка")&&N.nameApp==="WebBMS"?{status:!0,notify:{type:"warn",message:"Заявка по выбранной потребности закрыта для редактирования",duration:15e3,title:"Доступ для редактирования закрыт"}}:{status:!0,notify:{type:"",message:"",duration:15e3,title:""}}:{status:!1,notify:{type:"error",message:"Заявка по выбранной потребности не найдена",duration:15e3,title:"Ошибка в поиске заявки"}}}function hn(an){return an.MessageWarning?"#fff6f6":""}async function ln(an,dn,fn,fr,lr){if(!an){notifyWarning(fn,15e3,"Уведомление системы");return}Ft.value=an,Tt.value=fr,Ot.value=lr;const{status:Hn,notify:Kt}=await jt(dn);switch(Hn&&!Kt?.type&&(V.value=!0,ze.value=!1),Hn&&Kt?.type==="warn"&&(V.value=!0,ze.value=!0),Kt.type){case"error":notifyError$1(Kt.message,Kt.duration,Kt.title);break;case"warn":notifyWarning(Kt.message,Kt.duration,Kt.title);break}}async function bn(an){"filters"in an&&(an=an.filters),an={...an},an&&"Additional"in an&&(an.Additional=an.Additional==="true"),It.value=Object.keys(an).length>0?an:null,yt.value=!0;try{await Xt(It.value)}catch(dn){notifyError$1(`Ошибка при загрузке данных:
1300
+ `,_n);let An;if(J?.targetField?J.targetField==="object"?An=[_n.data]:An=_n.data[J.targetField]:An=_n.data,An?.length){let Vn=J.idFromIdField?J.idField:"Id",nr=An.find(hr=>hr[Vn]==J.modelValue);V.value.push(nr),yt.value=nr,Ft.value=nr&&Vn in nr?nr[Vn]:null,N("newData",{data:V.value}),N("onSelect",{data:yt.value,list:M.value,filteredList:V.value})}Mn=!1})}else Kt(J.modelValue);else Ot&&J.preload&&(Ot=!1,gr())}function gr(){if(J?.url){V.value=[],M.value=[];for(let Cn of $t.value)dn(J.url+Cn)}else V.value=[],M.value=[],J.apiString.get().then(Cn=>{Tt="withoutString",bn(Cn,"","withoutString",!0)})}return vue.onMounted(Bn),vue.onUpdated(Bn),(Cn,_n)=>(vue.openBlock(),vue.createBlock(_sfc_main$O,{modelValue:Ft.value,"onUpdate:modelValue":_n[0]||(_n[0]=An=>Ft.value=An),"display-expr":J.displayExpr,data:V.value,searchable:"",onInput:an,label:J.label,onSelect:Hn,onClear:un,"no-filtering":"","id-field":J.idField,limit:200},{option:vue.withCtx(({item:An})=>[vue.renderSlot(Cn.$slots,"option",{item:An})]),_:3},8,["modelValue","display-expr","data","label","id-field"]))}},_sfc_main$K={__name:"NewMkbSelectBox",props:{mkbId:{type:[String,null]},label:{type:String,default:"Диагноз"},readOnly:{type:Boolean},isValidated:{type:Boolean,default:!1},mkbCode:{type:String,default:""},filterCodes:{type:Array,default:()=>[]},OMC:{type:Boolean,default:null}},emits:["getMKBId","getMKBItem","validate"],setup(e,{emit:I}){const N=I,J=e;vue.watch(()=>J.OMC,()=>{M.value={Id:""},N("getMKBId",{choosedMKB:null}),N("getMKBItem",{choosedMKB:null})}),vue.ref([]);const V=vue.ref(!1),M=vue.ref({Id:""}),ze=vue.ref(""),yt=vue.computed(()=>({_mkb_oplata_param_:J.OMC===null?null:String(!!J.OMC),_mkb_codes_param_:J.filterCodes?.length?J.filterCodes.join(","):null}));function Ct({data:Ot}){ze.value="",Ot?.Id?(N("getMKBId",{choosedMKB:Ot.Id}),N("getMKBItem",{choosedMKB:Ot})):(M.value={Id:""},N("getMKBId",{choosedMKB:null}),N("getMKBItem",{choosedMKB:null}))}function Ft(Ot,Nt,It){return Ot.Code.indexOf(".")!==-1||Nt.filter(Vt=>Vt.Code.startsWith(Ot.Code)).length===1&&(Tt(It[0])&&It.length>2||!Tt(It[0])&&It.length>1)}function Tt(Ot){return new RegExp("^\\p{L}$","u").test(Ot)}return vue.watch(()=>J.mkbCode,()=>{J.mkbCode||(M.value={Id:""},Ct({data:M.value}))}),vue.watch(()=>J.mkbId,(Ot,Nt)=>{Ot?Nt!==Ot&&(M.value={Id:Ot}):(M.value={Id:""},Ct({data:M.value}))},{immediate:!0}),vue.watch(()=>M.value,()=>{J.isValidated&&(M.value?.Id?(N("validate",{isValid:!0}),N("getMKBItem",{choosedMKB:M.value}),V.value=!0):(N("validate",{isValid:!1}),N("getMKBId",{choosedMKB:""}),V.value=!1))}),(Ot,Nt)=>(vue.openBlock(),vue.createBlock(_sfc_main$L,{disabled:J.readOnly,modelValue:M.value.Id,"onUpdate:modelValue":Nt[0]||(Nt[0]=It=>M.value.Id=It),"display-expr":It=>"("+It.Code+") "+It.Name,"api-string":vue.unref(api$1).Mkb,"api-id":vue.unref(api$1).MkbById,label:J.label,"get-first-from-string":J.mkbCode,"result-filter":Ft,params:yt.value,onOnSelect:Ct,clearable:""},null,8,["disabled","modelValue","display-expr","api-string","api-id","label","get-first-from-string","params"]))}},_sfc_main$J={__name:"FilterInput",props:{type:{type:String,required:!0},modelValue:{required:!0},name:{type:String,required:!0},list:{type:[Array,null],default:null},display:{type:[Function,null],default:null},style:{type:Object,default:()=>({})},idField:{type:String,default:null},mask:{type:String,default:null},placeholder:{type:String,default:null}},emits:["update:modelValue"],setup(e,{emit:I}){const N=I,J=e,V=vue.ref(null);vue.watch(()=>J.modelValue,()=>{V.value=J.modelValue},{immediate:!0});const M=vue.computed(()=>{let ze={label:J.name};return J.type==="select"&&(ze.data=J.list,ze.searchable=!0,ze.clearable=!0,J.idField&&(ze.idField=J.idField),J.display&&(ze.displayExpr=J.display),J.placeholder&&(ze.placeholder=J.placeholder)),J.type==="text"&&(ze.mask=J.mask),ze});return vue.watch(V,()=>{V.value!==J.modelValue&&N("update:modelValue",V.value)}),(ze,yt)=>(vue.openBlock(),vue.createElementBlock("div",null,[J.type==="text"?(vue.openBlock(),vue.createElementBlock("div",{key:0,style:vue.normalizeStyle(J.style)},[vue.createVNode(vue.unref($A),vue.mergeProps({modelValue:V.value,"onUpdate:modelValue":yt[0]||(yt[0]=Ct=>V.value=Ct)},M.value),null,16,["modelValue"])],4)):J.type==="checkbox"?(vue.openBlock(),vue.createElementBlock("div",{key:1,style:vue.normalizeStyle(J.style)},[vue.createVNode(vue.unref(jc),vue.mergeProps({modelValue:V.value,"onUpdate:modelValue":yt[1]||(yt[1]=Ct=>V.value=Ct)},M.value),null,16,["modelValue"])],4)):J.type==="select"?(vue.openBlock(),vue.createElementBlock("div",{key:2,style:vue.normalizeStyle(J.style)},[vue.createVNode(_sfc_main$O,vue.mergeProps({modelValue:V.value,"onUpdate:modelValue":yt[2]||(yt[2]=Ct=>V.value=Ct)},M.value),null,16,["modelValue"])],4)):J.type==="mkb"?(vue.openBlock(),vue.createElementBlock("div",{key:3,style:vue.normalizeStyle(J.style)},[vue.createVNode(_sfc_main$K,vue.mergeProps({modelValue:V.value,"onUpdate:modelValue":yt[3]||(yt[3]=Ct=>V.value=Ct)},M.value),null,16,["modelValue"])],4)):J.type==="employee"?(vue.openBlock(),vue.createElementBlock("div",{key:4,style:vue.normalizeStyle(J.style)},[vue.createVNode(_sfc_main$N,vue.mergeProps({modelValue:V.value,"onUpdate:modelValue":yt[4]||(yt[4]=Ct=>V.value=Ct)},M.value,{"other-lpu":"","lpu-id":"9d1790e4-965e-46d3-878f-c8c5ce7ae8c6"}),null,16,["modelValue"])],4)):J.type==="date"?(vue.openBlock(),vue.createElementBlock("div",{key:5,style:vue.normalizeStyle(J.style)},[vue.createVNode(_sfc_main$P,vue.mergeProps({modelValue:V.value,"onUpdate:modelValue":yt[5]||(yt[5]=Ct=>V.value=Ct)},M.value),null,16,["modelValue"])],4)):vue.createCommentVNode("",!0)]))}};var Mode$1=(e=>(e[e.DELAY=0]="DELAY",e[e.INTERVAL=1]="INTERVAL",e[e.INTERVAL_BLOCK=2]="INTERVAL_BLOCK",e))(Mode$1||{});let ActionLimiter$1=(ND=class{constructor(I,N,J){this.action=I,this.milliseconds=N,this.mode=J,this.currentTimerId=null,this.needRepeat=null,this.init()}init(){switch(this.mode){case 0:this.repeat=()=>{console.warn(this.mode+" mode has no repeat function!")},this.start=I=>{this.currentTimerId===null?this.currentTimerId=Number(setTimeout(()=>this.action(I),this.milliseconds)):(clearTimeout(this.currentTimerId),this.currentTimerId=Number(setTimeout(()=>this.action(I),this.milliseconds)))};break;case 1:this.repeat=()=>{this.needRepeat?(this.action(),this.needRepeat=!1,this.currentTimerId=Number(setTimeout(this.repeat,this.milliseconds))):this.needRepeat=null},this.start=()=>{this.needRepeat===null?(this.needRepeat=!0,this.repeat()):this.needRepeat===!1&&(this.needRepeat=!0)};break;case 2:this.repeat=()=>{console.warn(this.mode+" mode has no repeat function!")},this.start=()=>{this.currentTimerId===null&&(this.action(),this.currentTimerId=Number(setTimeout(()=>{this.currentTimerId=null},this.milliseconds)))};break;default:console.error("internal error! invalid mode for ActionLimiter!")}}stop(){clearTimeout(this.currentTimerId),this.currentTimerId=null}},ND.MODE=Mode$1,ND);const _sfc_main$I={__name:"FilterPanel",props:{filterList:{type:Array,required:!0}},emits:["search","update:modelValue"],setup(e,{emit:I}){const N=I,J=e,V=vue.ref({});for(let Tt of J.filterList)Tt?.default&&(V.value[Tt.accessor]=Tt.default);const M=vue.computed(()=>{let Tt={};for(let Ot of J.filterList??[])Ot?.relation?Tt[Ot.accessor]=Ot.relation({filters:J.filterList,values:V.value}):Tt[Ot.accessor]=Ot?.list??null;return Tt}),ze=new ActionLimiter$1(Ft,500,ActionLimiter$1.MODE.DELAY);function yt(){ze.start()}function Ct(){V.value={}}function Ft(){N("search",{filters:V.value})}return vue.watch(V,Tt=>{N("update:modelValue",Tt)},{deep:!0}),(Tt,Ot)=>(vue.openBlock(),vue.createElementBlock("form",{class:"flex flex-wrap gap-x-2 gap-y-0.5 items-end",onSubmit:vue.withModifiers(yt,["prevent"])},[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(J.filterList,Nt=>(vue.openBlock(),vue.createBlock(_sfc_main$J,{key:Nt,modelValue:V.value[Nt.accessor],"onUpdate:modelValue":It=>V.value[Nt.accessor]=It,type:Nt.type,display:Nt?.display??null,name:Nt.name,list:M.value[Nt.accessor],style:vue.normalizeStyle(Nt?.style??null),"id-field":Nt?.idField??null,mask:Nt?.mask??null,placeholder:Nt?.placeholder??null},null,8,["modelValue","onUpdate:modelValue","type","display","name","list","style","id-field","mask","placeholder"]))),128)),vue.createVNode(vue.unref(_2),{label:"Найти",type:"submit",primary:"","prepend-icon":"search"}),vue.createVNode(vue.unref(_2),{label:"Сбросить фильтры",onClick:Ct,delete:"",secondary:"","prepend-icon":"xmark"})],32))}};function validateResponse(e,I,N){getRefbookRequest(e).then(J=>{if(J.status!==200)N(new Error("Ответ со статусом "+J.data.Status));else if(J?.data?.Status==="Error")console.error("------------===Ошибка загрузки справочника===------------"),console.error(J),console.error("------------=================================------------"),N(new Error(J.data.Comment));else{let V=J.data;"target"in e&&(V=V[e.target]),!V?.length&&V?.length!==0?(console.error(J),N(new Error("Ошибка загрузки справочника!"))):I(V)}})}function getRefbookRequest(e){const I=e?.address?e.address:window.localhost;return"params"in e?window.axios.get(I+e.url,{params:e.params}):window.axios.get(I+e.url)}function RefbookPromiseHandler(e,I,N){validateResponse(e,I,N)}const RefbookProxyHandler={get(e,I){if(I===void 0||I==="__v_isRef")return;const N=e[I];if(!N)throw new Error('Справочника "'+I+'" не существует!');return N?.value?Promise.resolve(N.value):new Promise((J,V)=>RefbookPromiseHandler(N,J,V))},set(){throw new Error("Невозможно изменить справочник!")}};function getRefbookPromise(e,I){return new Promise(N=>{e.then(J=>{I?(I(J),N(!0)):N(J)})})}const refbook={BioFactor:{name:"BioFactor",url:"refs/BioFactor",target:"Body"},DiseaseCharacter:{name:"DiseaseCharacter",url:"GetDiseaseCharacters"},DiseaseType:{name:"DiseaseType",url:"GetDiseaseType"},DispTakeForm:{name:"DispTakeForm",url:"DispTakeForm"},Drug:{name:"Drug",url:"refs/Drug",target:"Body"},EmdType:{name:"EmdType",url:"emd/TypeEmd",target:"Body"},OrderType:{name:"OrderType",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.11.1009"}},Status:{name:"Status",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.11.1006"}},PayMethod:{name:"PayMethod",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.11.1039"}},TypeVisit:{name:"TypeVisit",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.11.1007"}},VaccinationConclusion:{name:"VaccinationConclusion",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.99.2.725"}},ConsultationType:{name:"ConsultationType",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.99.2.797"}},BenefitType:{name:"BenefitType",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.99.2.713"}},PostVaccinalComplication:{name:"PostVaccinalComplication",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.99.2.960"}},LabMaterialTakeMethod:{name:"LabMaterialTakeMethod",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.99.2.1065"}},LabMaterial:{name:"LabMaterial",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.99.2.1019"}},BloodComponent:{name:"BloodComponent",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.11.1386"}},RecipeType:{name:"RecipeType",url:"Egisz",params:{EgiszOid:"1.2.643.5.1.13.13.99.2.651"}},BenefitProgram:{name:"BenefitProgram",url:"refs/BenefitProgram",target:"Body"},BenefitMap:{name:"BenefitMap",url:"refs/BenefitMap",target:"Body"},Excipient:{name:"Excipient",url:"refs/Excipient",target:"Body"},Outcome:{name:"Outcome",url:"Ffoms",params:{NsiCode:"V012"}},ReasonVisit:{name:"ReasonVisit",url:"Ffoms",params:{NsiCode:"V025"}},Result:{name:"Result",url:"Ffoms",params:{NsiCode:"V009"}},StageResult:{name:"StageResult",url:"Ffoms",params:{NsiCode:"V009",LinkCode:"3"}},Gender:{name:"Gender",url:"Gender"},HivContingent:{name:"HivContingent",url:"refs/HivContingent",target:"Body"},LabTest:{name:"LabTest",url:"refs/LabTest",target:"Body"},Palliatives:{name:"Palliatives",url:"refs/Palliatives",target:"Body"},Position:{name:"Position",url:"Position"},Region:{name:"Region",url:"Region"},ServiceFactType:{name:"ServiceFactType",url:"refs/UslFactType",target:"Body"},ServiceFactTypeGroup:{name:"ServiceFactTypeGroup",url:"refs/UslFactTypeGroup",target:"Body"},ServicePlace:{name:"ServicePlace",url:"GetServicePlaces"},SocialStatus:{name:"SocialStatus",url:"getsocstatus"},Speciality:{name:"Speciality",url:"Speciality"},Uchastok:{name:"Uchastok",url:"Uchastok"},VitalParamTypes:{name:"VitalParamTypes",url:"Reference/VitalParamTypes"},PmoType:{name:"PmoType",url:"PmoType"},HealthGroup:{name:"HealthGroup",url:"HealthGroup"}},exportRefbook=new Proxy(refbook,RefbookProxyHandler),BenefitProgram=(e=null)=>getRefbookPromise(exportRefbook.BenefitProgram,e),BenefitMap=(e=null)=>getRefbookPromise(exportRefbook.BenefitMap,e),useBenefit=()=>{async function e(N){let J=await window.axios.get(window.localhost+"patient/Benefit_v2",{params:N});return J.data.Body=J.data.Body.filter((V,M,ze)=>M===ze.findIndex(yt=>yt.PatientBenefitId===V.PatientBenefitId)),J.data.Body=J.data.Body.sort((V,M)=>new Date(M.LogDateTime)-new Date(V.LogDateTime)),J.data.Body}async function I(N,J=!0){let V=await api$1.PatientBenefit.get(N);if(V.data.Body=V.data.Body.filter((M,ze,yt)=>ze===yt.findIndex(Ct=>Ct.PatientBenefitId===M.PatientBenefitId)),V.data.Body=V.data.Body.sort((M,ze)=>new Date(ze.LogDateTime)-new Date(M.LogDateTime)),J){const M=V.data.Body.reduce((ze,yt)=>{const Ct=`${yt.Snils}-${yt.BenefitCodeShort}`;return ze[Ct]||(ze[Ct]=yt),ze},{});return Object.values(M)}return V.data.Body}return{getBenefitListV2:e,getBenefitList:I}},listStateActionCopy={CHANGE_LP:{state:"change_lp",label:"Редактирование ЛП в потребности"},CHANGE_COPY:{state:"change_copy",label:"Редактирование потребности"},BLOCK_CHANGE_LP:{state:"block_change_lp",label:"Блокировка редактирования поля ЛП"}},_hoisted_1$z={class:"preparat-tooltip-wrapper"},_sfc_main$H={__name:"MkbSelectLite",props:{modelValue:{type:[String,null],default:null},listDiagnosis:{type:Array,required:!0},label:{type:String,default:"Диагноз"},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0}},emits:["update:modelValue","select"],setup(e,{emit:I}){const N=e,J=I,V=vue.ref(N.modelValue),M=vue.ref(""),ze=vue.ref(""),yt=vue.computed(()=>{if(!N.listDiagnosis?.length)return[];if(!M.value)return N.listDiagnosis;const Tt=M.value.toLowerCase().trim(),Ot=swapKeyboardLayout(Tt,!1);return N.listDiagnosis.filter(It=>{const Vt=(It.Code||"").toLowerCase(),$t=(It.Name||"").toLowerCase(),zt=Vt.includes(Tt)||$t.includes(Tt),Wt=Vt.includes(Ot)||$t.includes(Ot);return zt||Wt})});function Ct(Tt){M.value=Tt||""}function Ft(Tt){return Tt?`(${Tt.Code}) ${Tt.Name}`:""}return vue.watch(V,Tt=>{if(J("update:modelValue",Tt),Tt){const Ot=N.listDiagnosis.find(Nt=>Nt.Id===Tt);Ot&&(ze.value=`${Ot.Code} ${Ot.Name}`,J("select",Ot))}else ze.value=""}),vue.watch(()=>N.modelValue,Tt=>{V.value=Tt}),(Tt,Ot)=>(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$z,[vue.createVNode(vue.unref(Ts),{text:ze.value,placement:"top"},{default:vue.withCtx(()=>[vue.createVNode(_sfc_main$O,{modelValue:V.value,"onUpdate:modelValue":Ot[0]||(Ot[0]=Nt=>V.value=Nt),data:yt.value,"onUpdate:data":Ot[1]||(Ot[1]=Nt=>yt.value=Nt),label:e.label,disabled:e.disabled,required:e.required,clearable:e.clearable,limit:1e3,"display-expr":Ft,onInput:Ct,placeholder:"Поиск заболевания..."},null,8,["modelValue","data","label","disabled","required","clearable"])]),_:1},8,["text"])]))}},_sfc_main$G={__name:"SDateInput",props:vue.mergeModels({withHours:{type:Boolean,default:!1},min:{type:Date,default:null},max:{type:Date,default:null}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const I=vue.useModel(e,"modelValue"),N=e;function J(M){return N.min&&hooks(N.min).format("YYYY-MM-DD HH:mm")>=hooks(M).format("YYYY-MM-DD HH:mm")?hooks(N.min).add(1,"minutes").format("YYYY-MM-DD HH:mm"):hooks(M).format("YYYY-MM-DD HH:mm")}function V(M){return M?N.withHours?J(M):M:null}return(M,ze)=>(vue.openBlock(),vue.createBlock(vue.unref(Kc),{format:"",min:e.min,max:e.max,withHours:e.withHours,label:"Дата","model-value":I.value,"onUpdate:modelValue":ze[0]||(ze[0]=yt=>I.value=V(yt))},null,8,["min","max","withHours","model-value"]))}},_hoisted_1$y={class:"flex justify-between items-center"},_hoisted_2$s={key:0},_hoisted_3$n={key:1,class:"text-gray-600"},_hoisted_4$l={key:0},_hoisted_5$j={class:"text-sm text-gray-600"},_sfc_main$F={__name:"ReSimpleOption",props:{item:{type:Object,required:!0},label:{type:[String,null],default:null},labelLow:{type:[String,null],default:null},selected:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["select"],setup(e,{emit:I}){const N=I,J=e;return(V,M)=>(vue.openBlock(),vue.createElementBlock("div",{onClick:M[0]||(M[0]=vue.withModifiers(ze=>J.disabled?null:N("select",J.item),["stop"])),class:vue.normalizeClass([{selected:J.selected,disabled:J.disabled},"px-2 py-1.5 hover:bg-slate-100 cursor-pointer"])},[vue.createElementVNode("div",_hoisted_1$y,[J.label?(vue.openBlock(),vue.createElementBlock("p",_hoisted_2$s,vue.toDisplayString(J.label),1)):(vue.openBlock(),vue.createElementBlock("p",_hoisted_3$n,"Нет имени")),J.selected?(vue.openBlock(),vue.createBlock(vue.unref(Z1),{key:2,name:"check",class:"text-slate-400"})):vue.createCommentVNode("",!0)]),J.labelLow?(vue.openBlock(),vue.createElementBlock("div",_hoisted_4$l,[vue.createElementVNode("p",_hoisted_5$j,vue.toDisplayString(J.labelLow),1)])):vue.createCommentVNode("",!0)],2))}},ReSimpleOption=_export_sfc(_sfc_main$F,[["__scopeId","data-v-6a702340"]]),_hoisted_1$x={class:"text-sm font-medium text-nowrap"},_hoisted_2$r={key:0,class:"text-red-100"},_hoisted_3$m={key:0,class:"text-xs text-black-35 mb-1 cursor-text"},_hoisted_4$k=["readonly","placeholder","required"],_sfc_main$E={__name:"ReSimpleSelect",props:vue.mergeModels({isLoading:{type:Boolean,default:!1},label:{type:String,default:"Выберите из списка"},data:{type:Array,default:()=>[]},placeholder:{type:String,default:"Нажмите для выбора..."},idField:{type:String,default:"Id"},displayExpr:{type:[String,Function,Array],default:"Name"},displayExprLow:{type:[String,Function,Array,null],default:null},required:{type:Boolean,default:!1},maxOptionCount:{type:Number,default:50},listOptionHeightPx:{type:Number,default:400},maxOptionHistoryLength:{type:Number,default:10},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},noLocalFiltering:{type:Boolean,default:!1},devMode:{type:Boolean,default:!1},variant:{type:String,default:"default"},optionDisabled:{type:[Function,null],default:null},customNoOptionText:{type:[String,null],default:null},description:{type:[String,null],default:null},searchByLowField:{type:Boolean,default:!1},compact:{type:Boolean,default:!0}},{modelValue:{type:[String,null],default:null,local:!0},modelModifiers:{}}),emits:vue.mergeModels(["input","onSelectObject","clear"],["update:modelValue"]),setup(e,{emit:I}){const N=I,J=e,V=vue.useModel(e,"modelValue"),M=vue.ref(null),ze=vue.ref(!1),yt=vue.ref(!1),Ct=vue.ref(),Ft=vue.ref(null),Tt=new ActionLimiter$1(yn,500,ActionLimiter$1.MODE.DELAY),Ot=vue.ref([]),Nt=vue.ref({left:0,width:0});vue.watch(yt,()=>{yt.value||$t()},{immediate:!0}),vue.watch(V,()=>{$t()},{immediate:!0}),vue.watch(()=>J.data,()=>{V.value&&!yt.value&&(J.data.find(un=>un[J.idField]===V.value)?(Ct.value=zt(J.data.find(un=>un[J.idField]===V.value)),M.value=J.data.find(un=>un[J.idField]===V.value)):Ot.value.find(un=>un[J.idField]===V.value)&&(Ct.value=zt(Ot.value.find(un=>un[J.idField]===V.value)),M.value=Ot.value.find(un=>un[J.idField]===V.value)))},{immediate:!0});const It=vue.computed(()=>{let un=JSON.parse(JSON.stringify(J.data));return yt.value&&!J.noLocalFiltering&&Ct.value&&(un=un.filter(an=>{let dn=zt(an);if(J.searchByLowField){const fn=Wt(an);dn+=" "+fn}return dn&&an&&Ct.value?dn.toLowerCase().includes(Ct.value.toLowerCase()):!1})),V.value&&V.value!=window.nullGuid&&!yt.value&&(un.find(an=>an[J.idField]===V.value)?un=un.sort((an,dn)=>an[J.idField]===V.value?-1:dn[J.idField]===V.value?1:0):(M.value&&(un=[M.value,...un]),un.findIndex(an=>an[J.idField]===V.value)===-1&&(J.customNoOptionText?notifyError$1(`${J.customNoOptionText} ● ${J.idField}=${V.value}`):notifyError$1(`Не удалось найти опцию с ${J.idField}=${V.value}`)))),un=un.splice(0,J.maxOptionCount),un});function Vt(){if(Ft.value){const un=Ft.value.getBoundingClientRect();Nt.value.left=un.left,Nt.value.width=un.width}}function $t(){if(!V.value){Ct.value=null,M.value=null,N("clear");return}const un=J.data.find(an=>an[J.idField]===V.value)||Ot.value.find(an=>an[J.idField]===V.value)||M.value;un?(Ct.value=zt(un),M.value=un):(Ct.value="Нет в списке",M.value=null)}function zt(un,an=J.displayExpr){if(typeof an=="function")return String(an(un));if(typeof an=="string")return String(un?.[an]);if(Array.isArray(an)){let dn="";for(let fn=0;fn<an.length;fn++){if(!un?.[an[fn]]&&!an[fn].startsWith("*")){J.devMode&&console.error(`Cant find ${an[fn]} in record with ${J.idField} = ${un[J.idField]}`);continue}if(an[fn].startsWith("*")){const fr=an[fn].slice(1);dn+=String(fr)}else dn+=String(un?.[an[fn]]);fn<an.length-1&&(dn+=" ")}return dn}return null}function Wt(un){return zt(un,J.displayExprLow)}function Xt(un){if(M.value=un||null,un[J.idField]===V.value&&J.clearable){nn();return}ze.value=!1,V.value=un[J.idField],Ct.value=zt(un),Ot.value.push(un),N("onSelectObject",un),Ot.value.length>J.maxOptionHistoryLength&&(Ot.value=Ot.value.slice(1,Ot.value.length))}function jt(){J.disabled||(ze.value=!ze.value,Vt())}function hn(un){Ft.value&&!Ft.value.contains(un.target)&&(ze.value=!1)}vue.onMounted(()=>{document.addEventListener("click",hn),window.addEventListener("resize",Vt)}),vue.onBeforeUnmount(()=>{document.removeEventListener("click",hn),window.removeEventListener("resize",Vt)});function ln(){yt.value=!0,ze.value=!0,Vt(),Tt.start()}function bn(){yt.value&&!Ct.value?.length&&J.clearable&&nn(),setTimeout(()=>{yt.value=!1},200)}function nn(){V.value=null,Ct.value=null,N("onSelectObject",null),N("clear")}function yn(){N("input",Ct.value||"")}return(un,an)=>{const dn=vue.resolveComponent("PerfectScrollbar");return vue.openBlock(),vue.createBlock(vue.unref(kt),{shown:ze.value,triggers:[],autoHide:!1,noAutoFocus:""},{popper:vue.withCtx(()=>[vue.createVNode(dn,{class:"max-h-96 min-w-[350px]",style:vue.normalizeStyle({width:Nt.value.width+"px"})},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(It.value,fn=>(vue.openBlock(),vue.createBlock(ReSimpleOption,{onSelect:fr=>Xt(fn),item:fn,selected:fn[J.idField]===V.value,key:fn[J.idField],label:zt(fn),labelLow:Wt(fn),disabled:typeof J.optionDisabled=="function"?J.optionDisabled(fn):!1},null,8,["onSelect","item","selected","label","labelLow","disabled"]))),128)),It.value.length===0?(vue.openBlock(),vue.createBlock(ReSimpleOption,{key:0,disabled:"",label:"Нет данных"})):vue.createCommentVNode("",!0)]),_:1},8,["style"])]),default:vue.withCtx(()=>[vue.createElementVNode("div",{ref_key:"dropdown",ref:Ft,onClick:vue.withModifiers(jt,["prevent"]),class:"relative"},[vue.createElementVNode("label",{class:vue.normalizeClass({"flex flex-row gap-2 items-center":J.variant=="left-label"})},[vue.createElementVNode("p",_hoisted_1$x,[vue.createTextVNode(vue.toDisplayString(J.label)+" ",1),J.required&&!V.value?(vue.openBlock(),vue.createElementBlock("span",_hoisted_2$r,"*")):vue.createCommentVNode("",!0)]),J.description?(vue.openBlock(),vue.createElementBlock("p",_hoisted_3$m,vue.toDisplayString(J.description),1)):vue.createCommentVNode("",!0),vue.createElementVNode("div",{class:vue.normalizeClass(["flex justify-between items-center border px-1 rounded border-slate-200 bg-white",{"bg-gray-100":J.disabled,"w-full":J.variant=="left-label","h-8":J.compact}])},[vue.withDirectives(vue.createElementVNode("input",{class:"border-none bg-transparent w-full text-sm focus:ring-0",readonly:J.disabled,onInput:ln,onBlur:bn,placeholder:J.placeholder,type:"text","onUpdate:modelValue":an[0]||(an[0]=fn=>Ct.value=fn),required:J.required},null,40,_hoisted_4$k),[[vue.vModelText,Ct.value]]),J.isLoading?(vue.openBlock(),vue.createBlock(vue.unref(Z1),{key:J.isLoading,name:"spinner",class:"px-1 text-gray-300 animate-spin"})):vue.createCommentVNode("",!0),V.value&&J.clearable&&!J.disabled?(vue.openBlock(),vue.createBlock(vue.unref(Z1),{key:1,name:"xmark",class:"px-1 text-gray-300 hover:text-gray-600",onClickOnce:nn})):vue.createCommentVNode("",!0),vue.createVNode(vue.unref(Z1),{onClick:an[1]||(an[1]=()=>console.log(123)),name:"chevron-down",style:vue.normalizeStyle({color:J.disabled?"gray":"rgb(108, 139, 201)"}),class:"px-1 hover:bg-slate-100 rounded-full cursor-pointer py-1"},null,8,["style"])],2)],2)],512)]),_:1},8,["shown"])}}},_hoisted_1$w={class:"border p-2 rounded"},_hoisted_2$q={class:"grid grid-cols-2 gap-1"},_hoisted_3$l={class:"border p-2 rounded"},_hoisted_4$j={class:"grid grid-cols-2 gap-1"},_hoisted_5$i={class:"flex gap-3"},_hoisted_6$i={class:"w-[50%] preparat-tooltip-wrapper"},_hoisted_7$h={class:"w-[50%] preparat-tooltip-wrapper"},_hoisted_8$f={class:"flex gap-2 w-full border p-2 rounded-lg"},_hoisted_9$d={class:"preparat-tooltip-wrapper"},_hoisted_10$c={key:0,class:"text-xs text-amber-600 cursor-help border-b border-dashed border-amber-300",title:"При копировании потребности можно заменить препарат на другой только с таким же МНН"},_hoisted_11$b={key:2,class:"flex flex-col gap-1"},_hoisted_12$a={class:"text-sm border rounded px-3 py-1 bg-gray-100 text-gray-800 text-balance"},_hoisted_13$9={class:"flex gap-3"},_hoisted_14$7={class:"preparat-tooltip-wrapper"},_hoisted_15$6={class:"flex gap-3"},_sfc_main$D={__name:"ApplicationFormFields",props:{formData:{type:Object,required:!0},readOnly:{type:Boolean,default:!1},user:{type:Object,required:!0},listDivision:{type:Array,default:()=>[]},selectListLgots:{type:Array,default:()=>[]},api_listProgramms:{type:Array,default:()=>[]},listPreparatsFiltered:{type:Array,default:()=>[]},listDiagnosis:{type:Array,default:()=>[]},selectedPreparatSign:{type:Boolean,default:!1},isNewNeed:{type:Boolean,default:!0},isMkbDisabled:{type:Boolean,default:!1},VKtrue:{type:Boolean,default:!1},isViewSignPreparat:{type:[Boolean,null],default:null},attributesPreparatTemplate:{type:Array,default:()=>[]},preparatDisplayExpr:{type:Function,default:()=>{}},preparatDisplayExprLow:{type:Function,default:()=>{}},labelLgota:{type:String,default:"Льгота"},nameActionCopyNeed:{type:Object,default:null}},emits:["removeLeadingZero","update:isViewSignPreparat"],setup(e,{expose:I,emit:N}){const J=e,V=N,M=vue.ref(null),ze=vue.computed(()=>J.listPreparatsFiltered?.filter(Nt=>J.isViewSignPreparat===null?!0:Nt.Sign===J.isViewSignPreparat)||[]),yt=vue.ref(""),Ct=vue.ref(""),Ft=vue.ref(""),Tt=vue.ref("");vue.watch(()=>J.formData?.Mkb10Id,Nt=>{if(!J.listDiagnosis?.length||!Nt){Tt.value="";return}const It=J.listDiagnosis.find(Vt=>Vt.Id===Nt);Tt.value=It?`${It.Code} ${It.Name}`:""},{immediate:!0}),vue.watch(()=>J.formData?.LgotaId,Nt=>{if(!J.selectListLgots?.length||!Nt){yt.value="";return}const It=J.selectListLgots.find(Vt=>Vt.Id===Nt);yt.value=It?`(${It.BenefitCodeShort}) ${It.BenefitNameLong}`:""},{immediate:!0}),vue.watch(()=>J.formData?.ProgramId,Nt=>{if(!J.api_listProgramms?.length||!Nt){Ct.value="";return}const It=J.api_listProgramms.find(Vt=>Vt.Id===Nt);Ct.value=It?`(${It.Name})`:""},{immediate:!0}),vue.watch(()=>J.formData?.TemplatePreparatId,Nt=>{if(!ze.value?.length||!Nt){Ft.value="";return}const It=J.preparatDisplayExpr(ze.value.find(Vt=>Vt.Id===Nt));Ft.value=It?`(${It})`:""},{immediate:!0});function Ot(Nt){V("removeLeadingZero",Nt)}return I({formRef:M,reportValidity:()=>M.value?.reportValidity()}),(Nt,It)=>(vue.openBlock(),vue.createElementBlock("fieldset",null,[vue.createElementVNode("form",{ref_key:"formRef",ref:M,class:"flex flex-col gap-1"},[e.user.LpuId=="e41d5246-7a49-4b5a-a306-00ef5125d3d8"?(vue.openBlock(),vue.createBlock(vue.unref(jc),{key:0,label:"Дополнительная заявочная кампания",modelValue:e.formData.Additional,"onUpdate:modelValue":It[0]||(It[0]=Vt=>e.formData.Additional=Vt)},null,8,["modelValue"])):vue.createCommentVNode("",!0),vue.createVNode(_sfc_main$G,{label:"Дата заявки",modelValue:e.formData.DateNeed,"onUpdate:modelValue":It[1]||(It[1]=Vt=>e.formData.DateNeed=Vt),disabled:""},null,8,["modelValue"]),vue.createElementVNode("div",_hoisted_1$w,[It[19]||(It[19]=vue.createElementVNode("p",{class:"font-semibold text-sm"},"ВК",-1)),It[20]||(It[20]=vue.createElementVNode("hr",null,null,-1)),vue.createElementVNode("div",_hoisted_2$q,[vue.createVNode(vue.unref($A),{label:"Номер ВК",modelValue:e.formData.NumberVK,"onUpdate:modelValue":It[2]||(It[2]=Vt=>e.formData.NumberVK=Vt),mask:"00000000000",tokens:"0:\\d:optional",required:!e.selectedPreparatSign,disabled:e.readOnly},null,8,["modelValue","required","disabled"]),vue.createVNode(_sfc_main$G,{label:"Дата ВК",modelValue:e.formData.DateVK,"onUpdate:modelValue":It[3]||(It[3]=Vt=>e.formData.DateVK=Vt),required:!e.selectedPreparatSign,disabled:e.readOnly},null,8,["modelValue","required","disabled"])])]),vue.createElementVNode("div",_hoisted_3$l,[It[21]||(It[21]=vue.createElementVNode("p",{class:"font-semibold text-sm"},"НПР",-1)),It[22]||(It[22]=vue.createElementVNode("hr",null,null,-1)),vue.createElementVNode("div",_hoisted_4$j,[vue.createVNode(vue.unref($A),{label:"Номер НПР",modelValue:e.formData.NprNumber,"onUpdate:modelValue":It[4]||(It[4]=Vt=>e.formData.NprNumber=Vt),mask:"00000000000",tokens:"0:\\d:optional",required:!!e.formData.NprDate,disabled:e.readOnly},null,8,["modelValue","required","disabled"]),vue.createVNode(_sfc_main$G,{label:"Дата НПР",modelValue:e.formData.NprDate,"onUpdate:modelValue":It[5]||(It[5]=Vt=>e.formData.NprDate=Vt),required:!!e.formData.NprNumber,disabled:e.readOnly},null,8,["modelValue","required","disabled"])])]),vue.unref(lpusWithDivision).includes(e.user.LpuId)?(vue.openBlock(),vue.createBlock(_sfc_main$O,{key:1,data:e.listDivision,label:"Отделение",modelValue:e.formData.DivisionId,"onUpdate:modelValue":It[6]||(It[6]=Vt=>e.formData.DivisionId=Vt),required:"",clearable:"",disabled:e.readOnly},null,8,["data","modelValue","disabled"])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_5$i,[vue.createElementVNode("div",_hoisted_6$i,[vue.createVNode(vue.unref(Ts),{text:yt.value,placement:"top"},{default:vue.withCtx(()=>[vue.createVNode(_sfc_main$O,{ref:"fieldLgota",label:e.labelLgota,modelValue:e.formData.LgotaId,"onUpdate:modelValue":It[7]||(It[7]=Vt=>e.formData.LgotaId=Vt),data:e.selectListLgots,"display-expr":Vt=>"("+Vt.BenefitCodeShort+") "+Vt.BenefitNameLong,required:"",clearable:"",disabled:!e.isNewNeed||e.readOnly},null,8,["label","modelValue","data","display-expr","disabled"])]),_:1},8,["text"])]),vue.createElementVNode("div",_hoisted_7$h,[vue.createVNode(vue.unref(Ts),{text:Ct.value,placement:"top"},{default:vue.withCtx(()=>[vue.createVNode(_sfc_main$O,{required:"",label:"Программа",modelValue:e.formData.ProgramId,"onUpdate:modelValue":It[8]||(It[8]=Vt=>e.formData.ProgramId=Vt),data:e.api_listProgramms,disabled:""},null,8,["modelValue","data"])]),_:1},8,["text"])])]),vue.createElementVNode("div",_hoisted_8$f,[vue.createVNode(vue.unref(Bv1),{label:"Выбор признака ЛП при поиске в поле [Препарат]","model-value":e.isViewSignPreparat,"onUpdate:modelValue":It[9]||(It[9]=Vt=>V("update:isViewSignPreparat",Vt))},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(e.attributesPreparatTemplate,Vt=>(vue.openBlock(),vue.createBlock(vue.unref(Tv1),{value:Vt.value,label:Vt.label,disabled:e.readOnly||e.nameActionCopyNeed?.state},null,8,["value","label","disabled"]))),256))]),_:1},8,["model-value"])]),vue.createElementVNode("div",_hoisted_9$d,[e.nameActionCopyNeed?.state===vue.unref(listStateActionCopy).CHANGE_LP.state?(vue.openBlock(),vue.createElementBlock("span",_hoisted_10$c," 🔄 Возможна замена только по ранее одобренной\\отклоненной МНН ")):vue.createCommentVNode("",!0),vue.createVNode(vue.unref(Ts),{text:Ft.value,placement:"top"},{default:vue.withCtx(()=>[(vue.openBlock(),vue.createBlock(_sfc_main$E,{key:ze.value.length,modelValue:e.formData.TemplatePreparatId,"onUpdate:modelValue":It[10]||(It[10]=Vt=>e.formData.TemplatePreparatId=Vt),data:ze.value,"display-expr":e.preparatDisplayExpr,"display-expr-low":e.preparatDisplayExprLow,searchByLowField:!e.nameActionCopyNeed,disabled:!e.formData.ProgramId||e.readOnly||e.nameActionCopyNeed?.state===vue.unref(listStateActionCopy).BLOCK_CHANGE_LP.state,clearable:!e.nameActionCopyNeed},null,8,["modelValue","data","display-expr","display-expr-low","searchByLowField","disabled","clearable"]))]),_:1},8,["text"])]),e.VKtrue?(vue.openBlock(),vue.createElementBlock("div",_hoisted_11$b,[It[23]||(It[23]=vue.createElementVNode("p",{class:"text-sm font-medium"},"Торговое наименование",-1)),vue.createElementVNode("p",_hoisted_12$a,vue.toDisplayString(ze.value.find(Vt=>Vt.Id==e.formData.TemplatePreparatId)?.TradeName),1)])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_13$9,[vue.createVNode(vue.unref(jc),{label:"Взаимозаменяемость",modelValue:e.formData.Interchangeability,"onUpdate:modelValue":It[11]||(It[11]=Vt=>e.formData.Interchangeability=Vt),disabled:e.readOnly},null,8,["modelValue","disabled"]),vue.createCommentVNode("",!0)]),vue.createElementVNode("div",_hoisted_14$7,[vue.createVNode(vue.unref(Ts),{text:Tt.value,placement:"top"},{default:vue.withCtx(()=>[vue.createVNode(_sfc_main$H,{label:"Диагноз",modelValue:e.formData.Mkb10Id,"onUpdate:modelValue":It[13]||(It[13]=Vt=>e.formData.Mkb10Id=Vt),required:"",clearable:"",disabled:e.isMkbDisabled||e.readOnly,"list-diagnosis":e.listDiagnosis},null,8,["modelValue","disabled","list-diagnosis"])]),_:1},8,["text"])]),vue.createVNode(vue.unref(o$),{label:"Примечание",modelValue:e.formData.Comment,"onUpdate:modelValue":It[14]||(It[14]=Vt=>e.formData.Comment=Vt),readonly:e.readOnly},null,8,["modelValue","readonly"]),vue.createElementVNode("div",_hoisted_15$6,[vue.createVNode(vue.unref($A),{id:"CountMonth",label:"Кол-во упаковок на 1 месяц",mask:"0",tokens:"0:\\d:multiple",modelValue:e.formData.CountMonth,"onUpdate:modelValue":It[15]||(It[15]=Vt=>e.formData.CountMonth=Vt),disabled:e.readOnly,required:"",onInput:It[16]||(It[16]=Vt=>Ot(Vt))},null,8,["modelValue","disabled"]),vue.createVNode(vue.unref($A),{id:"CountYear",label:"Кол-во упаковок на 1 год",mask:"0",tokens:"0:\\d:multiple",modelValue:e.formData.CountYear,"onUpdate:modelValue":It[17]||(It[17]=Vt=>e.formData.CountYear=Vt),disabled:e.readOnly,required:"",onInput:It[18]||(It[18]=Vt=>Ot(Vt))},null,8,["modelValue","disabled"])])],512)]))}},_hoisted_1$v={key:0},_hoisted_2$p={class:"p-3"},_hoisted_3$k={class:"w-full h-full absolute top-0 left-0 flex justify-center items-center animate-pulse z-[5000]"},_hoisted_4$i={class:"flex justify-end gap-3"},_hoisted_5$h={key:1},_hoisted_6$h={class:"pl-1 pr-1 relative"},_hoisted_7$g={class:"w-full h-full absolute top-0 left-0 flex justify-center items-center animate-pulse z-[5000]"},_sfc_main$C={__name:"ApplicationForm",props:vue.mergeModels({noModal:{type:Boolean,default:!1},needId:{type:String,default:""},waitRequest:{type:Boolean,default:!1},patientId:{type:String,default:"",required:!0},patientSnils:{type:String,default:"",required:!0},userOpen:{type:Object,default:{},required:!0},selectedApplication:{type:Object,default:{}},hiddenControl:{type:Boolean,default:!1},additional:{type:Boolean,default:!1},docAppYear:{type:Number,required:!0},api_listBenefits:{type:Array,default:[]},api_listPreparats:{type:Array,default:[]},api_listProgramms:{type:Array,default:[]},api_historyLgots:{type:Array,default:[]},api_activeLgots:{type:Array,default:[]},api_listDiagnosis:{type:Array,default:[]},api_appDocuments:{type:Array,default:[]}},{readOnly:{default:!1},readOnlyModifiers:{},stateActionCopy:{default:null},stateActionCopyModifiers:{},dataNeedCopy:{default:null},dataNeedCopyModifiers:{},modalVisible:{default:!1},modalVisibleModifiers:{},waitRequest:{default:!1},waitRequestModifiers:{}}),emits:vue.mergeModels(["onSave","onDelete"],["update:readOnly","update:stateActionCopy","update:dataNeedCopy","update:modalVisible","update:waitRequest"]),setup(e,{expose:I,emit:N}){const{getBenefitList:J,getBenefitListV2:V}=useBenefit(),M=e,ze=vue.computed(()=>M.userOpen),yt=N,Ct=vue.useModel(e,"readOnly"),Ft=vue.useModel(e,"stateActionCopy"),Tt=vue.useModel(e,"dataNeedCopy"),Ot=vue.useModel(e,"modalVisible"),Nt=vue.useModel(e,"waitRequest"),It=vue.ref(M.api_listProgramms),Vt=vue.ref(M.api_listBenefits),$t=vue.ref(M.api_listPreparats),zt=vue.ref(M.api_historyLgots),Wt=vue.ref(M.api_activeLgots),Xt=vue.ref(M.api_listDiagnosis),jt=vue.ref(M.api_appDocuments),hn=vue.ref(null),ln=vue.ref(null),bn=vue.ref(!1),nn=vue.ref(M.selectedApplication),yn=vue.ref(M.hiddenControl),un=vue.ref(M.needId),an=Object.values(approvedBenefitProgram),dn=vue.ref(!0),fn=vue.ref(!1),fr=vue.ref("Льгота"),lr=vue.computed(()=>!!ze.value.Permissions.find(pa=>["0","1","40"].includes(pa.AccessCode))),Hn=vue.ref([]),Kt=vue.ref([]),Mn=vue.ref({}),Bn=vue.computed(()=>Kt.value?.find(pa=>pa.Id===ir.value.TemplatePreparatId)),gr=vue.computed(()=>!!Bn.value?.Sign),Cn=vue.ref(null),_n=vue.computed(()=>[{label:"Только ЖВ",value:!0},{label:"Только НЕ ЖВ",value:!1},{label:"Все",value:null}]),An=vue.ref(!1),Vn=vue.computed(()=>{if(ir.value?.ProgramId){let pa=Kt.value;noSignPrograms.includes(ir.value.ProgramId)&&(pa=pa.filter(hu=>hu.Sign));let wa=Object.keys(programToPreparat).find(hu=>hu==ir.value.ProgramId);return wa&&(pa=pa.filter(hu=>hu[programToPreparat[wa]])),pa}return[]}),nr=vue.ref([]),hr=vue.ref([]),zn=vue.ref([]),tr=vue.ref([]),on=vue.ref(!1),vr=vue.ref(!1),ir=vue.ref({DateNeed:new Date().toLocaleDateString("ru-RU"),Additional:M.additional,Interchangeability:!1});vue.onMounted(()=>{yr()});const yr=async()=>{try{if(Yd(),await zl(),Ct.value)Hn.value=tr.value;else{const pa=It.value?.find(hu=>hu.Id===nn?.value?.Program),wa=pa?.BenefitProgramId;if(wa){const hu=zn.value?.filter(no=>no.ProgramId===wa);if(!hu?.length){notifyError$1(`Отсутствует активная льгота по программе ${pa.ProgramName}`,15e3,"Нет активных льгот"),Hn.value=[];return}Hn.value=hu}else Hn.value=zn.value}lpusWithDivision.includes(ze.value.LpuId)&&rd(),await Jr()}catch(pa){const wa=pa.response?.data?.message||pa.message||"Неизвестная ошибка";notifyError$1(`${wa}. Пожалуйста, откройте потребность повторно`,15e3,"Ошибка загрузки данных"),console.error(pa)}finally{qo()}};async function Ur(){if(ir.value.Id){if(vr.value){notifySuccess("Потребность уже была сохранена. Закройте форму!");return}await Fo().then(async pa=>{ir.value.Id=null,await Or()}).catch(pa=>{pa.response.data&&notifyError$1(pa.response.data)}).finally(()=>{})}}async function Or(pa=null){if(vr.value=!1,!!ln.value?.reportValidity?.()){if(ir.value.NprNumber||ir.value.NprDate?ir.value.Npr=!0:ir.value.Npr=!1,!ir.value.LgotaId){notifyError$1("Льгота не выбрана");return}if(!ir.value.TemplatePreparatId){notifyError$1("Препарат не выбран");return}if(!gr.value&&(!ir.value.NumberVK||!ir.value.DateVK)){notifyError$1("Для выбранного препарата требуется заполнить номер и дату ВК");return}if(ir.value.NprNumber&&!ir.value.NprDate){notifyError$1("Заполните дату НПР для указанного номера НПР");return}if(ir.value.NprDate&&!ir.value.NprNumber){notifyError$1("Заполните номер НПР для указанной даты НПР");return}if(!ir.value.ProgramId){notifyError$1("Программа не выбрана");return}if(lpusWithDivision.includes(ze.value.LpuId)&&!ir.value.DivisionId){notifyError$1("Отделение не выбрано");return}if(fn.value){notifyError$1("Невозможно сохранить потребность при неактивной льготе");return}on.value!=!0&&(Yd(),on.value=!0,ir.value.LpuId=ze.value.LpuId,ir.value.EmployeePostId=ze.value.Id,ir.value.PatientId=M.patientId,ir.value.CountMonth=Number(ir.value.CountMonth),ir.value.CountYear=Number(ir.value.CountYear),await window.axios({url:window.localhost+`ApplicationCompany/PatientNeeds?Id=${ir.value.Id??""}${"&AppDocId="+Mn.value.Id}`,method:"post",data:ir.value}).then(async wa=>{if(pa)return{state:200};ir.value.Id||(ir.value.Id=wa.data.Id),notifySuccess("Сохранено"),yt("onSave"),on.value=!1,vr.value=!0}).catch(wa=>{if(wa.response.data&&notifyError$1(wa.response.data),pa)return{state:500};on.value=!1}).finally(()=>{qo()}))}}async function rr(){Yd(),await window.axios.delete(window.localhost+`ApplicationCompany/PatientNeeds?PatientNeedId=${ir.value.Id}`).then(async()=>{await Jr(),notifySuccess("Удалено"),yt("onDelete"),Ot.value=!1}).catch(pa=>{pa?.response?.data?.Status?notifyError$1(pa.response.data.Status):notifyError$1("Произошла ошибка при удалении")}).finally(()=>qo())}async function Fo(){return await window.axios.delete(window.localhost+`ApplicationCompany/PatientNeeds?PatientNeedId=${ir.value.Id}`).catch(pa=>(pa.response.data.Status&&notifyError$1(pa.response.data.Status),"error"))}async function Fr(){if(jt.value?.length===0&&(jt.value=await window.axios.get(window.localhost+"ApplicationCompany/AppDocuments").then(pa=>pa.data)),Ct.value?Mn.value=jt.value?.filter(pa=>pa.Name.includes(`${M.docAppYear}`))[0]??[]:Mn.value=jt.value?.filter(pa=>!pa.Deleted&&pa.Name.includes(`${M.docAppYear}`))[0]??[],!Mn?.value?.Id){notifyError$1(`Неудалось получить перечень ЛП из шаблона за ${M.docAppYear} год. Пожалуйста, откройте потребность повторно или обратитесь в службу. тех. поддержки!`,15e3,"Ошибка загрузки данных"),An.value=!0;return}}async function br(){$t.value?.length===0&&($t.value=await window.axios.get(window.localhost+`ApplicationCompany/TemplatePreparatList?DocumentId=${Mn.value.Id}`).then(wa=>wa.data));const pa=$t?.value?.filter(wa=>wa.AppDocumentId===Mn.value.Id);if(!Ct.value&&pa){const hu=pa.filter(no=>!no.Deleted).filter(no=>!no.DeletedDate);Kt.value=hu}else Kt.value=pa}async function Jr(){Td();let pa=null;if(Tt?.value)pa=Tt.value;else if(M.needId)pa=await window.axios.get(window.localhost+`ApplicationCompany/PatientNeeds?Id=${M.needId}`).then(wa=>wa.data[0]);else return;pa?.DateNeed&&(pa.DateNeed=Ft?.value?new Date().toLocaleDateString("ru-RU"):pa.DateNeed),Ft?.value?.state?.includes("change")&&(pa.NumberVK=null,pa.DateVK=null,pa.Npr=!1,pa.NprDate=null,pa.NprNumber=null),ir.value=pa,console.log("formData ",ir.value)}async function Bo(){It.value?.length===0&&(It.value=await window.axios.get(window.localhost+"PreparatProgram?BaseProgram=true").then(pa=>pa.data.Body.filter(wa=>wa.BenefitProgramId).map(wa=>({...wa,label:wa.ValidName,Name:wa.ValidName}))))}async function Br(){try{if(Xt.value?.length===0){const pa=await api$1.Mkb.get();Xt.value=pa.data}}catch(pa){notifyError$1("Ошибка загрузки справочника МКБ. Пожалуйста, откройте потребность повторно",15e3,"Ошибка загрузки данных"),console.error(pa)}finally{}}async function ga(){zt.value?.length===0&&M.patientSnils&&(zt.value=await J({Snils:M.patientSnils})||null),Wt.value?.length===0&&M.patientSnils&&(Wt.value=(await V({Snils:M.patientSnils,Monetized:!1,Active:!0,Deleted:!1})).filter(pa=>Object.values(an).includes(pa.BenefitProgram))||null),nr.value=zt.value,hr.value=Wt.value}async function ud(){Vt.value?.length===0&&(Vt.value=await window.axios.get(window.localhost+"refs/BenefitMap").then(pa=>(pa.data?.length?pa.data:pa.data.Body).map(hu=>({...hu})))),nr.value?.length!==0&&(tr.value=Vt.value?.filter(pa=>nr.value.map(wa=>wa.BenefitCodeShort).includes(pa.BenefitCodeShort))),hr.value?.length!==0&&(zn.value=Vt.value?.filter(pa=>hr.value.map(wa=>wa.BenefitCodeShort).includes(pa.BenefitCodeShort)))}async function zl(){await Fr(),await br(),await Br(),await Bo(),await ga(),await ud()}function Td(){ir.value={DateNeed:new Date().toLocaleDateString("ru-RU"),Additional:M.additional,Interchangeability:!1}}vue.watch(()=>Cn.value,()=>{ir.value.TemplatePreparatId=null},{deep:!0}),vue.watch(()=>ir.value.LgotaId,async(pa,wa)=>{if(pa==null){ir.value.Mkb10Id=null,ir.value.ProgramId=null,ir.value.TemplatePreparatId=null,bn.value=!1;return}const no=Hn.value.find(ld=>ld.Id==ir.value.LgotaId)?.BenefitCodeShort,ru=hr.value.find(ld=>ld.BenefitCodeShort==no)?.MkbId;let gl;ir.value.Id?gl=ir.value.Mkb10Id||ru:gl=ru,["Заявка одобрена","Заявка отклонена"].includes(ir.value.ApplicationsStatus)||hr.value.some(ha=>ha.BenefitCodeShort==no)||(Hn.value=tr.value,gl=nr.value.find(ha=>ha.BenefitCodeShort==no)?.MkbId||ir.value.Mkb10Id,hn.value?.$el?.style?.setProperty("background-color","#f9c7c8"),fr.value="Льгота неактивна",fn.value=!0,notifyError$1("Льгота неактивна!",15e3,"ВНИМАНИЕ!"),notifyWarning("Указанная льгота в потребности в данный момент является неактивной! Необходимо принять меры по актуализации потребности(пересоздать) или льготы(восстановить)!",15e3,"Уведомление системы")),ir.value.ProgramId=It.value?.find(ld=>ld.BenefitProgramId==Hn.value?.find(ha=>ha.Id==ir.value.LgotaId)?.ProgramId)?.Id,gl?(ir.value.Mkb10Id=gl,bn.value=!0):Ct.value||(ir.value.Mkb10Id=null,bn.value=!1)},{deep:!0}),vue.watch(()=>ir.value.TemplatePreparatId,(pa,wa)=>{if(!pa)return;if(Ft?.value?.state===listStateActionCopy.CHANGE_LP.state){const ld=["глюкометр","иглы инсулиновые","инфузионные наборы к инсулиновой помпе","медицинские изделия","резервуар к инсулиновой помпе","Резервуары к инсулиновой помпе","Специализированный продукт лечебного питания","тест для определения содержания глюкозы в крови","тест-полоски","шприц - ручка"],ha=Kt?.value?.find(ko=>ko.Id===pa)?.Mnn?.trim()?.toLowerCase();if(!ha){notifyError$1("Не указан МНН у мед. продукции",15e3,"Ошибка в шаблоне ЛП"),Ft.value=listStateActionCopy.BLOCK_CHANGE_LP,Ct.value=!0;return}const Cd=ld.some(ko=>ha===ko.toLowerCase());if(ha&&!Cd){const ko=Kt.value.filter(La=>La.Mnn?.trim().toLowerCase()===ha);Kt.value=ko}else notifyWarning("Изменять по МНН можно только для ЛП",15e3,"Уведомление системы!"),Ft.value=listStateActionCopy.BLOCK_CHANGE_LP}if(!ir.value.ProgramId||!ir.value.TemplatePreparatId)return;const hu=Kt.value?.find(ld=>ld.Id===ir.value.TemplatePreparatId),no=It.value?.find(ld=>ld.Id===ir.value.ProgramId)?.ProgramName??"Неизвестная программа";let jo=Vn.value,ru=jo.some(ld=>ld.Id===ir.value.TemplatePreparatId),gl=(hu?`Неверно выбранный препарат ${hu.Mnn} ${hu.FullName}`:"Не найден препарат в справочнике").trimStart().trimEnd();if(!ru&&jo?.length>0){const ld=`${gl} для программы ${no}`;notifyError$1(ld),Ct.value||(notifyWarning("Выберите заново препарат!"),ir.value.TemplatePreparatId=null)}},{deep:!0}),vue.watch(()=>ir.value.Id,pa=>{dn.value=!pa},{deep:!0});const os=vue.computed(()=>ir.value.NumberVK&&ir.value.DateVK);function Fu(pa){return pa.CodeOKPD2=="1.2.643.5.1.13.13.99.2.1212"&&pa.CodeATX=="Лекарственные препараты и специализированные продукты лечебного питания"?pa.TradeName:""}function Wo(pa){const wa=[];return pa.Mnn&&wa.push(pa.Mnn),pa.FullName&&wa.push(pa.FullName),pa.MaxPriceWithVat&&wa.push(`(Цена: ${pa.MaxPriceWithVat??"не указана"})`),pa.CountInPackage&&wa.push(`(в уп-ке: ${pa.CountInPackage??"не указано"})`),typeof pa.Sign=="boolean"&&wa.push(`(${pa.Sign?"ЖВ":"Не ЖВ"})`),wa.join(" ")}const Yo=vue.ref([]);async function rd(){Yo.value=await window.axios.get(window.localhost+`Frmo?LpuId=${ze.value.LpuId}&TypeCode=18`).then(pa=>pa.data)}async function Yd(){Nt.value=!0,await vue.nextTick()}function qo(){Nt.value=!1}function Po(pa){const wa=pa.target.value;wa.startsWith("0")&&(pa.target.value=wa.replace(/^0+/,""),pa.target.id==="CountMonth"&&(ir.value.CountMonth=pa.target.value),pa.target.id==="CountYear"&&(ir.value.CountYear=pa.target.value))}return I({save:Or,loadData:yr,resetFormData:Td}),(pa,wa)=>e.noModal?(vue.openBlock(),vue.createElementBlock("div",_hoisted_5$h,[vue.createElementVNode("div",_hoisted_6$h,[vue.withDirectives(vue.createElementVNode("div",_hoisted_7$g,[...wa[12]||(wa[12]=[vue.createElementVNode("div",{class:"bg-black/60 w-full h-full absolute top-0 left-0 z-[5001]"},null,-1),vue.createElementVNode("div",{class:"bg-white rounded-lg p-4 flex flex-row gap-3 items-center z-[5002]"},[vue.createElementVNode("div",{role:"status"},[vue.createElementVNode("svg",{"aria-hidden":"true",class:"w-8 h-8 text-gray-200 animate-spin dark:text-gray-300 fill-blue-600",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[vue.createElementVNode("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",fill:"currentColor"}),vue.createElementVNode("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",fill:"currentFill"})])]),vue.createElementVNode("div",null,[vue.createElementVNode("p",{class:"font-bold"},"Загрузка данных"),vue.createElementVNode("p",{class:"text-sm text-gray-500"},"Пожалуйста, подождите...")])],-1)])],512),[[vue.vShow,Nt.value]]),vue.createVNode(_sfc_main$D,{ref_key:"formRef",ref:ln,formData:ir.value,readOnly:Ct.value,user:ze.value,listDivision:Yo.value,selectListLgots:Hn.value,api_listProgramms:It.value,listPreparatsFiltered:Vn.value,selectedPreparatSign:gr.value,isNewNeed:dn.value,isMkbDisabled:bn.value,VKtrue:os.value,isViewSignPreparat:Cn.value,"onUpdate:isViewSignPreparat":wa[7]||(wa[7]=hu=>Cn.value=hu),attributesPreparatTemplate:_n.value,preparatDisplayExpr:Wo,preparatDisplayExprLow:Fu,labelLgota:fr.value,onRemoveLeadingZero:Po,nameActionCopyNeed:Ft.value,listDiagnosis:Xt.value},null,8,["formData","readOnly","user","listDivision","selectListLgots","api_listProgramms","listPreparatsFiltered","selectedPreparatSign","isNewNeed","isMkbDisabled","VKtrue","isViewSignPreparat","attributesPreparatTemplate","labelLgota","nameActionCopyNeed","listDiagnosis"])])])):(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$v,[vue.createVNode(vue.unref(_s),{size:"2xl",title:`${nn.value?.Additional??ir.value.Additional?"Дополнительная":"Основная"} заявка${nn.value?.Number?` № ${nn.value.Number}`:""} на ${e.docAppYear} год ${vr.value?"(Сохранено)":""}`,modelValue:Ot.value,"onUpdate:modelValue":wa[5]||(wa[5]=hu=>Ot.value=hu),onKeydown:wa[6]||(wa[6]=vue.withKeys(hu=>Ct.value?hu.preventDefault():null,["tab"]))},{default:vue.withCtx(()=>[An.value?(vue.openBlock(),vue.createElementBlock("div",{key:0,onKeydown:wa[0]||(wa[0]=vue.withKeys(vue.withModifiers(()=>{},["prevent"]),["tab"])),tabindex:"0",style:{position:"absolute",inset:"0",background:"rgba(200, 200, 200, 0.5)","z-index":"999","pointer-events":"all"}},null,32)):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_2$p,[vue.withDirectives(vue.createElementVNode("div",_hoisted_3$k,[...wa[8]||(wa[8]=[vue.createElementVNode("div",{class:"bg-black/60 w-full h-full absolute top-0 left-0 z-[5001]"},null,-1),vue.createElementVNode("div",{class:"bg-white rounded-lg p-4 flex flex-row gap-3 items-center z-[5002]"},[vue.createElementVNode("div",{role:"status"},[vue.createElementVNode("svg",{"aria-hidden":"true",class:"w-8 h-8 text-gray-200 animate-spin dark:text-gray-300 fill-blue-600",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[vue.createElementVNode("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",fill:"currentColor"}),vue.createElementVNode("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",fill:"currentFill"})])]),vue.createElementVNode("div",null,[vue.createElementVNode("p",{class:"font-bold"},"Загрузка данных"),vue.createElementVNode("p",{class:"text-sm text-gray-500"},"Пожалуйста, подождите...")])],-1)])],512),[[vue.vShow,Nt.value]]),vue.createVNode(_sfc_main$D,{ref_key:"formRef",ref:ln,formData:ir.value,readOnly:Ct.value,user:ze.value,listDivision:Yo.value,selectListLgots:Hn.value,api_listProgramms:It.value,listPreparatsFiltered:Vn.value,selectedPreparatSign:gr.value,isNewNeed:dn.value,isMkbDisabled:bn.value,VKtrue:os.value,isViewSignPreparat:Cn.value,"onUpdate:isViewSignPreparat":wa[1]||(wa[1]=hu=>Cn.value=hu),attributesPreparatTemplate:_n.value,preparatDisplayExpr:Wo,preparatDisplayExprLow:Fu,labelLgota:fr.value,onRemoveLeadingZero:Po,listDiagnosis:Xt.value},null,8,["formData","readOnly","user","listDivision","selectListLgots","api_listProgramms","listPreparatsFiltered","selectedPreparatSign","isNewNeed","isMkbDisabled","VKtrue","isViewSignPreparat","attributesPreparatTemplate","labelLgota","listDiagnosis"])])]),footer:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_4$i,[un.value&&!yn.value?(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:0,delete:"",onClick:wa[2]||(wa[2]=hu=>rr(un.value)),disabled:!lr.value||Ct.value||An.value,loading:Nt.value},{default:vue.withCtx(()=>[...wa[9]||(wa[9]=[vue.createTextVNode("Удалить",-1)])]),_:1},8,["disabled","loading"])):vue.createCommentVNode("",!0),yn.value?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:1,primary:"",onClick:wa[3]||(wa[3]=hu=>un.value?Ur():Or()),loading:Nt.value,disabled:Ct.value||An.value},{default:vue.withCtx(()=>[...wa[10]||(wa[10]=[vue.createTextVNode("Сохранить",-1)])]),_:1},8,["loading","disabled"])),vue.createVNode(vue.unref(_2),{onClick:wa[4]||(wa[4]=hu=>Ot.value=!1)},{default:vue.withCtx(()=>[...wa[11]||(wa[11]=[vue.createTextVNode("Закрыть",-1)])]),_:1})])]),_:1},8,["title","modelValue"])]))}},_hoisted_1$u=["id"],_hoisted_2$o={key:0,class:"flex justify-end mb-1 flex-none"},_hoisted_3$j={class:"min-h-0 overflow-hidden"},_hoisted_4$h={class:"re-table"},_hoisted_5$g={key:0,class:"text-right"},_hoisted_6$g={class:"flex flex-col"},_hoisted_7$f=["onClick"],_hoisted_8$e={class:"flex flex-col gap-0.5 w-[600px]"},_hoisted_9$c={class:"text-sm text-slate-500 text-center"},_hoisted_10$b={open:"",class:"px-1"},_hoisted_11$a={class:"px-1"},_hoisted_12$9={class:"rs-table-btn"},_hoisted_13$8={class:"flex justify-between items-center text-sm text-slate-500 gap-1"},_hoisted_14$6={class:"flex flex-col gap-1"},_hoisted_15$5=["onClick"],_hoisted_16$5={class:"px-1"},_hoisted_17$4=["onClick"],_hoisted_18$4=["onDblclick"],_hoisted_19$4={key:1},_hoisted_20$4=["onContextmenu","onClick"],_hoisted_21$4={key:0,class:"text-right"},_hoisted_22$4=["onClick","title"],_hoisted_23$4={key:0},_hoisted_24$3={key:1},_hoisted_25$3={key:2},_hoisted_26$3=["title"],_hoisted_27$3=["title"],_hoisted_28$3={key:1},_hoisted_29$3=["onClick"],_hoisted_30$3={key:0},_hoisted_31$2={key:0,class:"bg-slate-100 hover:bg-slate-100 cursor-arrow"},_hoisted_32$2={key:0},_hoisted_33$2={key:1},_hoisted_34$2={key:1},_hoisted_35$1={key:0},_hoisted_36$1={class:"mb-3"},_hoisted_37$1={class:"border rounded p-3 bg-gray-50"},_hoisted_38$1=["onDragstart","onDrop"],_hoisted_39$1={class:"flex items-center gap-2"},_hoisted_40$1={class:"text-sm font-medium"},_hoisted_41$1={class:"flex items-center gap-1"},_hoisted_42$1=["onClick"],_hoisted_43$1=["onClick"],_hoisted_44$1={class:"flex justify-end gap-2"},_hoisted_45$1={class:"flex-none pagination-wrapper"},_hoisted_46$1={class:"flex items-center gap-4"},_hoisted_47$1={key:0,class:"pagination"},_hoisted_48$1=["onClick"],_hoisted_49$1={key:1,class:"flex items-center gap-2"},_hoisted_50$1={class:"text-sm text-slate-400"},STORAGE_KEY_ALL_HIDDEN="table_hidden_columns",STORAGE_KEY_ALL_WIDTHS="table_column_widths",STORAGE_KEY_PAGE_SIZE="table_page_size",STORAGE_KEY_COLUMN_ORDER="table_column_order",_sfc_main$B={__name:"ReSimpleTableAppCompany",props:vue.mergeModels({striped:{type:Boolean,default:!1},columns:{type:Array,default:()=>[]},growOnlyX:{type:Boolean,default:!1},data:{type:Array,default:()=>[]},pageSize:{type:Number,default:999},rowActions:{type:Array,default:()=>[]},rowColor:{type:Function,default:()=>{}},enableXlsxExport:{type:Boolean,default:!1},contextActions:{type:Array,default:()=>[]},rowHorizontal:{type:Boolean,default:!1},tableClass:{type:String,default:""},customPagination:{type:Boolean,default:!1},recordTotal:{type:Number,default:0},tableId:{type:String,required:!0},stickyHeader:{type:Boolean,default:!1},wheelPropagation:{type:Boolean,default:!0},numbering:{type:Boolean,default:!1},enablePageSizeSelector:{type:Boolean,default:!1},footer:{type:Boolean,default:!1},height:{type:String}},{sortDirection:{local:!0,default:null},sortDirectionModifiers:{},sortColumnIndex:{local:!0,default:null},sortColumnIndexModifiers:{},page:{local:!0,default:1},pageModifiers:{}}),emits:vue.mergeModels(["rowClicked","cellClicked"],["update:sortDirection","update:sortColumnIndex","update:page"]),setup(e,{expose:I,emit:N}){const J=N,V=vue.ref({}),M=e,ze=vue.useModel(e,"sortDirection"),yt=vue.useModel(e,"sortColumnIndex"),Ct=vue.ref(""),Ft=vue.ref({}),Tt=vue.ref({}),Ot=vue.ref({}),Nt=vue.ref(!1),It=vue.ref([]),Vt=vue.ref(null),$t=vue.ref(M.pageSize);vue.watch(()=>M.pageSize,()=>{$t.value=M.pageSize},{immediate:!0});function zt(){try{const qo=JSON.parse(localStorage.getItem(STORAGE_KEY_ALL_HIDDEN)||"{}"),Po=JSON.parse(localStorage.getItem(STORAGE_KEY_ALL_WIDTHS)||"{}"),pa=JSON.parse(localStorage.getItem(STORAGE_KEY_COLUMN_ORDER)||"{}");qo[M.tableId]&&(fn.value=qo[M.tableId]),Po[M.tableId]&&(nn.value=Po[M.tableId],Xt()),pa[M.tableId]&&Yd(pa[M.tableId])}catch(qo){console.error("Ошибка при загрузке состояния таблицы:",qo)}}function Wt(){try{const qo=JSON.parse(localStorage.getItem(STORAGE_KEY_ALL_HIDDEN)||"{}"),Po=JSON.parse(localStorage.getItem(STORAGE_KEY_ALL_WIDTHS)||"{}"),pa=JSON.parse(localStorage.getItem(STORAGE_KEY_PAGE_SIZE)||"{}"),wa=JSON.parse(localStorage.getItem(STORAGE_KEY_COLUMN_ORDER)||"{}");Object.keys(fn.value).length?qo[M.tableId]=fn.value:delete qo[M.tableId],Object.keys(nn.value).length?Po[M.tableId]=nn.value:delete Po[M.tableId],pa[M.tableId]=$t.value,It.value.length>0?wa[M.tableId]=It.value.map(hu=>hu.originalIndex):delete wa[M.tableId],localStorage.setItem(STORAGE_KEY_ALL_HIDDEN,JSON.stringify(qo)),localStorage.setItem(STORAGE_KEY_ALL_WIDTHS,JSON.stringify(Po)),localStorage.setItem(STORAGE_KEY_PAGE_SIZE,JSON.stringify(pa)),localStorage.setItem(STORAGE_KEY_COLUMN_ORDER,JSON.stringify(wa))}catch(qo){console.error("Ошибка при сохранении состояния таблицы:",qo)}}async function Xt(){if(await vue.nextTick(),!M.tableId){console.log("Не указан идентификатор таблицы",M.columns),notifyError$1("Не указан идентификатор таблицы");return}const qo=document.getElementById(`table-${M.tableId}`);if(!qo)return;const Po=qo.querySelector(".re-table");if(!Po)return;const pa=Po.querySelectorAll("thead th");Object.entries(nn.value).forEach(([wa,hu])=>{const no=pa[parseInt(wa)];no&&hu&&(no.style.width=`${hu}px`,no.style.minWidth=`${hu}px`)})}vue.onMounted(()=>{Jr(),zt(),document.addEventListener("click",Ur),document.addEventListener("keydown",Or)});const jt=vue.useModel(e,"page"),hn=vue.ref(!1),ln=vue.ref({x:"0px",y:"0px"}),bn=vue.ref(null),nn=vue.ref({});let yn=!1,un=null,an=0,dn=0;const fn=vue.ref({}),fr=vue.ref(!1);let lr=vue.ref(null);function Hn(qo){yn=!0,un=qo.target.parentElement,an=qo.pageX,dn=un.offsetWidth,document.addEventListener("mousemove",Kt),document.addEventListener("mouseup",Mn),qo.preventDefault()}function Kt(qo){if(!yn)return;const Po=dn+(qo.pageX-an);if(Po>=50){un.style.width=`${Po}px`,un.style.minWidth=`${Po}px`;const pa=document.getElementById(`table-${M.tableId}`);if(!pa)return;const wa=pa.querySelector(".re-table");if(!wa)return;const hu=wa.querySelectorAll("thead th"),no=Array.from(hu).indexOf(un);no!==-1&&(nn.value[no]=Po,Wt())}}function Mn(){yn=!1,document.removeEventListener("mousemove",Kt),document.removeEventListener("mouseup",Mn)}function Bn(qo){const Po=document.getElementById(`table-${M.tableId}`);if(!Po)return;const pa=Po.querySelector(".re-table");if(!pa)return;const hu=pa.querySelectorAll("thead th")[qo];hu&&(hu.style.width="",hu.style.minWidth="120px",delete nn.value[qo],Wt())}vue.onUnmounted(()=>{document.removeEventListener("mousemove",Kt),document.removeEventListener("mouseup",Mn),document.removeEventListener("click",Ur),Wt()});const gr=vue.computed(()=>{let qo=[...M.data];for(const Po in V.value)V.value[Po]&&(typeof Cn.value[Po]?.Field=="function"?qo=qo.filter(pa=>String(Cn.value[Po].Field(pa))?.toLowerCase().indexOf(V.value[Po]?.toLowerCase())>-1):qo=qo.filter(pa=>String(pa[Cn.value[Po].Field])?.toLowerCase().indexOf(V.value[Po]?.toLowerCase())>-1));for(const Po in Ft.value)Ft.value[Po]&&(qo=qo.filter(pa=>typeof Cn.value[Po]?.Field=="function"?Ft.value[Po].includes(Cn.value[Po].Field(pa)):Ft.value[Po].includes(pa[Cn.value[Po].Field])));for(const Po in Ot.value)Ot.value[Po]&&(qo=qo.filter(pa=>{let wa;return typeof Cn.value[Po]?.Field=="function"?wa=Cn.value[Po].Field(pa):wa=pa[Cn.value[Po].Field],wa==null||wa===""||typeof wa=="string"&&wa.trim()===""}));return yt.value>=0&&ze.value&&(qo=qo.sort((Po,pa)=>typeof Cn.value[yt.value].Field=="function"?typeof Cn.value[yt.value].SortMethod=="function"?Cn.value[yt.value].SortMethod(Po,pa):String(Cn.value[yt.value].Field(Po))>String(Cn.value[yt.value].Field(pa))?1:-1:typeof Cn.value[yt.value].SortMethod=="function"?Cn.value[yt.value].SortMethod(Po,pa):String(Po[Cn.value[yt.value].Field])>String(pa[Cn.value[yt.value].Field])?1:-1),ze.value==="desc"&&(qo=qo.reverse())),qo}),Cn=vue.computed(()=>{let qo=M.columns.filter(Po=>!fn.value[Po.Index]);return It.value.length>0&&(qo=It.value.map(Po=>qo.find((pa,wa)=>wa===Po.originalIndex))),qo}),_n=vue.computed(()=>M.contextActions.filter(qo=>typeof qo.IsVisible=="function"?qo.IsVisible(bn.value):!0)),An=vue.computed(()=>{if(M.customPagination)return M.data;const qo=(jt.value-1)*parseInt($t.value);return gr.value.slice(qo,qo+parseInt($t.value))}),Vn=vue.computed(()=>M.customPagination?Math.ceil(M.recordTotal/parseInt($t.value)):Math.ceil(gr.value.length/parseInt($t.value))),nr=vue.computed(()=>Vn.value>5?jt.value<=3?[1,2,3,4,5,"...",Vn.value]:jt.value>=Vn.value-2?[1,"...",Vn.value-4,Vn.value-3,Vn.value-2,Vn.value-1,Vn.value]:[1,"...",jt.value-2,jt.value-1,jt.value,jt.value+1,jt.value+2,"...",Vn.value]:Array.from({length:Vn.value},(qo,Po)=>Po+1)),hr=vue.computed(()=>M.customPagination?M.recordTotal:gr.value.length);vue.watch(()=>M.data,()=>{M.customPagination||(jt.value=1,Jr())}),vue.watch(()=>Cn.value,(qo,Po)=>{(!Po||qo.length!==Po.length||!qo.every((pa,wa)=>pa.Title===Po[wa].Title))&&(V.value={},fn.value={},nn.value={},Wt(),Jr(),rr(null,null),Ft.value={},Ot.value={})},{deep:!0}),vue.watch(()=>gr.value.length,()=>{M.customPagination||(jt.value=1)}),vue.watch($t,()=>{jt.value=1,Wt()});function zn(){if(gr.value.length===0){notifyError$1("Нет данных для экспорта");return}let qo=[{sheet:"Лист 1",columns:M.columns.map(pa=>({label:pa.Title,value:wa=>{let hu="";return typeof pa.Field=="function"?hu=pa.Field(wa):hu=wa[pa.Field],pa.LowField&&(typeof pa.LowField=="function"?hu+=` (${pa.LowField(wa)})`:wa[pa.LowField]&&(hu+=` (${wa[pa.LowField]})`)),hu}})),content:gr.value}],Po={fileName:"Выгрузка данных от "+hooks().format("L HH:mm:ss"),extraLength:3,writeMode:"writeFile"};xlsx(qo,Po)}function tr(qo,Po){ln.value={x:qo.pageX+"px",y:qo.pageY+"px"},bn.value=Po,hn.value=!0}function on(){bn.value=null,hn.value=!1}function vr(qo,Po){if(fr.value){yr();return}ln.value={x:qo.pageX,y:qo.pageY},lr.value=Po,fr.value=!0,hn.value=!1}function ir(qo){if(!fn.value[qo]&&Cn.value.length-Object.values(fn.value).filter(Boolean).length<=1){notifyError$1("Должен быть виден хотя бы один столбец");return}fn.value[qo]=!fn.value[qo],Wt()}function yr(){fr.value=!1,lr.value=null}function Ur(qo){const Po=document.getElementById("headerContextMenuId");Po&&!Po.contains(qo.target)&&!qo.target.closest(".header-filter-activator")&&yr()}function Or(qo){qo.key==="Escape"&&fr.value&&yr()}function rr(qo,Po){yt.value===qo&&ze.value===Po?(yt.value=null,ze.value=null):(yt.value=qo,ze.value=Po)}function Fo(qo){return yt.value===qo||V.value[qo]||Ft.value[qo]?.length>0||Ot.value[qo]}function Fr(){fn.value={},Wt()}function br(qo){let Po=Ft.value[lr.value]||[];Po.includes(qo)?Po=Po.filter(pa=>pa!==qo):Po.push(qo),Ft.value[lr.value]=Po,Po.length===0&&delete Ft.value[lr.value]}function Jr(){Tt.value={},Cn.value.forEach((qo,Po)=>{Tt.value[Po]=[],M.data.forEach(pa=>{let wa=Tt.value[Po]||[];typeof qo.Field=="function"?wa.push(qo.Field(pa)):wa.push(pa[qo.Field]),Tt.value[Po]=wa}),Tt.value[Po]=[...new Set(Tt.value[Po])],Tt.value[Po].sort()})}function Bo(qo){if(!Tt.value[qo])return[];let Po=[...Tt.value[qo]];return Po=Po.filter(pa=>pa&&String(pa).toLowerCase().includes(Ct.value)),Po}function Br(qo){Ft.value[qo]=Tt.value[qo]}function ga(qo){Ot.value[qo]=!Ot.value[qo],Ot.value[qo]||delete Ot.value[qo]}function ud(qo){let Po=!1;hn.value&&(on(),Po=!0),fr.value&&(yr(),Po=!0),!Po&&J("rowClicked",qo)}function zl(){(It.value.length>0?It.value:null)||(It.value=Cn.value.map((Po,pa)=>({originalIndex:pa,displayIndex:pa,title:Po.Title}))),Nt.value=!0,yr()}function Td(){Nt.value=!1}function os(qo,Po){Vt.value=Po,qo.dataTransfer.effectAllowed="move"}function Fu(qo,Po){if(Vt.value===null||Vt.value===Po)return;const pa=It.value[Vt.value],wa=[...It.value];wa.splice(Vt.value,1),wa.splice(Po,0,pa),wa.forEach((hu,no)=>{hu.displayIndex=no}),It.value=wa,Vt.value=null}function Wo(qo,Po){if(Po==="up"&&qo>0){const pa=It.value[qo];It.value[qo]=It.value[qo-1],It.value[qo-1]=pa,It.value[qo].displayIndex=qo,It.value[qo-1].displayIndex=qo-1}else if(Po==="down"&&qo<It.value.length-1){const pa=It.value[qo];It.value[qo]=It.value[qo+1],It.value[qo+1]=pa,It.value[qo].displayIndex=qo,It.value[qo+1].displayIndex=qo+1}}function Yo(){It.value=M.columns.map((qo,Po)=>({originalIndex:Po,displayIndex:Po,title:qo.Title}))}function rd(){const qo=It.value.map(Po=>Po.originalIndex);try{const Po=JSON.parse(localStorage.getItem(STORAGE_KEY_COLUMN_ORDER)||"{}");Po[M.tableId]=qo,localStorage.setItem(STORAGE_KEY_COLUMN_ORDER,JSON.stringify(Po))}catch(Po){console.error("Ошибка при сохранении порядка столбцов:",Po)}Td()}function Yd(qo){if(!qo||!Array.isArray(qo))return;const Po=qo.filter(pa=>pa>=0&&pa<M.columns.length);Po.length===M.columns.length&&(It.value=Po.map((pa,wa)=>({originalIndex:pa,displayIndex:wa,title:M.columns[pa].Title})))}return I({exportToXlsx:zn,filteredData:gr,showOnlyEmpty:Ot,filterByValue:Ft,filterOption:V,saveTableState:Wt}),(qo,Po)=>{const pa=vue.resolveComponent("PerfectScrollbar");return vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.createElementVNode("div",{style:vue.normalizeStyle({height:M.height}),class:"flex flex-col",id:"table-"+M.tableId},[M.enableXlsxExport?(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$o,[vue.createVNode(vue.unref(_2),{onClick:zn,prependIcon:"file-arrow-down"},{default:vue.withCtx(()=>[...Po[11]||(Po[11]=[vue.createTextVNode("Экспорт в Excel",-1)])]),_:1})])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_3$j,[vue.createVNode(pa,{class:vue.normalizeClass(["h-full pb-4",M.tableClass]),options:{wheelPropagation:M.wheelPropagation}},{default:vue.withCtx(()=>[vue.createElementVNode("table",_hoisted_4$h,[vue.createElementVNode("thead",{class:vue.normalizeClass({sticky:M.stickyHeader})},[vue.createElementVNode("tr",null,[M.numbering?(vue.openBlock(),vue.createElementBlock("th",_hoisted_5$g,"№")):vue.createCommentVNode("",!0),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(Cn.value,(wa,hu)=>vue.withDirectives((vue.openBlock(),vue.createElementBlock("th",{class:"min-w-[120px] relative",key:wa.Title},[vue.createVNode(vue.unref(kt),{shown:fr.value&&vue.unref(lr)!==null&&hu===vue.unref(lr),triggers:[],autoHide:!1,noAutoFocus:""},{popper:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_8$e,[vue.createElementVNode("p",_hoisted_9$c,vue.toDisplayString(Cn.value[vue.unref(lr)]?.Title),1),vue.createVNode(vue.unref(gv1)),vue.createElementVNode("p",{class:vue.normalizeClass(["rs-table-btn",{"!font-bold !text-slate-500 !bg-slate-200":yt.value===vue.unref(lr)&&ze.value==="asc"}]),onClick:Po[0]||(Po[0]=no=>rr(vue.unref(lr),"asc"))}," Сортировать А > Я ",2),vue.createElementVNode("p",{class:vue.normalizeClass(["rs-table-btn",{"!font-bold !text-slate-500 !bg-slate-200":yt.value===vue.unref(lr)&&ze.value==="desc"}]),onClick:Po[1]||(Po[1]=no=>rr(vue.unref(lr),"desc"))}," Сортировать Я > А ",2),vue.createVNode(vue.unref(gv1)),vue.createElementVNode("details",_hoisted_10$b,[Po[12]||(Po[12]=vue.createElementVNode("summary",{class:"rs-table-btn"},"Поиск по значению",-1)),vue.createVNode(vue.unref($A),{type:"text",placeholder:"Введите значение",modelValue:V.value[vue.unref(lr)],"onUpdate:modelValue":Po[2]||(Po[2]=no=>V.value[vue.unref(lr)]=no),modelModifiers:{lazy:!0}},null,8,["modelValue"])]),vue.createElementVNode("details",_hoisted_11$a,[vue.createElementVNode("summary",_hoisted_12$9,[Po[13]||(Po[13]=vue.createTextVNode(" Фильтр по значению ",-1)),Ft.value[vue.unref(lr)]?.length>0?(vue.openBlock(),vue.createBlock(vue.unref(Z1),{key:0,name:"circle-exclamation"})):vue.createCommentVNode("",!0)]),vue.createVNode(vue.unref($A),{placeholder:"Введите значение",modelValue:Ct.value,"onUpdate:modelValue":Po[3]||(Po[3]=no=>Ct.value=no)},null,8,["modelValue"]),vue.createElementVNode("div",_hoisted_13$8,[vue.createElementVNode("p",null," Показано "+vue.toDisplayString(Ft.value[vue.unref(lr)]?.length?Ft.value[vue.unref(lr)].length:Tt.value[vue.unref(lr)]?.length)+" из "+vue.toDisplayString(Tt.value[vue.unref(lr)]?.length),1),vue.createElementVNode("p",{class:"cursor-pointer hover:text-slate-700 hover:underline",onClick:Po[4]||(Po[4]=no=>Br(vue.unref(lr)))},"Все"),vue.createElementVNode("p",{class:"cursor-pointer hover:text-slate-700 hover:underline",onClick:Po[5]||(Po[5]=no=>delete Ft.value[vue.unref(lr)])}," Сбросить ")]),vue.createVNode(pa,{class:"max-h-[300px] max-w-[600px]"},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_14$6,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(Bo(vue.unref(lr)),no=>(vue.openBlock(),vue.createElementBlock("div",{key:no,class:"flex gap-1 select-none cursor-pointer hover:bg-slate-100 rounded",onClick:jo=>br(no)},[vue.createVNode(vue.unref(jc),{checked:Ft.value[vue.unref(lr)]?.includes(no)},null,8,["checked"]),vue.createElementVNode("p",null,vue.toDisplayString(no||"(пусто)"),1)],8,_hoisted_15$5))),128))])]),_:1})]),vue.createElementVNode("details",_hoisted_16$5,[Po[14]||(Po[14]=vue.createElementVNode("summary",{class:"rs-table-btn"},"Скрыть столбец",-1)),vue.createElementVNode("p",{class:"text-sm text-slate-500 text-center cursor-pointer hover:text-slate-700 hover:bg-slate-100 rounded",onClick:Fr}," Показать все "),vue.createVNode(pa,{class:"max-h-[300px] overflow-y-auto"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(Cn.value,(no,jo)=>(vue.openBlock(),vue.createElementBlock("div",{key:no.Title,class:"flex items-center gap-1 px-2 py-1 hover:bg-slate-100 cursor-pointer",onClick:ru=>ir(jo)},[vue.createVNode(vue.unref(Z1),{class:"text-slate-500",name:fn.value[jo]?"square":"check-square"},null,8,["name"]),vue.createElementVNode("span",null,vue.toDisplayString(no.Title),1)],8,_hoisted_17$4))),128))]),_:2},1024)]),vue.createVNode(vue.unref(gv1)),vue.createElementVNode("p",{class:vue.normalizeClass(["rs-table-btn",{"!font-bold !text-slate-500 !bg-slate-200":Ot.value[vue.unref(lr)]}]),onClick:Po[6]||(Po[6]=no=>ga(vue.unref(lr)))}," Показать только пустые ",2),vue.createVNode(vue.unref(gv1)),vue.createElementVNode("p",{class:"rs-table-btn",onClick:zl},"Изменить порядок столбцов")])]),default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_6$g,[vue.createElementVNode("div",{onClick:no=>wa.filterable!=!1?vr(no,hu):null,class:"flex flex-row justify-between items-center gap-1 hover:cursor-pointer hover:bg-slate-200 rounded px-2 py-1 header-filter-activator"},[vue.createElementVNode("p",{class:vue.normalizeClass({"whitespace-nowrap":M.growOnlyX})},vue.toDisplayString(wa.Title),3),wa.filterable!=!1?(vue.openBlock(),vue.createBlock(vue.unref(Z1),{key:0,name:"filter",class:vue.normalizeClass([{activeFilter:Fo(hu)},"text-slate-500"])},null,8,["class"])):vue.createCommentVNode("",!0)],8,_hoisted_7$f)])]),_:2},1032,["shown"]),wa.Template?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("div",{key:0,class:"column-resizer",onMousedown:Po[7]||(Po[7]=no=>Hn(no)),onDblclick:no=>Bn(hu)},null,40,_hoisted_18$4))])),[[vue.vShow,!fn.value[hu]]])),128)),M.rowActions.length?(vue.openBlock(),vue.createElementBlock("th",_hoisted_19$4,[...Po[15]||(Po[15]=[vue.createElementVNode("p",null,"Действия",-1)])])):vue.createCommentVNode("",!0)])],2),vue.createElementVNode("tbody",null,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(An.value,(wa,hu)=>(vue.openBlock(),vue.createElementBlock("tr",{class:vue.normalizeClass({"even:bg-slate-50":M.striped}),onContextmenu:vue.withModifiers(no=>tr(no,wa),["right","prevent"]),onClick:no=>ud(wa),key:wa,style:vue.normalizeStyle({backgroundColor:hn.value&&bn.value===wa?"rgba(0, 0, 0, 0.05)":"",backgroundColor:e.rowColor(wa)})},[M.numbering?(vue.openBlock(),vue.createElementBlock("td",_hoisted_21$4,vue.toDisplayString(jt.value*parseInt($t.value)-parseInt($t.value)+1+hu),1)):vue.createCommentVNode("",!0),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(Cn.value,(no,jo)=>vue.withDirectives((vue.openBlock(),vue.createElementBlock("td",{key:no.Title,class:vue.normalizeClass(["hover:bg-slate-200",typeof no.Class=="function"?no.Class(wa):no.Class]),onClick:ru=>J("cellClicked",{record:wa,column:no,index:jo}),title:typeof no.titleOnHover=="function"?no.titleOnHover(wa):no.titleOnHover},[no.Template?(vue.openBlock(),vue.createElementBlock("div",_hoisted_23$4,[vue.renderSlot(qo.$slots,`cell(${no.Template})`,{record:wa},void 0,!0)])):no.List?(vue.openBlock(),vue.createElementBlock("div",_hoisted_24$3,vue.toDisplayString(no.List.find(ru=>ru.Id===wa[no.Field])?.Name||""),1)):(vue.openBlock(),vue.createElementBlock("div",_hoisted_25$3,[vue.createElementVNode("p",{class:vue.normalizeClass(["primary-text",{"whitespace-nowrap":M.growOnlyX}]),title:typeof no.Field=="function"?no.Field(wa):wa[no.Field]},vue.toDisplayString(typeof no.Field=="function"?no.Field(wa):wa[no.Field]),11,_hoisted_26$3),vue.createElementVNode("p",{class:vue.normalizeClass(["secondary-text",{"whitespace-nowrap":M.growOnlyX}]),title:typeof no.LowField=="function"?no.LowField(wa):wa[no.LowField]},vue.toDisplayString(typeof no.LowField=="function"?no.LowField(wa):wa[no.LowField]),11,_hoisted_27$3)]))],10,_hoisted_22$4)),[[vue.vShow,!fn.value[jo]]])),128)),M.rowActions.length?(vue.openBlock(),vue.createElementBlock("td",_hoisted_28$3,[vue.createElementVNode("div",{class:vue.normalizeClass(["flex flex-col items-start",{horizontalAction:M.rowHorizontal}])},[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(M.rowActions,no=>(vue.openBlock(),vue.createElementBlock("span",{class:"rowAction whitespace-nowrap",onClick:vue.withModifiers(jo=>no.Action(wa),["stop"]),key:no},[typeof no.IsVisible!="function"||no.IsVisible(wa)?(vue.openBlock(),vue.createElementBlock("div",_hoisted_30$3,[no.Icon?(vue.openBlock(),vue.createBlock(vue.unref(Z1),{key:0,name:no.Icon},null,8,["name"])):vue.createCommentVNode("",!0),vue.createTextVNode(" "+vue.toDisplayString(no.Name),1)])):vue.createCommentVNode("",!0)],8,_hoisted_29$3))),128))],2)])):vue.createCommentVNode("",!0)],46,_hoisted_20$4))),128)),M.footer?(vue.openBlock(),vue.createElementBlock("tr",_hoisted_31$2,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(Cn.value,(wa,hu)=>vue.withDirectives((vue.openBlock(),vue.createElementBlock("td",{key:wa.Title},[typeof wa.Footer=="function"?(vue.openBlock(),vue.createElementBlock("p",_hoisted_32$2,vue.toDisplayString(wa.Footer(qo.row)),1)):(vue.openBlock(),vue.createElementBlock("p",_hoisted_33$2,vue.toDisplayString(wa.Footer),1))])),[[vue.vShow,!fn.value[hu]]])),128))])):vue.createCommentVNode("",!0),hr.value?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("tr",_hoisted_34$2,[...Po[16]||(Po[16]=[vue.createElementVNode("td",{colspan:"100",class:"text-center"},[vue.createElementVNode("p",{class:"text-xl text-slate-400 font-semibold"},"Данные отсутствуют")],-1)])]))])])]),_:3},8,["class","options"])]),hn.value?(vue.openBlock(),vue.createElementBlock("div",{id:"contextMenuId",class:"context-menu",key:ln.value,style:vue.normalizeStyle({top:ln.value.y,left:ln.value.x})},[vue.createVNode(vue.unref(Wv1),{spacing:"xs"},{default:vue.withCtx(()=>[_n.value.length?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("p",_hoisted_35$1,"Нет доступных действий контекстного меню")),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(_n.value,wa=>(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:wa,prependIcon:wa.Icon,onClick:hu=>(wa.Action(bn.value),on())},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(wa.Name),1)]),_:2},1032,["prependIcon","onClick"]))),128))]),_:1})],4)):vue.createCommentVNode("",!0),vue.createVNode(vue.unref(_s),{title:"Изменение порядка столбцов",modelValue:Nt.value,"onUpdate:modelValue":Po[9]||(Po[9]=wa=>Nt.value=wa),closeOnClickOutside:!0,class:"p-2"},{footer:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_44$1,[vue.createVNode(vue.unref(_2),{onClick:Yo,variant:"outline",size:"sm"},{default:vue.withCtx(()=>[...Po[18]||(Po[18]=[vue.createTextVNode("Сбросить",-1)])]),_:1}),vue.createVNode(vue.unref(_2),{onClick:rd,size:"sm"},{default:vue.withCtx(()=>[...Po[19]||(Po[19]=[vue.createTextVNode("Сохранить",-1)])]),_:1})])]),default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_36$1,[Po[17]||(Po[17]=vue.createElementVNode("p",{class:"text-sm text-gray-600 mb-2"},"Перетащите столбцы для изменения их порядка:",-1)),vue.createElementVNode("div",_hoisted_37$1,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(It.value,(wa,hu)=>(vue.openBlock(),vue.createElementBlock("div",{key:wa.originalIndex,class:"flex items-center justify-between p-2 mb-1 bg-white rounded border cursor-move hover:bg-gray-50",draggable:"true",onDragstart:no=>os(no,hu),onDragover:Po[8]||(Po[8]=vue.withModifiers(()=>{},["prevent"])),onDrop:no=>Fu(no,hu)},[vue.createElementVNode("div",_hoisted_39$1,[vue.createVNode(vue.unref(Z1),{name:"grip-vertical",class:"text-gray-400 text-sm"}),vue.createElementVNode("span",_hoisted_40$1,vue.toDisplayString(wa.title),1)]),vue.createElementVNode("div",_hoisted_41$1,[hu>0?(vue.openBlock(),vue.createElementBlock("button",{key:0,onClick:no=>Wo(hu,"up"),class:"p-1 hover:bg-gray-200 rounded text-xs",title:"Переместить вверх"},[vue.createVNode(vue.unref(Z1),{name:"chevron-up",class:"text-gray-500"})],8,_hoisted_42$1)):vue.createCommentVNode("",!0),hu<It.value.length-1?(vue.openBlock(),vue.createElementBlock("button",{key:1,onClick:no=>Wo(hu,"down"),class:"p-1 hover:bg-gray-200 rounded text-xs",title:"Переместить вниз"},[vue.createVNode(vue.unref(Z1),{name:"chevron-down",class:"text-gray-500"})],8,_hoisted_43$1)):vue.createCommentVNode("",!0)])],40,_hoisted_38$1))),128))])])]),_:1},8,["modelValue"])],12,_hoisted_1$u),vue.createElementVNode("div",_hoisted_45$1,[vue.createElementVNode("div",_hoisted_46$1,[Vn.value>1?(vue.openBlock(),vue.createElementBlock("ul",_hoisted_47$1,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(nr.value,wa=>(vue.openBlock(),vue.createElementBlock("li",{key:wa,class:vue.normalizeClass({active:wa===jt.value}),onClick:hu=>wa!=="..."?jt.value=wa:null},[vue.createElementVNode("a",null,vue.toDisplayString(wa),1)],10,_hoisted_48$1))),128))])):vue.createCommentVNode("",!0),M.enablePageSizeSelector?(vue.openBlock(),vue.createElementBlock("div",_hoisted_49$1,[Po[21]||(Po[21]=vue.createElementVNode("span",{class:"text-sm text-slate-500"},"Показать:",-1)),vue.withDirectives(vue.createElementVNode("select",{"onUpdate:modelValue":Po[10]||(Po[10]=wa=>$t.value=wa),class:"text-sm border rounded px-1 py-0.5 w-[60px] border-slate-300"},[...Po[20]||(Po[20]=[vue.createElementVNode("option",{value:"5"},"5",-1),vue.createElementVNode("option",{value:"10"},"10",-1),vue.createElementVNode("option",{value:"20"},"20",-1),vue.createElementVNode("option",{value:"100"},"100",-1)])],512),[[vue.vModelSelect,$t.value]])])):vue.createCommentVNode("",!0)]),vue.createElementVNode("p",_hoisted_50$1," Записи "+vue.toDisplayString(jt.value*parseInt($t.value)-parseInt($t.value)+1)+"-"+vue.toDisplayString(Math.min(jt.value*parseInt($t.value),hr.value))+" из "+vue.toDisplayString(hr.value),1)])],64)}}},ReSimpleTableAppCompany=_export_sfc(_sfc_main$B,[["__scopeId","data-v-947a7d0d"]]),_hoisted_1$t={class:"w-full h-full absolute top-0 left-0 flex justify-center items-center animate-pulse z-[5000]"},_hoisted_2$n={class:"border rounded p-2 bg-slate-100"},_hoisted_3$i={class:"h-full flex flex-col p-3 gap-3"},_hoisted_4$g=["title"],_hoisted_5$f=["title"],_hoisted_6$f=["title"],_hoisted_7$e=["title"],_hoisted_8$d=["title"],_hoisted_9$b=["title"],_sfc_main$A={__name:"PatientInfoPageAppCompany",props:{patientId:{type:String,default:"",required:!0},patientSnils:{type:String,default:"",required:!0},nameApp:{type:String,default:""},isParentModalExpanded:{type:Boolean,default:!1},minHeightCalcTable:{type:String,default:"calc(100vh - 290px)"},maxHeightCalcTable:{type:String,default:"calc(100vh - 560px)"},isExportExcelTable:{type:Boolean,default:!0}},setup(e){const I=vue.computed(()=>useUserStore().user),N=e,J=vue.computed(()=>N.isParentModalExpanded?N.minHeightCalcTable:N.maxHeightCalcTable),V=vue.ref(!1),M=vue.ref(!1),ze=vue.ref(!1),yt=vue.ref(!1),Ct=vue.ref(null),Ft=vue.ref(null),Tt=vue.ref(null),Ot=vue.ref(!1),Nt=vue.ref([]),It=vue.ref(null),Vt=vue.ref([]),$t=[{Name:"Просмотр",Icon:"eye",Action:an=>ln(an.NeedsId,an.ApplicationId,an.MessageWarning,an.Period,an.AdditionalApp==="Дополнительная")}];vue.onMounted(async()=>{await nn(),Xt(null)});const zt=vue.computed(()=>{const an=[];for(let dn=0;dn<listStatuses.length;dn++)an.push({Id:listStatuses[dn],Name:listStatuses[dn]});return an}),Wt=vue.computed(()=>{if(!Nt.value?.length)return[];const an=new Set;return Nt.value.forEach(dn=>{if(dn.Name){const fn=dn.Name.match(/\b(20\d{2})\b/);fn&&an.add({Id:fn[1],Name:fn[1]})}}),Array.from(an).sort()});async function Xt(an){yt.value=!1,V.value=!1,Tt.value=null,Ot.value=!1,Ft.value=null,Ct.value=null,ze.value=!1;try{N.patientId&&(M.value=!0,Vt.value=await window.axios.get(window.localhost+`ApplicationCompany/PatientApplications?PatientId=${N.patientId}&Sort=CreateDateApp&Desc=true`,{params:an||{}}).then(dn=>dn.data.map(fn=>({...fn,AdditionalApp:fn.AdditionalApp===!1?"Основная":"Дополнительная",SumPrepapp:fn.SumPrepapp.replace(".",","),SumPrepappfinal:fn.SumPrepappfinal.replace(".",",")}))))}catch(dn){const fn=dn.response?.data?.message||dn.message||"Неизвестная ошибка";notifyError$1(`${fn}. Пожалуйста, выполните поиск повторно`,15e3,"Ошибка загрузки данных")}finally{M.value=!1}}async function jt(an){let dn=await window.axios.get(window.localhost+`ApplicationCompany/Application?ApplicationId=${an}`).then(fn=>fn.data).catch(fn=>{});return Ct.value=dn,dn?(dn.DateClose&&hooks(dn.DateClose).format("YYYY-MM-DD")<hooks().format("YYYY-MM-DD")||dn.Status!="В работе"&&dn.Status!="Заполнение льгот"&&dn.Status!="Проверка"&&dn.Status!="Заявка")&&N.nameApp==="WebBMS"?{status:!0,notify:{type:"warn",message:"Заявка по выбранной потребности закрыта для редактирования",duration:15e3,title:"Доступ для редактирования закрыт"}}:{status:!0,notify:{type:"",message:"",duration:15e3,title:""}}:{status:!1,notify:{type:"error",message:"Заявка по выбранной потребности не найдена",duration:15e3,title:"Ошибка в поиске заявки"}}}function hn(an){return an.MessageWarning?"#fff6f6":""}async function ln(an,dn,fn,fr,lr){if(!an){notifyWarning(fn,15e3,"Уведомление системы");return}Ft.value=an,Tt.value=fr,Ot.value=lr;const{status:Hn,notify:Kt}=await jt(dn);switch(Hn&&!Kt?.type&&(V.value=!0,ze.value=!1),Hn&&Kt?.type==="warn"&&(V.value=!0,ze.value=!0),Kt.type){case"error":notifyError$1(Kt.message,Kt.duration,Kt.title);break;case"warn":notifyWarning(Kt.message,Kt.duration,Kt.title);break}}async function bn(an){"filters"in an&&(an=an.filters),an={...an},an&&"Additional"in an&&(an.Additional=an.Additional==="true"),It.value=Object.keys(an).length>0?an:null,yt.value=!0;try{await Xt(It.value)}catch(dn){notifyError$1(`Ошибка при загрузке данных:
1301
1301
  `+dn.message)}finally{yt.value=!1}}vue.watch(()=>V.value,an=>{an||(yt.value=!1,V.value=!1,Tt.value=null,Ot.value=!1,Ft.value=null,Ct.value=null,ze.value=!1)});async function nn(){const an=await window.axios.get(window.localhost+"ApplicationCompany/AppDocuments",{params:{Deleted:!1}});Nt.value=an.data}const yn=vue.computed(()=>[{name:"Потребность есть в карте пациента",type:"select",accessor:"IsNeed",list:[{Id:"IsCreate",Name:"Да"},{Id:"IsNotCreate",Name:"Нет"}],style:{width:"16rem",minWidth:"16rem",maxWidth:"16rem"}},{name:"Заявка",type:"select",accessor:"Additional",list:[{Id:"false",Name:"Основная"},{Id:"true",Name:"Допонительная"}],style:{width:"12rem",minWidth:"12rem",maxWidth:"12rem"},default:"false"},{name:"Статус заявки",type:"select",accessor:"Status",list:zt.value,style:{width:"15rem",minWidth:"15rem",maxWidth:"15rem"}},{name:"Период",type:"select",accessor:"Period",list:Wt.value,style:{width:"13rem",minWidth:"13rem",maxWidth:"13rem"}},{name:"Программа",type:"select",accessor:"ProgramId",list:Object.entries(approvedBenefitProgramToPreparatProgramm).map(([an,dn])=>({Id:an,Name:approvedBenefitProgram[dn]})),style:{width:"15rem",minWidth:"15rem",maxWidth:"15rem"}}]),un=[{Title:"№",Field:"ApplicationNumber",SortMethod:(an,dn)=>{const fn=parseInt(an.ApplicationNumber,10),fr=parseInt(dn.ApplicationNumber,10);return fn-fr}},{Title:"Заявка",Field:"AdditionalApp"},{Title:"Дата создания",Field:an=>an.CreateDateTimeApp?hooks.utc(an.CreateDateTimeApp).format("DD.MM.YYYY"):""},{Title:"Дата закрытия",Field:an=>an.DateCloseApp?hooks(an.DateCloseApp).format("DD.MM.YYYY"):""},{Title:"Статус",Field:"StatusApp",Class:"whitespace-nowrap"},{Title:"Комментарий к заявке",Field:"CommentApp",Class:"!p-0 w-[303px] min-w-[303px] max-w-[303px] h-[70px] min-h-[70px] max-h-[200px]",Template:"CommentApp"},{Title:"Период",Field:"Period",SortMethod:(an,dn)=>{const fn=parseInt(an.Period,10),fr=parseInt(dn.Period,10);return fn-fr}},{Title:"ЛПУ",Field:"LpuName",Class:"whitespace-nowrap"},{Title:"Отделение",Field:"DivisionName"},{Title:"Программа",Field:"Program"},{Title:"Категория",Field:"LgotaCode",SortMethod:(an,dn)=>{const fn=parseInt(an.LgotaCode,10)||0,fr=parseInt(dn.LgotaCode,10)||0;return fn-fr}},{Title:"Заболевание по МКБ-10",Field:"MkbCode"},{Title:"Номер ВК",Field:"NumberVk",SortMethod:(an,dn)=>{const fn=parseInt(an.NumberVk,10)||0,fr=parseInt(dn.NumberVk,10)||0;return fn-fr}},{Title:"Дата ВК",Field:an=>an.DateVk?hooks(an.DateVk).format("DD.MM.YYYY"):""},{Title:"Наличие НПР в потребности",Field:an=>an.PnNpr?"Да":"Нет"},{Title:"Номер НПР в потребности",Field:"PnNprNumber",SortMethod:(an,dn)=>{const fn=parseInt(an.PnNprNumber,10)||0,fr=parseInt(dn.PnNprNumber,10)||0;return fn-fr}},{Title:"Дата НПР в потребности",Field:an=>an.PnNprDate?hooks(an.PnNprDate).format("DD.MM.YYYY"):""},{Title:"МНН",Field:"Mnn",Class:"!p-0 w-[303px] min-w-[303px] max-w-[303px] h-[70px] min-h-[70px] max-h-[200px]",Template:"Mnn"},{Title:"Торговое наименование",Field:"TradeName",Class:"!p-0 w-[303px] min-w-[303px] max-w-[303px] h-[70px] min-h-[70px] max-h-[200px]",Template:"TradeName"},{Title:"Описание",Field:"Description",Class:"!p-0 w-[303px] min-w-[303px] max-w-[303px] h-[70px] min-h-[70px] max-h-[200px]",Template:"Description"},{Title:"Дозировка",Field:"Dosage",Class:"!p-0 w-[303px] min-w-[303px] max-w-[303px] h-[70px] min-h-[70px] max-h-[200px]",Template:"Dosage"},{Title:"ЖВ",Field:an=>an.Sign?"Да":"Нет"},{Title:"Взаимозаменяемость",Field:an=>an.Interchangeability?"Да":"Нет"},{Title:"Кто создал/редактировал потребность",Field:"PnEmployeePostFIO"},{Title:"Количество упаковок на месяц",Field:"CountMonth",SortMethod:(an,dn)=>{const fn=parseInt(an.CountMonth,10)||0,fr=parseInt(dn.CountMonth,10)||0;return fn-fr}},{Title:"Количество упаковок на год",Field:"CountYear",SortMethod:(an,dn)=>{const fn=parseInt(an.CountYear,10)||0,fr=parseInt(dn.CountYear,10)||0;return fn-fr}},{Title:"Количество упаковок в сводной потребности на год",Field:"CountPrepapp",SortMethod:(an,dn)=>{const fn=parseInt(an.CountPrepapp,10)||0,fr=parseInt(dn.CountPrepapp,10)||0;return fn-fr}},{Title:"Сумма в сводной потребности на год",Field:"SumPrepapp",SortMethod:(an,dn)=>{const fn=parseFloat(an.SumPrepapp,10)||0,fr=parseFloat(dn.SumPrepapp,10)||0;return fn-fr}},{Title:"Количество упаковок в сводной заявке на год",Field:"CountPrepappfinal",SortMethod:(an,dn)=>{const fn=parseInt(an.CountPrepappfinal,10)||0,fr=parseInt(dn.CountPrepappfinal,10)||0;return fn-fr}},{Title:"Сумма в сводной заявке на год",Field:"SumPrepappfinal",SortMethod:(an,dn)=>{const fn=parseFloat(an.SumPrepappfinal,10)||0,fr=parseFloat(dn.SumPrepappfinal,10)||0;return fn-fr}},{Title:"Комментарий к потребности",Field:"CommentNeed",Class:"!p-0 w-[303px] min-w-[303px] max-w-[303px] h-[70px] min-h-[70px] max-h-[200px]",Template:"CommentNeed"},{Title:"Сообщение системы",Field:"MessageWarning",Class:"whitespace-nowrap"}];return(an,dn)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.withDirectives(vue.createElementVNode("div",_hoisted_1$t,[...dn[4]||(dn[4]=[vue.createElementVNode("div",{class:"bg-black/60 w-full h-full absolute top-0 left-0 z-[5001]"},null,-1),vue.createElementVNode("div",{class:"bg-white rounded-lg p-4 flex flex-row gap-3 items-center z-[5002]"},[vue.createElementVNode("div",{role:"status"},[vue.createElementVNode("svg",{"aria-hidden":"true",class:"w-8 h-8 text-gray-200 animate-spin dark:text-gray-300 fill-blue-600",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[vue.createElementVNode("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",fill:"currentColor"}),vue.createElementVNode("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",fill:"currentFill"})])]),vue.createElementVNode("div",null,[vue.createElementVNode("p",{class:"font-bold"},"Обработка данных"),vue.createElementVNode("p",{class:"text-sm text-gray-500"},"Пожалуйста, подождите...")])],-1)])],512),[[vue.vShow,M.value]]),vue.createElementVNode("div",_hoisted_2$n,[vue.createVNode(_sfc_main$I,{"filter-list":yn.value,onSearch:bn,class:"flex justify-end gap-2"},null,8,["filter-list"])]),vue.createElementVNode("div",_hoisted_3$i,[dn[5]||(dn[5]=vue.createElementVNode("div",{class:"flex items-center gap-1"},[vue.createElementVNode("p",{class:"text-xs"},"Примечание:"),vue.createElementVNode("div",{class:"flex px-2 text-xs h-7 items-center",style:{background:"#fff0f0"}},"Потребность в карте пациента отсутствует, но имеется в своде")],-1)),vue.createVNode(ReSimpleTableAppCompany,{ref:"refTableAppCompany","enable-xlsx-export":N.isExportExcelTable,data:Vt.value,columns:un,"page-size":20,"enable-page-size-selector":"","table-id":"appsList","context-actions":$t,rowColor:hn,height:J.value,"sticky-header":"true"},{"cell(CommentApp)":vue.withCtx(({record:fn})=>[vue.createElementVNode("span",{title:fn.CommentApp},[vue.createVNode(vue.unref(o$),{modelValue:fn.CommentApp,"onUpdate:modelValue":fr=>fn.CommentApp=fr,class:"mw-[300px] min-w-[300px] max-w-[300px] h-[70px] min-h-[70px] max-h-[200px]",readonly:!0,style:vue.normalizeStyle({backgroundColor:hn(fn)})},null,8,["modelValue","onUpdate:modelValue","style"])],8,_hoisted_4$g)]),"cell(Mnn)":vue.withCtx(({record:fn})=>[vue.createElementVNode("span",{title:fn.Mnn},[vue.createVNode(vue.unref(o$),{modelValue:fn.Mnn,"onUpdate:modelValue":fr=>fn.Mnn=fr,class:"w-[300px] min-w-[300px] max-w-[300px] h-[70px] min-h-[70px] max-h-[200px]",readonly:!0,style:vue.normalizeStyle({backgroundColor:hn(fn)})},null,8,["modelValue","onUpdate:modelValue","style"])],8,_hoisted_5$f)]),"cell(TradeName)":vue.withCtx(({record:fn})=>[vue.createElementVNode("span",{title:fn.TradeName},[vue.createVNode(vue.unref(o$),{modelValue:fn.TradeName,"onUpdate:modelValue":fr=>fn.TradeName=fr,class:"w-[300px] min-w-[300px] max-w-[300px] h-[70px] min-h-[70px] max-h-[200px]",readonly:!0,style:vue.normalizeStyle({backgroundColor:hn(fn)})},null,8,["modelValue","onUpdate:modelValue","style"])],8,_hoisted_6$f)]),"cell(Dosage)":vue.withCtx(({record:fn})=>[vue.createElementVNode("span",{title:fn.Dosage},[vue.createVNode(vue.unref(o$),{modelValue:fn.Dosage,"onUpdate:modelValue":fr=>fn.Dosage=fr,class:"w-[302px] min-w-[302px] max-w-[302px] h-[70px] min-h-[70px] max-h-[200px]",readonly:!0,style:vue.normalizeStyle({backgroundColor:hn(fn)})},null,8,["modelValue","onUpdate:modelValue","style"])],8,_hoisted_7$e)]),"cell(CommentNeed)":vue.withCtx(({record:fn})=>[vue.createElementVNode("span",{title:fn.CommentNeed},[vue.createVNode(vue.unref(o$),{modelValue:fn.CommentNeed,"onUpdate:modelValue":fr=>fn.CommentNeed=fr,class:"w-[300px] min-w-[300px] max-w-[300px] h-[70px] min-h-[70px] max-h-[200px]",readonly:!0,style:vue.normalizeStyle({backgroundColor:hn(fn)})},null,8,["modelValue","onUpdate:modelValue","style"])],8,_hoisted_8$d)]),"cell(Description)":vue.withCtx(({record:fn})=>[vue.createElementVNode("span",{title:fn.Description},[vue.createVNode(vue.unref(o$),{modelValue:fn.Description,"onUpdate:modelValue":fr=>fn.Description=fr,class:"w-[300px] min-w-[300px] max-w-[300px] h-[70px] min-h-[70px] max-h-[200px]",readonly:!0,style:vue.normalizeStyle({backgroundColor:hn(fn)})},null,8,["modelValue","onUpdate:modelValue","style"])],8,_hoisted_9$b)]),_:1},8,["enable-xlsx-export","data","height"])]),V.value?(vue.openBlock(),vue.createBlock(_sfc_main$C,{key:0,"user-open":I.value,"patient-id":N.patientId,"patient-snils":N.patientSnils,"selected-application":Ct.value,"need-id":Ft.value,"read-only":!0,"hidden-control":!0,additional:Ot.value,"doc-app-year":Tt.value,"modal-visible":V.value,"onUpdate:modalVisible":dn[0]||(dn[0]=fn=>V.value=fn),"wait-request":yt.value,"onUpdate:waitRequest":dn[1]||(dn[1]=fn=>yt.value=fn),onOnSave:dn[2]||(dn[2]=fn=>Xt()),onOnDelete:dn[3]||(dn[3]=fn=>Xt())},null,8,["user-open","patient-id","patient-snils","selected-application","need-id","additional","doc-app-year","modal-visible","wait-request"])):vue.createCommentVNode("",!0)],64))}},_sfc_main$z={__name:"RSMKBSelect",props:{modelValue:{type:String,default:""},idField:{type:String,default:"Id"},filterFunction:{type:Function,default:()=>!0}},emits:["update:modelValue"],setup(e,{emit:I}){const N=vue.ref({Id:null,Code:null,SearchStr:null}),J=e,V=I,M=vue.ref(!1),ze=vue.ref(null),yt=vue.ref([]);vue.watch(()=>J.modelValue,Nt=>{ze.value=Nt,yt.value.find(It=>It[J.idField]===Nt)||Ct({[J.idField]:Nt})},{immediate:!0});async function Ct(Nt){M.value=!0;const It=await window.axios.get(window.localhost+"refs/Mkb10",{params:{...N.value,...Nt}});yt.value=It.data.Body.filter(Vt=>!Ot(Vt)&&J.filterFunction(Vt))||[],M.value=!1}function Ft(Nt){Ct({SearchStr:Nt})}function Tt(Nt){V("update:modelValue",Nt[J.idField])}function Ot(Nt){return!!(["J47","E10","C82","C85","D66","D67","G35","E84"].includes(Nt.Code)||Nt.Code.indexOf(".")===-1)}return(Nt,It)=>(vue.openBlock(),vue.createBlock(_sfc_main$E,{modelValue:ze.value,"onUpdate:modelValue":It[0]||(It[0]=Vt=>ze.value=Vt),onOnSelectObject:Tt,data:yt.value,onInput:Ft,label:"Диагноз","display-expr":["Code","Name"],"id-field":e.idField,isLoading:M.value},null,8,["modelValue","data","id-field","isLoading"]))}},BenefitCodesChildren=Object.freeze({CHILDREN_NMG_START:"302",CHILDREN_NMG_END:"303",CHILDREN_THREE:"601",CHILDREN_CIRCLEGOODNESS:"931"}),BenefitCodesMapFederal=Object.freeze([{Regional:"506",Federal:"205",RequiredMkb:!0},{Regional:"516",Federal:"210",RequiredMkb:!0},{Regional:"519",Federal:"213",RequiredMkb:!0},{Regional:"522",Federal:"211",RequiredMkb:!0},{Regional:"547",Federal:"083",RequiredMkb:!1},{Regional:"574",Federal:"082",RequiredMkb:!1},{Regional:"575",Federal:"084",RequiredMkb:!1}]),today=getStrLocalDate();function getStrLocalDate(e=null){try{const I=e?new Date(e):new Date;return isNaN(I.getTime())?null:I.toLocaleDateString("fr-CA")}catch{return null}}function setStrYearLocalDate(e,I=null,N=null){try{const J=getStrLocalDate(e);if(!J)return null;const V=new Date(J);return I&&V.setFullYear(V.getFullYear()+I),N&&V.setMonth(V.getMonth()+N),V.toLocaleDateString("fr-CA")}catch{return null}}function isFindActiveProgrammCategory(e,I){return I.some(N=>{const J=N.BenefitProgram===e.ProgramName,V=(!N.DateOut||N.DateOut>today)&&!N.Deleted,M=e.BenefitCodeShort!=N.BenefitCodeShort;return J&&V&&M})}function isFindActiveOrMonetizInPerson(e){return e.some(I=>I.BenefitProgram==="ОНЛС"&&(!I.DateOut||I.DateOut>today||I.Monetization)&&!I.Deleted)}function findLastOldActiveOnls(e){const I=e?.filter(N=>N.BenefitProgram==="ОНЛС")?.sort((N,J)=>new Date(N.DateIn)-new Date(J.DateIn));if(I&&I.length>0){(!I[0].DateOut||I[0].DateOut<=today)&&!I[0].Monetization&&I[0].Deleted;const N=new Date(I[0].DateIn);return new Date(today).getFullYear()-N.getFullYear()<=3}return!1}function isFindActiveInvalidInPerson(e,I){const N=["081","082","083","084"];return I.some(J=>J.BenefitProgram==="ОНЛС"&&N.includes(J.BenefitCodeShort)&&(!J.DateOut||J.DateOut>today||J.Monetization)&&!J.Deleted&&e.BenefitCodeShort!=J.BenefitCodeShort)}function isFindInvalidBenefitCodeShort(e){return["081","082","083","084"].includes(e.BenefitCodeShort)}function isExistCategoryPerson(e,I){return I.some(N=>N.BenefitProgram===e.ProgramName&&N.BenefitCodeShort===e.BenefitCodeShort)}function isResultValidateOnls(e,I,N){return e&&I&&N}function isResultValidateNotOnls(e,I){return e&&I}function existFindedBenefit(e,I){return I.filter(J=>{const V=J.BenefitProgram===e.ProgramName,M=e.BenefitCodeShort==J.BenefitCodeShort;return V&&M&&!J.Deleted})}function findReferenceFederal(e,I){const N=BenefitCodesMapFederal.find(M=>M.Regional===e.BenefitCodeShort);if(!N)return null;let J=null,V=null;return I.some(M=>{const ze=(!M.DateOut||M.DateOut>today)&&!M.Deleted,yt=M.BenefitCodeShort===N.Federal,Ct=M.Ds===e.Ds;if(ze&&yt||M.Monetization&&yt)return J=yt,N.RequiredMkb&&(V=Ct),!0}),{referenceCategory:N,statusCategory:J,statusMkb:V}}function useCheckAddedBenefit(e,I,N,J=null,V=null,M=null){const{DateIn:ze,DateOut:yt}=e,Ct=e.ProgramName==="ОНЛС",Ft=e.Annulate,Tt=isFindActiveProgrammCategory(e,I),Ot=(!yt||yt>today)&&!Ft,Nt=isFindInvalidBenefitCodeShort(e),It=isFindActiveInvalidInPerson(e,I),Vt=isExistCategoryPerson(e,I),$t=Vt?"редактировании":"добавлении",zt=Vt?"активировать":"добавить";if(Ct&&isResultValidateOnls(It,Nt,Ot)&&Ot)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Невозможно ${zt} инвалидность по коду ${e.BenefitCodeShort} программы ОНЛС так как уже имеется активная`,displayTime:15e3}};if(!Ct&&isResultValidateNotOnls(Tt,Ot)&&Ot)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Невозможно ${zt} категорию по коду ${e.BenefitCodeShort} программы ${e.ProgramName} так как уже имеется активная. Для добавления новой льготы необходимо закрыть уже активную`,displayTime:15e3}};if(existFindedBenefit(e,I).length>1&&!M)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Невозможно отредактировать категорию по коду ${e.BenefitCodeShort} программы ${e.ProgramName} так как имеются дубли. Обратитесь в тех. поддержку Минздрава отдела ЛЛО`,displayTime:15e3}};if(ze&&ze>today)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:"Указан некорректный период действия льготы. Дата начала льготы больше текущей даты!",displayTime:15e3}};if(ze&&V!=null&&!V&&ze<today&&!["510","901","902","903","904","905","906"].includes(e.BenefitCodeShort))return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:"Указан некорректный период действия льготы. Дата начала льготы меньше текущей даты!",displayTime:15e3}};if(ze&&yt&&ze>=yt)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:"Указан некорректный период действия льготы. Дата начала льготы не может быть равна или больше дате конца льготы!",displayTime:15e3}};if(!N?.BirthDate&&Object.values(BenefitCodesChildren).includes(e.BenefitCodeShort))return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:"Для категорий 302, 303, 601, 931 необходимо чтобы дата рождения пациента была указана",displayTime:15e3}};if((!ze||!yt)&&(Object.values(BenefitCodesChildren).includes(e.BenefitCodeShort)||["510","901","902","903","904","905"].includes(e.BenefitCodeShort)))return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:"Для категории 302, 303, 510, 601, 901, 902, 903, 904, 905, 931 дата начала и дата конца льготы не может быть пустой!",displayTime:15e3}};if(e.BenefitCodeShort===BenefitCodesChildren.CHILDREN_NMG_START){const ln=setStrYearLocalDate(N.BirthDate,2),bn=setStrYearLocalDate(ln,2);if(ze<ln)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Для категории НМГ-дети (дети от 2 до 4 лет) дата начала не может быть меньше даты ${new Date(ln).toLocaleDateString("ru-RU")}`,displayTime:15e3}};if(yt>=bn)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Для категории НМГ-дети (дети от 2 до 4 лет) дата конца не может быть больше ${new Date(bn).toLocaleDateString("ru-RU")}`,displayTime:15e3}}}if(e.BenefitCodeShort===BenefitCodesChildren.CHILDREN_NMG_END){const ln=setStrYearLocalDate(N.BirthDate,4),bn=setStrYearLocalDate(ln,14);if(ze<ln)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Для категории НМГ-дети (дети от 4 до 17 лет включительно) дата начала не может быть меньше даты ${new Date(ln).toLocaleDateString("ru-RU")}`,displayTime:15e3}};if(yt>=bn)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Для категории НМГ-дети (дети от 4 до 17 лет включительно) дата конца не может быть больше ${new Date(bn).toLocaleDateString("ru-RU")}`,displayTime:15e3}}}if(e.BenefitCodeShort===BenefitCodesChildren.CHILDREN_THREE){const ln=N.BirthDate,bn=setStrYearLocalDate(ln,3);if(ze<ln)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:"Для категории дети до 3-х лет дата начала льготы не может быть меньше даты рождения",displayTime:15e3}};if(yt>=bn)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Для категории дети до 3-х лет дата конца льготы не может быть больше ${new Date(bn).toLocaleDateString("ru-RU")}`,displayTime:15e3}}}if(e.BenefitCodeShort==="510"){const ln=setStrYearLocalDate(today,null,6);if(yt>ln)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Для категории 510 (инфаркт миокарда (первые шесть месяцев)) дата конца не может быть больше ${new Date(ln).toLocaleDateString("ru-RU")}`,displayTime:15e3}}}if(["901","902","903","904","905"].includes(e.BenefitCodeShort)){const ln=setStrYearLocalDate(today,2);if(yt>ln)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Для категории по ССЗ (901, 902, 903, 904, 905) дата конца не может быть больше ${new Date(ln).toLocaleDateString("ru-RU")}`,displayTime:15e3}}}if(isFindActiveOrMonetizInPerson(I)&&e.ProgramName==="ССЗ"&&(!V||yt>today))return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:"Невозможно добавить/редактировать льготу по ССЗ при наличии активной или монетизированной категории ОНЛС. Если ССЗ активна, то необходимо её закрыть!",displayTime:15e3}};if(findLastOldActiveOnls(I)&&e.ProgramName==="ССЗ"&&(!V||yt>today))return{status:"checkOnls",notifyParam:{title:`Ошибка при ${$t} категории`,message:"Для добавления ССЗ при неактивной ОНЛС необходимо сообщить код запроса администратору ЛЛО МЗ РБ для получения кода потверждения",displayTime:15e3}};if(e.BenefitCodeShort===BenefitCodesChildren.CHILDREN_CIRCLEGOODNESS){const ln=N.BirthDate,bn=setStrYearLocalDate(ln,19);if(ze<ln)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:"Для категории Фонд Круг добра дата начала льготы не может быть меньше даты рождения",displayTime:15e3}};if(yt>=bn)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Для категории Фонд Круг добра дата конца льготы не может быть больше ${new Date(bn).toLocaleDateString("ru-RU")}`,displayTime:15e3}}}const hn=findReferenceFederal(e,I);if(hn){if(!hn.statusCategory&&Ot)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Для региональной категории ${hn.referenceCategory.Regional} требуется наличие активной федеральной категории ${hn.referenceCategory.Federal}`,displayTime:15e3}};if(hn.statusCategory&&hn.statusMkb===!1)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Указанная МКБ региональной категории ${hn.referenceCategory.Regional} не совпадает с МКБ активной федеральной категорией ${hn.referenceCategory.Federal}`,displayTime:15e3}}}return{status:!0,notifyParam:{title:"",message:"",displayTime:15e3}}}function useCheckCategoryExists(e,I){const N=I.value?.filter(J=>J.BenefitCodeShort===e);return!N||N.length===0?{status:!1,notifyParam:{title:"Ошибка при определении новой категории",message:`Указанная категория ${e} отсутствует в справочнике BenefitMap`,displayTime:15e3},result:null}:N.length>1?{status:!1,notifyParam:{title:"Ошибка при определении новой категории",message:`Указанная категория ${e} имеет дубликаты в справочнике BenefitMap`,displayTime:15e3},result:null}:{status:!0,notifyParam:{title:"",message:"",displayTime:15e3},result:N[0]}}function useValidateSnils(e){if(e=e.toString().replace(/\D/g,""),e.length!=11||Number(e.substring(0,9))<=1001998)return!1;const N=isNaN(Number(e.slice(-2)))?-1:Number(e.slice(-2));return N>-1?calculate(e)==N:!1}function calculate(e){const N=e.slice(0,9).split("");e.slice(-2);let J=0,V=9;for(let M=0;M<N.length;M++){const ze=parseInt(N[M],10);isNaN(ze)||(J+=ze*V,V--)}for(;J>99;){if(J===100)return 0;J%=101}return J}const _hoisted_1$s={class:"w-full h-full absolute top-0 left-0 flex justify-center items-center animate-pulse z-[5000]"},_hoisted_2$m={class:"flex m-[1rem] flex-row flex-wrap gap-[.5rem] items-end"},_hoisted_3$h={key:0,class:"w-[10rem]"},_hoisted_4$f={class:"w-[13rem]"},_hoisted_5$e={class:"w-[10rem]"},_hoisted_6$e={class:"flex flex-col"},_hoisted_7$d={class:"w-[100%]"},_hoisted_8$c={key:0,class:"text-red-500 bg-red-50 p-1 rounded-md"},_hoisted_9$a={class:"w-[100%]"},_hoisted_10$a={key:1,class:"w-[100%]"},_hoisted_11$9={class:"flex gap-[1rem]"},MINZDRAV_ID$1="9d1790e4-965e-46d3-878f-c8c5ce7ae8c6",RKIB_ID$1="3ef9a148-4f1f-4bfc-9717-ef876f210b7b",_sfc_main$y={__name:"BenefitForm",props:{editBenefit:{type:[Object,null],default:null},snils:{type:String,default:null},permisionLgot:{type:Object,required:!0},patientOpen:{type:Object,default:{},required:!0},userOpen:{type:Object,default:{},required:!0}},emits:["save","delete","error"],setup(e,{emit:I}){const{getBenefitListV2:N}=useBenefit(),J=I,V=e,M=vue.computed(()=>V.userOpen),ze=vue.computed(()=>V.patientOpen),yt=vue.ref({Endministrator:{Id:"86d86dd3-0f57-421a-a1e0-5765149d96ce",IsActive:M?.value?.UserId=="86d86dd3-0f57-421a-a1e0-5765149d96ce"},Root:{Id:"3fc433b5-a61f-4775-a925-abbbadb92150",IsActive:M?.value?.UserId=="3fc433b5-a61f-4775-a925-abbbadb92150"}}),Ct=vue.inject("isAdmin")||yt.value.Endministrator.IsActive||yt.value.Root.IsActive,Ft=vue.ref(!1),Tt=vue.ref({Snils:V.snils,EmployeePostId:M.value.Id}),Ot=vue.ref({Person:null,IsValidSnils:!1}),Nt=vue.ref([]),It=vue.ref([]),Vt=vue.ref(!1),$t=vue.ref(!1),zt=vue.ref(!0),Wt=vue.ref(!1),Xt=vue.ref(!1),jt=vue.ref(!1),hn=vue.ref(!1),ln=vue.ref(!1),bn=vue.computed(()=>(!M.value?.AccessCodes||!M.value.AccessCodes.includes(0))&&V.editBenefit?.Id&&V.editBenefit.EmployeePostId!==M.value.Id),nn=vue.computed(()=>bn.value||!Tt.value.BenefitCodeShort||!Ot.value?.IsValidSnils),yn=vue.ref({noSnils:"Укажите снилс для выбора категории",noCategory:"Выберите категорию льготы для ввода других параметров"}),un=vue.computed(()=>Tt.value.Snils?Tt.value.BenefitCodeShort?null:yn.value.noCategory:yn.value.noSnils);let an=null;_n(),dn();async function dn(){switch(await window.axios.get(window.localhost+"refs/BenefitMap",{params:{LpuIdForAccess:MINZDRAV_ID$1}}).then(Vn=>{Nt.value=Vn.data.Body}).finally(()=>{An()}),M.value.LpuId){case RKIB_ID$1:Nt.value=Nt.value.filter(Vn=>Vn.id==="88afb49a-4350-4ea1-aed3-e31f4de22bfa");break;case ze?.value?.LpuId:Nt.value=Nt.value.filter(Vn=>!["ОНЛС","ВЗН","Орфанные заболевания","Фонд Круг добра"].includes(Vn.ProgramName));break;default:M?.value?.LpuId!==MINZDRAV_ID$1&&!Ct&&(Nt.value=Nt.value.filter(Vn=>!["ОНЛС","ВЗН","Орфанные заболевания","Фонд Круг добра","Хронический Гепатит C"].includes(Vn.ProgramName)));break}}vue.watch(()=>V.editBenefit,Vn=>{Vn&&(Wt.value=!0,fn(Vn.BenefitCodeShort).then(()=>{Tt.value={Id:Vn.PatientBenefitId??Vn.Id,Snils:Vn.Snils,EmployeePostId:M.value.Id,Ds:Vn.Ds,DateIn:Vn.DateIn,DateOut:Vn.DateOut,BenefitCodeShort:Vn.BenefitCodeShort,Monetization:Vn.Monetization,Deleted:Vn.Deleted},Tt.value.Snils&&V.snils&&Tt.value.Snils!==V.snils&&(notifyError$1("Код ошибки 57195"),J("error",new Error("Критическое неравенство СНИЛС"))),V.snils&&(Tt.value.Snils=V.snils)}))},{immediate:!0,deep:!0}),vue.watch(()=>Tt.value.BenefitCodeShort,Vn=>{if(fn(Vn),Vn&&(parseInt(Vn)>=901&&parseInt(Vn)<=906||parseInt(Vn)===510)){Xt.value=!0;return}Xt.value=!1},{immediate:!0});function fn(Vn){return _n(),new Promise(nr=>{(!nn.value&&an!==Vn||!Vn)&&(It.value=[],Tt.value.Ds=null),Vn?(an=Vn,window.axios.get(window.localhost+"ReportServiceV2",{params:{Id:"46b51d40-777d-4dbb-83de-2ff88a8ed102",_param1_:Vn}}).then(hr=>{It.value=hr.data||[],nr(!0)}).catch(hr=>{notifyError$1("Произошла ошибка при попытке загрузить диагнозы для льготы, попробуйте позже"),J("error",hr),console.error(hr),nr(!1)}).finally(()=>{An()})):(Tt.value.DateIn=null,Tt.value.DateOut=null,An(),nr(!0))})}let fr=null;vue.watch(()=>Tt.value.Snils,Vn=>{clearTimeout(fr),fr=setTimeout(async()=>{try{if(Vn?.length===14){if(!useValidateSnils(Vn)){notifyError$1("Ошибка в номере СНИЛС",15e3,"Введённый СНИЛС неверен"),Ot.value.IsValidSnils=!1;return}_n();const{data:nr}=await api$1.Patient.get({Snils:Vn});if(nr.length>1){notifyError$1("По указанному СНИЛС найдены дублирующие записи. Необходимо объединить данные.",15e3,"Ошибка при поиске пациента"),Ot.value.IsValidSnils=!1;return}Ot.value.Person=nr[0],Ot.value.IsValidSnils=!0}else Ot.value.IsValidSnils=!1}catch{notifyError$1("Ошибка при отправке запроса",15e3,"Необходимо заново открыть форму Льгота. При повторной ошибке необходимо обратиться в СТП ЛЛО Минздрав")}finally{An()}},500)},{immediate:!0});function lr(Vn){return Tt.value.BenefitCodeShort==="999"}async function Hn(){try{if(await _n(),Tt.value?.Snils&&Tt.value?.BenefitCodeShort&&(It.value.length===0||Tt.value.Ds)&&Tt.value.DateIn){Tt.value.EmployeePostId=M.value.Id;const Vn=Tt.value.Snils,nr=Tt.value.BenefitCodeShort,hr=await N({Snils:Vn}),zn={...useCheckCategoryExists(nr,Nt)};if(!zn.status){notifyError$1(zn.notifyParam.message,zn.notifyParam.displayTime,zn.notifyParam.title);return}const tr={...zn.result,DateIn:Tt.value.DateIn,DateOut:Tt.value.DateOut,Annulate:Tt.value.Deleted,Ds:Tt.value.Ds,EmployeePostId:Tt.value.EmployeePostId,IdNewBenefit:Tt.value.Id,Monetization:Tt.value.Monetization};if(!Ct){const ir={...useCheckAddedBenefit(tr,hr,Ot.value.Person,M.value,Wt.value,Ct)};if(ir.status==="checkOnls"&&!ln.value&&(hn.value=!0,notifyWarning(ir.notifyParam.message,ir.notifyParam.displayTime,ir.notifyParam.title),await Cn(),ln.value=!1,hn.value=!1),!ir?.status){notifyError$1(ir.notifyParam.message,ir.notifyParam.displayTime,ir.notifyParam.title);return}}if(!Wt.value&&nr==="999"&&!window.confirm(`Вы подтверждаете добавление льготы по категории 999?
1302
1302
  Данная категория не относится к "304 - НМГ Беременные"!`))return;let on;Tt.value?.Id?on=api$1.PatientBenefit.put(Tt.value.Id,Tt.value):on=api$1.PatientBenefit.post(Tt.value);const vr=await on;J("save",vr.data.Body[0])}else notifyWarning("Заполните обязательные поля!")}catch(Vn){notifyError$1(Vn.message,15e3,"Произошла ошибка при сохранении льготы")}finally{An()}}function Kt(){_n(),api$1.PatientBenefit.delete(Tt.value.Id).then(()=>{J("delete")}).catch(Vn=>{notifyError$1(Vn.message,15e3,"Не удалось аннулировать льготу!")}).finally(()=>{An()})}vue.watch(()=>Tt.value.DateIn,(Vn,nr)=>{if((Vn!==null||Vn!==void 0)&&Vn!=nr&&hooks(Vn).isValid()&&Vn.length===10){const zn=parseInt(Tt.value?.BenefitCodeShort);if(!zn||Wt.value)return;zn>=901&&zn<=905&&(notifySuccess("Дата окончания льготы автоматически установлена на 2 года"),Tt.value.DateOut=hooks(Tt.value.DateIn).add(2,"year").format("YYYY-MM-DD")),zn===510&&(notifySuccess("Дата окончания льготы автоматически установлена на 6 месяцев"),Tt.value.DateOut=hooks(Tt.value.DateIn).add(6,"month").format("YYYY-MM-DD"))}});async function Mn(Vn){if(!Vn)return;const{BenefitCodeShort:nr}=Vn;if(Vt.value=!1,$t.value=!1,jt.value=!1,!nr)return;const hr=parseInt(nr);if((hr<901||hr>905)&&hr!=510&&(Tt.value.DateIn=getStrLocalDate(),Tt.value.DateOut=null,notifySuccess("Дата начала льготы автоматически установлена текущим днём"),$t.value=!0),hr>=901&&hr<=905||hr===510){notifyWarning("Укажите дату постановки на учёт. Дата начала льготы будет соответствовать дате постановки на учёт"),Tt.value.DateIn=null,Tt.value.DateOut=null,Vt.value=!0;return}if((hr>=532&&hr<=572||[574,575,601].includes(hr))&&(jt.value=!0),Ot.value?.Person?.BirthDate){const zn=Ot.value.Person.BirthDate;if(hr===parseInt(BenefitCodesChildren.CHILDREN_THREE)){Tt.value.DateOut=hooks(zn).add(3,"year").subtract(1,"day").format("YYYY-MM-DD"),notifySuccess("Дата окончания льготы автоматически установлена на 3 года"),$t.value=!1;return}if(hr===parseInt(BenefitCodesChildren.CHILDREN_NMG_START)){Tt.value.DateOut=hooks(zn).add(4,"year").subtract(1,"day").format("YYYY-MM-DD"),notifySuccess("Дата окончания льготы автоматически установлена на 4 года с даты рождения"),$t.value=!1;return}if(hr===parseInt(BenefitCodesChildren.CHILDREN_NMG_END)){Tt.value.DateOut=hooks(zn).add(18,"year").subtract(1,"day").format("YYYY-MM-DD"),notifySuccess("Дата окончания льготы автоматически установлена на 18 лет с даты рождения"),$t.value=!1;return}if(hr===parseInt(BenefitCodesChildren.CHILDREN_CIRCLEGOODNESS)){Tt.value.DateOut=hooks(zn).add(19,"year").subtract(1,"day").format("YYYY-MM-DD"),notifySuccess("Дата окончания льготы автоматически установлена на 19 лет с даты рождения"),$t.value=!1;return}}}function Bn(Vn){return["901","902","903","904","905"].includes(Vn.BenefitCodeShort)?!zt.value:!1}const gr=Vn=>{ln.value=Vn.status,Vn.status?notifySuccess(Vn.message,15e3,"Выдача разрешения на добавление льготы ССЗ"):notifyError$1(Vn.message,15e3,"Выдача разрешения на добавление льготы ССЗ")},Cn=()=>new Promise(Vn=>{const nr=vue.watch(ln,hr=>{hr&&(nr(),Vn())})});async function _n(){Ft.value=!0,await vue.nextTick()}function An(){Ft.value=!1}return(Vn,nr)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.withDirectives(vue.createElementVNode("div",_hoisted_1$s,[...nr[10]||(nr[10]=[vue.createElementVNode("div",{class:"bg-black/60 w-full h-full absolute top-0 left-0 z-[5001]"},null,-1),vue.createElementVNode("div",{class:"bg-white rounded-lg p-4 flex flex-row gap-3 items-center z-[5002]"},[vue.createElementVNode("div",{role:"status"},[vue.createElementVNode("svg",{"aria-hidden":"true",class:"w-8 h-8 text-gray-200 animate-spin dark:text-gray-300 fill-blue-600",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[vue.createElementVNode("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",fill:"currentColor"}),vue.createElementVNode("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",fill:"currentFill"})])]),vue.createElementVNode("div",null,[vue.createElementVNode("p",{class:"font-bold"},"Загрузка данных"),vue.createElementVNode("p",{class:"text-sm text-gray-500"},"Пожалуйста, подождите...")])],-1)])],512),[[vue.vShow,Ft.value]]),vue.createElementVNode("div",null,[vue.createElementVNode("div",_hoisted_2$m,[V.snils?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("div",_hoisted_3$h,[vue.createVNode(vue.unref($A),{label:"СНИЛС",mask:"###-###-### ##",required:"",modelValue:Tt.value.Snils,"onUpdate:modelValue":nr[0]||(nr[0]=hr=>Tt.value.Snils=hr),disabled:bn.value},null,8,["modelValue","disabled"])])),vue.createElementVNode("div",_hoisted_4$f,[vue.createVNode(_sfc_main$P,{modelValue:Tt.value.DateIn,"onUpdate:modelValue":nr[1]||(nr[1]=hr=>Tt.value.DateIn=hr),label:Xt.value?"Дата постановки на учёт":"Дата начала",required:"",disabled:(nn.value||!Vt.value)&&!vue.unref(Ct)},null,8,["modelValue","label","disabled"])]),vue.createElementVNode("div",_hoisted_5$e,[vue.createVNode(_sfc_main$P,{modelValue:Tt.value.DateOut,"onUpdate:modelValue":nr[2]||(nr[2]=hr=>Tt.value.DateOut=hr),label:"Дата конца",disabled:(nn.value||!$t.value)&&!Wt.value},null,8,["modelValue","disabled"])]),vue.withDirectives(vue.createElementVNode("div",_hoisted_6$e,[vue.createVNode(vue.unref(jc),{label:"Монетизирована",modelValue:Tt.value.Monetization,"onUpdate:modelValue":nr[3]||(nr[3]=hr=>Tt.value.Monetization=hr),disabled:!vue.unref(Ct)||nn.value},null,8,["modelValue","disabled"]),vue.createVNode(vue.unref(jc),{label:"Аннулирована",modelValue:Tt.value.Deleted,"onUpdate:modelValue":nr[4]||(nr[4]=hr=>Tt.value.Deleted=hr),disabled:!vue.unref(Ct)||nn.value},null,8,["modelValue","disabled"])],512),[[vue.vShow,vue.unref(Ct)]]),vue.createElementVNode("div",_hoisted_7$d,[un.value?(vue.openBlock(),vue.createElementBlock("p",_hoisted_8$c,vue.toDisplayString(un.value),1)):vue.createCommentVNode("",!0),vue.createVNode(_sfc_main$E,{"max-option-count":9999,disabled:bn.value||!Ot.value.IsValidSnils||Wt.value,required:"",label:"Категория льготы",modelValue:Tt.value.BenefitCodeShort,"onUpdate:modelValue":nr[5]||(nr[5]=hr=>Tt.value.BenefitCodeShort=hr),onOnSelectObject:Mn,data:Nt.value,"option-disabled":Bn,"id-field":"BenefitCodeShort","display-expr":hr=>"("+hr.BenefitCodeShort+") "+hr.BenefitNameLong,clearable:""},null,8,["disabled","modelValue","data","display-expr"])]),vue.createElementVNode("div",_hoisted_9$a,[It.value.length===0||Tt.value.BenefitCodeShort==="999"?(vue.openBlock(),vue.createBlock(_sfc_main$z,{key:0,idField:"Code",modelValue:Tt.value.Ds,"onUpdate:modelValue":nr[6]||(nr[6]=hr=>Tt.value.Ds=hr),disabled:nn.value||jt.value,"filter-function":lr,clearable:""},null,8,["modelValue","disabled"])):(vue.openBlock(),vue.createBlock(_sfc_main$O,{key:1,label:"Диагноз",required:"",data:It.value,modelValue:Tt.value.Ds,"onUpdate:modelValue":nr[7]||(nr[7]=hr=>Tt.value.Ds=hr),idField:"Code",disabled:nn.value||jt.value,"display-expr":hr=>"("+hr.Code+") "+hr.Name,clearable:""},null,8,["data","modelValue","disabled","display-expr"]))]),Tt.value?.EmployeePostId?(vue.openBlock(),vue.createElementBlock("div",_hoisted_10$a,[vue.createVNode(_sfc_main$N,{disabled:"","other-lpu":"",modelValue:Tt.value.EmployeePostId,"onUpdate:modelValue":nr[8]||(nr[8]=hr=>Tt.value.EmployeePostId=hr),label:"Врач, который сохранит льготу"},null,8,["modelValue"])])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_11$9,[vue.createVNode(vue.unref(_2),{label:"Сохранить",onClick:Hn,disabled:nn.value},null,8,["disabled"]),Tt.value?.Id?(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:0,label:"Аннулировать",delete:"",onClick:Kt,disabled:nn.value},null,8,["disabled"])):vue.createCommentVNode("",!0)])])]),(vue.openBlock(),vue.createBlock(vue.resolveDynamicComponent(V.permisionLgot),{visible:hn.value,"onUpdate:visible":nr[9]||(nr[9]=hr=>hn.value=hr),onSuccess:gr},null,40,["visible"]))],64))}},_hoisted_1$r={class:"content-wrapper"},_hoisted_2$l={class:"fields-section"},_hoisted_3$g={class:"action-buttons"},XOR_KEY=42108,_sfc_main$x={__name:"PermissionLgot",props:{isAdmin:{type:Boolean,default:null},visible:{type:Boolean,default:null}},emits:["update:visible","success"],setup(e,{emit:I}){const N=I,J=e,V=vue.ref(""),M=vue.ref(""),ze=vue.ref(0),yt=vue.computed(()=>J?.isAdmin||!1),Ct=vue.computed({get:()=>J.visible,set:Nt=>N("update:visible",Nt)});vue.watch(Ct,Nt=>{Nt&&!yt.value&&Ot()}),vue.watch(()=>V.value,()=>{M.value=""});const Ft=()=>{try{if(yt.value){const Xt=parseInt(V.value,10);if(isNaN(Xt)){notifyError$1("Введите корректный код запроса",15e3,"Выдача разрешения на добавление льготы ССЗ");return}const jt=new Date,hn=Math.floor((jt-new Date(jt.getFullYear(),0,0))/(1e3*60*60*24)),ln=jt.getFullYear(),bn=Xt^XOR_KEY^hn^ln;M.value=bn.toString();return}const Nt=parseInt(M.value,10);if(isNaN(Nt)){notifyError$1("Введите корректный код подтверждения",15e3,"Выдача разрешения на добавление льготы ССЗ");return}const It=parseInt(V.value,10),Vt=new Date,$t=Math.floor((Vt-new Date(Vt.getFullYear(),0,0))/(1e3*60*60*24)),zt=Vt.getFullYear(),Wt=It^XOR_KEY^$t^zt;Nt===Wt?N("success",{message:"Код корректный",status:!0}):N("success",{message:"Код неверный",status:!1})}catch(Nt){notifyError$1(`${Nt.message}`,15e3,"Ошибка")}},Tt=()=>{Ct.value=!1,V.value="",M.value=""};function Ot(){let Nt=Math.floor(Math.random()*99e3)+1e3;Nt=Nt&4294967040,Nt=Nt^9012345,ze.value=Nt,V.value=Nt.toString()}return(Nt,It)=>(vue.openBlock(),vue.createBlock(vue.unref(_s),{onClose:Tt,size:"xl",class:"p-4",modelValue:Ct.value,"onUpdate:modelValue":It[2]||(It[2]=Vt=>Ct.value=Vt),title:"Выдача разрешения на добавление льготы ССЗ",hideExpandedButton:!0},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_1$r,[vue.createElementVNode("div",_hoisted_2$l,[vue.createVNode(vue.unref($A),{label:"Код запроса:",modelValue:V.value,"onUpdate:modelValue":It[0]||(It[0]=Vt=>V.value=Vt),required:yt.value,readonly:!yt.value,clearable:yt.value,class:"form-field",mask:"#########"},null,8,["modelValue","required","readonly","clearable"]),vue.createVNode(vue.unref($A),{label:"Код подтверждения:",modelValue:M.value,"onUpdate:modelValue":It[1]||(It[1]=Vt=>M.value=Vt),required:!yt.value,readonly:yt.value,clearable:!yt.value,class:"form-field",mask:"#########"},null,8,["modelValue","required","readonly","clearable"])]),vue.createElementVNode("div",_hoisted_3$g,[vue.createVNode(vue.unref(_2),{onClick:Ft,"prepend-icon":"lock-open",color:yt.value?"warning":"success",size:"lg",primary:""},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(yt.value?"Разблокировать":"Принять"),1)]),_:1},8,["color"]),vue.createVNode(vue.unref(_2),{onClick:Tt,"prepend-icon":"circle-xmark",color:"secondary",outline:"",size:"lg",delete:""},{default:vue.withCtx(()=>[...It[3]||(It[3]=[vue.createTextVNode(" Закрыть ",-1)])]),_:1})])])]),_:1},8,["modelValue"]))}},PermissionLgot=_export_sfc(_sfc_main$x,[["__scopeId","data-v-c8a29744"]]),_hoisted_1$q={class:"flex flex-col gap-3"},_hoisted_2$k={key:0,class:"border rounded p-2 bg-slate-100"},_hoisted_3$f={key:1,class:"flex justify-end gap-2 py-2"},_hoisted_4$e=["title"],_hoisted_5$d=["title"],_hoisted_6$d={key:2,class:"text-sm text-right text-gray-500"},_hoisted_7$c={class:"w-full h-full absolute top-0 left-0 flex justify-center items-center animate-pulse z-[5000]"},_hoisted_8$b={class:"flex flex-col gap-4"},_hoisted_9$9={class:"flex justify-end gap-2"},_hoisted_10$9=["title"],_hoisted_11$8={class:"flex gap-4 justify-end"},_hoisted_12$8={class:"flex-1 gap-4"},_hoisted_13$7={class:"flex flex-col border rounded p-4 gap-4"},_hoisted_14$5={class:"flex gap-4"},_hoisted_15$4={class:"flex flex-col border rounded p-4 gap-4"},_hoisted_16$4={class:"flex justify-end gap-2"},BURYAT_PHARMACY_ID="6fe08f39-a61e-4687-96a5-7f599ca9e5df",RKIB_ID="3ef9a148-4f1f-4bfc-9717-ef876f210b7b",MINZDRAV_ID="9d1790e4-965e-46d3-878f-c8c5ce7ae8c6",_sfc_main$w={__name:"NewBenefitList",props:{userOpen:{type:Object,default:{},required:!0},dataPatient:{type:{},default:null,require:!0},customRowClickHandler:{type:[Function,null],default:null},infoOnly:{type:Boolean,default:!1},selectable:{type:Boolean,default:!1},frlloFilters:{type:Object,default:{}},isMainViewTable:{type:Boolean,default:!1},nameProject:{type:String,default:"WebBMS",required:!0},viewFilter:{type:Boolean,default:!0},filterList:{type:Array,default:()=>[]},columnsMainTable:{type:Array,default:()=>[]},visibleHelperStateLgota:{type:Boolean,default:!0},visibleExportExcel:{type:Boolean,default:!0},visibleContextTable:{type:Boolean,default:!0},hiddenLgots:{type:Boolean,default:!1},allowedProgrammsApplications:{type:Array,default:!1}},setup(e,{expose:I}){const N=e,J=vue.computed(()=>N.userOpen),V=vue.ref(J.value.LpuId===MINZDRAV_ID),M=vue.ref([]),ze=vue.ref([]),yt=vue.ref(!1),Ct=vue.ref(!1),Ft=vue.ref([]),Tt=vue.ref({Endministrator:{Id:"86d86dd3-0f57-421a-a1e0-5765149d96ce",IsActive:J?.value?.UserId=="86d86dd3-0f57-421a-a1e0-5765149d96ce"},Root:{Id:"3fc433b5-a61f-4775-a925-abbbadb92150",IsActive:J?.value?.UserId=="3fc433b5-a61f-4775-a925-abbbadb92150"}}),Ot=vue.inject("isAdmin")||Tt.value.Endministrator.IsActive||Tt.value.Root.IsActive;api$1.LpuByRegionId.get("03").then(Or=>{M.value=Or.data});const Nt=vue.computed(()=>N.dataPatient.PatientSnils?{Snils:N.dataPatient.PatientSnils}:{}),It=vue.ref(N.isMainViewTable),{getBenefitList:Vt,getBenefitListV2:$t}=useBenefit(),zt=vue.ref(!1),Wt=vue.ref([]),Xt=vue.ref(!1),jt=vue.ref(null),hn=vue.ref([]),ln=vue.ref({}),bn=vue.ref(!1),nn=vue.ref({}),yn=[{Name:"История",Icon:"history",Action:Hn}];function un(Or){const rr=N.nameProject,Fo=[],Fr=[];switch(Or){case"registerControl":return!!(Ot||rr!="Pharmacy"&&rr!="MZ"&&rr!="Stock"||Fo.includes(J?.value?.UserId)||Fr.includes(J?.value?.LpuId));case"getRegister":return J?.value?.LpuId===BURYAT_PHARMACY_ID}}vue.watch(()=>[nn.value.BenefitCodeShort,nn.value.ProgramName,nn.value.LpuIdPrikrep],()=>{nn.value.FileName=an()});function an(){return`${nn.value.BenefitCodeShort||"Все-льготы"}_${nn.value.ProgramName?.replace(/\s/g,"-")||"Все-программы"}_${M.value.find(Or=>Or.Id===nn.value.LpuIdPrikrep)?.Name?.replace(/\s/g,"-")||"Все-МО"}_${hooks().format("YYYY-MM-DD_HH-mm-ss")}`}function dn(){nn.value={},bn.value=!0,nn.value.FileName=an()}async function fn(){zt.value=!0;try{const Or=await window.axios.get(window.localhost+"dbf/export",{params:nn.value});Or.data?.File&&Or.data?.Name?fr(Or.data):notifyError$1("Нет данных для экспорта")}catch(Or){notifyError$1(`Ошибка при экспорте:
1303
1303
  `+Or.message)}finally{zt.value=!1}}function fr(Or){let rr="data: application/x-zip-compressed;base64,"+Or.File,Fo=document.createElement("a");Fo.href=rr,Fo.setAttribute("download",Or.Name),document.body.appendChild(Fo),Fo.click(),document.body.removeChild(Fo)}async function lr(Or){"filters"in Or&&(Or=Or.filters),Or={...Nt.value,...Or,...N.frlloFilters},ln.value=Or,zt.value=!0;try{let rr=await $t(Or);if(N.hiddenLgots){const Fo=hooks().startOf("day"),Fr=rr.filter(Jr=>{const Bo=hooks(Jr.DateIn).startOf("day"),Br=hooks(Jr.DateOut??"2999-12-12").startOf("day");return!Jr.Deleted&&!Jr.Monetization&&(!Jr.DateOut||Fo.isBetween(Bo,Br,null,"[]"))});if(rr=[...new Map(Fr.map(Jr=>[Jr.Snils,Jr])).values()].map(Jr=>{let Bo=null;N.allowedProgrammsApplications&&(Bo=Object.keys(N.allowedProgrammsApplications));const Br=Fr.filter(ga=>ga.Snils===Jr.Snils).map(ga=>ga.BenefitProgram);return{...Jr,BenefitProgramsActive:[...new Set(Br)].join(", ")}}),!rr?.length)throw{message:"Не найден пациент или отсутствуют активные льготы у пациента",code:"NO_DATA_PATIENT_OR_ACTIVE_LGOTS",status:404}}Wt.value=rr}catch(rr){Wt.value=[];const Fo=rr.message||"Неизвестная ошибка",Fr=rr.code||"UNKNOWN_ERROR";notifyError$1(`Ошибка при загрузке данных: ${Fo}`,15e3,`${Fr}`)}finally{zt.value=!1}}async function Hn(Or){const rr=await Vt({Snils:Or.Snils,BenefitCodeShort:Or.BenefitCodeShort},!1);hn.value=rr,jt.value=Or,Xt.value=!0}function Kt(){hn.value=[],jt.value=null}const Mn={ОНЛС:[null],ВЗН:[null],"Орфанные заболевания":[null],П890:["ALL"],ССЗ:["ALL"],"Паллиативная помощь":["ALL"],"Сахарный диабет":["ALL"],"Дети до трёх лет":["ALL"],"Фонд Круг добра":[null],"Незарег. ЛП.":[null],"НМГ(Беременные)":["ALL"],"НМГ(Дети)":["ALL"],"Хронический Гепатит C":[RKIB_ID]};function Bn(Or){const rr=Mn[Or?.BenefitProgram]?.includes(J.value.LpuId),Fo=Mn[Or?.BenefitProgram]?.includes(J.value.UserId),Fr=Mn[Or?.BenefitProgram]?.includes("ALL")&&un("registerControl")&&J.value.LpuId!==RKIB_ID,br=!Object.keys(Mn).includes(Or?.BenefitProgram),Jr=J.value.LpuId===N.dataPatient?.LpuId&&Or?.BenefitProgram==="Хронический Гепатит C";if(!It.value)if(rr||Fo||Fr||br||Ot||Jr){const{Id:Bo,LogDateTime:Br,PatientBenefitId:ga,...ud}=Or;jt.value=ud,N.infoOnly?notifyWarning("Данные только в режиме просмотра",15e3,"Ограничено системой"):hr()}else notifyWarning("У вас нет прав на редактирование данной льготы",15e3,"Ограничено системой");if(typeof N.customRowClickHandler=="function"){N.customRowClickHandler(Or);return}}function gr(){Xt.value=!1,Bn(hn.value[0])}function Cn(Or){if(Or?.Deleted)return"#f9c7c8";if(Or?.Monetization)return"#f3c77a";let rr=hooks().startOf("day"),Fo=hooks(Or.DateIn).startOf("day"),Fr=hooks(Or.DateOut??"2999-12-12").startOf("day");return!Or.DateOut||rr.isBetween(Fo,Fr,null,"[]")?"#cbe4cb":"#dedee1"}BenefitProgram(Or=>ze.value=Or.map(rr=>({...rr,Benefits:JSON.parse(rr.Benefits)}))),BenefitMap(Or=>Ft.value=Or);const _n=["Snils","Fio","AttachedMo"],An=vue.computed(()=>{if(N.filterList?.length)return N.filterList;let Or=[{accessor:"Fio",type:"text",name:"Ф.И.О."},{accessor:"ProgramId",type:"select",list:ze.value,name:"Программа"},{accessor:"BenefitCodeShort",type:"select",name:"Код льготы",relation:({values:rr})=>rr?.ProgramId?ze.value.find(Fo=>rr.ProgramId===Fo.Id).Benefits:Ft.value,display:rr=>"("+rr.BenefitCodeShort+") "+rr.BenefitNameLong,idField:"BenefitCodeShort",style:{width:"20rem"}},{accessor:"Snils",type:"text",name:"СНИЛС",mask:"###-###-### ##"},{accessor:"Monetized",type:"select",name:"Монетизация",list:[{Id:"false",Name:"Не монетизированные"},{Id:"true",Name:"Монетизированные"}],placeholder:"Все"},{accessor:"AttachedMo",type:"select",list:M.value,name:"МО прикрепления",style:{width:"15rem"}},{accessor:"Active",type:"select",list:[{Id:"true",Name:"Активные"},{Id:"false",Name:"Неактивные"}],name:"Активность",placeholder:"Все",style:{width:"10rem"}},{accessor:"InMis",type:"select",list:[{Id:"true",Name:"Есть данные"},{Id:"false",Name:"Нет данных"}],name:"Данные пациента в МИС",placeholder:"Все",style:{width:"15rem"}},{accessor:"Deleted",type:"select",placeholder:"Неаннулированные",list:[{Id:"all",Name:"Все"},{Id:"true",Name:"Аннулированные"}],name:"Состояние",style:{width:"15rem"}}];return N.dataPatient.PatientSnils&&(Or=Or.filter(rr=>!_n.includes(rr.accessor))),V||(Or=Or.filter(rr=>rr.accessor!=="InMis")),Or});vue.watch(()=>N.dataPatient.PatientSnils,()=>{N.dataPatient.PatientSnils&&lr({})},{immediate:!0});const Vn=vue.computed(()=>[{name:"Ф.И.О.",accessor:"PatientFio"},{name:"Дата рождения",display:rr=>hooks(rr.PatientBirthdate).format("DD.MM.YYYY")},{name:"МО прикрепления",accessor:"AttachedMoName"},{name:"Программа",accessor:"BenefitProgram"},{name:"СНИЛС",accessor:"Snils"},{name:"Полис",accessor:"PolicyNumber"},{name:"Страховая компания",accessor:"SmoName",Template:"SmoName"},{name:"Диагноз",accessor:"Ds"},{name:"Код льготы",accessor:"BenefitCodeShort"},{name:"Категория льготности",accessor:"BenefitName",Template:"BenefitName"},{name:"Адрес проживания",accessor:"AddressFact"},{name:"Адрес регистрации",accessor:"AddressReg"},{name:"Монетизирована",accessor:"MonetizationText"},{name:"Дата начала",display:rr=>rr?.DateIn?hooks(rr.DateIn).format("DD.MM.YYYY"):"-"},{name:"Дата конца",display:rr=>rr?.DateOut?hooks(rr.DateOut).format("DD.MM.YYYY"):"-"},{name:"Статус ФРЛЛО",display:rr=>rr?.FrlloStatus?rr.FrlloStatus:"Не выгружен"},{name:"Дата изменения",display:rr=>hooks(rr.LogDateTime).format("DD.MM.YYYY HH:mm:ss")},{name:"Пользователь",display:rr=>(rr.EmployeeLastname||"").trim()+" "+(rr.EmployeeFirstname||"").trim()+" "+(rr.EmployeePatronymic||"").trim()}].filter(rr=>!rr.hidden).map(rr=>({Title:rr.name,Field:typeof rr.display=="function"?rr.display:rr.accessor,Template:rr?.Template}))),nr=vue.computed(()=>[{name:"Программа",accessor:"BenefitProgram"},{name:"Диагноз",accessor:"Ds"},{name:"Код льготы",accessor:"BenefitCodeShort"},{name:"Категория льготности",accessor:"BenefitName",Template:"BenefitName"},{name:"Монетизирована",accessor:"MonetizationText"},{name:"Дата начала",display:rr=>rr?.DateIn?hooks(rr.DateIn).format("DD.MM.YYYY"):"-"},{name:"Дата конца",display:rr=>rr?.DateOut?hooks(rr.DateOut).format("DD.MM.YYYY"):"-"},{name:"Статус ФРЛЛО",display:rr=>rr?.FrlloStatus?rr.FrlloStatus:"Не выгружен"},{name:"Дата изменения",display:rr=>hooks(rr.LogDateTime).format("DD.MM.YYYY HH:mm:ss")},{name:"Пользователь",display:rr=>(rr.EmployeeLastname||"").trim()+" "+(rr.EmployeeFirstname||"").trim()+" "+(rr.EmployeePatronymic||"").trim()}].filter(rr=>!rr.hidden).map(rr=>({Title:rr.name,Field:typeof rr.display=="function"?rr.display:rr.accessor,Template:rr?.Template})));function hr(){yt.value=!0}function zn(Or){yt.value=!1,notifyError$1(Or)}async function tr(){yt.value=!1,await new Promise(Or=>setTimeout(Or,1e3)),lr(ln.value),notifySuccess("Льгота сохранена успешно!")}function on(){yt.value=!1,lr(ln.value),notifySuccess("Льгота аннулирована!")}function vr(){jt.value=null,hr()}function ir(){Ct.value=!0}function yr(){return Wt.value.filter(Or=>Or._selected_).map(Or=>({Id:Or.PatientBenefitId,Snils:Or.PatientSnils}))}function Ur(){nn.value={}}return I({getSelectedRows:yr}),(Or,rr)=>(vue.openBlock(),vue.createElementBlock("div",null,[vue.createElementVNode("div",_hoisted_1$q,[N.viewFilter?(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$k,[vue.createVNode(_sfc_main$I,{"filter-list":An.value,onSearch:lr},null,8,["filter-list"])])):vue.createCommentVNode("",!0),N.visibleHelperStateLgota?(vue.openBlock(),vue.createElementBlock("div",_hoisted_3$f,[rr[13]||(rr[13]=vue.createStaticVNode('<div class="flex items-center gap-1"><div class="size-4 rounded" style="background:#f9c7c8;"></div><p>Аннулирована</p></div><div class="flex items-center gap-1"><div class="size-4 rounded" style="background:#f3c77a;"></div><p>Монетизированна</p></div><div class="flex items-center gap-1"><div class="size-4 rounded" style="background:#dedee1;"></div><p>Неактивная</p></div><div class="flex items-center gap-1"><div class="size-4 rounded" style="background:#cbe4cb;"></div><p>Активная</p></div>',4)),un("getRegister")&&!N.infoOnly?(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:0,onClick:dn,"prepend-icon":"download"},{default:vue.withCtx(()=>[...rr[10]||(rr[10]=[vue.createTextVNode("Экспорт в .dbf",-1)])]),_:1})):vue.createCommentVNode("",!0),un("registerControl")&&!N.infoOnly?(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:1,onClick:vr,"prepend-icon":"plus",primary:""},{default:vue.withCtx(()=>[...rr[11]||(rr[11]=[vue.createTextVNode("Добавить льготу",-1)])]),_:1})):vue.createCommentVNode("",!0),vue.unref(Ot)&&!N.infoOnly?(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:2,onClick:ir,"prepend-icon":"unlock-keyhole",style:{backgroundColor:"white",color:"rgb(198 28 28 / var(--tw-text-opacity))"}},{default:vue.withCtx(()=>[...rr[12]||(rr[12]=[vue.createTextVNode("Доступ к ССЗ",-1)])]),_:1})):vue.createCommentVNode("",!0)])):vue.createCommentVNode("",!0),vue.createVNode(ReSimpleTable,{"enable-xlsx-export":It.value&&N.visibleExportExcel,data:Wt.value,columns:It.value?N.columnsMainTable?.length?N.columnsMainTable:Vn.value:nr.value,"page-size":20,"enable-page-size-selector":"","table-id":"benefitsList","context-actions":N.visibleContextTable?yn:null,"row-color":Cn,onRowClicked:Bn},{"cell(BenefitName)":vue.withCtx(({record:Fo})=>[vue.createElementVNode("p",{class:"cell-lite",title:Fo?.BenefitName},vue.toDisplayString(Fo?.BenefitName),9,_hoisted_4$e)]),"cell(SmoName)":vue.withCtx(({record:Fo})=>[vue.createElementVNode("p",{class:"cell-lite",title:Fo?.SmoName},vue.toDisplayString(Fo?.SmoName),9,_hoisted_5$d)]),_:1},8,["enable-xlsx-export","data","columns","context-actions"]),Wt.value.length>950?(vue.openBlock(),vue.createElementBlock("div",_hoisted_6$d,[vue.createElementVNode("p",null,"Показаны первые ~"+vue.toDisplayString(Math.ceil(Wt.value.length/1e3)*1e3)+" записей, чтобы найти нужного пациента уточните фильтры",1)])):vue.createCommentVNode("",!0)]),vue.withDirectives(vue.createElementVNode("div",_hoisted_7$c,[...rr[14]||(rr[14]=[vue.createElementVNode("div",{class:"bg-black/60 w-full h-full absolute top-0 left-0 z-[5001]"},null,-1),vue.createElementVNode("div",{class:"bg-white rounded-lg p-4 flex flex-row gap-3 items-center z-[5002]"},[vue.createElementVNode("div",{role:"status"},[vue.createElementVNode("svg",{"aria-hidden":"true",class:"w-8 h-8 text-gray-200 animate-spin dark:text-gray-300 fill-blue-600",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[vue.createElementVNode("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",fill:"currentColor"}),vue.createElementVNode("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",fill:"currentFill"})])]),vue.createElementVNode("div",null,[vue.createElementVNode("p",{class:"font-bold"},"Обработка данных"),vue.createElementVNode("p",{class:"text-sm text-gray-500"},"Пожалуйста, подождите...")])],-1)])],512),[[vue.vShow,zt.value]]),vue.createVNode(vue.unref(_s),{modelValue:Xt.value,"onUpdate:modelValue":rr[0]||(rr[0]=Fo=>Xt.value=Fo),title:`История льготы ${jt.value?.BenefitCodeShort}`,class:"p-4",size:"7xl",onClose:Kt},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_8$b,[vue.createElementVNode("div",_hoisted_9$9,[un("registerControl")&&!N.infoOnly?(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:0,onClick:gr,"prepend-icon":"pencil"},{default:vue.withCtx(()=>[...rr[15]||(rr[15]=[vue.createTextVNode("Изменить льготу",-1)])]),_:1})):vue.createCommentVNode("",!0)]),vue.createVNode(ReSimpleTable,{data:hn.value,columns:nr.value,"page-size":20,"enable-page-size-selector":"","table-id":"benefitsListHistory"},{"cell(BenefitName)":vue.withCtx(({record:Fo})=>[vue.createElementVNode("p",{class:"cell-lite",title:Fo?.BenefitName},vue.toDisplayString(Fo?.BenefitName),9,_hoisted_10$9)]),_:1},8,["data","columns"])])]),_:1},8,["modelValue","title"]),vue.createVNode(vue.unref(_s),{modelValue:yt.value,"onUpdate:modelValue":rr[1]||(rr[1]=Fo=>yt.value=Fo),title:"Льгота",size:"5xl",class:"p-4"},{default:vue.withCtx(()=>[vue.createVNode(_sfc_main$y,{snils:jt.value?.Snils||N.dataPatient.PatientSnils,"user-open":J.value,"patient-open":N.dataPatient,onSave:tr,onDelete:on,onError:zn,"edit-benefit":jt.value,disable:N.infoOnly,permisionLgot:PermissionLgot},null,8,["snils","user-open","patient-open","edit-benefit","disable"])]),_:1},8,["modelValue"]),vue.createVNode(vue.unref(_s),{modelValue:bn.value,"onUpdate:modelValue":rr[8]||(rr[8]=Fo=>bn.value=Fo),title:"Экспорт .dbf",size:"5xl",class:"p-4"},{default:vue.withCtx(()=>[vue.createElementVNode("form",{class:"flex flex-col gap-4",onSubmit:vue.withModifiers(fn,["prevent"])},[vue.createVNode(vue.unref($A),{label:"Имя файла",disabled:"",modelValue:nn.value.FileName,"onUpdate:modelValue":rr[2]||(rr[2]=Fo=>nn.value.FileName=Fo)},null,8,["modelValue"]),vue.createVNode(_sfc_main$O,{required:!nn.value.BenefitCodeShort&&!nn.value.ProgramName,label:"МО прикрепления",data:M.value,modelValue:nn.value.LpuIdPrikrep,"onUpdate:modelValue":rr[3]||(rr[3]=Fo=>nn.value.LpuIdPrikrep=Fo),"id-field":"Id","display-expr":Fo=>Fo.Name,clearable:""},null,8,["required","data","modelValue","display-expr"]),vue.createElementVNode("div",_hoisted_11$8,[vue.createElementVNode("div",_hoisted_12$8,[vue.createElementVNode("fieldset",_hoisted_13$7,[rr[16]||(rr[16]=vue.createElementVNode("legend",{class:"px-2 font-semibold text-sm"},"Льгота",-1)),vue.createVNode(_sfc_main$O,{required:!nn.value.BenefitCodeShort&&!nn.value.LpuIdPrikrep,label:"Программа",data:ze.value,modelValue:nn.value.ProgramName,"onUpdate:modelValue":rr[4]||(rr[4]=Fo=>nn.value.ProgramName=Fo),"id-field":"Name","display-expr":Fo=>Fo.Name,clearable:""},null,8,["required","data","modelValue","display-expr"]),vue.createVNode(_sfc_main$O,{required:!nn.value.ProgramName&&!nn.value.LpuIdPrikrep,label:"Код льготы",data:Ft.value,modelValue:nn.value.BenefitCodeShort,"onUpdate:modelValue":rr[5]||(rr[5]=Fo=>nn.value.BenefitCodeShort=Fo),"id-field":"BenefitCodeShort","display-expr":Fo=>Fo.BenefitCodeShort+" | "+Fo.BenefitNameLong,clearable:"",limit:1e3},null,8,["required","data","modelValue","display-expr"])])]),vue.createElementVNode("div",_hoisted_14$5,[vue.createElementVNode("fieldset",_hoisted_15$4,[rr[17]||(rr[17]=vue.createElementVNode("legend",{class:"px-2 font-semibold text-sm"},"Период активности льготы",-1)),vue.createVNode(_sfc_main$P,{style:{width:"250px"},modelValue:nn.value.BenefitStartDate,"onUpdate:modelValue":rr[6]||(rr[6]=Fo=>nn.value.BenefitStartDate=Fo),label:"Дата начала",clearable:""},null,8,["modelValue"]),vue.createVNode(_sfc_main$P,{style:{width:"250px"},modelValue:nn.value.BenefitEndDate,"onUpdate:modelValue":rr[7]||(rr[7]=Fo=>nn.value.BenefitEndDate=Fo),label:"Дата окончания",clearable:""},null,8,["modelValue"])])])]),vue.createElementVNode("div",_hoisted_16$4,[vue.createVNode(vue.unref(_2),{label:"Сбросить фильтры",onClick:Ur,delete:"",secondary:"","prepend-icon":"xmark"}),vue.createVNode(vue.unref(_2),{type:"submit","prepend-icon":"download",primary:""},{default:vue.withCtx(()=>[...rr[18]||(rr[18]=[vue.createTextVNode("Экспортировать",-1)])]),_:1})])],32)]),_:1},8,["modelValue"]),vue.createVNode(PermissionLgot,{isAdmin:vue.unref(Ot),visible:Ct.value,"onUpdate:visible":rr[9]||(rr[9]=Fo=>Ct.value=Fo)},null,8,["isAdmin","visible"])]))}},_hoisted_1$p={key:0,class:"grid grid-cols-2 gap-4 p-4"},_hoisted_2$j={class:"flex flex-col gap-2"},_hoisted_3$e={class:"flex items-center gap-2"},_hoisted_4$d={class:"flex items-center gap-2"},_hoisted_5$c={class:"flex items-center gap-2"},_hoisted_6$c={class:"flex flex-col gap-2"},_hoisted_7$b={class:"flex items-center gap-2"},_hoisted_8$a={class:"flex items-center gap-2"},_hoisted_9$8={class:"flex items-center gap-2"},_hoisted_10$8={class:"col-span-2 flex flex-col gap-2"},_hoisted_11$7={class:"flex items-center gap-2"},_hoisted_12$7={class:"flex items-center gap-2"},_hoisted_13$6={class:"border-t border-gray-200 mt-4 pt-4"},_sfc_main$v={__name:"PatientInfoComponent",props:{user:{type:Object,default:{},required:!0},patient:{type:Object,required:!0},infoOnly:{type:Boolean,default:!1},nameProject:{type:String,default:"",required:!0},isParentModalExpanded:{type:Boolean,default:!1},modalVisible:{type:Boolean,default:!1},hideDataPatient:{type:Boolean,default:!1},titleOverride:{type:String,default:null}},emits:["update:modalVisible","update:patient"],setup(e,{emit:I}){const N=I,J=e,V=vue.ref(!1),M=vue.computed({get:()=>J.modalVisible,set:yt=>N("update:modalVisible",yt)}),ze=vue.computed({get:()=>J.patient,set:yt=>N("update:patient",yt)});return(yt,Ct)=>(vue.openBlock(),vue.createBlock(vue.unref(_s),{title:J.titleOverride??`Информация о пациенте ${J.patient?.PatientFio} ${vue.unref(hooks)(J.patient?.PatientBirthdate).format("DD.MM.YYYY")}`,class:"p-4",modelValue:M.value,"onUpdate:modelValue":Ct[0]||(Ct[0]=Ft=>M.value=Ft),onClose:Ct[1]||(Ct[1]=Ft=>ze.value={}),size:"7xl",expanded:V.value,"onUpdate:expanded":Ct[2]||(Ct[2]=Ft=>V.value=Ft)},{default:vue.withCtx(()=>[vue.createElementVNode("div",null,[vue.createVNode(vue.unref(Cv1),{grow:"","keep-mounted":""},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(Vv1),null,{default:vue.withCtx(()=>[vue.createVNode(vue.unref(bv1),null,{default:vue.withCtx(()=>[...Ct[3]||(Ct[3]=[vue.createElementVNode("h2",null,"Данные пациента",-1)])]),_:1}),J.infoOnly?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(vue.unref(bv1),{key:0},{default:vue.withCtx(()=>[...Ct[4]||(Ct[4]=[vue.createElementVNode("h2",null,"Заявочная кампания",-1)])]),_:1}))]),_:1}),vue.createVNode(vue.unref(Lv1),null,{default:vue.withCtx(()=>[vue.createVNode(vue.unref(yv1),null,{default:vue.withCtx(()=>[vue.createElementVNode("div",null,[J.hideDataPatient?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$p,[vue.createElementVNode("div",_hoisted_2$j,[vue.createElementVNode("div",_hoisted_3$e,[Ct[5]||(Ct[5]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"ФИО:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(ze.value?.PatientFio),1)]),vue.createElementVNode("div",_hoisted_4$d,[Ct[6]||(Ct[6]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"СНИЛС:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(ze.value?.PatientSnils),1)]),vue.createElementVNode("div",_hoisted_5$c,[Ct[7]||(Ct[7]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"Дата рождения:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(vue.unref(hooks)(ze.value?.PatientBirthdate).format("DD.MM.YYYY")),1)])]),vue.createElementVNode("div",_hoisted_6$c,[vue.createElementVNode("div",_hoisted_7$b,[Ct[8]||(Ct[8]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"Полис:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(ze.value?.PolicyNumber),1)]),vue.createElementVNode("div",_hoisted_8$a,[Ct[9]||(Ct[9]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"СМО:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(ze.value?.SmoName),1)]),vue.createElementVNode("div",_hoisted_9$8,[Ct[10]||(Ct[10]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"Прикрепление:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(ze.value?.AttachedMoName),1)])]),vue.createElementVNode("div",_hoisted_10$8,[vue.createElementVNode("div",_hoisted_11$7,[Ct[11]||(Ct[11]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"Адрес регистрации:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(ze.value?.AddressReg),1)]),vue.createElementVNode("div",_hoisted_12$7,[Ct[12]||(Ct[12]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"Адрес фактический:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(ze.value?.AddressFact),1)])])])),vue.createElementVNode("div",_hoisted_13$6,[Ct[13]||(Ct[13]=vue.createElementVNode("h3",{class:"text-lg font-medium text-gray-900 mb-4"}," Льготы пациента ",-1)),vue.createVNode(_sfc_main$w,{"data-patient":ze.value,"name-project":J.nameProject,"user-open":e.user},null,8,["data-patient","name-project","user-open"])])])]),_:1}),J.infoOnly?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(vue.unref(yv1),{key:0},{default:vue.withCtx(()=>[vue.createVNode(_sfc_main$A,{"patient-id":ze.value.PatientId,"patient-snils":ze.value.PatientSnils,"is-parent-modal-expanded":V.value},null,8,["patient-id","patient-snils","is-parent-modal-expanded"])]),_:1}))]),_:1})]),_:1})])]),_:1},8,["title","modelValue","expanded"]))}},_hoisted_1$o={class:"p-1 text-xs"},_hoisted_2$i={class:"flex gap-3 p-2 bg-slate-100 w-full"},_hoisted_3$d={class:"flex items-center gap-2 p-3 bg-yellow-50 border-yellow-200 text-gray-700 text-sm w-full justify-end flex-wrap"},_hoisted_4$c={class:"flex gap-2 mt-2"},_hoisted_5$b={class:"flex-1 min-w-0 relative"},_hoisted_6$b={class:"w-full h-full absolute top-0 left-0 flex justify-center items-center animate-pulse z-[5000]"},_hoisted_7$a={class:"bg-white rounded-lg p-4 flex flex-row gap-3 items-center z-[5002]"},_hoisted_8$9={class:"font-bold"},_hoisted_9$7={class:"copy-needs-table-wrapper"},_hoisted_10$7=["checked"],_hoisted_11$6=["checked","onChange","disabled"],_hoisted_12$6={class:"w-[30%] min-w-[300px] border-l"},_hoisted_13$5={class:"flex justify-end gap-3 text-xs"},_sfc_main$u={__name:"CopyNeeds",props:vue.mergeModels({user:{type:Object,default:null,required:!0},openedFromPatient:{type:Object,default:null},openedFromApp:{type:Object,default:null},modalVisible:{type:Boolean,required:!0,default:!1},listYearApp:{type:Array,required:!0,default:[]},nowPeriodApp:{type:Number,default:2026},completeLoadApi:{default:null},api_listBenefits:{type:Array,default:null},api_listPreparats:{type:Array,default:null},api_listProgramms:{type:Array,default:null},api_historyLgots:{type:Array,default:null},api_activeLgots:{type:Array,default:null},api_listDiagnosis:{type:Array,default:null},api_appDocuments:{type:Array,default:null}},{completeLoadApi:{default:null},completeLoadApiModifiers:{},modalVisible:{default:!1},modalVisibleModifiers:{}}),emits:vue.mergeModels(["onSave","update:waitRequest"],["update:completeLoadApi","update:modalVisible"]),setup(e,{emit:I}){const N=e,J=vue.computed(()=>({0:"",1:"Успешно скопирована",2:"Ошибка при копировании",3:"Уже имеется в заявке",4:"Невозможно скопировать, так как льгота неактивна.",5:`Невозможно скопировать, так как препарат был исключен из перечня шаблона(ЛП/МИ/СПЛП) за ${N.nowPeriodApp}.`,6:"Копирование отклонено, так как не является ЖВ. Необходимо отредактировать потребность."})),V=vue.ref({0:"",1:"",2:"",3:"На редактировании",4:"На просмотре"}),M=vue.ref(N.user),ze=vue.ref(N.openedFromPatient),yt=vue.ref(N.openedFromApp),Ct=vue.ref(null),Ft=vue.ref(null),Tt=vue.ref(!1),Ot=vue.ref(!1),Nt=vue.ref(new Set),It=vue.ref(!1),Vt=vue.ref([]),$t=vue.ref([]),zt=vue.ref([]),Wt=vue.useModel(e,"completeLoadApi"),Xt=vue.ref(N.api_listProgramms),jt=vue.ref(N.api_listBenefits),hn=vue.ref(N.api_listPreparats),ln=vue.ref(N.api_historyLgots),bn=vue.ref(N.api_activeLgots),nn=vue.ref(N.api_listDiagnosis),yn=vue.ref(N.api_appDocuments),un=vue.ref({Id:null,Additional:null,Period:N.nowPeriodApp}),an=vue.ref({}),dn=vue.ref(!0),fn=vue.ref(null),fr=vue.ref(!0),lr=vue.ref({}),Hn=vue.ref("Загрузка данных"),Kt=vue.useModel(e,"modalVisible"),Mn=vue.computed(()=>{if($t.value.length===0)return!1;const Fr=$t.value.filter(br=>![4,5].includes(br.StateCopy));return Fr.length>0&&Fr.every(br=>Nt.value.has(br))});vue.onMounted(async()=>{await on(),Bn(),await ir(),lr.value=yn.value?.filter(Fr=>!Fr.Deleted&&Fr.Name.includes(`${N.nowPeriodApp}`))[0]??[],vr()}),vue.watch(()=>un?.value,(Fr,br)=>{br&&Fr!==br&&(br.StateCopy=0,br.StateRecord=0,Nt.value.delete(br))});function Bn(){un.value={Id:null,Additional:null,Period:N.nowPeriodApp}}function gr(Fr){return Nt.value.has(Fr)}function Cn(Fr){if(un.value?.Id){notifyWarning("Множественный выбор недоступен во время редактирования. Отмените редактирование или скопируйте редактируемую потребность.",15e3,"Внимание!");return}Nt.value.has(Fr)?Nt.value.delete(Fr):Nt.value.add(Fr)}function _n(){Mn.value?Nt.value.clear():$t.value.forEach(Fr=>{[4,5].includes(Fr.StateCopy)||Nt.value.add(Fr)})}async function An(Fr){if([4,5].includes(Fr.StateCopy)){notifyWarning("Невозможно выбрать заблокированную потребность для копирования!",15e3,"Внимание!");return}if(Cn(Fr),It.value)if(Vt.value.includes(order.Id)){const br=Vt.value.findIndex(Jr=>Jr===order.Id);Vt.value.splice(br,1)}else Vt.value.push(order.Id)}async function Vn(Fr){Fr&&(Array.from(Nt.value).some(Bo=>Bo.Id===Fr.Id)||Nt.value.add(Fr));const br=Nt.value.size>0?Array.from(Nt.value).filter(Jr=>Jr.signTemplate===!1):[];if(br?.length>0){const Jr=br.map(Bo=>Bo._rowNumber).join(", ");notifyWarning("Для копирования потребности с НЕ ЖВ препаратом необходимо сначала отредактировать потребность нажав по записи правой кнопкой мыши и выбрав 'Редактировать'",25e3,"Ограничение копирования"),notifyInfo(`Выбранные номера строк потребностей с НЕ ЖВ: ${Jr}`,15e3,"Уведомление системы!"),br.forEach(Bo=>{const Br=$t.value?.find(ga=>ga.Id===Bo.Id)||null;Br&&(Br.StateCopy=4),Nt.value.delete(Bo)});return}if(Nt.value.size===0){notifyInfo("Нет выбранных потребностей для копирования");return}if(Hn.value="Выполняется процесс копирования",await on(),un.value&&un.value.StateRecord===3){const Jr=$t.value.find(Br=>Br.Id===Fr.Id);delete un.value.Id,delete un.value.ApplicationsId,delete un.value.PreparatApplicationId;const Bo=Ct.value?.save(!0);Bo?.state&&Bo.state===200&&(Jr.StateCopy=1,Nt.value.clear()),Bo?.state&&Bo.state===500&&(Jr.StateCopy=2,Nt.value.clear());return}await nr(),vr(),Hn.value="Загрузка данных"}async function nr(){for(const Fr of Nt.value){const br={...Fr},Jr=$t.value.find(Bo=>Bo.Id===br.Id);delete br.Id,delete br.ApplicationsId,delete br.PreparatApplicationId,br.LpuId=M.value.LpuId,br.EmployeePostId=M.value.Id,br.CountMonth=Number(br.CountMonth),br.CountYear=Number(br.CountYear),await window.axios({url:window.localhost+`ApplicationCompany/PatientNeeds?Id=""${"&AppDocId="+lr.value.Id}`,method:"post",data:br}).then(async Bo=>{Jr.StateCopy=1}).catch(Bo=>{Bo.response.data&&notifyError$1(Bo.response.data),Jr.StateCopy=2}).finally(()=>{Jr.StateRecord===3?zn():Nt.value.delete(Jr)})}}function hr(){Nt.value.clear(),Kt.value=!1}function zn(){if(un?.value){Nt.value.delete(un);const Fr=$t.value?.find(br=>br.Id===un.value?.Id);Fr&&(Fr.StateRecord=0),Ct.value?.resetFormData(),Bn(),fr.value=!0}}function tr(Fr){Ft.value=Fr}async function on(){Tt.value=!0,await vue.nextTick()}function vr(){Tt.value=!1}async function ir(){try{if(Bn(),Nt.value.clear(),await on(),ze.value?.PatientId&&($t.value=await window.axios.get(window.localhost+`ApplicationCompany/PatientNeeds?PatientId=${ze.value.PatientId}&LpuId=${M.value.LpuId}&IsCheckActiveLgota=true&IsCheckActivePreparat=true`,{params:Ft.value||{}}).then(Fr=>{let br=Fr.data.map((Jr,Bo)=>{const Br={...Jr,MkbFullName:`${Jr.MkbCode?`${Jr.MkbCode} - ${Jr.MkbName}`:""}`,PreparatFullName:`${Jr.Mnn} - ${Jr.FullName} (Цена: ${Jr.MaxPriceWithVat??"не указана"})`,_rowNumber:Bo+1,signTemplate:hn.value?.find(ga=>ga.Id===Jr.TemplatePreparatId)?.Sign??!1,StateCopy:0,StateRecord:0};return Br?.ActiveBenefitNeed?Br.ActiveBenefitNeed?.lgota_mkb_code&&Br?.MkbCode&&Br.ActiveBenefitNeed.lgota_mkb_code!=Br.MkbCode&&(Br.UpdateInMkbCode=Br.ActiveBenefitNeed.lgota_mkb_code):Br.StateCopy=4,Br?.ActiveTemplatePreparat&&Br.ActiveTemplatePreparat.find(ud=>ud.AppDocName.includes(`${N.nowPeriodApp}`))||(Br.StateCopy=5),Object.prototype.hasOwnProperty.call(Jr,"ApplicationsStatus")||(Br.ApplicationsStatus=null),Object.prototype.hasOwnProperty.call(Jr,"ApplicationsComment")||(Br.ApplicationsComment=null),Object.prototype.hasOwnProperty.call(Jr,"Period")||(Br.Period=null),Br});return zt.value=br.filter(Jr=>!["Заявка одобрена","Заявка отклонена"].includes(Jr.ApplicationsStatus)),br=br.filter(Jr=>["Заявка одобрена","Заявка отклонена"].includes(Jr.ApplicationsStatus)).sort((Jr,Bo)=>Jr.DateNeed?Bo.DateNeed?hooks(Bo.DateNeed).diff(hooks(Jr.DateNeed)):-1:1).sort((Jr,Bo)=>Jr._rowNumber-Bo._rowNumber),br}).finally(()=>{vr()}),Ct.value?.resetFormData(),fr.value=!0),!ze.value&&(yt.value?.LpuId||yt.value?.ApplicationsId||yt.value?.ProgramId||yt.value?.CategoryId)){const Fr={...Ur(Ft.value),...Ur(yt.value)};$t.value=await window.axios.get(window.localhost+"ApplicationCompany/PatientNeeds",{params:Fr}).then(br=>{let Jr=br.data.map((Bo,Br)=>{const ga={...Bo,MkbFullName:`${Bo.MkbCode?`${Bo.MkbCode} - ${Bo.MkbName}`:""}`,PreparatFullName:`${Bo.Mnn} - ${Bo.FullName} (Цена: ${Bo.MaxPriceWithVat??"не указана"})`,_rowNumber:Br+1,signTemplate:hn.value?.find(ud=>ud.Id===Bo.TemplatePreparatId)?.Sign??!1,StateCopy:0,StateRecord:0};return Object.prototype.hasOwnProperty.call(Bo,"ApplicationsStatus")||(ga.ApplicationsStatus=null),Object.prototype.hasOwnProperty.call(Bo,"ApplicationsComment")||(ga.ApplicationsComment=null),Object.prototype.hasOwnProperty.call(Bo,"Period")||(ga.Period=null),ga});return zt.value=Jr.filter(Bo=>!["Заявка одобрена","Заявка отклонена"].includes(Bo.ApplicationsStatus)),Jr=Jr.filter(Bo=>["Заявка одобрена","Заявка отклонена"].includes(Bo.ApplicationsStatus)).sort((Bo,Br)=>Bo.DateNeed?Br.DateNeed?hooks(Br.DateNeed).diff(hooks(Bo.DateNeed)):-1:1).sort((Bo,Br)=>Bo._rowNumber-Br._rowNumber),Jr}).finally(()=>{vr()}),Ct.value?.resetFormData(),fr.value=!0}vr()}catch(Fr){notifyError$1(`${Fr?.message??"Произошла ошибка в getAppData_CopyNeeds"}`)}}function yr(Fr){const br=Fr?.StateRecord,Jr=Fr?.StateCopy;return br==3?"#ffe79e":br==4?"#94ebff":Nt.value.has(Fr)?"#f2fff3":Jr==6?"#ffb79e":Jr==4||Jr==5?"#c4c4c4":Jr==1?"#54b858":Jr==2?"#b86c6c":null}function Ur(Fr){return Fr?Object.fromEntries(Object.entries(Fr).filter(([br,Jr])=>Jr!=null&&Jr!=="")):{}}const Or=vue.computed(()=>{const Fr=[{name:"Тип заявки",type:"select",accessor:"Additional",list:[{Id:"false",Name:"Основная"},{Id:"true",Name:"Допонительная"}],style:{width:"12rem",minWidth:"12rem",maxWidth:"12rem"}},{name:"Период",type:"select",accessor:"Period",list:N.listYearApp,style:{width:"13rem",minWidth:"13rem",maxWidth:"13rem"}},{name:"Статус ЖВ",type:"select",accessor:"SignPrep",list:[{Id:!0,Name:"ЖВ"},{Id:!1,Name:"НЕ ЖВ"}],style:{width:"13rem",minWidth:"13rem",maxWidth:"13rem"}}];return yt.value?.ProgramId||Fr.push({name:"Программа",type:"select",accessor:"ProgramId",list:Object.entries(approvedBenefitProgramToPreparatProgramm).map(([br,Jr])=>({Id:br,Name:approvedBenefitProgram[Jr]})),style:{width:"15rem",minWidth:"15rem",maxWidth:"15rem"}}),Fr}),rr=vue.ref([{Name:"Редактировать",Icon:"pen",Action:async Fr=>{if(un.value?.Id){const Jr=$t.value?.find(Bo=>Bo.Id===un.value?.Id);Jr&&(Jr.StateRecord=0),Bn()}fn.value=listStateActionCopy.CHANGE_LP,fr.value=!1;let br=await window.axios.get(window.localhost+`ApplicationCompany/Application?ApplicationId=${Fr.ApplicationsId}`).then(Jr=>Jr.data).catch(Jr=>{});if(!br)return fn.value=null,fr.value=!0,{status:!1,notify:{type:"error",message:"Заявка по выбранной потребности не найдена",duration:15e3,title:"Ошибка в поиске заявки"}};an.value=br,Fr.StateRecord=3,await vue.nextTick(),un.value={...Fr},console.log("need ",Fr),Nt?.value.size>1&&(Nt.value.clear(),notifyWarning("Потребность выбрана для редактирования... мультивыбор записей будет сброшен!",3e3,"Внимание!")),Nt?.value.add(un),await vue.nextTick(),Ct.value?.loadData()},IsDisabled:Fr=>Fr.StateRecord===3||[4,5].includes(Fr.StateCopy)},{Name:"Скопировать",Icon:"copy",Action:Fr=>{Vn({...Fr})},IsDisabled:Fr=>Fr.StateRecord===3||[4,5].includes(Fr.StateCopy)},{Name:"Просмотреть",Icon:"eye",Action:async Fr=>{if(un.value?.Id){const Jr=$t.value?.find(Bo=>Bo.Id===un.value?.Id);Jr&&(Jr.StateRecord=0),Bn()}fn.value=null,fr.value=!0;let br=await window.axios.get(window.localhost+`ApplicationCompany/Application?ApplicationId=${Fr.ApplicationsId}`).then(Jr=>Jr.data).catch(Jr=>{});if(!br)return{status:!1,notify:{type:"error",message:"Заявка по выбранной потребности не найдена",duration:15e3,title:"Ошибка в поиске заявки"}};an.value=br,Fr.StateRecord=4,await vue.nextTick(),un.value={...Fr},await vue.nextTick(),Ct.value?.loadData()},IsDisabled:Fr=>Fr.StateRecord===4}]),Fo=vue.ref([{Title:"№",Field:"_rowNumber",Class:"text-center !p-0 w-[50px] min-w-[50px] max-w-[50px]",ClassTitle:"w-[50px] min-w-[50px] max-w-[50px]"},{TitleTemplate:"headerCheckbox",Field:"Id",Template:"checkbox",Class:"text-center !p-0",ClassTitle:"w-[40px] min-w-[40px] max-w-[40px]",filterable:!1,sortable:!1},{Title:"№ заявки/Тип заявки/Период",Field:Fr=>{const br=Fr?.ApplicationsNumber?parseInt(Fr.ApplicationsNumber):"Не указано",Jr=Fr?.Additional!==void 0&&Fr?.Additional!==null?Fr.Additional==="true"||Fr.Additional===!0?"Дополнительная":"Основная":"-",Bo=Fr?.Period?parseInt(Fr.Period):"Не указано";return`${br}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bms-shared-components",
3
- "version": "1.1.72",
3
+ "version": "1.1.74",
4
4
  "description": "Shared Vue 3 components library",
5
5
  "type": "module",
6
6
  "main": "./dist/bms-shared-components.umd.cjs",