Fix Tahesab ByCode list body key causing 502 on range search.

Use Dolistmoshtari as documented and surface upstream error text in the UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-05 09:42:08 +03:30
co-authored by Cursor
parent 15a0afae5c
commit b42d39d756
3 changed files with 39 additions and 12 deletions
+12 -10
View File
@@ -32,7 +32,7 @@ const sync = reactive({
name: '',
moshtariCode: '' as string | number,
fromCode: '1',
toCode: '500',
toCode: '100',
});
const syncBusy = ref(false);
type SyncResult = {
@@ -51,6 +51,14 @@ function pendingImportCodes() {
.map((r) => r.moshtariCode as number);
}
function apiErr(e: unknown, fallback: string) {
if (!axios.isAxiosError(e)) return fallback;
const msg = (e.response?.data as { message?: string | string[] })?.message;
if (Array.isArray(msg)) return msg.join('، ') || fallback;
if (typeof msg === 'string' && msg.trim()) return msg;
return fallback;
}
function resetForm() {
editingId.value = null;
form.label = '';
@@ -222,9 +230,7 @@ async function searchTahesab(mode: 'filter' | 'range' = 'filter') {
ok.value = `${syncResults.value.length} مشتری پیدا شد` + (linked ? ` (${linked} قبلاً لینک شده)` : '');
}
} catch (e) {
error.value = axios.isAxiosError(e)
? String((e.response?.data as { message?: string })?.message ?? 'جستجو ناموفق')
: 'جستجو ناموفق';
error.value = apiErr(e, 'جستجو ناموفق');
} finally {
syncBusy.value = false;
}
@@ -246,9 +252,7 @@ async function importOne(moshtariCode: number) {
row.personId = data.personId;
}
} catch (e) {
error.value = axios.isAxiosError(e)
? String((e.response?.data as { message?: string })?.message ?? 'وارد کردن ناموفق')
: 'وارد کردن ناموفق';
error.value = apiErr(e, 'وارد کردن ناموفق');
} finally {
syncBusy.value = false;
}
@@ -303,9 +307,7 @@ async function importBulk(mode: 'results' | 'range') {
ok.value = `وارد شد: ${data.imported} · قبلاً بود: ${data.skipped} · ناموفق: ${data.failed}`;
await searchTahesab(mode === 'range' ? 'range' : 'filter');
} catch (e) {
error.value = axios.isAxiosError(e)
? String((e.response?.data as { message?: string })?.message ?? 'وارد کردن دسته‌ای ناموفق')
: 'وارد کردن دسته‌ای ناموفق';
error.value = apiErr(e, 'وارد کردن دسته‌ای ناموفق');
} finally {
syncBusy.value = false;
}