bms-shared-components 1.1.57 → 1.1.59
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.
|
@@ -123905,50 +123905,87 @@ const _hoisted_1$r = { class: "w-full h-full absolute top-0 left-0 flex justify-
|
|
|
123905
123905
|
}, PermissionLgot = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-c8a29744"]]), _hoisted_1$p = { class: "flex flex-col gap-3" }, _hoisted_2$j = {
|
|
123906
123906
|
key: 0,
|
|
123907
123907
|
class: "border rounded p-2 bg-slate-100"
|
|
123908
|
-
}, _hoisted_3$e = {
|
|
123908
|
+
}, _hoisted_3$e = {
|
|
123909
123909
|
key: 1,
|
|
123910
|
+
class: "flex justify-end gap-2 py-2"
|
|
123911
|
+
}, _hoisted_4$d = ["title"], _hoisted_5$c = ["title"], _hoisted_6$c = {
|
|
123912
|
+
key: 2,
|
|
123910
123913
|
class: "text-sm text-right text-gray-500"
|
|
123911
123914
|
}, _hoisted_7$b = { class: "w-full h-full absolute top-0 left-0 flex justify-center items-center animate-pulse z-[5000]" }, _hoisted_8$a = { class: "flex flex-col gap-4" }, _hoisted_9$8 = { class: "flex justify-end gap-2" }, _hoisted_10$8 = ["title"], _hoisted_11$7 = { class: "flex gap-4 justify-end" }, _hoisted_12$7 = { class: "flex-1 gap-4" }, _hoisted_13$6 = { 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$v = {
|
|
123912
123915
|
__name: "NewBenefitList",
|
|
123913
123916
|
props: {
|
|
123917
|
+
/**ОБЯЗАТЕЛЬНО! Данные текущего пользователя кто открыл (Id, LpuId, Permissions и т.д.) */
|
|
123914
123918
|
userOpen: {
|
|
123915
123919
|
type: Object,
|
|
123916
123920
|
default: {},
|
|
123917
123921
|
required: !0
|
|
123918
123922
|
},
|
|
123923
|
+
/**ОБЯЗАТЕЛЬНО! Данные пациента, default null, необходим для подробного просмотра данных пациента*/
|
|
123919
123924
|
dataPatient: {
|
|
123920
123925
|
type: {},
|
|
123921
123926
|
default: null,
|
|
123922
123927
|
require: !0
|
|
123923
123928
|
},
|
|
123929
|
+
/** Кастомный хэндлер для события нажания по строке в таблице */
|
|
123924
123930
|
customRowClickHandler: {
|
|
123925
123931
|
type: [Function, null],
|
|
123926
123932
|
default: null
|
|
123927
123933
|
},
|
|
123934
|
+
/** Открыть форму только для просмотра */
|
|
123928
123935
|
infoOnly: {
|
|
123929
123936
|
type: Boolean,
|
|
123930
123937
|
default: !1
|
|
123931
123938
|
},
|
|
123939
|
+
/** НЕ ИСПОЛЬЗУЕТСЯ, но может понадобится */
|
|
123932
123940
|
selectable: {
|
|
123933
123941
|
type: Boolean,
|
|
123934
123942
|
default: !1
|
|
123935
123943
|
},
|
|
123944
|
+
/** Фильтры ФРЛЛО (не понятно зачем) */
|
|
123936
123945
|
frlloFilters: {
|
|
123937
123946
|
type: Object,
|
|
123938
123947
|
default: {}
|
|
123939
123948
|
},
|
|
123949
|
+
/** Определение области где открывается форма(таблица), если Мэйн то будут доп данные по дефолтным столбцам */
|
|
123940
123950
|
isMainViewTable: {
|
|
123941
123951
|
type: Boolean,
|
|
123942
123952
|
default: !1
|
|
123943
123953
|
},
|
|
123954
|
+
/**ОБЯЗАТЕЛЬНО! Название проекта где используется компонент */
|
|
123944
123955
|
nameProject: {
|
|
123945
123956
|
type: String,
|
|
123946
123957
|
default: "WebBMS",
|
|
123947
123958
|
required: !0
|
|
123948
123959
|
},
|
|
123960
|
+
/** Отображать компоненты фильтрации*/
|
|
123949
123961
|
viewFilter: {
|
|
123950
123962
|
type: Boolean,
|
|
123951
123963
|
default: !0
|
|
123964
|
+
},
|
|
123965
|
+
/** Кастомные компоненты фильтрации (переопределение дефолтных)*/
|
|
123966
|
+
filterList: {
|
|
123967
|
+
type: Array,
|
|
123968
|
+
default: () => []
|
|
123969
|
+
},
|
|
123970
|
+
/** Кастомные столбцы таблицы (переопределение дефолтных)*/
|
|
123971
|
+
columnsMainTable: {
|
|
123972
|
+
type: Array,
|
|
123973
|
+
default: () => []
|
|
123974
|
+
},
|
|
123975
|
+
/** Показывать хелпер по льготам*/
|
|
123976
|
+
visibleHelperStateLgota: {
|
|
123977
|
+
type: Boolean,
|
|
123978
|
+
default: !0
|
|
123979
|
+
},
|
|
123980
|
+
/** Показывать кнопку Export в Excel*/
|
|
123981
|
+
visibleExportExcel: {
|
|
123982
|
+
type: Boolean,
|
|
123983
|
+
default: !0
|
|
123984
|
+
},
|
|
123985
|
+
/** Показывать контекстное меню таблицы*/
|
|
123986
|
+
visibleContextTable: {
|
|
123987
|
+
type: Boolean,
|
|
123988
|
+
default: !0
|
|
123952
123989
|
}
|
|
123953
123990
|
},
|
|
123954
123991
|
setup(e, { expose: I }) {
|
|
@@ -124073,6 +124110,8 @@ const _hoisted_1$r = { class: "w-full h-full absolute top-0 left-0 flex justify-
|
|
|
124073
124110
|
}
|
|
124074
124111
|
BenefitProgram((Ir) => xt.value = Ir.map((br) => ({ ...br, Benefits: JSON.parse(br.Benefits) }))), BenefitMap((Ir) => Dt.value = Ir);
|
|
124075
124112
|
const Sn = ["Snils", "Fio", "AttachedMo"], wn = computed(() => {
|
|
124113
|
+
if (N.filterList?.length)
|
|
124114
|
+
return N.filterList;
|
|
124076
124115
|
let Ir = [
|
|
124077
124116
|
{
|
|
124078
124117
|
accessor: "Fio",
|
|
@@ -124356,7 +124395,7 @@ const _hoisted_1$r = { class: "w-full h-full absolute top-0 left-0 flex justify-
|
|
|
124356
124395
|
onSearch: lr
|
|
124357
124396
|
}, null, 8, ["filter-list"])
|
|
124358
124397
|
])) : createCommentVNode("", !0),
|
|
124359
|
-
|
|
124398
|
+
N.visibleHelperStateLgota ? (openBlock(), createElementBlock("div", _hoisted_3$e, [
|
|
124360
124399
|
br[13] || (br[13] = 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)),
|
|
124361
124400
|
cn("getRegister") && !N.infoOnly ? (openBlock(), createBlock(unref(_2), {
|
|
124362
124401
|
key: 0,
|
|
@@ -124390,15 +124429,15 @@ const _hoisted_1$r = { class: "w-full h-full absolute top-0 left-0 flex justify-
|
|
|
124390
124429
|
])]),
|
|
124391
124430
|
_: 1
|
|
124392
124431
|
})) : createCommentVNode("", !0)
|
|
124393
|
-
]),
|
|
124432
|
+
])) : createCommentVNode("", !0),
|
|
124394
124433
|
createVNode(ReSimpleTable, {
|
|
124395
|
-
"enable-xlsx-export": Bt.value,
|
|
124434
|
+
"enable-xlsx-export": Bt.value && N.visibleExportExcel,
|
|
124396
124435
|
data: jt.value,
|
|
124397
|
-
columns: Bt.value ? tr.value : or.value,
|
|
124436
|
+
columns: Bt.value ? N.columnsMainTable?.length || tr.value : or.value,
|
|
124398
124437
|
"page-size": 20,
|
|
124399
124438
|
"enable-page-size-selector": "",
|
|
124400
124439
|
"table-id": "benefitsList",
|
|
124401
|
-
"context-actions": bn,
|
|
124440
|
+
"context-actions": N.visibleContextTable ? bn : null,
|
|
124402
124441
|
"row-color": Dn,
|
|
124403
124442
|
onRowClicked: Vn
|
|
124404
124443
|
}, {
|
|
@@ -124415,7 +124454,7 @@ const _hoisted_1$r = { class: "w-full h-full absolute top-0 left-0 flex justify-
|
|
|
124415
124454
|
}, toDisplayString(qr?.SmoName), 9, _hoisted_5$c)
|
|
124416
124455
|
]),
|
|
124417
124456
|
_: 1
|
|
124418
|
-
}, 8, ["enable-xlsx-export", "data", "columns"]),
|
|
124457
|
+
}, 8, ["enable-xlsx-export", "data", "columns", "context-actions"]),
|
|
124419
124458
|
jt.value.length > 950 ? (openBlock(), createElementBlock("div", _hoisted_6$c, [
|
|
124420
124459
|
createElementVNode("p", null, "Показаны первые ~" + toDisplayString(Math.ceil(jt.value.length / 1e3) * 1e3) + " записей, чтобы найти нужного пациента уточните фильтры", 1)
|
|
124421
124460
|
])) : createCommentVNode("", !0)
|
|
@@ -1299,9 +1299,9 @@ This will fail in production.`);vt=activePinia,vt._s.has(e)||(V?createSetupStore
|
|
|
1299
1299
|
`,wn),wn.data.length>0)V.value.push(wn.data[0]),yt.value=wn.data[0],Dt.value=wn.data[0][J.idField];else{let er={};er[J.idField]="",yt.value=er,Dt.value=""}N("onSelect",{data:yt.value,list:M.value,filteredList:V.value})})}};vue.watch(()=>J.getFirstFromString,()=>{J.getFirstFromString&&(Ft="firstFromString",lr(J.getFirstFromString,"firstFromString",()=>{V.value?.length&&nr(V.value[0])}))},{immediate:!0}),vue.watch(()=>J.modelValue,(Dn,Sn)=>{if(Dn!==Sn&&yt.value&&J.idField in yt.value&&J?.modelValue!==yt.value[J.idField]&&J?.filterField)Bt=!1,Jt(J.modelValue);else if(!J?.modelValue){let wn={};wn[J.idField]="",yt.value=wn,Dt.value=""}}),vue.watch(()=>J.loadBy,(Dn,Sn)=>{let wn=!1;for(let er in Dn)(!Sn||Dn[er]!=Sn[er])&&(wn=!0);wn&&Jt(J.modelValue)},{deep:!0,immediate:!0}),vue.watch(()=>J.newElement,()=>{if(J.newElement){let Dn=!1;J.checkForPush?Dn=J.checkForPush(J.newElement,V.value):Dn=!0,Dn?(V.value.push(J.newElement),N("newElementSuccess")):N("newElementReject")}}),vue.watch(()=>J.deleteElement,()=>{J.devDelete&¬ifyWarning("Удаление этого элемента на сервере пока не доступно.");let Dn;typeof J.deleteElement!="string"?Dn=J.deleteElement[J.idField]:Dn=J.deleteElement,V.value=V.value.filter(er=>er[J.idField]!==Dn);let Sn={};Sn[J.idField]="",yt.value=Sn,Dt.value="";let wn;J?.deleteUrl?wn=J.deleteUrl+"?"+(J.idFromIdField?J.idField:"Id")+"="+Dn:wn=J.url+"?"+(J.idFromIdField?J.idField:"Id")+"="+Dn,N("newData",{data:V.value}),Dn&&!J.devDelete&&window.axios({url:wn,method:"delete"}).then(er=>{er.status===200?notifySuccess("Шаблон удалён."):notifyError$1("При удалении шаблона что-то пошло не так!")})});let Ln=!1;function $n(){if(yt.value&&J.idField in yt.value&&J.modelValue!==yt.value[J.idField]&&J?.modelValue&&!Ln)if(J?.url){Ln=!0;let Dn=J.url;window.axios({url:Dn+"?"+(J.idFromIdField?J.idField:"Id")+"="+J.modelValue,method:"get"}).then(Sn=>{J.devMode&&console.log(`RequestingSelect load on mounted response:
|
|
1300
1300
|
`,Sn);let wn;if(J?.targetField?J.targetField==="object"?wn=[Sn.data]:wn=Sn.data[J.targetField]:wn=Sn.data,wn?.length){let er=J.idFromIdField?J.idField:"Id",or=wn.find(vr=>vr[er]==J.modelValue);V.value.push(or),yt.value=or,Dt.value=or&&er in or?or[er]:null,N("newData",{data:V.value}),N("onSelect",{data:yt.value,list:M.value,filteredList:V.value})}Ln=!1})}else Jt(J.modelValue);else Pt&&J.preload&&(Pt=!1,gr())}function gr(){if(J?.url){V.value=[],M.value=[];for(let Dn of $t.value)pn(J.url+Dn)}else V.value=[],M.value=[],J.apiString.get().then(Dn=>{Ft="withoutString",yn(Dn,"","withoutString",!0)})}return vue.onMounted($n),vue.onUpdated($n),(Dn,Sn)=>(vue.openBlock(),vue.createBlock(_sfc_main$M,{modelValue:Dt.value,"onUpdate:modelValue":Sn[0]||(Sn[0]=wn=>Dt.value=wn),"display-expr":J.displayExpr,data:V.value,searchable:"",onInput:sn,label:J.label,onSelect:nr,onClear:cn,"no-filtering":"","id-field":J.idField,limit:200},{option:vue.withCtx(({item:wn})=>[vue.renderSlot(Dn.$slots,"option",{item:wn})]),_:3},8,["modelValue","display-expr","data","label","id-field"]))}},_sfc_main$I={__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:""}),vt=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 Et({data:Pt}){vt.value="",Pt?.Id?(N("getMKBId",{choosedMKB:Pt.Id}),N("getMKBItem",{choosedMKB:Pt})):(M.value={Id:""},N("getMKBId",{choosedMKB:null}),N("getMKBItem",{choosedMKB:null}))}function Dt(Pt,Nt,Bt){return Pt.Code.indexOf(".")!==-1||Nt.filter(zt=>zt.Code.startsWith(Pt.Code)).length===1&&(Ft(Bt[0])&&Bt.length>2||!Ft(Bt[0])&&Bt.length>1)}function Ft(Pt){return new RegExp("^\\p{L}$","u").test(Pt)}return vue.watch(()=>J.mkbCode,()=>{J.mkbCode||(M.value={Id:""},Et({data:M.value}))}),vue.watch(()=>J.mkbId,(Pt,Nt)=>{Pt?Nt!==Pt&&(M.value={Id:Pt}):(M.value={Id:""},Et({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))}),(Pt,Nt)=>(vue.openBlock(),vue.createBlock(_sfc_main$J,{disabled:J.readOnly,modelValue:M.value.Id,"onUpdate:modelValue":Nt[0]||(Nt[0]=Bt=>M.value.Id=Bt),"display-expr":Bt=>"("+Bt.Code+") "+Bt.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":Dt,params:yt.value,onOnSelect:Et,clearable:""},null,8,["disabled","modelValue","display-expr","api-string","api-id","label","get-first-from-string","params"]))}},_sfc_main$H={__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 vt={label:J.name};return J.type==="select"&&(vt.data=J.list,vt.searchable=!0,vt.clearable=!0,J.idField&&(vt.idField=J.idField),J.display&&(vt.displayExpr=J.display),J.placeholder&&(vt.placeholder=J.placeholder)),J.type==="text"&&(vt.mask=J.mask),vt});return vue.watch(V,()=>{V.value!==J.modelValue&&N("update:modelValue",V.value)}),(vt,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(AA),vue.mergeProps({modelValue:V.value,"onUpdate:modelValue":yt[0]||(yt[0]=Et=>V.value=Et)},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(Zc),vue.mergeProps({modelValue:V.value,"onUpdate:modelValue":yt[1]||(yt[1]=Et=>V.value=Et)},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$M,vue.mergeProps({modelValue:V.value,"onUpdate:modelValue":yt[2]||(yt[2]=Et=>V.value=Et)},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$I,vue.mergeProps({modelValue:V.value,"onUpdate:modelValue":yt[3]||(yt[3]=Et=>V.value=Et)},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$L,vue.mergeProps({modelValue:V.value,"onUpdate:modelValue":yt[4]||(yt[4]=Et=>V.value=Et)},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$N,vue.mergeProps({modelValue:V.value,"onUpdate:modelValue":yt[5]||(yt[5]=Et=>V.value=Et)},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=(AD=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}},AD.MODE=Mode$1,AD);const _sfc_main$G={__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 Ft of J.filterList)Ft?.default&&(V.value[Ft.accessor]=Ft.default);const M=vue.computed(()=>{let Ft={};for(let Pt of J.filterList??[])Pt?.relation?Ft[Pt.accessor]=Pt.relation({filters:J.filterList,values:V.value}):Ft[Pt.accessor]=Pt?.list??null;return Ft}),vt=new ActionLimiter$1(Dt,500,ActionLimiter$1.MODE.DELAY);function yt(){vt.start()}function Et(){V.value={}}function Dt(){N("search",{filters:V.value})}return vue.watch(V,Ft=>{N("update:modelValue",Ft)},{deep:!0}),(Ft,Pt)=>(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$H,{key:Nt,modelValue:V.value[Nt.accessor],"onUpdate:modelValue":Bt=>V.value[Nt.accessor]=Bt,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:Et,delete:"",secondary:"","prepend-icon":"xmark"})],32))}},_sfc_main$F={__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},filterFunction:{type:Function,default:null},filterMkb:{type:Boolean,default:!0}},emits:["getMKBId","getMKBItem","validate"],setup(e,{emit:I}){const N=I;let J=null;const V=e;let M=!0;vue.watch(()=>V.OMC,($t,Ht)=>{$t!==Ht&&!M&&(Ht?(J=yt.value,yt.value={Id:""},N("getMKBId",{choosedMKB:null}),Nt()):J&&Pt({data:J})),M&&(M=!1)});const vt=vue.ref(!1),yt=vue.ref({Id:""}),Et=vue.ref(""),Dt=vue.computed(()=>({_mkb_oplata_param_:V.OMC===null?null:String(!!V.OMC),_mkb_codes_param_:V.filterCodes?.length?V.filterCodes.join(","):null})),Ft=vue.ref({Id:null});function Pt({data:$t}){J=null,Et.value="",$t?.Id?(yt.value=$t,N("getMKBId",{choosedMKB:$t.Id}),Nt($t)):(yt.value={Id:""},N("getMKBId",{choosedMKB:null}),Nt())}function Nt($t={Id:null}){Ft.value.Id!==$t.Id&&($t.Id?(N("getMKBItem",{choosedMKB:$t}),Ft.value=$t):(Ft.value={Id:null},N("getMKBItem",{choosedMKB:null})))}function Bt($t,Ht,jt){return V.filterMkb?["J47","E10","M45"].includes($t.Code)?!0:($t.Code.indexOf(".")!==-1||Ht.filter(Zt=>Zt.Code.startsWith($t.Code)&&Zt.Code.length>3).length===0&&(zt(jt[0])&&jt.length>2||!zt(jt[0])&&jt.length>1))&&(typeof V.filterFunction!="function"||V.filterFunction($t))&&(V.mkbCode!==jt||$t.Code===V.mkbCode):!0}function zt($t){return new RegExp("^\\p{L}$","u").test($t)}return vue.watch(()=>V.mkbCode,()=>{V.mkbCode||(yt.value={Id:""},Pt({data:yt.value}))}),vue.watch(()=>V.mkbId,$t=>{$t?yt.value.Id!==$t&&(yt.value={Id:$t}):(yt.value={Id:""},Pt({data:yt.value}))},{immediate:!0}),vue.watch(()=>yt.value,()=>{V.isValidated&&(yt.value?.Id?(N("validate",{isValid:!0}),Nt(yt.value),vt.value=!0):(N("validate",{isValid:!1}),N("getMKBId",{choosedMKB:""}),vt.value=!1))}),($t,Ht)=>(vue.openBlock(),vue.createBlock(_sfc_main$J,{disabled:V.readOnly,modelValue:yt.value.Id,"onUpdate:modelValue":Ht[0]||(Ht[0]=jt=>yt.value.Id=jt),"display-expr":jt=>"("+jt.Code+") "+jt.Name,"api-string":vue.unref(api$1).Mkb,"api-id":vue.unref(api$1).MkbById,label:V.label,"filter-field":"_search_str_","get-first-from-string":V.mkbCode,"result-filter":Bt,params:Dt.value,onOnSelect:Pt,clearable:""},null,8,["disabled","modelValue","display-expr","api-string","api-id","label","get-first-from-string","params"]))}},_sfc_main$E={__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,vt)=>(vue.openBlock(),vue.createBlock(vue.unref(jc),{format:"",min:e.min,max:e.max,withHours:e.withHours,label:"Дата","model-value":I.value,"onUpdate:modelValue":vt[0]||(vt[0]=yt=>I.value=V(yt))},null,8,["min","max","withHours","model-value"]))}};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,vt)=>M===vt.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,vt,yt)=>vt===yt.findIndex(Et=>Et.PatientBenefitId===M.PatientBenefitId)),V.data.Body=V.data.Body.sort((M,vt)=>new Date(vt.LogDateTime)-new Date(M.LogDateTime)),J){const M=V.data.Body.reduce((vt,yt)=>{const Et=`${yt.Snils}-${yt.BenefitCodeShort}`;return vt[Et]||(vt[Et]=yt),vt},{});return Object.values(M)}return V.data.Body}return{getBenefitListV2:e,getBenefitList:I}},_hoisted_1$w={class:"flex justify-between items-center"},_hoisted_2$q={key:0},_hoisted_3$l={key:1,class:"text-gray-600"},_hoisted_4$j={key:0},_hoisted_5$h={class:"text-sm text-gray-600"},_sfc_main$D={__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(vt=>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$w,[J.label?(vue.openBlock(),vue.createElementBlock("p",_hoisted_2$q,vue.toDisplayString(J.label),1)):(vue.openBlock(),vue.createElementBlock("p",_hoisted_3$l,"Нет имени")),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$j,[vue.createElementVNode("p",_hoisted_5$h,vue.toDisplayString(J.labelLow),1)])):vue.createCommentVNode("",!0)],2))}},ReSimpleOption=_export_sfc(_sfc_main$D,[["__scopeId","data-v-6a702340"]]),_hoisted_1$v={class:"text-sm font-medium text-nowrap"},_hoisted_2$p={key:0,class:"text-red-100"},_hoisted_3$k={key:0,class:"text-xs text-black-35 mb-1 cursor-text"},_hoisted_4$i=["readonly","placeholder","required"],_sfc_main$C={__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),vt=vue.ref(!1),yt=vue.ref(!1),Et=vue.ref(),Dt=vue.ref(null),Ft=new ActionLimiter$1(vn,500,ActionLimiter$1.MODE.DELAY),Pt=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(cn=>cn[J.idField]===V.value)?(Et.value=Ht(J.data.find(cn=>cn[J.idField]===V.value)),M.value=J.data.find(cn=>cn[J.idField]===V.value)):Pt.value.find(cn=>cn[J.idField]===V.value)&&(Et.value=Ht(Pt.value.find(cn=>cn[J.idField]===V.value)),M.value=Pt.value.find(cn=>cn[J.idField]===V.value)))},{immediate:!0});const Bt=vue.computed(()=>{let cn=JSON.parse(JSON.stringify(J.data));return yt.value&&!J.noLocalFiltering&&Et.value&&(cn=cn.filter(sn=>{let pn=Ht(sn);if(J.searchByLowField){const gn=jt(sn);pn+=" "+gn}return pn&&sn&&Et.value?pn.toLowerCase().includes(Et.value.toLowerCase()):!1})),V.value&&V.value!=window.nullGuid&&!yt.value&&(cn.find(sn=>sn[J.idField]===V.value)?cn=cn.sort((sn,pn)=>sn[J.idField]===V.value?-1:pn[J.idField]===V.value?1:0):(M.value&&(cn=[M.value,...cn]),cn.findIndex(sn=>sn[J.idField]===V.value)===-1&&(J.customNoOptionText?notifyError$1(`${J.customNoOptionText} ● ${J.idField}=${V.value}`):notifyError$1(`Не удалось найти опцию с ${J.idField}=${V.value}`)))),cn=cn.splice(0,J.maxOptionCount),cn});function zt(){if(Dt.value){const cn=Dt.value.getBoundingClientRect();Nt.value.left=cn.left,Nt.value.width=cn.width}}function $t(){if(!V.value){Et.value=null,M.value=null,N("clear");return}const cn=J.data.find(sn=>sn[J.idField]===V.value)||Pt.value.find(sn=>sn[J.idField]===V.value)||M.value;cn?(Et.value=Ht(cn),M.value=cn):(Et.value="Нет в списке",M.value=null)}function Ht(cn,sn=J.displayExpr){if(typeof sn=="function")return String(sn(cn));if(typeof sn=="string")return String(cn?.[sn]);if(Array.isArray(sn)){let pn="";for(let gn=0;gn<sn.length;gn++){if(!cn?.[sn[gn]]&&!sn[gn].startsWith("*")){J.devMode&&console.error(`Cant find ${sn[gn]} in record with ${J.idField} = ${cn[J.idField]}`);continue}if(sn[gn].startsWith("*")){const yr=sn[gn].slice(1);pn+=String(yr)}else pn+=String(cn?.[sn[gn]]);gn<sn.length-1&&(pn+=" ")}return pn}return null}function jt(cn){return Ht(cn,J.displayExprLow)}function Kt(cn){if(M.value=cn||null,cn[J.idField]===V.value&&J.clearable){rn();return}vt.value=!1,V.value=cn[J.idField],Et.value=Ht(cn),Pt.value.push(cn),N("onSelectObject",cn),Pt.value.length>J.maxOptionHistoryLength&&(Pt.value=Pt.value.slice(1,Pt.value.length))}function Zt(){J.disabled||(vt.value=!vt.value,zt())}function hn(cn){Dt.value&&!Dt.value.contains(cn.target)&&(vt.value=!1)}vue.onMounted(()=>{document.addEventListener("click",hn),window.addEventListener("resize",zt)}),vue.onBeforeUnmount(()=>{document.removeEventListener("click",hn),window.removeEventListener("resize",zt)});function un(){yt.value=!0,vt.value=!0,zt(),Ft.start()}function yn(){yt.value&&!Et.value?.length&&J.clearable&&rn(),setTimeout(()=>{yt.value=!1},200)}function rn(){V.value=null,Et.value=null,N("onSelectObject",null),N("clear")}function vn(){N("input",Et.value||"")}return(cn,sn)=>{const pn=vue.resolveComponent("PerfectScrollbar");return vue.openBlock(),vue.createBlock(vue.unref(kt),{shown:vt.value,triggers:[],autoHide:!1,noAutoFocus:""},{popper:vue.withCtx(()=>[vue.createVNode(pn,{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(Bt.value,gn=>(vue.openBlock(),vue.createBlock(ReSimpleOption,{onSelect:yr=>Kt(gn),item:gn,selected:gn[J.idField]===V.value,key:gn[J.idField],label:Ht(gn),labelLow:jt(gn),disabled:typeof J.optionDisabled=="function"?J.optionDisabled(gn):!1},null,8,["onSelect","item","selected","label","labelLow","disabled"]))),128)),Bt.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:Dt,onClick:vue.withModifiers(Zt,["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$v,[vue.createTextVNode(vue.toDisplayString(J.label)+" ",1),J.required&&!V.value?(vue.openBlock(),vue.createElementBlock("span",_hoisted_2$p,"*")):vue.createCommentVNode("",!0)]),J.description?(vue.openBlock(),vue.createElementBlock("p",_hoisted_3$k,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:un,onBlur:yn,placeholder:J.placeholder,type:"text","onUpdate:modelValue":sn[0]||(sn[0]=gn=>Et.value=gn),required:J.required},null,40,_hoisted_4$i),[[vue.vModelText,Et.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:rn})):vue.createCommentVNode("",!0),vue.createVNode(vue.unref(Z1),{onClick:sn[1]||(sn[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$u={class:"p-3"},_hoisted_2$o={class:"w-full h-full absolute top-0 left-0 flex justify-center items-center animate-pulse z-[5000]"},_hoisted_3$j={class:"border p-2 rounded"},_hoisted_4$h={class:"grid grid-cols-2 gap-1"},_hoisted_5$g={class:"border p-2 rounded"},_hoisted_6$g={class:"grid grid-cols-2 gap-1"},_hoisted_7$f={class:"flex gap-3"},_hoisted_8$e={class:"flex gap-2 w-full border p-2 rounded-lg"},_hoisted_9$c={key:2,class:"flex flex-col gap-1"},_hoisted_10$b={class:"text-sm border rounded px-3 py-1 bg-gray-100 text-gray-800 text-balance h-[32px]"},_hoisted_11$a={class:"flex gap-3"},_hoisted_12$9={class:"flex gap-3"},_hoisted_13$8={class:"flex justify-end gap-3"},_sfc_main$B={__name:"ApplicationForm",props:{needId:{type:String,default:""},waitRequest:{type:Boolean,default:!1,required:!0},readOnly:{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:{}},modalVisible:{type:Boolean,default:!1},hiddenControl:{type:Boolean,default:!1},additional:{type:Boolean,default:!1},docAppYear:{type:Number,required:!0}},emits:["onSave","onDelete","update:waitRequest"],setup(e,{expose:I,emit:N}){const{getBenefitList:J,getBenefitListV2:V}=useBenefit(),M=e,vt=vue.computed(()=>M.userOpen),yt=N,Et=vue.ref(null),Dt=vue.ref(null),Ft=vue.ref(!1),Pt=vue.computed({get:()=>M.waitRequest,set:fr=>yt("update:waitRequest",fr)}),Nt=vue.computed({get:()=>M.modalVisible,set:fr=>yt("update:modalVisible",fr)}),Bt=vue.ref(M.selectedApplication),zt=vue.ref(M.hiddenControl),$t=vue.ref(M.needId),Ht=Object.values(approvedBenefitProgram),jt=vue.ref(!0),Kt=vue.ref(!1),Zt=vue.ref("Льгота"),hn=vue.computed(()=>!!vt.value.Permissions.find(fr=>["0","1","40"].includes(fr.AccessCode))),un=vue.ref([]),yn=vue.ref([]),rn=vue.ref([]),vn=vue.ref({}),cn=vue.computed(()=>rn.value.find(fr=>fr.Id===wn.value.TemplatePreparatId)),sn=vue.computed(()=>!!cn.value?.Sign),pn=vue.ref(null),gn=vue.computed(()=>[{label:"Только ЖВ",value:!0},{label:"Только НЕ ЖВ",value:!1},{label:"Все",value:null}]),yr=vue.ref(!1),lr=vue.computed(()=>{if(wn.value.ProgramId){let fr=rn.value;noSignPrograms.includes(wn.value.ProgramId)&&(fr=fr.filter(Ca=>Ca.Sign));let _o=Object.keys(programToPreparat).find(Ca=>Ca==wn.value.ProgramId);return _o&&(fr=fr.filter(Ca=>Ca[programToPreparat[_o]])),fr}}),nr=vue.ref([]),Jt=vue.ref([]),Ln=vue.ref([]),$n=vue.ref([]),gr=vue.ref(!1),Dn=vue.ref(!1);vue.onMounted(async()=>{try{if(qr(),await rr(),!vn?.value?.Id){notifyError$1(`Неудалось получить перечень ЛП из шаблона за ${M.docAppYear} год. Пожалуйста, откройте потребность повторно или обратитесь в службу. тех. поддержки!`,15e3,"Ошибка загрузки данных"),yr.value=!0;return}await Sn(),await an(),nr.value=await J({Snils:M.patientSnils})||[],Jt.value=(await V({Snils:M.patientSnils,Monetized:!1,Active:!0,Deleted:!1})).filter(fr=>Ht.includes(fr.BenefitProgram))||[],await BenefitMap(fr=>{Ln.value=fr.filter(_o=>Jt.value.map(Ca=>Ca.BenefitCodeShort).includes(_o.BenefitCodeShort)),$n.value=fr.filter(_o=>nr.value.map(Ca=>Ca.BenefitCodeShort).includes(_o.BenefitCodeShort))}),M.readOnly?yn.value=$n.value:yn.value=Ln.value,lpusWithDivision.includes(vt.value.LpuId)&&br(),xr()}catch(fr){const _o=fr.response?.data?.message||fr.message||"Неизвестная ошибка";notifyError$1(`${_o}. Пожалуйста, откройте потребность повторно`,15e3,"Ошибка загрузки данных")}finally{Nr()}});async function Sn(){un.value=await window.axios.get(window.localhost+"PreparatProgram?BaseProgram=true").then(fr=>fr.data.Body.filter(_o=>_o.BenefitProgramId).map(_o=>({..._o,label:_o.ValidName,Name:_o.ValidName})))}const wn=vue.ref({DateNeed:new Date,Additional:M.additional,Interchangeability:!1});async function er(){if(wn.value.Id){if(Dn.value){notifySuccess("Потребность уже была сохранена. Закройте форму!");return}await Hn().then(async fr=>{wn.value.Id=null,await or()}).catch(fr=>{fr.response.data&¬ifyError$1(fr.response.data)}).finally(()=>{})}}async function or(){if(Dn.value=!1,!!Dt.value.reportValidity()){if(wn.value.NprNumber||wn.value.NprDate?wn.value.Npr=!0:wn.value.Npr=!1,!wn.value.LgotaId){notifyError$1("Льгота не выбрана");return}if(!wn.value.TemplatePreparatId){notifyError$1("Препарат не выбран");return}if(!sn.value&&(!wn.value.NumberVK||!wn.value.DateVK)){notifyError$1("Для выбранного препарата требуется заполнить номер и дату ВК");return}if(wn.value.NprNumber&&!wn.value.NprDate){notifyError$1("Заполните дату НПР для указанного номера НПР");return}if(wn.value.NprDate&&!wn.value.NprNumber){notifyError$1("Заполните номер НПР для указанной даты НПР");return}if(!wn.value.ProgramId){notifyError$1("Программа не выбрана");return}if(lpusWithDivision.includes(vt.value.LpuId)&&!wn.value.DivisionId){notifyError$1("Отделение не выбрано");return}if(Kt.value){notifyError$1("Невозможно сохранить потребность при неактивной льготе");return}gr.value!=!0&&(qr(),gr.value=!0,wn.value.LpuId=vt.value.LpuId,wn.value.EmployeePostId=vt.value.Id,wn.value.PatientId=M.patientId,wn.value.CountMonth=Number(wn.value.CountMonth),delete wn.value.MkbName,delete wn.value.Mnn,delete wn.value.MaxPriceWithVat,delete wn.value.MkbCode,delete wn.value.FullName,delete wn.value.DivisionName,delete wn.value.EmployeePostFIO,delete wn.value.ApplicationsNumber,delete wn.value.ApplicationsDeleted,delete wn.value.ApplicationsId,delete wn.value.CreateDateTime,delete wn.value.ApplicationsStatus,delete wn.value.ApplicationsComment,delete wn.value.Period,await window.axios({url:window.localhost+`ApplicationCompany/PatientNeeds?Id=${wn.value.Id??""}${"&AppDocId="+vn.value.Id}`,method:"post",data:wn.value}).then(async fr=>{wn.value.Id||(wn.value.Id=fr.data.Id),notifySuccess("Сохранено"),yt("onSave"),gr.value=!1,Dn.value=!0}).catch(fr=>{fr.response.data&¬ifyError$1(fr.response.data),gr.value=!1}).finally(()=>{Nr()}))}}async function vr(){qr(),await window.axios.delete(window.localhost+`ApplicationCompany/PatientNeeds?PatientNeedId=${wn.value.Id}`).then(async()=>{await xr(),notifySuccess("Удалено"),yt("onDelete"),Nt.value=!1}).catch(fr=>{fr?.response?.data?.Status?notifyError$1(fr.response.data.Status):notifyError$1("Произошла ошибка при удалении")}).finally(()=>Nr())}async function Hn(){return await window.axios.delete(window.localhost+`ApplicationCompany/PatientNeeds?PatientNeedId=${wn.value.Id}`).catch(fr=>(fr.response.data.Status&¬ifyError$1(fr.response.data.Status),"error"))}async function rr(){const fr=await window.axios.get(window.localhost+"ApplicationCompany/AppDocuments").then(_o=>_o.data);M.readOnly?vn.value=fr.filter(_o=>_o.Name.includes(`${M.docAppYear}`))[0]??[]:vn.value=fr.filter(_o=>!_o.Deleted&&_o.Name.includes(`${M.docAppYear}`))[0]??[]}async function an(){const fr=await window.axios.get(window.localhost+`ApplicationCompany/TemplatePreparatList?DocumentId=${vn.value.Id}`).then(_o=>_o.data);if(M.readOnly)rn.value=fr;else{const Ca=fr.filter(Da=>!Da.Deleted).filter(Da=>!Da.DeletedDate);rn.value=Ca}}async function xr(){M.needId&&(wn.value=await window.axios.get(window.localhost+`ApplicationCompany/PatientNeeds?Id=${M.needId}`).then(fr=>fr.data[0]))}vue.watch(()=>pn.value,()=>{wn.value.TemplatePreparatId=null}),vue.watch(()=>wn.value.LgotaId,async fr=>{if(fr==null){wn.value.Mkb10Id=null,wn.value.ProgramId=null,wn.value.TemplatePreparatId=null,Ft.value=!1;return}let _o=Jt.value.find(Ca=>Ca.BenefitCodeShort==yn.value.find(Da=>Da.Id==wn.value.LgotaId)?.BenefitCodeShort)?.MkbId||wn.value.Mkb10Id;["Заявка одобрена","Заявка отклонена"].includes(wn.value.ApplicationsStatus)||Jt.value.some(Da=>Da.BenefitCodeShort==yn.value.find(qu=>qu.Id==wn.value.LgotaId)?.BenefitCodeShort)||(yn.value=$n.value,_o=nr.value.find(Da=>Da.BenefitCodeShort==yn.value.find(qu=>qu.Id==wn.value.LgotaId)?.BenefitCodeShort)?.MkbId||wn.value.Mkb10Id,Et.value?.$el?.style?.setProperty("background-color","#f9c7c8"),Zt.value="Льгота неактивна",Kt.value=!0,notifyError$1("Льгота неактивна!",15e3,"ВНИМАНИЕ!"),notifyWarning("Указанная льгота в потребности в данный момент является неактивной! Необходимо принять меры по актуализации потребности(пересоздать) или льготы(восстановить)!",15e3,"Уведомление системы")),wn.value.ProgramId=un.value.find(Ca=>Ca.BenefitProgramId==yn.value.find(Da=>Da.Id==wn.value.LgotaId)?.ProgramId)?.Id,_o?(wn.value.Mkb10Id=_o,Ft.value=!0):M.readOnly||(wn.value.Mkb10Id=null,Ft.value=!1)}),vue.watch([()=>wn.value.TemplatePreparatId,()=>lr.value],()=>{if(!wn.value.ProgramId||!wn.value.TemplatePreparatId)return;const fr=rn.value?.find(rd=>rd.Id===wn.value.TemplatePreparatId),_o=un.value?.find(rd=>rd.Id===wn.value.ProgramId)?.ProgramName??"Неизвестная программа";let Ca=lr.value,Da=Ca.some(rd=>rd.Id===wn.value.TemplatePreparatId),qu=(fr?`Неверно выбранный препарат ${fr.Mnn} ${fr.FullName}`:"Не найден препарат в справочнике").trimStart().trimEnd();!Da&&Ca.length>0&&(notifyError$1(`${qu} для программы ${_o}`),M.readOnly||notifyWarning("Выберите заново препарат!"),wn.value.TemplatePreparatId=null)}),vue.watch(()=>wn.value.Id,fr=>{jt.value=!fr});const hr=vue.computed(()=>wn.value.NumberVK&&wn.value.DateVK);function wr(fr){return fr.CodeOKPD2=="1.2.643.5.1.13.13.99.2.1212"&&fr.CodeATX=="Лекарственные препараты и специализированные продукты лечебного питания"?fr.TradeName:""}function Fr(fr){const _o=[];return fr.Mnn&&_o.push(fr.Mnn),fr.FullName&&_o.push(fr.FullName),fr.MaxPriceWithVat&&_o.push(`(Цена: ${fr.MaxPriceWithVat??"не указана"})`),fr.CountInPackage&&_o.push(`(в уп-ке: ${fr.CountInPackage??"не указано"})`),typeof fr.Sign=="boolean"&&_o.push(`(${fr.Sign?"ЖВ":"Не ЖВ"})`),_o.join(" ")}const Ir=vue.ref([]);async function br(){Ir.value=await window.axios.get(window.localhost+`Frmo?LpuId=${vt.value.LpuId}&TypeCode=18`).then(fr=>fr.data)}async function qr(){Pt.value=!0,await vue.nextTick()}function Nr(){Pt.value=!1}return I({save:or}),(fr,_o)=>(vue.openBlock(),vue.createBlock(vue.unref(Ps),{size:"2xl",title:`${Bt.value?.Additional??wn.value.Additional?"Дополнительная":"Основная"} заявка${Bt.value?.Number?` № ${Bt.value.Number}`:""} ${Dn.value?"(Сохранено)":""}`,modelValue:Nt.value,"onUpdate:modelValue":_o[21]||(_o[21]=Ca=>Nt.value=Ca),onKeydown:_o[22]||(_o[22]=vue.withKeys(Ca=>M.readOnly?Ca.preventDefault():null,["tab"]))},{default:vue.withCtx(()=>[yr.value?(vue.openBlock(),vue.createElementBlock("div",{key:0,onKeydown:_o[0]||(_o[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_1$u,[vue.withDirectives(vue.createElementVNode("div",_hoisted_2$o,[..._o[23]||(_o[23]=[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,Pt.value]]),vue.createElementVNode("fieldset",null,[vue.createElementVNode("form",{ref_key:"formRef",ref:Dt,class:"flex flex-col gap-1"},[vt.value.LpuId=="e41d5246-7a49-4b5a-a306-00ef5125d3d8"?(vue.openBlock(),vue.createBlock(vue.unref(Zc),{key:0,label:"Дополнительная заявочная кампания",modelValue:wn.value.Additional,"onUpdate:modelValue":_o[1]||(_o[1]=Ca=>wn.value.Additional=Ca)},null,8,["modelValue"])):vue.createCommentVNode("",!0),vue.createVNode(_sfc_main$E,{label:"Дата заявки",modelValue:wn.value.DateNeed,"onUpdate:modelValue":_o[2]||(_o[2]=Ca=>wn.value.DateNeed=Ca),disabled:""},null,8,["modelValue"]),vue.createElementVNode("div",_hoisted_3$j,[_o[24]||(_o[24]=vue.createElementVNode("p",{class:"font-semibold text-sm"},"ВК",-1)),_o[25]||(_o[25]=vue.createElementVNode("hr",null,null,-1)),vue.createElementVNode("div",_hoisted_4$h,[vue.createVNode(vue.unref(AA),{label:"Номер ВК",modelValue:wn.value.NumberVK,"onUpdate:modelValue":_o[3]||(_o[3]=Ca=>wn.value.NumberVK=Ca),mask:"00000000000",tokens:"0:\\d:optional",required:!sn.value,disabled:M.readOnly},null,8,["modelValue","required","disabled"]),vue.createVNode(_sfc_main$E,{label:"Дата ВК",modelValue:wn.value.DateVK,"onUpdate:modelValue":_o[4]||(_o[4]=Ca=>wn.value.DateVK=Ca),required:!sn.value,disabled:M.readOnly},null,8,["modelValue","required","disabled"])])]),vue.createElementVNode("div",_hoisted_5$g,[_o[26]||(_o[26]=vue.createElementVNode("p",{class:"font-semibold text-sm"},"НПР",-1)),_o[27]||(_o[27]=vue.createElementVNode("hr",null,null,-1)),vue.createElementVNode("div",_hoisted_6$g,[vue.createVNode(vue.unref(AA),{label:"Номер НПР",modelValue:wn.value.NprNumber,"onUpdate:modelValue":_o[5]||(_o[5]=Ca=>wn.value.NprNumber=Ca),mask:"00000000000",tokens:"0:\\d:optional",required:!!wn.value.NprDate,disabled:M.readOnly},null,8,["modelValue","required","disabled"]),vue.createVNode(_sfc_main$E,{label:"Дата НПР",modelValue:wn.value.NprDate,"onUpdate:modelValue":_o[6]||(_o[6]=Ca=>wn.value.NprDate=Ca),required:!!wn.value.NprNumber,disabled:M.readOnly},null,8,["modelValue","required","disabled"])])]),vue.unref(lpusWithDivision).includes(vt.value.LpuId)?(vue.openBlock(),vue.createBlock(_sfc_main$M,{key:1,data:Ir.value,label:"Отделение",modelValue:wn.value.DivisionId,"onUpdate:modelValue":_o[7]||(_o[7]=Ca=>wn.value.DivisionId=Ca),required:"",clearable:"",disabled:M.readOnly},null,8,["data","modelValue","disabled"])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_7$f,[vue.createVNode(_sfc_main$M,{ref_key:"fieldLgota",ref:Et,label:Zt.value,modelValue:wn.value.LgotaId,"onUpdate:modelValue":_o[8]||(_o[8]=Ca=>wn.value.LgotaId=Ca),data:yn.value,"display-expr":Ca=>"("+Ca.BenefitCodeShort+") "+Ca.BenefitNameLong,required:"",clearable:"",disabled:!jt.value},null,8,["label","modelValue","data","display-expr","disabled"]),vue.createVNode(_sfc_main$M,{required:"",label:"Программа",modelValue:wn.value.ProgramId,"onUpdate:modelValue":_o[9]||(_o[9]=Ca=>wn.value.ProgramId=Ca),data:un.value,disabled:""},null,8,["modelValue","data"])]),vue.createElementVNode("div",_hoisted_8$e,[vue.createVNode(vue.unref(_v1),{label:"Выбор признака ЛП при поиске в поле [Препарат]",disabled:M.readOnly,modelValue:pn.value,"onUpdate:modelValue":_o[10]||(_o[10]=Ca=>pn.value=Ca)},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(gn.value,Ca=>(vue.openBlock(),vue.createBlock(vue.unref(Av1),{value:Ca.value,label:Ca.label,disabled:e.readOnly},null,8,["value","label","disabled"]))),256))]),_:1},8,["disabled","modelValue"])]),vue.createVNode(_sfc_main$C,{required:"",label:"Препарат",modelValue:wn.value.TemplatePreparatId,"onUpdate:modelValue":_o[11]||(_o[11]=Ca=>wn.value.TemplatePreparatId=Ca),data:lr.value?.filter(Ca=>pn.value===null?!0:Ca.Sign===pn.value)||[],"display-expr":Fr,"display-expr-low":wr,searchByLowField:"",disabled:!wn.value.ProgramId||M.readOnly,clearable:""},null,8,["modelValue","data","disabled"]),hr.value?(vue.openBlock(),vue.createElementBlock("div",_hoisted_9$c,[_o[28]||(_o[28]=vue.createElementVNode("p",{class:"text-sm font-medium"},"Торговое наименование",-1)),vue.createElementVNode("p",_hoisted_10$b,vue.toDisplayString(rn.value.find(Ca=>Ca.Id==wn.value.TemplatePreparatId)?.TradeName),1)])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_11$a,[vue.createVNode(vue.unref(Zc),{label:"Взаимозаменяемость",modelValue:wn.value.Interchangeability,"onUpdate:modelValue":_o[12]||(_o[12]=Ca=>wn.value.Interchangeability=Ca),disabled:M.readOnly},null,8,["modelValue","disabled"]),vue.createCommentVNode("",!0)]),vue.createVNode(_sfc_main$F,{label:"Диагноз",modelValue:wn.value.Mkb10Id,"onUpdate:modelValue":_o[14]||(_o[14]=Ca=>wn.value.Mkb10Id=Ca),required:"",clearable:"",disabled:Ft.value||M.readOnly},null,8,["modelValue","disabled"]),vue.createVNode(vue.unref(s$),{label:"Примечание",modelValue:wn.value.Comment,"onUpdate:modelValue":_o[15]||(_o[15]=Ca=>wn.value.Comment=Ca),readonly:M.readOnly},null,8,["modelValue","readonly"]),vue.createElementVNode("div",_hoisted_12$9,[vue.createVNode(vue.unref(AA),{label:"Кол-во упаковок на 1 месяц",mask:"0.99",tokens:"0:\\d:multiple|9:\\d:optional",modelValue:wn.value.CountMonth,"onUpdate:modelValue":_o[16]||(_o[16]=Ca=>wn.value.CountMonth=Ca),disabled:M.readOnly},null,8,["modelValue","disabled"]),vue.createVNode(vue.unref(a$),{label:"Кол-во упаковок на 1 год",min:1,modelValue:wn.value.CountYear,"onUpdate:modelValue":_o[17]||(_o[17]=Ca=>wn.value.CountYear=Ca),disabled:M.readOnly},null,8,["modelValue","disabled"])])],512)])])]),footer:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_13$8,[$t.value&&!zt.value?(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:0,delete:"",onClick:_o[18]||(_o[18]=Ca=>vr($t.value)),disabled:!hn.value||e.readOnly||yr.value,loading:Pt.value},{default:vue.withCtx(()=>[..._o[29]||(_o[29]=[vue.createTextVNode("Удалить",-1)])]),_:1},8,["disabled","loading"])):vue.createCommentVNode("",!0),zt.value?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:1,primary:"",onClick:_o[19]||(_o[19]=Ca=>$t.value?er():or()),loading:Pt.value,disabled:e.readOnly||yr.value},{default:vue.withCtx(()=>[..._o[30]||(_o[30]=[vue.createTextVNode("Сохранить",-1)])]),_:1},8,["loading","disabled"])),vue.createVNode(vue.unref(_2),{onClick:_o[20]||(_o[20]=Ca=>Nt.value=!1)},{default:vue.withCtx(()=>[..._o[31]||(_o[31]=[vue.createTextVNode("Закрыть",-1)])]),_:1})])]),_:1},8,["title","modelValue"]))}},_hoisted_1$t=["id"],_hoisted_2$n={key:0,class:"flex justify-end mb-1 flex-none"},_hoisted_3$i={class:"min-h-0 overflow-hidden"},_hoisted_4$g={class:"re-table"},_hoisted_5$f={key:0,class:"text-right"},_hoisted_6$f={class:"flex flex-col"},_hoisted_7$e=["onClick"],_hoisted_8$d={class:"flex flex-col gap-0.5 w-[600px]"},_hoisted_9$b={class:"text-sm text-slate-500 text-center"},_hoisted_10$a={open:"",class:"px-1"},_hoisted_11$9={class:"px-1"},_hoisted_12$8={class:"rs-table-btn"},_hoisted_13$7={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$2={key:1},_hoisted_29$2=["onClick"],_hoisted_30$2={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={class:"mb-3"},_hoisted_37={class:"border rounded p-3 bg-gray-50"},_hoisted_38=["onDragstart","onDrop"],_hoisted_39={class:"flex items-center gap-2"},_hoisted_40={class:"text-sm font-medium"},_hoisted_41={class:"flex items-center gap-1"},_hoisted_42=["onClick"],_hoisted_43=["onClick"],_hoisted_44={class:"flex justify-end gap-2"},_hoisted_45={class:"flex-none pagination-wrapper"},_hoisted_46={class:"flex items-center gap-4"},_hoisted_47={key:0,class:"pagination"},_hoisted_48=["onClick"],_hoisted_49={key:1,class:"flex items-center gap-2"},_hoisted_50={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$A={__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,vt=vue.useModel(e,"sortDirection"),yt=vue.useModel(e,"sortColumnIndex"),Et=vue.ref(""),Dt=vue.ref({}),Ft=vue.ref({}),Pt=vue.ref({}),Nt=vue.ref(!1),Bt=vue.ref([]),zt=vue.ref(null),$t=vue.ref(M.pageSize);vue.watch(()=>M.pageSize,()=>{$t.value=M.pageSize},{immediate:!0});function Ht(){try{const qo=JSON.parse(localStorage.getItem(STORAGE_KEY_ALL_HIDDEN)||"{}"),Uo=JSON.parse(localStorage.getItem(STORAGE_KEY_ALL_WIDTHS)||"{}"),ku=JSON.parse(localStorage.getItem(STORAGE_KEY_COLUMN_ORDER)||"{}");qo[M.tableId]&&(gn.value=qo[M.tableId]),Uo[M.tableId]&&(rn.value=Uo[M.tableId],Kt()),ku[M.tableId]&&mf(ku[M.tableId])}catch(qo){console.error("Ошибка при загрузке состояния таблицы:",qo)}}function jt(){try{const qo=JSON.parse(localStorage.getItem(STORAGE_KEY_ALL_HIDDEN)||"{}"),Uo=JSON.parse(localStorage.getItem(STORAGE_KEY_ALL_WIDTHS)||"{}"),ku=JSON.parse(localStorage.getItem(STORAGE_KEY_PAGE_SIZE)||"{}"),Hl=JSON.parse(localStorage.getItem(STORAGE_KEY_COLUMN_ORDER)||"{}");Object.keys(gn.value).length?qo[M.tableId]=gn.value:delete qo[M.tableId],Object.keys(rn.value).length?Uo[M.tableId]=rn.value:delete Uo[M.tableId],ku[M.tableId]=$t.value,Bt.value.length>0?Hl[M.tableId]=Bt.value.map(bd=>bd.originalIndex):delete Hl[M.tableId],localStorage.setItem(STORAGE_KEY_ALL_HIDDEN,JSON.stringify(qo)),localStorage.setItem(STORAGE_KEY_ALL_WIDTHS,JSON.stringify(Uo)),localStorage.setItem(STORAGE_KEY_PAGE_SIZE,JSON.stringify(ku)),localStorage.setItem(STORAGE_KEY_COLUMN_ORDER,JSON.stringify(Hl))}catch(qo){console.error("Ошибка при сохранении состояния таблицы:",qo)}}async function Kt(){if(await vue.nextTick(),!M.tableId){console.log("Не указан идентификатор таблицы",M.columns),notifyError$1("Не указан идентификатор таблицы");return}const qo=document.getElementById(`table-${M.tableId}`);if(!qo)return;const Uo=qo.querySelector(".re-table");if(!Uo)return;const ku=Uo.querySelectorAll("thead th");Object.entries(rn.value).forEach(([Hl,bd])=>{const To=ku[parseInt(Hl)];To&&bd&&(To.style.width=`${bd}px`,To.style.minWidth=`${bd}px`)})}vue.onMounted(()=>{_o(),Ht(),document.addEventListener("click",Fr),document.addEventListener("keydown",Ir)});const Zt=vue.useModel(e,"page"),hn=vue.ref(!1),un=vue.ref({x:"0px",y:"0px"}),yn=vue.ref(null),rn=vue.ref({});let vn=!1,cn=null,sn=0,pn=0;const gn=vue.ref({}),yr=vue.ref(!1);let lr=vue.ref(null);function nr(qo){vn=!0,cn=qo.target.parentElement,sn=qo.pageX,pn=cn.offsetWidth,document.addEventListener("mousemove",Jt),document.addEventListener("mouseup",Ln),qo.preventDefault()}function Jt(qo){if(!vn)return;const Uo=pn+(qo.pageX-sn);if(Uo>=50){cn.style.width=`${Uo}px`,cn.style.minWidth=`${Uo}px`;const ku=document.getElementById(`table-${M.tableId}`);if(!ku)return;const Hl=ku.querySelector(".re-table");if(!Hl)return;const bd=Hl.querySelectorAll("thead th"),To=Array.from(bd).indexOf(cn);To!==-1&&(rn.value[To]=Uo,jt())}}function Ln(){vn=!1,document.removeEventListener("mousemove",Jt),document.removeEventListener("mouseup",Ln)}function $n(qo){const Uo=document.getElementById(`table-${M.tableId}`);if(!Uo)return;const ku=Uo.querySelector(".re-table");if(!ku)return;const bd=ku.querySelectorAll("thead th")[qo];bd&&(bd.style.width="",bd.style.minWidth="120px",delete rn.value[qo],jt())}vue.onUnmounted(()=>{document.removeEventListener("mousemove",Jt),document.removeEventListener("mouseup",Ln),document.removeEventListener("click",Fr),jt()});const gr=vue.computed(()=>{let qo=[...M.data];for(const Uo in V.value)V.value[Uo]&&(typeof Dn.value[Uo]?.Field=="function"?qo=qo.filter(ku=>String(Dn.value[Uo].Field(ku))?.toLowerCase().indexOf(V.value[Uo]?.toLowerCase())>-1):qo=qo.filter(ku=>String(ku[Dn.value[Uo].Field])?.toLowerCase().indexOf(V.value[Uo]?.toLowerCase())>-1));for(const Uo in Dt.value)Dt.value[Uo]&&(qo=qo.filter(ku=>typeof Dn.value[Uo]?.Field=="function"?Dt.value[Uo].includes(Dn.value[Uo].Field(ku)):Dt.value[Uo].includes(ku[Dn.value[Uo].Field])));for(const Uo in Pt.value)Pt.value[Uo]&&(qo=qo.filter(ku=>{let Hl;return typeof Dn.value[Uo]?.Field=="function"?Hl=Dn.value[Uo].Field(ku):Hl=ku[Dn.value[Uo].Field],Hl==null||Hl===""||typeof Hl=="string"&&Hl.trim()===""}));return yt.value>=0&&vt.value&&(qo=qo.sort((Uo,ku)=>typeof Dn.value[yt.value].Field=="function"?typeof Dn.value[yt.value].SortMethod=="function"?Dn.value[yt.value].SortMethod(Uo,ku):String(Dn.value[yt.value].Field(Uo))>String(Dn.value[yt.value].Field(ku))?1:-1:typeof Dn.value[yt.value].SortMethod=="function"?Dn.value[yt.value].SortMethod(Uo,ku):String(Uo[Dn.value[yt.value].Field])>String(ku[Dn.value[yt.value].Field])?1:-1),vt.value==="desc"&&(qo=qo.reverse())),qo}),Dn=vue.computed(()=>{let qo=M.columns.filter(Uo=>!gn.value[Uo.Index]);return Bt.value.length>0&&(qo=Bt.value.map(Uo=>qo.find((ku,Hl)=>Hl===Uo.originalIndex))),qo}),Sn=vue.computed(()=>M.contextActions.filter(qo=>typeof qo.IsVisible=="function"?qo.IsVisible(yn.value):!0)),wn=vue.computed(()=>{if(M.customPagination)return M.data;const qo=(Zt.value-1)*parseInt($t.value);return gr.value.slice(qo,qo+parseInt($t.value))}),er=vue.computed(()=>M.customPagination?Math.ceil(M.recordTotal/parseInt($t.value)):Math.ceil(gr.value.length/parseInt($t.value))),or=vue.computed(()=>er.value>5?Zt.value<=3?[1,2,3,4,5,"...",er.value]:Zt.value>=er.value-2?[1,"...",er.value-4,er.value-3,er.value-2,er.value-1,er.value]:[1,"...",Zt.value-2,Zt.value-1,Zt.value,Zt.value+1,Zt.value+2,"...",er.value]:Array.from({length:er.value},(qo,Uo)=>Uo+1)),vr=vue.computed(()=>M.customPagination?M.recordTotal:gr.value.length);vue.watch(()=>M.data,()=>{M.customPagination||(Zt.value=1,_o())}),vue.watch(()=>Dn.value,(qo,Uo)=>{(!Uo||qo.length!==Uo.length||!qo.every((ku,Hl)=>ku.Title===Uo[Hl].Title))&&(V.value={},gn.value={},rn.value={},jt(),_o(),br(null,null),Dt.value={},Pt.value={})},{deep:!0}),vue.watch(()=>gr.value.length,()=>{M.customPagination||(Zt.value=1)}),vue.watch($t,()=>{Zt.value=1,jt()});function Hn(){if(gr.value.length===0){notifyError$1("Нет данных для экспорта");return}let qo=[{sheet:"Лист 1",columns:M.columns.map(ku=>({label:ku.Title,value:Hl=>{let bd="";return typeof ku.Field=="function"?bd=ku.Field(Hl):bd=Hl[ku.Field],ku.LowField&&(typeof ku.LowField=="function"?bd+=` (${ku.LowField(Hl)})`:Hl[ku.LowField]&&(bd+=` (${Hl[ku.LowField]})`)),bd}})),content:gr.value}],Uo={fileName:"Выгрузка данных от "+hooks().format("L HH:mm:ss"),extraLength:3,writeMode:"writeFile"};xlsx(qo,Uo)}function rr(qo,Uo){un.value={x:qo.pageX+"px",y:qo.pageY+"px"},yn.value=Uo,hn.value=!0}function an(){yn.value=null,hn.value=!1}function xr(qo,Uo){if(yr.value){wr();return}un.value={x:qo.pageX,y:qo.pageY},lr.value=Uo,yr.value=!0,hn.value=!1}function hr(qo){if(!gn.value[qo]&&Dn.value.length-Object.values(gn.value).filter(Boolean).length<=1){notifyError$1("Должен быть виден хотя бы один столбец");return}gn.value[qo]=!gn.value[qo],jt()}function wr(){yr.value=!1,lr.value=null}function Fr(qo){const Uo=document.getElementById("headerContextMenuId");Uo&&!Uo.contains(qo.target)&&!qo.target.closest(".header-filter-activator")&&wr()}function Ir(qo){qo.key==="Escape"&&yr.value&&wr()}function br(qo,Uo){yt.value===qo&&vt.value===Uo?(yt.value=null,vt.value=null):(yt.value=qo,vt.value=Uo)}function qr(qo){return yt.value===qo||V.value[qo]||Dt.value[qo]?.length>0||Pt.value[qo]}function Nr(){gn.value={},jt()}function fr(qo){let Uo=Dt.value[lr.value]||[];Uo.includes(qo)?Uo=Uo.filter(ku=>ku!==qo):Uo.push(qo),Dt.value[lr.value]=Uo,Uo.length===0&&delete Dt.value[lr.value]}function _o(){Ft.value={},Dn.value.forEach((qo,Uo)=>{Ft.value[Uo]=[],M.data.forEach(ku=>{let Hl=Ft.value[Uo]||[];typeof qo.Field=="function"?Hl.push(qo.Field(ku)):Hl.push(ku[qo.Field]),Ft.value[Uo]=Hl}),Ft.value[Uo]=[...new Set(Ft.value[Uo])],Ft.value[Uo].sort()})}function Ca(qo){if(!Ft.value[qo])return[];let Uo=[...Ft.value[qo]];return Uo=Uo.filter(ku=>ku&&String(ku).toLowerCase().includes(Et.value)),Uo}function Da(qo){Dt.value[qo]=Ft.value[qo]}function qu(qo){Pt.value[qo]=!Pt.value[qo],Pt.value[qo]||delete Pt.value[qo]}function rd(qo){let Uo=!1;hn.value&&(an(),Uo=!0),yr.value&&(wr(),Uo=!0),!Uo&&J("rowClicked",qo)}function al(){(Bt.value.length>0?Bt.value:null)||(Bt.value=Dn.value.map((Uo,ku)=>({originalIndex:ku,displayIndex:ku,title:Uo.Title}))),Nt.value=!0,wr()}function pd(){Nt.value=!1}function Za(qo,Uo){zt.value=Uo,qo.dataTransfer.effectAllowed="move"}function vu(qo,Uo){if(zt.value===null||zt.value===Uo)return;const ku=Bt.value[zt.value],Hl=[...Bt.value];Hl.splice(zt.value,1),Hl.splice(Uo,0,ku),Hl.forEach((bd,To)=>{bd.displayIndex=To}),Bt.value=Hl,zt.value=null}function jo(qo,Uo){if(Uo==="up"&&qo>0){const ku=Bt.value[qo];Bt.value[qo]=Bt.value[qo-1],Bt.value[qo-1]=ku,Bt.value[qo].displayIndex=qo,Bt.value[qo-1].displayIndex=qo-1}else if(Uo==="down"&&qo<Bt.value.length-1){const ku=Bt.value[qo];Bt.value[qo]=Bt.value[qo+1],Bt.value[qo+1]=ku,Bt.value[qo].displayIndex=qo,Bt.value[qo+1].displayIndex=qo+1}}function Xo(){Bt.value=M.columns.map((qo,Uo)=>({originalIndex:Uo,displayIndex:Uo,title:qo.Title}))}function ad(){const qo=Bt.value.map(Uo=>Uo.originalIndex);try{const Uo=JSON.parse(localStorage.getItem(STORAGE_KEY_COLUMN_ORDER)||"{}");Uo[M.tableId]=qo,localStorage.setItem(STORAGE_KEY_COLUMN_ORDER,JSON.stringify(Uo))}catch(Uo){console.error("Ошибка при сохранении порядка столбцов:",Uo)}pd()}function mf(qo){if(!qo||!Array.isArray(qo))return;const Uo=qo.filter(ku=>ku>=0&&ku<M.columns.length);Uo.length===M.columns.length&&(Bt.value=Uo.map((ku,Hl)=>({originalIndex:ku,displayIndex:Hl,title:M.columns[ku].Title})))}return I({exportToXlsx:Hn,filteredData:gr,showOnlyEmpty:Pt,filterByValue:Dt,filterOption:V,saveTableState:jt}),(qo,Uo)=>{const ku=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$n,[vue.createVNode(vue.unref(_2),{onClick:Hn,prependIcon:"file-arrow-down"},{default:vue.withCtx(()=>[...Uo[11]||(Uo[11]=[vue.createTextVNode("Экспорт в Excel",-1)])]),_:1})])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_3$i,[vue.createVNode(ku,{class:vue.normalizeClass(["h-full pb-4",M.tableClass]),options:{wheelPropagation:M.wheelPropagation}},{default:vue.withCtx(()=>[vue.createElementVNode("table",_hoisted_4$g,[vue.createElementVNode("thead",{class:vue.normalizeClass({sticky:M.stickyHeader})},[vue.createElementVNode("tr",null,[M.numbering?(vue.openBlock(),vue.createElementBlock("th",_hoisted_5$f,"№")):vue.createCommentVNode("",!0),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(Dn.value,(Hl,bd)=>vue.withDirectives((vue.openBlock(),vue.createElementBlock("th",{class:"min-w-[120px] relative",key:Hl.Title},[vue.createVNode(vue.unref(kt),{shown:yr.value&&vue.unref(lr)!==null&&bd===vue.unref(lr),triggers:[],autoHide:!1,noAutoFocus:""},{popper:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_8$d,[vue.createElementVNode("p",_hoisted_9$b,vue.toDisplayString(Dn.value[vue.unref(lr)]?.Title),1),vue.createVNode(vue.unref(zv1)),vue.createElementVNode("p",{class:vue.normalizeClass(["rs-table-btn",{"!font-bold !text-slate-500 !bg-slate-200":yt.value===vue.unref(lr)&&vt.value==="asc"}]),onClick:Uo[0]||(Uo[0]=To=>br(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)&&vt.value==="desc"}]),onClick:Uo[1]||(Uo[1]=To=>br(vue.unref(lr),"desc"))}," Сортировать Я > А ",2),vue.createVNode(vue.unref(zv1)),vue.createElementVNode("details",_hoisted_10$a,[Uo[12]||(Uo[12]=vue.createElementVNode("summary",{class:"rs-table-btn"},"Поиск по значению",-1)),vue.createVNode(vue.unref(AA),{type:"text",placeholder:"Введите значение",modelValue:V.value[vue.unref(lr)],"onUpdate:modelValue":Uo[2]||(Uo[2]=To=>V.value[vue.unref(lr)]=To),modelModifiers:{lazy:!0}},null,8,["modelValue"])]),vue.createElementVNode("details",_hoisted_11$9,[vue.createElementVNode("summary",_hoisted_12$8,[Uo[13]||(Uo[13]=vue.createTextVNode(" Фильтр по значению ",-1)),Dt.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(AA),{placeholder:"Введите значение",modelValue:Et.value,"onUpdate:modelValue":Uo[3]||(Uo[3]=To=>Et.value=To)},null,8,["modelValue"]),vue.createElementVNode("div",_hoisted_13$7,[vue.createElementVNode("p",null," Показано "+vue.toDisplayString(Dt.value[vue.unref(lr)]?.length?Dt.value[vue.unref(lr)].length:Ft.value[vue.unref(lr)]?.length)+" из "+vue.toDisplayString(Ft.value[vue.unref(lr)]?.length),1),vue.createElementVNode("p",{class:"cursor-pointer hover:text-slate-700 hover:underline",onClick:Uo[4]||(Uo[4]=To=>Da(vue.unref(lr)))},"Все"),vue.createElementVNode("p",{class:"cursor-pointer hover:text-slate-700 hover:underline",onClick:Uo[5]||(Uo[5]=To=>delete Dt.value[vue.unref(lr)])}," Сбросить ")]),vue.createVNode(ku,{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(Ca(vue.unref(lr)),To=>(vue.openBlock(),vue.createElementBlock("div",{key:To,class:"flex gap-1 select-none cursor-pointer hover:bg-slate-100 rounded",onClick:Go=>fr(To)},[vue.createVNode(vue.unref(Zc),{checked:Dt.value[vue.unref(lr)]?.includes(To)},null,8,["checked"]),vue.createElementVNode("p",null,vue.toDisplayString(To||"(пусто)"),1)],8,_hoisted_15$5))),128))])]),_:1})]),vue.createElementVNode("details",_hoisted_16$5,[Uo[14]||(Uo[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:Nr}," Показать все "),vue.createVNode(ku,{class:"max-h-[300px] overflow-y-auto"},{default:vue.withCtx(()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(Dn.value,(To,Go)=>(vue.openBlock(),vue.createElementBlock("div",{key:To.Title,class:"flex items-center gap-1 px-2 py-1 hover:bg-slate-100 cursor-pointer",onClick:su=>hr(Go)},[vue.createVNode(vue.unref(Z1),{class:"text-slate-500",name:gn.value[Go]?"square":"check-square"},null,8,["name"]),vue.createElementVNode("span",null,vue.toDisplayString(To.Title),1)],8,_hoisted_17$4))),128))]),_:2},1024)]),vue.createVNode(vue.unref(zv1)),vue.createElementVNode("p",{class:vue.normalizeClass(["rs-table-btn",{"!font-bold !text-slate-500 !bg-slate-200":Pt.value[vue.unref(lr)]}]),onClick:Uo[6]||(Uo[6]=To=>qu(vue.unref(lr)))}," Показать только пустые ",2),vue.createVNode(vue.unref(zv1)),vue.createElementVNode("p",{class:"rs-table-btn",onClick:al},"Изменить порядок столбцов")])]),default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_6$f,[vue.createElementVNode("div",{onClick:To=>Hl.filterable!=!1?xr(To,bd):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(Hl.Title),3),Hl.filterable!=!1?(vue.openBlock(),vue.createBlock(vue.unref(Z1),{key:0,name:"filter",class:vue.normalizeClass([{activeFilter:qr(bd)},"text-slate-500"])},null,8,["class"])):vue.createCommentVNode("",!0)],8,_hoisted_7$e)])]),_:2},1032,["shown"]),Hl.Template?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("div",{key:0,class:"column-resizer",onMousedown:Uo[7]||(Uo[7]=To=>nr(To)),onDblclick:To=>$n(bd)},null,40,_hoisted_18$4))])),[[vue.vShow,!gn.value[bd]]])),128)),M.rowActions.length?(vue.openBlock(),vue.createElementBlock("th",_hoisted_19$4,[...Uo[15]||(Uo[15]=[vue.createElementVNode("p",null,"Действия",-1)])])):vue.createCommentVNode("",!0)])],2),vue.createElementVNode("tbody",null,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(wn.value,(Hl,bd)=>(vue.openBlock(),vue.createElementBlock("tr",{class:vue.normalizeClass({"even:bg-slate-50":M.striped}),onContextmenu:vue.withModifiers(To=>rr(To,Hl),["right","prevent"]),onClick:To=>rd(Hl),key:Hl,style:vue.normalizeStyle({backgroundColor:hn.value&&yn.value===Hl?"rgba(0, 0, 0, 0.05)":"",backgroundColor:e.rowColor(Hl)})},[M.numbering?(vue.openBlock(),vue.createElementBlock("td",_hoisted_21$4,vue.toDisplayString(Zt.value*parseInt($t.value)-parseInt($t.value)+1+bd),1)):vue.createCommentVNode("",!0),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(Dn.value,(To,Go)=>vue.withDirectives((vue.openBlock(),vue.createElementBlock("td",{key:To.Title,class:vue.normalizeClass(["hover:bg-slate-200",typeof To.Class=="function"?To.Class(Hl):To.Class]),onClick:su=>J("cellClicked",{record:Hl,column:To,index:Go}),title:typeof To.titleOnHover=="function"?To.titleOnHover(Hl):To.titleOnHover},[To.Template?(vue.openBlock(),vue.createElementBlock("div",_hoisted_23$4,[vue.renderSlot(qo.$slots,`cell(${To.Template})`,{record:Hl},void 0,!0)])):To.List?(vue.openBlock(),vue.createElementBlock("div",_hoisted_24$3,vue.toDisplayString(To.List.find(su=>su.Id===Hl[To.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 To.Field=="function"?To.Field(Hl):Hl[To.Field]},vue.toDisplayString(typeof To.Field=="function"?To.Field(Hl):Hl[To.Field]),11,_hoisted_26$3),vue.createElementVNode("p",{class:vue.normalizeClass(["secondary-text",{"whitespace-nowrap":M.growOnlyX}]),title:typeof To.LowField=="function"?To.LowField(Hl):Hl[To.LowField]},vue.toDisplayString(typeof To.LowField=="function"?To.LowField(Hl):Hl[To.LowField]),11,_hoisted_27$3)]))],10,_hoisted_22$4)),[[vue.vShow,!gn.value[Go]]])),128)),M.rowActions.length?(vue.openBlock(),vue.createElementBlock("td",_hoisted_28$2,[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,To=>(vue.openBlock(),vue.createElementBlock("span",{class:"rowAction whitespace-nowrap",onClick:vue.withModifiers(Go=>To.Action(Hl),["stop"]),key:To},[typeof To.IsVisible!="function"||To.IsVisible(Hl)?(vue.openBlock(),vue.createElementBlock("div",_hoisted_30$2,[To.Icon?(vue.openBlock(),vue.createBlock(vue.unref(Z1),{key:0,name:To.Icon},null,8,["name"])):vue.createCommentVNode("",!0),vue.createTextVNode(" "+vue.toDisplayString(To.Name),1)])):vue.createCommentVNode("",!0)],8,_hoisted_29$2))),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(Dn.value,(Hl,bd)=>vue.withDirectives((vue.openBlock(),vue.createElementBlock("td",{key:Hl.Title},[typeof Hl.Footer=="function"?(vue.openBlock(),vue.createElementBlock("p",_hoisted_32$2,vue.toDisplayString(Hl.Footer(qo.row)),1)):(vue.openBlock(),vue.createElementBlock("p",_hoisted_33$2,vue.toDisplayString(Hl.Footer),1))])),[[vue.vShow,!gn.value[bd]]])),128))])):vue.createCommentVNode("",!0),vr.value?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("tr",_hoisted_34$2,[...Uo[16]||(Uo[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:un.value,style:vue.normalizeStyle({top:un.value.y,left:un.value.x})},[vue.createVNode(vue.unref(Iv1),{spacing:"xs"},{default:vue.withCtx(()=>[Sn.value.length?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("p",_hoisted_35$1,"Нет доступных действий контекстного меню")),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(Sn.value,Hl=>(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:Hl,prependIcon:Hl.Icon,onClick:bd=>(Hl.Action(yn.value),an())},{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(Hl.Name),1)]),_:2},1032,["prependIcon","onClick"]))),128))]),_:1})],4)):vue.createCommentVNode("",!0),vue.createVNode(vue.unref(Ps),{title:"Изменение порядка столбцов",modelValue:Nt.value,"onUpdate:modelValue":Uo[9]||(Uo[9]=Hl=>Nt.value=Hl),closeOnClickOutside:!0,class:"p-2"},{footer:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_44,[vue.createVNode(vue.unref(_2),{onClick:Xo,variant:"outline",size:"sm"},{default:vue.withCtx(()=>[...Uo[18]||(Uo[18]=[vue.createTextVNode("Сбросить",-1)])]),_:1}),vue.createVNode(vue.unref(_2),{onClick:ad,size:"sm"},{default:vue.withCtx(()=>[...Uo[19]||(Uo[19]=[vue.createTextVNode("Сохранить",-1)])]),_:1})])]),default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_36,[Uo[17]||(Uo[17]=vue.createElementVNode("p",{class:"text-sm text-gray-600 mb-2"},"Перетащите столбцы для изменения их порядка:",-1)),vue.createElementVNode("div",_hoisted_37,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(Bt.value,(Hl,bd)=>(vue.openBlock(),vue.createElementBlock("div",{key:Hl.originalIndex,class:"flex items-center justify-between p-2 mb-1 bg-white rounded border cursor-move hover:bg-gray-50",draggable:"true",onDragstart:To=>Za(To,bd),onDragover:Uo[8]||(Uo[8]=vue.withModifiers(()=>{},["prevent"])),onDrop:To=>vu(To,bd)},[vue.createElementVNode("div",_hoisted_39,[vue.createVNode(vue.unref(Z1),{name:"grip-vertical",class:"text-gray-400 text-sm"}),vue.createElementVNode("span",_hoisted_40,vue.toDisplayString(Hl.title),1)]),vue.createElementVNode("div",_hoisted_41,[bd>0?(vue.openBlock(),vue.createElementBlock("button",{key:0,onClick:To=>jo(bd,"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)):vue.createCommentVNode("",!0),bd<Bt.value.length-1?(vue.openBlock(),vue.createElementBlock("button",{key:1,onClick:To=>jo(bd,"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)):vue.createCommentVNode("",!0)])],40,_hoisted_38))),128))])])]),_:1},8,["modelValue"])],12,_hoisted_1$t),vue.createElementVNode("div",_hoisted_45,[vue.createElementVNode("div",_hoisted_46,[er.value>1?(vue.openBlock(),vue.createElementBlock("ul",_hoisted_47,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(or.value,Hl=>(vue.openBlock(),vue.createElementBlock("li",{key:Hl,class:vue.normalizeClass({active:Hl===Zt.value}),onClick:bd=>Hl!=="..."?Zt.value=Hl:null},[vue.createElementVNode("a",null,vue.toDisplayString(Hl),1)],10,_hoisted_48))),128))])):vue.createCommentVNode("",!0),M.enablePageSizeSelector?(vue.openBlock(),vue.createElementBlock("div",_hoisted_49,[Uo[21]||(Uo[21]=vue.createElementVNode("span",{class:"text-sm text-slate-500"},"Показать:",-1)),vue.withDirectives(vue.createElementVNode("select",{"onUpdate:modelValue":Uo[10]||(Uo[10]=Hl=>$t.value=Hl),class:"text-sm border rounded px-1 py-0.5 w-[60px] border-slate-300"},[...Uo[20]||(Uo[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," Записи "+vue.toDisplayString(Zt.value*parseInt($t.value)-parseInt($t.value)+1)+"-"+vue.toDisplayString(Math.min(Zt.value*parseInt($t.value),vr.value))+" из "+vue.toDisplayString(vr.value),1)])],64)}}},ReSimpleTableAppCompany=_export_sfc(_sfc_main$A,[["__scopeId","data-v-947a7d0d"]]),_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:"border rounded p-2 bg-slate-100"},_hoisted_3$h={class:"h-full flex flex-col p-3 gap-3"},_hoisted_4$f=["title"],_hoisted_5$e=["title"],_hoisted_6$e=["title"],_hoisted_7$d=["title"],_hoisted_8$c=["title"],_hoisted_9$a=["title"],_sfc_main$z={__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),vt=vue.ref(!1),yt=vue.ref(!1),Et=vue.ref(null),Dt=vue.ref(null),Ft=vue.ref(null),Pt=vue.ref(!1),Nt=[{Name:"Просмотр",Icon:"eye",Action:vn=>hn(vn.NeedsId,vn.ApplicationId,vn.MessageWarning,vn.Period,vn.AdditionalApp==="Дополнительная")}],Bt=vue.computed(()=>{const vn=hooks().year(),cn=2025,sn=vn+1,pn=[];for(let gn=cn;gn<=sn;gn++)pn.push({Id:gn.toString(),Name:gn.toString()});return pn}),zt=vue.computed(()=>{const vn=[];for(let cn=0;cn<listStatuses.length;cn++)vn.push({Id:listStatuses[cn],Name:listStatuses[cn]});return vn});vue.onMounted(()=>{jt(null)});const $t=vue.ref(null),Ht=vue.ref([]);async function jt(vn){yt.value=!1,V.value=!1,Ft.value=null,Pt.value=!1,Dt.value=null,Et.value=null,vt.value=!1;try{N.patientId&&(M.value=!0,Ht.value=await window.axios.get(window.localhost+`ApplicationCompany/PatientApplications?PatientId=${N.patientId}&Sort=CreateDateApp&Desc=true`,{params:vn||{}}).then(cn=>cn.data.map(sn=>({...sn,AdditionalApp:sn.AdditionalApp===!1?"Основная":"Дополнительная",SumPrepapp:sn.SumPrepapp.replace(".",","),SumPrepappfinal:sn.SumPrepappfinal.replace(".",",")}))))}catch(cn){const sn=cn.response?.data?.message||cn.message||"Неизвестная ошибка";notifyError$1(`${sn}. Пожалуйста, выполните поиск повторно`,15e3,"Ошибка загрузки данных")}finally{M.value=!1}}async function Kt(vn){let cn=await window.axios.get(window.localhost+`ApplicationCompany/Application?ApplicationId=${vn}`).then(sn=>sn.data).catch(sn=>{});return Et.value=cn,cn?(cn.DateClose&&hooks(cn.DateClose).format("YYYY-MM-DD")<hooks().format("YYYY-MM-DD")||cn.Status!="В работе"&&cn.Status!="Заполнение льгот"&&cn.Status!="Проверка"&&cn.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 Zt(vn){return vn.MessageWarning?"#fff6f6":""}async function hn(vn,cn,sn,pn,gn){if(!vn){notifyWarning(sn,15e3,"Уведомление системы");return}Dt.value=vn,Ft.value=pn,Pt.value=gn;const{status:yr,notify:lr}=await Kt(cn);switch(yr&&!lr?.type&&(V.value=!0,vt.value=!1),yr&&lr?.type==="warn"&&(V.value=!0,vt.value=!0),lr.type){case"error":notifyError$1(lr.message,lr.duration,lr.title);break;case"warn":notifyWarning(lr.message,lr.duration,lr.title);break}}async function un(vn){"filters"in vn&&(vn=vn.filters),vn={...vn},vn&&"Additional"in vn&&(vn.Additional=vn.Additional==="true"),$t.value=Object.keys(vn).length>0?vn:null,yt.value=!0;try{await jt($t.value)}catch(cn){notifyError$1(`Ошибка при загрузке данных:
|
|
1301
1301
|
`+cn.message)}finally{yt.value=!1}}vue.watch(()=>V.value,vn=>{vn||(yt.value=!1,V.value=!1,Ft.value=null,Pt.value=!1,Dt.value=null,Et.value=null,vt.value=!1)});const yn=[{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:Bt.value,style:{width:"13rem",minWidth:"13rem",maxWidth:"13rem"}},{name:"Программа",type:"select",accessor:"ProgramId",list:Object.entries(approvedBenefitProgramToPreparatProgramm).map(([vn,cn])=>({Id:vn,Name:approvedBenefitProgram[cn]})),style:{width:"15rem",minWidth:"15rem",maxWidth:"15rem"}}],rn=[{Title:"№",Field:"ApplicationNumber",SortMethod:(vn,cn)=>{const sn=parseInt(vn.ApplicationNumber,10),pn=parseInt(cn.ApplicationNumber,10);return sn-pn}},{Title:"Заявка",Field:"AdditionalApp"},{Title:"Дата создания",Field:vn=>vn.CreateDateTimeApp?hooks(vn.CreateDateTimeApp).format("DD.MM.YYYY"):""},{Title:"Дата закрытия",Field:vn=>vn.DateCloseApp?hooks(vn.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:(vn,cn)=>{const sn=parseInt(vn.Period,10),pn=parseInt(cn.Period,10);return sn-pn}},{Title:"ЛПУ",Field:"LpuName",Class:"whitespace-nowrap"},{Title:"Отделение",Field:"DivisionName"},{Title:"Программа",Field:"Program"},{Title:"Категория",Field:"LgotaCode",SortMethod:(vn,cn)=>{const sn=parseInt(vn.LgotaCode,10)||0,pn=parseInt(cn.LgotaCode,10)||0;return sn-pn}},{Title:"Заболевание по МКБ-10",Field:"MkbCode"},{Title:"Номер ВК",Field:"NumberVk",SortMethod:(vn,cn)=>{const sn=parseInt(vn.NumberVk,10)||0,pn=parseInt(cn.NumberVk,10)||0;return sn-pn}},{Title:"Дата ВК",Field:vn=>vn.DateVk?hooks(vn.DateVk).format("DD.MM.YYYY"):""},{Title:"Наличие НПР в потребности",Field:vn=>vn.PnNpr?"Да":"Нет"},{Title:"Номер НПР в потребности",Field:"PnNprNumber",SortMethod:(vn,cn)=>{const sn=parseInt(vn.PnNprNumber,10)||0,pn=parseInt(cn.PnNprNumber,10)||0;return sn-pn}},{Title:"Дата НПР в потребности",Field:vn=>vn.PnNprDate?hooks(vn.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:vn=>vn.Sign?"Да":"Нет"},{Title:"Взаимозаменяемость",Field:vn=>vn.Interchangeability?"Да":"Нет"},{Title:"Кто создал/редактировал потребность",Field:"PnEmployeePostFIO"},{Title:"Количество упаковок на месяц",Field:"CountMonth",SortMethod:(vn,cn)=>{const sn=parseInt(vn.CountMonth,10)||0,pn=parseInt(cn.CountMonth,10)||0;return sn-pn}},{Title:"Количество упаковок на год",Field:"CountYear",SortMethod:(vn,cn)=>{const sn=parseInt(vn.CountYear,10)||0,pn=parseInt(cn.CountYear,10)||0;return sn-pn}},{Title:"Количество упаковок в сводной потребности на год",Field:"CountPrepapp",SortMethod:(vn,cn)=>{const sn=parseInt(vn.CountPrepapp,10)||0,pn=parseInt(cn.CountPrepapp,10)||0;return sn-pn}},{Title:"Сумма в сводной потребности на год",Field:"SumPrepapp",SortMethod:(vn,cn)=>{const sn=parseFloat(vn.SumPrepapp,10)||0,pn=parseFloat(cn.SumPrepapp,10)||0;return sn-pn}},{Title:"Количество упаковок в сводной заявке на год",Field:"CountPrepappfinal",SortMethod:(vn,cn)=>{const sn=parseInt(vn.CountPrepappfinal,10)||0,pn=parseInt(cn.CountPrepappfinal,10)||0;return sn-pn}},{Title:"Сумма в сводной заявке на год",Field:"SumPrepappfinal",SortMethod:(vn,cn)=>{const sn=parseFloat(vn.SumPrepappfinal,10)||0,pn=parseFloat(cn.SumPrepappfinal,10)||0;return sn-pn}},{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(vn,cn)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.withDirectives(vue.createElementVNode("div",_hoisted_1$s,[...cn[4]||(cn[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$m,[vue.createVNode(_sfc_main$G,{"filter-list":yn,onSearch:un,class:"flex justify-end gap-2"})]),vue.createElementVNode("div",_hoisted_3$h,[cn[5]||(cn[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:Ht.value,columns:rn,"page-size":20,"enable-page-size-selector":"","table-id":"appsList","context-actions":Nt,rowColor:Zt,height:J.value,"sticky-header":"true"},{"cell(CommentApp)":vue.withCtx(({record:sn})=>[vue.createElementVNode("span",{title:sn.CommentApp},[vue.createVNode(vue.unref(s$),{modelValue:sn.CommentApp,"onUpdate:modelValue":pn=>sn.CommentApp=pn,class:"mw-[300px] min-w-[300px] max-w-[300px] h-[70px] min-h-[70px] max-h-[200px]",readonly:!0,style:vue.normalizeStyle({backgroundColor:Zt(sn)})},null,8,["modelValue","onUpdate:modelValue","style"])],8,_hoisted_4$f)]),"cell(Mnn)":vue.withCtx(({record:sn})=>[vue.createElementVNode("span",{title:sn.Mnn},[vue.createVNode(vue.unref(s$),{modelValue:sn.Mnn,"onUpdate:modelValue":pn=>sn.Mnn=pn,class:"w-[300px] min-w-[300px] max-w-[300px] h-[70px] min-h-[70px] max-h-[200px]",readonly:!0,style:vue.normalizeStyle({backgroundColor:Zt(sn)})},null,8,["modelValue","onUpdate:modelValue","style"])],8,_hoisted_5$e)]),"cell(TradeName)":vue.withCtx(({record:sn})=>[vue.createElementVNode("span",{title:sn.TradeName},[vue.createVNode(vue.unref(s$),{modelValue:sn.TradeName,"onUpdate:modelValue":pn=>sn.TradeName=pn,class:"w-[300px] min-w-[300px] max-w-[300px] h-[70px] min-h-[70px] max-h-[200px]",readonly:!0,style:vue.normalizeStyle({backgroundColor:Zt(sn)})},null,8,["modelValue","onUpdate:modelValue","style"])],8,_hoisted_6$e)]),"cell(Dosage)":vue.withCtx(({record:sn})=>[vue.createElementVNode("span",{title:sn.Dosage},[vue.createVNode(vue.unref(s$),{modelValue:sn.Dosage,"onUpdate:modelValue":pn=>sn.Dosage=pn,class:"w-[302px] min-w-[302px] max-w-[302px] h-[70px] min-h-[70px] max-h-[200px]",readonly:!0,style:vue.normalizeStyle({backgroundColor:Zt(sn)})},null,8,["modelValue","onUpdate:modelValue","style"])],8,_hoisted_7$d)]),"cell(CommentNeed)":vue.withCtx(({record:sn})=>[vue.createElementVNode("span",{title:sn.CommentNeed},[vue.createVNode(vue.unref(s$),{modelValue:sn.CommentNeed,"onUpdate:modelValue":pn=>sn.CommentNeed=pn,class:"w-[300px] min-w-[300px] max-w-[300px] h-[70px] min-h-[70px] max-h-[200px]",readonly:!0,style:vue.normalizeStyle({backgroundColor:Zt(sn)})},null,8,["modelValue","onUpdate:modelValue","style"])],8,_hoisted_8$c)]),"cell(Description)":vue.withCtx(({record:sn})=>[vue.createElementVNode("span",{title:sn.Description},[vue.createVNode(vue.unref(s$),{modelValue:sn.Description,"onUpdate:modelValue":pn=>sn.Description=pn,class:"w-[300px] min-w-[300px] max-w-[300px] h-[70px] min-h-[70px] max-h-[200px]",readonly:!0,style:vue.normalizeStyle({backgroundColor:Zt(sn)})},null,8,["modelValue","onUpdate:modelValue","style"])],8,_hoisted_9$a)]),_:1},8,["enable-xlsx-export","data","height"])]),V.value?(vue.openBlock(),vue.createBlock(_sfc_main$B,{key:0,"user-open":I.value,"patient-id":N.patientId,"patient-snils":N.patientSnils,"selected-application":Et.value,"need-id":Dt.value,"read-only":!0,"hidden-control":!0,additional:Pt.value,"doc-app-year":Ft.value,"modal-visible":V.value,"onUpdate:modalVisible":cn[0]||(cn[0]=sn=>V.value=sn),"wait-request":yt.value,"onUpdate:waitRequest":cn[1]||(cn[1]=sn=>yt.value=sn),onOnSave:cn[2]||(cn[2]=sn=>jt()),onOnDelete:cn[3]||(cn[3]=sn=>jt())},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$y={__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),vt=vue.ref(null),yt=vue.ref([]);vue.watch(()=>J.modelValue,Nt=>{vt.value=Nt,yt.value.find(Bt=>Bt[J.idField]===Nt)||Et({[J.idField]:Nt})},{immediate:!0});async function Et(Nt){M.value=!0;const Bt=await window.axios.get(window.localhost+"refs/Mkb10",{params:{...N.value,...Nt}});yt.value=Bt.data.Body.filter(zt=>!Pt(zt)&&J.filterFunction(zt))||[],M.value=!1}function Dt(Nt){Et({SearchStr:Nt})}function Ft(Nt){V("update:modelValue",Nt[J.idField])}function Pt(Nt){return!!(["J47","E10","C82","C85","D66","D67","G35","E84"].includes(Nt.Code)||Nt.Code.indexOf(".")===-1)}return(Nt,Bt)=>(vue.openBlock(),vue.createBlock(_sfc_main$C,{modelValue:vt.value,"onUpdate:modelValue":Bt[0]||(Bt[0]=zt=>vt.value=zt),onOnSelectObject:Ft,data:yt.value,onInput:Dt,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 vt=(!M.DateOut||M.DateOut>today)&&!M.Deleted,yt=M.BenefitCodeShort===N.Federal,Et=M.Ds===e.Ds;if(vt&&yt||M.Monetization&&yt)return J=yt,N.RequiredMkb&&(V=Et),!0}),{referenceCategory:N,statusCategory:J,statusMkb:V}}function useCheckAddedBenefit(e,I,N,J=null,V=null,M=null){const{DateIn:vt,DateOut:yt}=e,Et=e.ProgramName==="ОНЛС",Dt=e.Annulate,Ft=isFindActiveProgrammCategory(e,I),Pt=(!yt||yt>today)&&!Dt,Nt=isFindInvalidBenefitCodeShort(e),Bt=isFindActiveInvalidInPerson(e,I),zt=isExistCategoryPerson(e,I),$t=zt?"редактировании":"добавлении",Ht=zt?"активировать":"добавить";if(Et&&isResultValidateOnls(Bt,Nt,Pt)&&Pt)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Невозможно ${Ht} инвалидность по коду ${e.BenefitCodeShort} программы ОНЛС так как уже имеется активная`,displayTime:15e3}};if(!Et&&isResultValidateNotOnls(Ft,Pt)&&Pt)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Невозможно ${Ht} категорию по коду ${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(vt&&vt>today)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:"Указан некорректный период действия льготы. Дата начала льготы больше текущей даты!",displayTime:15e3}};if(vt&&V!=null&&!V&&vt<today&&!["510","901","902","903","904","905","906"].includes(e.BenefitCodeShort))return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:"Указан некорректный период действия льготы. Дата начала льготы меньше текущей даты!",displayTime:15e3}};if(vt&&yt&&vt>=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((!vt||!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 un=setStrYearLocalDate(N.BirthDate,2),yn=setStrYearLocalDate(un,2);if(vt<un)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Для категории НМГ-дети (дети от 2 до 4 лет) дата начала не может быть меньше даты ${new Date(un).toLocaleDateString("ru-RU")}`,displayTime:15e3}};if(yt>=yn)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Для категории НМГ-дети (дети от 2 до 4 лет) дата конца не может быть больше ${new Date(yn).toLocaleDateString("ru-RU")}`,displayTime:15e3}}}if(e.BenefitCodeShort===BenefitCodesChildren.CHILDREN_NMG_END){const un=setStrYearLocalDate(N.BirthDate,4),yn=setStrYearLocalDate(un,14);if(vt<un)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Для категории НМГ-дети (дети от 4 до 17 лет включительно) дата начала не может быть меньше даты ${new Date(un).toLocaleDateString("ru-RU")}`,displayTime:15e3}};if(yt>=yn)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Для категории НМГ-дети (дети от 4 до 17 лет включительно) дата конца не может быть больше ${new Date(yn).toLocaleDateString("ru-RU")}`,displayTime:15e3}}}if(e.BenefitCodeShort===BenefitCodesChildren.CHILDREN_THREE){const un=N.BirthDate,yn=setStrYearLocalDate(un,3);if(vt<un)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:"Для категории дети до 3-х лет дата начала льготы не может быть меньше даты рождения",displayTime:15e3}};if(yt>=yn)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Для категории дети до 3-х лет дата конца льготы не может быть больше ${new Date(yn).toLocaleDateString("ru-RU")}`,displayTime:15e3}}}if(e.BenefitCodeShort==="510"){const un=setStrYearLocalDate(today,null,6);if(yt>un)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Для категории 510 (инфаркт миокарда (первые шесть месяцев)) дата конца не может быть больше ${new Date(un).toLocaleDateString("ru-RU")}`,displayTime:15e3}}}if(["901","902","903","904","905"].includes(e.BenefitCodeShort)){const un=setStrYearLocalDate(today,2);if(yt>un)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Для категории по ССЗ (901, 902, 903, 904, 905) дата конца не может быть больше ${new Date(un).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 un=N.BirthDate,yn=setStrYearLocalDate(un,19);if(vt<un)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:"Для категории Фонд Круг добра дата начала льготы не может быть меньше даты рождения",displayTime:15e3}};if(yt>=yn)return{status:!1,notifyParam:{title:`Ошибка при ${$t} категории`,message:`Для категории Фонд Круг добра дата конца льготы не может быть больше ${new Date(yn).toLocaleDateString("ru-RU")}`,displayTime:15e3}}}const hn=findReferenceFederal(e,I);if(hn){if(!hn.statusCategory&&Pt)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 vt=parseInt(N[M],10);isNaN(vt)||(J+=vt*V,V--)}for(;J>99;){if(J===100)return 0;J%=101}return J}const _hoisted_1$r={class:"w-full h-full absolute top-0 left-0 flex justify-center items-center animate-pulse z-[5000]"},_hoisted_2$l={class:"flex m-[1rem] flex-row flex-wrap gap-[.5rem] items-end"},_hoisted_3$g={key:0,class:"w-[10rem]"},_hoisted_4$e={class:"w-[13rem]"},_hoisted_5$d={class:"w-[10rem]"},_hoisted_6$d={class:"flex flex-col"},_hoisted_7$c={class:"w-[100%]"},_hoisted_8$b={key:0,class:"text-red-500 bg-red-50 p-1 rounded-md"},_hoisted_9$9={class:"w-[100%]"},_hoisted_10$9={key:1,class:"w-[100%]"},_hoisted_11$8={class:"flex gap-[1rem]"},MINZDRAV_ID$1="9d1790e4-965e-46d3-878f-c8c5ce7ae8c6",RKIB_ID$1="3ef9a148-4f1f-4bfc-9717-ef876f210b7b",_sfc_main$x={__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),vt=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"}}),Et=vue.inject("isAdmin")||yt.value.Endministrator.IsActive||yt.value.Root.IsActive,Dt=vue.ref(!1),Ft=vue.ref({Snils:V.snils,EmployeePostId:M.value.Id}),Pt=vue.ref({Person:null,IsValidSnils:!1}),Nt=vue.ref([]),Bt=vue.ref([]),zt=vue.ref(!1),$t=vue.ref(!1),Ht=vue.ref(!0),jt=vue.ref(!1),Kt=vue.ref(!1),Zt=vue.ref(!1),hn=vue.ref(!1),un=vue.ref(!1),yn=vue.computed(()=>(!M.value?.AccessCodes||!M.value.AccessCodes.includes(0))&&V.editBenefit?.Id&&V.editBenefit.EmployeePostId!==M.value.Id),rn=vue.computed(()=>yn.value||!Ft.value.BenefitCodeShort||!Pt.value?.IsValidSnils),vn=vue.ref({noSnils:"Укажите снилс для выбора категории",noCategory:"Выберите категорию льготы для ввода других параметров"}),cn=vue.computed(()=>Ft.value.Snils?Ft.value.BenefitCodeShort?null:vn.value.noCategory:vn.value.noSnils);let sn=null;Sn(),pn();async function pn(){switch(await window.axios.get(window.localhost+"refs/BenefitMap",{params:{LpuIdForAccess:MINZDRAV_ID$1}}).then(er=>{Nt.value=er.data.Body}).finally(()=>{wn()}),M.value.LpuId){case RKIB_ID$1:Nt.value=Nt.value.filter(er=>er.id==="88afb49a-4350-4ea1-aed3-e31f4de22bfa");break;case vt?.value?.LpuId:Nt.value=Nt.value.filter(er=>!["ОНЛС","ВЗН","Орфанные заболевания","Фонд Круг добра"].includes(er.ProgramName));break;default:M?.value?.LpuId!==MINZDRAV_ID$1&&!Et&&(Nt.value=Nt.value.filter(er=>!["ОНЛС","ВЗН","Орфанные заболевания","Фонд Круг добра","Хронический Гепатит C"].includes(er.ProgramName)));break}}vue.watch(()=>V.editBenefit,er=>{er&&(jt.value=!0,gn(er.BenefitCodeShort).then(()=>{Ft.value={Id:er.PatientBenefitId??er.Id,Snils:er.Snils,EmployeePostId:M.value.Id,Ds:er.Ds,DateIn:er.DateIn,DateOut:er.DateOut,BenefitCodeShort:er.BenefitCodeShort,Monetization:er.Monetization,Deleted:er.Deleted},Ft.value.Snils&&V.snils&&Ft.value.Snils!==V.snils&&(notifyError$1("Код ошибки 57195"),J("error",new Error("Критическое неравенство СНИЛС"))),V.snils&&(Ft.value.Snils=V.snils)}))},{immediate:!0,deep:!0}),vue.watch(()=>Ft.value.BenefitCodeShort,er=>{if(gn(er),er&&(parseInt(er)>=901&&parseInt(er)<=906||parseInt(er)===510)){Kt.value=!0;return}Kt.value=!1},{immediate:!0});function gn(er){return Sn(),new Promise(or=>{(!rn.value&&sn!==er||!er)&&(Bt.value=[],Ft.value.Ds=null),er?(sn=er,window.axios.get(window.localhost+"ReportServiceV2",{params:{Id:"46b51d40-777d-4dbb-83de-2ff88a8ed102",_param1_:er}}).then(vr=>{Bt.value=vr.data||[],or(!0)}).catch(vr=>{notifyError$1("Произошла ошибка при попытке загрузить диагнозы для льготы, попробуйте позже"),J("error",vr),console.error(vr),or(!1)}).finally(()=>{wn()})):(Ft.value.DateIn=null,Ft.value.DateOut=null,wn(),or(!0))})}let yr=null;vue.watch(()=>Ft.value.Snils,er=>{clearTimeout(yr),yr=setTimeout(async()=>{try{if(er?.length===14){if(!useValidateSnils(er)){notifyError$1("Ошибка в номере СНИЛС",15e3,"Введённый СНИЛС неверен"),Pt.value.IsValidSnils=!1;return}Sn();const{data:or}=await api$1.Patient.get({Snils:er});if(or.length>1){notifyError$1("По указанному СНИЛС найдены дублирующие записи. Необходимо объединить данные.",15e3,"Ошибка при поиске пациента"),Pt.value.IsValidSnils=!1;return}Pt.value.Person=or[0],Pt.value.IsValidSnils=!0}else Pt.value.IsValidSnils=!1}catch{notifyError$1("Ошибка при отправке запроса",15e3,"Необходимо заново открыть форму Льгота. При повторной ошибке необходимо обратиться в СТП ЛЛО Минздрав")}finally{wn()}},500)},{immediate:!0});function lr(er){return Ft.value.BenefitCodeShort==="999"}async function nr(){try{if(await Sn(),Ft.value?.Snils&&Ft.value?.BenefitCodeShort&&(Bt.value.length===0||Ft.value.Ds)&&Ft.value.DateIn){Ft.value.EmployeePostId=M.value.Id;const er=Ft.value.Snils,or=Ft.value.BenefitCodeShort,vr=await N({Snils:er}),Hn={...useCheckCategoryExists(or,Nt)};if(!Hn.status){notifyError$1(Hn.notifyParam.message,Hn.notifyParam.displayTime,Hn.notifyParam.title);return}const rr={...Hn.result,DateIn:Ft.value.DateIn,DateOut:Ft.value.DateOut,Annulate:Ft.value.Deleted,Ds:Ft.value.Ds,EmployeePostId:Ft.value.EmployeePostId,IdNewBenefit:Ft.value.Id,Monetization:Ft.value.Monetization};if(!Et){const hr={...useCheckAddedBenefit(rr,vr,Pt.value.Person,M.value,jt.value,Et)};if(hr.status==="checkOnls"&&!un.value&&(hn.value=!0,notifyWarning(hr.notifyParam.message,hr.notifyParam.displayTime,hr.notifyParam.title),await Dn(),un.value=!1,hn.value=!1),!hr?.status){notifyError$1(hr.notifyParam.message,hr.notifyParam.displayTime,hr.notifyParam.title);return}}if(!jt.value&&or==="999"&&!window.confirm(`Вы подтверждаете добавление льготы по категории 999?
|
|
1302
|
-
Данная категория не относится к "304 - НМГ Беременные"!`))return;let an;Ft.value?.Id?an=api$1.PatientBenefit.put(Ft.value.Id,Ft.value):an=api$1.PatientBenefit.post(Ft.value);const xr=await an;J("save",xr.data.Body[0])}else notifyWarning("Заполните обязательные поля!")}catch(er){notifyError$1(er.message,15e3,"Произошла ошибка при сохранении льготы")}finally{wn()}}function Jt(){Sn(),api$1.PatientBenefit.delete(Ft.value.Id).then(()=>{J("delete")}).catch(er=>{notifyError$1(er.message,15e3,"Не удалось аннулировать льготу!")}).finally(()=>{wn()})}vue.watch(()=>Ft.value.DateIn,(er,or)=>{if((er!==null||er!==void 0)&&er!=or&&hooks(er).isValid()&&er.length===10){const Hn=parseInt(Ft.value?.BenefitCodeShort);if(!Hn||jt.value)return;Hn>=901&&Hn<=905&&(notifySuccess("Дата окончания льготы автоматически установлена на 2 года"),Ft.value.DateOut=hooks(Ft.value.DateIn).add(2,"year").format("YYYY-MM-DD")),Hn===510&&(notifySuccess("Дата окончания льготы автоматически установлена на 6 месяцев"),Ft.value.DateOut=hooks(Ft.value.DateIn).add(6,"month").format("YYYY-MM-DD"))}});async function Ln(er){if(!er)return;const{BenefitCodeShort:or}=er;if(zt.value=!1,$t.value=!1,Zt.value=!1,!or)return;const vr=parseInt(or);if((vr<901||vr>905)&&vr!=510&&(Ft.value.DateIn=getStrLocalDate(),Ft.value.DateOut=null,notifySuccess("Дата начала льготы автоматически установлена текущим днём"),$t.value=!0),vr>=901&&vr<=905||vr===510){notifyWarning("Укажите дату постановки на учёт. Дата начала льготы будет соответствовать дате постановки на учёт"),Ft.value.DateIn=null,Ft.value.DateOut=null,zt.value=!0;return}if((vr>=532&&vr<=572||[574,575,601].includes(vr))&&(Zt.value=!0),Pt.value?.Person?.BirthDate){const Hn=Pt.value.Person.BirthDate;if(vr===parseInt(BenefitCodesChildren.CHILDREN_THREE)){Ft.value.DateOut=hooks(Hn).add(3,"year").subtract(1,"day").format("YYYY-MM-DD"),notifySuccess("Дата окончания льготы автоматически установлена на 3 года"),$t.value=!1;return}if(vr===parseInt(BenefitCodesChildren.CHILDREN_NMG_START)){Ft.value.DateOut=hooks(Hn).add(4,"year").subtract(1,"day").format("YYYY-MM-DD"),notifySuccess("Дата окончания льготы автоматически установлена на 4 года с даты рождения"),$t.value=!1;return}if(vr===parseInt(BenefitCodesChildren.CHILDREN_NMG_END)){Ft.value.DateOut=hooks(Hn).add(18,"year").subtract(1,"day").format("YYYY-MM-DD"),notifySuccess("Дата окончания льготы автоматически установлена на 18 лет с даты рождения"),$t.value=!1;return}if(vr===parseInt(BenefitCodesChildren.CHILDREN_CIRCLEGOODNESS)){Ft.value.DateOut=hooks(Hn).add(19,"year").subtract(1,"day").format("YYYY-MM-DD"),notifySuccess("Дата окончания льготы автоматически установлена на 19 лет с даты рождения"),$t.value=!1;return}}}function $n(er){return["901","902","903","904","905"].includes(er.BenefitCodeShort)?!Ht.value:!1}const gr=er=>{un.value=er.status,er.status?notifySuccess(er.message,15e3,"Выдача разрешения на добавление льготы ССЗ"):notifyError$1(er.message,15e3,"Выдача разрешения на добавление льготы ССЗ")},Dn=()=>new Promise(er=>{const or=vue.watch(un,vr=>{vr&&(or(),er())})});async function Sn(){Dt.value=!0,await vue.nextTick()}function wn(){Dt.value=!1}return(er,or)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.withDirectives(vue.createElementVNode("div",_hoisted_1$r,[...or[10]||(or[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,Dt.value]]),vue.createElementVNode("div",null,[vue.createElementVNode("div",_hoisted_2$l,[V.snils?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("div",_hoisted_3$g,[vue.createVNode(vue.unref(AA),{label:"СНИЛС",mask:"###-###-### ##",required:"",modelValue:Ft.value.Snils,"onUpdate:modelValue":or[0]||(or[0]=vr=>Ft.value.Snils=vr),disabled:yn.value},null,8,["modelValue","disabled"])])),vue.createElementVNode("div",_hoisted_4$e,[vue.createVNode(_sfc_main$N,{modelValue:Ft.value.DateIn,"onUpdate:modelValue":or[1]||(or[1]=vr=>Ft.value.DateIn=vr),label:Kt.value?"Дата постановки на учёт":"Дата начала",required:"",disabled:(rn.value||!zt.value)&&!vue.unref(Et)},null,8,["modelValue","label","disabled"])]),vue.createElementVNode("div",_hoisted_5$d,[vue.createVNode(_sfc_main$N,{modelValue:Ft.value.DateOut,"onUpdate:modelValue":or[2]||(or[2]=vr=>Ft.value.DateOut=vr),label:"Дата конца",disabled:(rn.value||!$t.value)&&!jt.value},null,8,["modelValue","disabled"])]),vue.withDirectives(vue.createElementVNode("div",_hoisted_6$d,[vue.createVNode(vue.unref(Zc),{label:"Монетизирована",modelValue:Ft.value.Monetization,"onUpdate:modelValue":or[3]||(or[3]=vr=>Ft.value.Monetization=vr),disabled:!vue.unref(Et)||rn.value},null,8,["modelValue","disabled"]),vue.createVNode(vue.unref(Zc),{label:"Аннулирована",modelValue:Ft.value.Deleted,"onUpdate:modelValue":or[4]||(or[4]=vr=>Ft.value.Deleted=vr),disabled:!vue.unref(Et)||rn.value},null,8,["modelValue","disabled"])],512),[[vue.vShow,vue.unref(Et)]]),vue.createElementVNode("div",_hoisted_7$c,[cn.value?(vue.openBlock(),vue.createElementBlock("p",_hoisted_8$b,vue.toDisplayString(cn.value),1)):vue.createCommentVNode("",!0),vue.createVNode(_sfc_main$C,{"max-option-count":9999,disabled:yn.value||!Pt.value.IsValidSnils||jt.value,required:"",label:"Категория льготы",modelValue:Ft.value.BenefitCodeShort,"onUpdate:modelValue":or[5]||(or[5]=vr=>Ft.value.BenefitCodeShort=vr),onOnSelectObject:Ln,data:Nt.value,"option-disabled":$n,"id-field":"BenefitCodeShort","display-expr":vr=>"("+vr.BenefitCodeShort+") "+vr.BenefitNameLong,clearable:""},null,8,["disabled","modelValue","data","display-expr"])]),vue.createElementVNode("div",_hoisted_9$9,[Bt.value.length===0||Ft.value.BenefitCodeShort==="999"?(vue.openBlock(),vue.createBlock(_sfc_main$y,{key:0,idField:"Code",modelValue:Ft.value.Ds,"onUpdate:modelValue":or[6]||(or[6]=vr=>Ft.value.Ds=vr),disabled:rn.value||Zt.value,"filter-function":lr,clearable:""},null,8,["modelValue","disabled"])):(vue.openBlock(),vue.createBlock(_sfc_main$M,{key:1,label:"Диагноз",required:"",data:Bt.value,modelValue:Ft.value.Ds,"onUpdate:modelValue":or[7]||(or[7]=vr=>Ft.value.Ds=vr),idField:"Code",disabled:rn.value||Zt.value,"display-expr":vr=>"("+vr.Code+") "+vr.Name,clearable:""},null,8,["data","modelValue","disabled","display-expr"]))]),Ft.value?.EmployeePostId?(vue.openBlock(),vue.createElementBlock("div",_hoisted_10$9,[vue.createVNode(_sfc_main$L,{disabled:"","other-lpu":"",modelValue:Ft.value.EmployeePostId,"onUpdate:modelValue":or[8]||(or[8]=vr=>Ft.value.EmployeePostId=vr),label:"Врач, который сохранит льготу"},null,8,["modelValue"])])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_11$8,[vue.createVNode(vue.unref(_2),{label:"Сохранить",onClick:nr,disabled:rn.value},null,8,["disabled"]),Ft.value?.Id?(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:0,label:"Аннулировать",delete:"",onClick:Jt,disabled:rn.value},null,8,["disabled"])):vue.createCommentVNode("",!0)])])]),(vue.openBlock(),vue.createBlock(vue.resolveDynamicComponent(V.permisionLgot),{visible:hn.value,"onUpdate:visible":or[9]||(or[9]=vr=>hn.value=vr),onSuccess:gr},null,40,["visible"]))],64))}},_hoisted_1$q={class:"content-wrapper"},_hoisted_2$k={class:"fields-section"},_hoisted_3$f={class:"action-buttons"},XOR_KEY=42108,_sfc_main$w={__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(""),vt=vue.ref(0),yt=vue.computed(()=>J?.isAdmin||!1),Et=vue.computed({get:()=>J.visible,set:Nt=>N("update:visible",Nt)});vue.watch(Et,Nt=>{Nt&&!yt.value&&Pt()}),vue.watch(()=>V.value,()=>{M.value=""});const Dt=()=>{try{if(yt.value){const Kt=parseInt(V.value,10);if(isNaN(Kt)){notifyError$1("Введите корректный код запроса",15e3,"Выдача разрешения на добавление льготы ССЗ");return}const Zt=new Date,hn=Math.floor((Zt-new Date(Zt.getFullYear(),0,0))/(1e3*60*60*24)),un=Zt.getFullYear(),yn=Kt^XOR_KEY^hn^un;M.value=yn.toString();return}const Nt=parseInt(M.value,10);if(isNaN(Nt)){notifyError$1("Введите корректный код подтверждения",15e3,"Выдача разрешения на добавление льготы ССЗ");return}const Bt=parseInt(V.value,10),zt=new Date,$t=Math.floor((zt-new Date(zt.getFullYear(),0,0))/(1e3*60*60*24)),Ht=zt.getFullYear(),jt=Bt^XOR_KEY^$t^Ht;Nt===jt?N("success",{message:"Код корректный",status:!0}):N("success",{message:"Код неверный",status:!1})}catch(Nt){notifyError$1(`${Nt.message}`,15e3,"Ошибка")}},Ft=()=>{Et.value=!1,V.value="",M.value=""};function Pt(){let Nt=Math.floor(Math.random()*99e3)+1e3;Nt=Nt&4294967040,Nt=Nt^9012345,vt.value=Nt,V.value=Nt.toString()}return(Nt,Bt)=>(vue.openBlock(),vue.createBlock(vue.unref(Ps),{onClose:Ft,size:"xl",class:"p-4",modelValue:Et.value,"onUpdate:modelValue":Bt[2]||(Bt[2]=zt=>Et.value=zt),title:"Выдача разрешения на добавление льготы ССЗ",hideExpandedButton:!0},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_1$q,[vue.createElementVNode("div",_hoisted_2$k,[vue.createVNode(vue.unref(AA),{label:"Код запроса:",modelValue:V.value,"onUpdate:modelValue":Bt[0]||(Bt[0]=zt=>V.value=zt),required:yt.value,readonly:!yt.value,clearable:yt.value,class:"form-field",mask:"#########"},null,8,["modelValue","required","readonly","clearable"]),vue.createVNode(vue.unref(AA),{label:"Код подтверждения:",modelValue:M.value,"onUpdate:modelValue":Bt[1]||(Bt[1]=zt=>M.value=zt),required:!yt.value,readonly:yt.value,clearable:!yt.value,class:"form-field",mask:"#########"},null,8,["modelValue","required","readonly","clearable"])]),vue.createElementVNode("div",_hoisted_3$f,[vue.createVNode(vue.unref(_2),{onClick:Dt,"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:Ft,"prepend-icon":"circle-xmark",color:"secondary",outline:"",size:"lg",delete:""},{default:vue.withCtx(()=>[...Bt[3]||(Bt[3]=[vue.createTextVNode(" Закрыть ",-1)])]),_:1})])])]),_:1},8,["modelValue"]))}},PermissionLgot=_export_sfc(_sfc_main$w,[["__scopeId","data-v-c8a29744"]]),_hoisted_1$p={class:"flex flex-col gap-3"},_hoisted_2$j={key:0,class:"border rounded p-2 bg-slate-100"},_hoisted_3$e={class:"flex justify-end gap-2 py-2"},_hoisted_4$d=["title"],_hoisted_5$c=["title"],_hoisted_6$c={key:1,class:"text-sm text-right text-gray-500"},_hoisted_7$b={class:"w-full h-full absolute top-0 left-0 flex justify-center items-center animate-pulse z-[5000]"},_hoisted_8$a={class:"flex flex-col gap-4"},_hoisted_9$8={class:"flex justify-end gap-2"},_hoisted_10$8=["title"],_hoisted_11$7={class:"flex gap-4 justify-end"},_hoisted_12$7={class:"flex-1 gap-4"},_hoisted_13$6={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$v={__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}},setup(e,{expose:I}){const N=e,J=vue.computed(()=>N.userOpen),V=vue.ref(J.value.LpuId===MINZDRAV_ID),M=vue.ref([]),vt=vue.ref([]),yt=vue.ref(!1),Et=vue.ref(!1),Dt=vue.ref([]),Ft=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"}}),Pt=vue.inject("isAdmin")||Ft.value.Endministrator.IsActive||Ft.value.Root.IsActive;api$1.LpuByRegionId.get("03").then(Ir=>{M.value=Ir.data});const Nt=vue.computed(()=>N.dataPatient.PatientSnils?{Snils:N.dataPatient.PatientSnils}:{}),Bt=vue.ref(N.isMainViewTable),{getBenefitList:zt,getBenefitListV2:$t}=useBenefit(),Ht=vue.ref(!1),jt=vue.ref([]),Kt=vue.ref(!1),Zt=vue.ref(null),hn=vue.ref([]),un=vue.ref({}),yn=vue.ref(!1),rn=vue.ref({}),vn=[{Name:"История",Icon:"history",Action:nr}];function cn(Ir){const br=N.nameProject,qr=[],Nr=[];switch(Ir){case"registerControl":return!!(Pt||br!="Pharmacy"&&br!="MZ"&&br!="Stock"||qr.includes(J?.value?.UserId)||Nr.includes(J?.value?.LpuId));case"getRegister":return J?.value?.LpuId===BURYAT_PHARMACY_ID}}vue.watch(()=>[rn.value.BenefitCodeShort,rn.value.ProgramName,rn.value.LpuIdPrikrep],()=>{rn.value.FileName=sn()});function sn(){return`${rn.value.BenefitCodeShort||"Все-льготы"}_${rn.value.ProgramName?.replace(/\s/g,"-")||"Все-программы"}_${M.value.find(Ir=>Ir.Id===rn.value.LpuIdPrikrep)?.Name?.replace(/\s/g,"-")||"Все-МО"}_${hooks().format("YYYY-MM-DD_HH-mm-ss")}`}function pn(){rn.value={},yn.value=!0,rn.value.FileName=sn()}async function gn(){Ht.value=!0;try{const Ir=await window.axios.get(window.localhost+"dbf/export",{params:rn.value});Ir.data?.File&&Ir.data?.Name?yr(Ir.data):notifyError$1("Нет данных для экспорта")}catch(Ir){notifyError$1(`Ошибка при экспорте:
|
|
1302
|
+
Данная категория не относится к "304 - НМГ Беременные"!`))return;let an;Ft.value?.Id?an=api$1.PatientBenefit.put(Ft.value.Id,Ft.value):an=api$1.PatientBenefit.post(Ft.value);const xr=await an;J("save",xr.data.Body[0])}else notifyWarning("Заполните обязательные поля!")}catch(er){notifyError$1(er.message,15e3,"Произошла ошибка при сохранении льготы")}finally{wn()}}function Jt(){Sn(),api$1.PatientBenefit.delete(Ft.value.Id).then(()=>{J("delete")}).catch(er=>{notifyError$1(er.message,15e3,"Не удалось аннулировать льготу!")}).finally(()=>{wn()})}vue.watch(()=>Ft.value.DateIn,(er,or)=>{if((er!==null||er!==void 0)&&er!=or&&hooks(er).isValid()&&er.length===10){const Hn=parseInt(Ft.value?.BenefitCodeShort);if(!Hn||jt.value)return;Hn>=901&&Hn<=905&&(notifySuccess("Дата окончания льготы автоматически установлена на 2 года"),Ft.value.DateOut=hooks(Ft.value.DateIn).add(2,"year").format("YYYY-MM-DD")),Hn===510&&(notifySuccess("Дата окончания льготы автоматически установлена на 6 месяцев"),Ft.value.DateOut=hooks(Ft.value.DateIn).add(6,"month").format("YYYY-MM-DD"))}});async function Ln(er){if(!er)return;const{BenefitCodeShort:or}=er;if(zt.value=!1,$t.value=!1,Zt.value=!1,!or)return;const vr=parseInt(or);if((vr<901||vr>905)&&vr!=510&&(Ft.value.DateIn=getStrLocalDate(),Ft.value.DateOut=null,notifySuccess("Дата начала льготы автоматически установлена текущим днём"),$t.value=!0),vr>=901&&vr<=905||vr===510){notifyWarning("Укажите дату постановки на учёт. Дата начала льготы будет соответствовать дате постановки на учёт"),Ft.value.DateIn=null,Ft.value.DateOut=null,zt.value=!0;return}if((vr>=532&&vr<=572||[574,575,601].includes(vr))&&(Zt.value=!0),Pt.value?.Person?.BirthDate){const Hn=Pt.value.Person.BirthDate;if(vr===parseInt(BenefitCodesChildren.CHILDREN_THREE)){Ft.value.DateOut=hooks(Hn).add(3,"year").subtract(1,"day").format("YYYY-MM-DD"),notifySuccess("Дата окончания льготы автоматически установлена на 3 года"),$t.value=!1;return}if(vr===parseInt(BenefitCodesChildren.CHILDREN_NMG_START)){Ft.value.DateOut=hooks(Hn).add(4,"year").subtract(1,"day").format("YYYY-MM-DD"),notifySuccess("Дата окончания льготы автоматически установлена на 4 года с даты рождения"),$t.value=!1;return}if(vr===parseInt(BenefitCodesChildren.CHILDREN_NMG_END)){Ft.value.DateOut=hooks(Hn).add(18,"year").subtract(1,"day").format("YYYY-MM-DD"),notifySuccess("Дата окончания льготы автоматически установлена на 18 лет с даты рождения"),$t.value=!1;return}if(vr===parseInt(BenefitCodesChildren.CHILDREN_CIRCLEGOODNESS)){Ft.value.DateOut=hooks(Hn).add(19,"year").subtract(1,"day").format("YYYY-MM-DD"),notifySuccess("Дата окончания льготы автоматически установлена на 19 лет с даты рождения"),$t.value=!1;return}}}function $n(er){return["901","902","903","904","905"].includes(er.BenefitCodeShort)?!Ht.value:!1}const gr=er=>{un.value=er.status,er.status?notifySuccess(er.message,15e3,"Выдача разрешения на добавление льготы ССЗ"):notifyError$1(er.message,15e3,"Выдача разрешения на добавление льготы ССЗ")},Dn=()=>new Promise(er=>{const or=vue.watch(un,vr=>{vr&&(or(),er())})});async function Sn(){Dt.value=!0,await vue.nextTick()}function wn(){Dt.value=!1}return(er,or)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.withDirectives(vue.createElementVNode("div",_hoisted_1$r,[...or[10]||(or[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,Dt.value]]),vue.createElementVNode("div",null,[vue.createElementVNode("div",_hoisted_2$l,[V.snils?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("div",_hoisted_3$g,[vue.createVNode(vue.unref(AA),{label:"СНИЛС",mask:"###-###-### ##",required:"",modelValue:Ft.value.Snils,"onUpdate:modelValue":or[0]||(or[0]=vr=>Ft.value.Snils=vr),disabled:yn.value},null,8,["modelValue","disabled"])])),vue.createElementVNode("div",_hoisted_4$e,[vue.createVNode(_sfc_main$N,{modelValue:Ft.value.DateIn,"onUpdate:modelValue":or[1]||(or[1]=vr=>Ft.value.DateIn=vr),label:Kt.value?"Дата постановки на учёт":"Дата начала",required:"",disabled:(rn.value||!zt.value)&&!vue.unref(Et)},null,8,["modelValue","label","disabled"])]),vue.createElementVNode("div",_hoisted_5$d,[vue.createVNode(_sfc_main$N,{modelValue:Ft.value.DateOut,"onUpdate:modelValue":or[2]||(or[2]=vr=>Ft.value.DateOut=vr),label:"Дата конца",disabled:(rn.value||!$t.value)&&!jt.value},null,8,["modelValue","disabled"])]),vue.withDirectives(vue.createElementVNode("div",_hoisted_6$d,[vue.createVNode(vue.unref(Zc),{label:"Монетизирована",modelValue:Ft.value.Monetization,"onUpdate:modelValue":or[3]||(or[3]=vr=>Ft.value.Monetization=vr),disabled:!vue.unref(Et)||rn.value},null,8,["modelValue","disabled"]),vue.createVNode(vue.unref(Zc),{label:"Аннулирована",modelValue:Ft.value.Deleted,"onUpdate:modelValue":or[4]||(or[4]=vr=>Ft.value.Deleted=vr),disabled:!vue.unref(Et)||rn.value},null,8,["modelValue","disabled"])],512),[[vue.vShow,vue.unref(Et)]]),vue.createElementVNode("div",_hoisted_7$c,[cn.value?(vue.openBlock(),vue.createElementBlock("p",_hoisted_8$b,vue.toDisplayString(cn.value),1)):vue.createCommentVNode("",!0),vue.createVNode(_sfc_main$C,{"max-option-count":9999,disabled:yn.value||!Pt.value.IsValidSnils||jt.value,required:"",label:"Категория льготы",modelValue:Ft.value.BenefitCodeShort,"onUpdate:modelValue":or[5]||(or[5]=vr=>Ft.value.BenefitCodeShort=vr),onOnSelectObject:Ln,data:Nt.value,"option-disabled":$n,"id-field":"BenefitCodeShort","display-expr":vr=>"("+vr.BenefitCodeShort+") "+vr.BenefitNameLong,clearable:""},null,8,["disabled","modelValue","data","display-expr"])]),vue.createElementVNode("div",_hoisted_9$9,[Bt.value.length===0||Ft.value.BenefitCodeShort==="999"?(vue.openBlock(),vue.createBlock(_sfc_main$y,{key:0,idField:"Code",modelValue:Ft.value.Ds,"onUpdate:modelValue":or[6]||(or[6]=vr=>Ft.value.Ds=vr),disabled:rn.value||Zt.value,"filter-function":lr,clearable:""},null,8,["modelValue","disabled"])):(vue.openBlock(),vue.createBlock(_sfc_main$M,{key:1,label:"Диагноз",required:"",data:Bt.value,modelValue:Ft.value.Ds,"onUpdate:modelValue":or[7]||(or[7]=vr=>Ft.value.Ds=vr),idField:"Code",disabled:rn.value||Zt.value,"display-expr":vr=>"("+vr.Code+") "+vr.Name,clearable:""},null,8,["data","modelValue","disabled","display-expr"]))]),Ft.value?.EmployeePostId?(vue.openBlock(),vue.createElementBlock("div",_hoisted_10$9,[vue.createVNode(_sfc_main$L,{disabled:"","other-lpu":"",modelValue:Ft.value.EmployeePostId,"onUpdate:modelValue":or[8]||(or[8]=vr=>Ft.value.EmployeePostId=vr),label:"Врач, который сохранит льготу"},null,8,["modelValue"])])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_11$8,[vue.createVNode(vue.unref(_2),{label:"Сохранить",onClick:nr,disabled:rn.value},null,8,["disabled"]),Ft.value?.Id?(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:0,label:"Аннулировать",delete:"",onClick:Jt,disabled:rn.value},null,8,["disabled"])):vue.createCommentVNode("",!0)])])]),(vue.openBlock(),vue.createBlock(vue.resolveDynamicComponent(V.permisionLgot),{visible:hn.value,"onUpdate:visible":or[9]||(or[9]=vr=>hn.value=vr),onSuccess:gr},null,40,["visible"]))],64))}},_hoisted_1$q={class:"content-wrapper"},_hoisted_2$k={class:"fields-section"},_hoisted_3$f={class:"action-buttons"},XOR_KEY=42108,_sfc_main$w={__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(""),vt=vue.ref(0),yt=vue.computed(()=>J?.isAdmin||!1),Et=vue.computed({get:()=>J.visible,set:Nt=>N("update:visible",Nt)});vue.watch(Et,Nt=>{Nt&&!yt.value&&Pt()}),vue.watch(()=>V.value,()=>{M.value=""});const Dt=()=>{try{if(yt.value){const Kt=parseInt(V.value,10);if(isNaN(Kt)){notifyError$1("Введите корректный код запроса",15e3,"Выдача разрешения на добавление льготы ССЗ");return}const Zt=new Date,hn=Math.floor((Zt-new Date(Zt.getFullYear(),0,0))/(1e3*60*60*24)),un=Zt.getFullYear(),yn=Kt^XOR_KEY^hn^un;M.value=yn.toString();return}const Nt=parseInt(M.value,10);if(isNaN(Nt)){notifyError$1("Введите корректный код подтверждения",15e3,"Выдача разрешения на добавление льготы ССЗ");return}const Bt=parseInt(V.value,10),zt=new Date,$t=Math.floor((zt-new Date(zt.getFullYear(),0,0))/(1e3*60*60*24)),Ht=zt.getFullYear(),jt=Bt^XOR_KEY^$t^Ht;Nt===jt?N("success",{message:"Код корректный",status:!0}):N("success",{message:"Код неверный",status:!1})}catch(Nt){notifyError$1(`${Nt.message}`,15e3,"Ошибка")}},Ft=()=>{Et.value=!1,V.value="",M.value=""};function Pt(){let Nt=Math.floor(Math.random()*99e3)+1e3;Nt=Nt&4294967040,Nt=Nt^9012345,vt.value=Nt,V.value=Nt.toString()}return(Nt,Bt)=>(vue.openBlock(),vue.createBlock(vue.unref(Ps),{onClose:Ft,size:"xl",class:"p-4",modelValue:Et.value,"onUpdate:modelValue":Bt[2]||(Bt[2]=zt=>Et.value=zt),title:"Выдача разрешения на добавление льготы ССЗ",hideExpandedButton:!0},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_1$q,[vue.createElementVNode("div",_hoisted_2$k,[vue.createVNode(vue.unref(AA),{label:"Код запроса:",modelValue:V.value,"onUpdate:modelValue":Bt[0]||(Bt[0]=zt=>V.value=zt),required:yt.value,readonly:!yt.value,clearable:yt.value,class:"form-field",mask:"#########"},null,8,["modelValue","required","readonly","clearable"]),vue.createVNode(vue.unref(AA),{label:"Код подтверждения:",modelValue:M.value,"onUpdate:modelValue":Bt[1]||(Bt[1]=zt=>M.value=zt),required:!yt.value,readonly:yt.value,clearable:!yt.value,class:"form-field",mask:"#########"},null,8,["modelValue","required","readonly","clearable"])]),vue.createElementVNode("div",_hoisted_3$f,[vue.createVNode(vue.unref(_2),{onClick:Dt,"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:Ft,"prepend-icon":"circle-xmark",color:"secondary",outline:"",size:"lg",delete:""},{default:vue.withCtx(()=>[...Bt[3]||(Bt[3]=[vue.createTextVNode(" Закрыть ",-1)])]),_:1})])])]),_:1},8,["modelValue"]))}},PermissionLgot=_export_sfc(_sfc_main$w,[["__scopeId","data-v-c8a29744"]]),_hoisted_1$p={class:"flex flex-col gap-3"},_hoisted_2$j={key:0,class:"border rounded p-2 bg-slate-100"},_hoisted_3$e={key:1,class:"flex justify-end gap-2 py-2"},_hoisted_4$d=["title"],_hoisted_5$c=["title"],_hoisted_6$c={key:2,class:"text-sm text-right text-gray-500"},_hoisted_7$b={class:"w-full h-full absolute top-0 left-0 flex justify-center items-center animate-pulse z-[5000]"},_hoisted_8$a={class:"flex flex-col gap-4"},_hoisted_9$8={class:"flex justify-end gap-2"},_hoisted_10$8=["title"],_hoisted_11$7={class:"flex gap-4 justify-end"},_hoisted_12$7={class:"flex-1 gap-4"},_hoisted_13$6={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$v={__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}},setup(e,{expose:I}){const N=e,J=vue.computed(()=>N.userOpen),V=vue.ref(J.value.LpuId===MINZDRAV_ID),M=vue.ref([]),vt=vue.ref([]),yt=vue.ref(!1),Et=vue.ref(!1),Dt=vue.ref([]),Ft=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"}}),Pt=vue.inject("isAdmin")||Ft.value.Endministrator.IsActive||Ft.value.Root.IsActive;api$1.LpuByRegionId.get("03").then(Ir=>{M.value=Ir.data});const Nt=vue.computed(()=>N.dataPatient.PatientSnils?{Snils:N.dataPatient.PatientSnils}:{}),Bt=vue.ref(N.isMainViewTable),{getBenefitList:zt,getBenefitListV2:$t}=useBenefit(),Ht=vue.ref(!1),jt=vue.ref([]),Kt=vue.ref(!1),Zt=vue.ref(null),hn=vue.ref([]),un=vue.ref({}),yn=vue.ref(!1),rn=vue.ref({}),vn=[{Name:"История",Icon:"history",Action:nr}];function cn(Ir){const br=N.nameProject,qr=[],Nr=[];switch(Ir){case"registerControl":return!!(Pt||br!="Pharmacy"&&br!="MZ"&&br!="Stock"||qr.includes(J?.value?.UserId)||Nr.includes(J?.value?.LpuId));case"getRegister":return J?.value?.LpuId===BURYAT_PHARMACY_ID}}vue.watch(()=>[rn.value.BenefitCodeShort,rn.value.ProgramName,rn.value.LpuIdPrikrep],()=>{rn.value.FileName=sn()});function sn(){return`${rn.value.BenefitCodeShort||"Все-льготы"}_${rn.value.ProgramName?.replace(/\s/g,"-")||"Все-программы"}_${M.value.find(Ir=>Ir.Id===rn.value.LpuIdPrikrep)?.Name?.replace(/\s/g,"-")||"Все-МО"}_${hooks().format("YYYY-MM-DD_HH-mm-ss")}`}function pn(){rn.value={},yn.value=!0,rn.value.FileName=sn()}async function gn(){Ht.value=!0;try{const Ir=await window.axios.get(window.localhost+"dbf/export",{params:rn.value});Ir.data?.File&&Ir.data?.Name?yr(Ir.data):notifyError$1("Нет данных для экспорта")}catch(Ir){notifyError$1(`Ошибка при экспорте:
|
|
1303
1303
|
`+Ir.message)}finally{Ht.value=!1}}function yr(Ir){let br="data: application/x-zip-compressed;base64,"+Ir.File,qr=document.createElement("a");qr.href=br,qr.setAttribute("download",Ir.Name),document.body.appendChild(qr),qr.click(),document.body.removeChild(qr)}async function lr(Ir){"filters"in Ir&&(Ir=Ir.filters),Ir={...Nt.value,...Ir,...N.frlloFilters},un.value=Ir,Ht.value=!0;try{const br=await $t(Ir);jt.value=br}catch(br){jt.value=[],notifyError$1(`Ошибка при загрузке данных:
|
|
1304
|
-
`+br.message)}finally{Ht.value=!1}}async function nr(Ir){const br=await zt({Snils:Ir.Snils,BenefitCodeShort:Ir.BenefitCodeShort},!1);hn.value=br,Zt.value=Ir,Kt.value=!0}function Jt(){hn.value=[],Zt.value=null}const Ln={ОНЛС:[null],ВЗН:[null],"Орфанные заболевания":[null],П890:["ALL"],ССЗ:["ALL"],"Паллиативная помощь":["ALL"],"Сахарный диабет":["ALL"],"Дети до трёх лет":["ALL"],"Фонд Круг добра":[null],"Незарег. ЛП.":[null],"НМГ(Беременные)":["ALL"],"НМГ(Дети)":["ALL"],"Хронический Гепатит C":[RKIB_ID]};function $n(Ir){const br=Ln[Ir?.BenefitProgram]?.includes(J.value.LpuId),qr=Ln[Ir?.BenefitProgram]?.includes(J.value.UserId),Nr=Ln[Ir?.BenefitProgram]?.includes("ALL")&&cn("registerControl")&&J.value.LpuId!==RKIB_ID,fr=!Object.keys(Ln).includes(Ir?.BenefitProgram),_o=J.value.LpuId===N.dataPatient?.LpuId&&Ir?.BenefitProgram==="Хронический Гепатит C";if(!Bt.value)if(br||qr||Nr||fr||Pt||_o){const{Id:Ca,LogDateTime:Da,PatientBenefitId:qu,...rd}=Ir;Zt.value=rd,N.infoOnly?notifyWarning("Данные только в режиме просмотра",15e3,"Ограничено системой"):vr()}else notifyWarning("У вас нет прав на редактирование данной льготы",15e3,"Ограничено системой");if(typeof N.customRowClickHandler=="function"){N.customRowClickHandler(Ir);return}}function gr(){Kt.value=!1,$n(hn.value[0])}function Dn(Ir){if(Ir?.Deleted)return"#f9c7c8";if(Ir?.Monetization)return"#f3c77a";let br=hooks().startOf("day"),qr=hooks(Ir.DateIn).startOf("day"),Nr=hooks(Ir.DateOut??"2999-12-12").startOf("day");return!Ir.DateOut||br.isBetween(qr,Nr,null,"[]")?"#cbe4cb":"#dedee1"}BenefitProgram(Ir=>vt.value=Ir.map(br=>({...br,Benefits:JSON.parse(br.Benefits)}))),BenefitMap(Ir=>Dt.value=Ir);const Sn=["Snils","Fio","AttachedMo"],wn=vue.computed(()=>{let Ir=[{accessor:"Fio",type:"text",name:"Ф.И.О."},{accessor:"ProgramId",type:"select",list:vt.value,name:"Программа"},{accessor:"BenefitCodeShort",type:"select",name:"Код льготы",relation:({values:br})=>br?.ProgramId?vt.value.find(qr=>br.ProgramId===qr.Id).Benefits:Dt.value,display:br=>"("+br.BenefitCodeShort+") "+br.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&&(Ir=Ir.filter(br=>!Sn.includes(br.accessor))),V||(Ir=Ir.filter(br=>br.accessor!=="InMis")),Ir});vue.watch(()=>N.dataPatient.PatientSnils,()=>{N.dataPatient.PatientSnils&&lr({})},{immediate:!0});const er=vue.computed(()=>[{name:"Ф.И.О.",accessor:"PatientFio"},{name:"Дата рождения",display:br=>hooks(br.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:br=>br?.DateIn?hooks(br.DateIn).format("DD.MM.YYYY"):"-"},{name:"Дата конца",display:br=>br?.DateOut?hooks(br.DateOut).format("DD.MM.YYYY"):"-"},{name:"Статус ФРЛЛО",display:br=>br?.FrlloStatus?br.FrlloStatus:"Не выгружен"},{name:"Дата изменения",display:br=>hooks(br.LogDateTime).format("DD.MM.YYYY HH:mm:ss")},{name:"Пользователь",display:br=>(br.EmployeeLastname||"").trim()+" "+(br.EmployeeFirstname||"").trim()+" "+(br.EmployeePatronymic||"").trim()}].filter(br=>!br.hidden).map(br=>({Title:br.name,Field:typeof br.display=="function"?br.display:br.accessor,Template:br?.Template}))),or=vue.computed(()=>[{name:"Программа",accessor:"BenefitProgram"},{name:"Диагноз",accessor:"Ds"},{name:"Код льготы",accessor:"BenefitCodeShort"},{name:"Категория льготности",accessor:"BenefitName",Template:"BenefitName"},{name:"Монетизирована",accessor:"MonetizationText"},{name:"Дата начала",display:br=>br?.DateIn?hooks(br.DateIn).format("DD.MM.YYYY"):"-"},{name:"Дата конца",display:br=>br?.DateOut?hooks(br.DateOut).format("DD.MM.YYYY"):"-"},{name:"Статус ФРЛЛО",display:br=>br?.FrlloStatus?br.FrlloStatus:"Не выгружен"},{name:"Дата изменения",display:br=>hooks(br.LogDateTime).format("DD.MM.YYYY HH:mm:ss")},{name:"Пользователь",display:br=>(br.EmployeeLastname||"").trim()+" "+(br.EmployeeFirstname||"").trim()+" "+(br.EmployeePatronymic||"").trim()}].filter(br=>!br.hidden).map(br=>({Title:br.name,Field:typeof br.display=="function"?br.display:br.accessor,Template:br?.Template})));function vr(){yt.value=!0}function Hn(Ir){yt.value=!1,notifyError$1(Ir)}async function rr(){yt.value=!1,await new Promise(Ir=>setTimeout(Ir,1e3)),lr(un.value),notifySuccess("Льгота сохранена успешно!")}function an(){yt.value=!1,lr(un.value),notifySuccess("Льгота аннулирована!")}function xr(){Zt.value=null,vr()}function hr(){Et.value=!0}function wr(){return jt.value.filter(Ir=>Ir._selected_).map(Ir=>({Id:Ir.PatientBenefitId,Snils:Ir.PatientSnils}))}function Fr(){rn.value={}}return I({getSelectedRows:wr}),(Ir,br)=>(vue.openBlock(),vue.createElementBlock("div",null,[vue.createElementVNode("div",_hoisted_1$p,[N.viewFilter?(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$j,[vue.createVNode(_sfc_main$G,{"filter-list":wn.value,onSearch:lr},null,8,["filter-list"])])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_3$e,[br[13]||(br[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)),cn("getRegister")&&!N.infoOnly?(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:0,onClick:pn,"prepend-icon":"download"},{default:vue.withCtx(()=>[...br[10]||(br[10]=[vue.createTextVNode("Экспорт в .dbf",-1)])]),_:1})):vue.createCommentVNode("",!0),cn("registerControl")&&!N.infoOnly?(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:1,onClick:xr,"prepend-icon":"plus",primary:""},{default:vue.withCtx(()=>[...br[11]||(br[11]=[vue.createTextVNode("Добавить льготу",-1)])]),_:1})):vue.createCommentVNode("",!0),vue.unref(Pt)&&!N.infoOnly?(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:2,onClick:hr,"prepend-icon":"unlock-keyhole",style:{backgroundColor:"white",color:"rgb(198 28 28 / var(--tw-text-opacity))"}},{default:vue.withCtx(()=>[...br[12]||(br[12]=[vue.createTextVNode("Доступ к ССЗ",-1)])]),_:1})):vue.createCommentVNode("",!0)]),vue.createVNode(ReSimpleTable,{"enable-xlsx-export":Bt.value,data:jt.value,columns:Bt.value?er.value:or.value,"page-size":20,"enable-page-size-selector":"","table-id":"benefitsList","context-actions":vn,"row-color":Dn,onRowClicked:$n},{"cell(BenefitName)":vue.withCtx(({record:qr})=>[vue.createElementVNode("p",{class:"cell-lite",title:qr?.BenefitName},vue.toDisplayString(qr?.BenefitName),9,_hoisted_4$d)]),"cell(SmoName)":vue.withCtx(({record:qr})=>[vue.createElementVNode("p",{class:"cell-lite",title:qr?.SmoName},vue.toDisplayString(qr?.SmoName),9,_hoisted_5$c)]),_:1},8,["enable-xlsx-export","data","columns"]),jt.value.length>950?(vue.openBlock(),vue.createElementBlock("div",_hoisted_6$c,[vue.createElementVNode("p",null,"Показаны первые ~"+vue.toDisplayString(Math.ceil(jt.value.length/1e3)*1e3)+" записей, чтобы найти нужного пациента уточните фильтры",1)])):vue.createCommentVNode("",!0)]),vue.withDirectives(vue.createElementVNode("div",_hoisted_7$b,[...br[14]||(br[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,Ht.value]]),vue.createVNode(vue.unref(Ps),{modelValue:Kt.value,"onUpdate:modelValue":br[0]||(br[0]=qr=>Kt.value=qr),title:`История льготы ${Zt.value?.BenefitCodeShort}`,class:"p-4",size:"7xl",onClose:Jt},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_8$a,[vue.createElementVNode("div",_hoisted_9$8,[cn("registerControl")&&!N.infoOnly?(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:0,onClick:gr,"prepend-icon":"pencil"},{default:vue.withCtx(()=>[...br[15]||(br[15]=[vue.createTextVNode("Изменить льготу",-1)])]),_:1})):vue.createCommentVNode("",!0)]),vue.createVNode(ReSimpleTable,{data:hn.value,columns:or.value,"page-size":20,"enable-page-size-selector":"","table-id":"benefitsListHistory"},{"cell(BenefitName)":vue.withCtx(({record:qr})=>[vue.createElementVNode("p",{class:"cell-lite",title:qr?.BenefitName},vue.toDisplayString(qr?.BenefitName),9,_hoisted_10$8)]),_:1},8,["data","columns"])])]),_:1},8,["modelValue","title"]),vue.createVNode(vue.unref(Ps),{modelValue:yt.value,"onUpdate:modelValue":br[1]||(br[1]=qr=>yt.value=qr),title:"Льгота",size:"5xl",class:"p-4"},{default:vue.withCtx(()=>[vue.createVNode(_sfc_main$x,{snils:Zt.value?.Snils||N.dataPatient.PatientSnils,"user-open":J.value,"patient-open":N.dataPatient,onSave:rr,onDelete:an,onError:Hn,"edit-benefit":Zt.value,disable:N.infoOnly,permisionLgot:PermissionLgot},null,8,["snils","user-open","patient-open","edit-benefit","disable"])]),_:1},8,["modelValue"]),vue.createVNode(vue.unref(Ps),{modelValue:yn.value,"onUpdate:modelValue":br[8]||(br[8]=qr=>yn.value=qr),title:"Экспорт .dbf",size:"5xl",class:"p-4"},{default:vue.withCtx(()=>[vue.createElementVNode("form",{class:"flex flex-col gap-4",onSubmit:vue.withModifiers(gn,["prevent"])},[vue.createVNode(vue.unref(AA),{label:"Имя файла",disabled:"",modelValue:rn.value.FileName,"onUpdate:modelValue":br[2]||(br[2]=qr=>rn.value.FileName=qr)},null,8,["modelValue"]),vue.createVNode(_sfc_main$M,{required:!rn.value.BenefitCodeShort&&!rn.value.ProgramName,label:"МО прикрепления",data:M.value,modelValue:rn.value.LpuIdPrikrep,"onUpdate:modelValue":br[3]||(br[3]=qr=>rn.value.LpuIdPrikrep=qr),"id-field":"Id","display-expr":qr=>qr.Name,clearable:""},null,8,["required","data","modelValue","display-expr"]),vue.createElementVNode("div",_hoisted_11$7,[vue.createElementVNode("div",_hoisted_12$7,[vue.createElementVNode("fieldset",_hoisted_13$6,[br[16]||(br[16]=vue.createElementVNode("legend",{class:"px-2 font-semibold text-sm"},"Льгота",-1)),vue.createVNode(_sfc_main$M,{required:!rn.value.BenefitCodeShort&&!rn.value.LpuIdPrikrep,label:"Программа",data:vt.value,modelValue:rn.value.ProgramName,"onUpdate:modelValue":br[4]||(br[4]=qr=>rn.value.ProgramName=qr),"id-field":"Name","display-expr":qr=>qr.Name,clearable:""},null,8,["required","data","modelValue","display-expr"]),vue.createVNode(_sfc_main$M,{required:!rn.value.ProgramName&&!rn.value.LpuIdPrikrep,label:"Код льготы",data:Dt.value,modelValue:rn.value.BenefitCodeShort,"onUpdate:modelValue":br[5]||(br[5]=qr=>rn.value.BenefitCodeShort=qr),"id-field":"BenefitCodeShort","display-expr":qr=>qr.BenefitCodeShort+" | "+qr.BenefitNameLong,clearable:"",limit:1e3},null,8,["required","data","modelValue","display-expr"])])]),vue.createElementVNode("div",_hoisted_14$5,[vue.createElementVNode("fieldset",_hoisted_15$4,[br[17]||(br[17]=vue.createElementVNode("legend",{class:"px-2 font-semibold text-sm"},"Период активности льготы",-1)),vue.createVNode(_sfc_main$N,{style:{width:"250px"},modelValue:rn.value.BenefitStartDate,"onUpdate:modelValue":br[6]||(br[6]=qr=>rn.value.BenefitStartDate=qr),label:"Дата начала",clearable:""},null,8,["modelValue"]),vue.createVNode(_sfc_main$N,{style:{width:"250px"},modelValue:rn.value.BenefitEndDate,"onUpdate:modelValue":br[7]||(br[7]=qr=>rn.value.BenefitEndDate=qr),label:"Дата окончания",clearable:""},null,8,["modelValue"])])])]),vue.createElementVNode("div",_hoisted_16$4,[vue.createVNode(vue.unref(_2),{label:"Сбросить фильтры",onClick:Fr,delete:"",secondary:"","prepend-icon":"xmark"}),vue.createVNode(vue.unref(_2),{type:"submit","prepend-icon":"download",primary:""},{default:vue.withCtx(()=>[...br[18]||(br[18]=[vue.createTextVNode("Экспортировать",-1)])]),_:1})])],32)]),_:1},8,["modelValue"]),vue.createVNode(PermissionLgot,{isAdmin:vue.unref(Pt),visible:Et.value,"onUpdate:visible":br[9]||(br[9]=qr=>Et.value=qr)},null,8,["isAdmin","visible"])]))}},_hoisted_1$o={key:0,class:"grid grid-cols-2 gap-4 p-4"},_hoisted_2$i={class:"flex flex-col gap-2"},_hoisted_3$d={class:"flex items-center gap-2"},_hoisted_4$c={class:"flex items-center gap-2"},_hoisted_5$b={class:"flex items-center gap-2"},_hoisted_6$b={class:"flex flex-col gap-2"},_hoisted_7$a={class:"flex items-center gap-2"},_hoisted_8$9={class:"flex items-center gap-2"},_hoisted_9$7={class:"flex items-center gap-2"},_hoisted_10$7={class:"col-span-2 flex flex-col gap-2"},_hoisted_11$6={class:"flex items-center gap-2"},_hoisted_12$6={class:"flex items-center gap-2"},_hoisted_13$5={class:"border-t border-gray-200 mt-4 pt-4"},_sfc_main$u={__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)}),vt=vue.computed({get:()=>J.patient,set:yt=>N("update:patient",yt)});return(yt,Et)=>(vue.openBlock(),vue.createBlock(vue.unref(Ps),{title:J.titleOverride??`Информация о пациенте ${J.patient?.PatientFio} ${vue.unref(hooks)(J.patient?.PatientBirthdate).format("DD.MM.YYYY")}`,class:"p-4",modelValue:M.value,"onUpdate:modelValue":Et[0]||(Et[0]=Dt=>M.value=Dt),onClose:Et[1]||(Et[1]=Dt=>vt.value={}),size:"7xl",expanded:V.value,"onUpdate:expanded":Et[2]||(Et[2]=Dt=>V.value=Dt)},{default:vue.withCtx(()=>[vue.createElementVNode("div",null,[vue.createVNode(vue.unref(gv1),{grow:"","keep-mounted":""},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(Mv1),null,{default:vue.withCtx(()=>[vue.createVNode(vue.unref(Cv1),null,{default:vue.withCtx(()=>[...Et[3]||(Et[3]=[vue.createElementVNode("h2",null,"Данные пациента",-1)])]),_:1}),J.infoOnly?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(vue.unref(Cv1),{key:0},{default:vue.withCtx(()=>[...Et[4]||(Et[4]=[vue.createElementVNode("h2",null,"Заявочная кампания",-1)])]),_:1}))]),_:1}),vue.createVNode(vue.unref(Vv1),null,{default:vue.withCtx(()=>[vue.createVNode(vue.unref(bv1),null,{default:vue.withCtx(()=>[vue.createElementVNode("div",null,[J.hideDataPatient?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$o,[vue.createElementVNode("div",_hoisted_2$i,[vue.createElementVNode("div",_hoisted_3$d,[Et[5]||(Et[5]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"ФИО:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(vt.value?.PatientFio),1)]),vue.createElementVNode("div",_hoisted_4$c,[Et[6]||(Et[6]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"СНИЛС:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(vt.value?.PatientSnils),1)]),vue.createElementVNode("div",_hoisted_5$b,[Et[7]||(Et[7]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"Дата рождения:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(vue.unref(hooks)(vt.value?.PatientBirthdate).format("DD.MM.YYYY")),1)])]),vue.createElementVNode("div",_hoisted_6$b,[vue.createElementVNode("div",_hoisted_7$a,[Et[8]||(Et[8]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"Полис:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(vt.value?.PolicyNumber),1)]),vue.createElementVNode("div",_hoisted_8$9,[Et[9]||(Et[9]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"СМО:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(vt.value?.SmoName),1)]),vue.createElementVNode("div",_hoisted_9$7,[Et[10]||(Et[10]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"Прикрепление:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(vt.value?.AttachedMoName),1)])]),vue.createElementVNode("div",_hoisted_10$7,[vue.createElementVNode("div",_hoisted_11$6,[Et[11]||(Et[11]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"Адрес регистрации:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(vt.value?.AddressReg),1)]),vue.createElementVNode("div",_hoisted_12$6,[Et[12]||(Et[12]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"Адрес фактический:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(vt.value?.AddressFact),1)])])])),vue.createElementVNode("div",_hoisted_13$5,[Et[13]||(Et[13]=vue.createElementVNode("h3",{class:"text-lg font-medium text-gray-900 mb-4"}," Льготы пациента ",-1)),vue.createVNode(_sfc_main$v,{"data-patient":vt.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(bv1),{key:0},{default:vue.withCtx(()=>[vue.createVNode(_sfc_main$z,{"patient-id":vt.value.PatientId,"patient-snils":vt.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"]))}};var Mode=(e=>(e[e.DELAY=0]="DELAY",e[e.INTERVAL=1]="INTERVAL",e[e.INTERVAL_BLOCK=2]="INTERVAL_BLOCK",e))(Mode||{});const jV=class jV{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}};jV.MODE=Mode;let ActionLimiter=jV;const DEFAULT_TYPE$1="string",TYPES=["string","boolean","number","date"],defaultMethods$1={"=":{compare:(e,I,N="string")=>N==="date"?e.isSame(I):e===I,types:TYPES,icon:"equals"},"!=":{compare:(e,I,N="string")=>N==="date"?!e.isSame(I):e!==I,types:TYPES,icon:"not-equal"},">":{compare:(e,I,N="string")=>N==="date"?e.isBefore(I):e>I,types:["number","date"],icon:"greater-than"},">=":{compare:(e,I,N="string")=>N==="date"?e.isSameOrBefore(I):e>=I,types:["number","date"],icon:"greater-than-equal"},"<":{compare:(e,I,N="string")=>N==="date"?e.isAfter(I):e<I,types:["number","date"],icon:"less-than"},"<=":{compare:(e,I,N="string")=>N==="date"?e.isSameOrAfter(I):e<=I,types:["number","date"],icon:"less-than-equal"},include:{compare:(e,I)=>I?String(I).toLowerCase().includes(e.toLowerCase()):!1,types:["string"],icon:"t"},exclude:{compare:(e,I)=>I?!String(I).toLowerCase().includes(e.toLowerCase()):!0,types:["string"],icon:"text-slash"}},types$1={string:{method:"include",value:""},number:{method:"=",value:null},boolean:{method:"=",value:!1},date:{method:"=",value:""}};function getFilterValue$1(e){return e in types$1?types$1[e].value:types$1[DEFAULT_TYPE$1].value}function getFilterMethod$1(e){return e in types$1?types$1[e].method:types$1[DEFAULT_TYPE$1].method}function getMethodIcon$1(e){return e in defaultMethods$1?defaultMethods$1[e].icon:"question"}function getFilter$1(e){return{method:getFilterMethod$1(e),value:getFilterValue$1(e)}}function getMethodsForType$1(e){if(typeof e=="string"&&TYPES.includes(e)){let I=[];for(let N in defaultMethods$1)defaultMethods$1[N].types.includes(e)&&I.push(N);return I}else{let I=new Error('Невозможно получить список методов сравнения для неопределённого типа: "'+e+'"');throw console.error(I),I}}function compare$1(e,I,N="string"){let J=e.value,V=I;if(N==="date"&&(J=hooks(hooks(J).format("YYYY-MM-DD")),V=hooks(hooks(V).format("YYYY-MM-DD"))),e?.method&&e.method in defaultMethods$1)if(e?.value??!1)try{return defaultMethods$1[e.method].compare(J,V,N)}catch(M){throw new Error(`Не удалось сравнить данные для фильтрации.
|
|
1304
|
+
`+br.message)}finally{Ht.value=!1}}async function nr(Ir){const br=await zt({Snils:Ir.Snils,BenefitCodeShort:Ir.BenefitCodeShort},!1);hn.value=br,Zt.value=Ir,Kt.value=!0}function Jt(){hn.value=[],Zt.value=null}const Ln={ОНЛС:[null],ВЗН:[null],"Орфанные заболевания":[null],П890:["ALL"],ССЗ:["ALL"],"Паллиативная помощь":["ALL"],"Сахарный диабет":["ALL"],"Дети до трёх лет":["ALL"],"Фонд Круг добра":[null],"Незарег. ЛП.":[null],"НМГ(Беременные)":["ALL"],"НМГ(Дети)":["ALL"],"Хронический Гепатит C":[RKIB_ID]};function $n(Ir){const br=Ln[Ir?.BenefitProgram]?.includes(J.value.LpuId),qr=Ln[Ir?.BenefitProgram]?.includes(J.value.UserId),Nr=Ln[Ir?.BenefitProgram]?.includes("ALL")&&cn("registerControl")&&J.value.LpuId!==RKIB_ID,fr=!Object.keys(Ln).includes(Ir?.BenefitProgram),_o=J.value.LpuId===N.dataPatient?.LpuId&&Ir?.BenefitProgram==="Хронический Гепатит C";if(!Bt.value)if(br||qr||Nr||fr||Pt||_o){const{Id:Ca,LogDateTime:Da,PatientBenefitId:qu,...rd}=Ir;Zt.value=rd,N.infoOnly?notifyWarning("Данные только в режиме просмотра",15e3,"Ограничено системой"):vr()}else notifyWarning("У вас нет прав на редактирование данной льготы",15e3,"Ограничено системой");if(typeof N.customRowClickHandler=="function"){N.customRowClickHandler(Ir);return}}function gr(){Kt.value=!1,$n(hn.value[0])}function Dn(Ir){if(Ir?.Deleted)return"#f9c7c8";if(Ir?.Monetization)return"#f3c77a";let br=hooks().startOf("day"),qr=hooks(Ir.DateIn).startOf("day"),Nr=hooks(Ir.DateOut??"2999-12-12").startOf("day");return!Ir.DateOut||br.isBetween(qr,Nr,null,"[]")?"#cbe4cb":"#dedee1"}BenefitProgram(Ir=>vt.value=Ir.map(br=>({...br,Benefits:JSON.parse(br.Benefits)}))),BenefitMap(Ir=>Dt.value=Ir);const Sn=["Snils","Fio","AttachedMo"],wn=vue.computed(()=>{if(N.filterList?.length)return N.filterList;let Ir=[{accessor:"Fio",type:"text",name:"Ф.И.О."},{accessor:"ProgramId",type:"select",list:vt.value,name:"Программа"},{accessor:"BenefitCodeShort",type:"select",name:"Код льготы",relation:({values:br})=>br?.ProgramId?vt.value.find(qr=>br.ProgramId===qr.Id).Benefits:Dt.value,display:br=>"("+br.BenefitCodeShort+") "+br.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&&(Ir=Ir.filter(br=>!Sn.includes(br.accessor))),V||(Ir=Ir.filter(br=>br.accessor!=="InMis")),Ir});vue.watch(()=>N.dataPatient.PatientSnils,()=>{N.dataPatient.PatientSnils&&lr({})},{immediate:!0});const er=vue.computed(()=>[{name:"Ф.И.О.",accessor:"PatientFio"},{name:"Дата рождения",display:br=>hooks(br.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:br=>br?.DateIn?hooks(br.DateIn).format("DD.MM.YYYY"):"-"},{name:"Дата конца",display:br=>br?.DateOut?hooks(br.DateOut).format("DD.MM.YYYY"):"-"},{name:"Статус ФРЛЛО",display:br=>br?.FrlloStatus?br.FrlloStatus:"Не выгружен"},{name:"Дата изменения",display:br=>hooks(br.LogDateTime).format("DD.MM.YYYY HH:mm:ss")},{name:"Пользователь",display:br=>(br.EmployeeLastname||"").trim()+" "+(br.EmployeeFirstname||"").trim()+" "+(br.EmployeePatronymic||"").trim()}].filter(br=>!br.hidden).map(br=>({Title:br.name,Field:typeof br.display=="function"?br.display:br.accessor,Template:br?.Template}))),or=vue.computed(()=>[{name:"Программа",accessor:"BenefitProgram"},{name:"Диагноз",accessor:"Ds"},{name:"Код льготы",accessor:"BenefitCodeShort"},{name:"Категория льготности",accessor:"BenefitName",Template:"BenefitName"},{name:"Монетизирована",accessor:"MonetizationText"},{name:"Дата начала",display:br=>br?.DateIn?hooks(br.DateIn).format("DD.MM.YYYY"):"-"},{name:"Дата конца",display:br=>br?.DateOut?hooks(br.DateOut).format("DD.MM.YYYY"):"-"},{name:"Статус ФРЛЛО",display:br=>br?.FrlloStatus?br.FrlloStatus:"Не выгружен"},{name:"Дата изменения",display:br=>hooks(br.LogDateTime).format("DD.MM.YYYY HH:mm:ss")},{name:"Пользователь",display:br=>(br.EmployeeLastname||"").trim()+" "+(br.EmployeeFirstname||"").trim()+" "+(br.EmployeePatronymic||"").trim()}].filter(br=>!br.hidden).map(br=>({Title:br.name,Field:typeof br.display=="function"?br.display:br.accessor,Template:br?.Template})));function vr(){yt.value=!0}function Hn(Ir){yt.value=!1,notifyError$1(Ir)}async function rr(){yt.value=!1,await new Promise(Ir=>setTimeout(Ir,1e3)),lr(un.value),notifySuccess("Льгота сохранена успешно!")}function an(){yt.value=!1,lr(un.value),notifySuccess("Льгота аннулирована!")}function xr(){Zt.value=null,vr()}function hr(){Et.value=!0}function wr(){return jt.value.filter(Ir=>Ir._selected_).map(Ir=>({Id:Ir.PatientBenefitId,Snils:Ir.PatientSnils}))}function Fr(){rn.value={}}return I({getSelectedRows:wr}),(Ir,br)=>(vue.openBlock(),vue.createElementBlock("div",null,[vue.createElementVNode("div",_hoisted_1$p,[N.viewFilter?(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$j,[vue.createVNode(_sfc_main$G,{"filter-list":wn.value,onSearch:lr},null,8,["filter-list"])])):vue.createCommentVNode("",!0),N.visibleHelperStateLgota?(vue.openBlock(),vue.createElementBlock("div",_hoisted_3$e,[br[13]||(br[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)),cn("getRegister")&&!N.infoOnly?(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:0,onClick:pn,"prepend-icon":"download"},{default:vue.withCtx(()=>[...br[10]||(br[10]=[vue.createTextVNode("Экспорт в .dbf",-1)])]),_:1})):vue.createCommentVNode("",!0),cn("registerControl")&&!N.infoOnly?(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:1,onClick:xr,"prepend-icon":"plus",primary:""},{default:vue.withCtx(()=>[...br[11]||(br[11]=[vue.createTextVNode("Добавить льготу",-1)])]),_:1})):vue.createCommentVNode("",!0),vue.unref(Pt)&&!N.infoOnly?(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:2,onClick:hr,"prepend-icon":"unlock-keyhole",style:{backgroundColor:"white",color:"rgb(198 28 28 / var(--tw-text-opacity))"}},{default:vue.withCtx(()=>[...br[12]||(br[12]=[vue.createTextVNode("Доступ к ССЗ",-1)])]),_:1})):vue.createCommentVNode("",!0)])):vue.createCommentVNode("",!0),vue.createVNode(ReSimpleTable,{"enable-xlsx-export":Bt.value&&N.visibleExportExcel,data:jt.value,columns:Bt.value?N.columnsMainTable?.length||er.value:or.value,"page-size":20,"enable-page-size-selector":"","table-id":"benefitsList","context-actions":N.visibleContextTable?vn:null,"row-color":Dn,onRowClicked:$n},{"cell(BenefitName)":vue.withCtx(({record:qr})=>[vue.createElementVNode("p",{class:"cell-lite",title:qr?.BenefitName},vue.toDisplayString(qr?.BenefitName),9,_hoisted_4$d)]),"cell(SmoName)":vue.withCtx(({record:qr})=>[vue.createElementVNode("p",{class:"cell-lite",title:qr?.SmoName},vue.toDisplayString(qr?.SmoName),9,_hoisted_5$c)]),_:1},8,["enable-xlsx-export","data","columns","context-actions"]),jt.value.length>950?(vue.openBlock(),vue.createElementBlock("div",_hoisted_6$c,[vue.createElementVNode("p",null,"Показаны первые ~"+vue.toDisplayString(Math.ceil(jt.value.length/1e3)*1e3)+" записей, чтобы найти нужного пациента уточните фильтры",1)])):vue.createCommentVNode("",!0)]),vue.withDirectives(vue.createElementVNode("div",_hoisted_7$b,[...br[14]||(br[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,Ht.value]]),vue.createVNode(vue.unref(Ps),{modelValue:Kt.value,"onUpdate:modelValue":br[0]||(br[0]=qr=>Kt.value=qr),title:`История льготы ${Zt.value?.BenefitCodeShort}`,class:"p-4",size:"7xl",onClose:Jt},{default:vue.withCtx(()=>[vue.createElementVNode("div",_hoisted_8$a,[vue.createElementVNode("div",_hoisted_9$8,[cn("registerControl")&&!N.infoOnly?(vue.openBlock(),vue.createBlock(vue.unref(_2),{key:0,onClick:gr,"prepend-icon":"pencil"},{default:vue.withCtx(()=>[...br[15]||(br[15]=[vue.createTextVNode("Изменить льготу",-1)])]),_:1})):vue.createCommentVNode("",!0)]),vue.createVNode(ReSimpleTable,{data:hn.value,columns:or.value,"page-size":20,"enable-page-size-selector":"","table-id":"benefitsListHistory"},{"cell(BenefitName)":vue.withCtx(({record:qr})=>[vue.createElementVNode("p",{class:"cell-lite",title:qr?.BenefitName},vue.toDisplayString(qr?.BenefitName),9,_hoisted_10$8)]),_:1},8,["data","columns"])])]),_:1},8,["modelValue","title"]),vue.createVNode(vue.unref(Ps),{modelValue:yt.value,"onUpdate:modelValue":br[1]||(br[1]=qr=>yt.value=qr),title:"Льгота",size:"5xl",class:"p-4"},{default:vue.withCtx(()=>[vue.createVNode(_sfc_main$x,{snils:Zt.value?.Snils||N.dataPatient.PatientSnils,"user-open":J.value,"patient-open":N.dataPatient,onSave:rr,onDelete:an,onError:Hn,"edit-benefit":Zt.value,disable:N.infoOnly,permisionLgot:PermissionLgot},null,8,["snils","user-open","patient-open","edit-benefit","disable"])]),_:1},8,["modelValue"]),vue.createVNode(vue.unref(Ps),{modelValue:yn.value,"onUpdate:modelValue":br[8]||(br[8]=qr=>yn.value=qr),title:"Экспорт .dbf",size:"5xl",class:"p-4"},{default:vue.withCtx(()=>[vue.createElementVNode("form",{class:"flex flex-col gap-4",onSubmit:vue.withModifiers(gn,["prevent"])},[vue.createVNode(vue.unref(AA),{label:"Имя файла",disabled:"",modelValue:rn.value.FileName,"onUpdate:modelValue":br[2]||(br[2]=qr=>rn.value.FileName=qr)},null,8,["modelValue"]),vue.createVNode(_sfc_main$M,{required:!rn.value.BenefitCodeShort&&!rn.value.ProgramName,label:"МО прикрепления",data:M.value,modelValue:rn.value.LpuIdPrikrep,"onUpdate:modelValue":br[3]||(br[3]=qr=>rn.value.LpuIdPrikrep=qr),"id-field":"Id","display-expr":qr=>qr.Name,clearable:""},null,8,["required","data","modelValue","display-expr"]),vue.createElementVNode("div",_hoisted_11$7,[vue.createElementVNode("div",_hoisted_12$7,[vue.createElementVNode("fieldset",_hoisted_13$6,[br[16]||(br[16]=vue.createElementVNode("legend",{class:"px-2 font-semibold text-sm"},"Льгота",-1)),vue.createVNode(_sfc_main$M,{required:!rn.value.BenefitCodeShort&&!rn.value.LpuIdPrikrep,label:"Программа",data:vt.value,modelValue:rn.value.ProgramName,"onUpdate:modelValue":br[4]||(br[4]=qr=>rn.value.ProgramName=qr),"id-field":"Name","display-expr":qr=>qr.Name,clearable:""},null,8,["required","data","modelValue","display-expr"]),vue.createVNode(_sfc_main$M,{required:!rn.value.ProgramName&&!rn.value.LpuIdPrikrep,label:"Код льготы",data:Dt.value,modelValue:rn.value.BenefitCodeShort,"onUpdate:modelValue":br[5]||(br[5]=qr=>rn.value.BenefitCodeShort=qr),"id-field":"BenefitCodeShort","display-expr":qr=>qr.BenefitCodeShort+" | "+qr.BenefitNameLong,clearable:"",limit:1e3},null,8,["required","data","modelValue","display-expr"])])]),vue.createElementVNode("div",_hoisted_14$5,[vue.createElementVNode("fieldset",_hoisted_15$4,[br[17]||(br[17]=vue.createElementVNode("legend",{class:"px-2 font-semibold text-sm"},"Период активности льготы",-1)),vue.createVNode(_sfc_main$N,{style:{width:"250px"},modelValue:rn.value.BenefitStartDate,"onUpdate:modelValue":br[6]||(br[6]=qr=>rn.value.BenefitStartDate=qr),label:"Дата начала",clearable:""},null,8,["modelValue"]),vue.createVNode(_sfc_main$N,{style:{width:"250px"},modelValue:rn.value.BenefitEndDate,"onUpdate:modelValue":br[7]||(br[7]=qr=>rn.value.BenefitEndDate=qr),label:"Дата окончания",clearable:""},null,8,["modelValue"])])])]),vue.createElementVNode("div",_hoisted_16$4,[vue.createVNode(vue.unref(_2),{label:"Сбросить фильтры",onClick:Fr,delete:"",secondary:"","prepend-icon":"xmark"}),vue.createVNode(vue.unref(_2),{type:"submit","prepend-icon":"download",primary:""},{default:vue.withCtx(()=>[...br[18]||(br[18]=[vue.createTextVNode("Экспортировать",-1)])]),_:1})])],32)]),_:1},8,["modelValue"]),vue.createVNode(PermissionLgot,{isAdmin:vue.unref(Pt),visible:Et.value,"onUpdate:visible":br[9]||(br[9]=qr=>Et.value=qr)},null,8,["isAdmin","visible"])]))}},_hoisted_1$o={key:0,class:"grid grid-cols-2 gap-4 p-4"},_hoisted_2$i={class:"flex flex-col gap-2"},_hoisted_3$d={class:"flex items-center gap-2"},_hoisted_4$c={class:"flex items-center gap-2"},_hoisted_5$b={class:"flex items-center gap-2"},_hoisted_6$b={class:"flex flex-col gap-2"},_hoisted_7$a={class:"flex items-center gap-2"},_hoisted_8$9={class:"flex items-center gap-2"},_hoisted_9$7={class:"flex items-center gap-2"},_hoisted_10$7={class:"col-span-2 flex flex-col gap-2"},_hoisted_11$6={class:"flex items-center gap-2"},_hoisted_12$6={class:"flex items-center gap-2"},_hoisted_13$5={class:"border-t border-gray-200 mt-4 pt-4"},_sfc_main$u={__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)}),vt=vue.computed({get:()=>J.patient,set:yt=>N("update:patient",yt)});return(yt,Et)=>(vue.openBlock(),vue.createBlock(vue.unref(Ps),{title:J.titleOverride??`Информация о пациенте ${J.patient?.PatientFio} ${vue.unref(hooks)(J.patient?.PatientBirthdate).format("DD.MM.YYYY")}`,class:"p-4",modelValue:M.value,"onUpdate:modelValue":Et[0]||(Et[0]=Dt=>M.value=Dt),onClose:Et[1]||(Et[1]=Dt=>vt.value={}),size:"7xl",expanded:V.value,"onUpdate:expanded":Et[2]||(Et[2]=Dt=>V.value=Dt)},{default:vue.withCtx(()=>[vue.createElementVNode("div",null,[vue.createVNode(vue.unref(gv1),{grow:"","keep-mounted":""},{default:vue.withCtx(()=>[vue.createVNode(vue.unref(Mv1),null,{default:vue.withCtx(()=>[vue.createVNode(vue.unref(Cv1),null,{default:vue.withCtx(()=>[...Et[3]||(Et[3]=[vue.createElementVNode("h2",null,"Данные пациента",-1)])]),_:1}),J.infoOnly?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(vue.unref(Cv1),{key:0},{default:vue.withCtx(()=>[...Et[4]||(Et[4]=[vue.createElementVNode("h2",null,"Заявочная кампания",-1)])]),_:1}))]),_:1}),vue.createVNode(vue.unref(Vv1),null,{default:vue.withCtx(()=>[vue.createVNode(vue.unref(bv1),null,{default:vue.withCtx(()=>[vue.createElementVNode("div",null,[J.hideDataPatient?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$o,[vue.createElementVNode("div",_hoisted_2$i,[vue.createElementVNode("div",_hoisted_3$d,[Et[5]||(Et[5]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"ФИО:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(vt.value?.PatientFio),1)]),vue.createElementVNode("div",_hoisted_4$c,[Et[6]||(Et[6]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"СНИЛС:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(vt.value?.PatientSnils),1)]),vue.createElementVNode("div",_hoisted_5$b,[Et[7]||(Et[7]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"Дата рождения:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(vue.unref(hooks)(vt.value?.PatientBirthdate).format("DD.MM.YYYY")),1)])]),vue.createElementVNode("div",_hoisted_6$b,[vue.createElementVNode("div",_hoisted_7$a,[Et[8]||(Et[8]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"Полис:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(vt.value?.PolicyNumber),1)]),vue.createElementVNode("div",_hoisted_8$9,[Et[9]||(Et[9]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"СМО:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(vt.value?.SmoName),1)]),vue.createElementVNode("div",_hoisted_9$7,[Et[10]||(Et[10]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"Прикрепление:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(vt.value?.AttachedMoName),1)])]),vue.createElementVNode("div",_hoisted_10$7,[vue.createElementVNode("div",_hoisted_11$6,[Et[11]||(Et[11]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"Адрес регистрации:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(vt.value?.AddressReg),1)]),vue.createElementVNode("div",_hoisted_12$6,[Et[12]||(Et[12]=vue.createElementVNode("span",{class:"font-medium text-gray-600"},"Адрес фактический:",-1)),vue.createElementVNode("span",null,vue.toDisplayString(vt.value?.AddressFact),1)])])])),vue.createElementVNode("div",_hoisted_13$5,[Et[13]||(Et[13]=vue.createElementVNode("h3",{class:"text-lg font-medium text-gray-900 mb-4"}," Льготы пациента ",-1)),vue.createVNode(_sfc_main$v,{"data-patient":vt.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(bv1),{key:0},{default:vue.withCtx(()=>[vue.createVNode(_sfc_main$z,{"patient-id":vt.value.PatientId,"patient-snils":vt.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"]))}};var Mode=(e=>(e[e.DELAY=0]="DELAY",e[e.INTERVAL=1]="INTERVAL",e[e.INTERVAL_BLOCK=2]="INTERVAL_BLOCK",e))(Mode||{});const jV=class jV{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}};jV.MODE=Mode;let ActionLimiter=jV;const DEFAULT_TYPE$1="string",TYPES=["string","boolean","number","date"],defaultMethods$1={"=":{compare:(e,I,N="string")=>N==="date"?e.isSame(I):e===I,types:TYPES,icon:"equals"},"!=":{compare:(e,I,N="string")=>N==="date"?!e.isSame(I):e!==I,types:TYPES,icon:"not-equal"},">":{compare:(e,I,N="string")=>N==="date"?e.isBefore(I):e>I,types:["number","date"],icon:"greater-than"},">=":{compare:(e,I,N="string")=>N==="date"?e.isSameOrBefore(I):e>=I,types:["number","date"],icon:"greater-than-equal"},"<":{compare:(e,I,N="string")=>N==="date"?e.isAfter(I):e<I,types:["number","date"],icon:"less-than"},"<=":{compare:(e,I,N="string")=>N==="date"?e.isSameOrAfter(I):e<=I,types:["number","date"],icon:"less-than-equal"},include:{compare:(e,I)=>I?String(I).toLowerCase().includes(e.toLowerCase()):!1,types:["string"],icon:"t"},exclude:{compare:(e,I)=>I?!String(I).toLowerCase().includes(e.toLowerCase()):!0,types:["string"],icon:"text-slash"}},types$1={string:{method:"include",value:""},number:{method:"=",value:null},boolean:{method:"=",value:!1},date:{method:"=",value:""}};function getFilterValue$1(e){return e in types$1?types$1[e].value:types$1[DEFAULT_TYPE$1].value}function getFilterMethod$1(e){return e in types$1?types$1[e].method:types$1[DEFAULT_TYPE$1].method}function getMethodIcon$1(e){return e in defaultMethods$1?defaultMethods$1[e].icon:"question"}function getFilter$1(e){return{method:getFilterMethod$1(e),value:getFilterValue$1(e)}}function getMethodsForType$1(e){if(typeof e=="string"&&TYPES.includes(e)){let I=[];for(let N in defaultMethods$1)defaultMethods$1[N].types.includes(e)&&I.push(N);return I}else{let I=new Error('Невозможно получить список методов сравнения для неопределённого типа: "'+e+'"');throw console.error(I),I}}function compare$1(e,I,N="string"){let J=e.value,V=I;if(N==="date"&&(J=hooks(hooks(J).format("YYYY-MM-DD")),V=hooks(hooks(V).format("YYYY-MM-DD"))),e?.method&&e.method in defaultMethods$1)if(e?.value??!1)try{return defaultMethods$1[e.method].compare(J,V,N)}catch(M){throw new Error(`Не удалось сравнить данные для фильтрации.
|
|
1305
1305
|
`+J+`
|
|
1306
1306
|
`+V+`
|
|
1307
1307
|
`+M.message)}else{let M=new Error('Попытка сравнения с методом сравнения: "'+e?.value+'"');throw console.error(M),M}else{let M=new Error('Попытка сравнения несуществующим методом сравнения: "'+e?.method+'"');throw console.error(M),M}}const _sfc_main$t={__name:"CompareMethodClicker",props:{modelValue:{type:String,default:"="},type:{type:String,default:"string"},accessMethods:{type:Array,default:null}},emits:["update:modelValue"],setup(e,{emit:I}){const N=I,J=e,V=vue.computed(()=>{if(J.accessMethods){if(Array.isArray(J.accessMethods))return J.accessMethods;{let yt=new Error('Переданный список методов сравнения не является массивом: "'+J.accessMethods+'"');throw console.error(yt),yt}}else return getMethodsForType$1(J.type)}),M=vue.computed(()=>getMethodIcon$1(J.modelValue));function vt(){let yt=(V.value.findIndex(Et=>Et===J.modelValue)+1)%V.value.length;N("update:modelValue",V.value[yt])}return(yt,Et)=>(vue.openBlock(),vue.createElementBlock("div",null,[vue.createVNode(vue.unref(Z1),{name:M.value??"question",type:"solid",style:{color:"#5a62ab"},onClick:vt},null,8,["name"])]))}},_hoisted_1$n={class:"flex w-full items-center gap-2 px-2 flex-col"},_hoisted_2$h={class:"flex w-full items-center gap-2 px-2"},_hoisted_3$c={key:0,class:"flex items-center gap-2 w-max pr-1"},_hoisted_4$b={class:"w-max"},_hoisted_5$a={key:1,class:"flex items-center gap-2 w-max pr-1"},_hoisted_6$a={class:"w-max"},_hoisted_7$9={key:2,class:"flex items-center gap-2 w-max pr-1"},_hoisted_8$8={class:"w-max"},_hoisted_9$6={key:0,class:"flex flex-col gap-[.25rem] border-solid border rounded-[.25rem] p-[.25rem] w-max h-[20rem] variant_list"},_hoisted_10$6=["onClick"],_sfc_main$s={__name:"TableFilter",props:{type:{type:String,default:"string"},modelValue:{type:Object,required:!0},values:{type:Array,default:()=>[]},withVariants:{type:Boolean,default:!1}},emits:["update: modelValue"],setup(e,{emit:I}){const N=I,J=e,V=vue.ref(typeof J.modelValue=="object"&&"method"in J.modelValue&&"value"in J.modelValue?Object.assign(J.modelValue):getFilter$1(J.type)),M=vue.computed(()=>{let vt=[];for(let yt of J.values)!vt.includes(yt)&&yt&&vt.push(yt);return vt});return vue.watch(V,()=>{N("update:modelValue",V.value)}),(vt,yt)=>(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$n,[vue.createElementVNode("div",_hoisted_2$h,[J.type==="date"?(vue.openBlock(),vue.createElementBlock("div",_hoisted_3$c,[vue.createElementVNode("div",_hoisted_4$b,[vue.createVNode(_sfc_main$N,{modelValue:V.value.value,"onUpdate:modelValue":yt[0]||(yt[0]=Et=>V.value.value=Et),label:""},null,8,["modelValue"])])])):J.type==="number"?(vue.openBlock(),vue.createElementBlock("div",_hoisted_5$a,[vue.createElementVNode("div",_hoisted_6$a,[vue.createVNode(vue.unref(a$),{modelValue:V.value.value,"onUpdate:modelValue":yt[1]||(yt[1]=Et=>V.value.value=Et)},null,8,["modelValue"])])])):(vue.openBlock(),vue.createElementBlock("div",_hoisted_7$9,[vue.createElementVNode("div",_hoisted_8$8,[vue.createVNode(vue.unref(AA),{modelValue:V.value.value,"onUpdate:modelValue":yt[2]||(yt[2]=Et=>V.value.value=Et),"hide-controls":""},null,8,["modelValue"])])])),vue.createVNode(_sfc_main$t,{modelValue:V.value.method,"onUpdate:modelValue":yt[3]||(yt[3]=Et=>V.value.method=Et),type:J.type},null,8,["modelValue","type"])]),J.withVariants?(vue.openBlock(),vue.createElementBlock("div",_hoisted_9$6,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(M.value,Et=>(vue.openBlock(),vue.createElementBlock("p",{key:Et,class:"variant",onClick:Dt=>V.value.value=Et},vue.toDisplayString(Et),9,_hoisted_10$6))),128))])):vue.createCommentVNode("",!0)]))}},TableFilter=_export_sfc(_sfc_main$s,[["__scopeId","data-v-0ff24c29"]]),_hoisted_1$m={style:{"max-height":"20px"}},_sfc_main$r=Object.assign({inheritAttrs:!1},{__name:"TheTable",props:vue.mergeModels({loading:Boolean,height:Number,selectedColor:{type:Function,default:null},selectable:{type:Boolean,default:!0},dataSource:{type:Object,required:!0},columns:{type:Object,required:!0},onSelectRow:Function,actions:{type:Object,default:null},striped:{type:Boolean,default:!0},compact:{type:Boolean,default:!1},defaultSort:{type:Object,default:()=>({column:"",desc:!1})},showFunctions:{type:Object,default:()=>{}},customColoring:{type:Function,default:null},coloring:{type:Function,default:null},numbering:{type:Boolean,default:!1},onEdit:{type:Function,default:null},onDelete:{type:Function,default:null},preventReselection:{type:Boolean,default:!1},selectingKey:{type:String,default:"Index"},dropSelect:{type:Boolean,default:!1},pagination:{type:Number,default:0},originalData:{type:Boolean,default:!1},heightInRows:{type:Number,default:5},showEdit:{type:Function,default:null},showDelete:{type:Function,default:null},actionsOrder:{type:[String,Array],default:"default"},filtersDelay:{type:Number,default:1e3},localFiltering:{type:Boolean,default:!1},noBreakWord:{type:Boolean,default:!0},showRowContextMenu:{type:Boolean,default:!1}},{selected:{},selectedModifiers:{}}),emits:vue.mergeModels(["footerResult","filtersUpdate","onSelectCell"],["update:selected"]),setup(e,{emit:I}){const N=I,J=e,V=vue.useModel(e,"selected"),M=vue.ref(J.pagination?1:0),vt=vue.ref(5);let yt=!1;const Et=vue.ref([]),Dt=vue.ref({}),Ft=vue.ref(0),Pt=vue.ref({...J.defaultSort}),Nt=vue.ref({}),Bt=new ActionLimiter(pn,J.filtersDelay,ActionLimiter.MODE.DELAY);function zt(){let wn=0;if(J.dataSource?.length){let er=J.dataSource.map(or=>{let vr={};for(let Hn in or){let rr=J.columns.find(an=>an?.accessor?an.accessor===Hn:an?.name===Hn);rr?.display?vr[Hn]=rr.display(or):vr[Hn]=or[Hn]}for(let Hn of J.columns){let rr=Hn?.accessor?Hn.accessor:Hn.name;rr in or||(Hn?.display?vr[rr]=Hn.display(or):vr[rr]="")}return vr.Index=wn++,vr});J.localFiltering&&cn()?$t.value=er.filter(vn.value):$t.value=er}else $t.value=[]}const $t=vue.ref([]),Ht=vue.computed(()=>hn.value?[...$t.value].sort(hn.value(Pt.value.desc)):$t.value),jt=vue.computed(()=>(setTimeout(()=>Ft.value++,100),J.pagination?Ht.value.slice((M.value-1)*vt.value,(M.value-1)*vt.value+vt.value):Ht.value));function Kt(wn,er){let or=er?-1:1;return(vr,Hn)=>wn(vr,Hn)?or:-or}function Zt(wn){return(er,or)=>{let vr=hooks(er[wn]);vr.format("YYYY-MM-DD")==="Invalid date"&&(vr=hooks(er[wn],"DD.MM.YYYY"));let Hn=hooks(or[wn]);return Hn.format("YYYY-MM-DD")==="Invalid date"&&(Hn=hooks(or[wn],"DD.MM.YYYY")),vr.format("YYYY-MM-DD")==="Invalid date"?!Pt.value.desc:Hn.format("YYYY-MM-DD")==="Invalid date"?Pt.value.desc:vr.isBefore(Hn)}}const hn=vue.computed(()=>{if(Pt.value.column){let wn=Et.value.find(er=>er.accessor===Pt.value.column);if(wn&&"sort"in wn)return typeof wn.sort=="string"?wn.sort:(console.error("no no no"),null);{let er=wn?.type;switch(er&&(er=er.toLowerCase()),er){case"date":return or=>Kt(Zt(wn.accessor),or);default:return or=>Kt((vr,Hn)=>vr[wn.accessor]<Hn[wn.accessor],or)}}}else return null});function un(){Et.value=J.columns.map((wn,er)=>{const or=yn(wn,er),vr=typeof wn?.hidden=="boolean"?!!wn.hidden:typeof wn?.visible=="boolean"?!wn.visible:typeof wn?.isVisible=="boolean"?!wn.isVisible:!1;let Hn={name:wn?.caption?wn.caption:wn?.name,accessor:or,sortable:!!wn?.sortable,filterable:!!wn?.filterable,type:wn?.type?wn.type:"string",hidden:vr,visible:!vr,isVisible:!vr};if(wn?.width&&(Hn.width=wn?.width),wn?.sort&&(Hn.sort=wn.sort),wn?.footer)if(jt.value?.length){let rr=Number(jt.value[0][Hn.accessor]),an=jt.value.length;if(wn.footer?.onColumn){for(let xr=1;xr<an;xr++)rr=wn.footer.onColumn(rr,Number(jt.value[xr][Hn.accessor]));wn.footer?.onResult&&(rr=wn.footer.onResult(rr)),N("footerResult",{column:Hn.accessor,result:rr}),rr=String(rr),wn.footer?.label&&(rr=wn.footer.label+rr),Hn.footer={text:String(rr)}}}else Hn.footer={text:wn.footer?.label?wn.footer.label:"..."};return Hn})}function yn(wn,er){return wn?.accessor?wn.accessor:wn?.name?wn.name:`column_${er}`}function rn(wn){return"cell("+wn.accessor+")"}const vn=vue.ref(wn=>!0);function cn(){for(let wn in Nt.value)if(Nt.value[wn]?.value!==null)return!0;return!1}function sn(wn){return"filter("+wn.accessor+")"}function pn(){N("filtersUpdate",Nt.value),J.localFiltering&&(vn.value=wn=>{for(let er in Nt.value){let or=er.replaceAll("_",""),vr=wn[or],Hn=Et.value.find(rr=>rr.accessor.replaceAll("_","")===or||rr.name.replaceAll("_","")===or);if((Nt.value[er].value||Nt.value[er].value===0)&&!compare$1(Nt.value[er],vr,Hn?.type?Hn.type:"string"))return!1}return!0},zt())}const gn=vue.ref(Et.value.filter(wn=>!!wn?.filterable)),yr=vue.computed(()=>{let wn=[],er=[];if(J.onEdit){let or={name:"edit",icon:"pencil",tooltip:"Редактировать",tooltipPlacement:"top",onClick:J.onEdit};typeof J.showEdit=="function"&&(or.show=J.showEdit),er.push(or)}if(J.onDelete){let or={name:"delete",icon:"xmark",tooltip:"Удалить",tooltipPlacement:"bottom",onClick:J.onDelete};typeof J.showDelete=="function"&&(or.show=J.showDelete),er.push(or)}if(J.actions?.length&&(wn=wn.concat(J.actions)),typeof J.actionsOrder=="string")switch(J.actionsOrder){case"reverse":wn=wn.concat(er),wn.reverse();break;case"swap":wn=er.concat(wn);break;default:wn=wn.concat(er)}else if(typeof J.actionsOrder=="object"&&J.actionsOrder?.length){let or=[];for(let vr of J.actionsOrder){let Hn=or.push(er.find(an=>an.name===vr)),rr=or.push(wn.find(an=>an.name===vr));Hn?or.push(Hn):rr?or.push(rr):console.error(`Неверно задано имя действия в actionsOrder!
|