// @/composables/useFormBuilder.js import { useNuxtApp } from "#app"; export function useElpService(props, emit) { const { $moment } = useNuxtApp(); // فرض می‌کنیم $moment در Nuxt plugin ثبت شده const { $http: httpService } = useNuxtApp(); const toast = useToast(); ///----------------------------------------------------- ///--- یک فیلد را بروزرسانی می کند ///----------------------------------------------------- async function uepUpdateField(doc_id, payload, key = "sanad") { if (!doc_id) { return; } let url = elpApi.base.update_field; url = url.replace("{{type_name}}", key); url = url.replace("{{doc_id}}", doc_id); return await httpService .postRequest(url, payload) .then(() => { toast.add({ title: "موفق", description: "عملیات با موفقیت انجام شد.", icon: "i-lucide-calendar-days", }); return true; }) .catch(() => { toast.add({ title: "خطا", description: "خطا در انجام دوباره تلاش کنید", color: "red", }); return undefined; }); } ///----------------------------------------------------- ///--- با توجه به یک فیلد، مقدار محاسبه شده ای بر میگردند مثلا : بیشترین مقدار یا مجموع یا ... ///----------------------------------------------------- async function uepGetComputeField( key = "mnsanad", property_key = "meet_no", compute_key = "max", filters = {} ) { let payload = { compute_key, property_key, filters, }; let url = elpApi.base.compute_field; url = url.replace("{{type_name}}", key); return await httpService .postRequest(url, payload) .then((res) => { return res; }) .catch(() => { toast.add({ title: "خطا", description: "خطا در انجام عملیات، دوباره تلاش کنید", color: "red", }); return undefined; }); } ///----------------------------------------------------- ///--- با توجه به یک فیلد، مقدار محاسبه شده ای بر میگردند مثلا : بیشترین مقدار یا مجموع یا ... ///----------------------------------------------------- async function uepGetConflictDoc( doc_id, key = "qaconflict" ) { let url = elpApi.conflict.get; url = url.replace("{{type_name}}", key); url = url.replace("{{doc_id}}", doc_id); return await httpService .getRequest(url) .then((res) => { return res; }) .catch(() => { toast.add({ title: "خطا", description: "خطا در انجام عملیات، دوباره تلاش کنید", color: "red", }); return undefined; }); } ///----------------------------------------------------- ///----------------------------------------------------- return { uepUpdateField, uepGetComputeField, uepGetConflictDoc, }; }