fix some bugs from accounting 3

This commit is contained in:
2026-07-28 21:57:39 +03:30
parent f3a082ef73
commit 2cf4ec1bd9
4 changed files with 85 additions and 6 deletions
@@ -2,9 +2,23 @@
<div>
<BasicShowContext title="اعلان‌های اپ">
<template #extra>
<div class="flex items-center gap-2">
<div class="flex items-center gap-2 flex-wrap">
<a-radio-group
v-model:value="sourceFilter"
button-style="solid"
size="small"
@change="onSourceChange"
>
<a-radio-button
v-for="tab in sourceTabs"
:key="tab.value"
:value="tab.value"
>
{{ tab.label }}
</a-radio-button>
</a-radio-group>
<AdminFieldHelp
text="اعلان را برای همه، گروه (مثلاً کسانی که مدتی نیامده‌اند) یا مشتری تکی بفرستید. کاربران آنلاین از طریق اتصال زنده اپ، بلافاصله بج اعلان را می‌بینند."
text="اعلان ادمین را دستی می‌فرستید؛ اعلان سیستمی خودکار برای خرید/فروش/واریز/برداشت ساخته می‌شود. از تب‌ها برای جدا کردن لیست استفاده کنید."
/>
<BaseButton type="primary" size="small" @click="emits('add')">
<span>افزودن اعلان</span>
@@ -34,7 +48,7 @@
@click="emits('readers', record)"
/>
</a-tooltip>
<a-tooltip placement="bottom">
<a-tooltip v-if="!isSystemRecord(record)" placement="bottom">
<template #title>ویرایش</template>
<Icon
icon="vuesax-linear:edit"
@@ -69,15 +83,23 @@
</template>
<script lang="tsx" setup>
import { computed, ref } from 'vue'
import type { TableInput } from '@core/type/baseTable'
import useBaseTable from '@core/components/BaseTableOld/hooks/useBaseTable'
import Icon from '@core/components/BaseIcon/src/Icon.vue'
import { cols } from '../hooks/appNotificationsColumns'
import { getAppNotificationsTable } from '@/api/appNotifications'
import AdminFieldHelp from '@/components/AdminFieldHelp.vue'
import {
APP_NOTIFICATION_SOURCE_TABS,
type AppNotificationSourceFilter,
} from '@/model/appNotifications'
const [submit, reload] = useBaseTable()
const sourceFilter = ref<AppNotificationSourceFilter>('all')
const sourceTabs = APP_NOTIFICATION_SOURCE_TABS
const emits = defineEmits<{
add: []
edit: [record: Record<string, unknown>]
@@ -87,9 +109,23 @@ const emits = defineEmits<{
recipients: [record: Record<string, unknown>]
}>()
const tblProps = {
function isSystemRecord(record: Record<string, unknown>) {
if (typeof record.is_system === 'boolean') return record.is_system
const label = String(record.audience_label || '')
return record.created_by == null && label.startsWith('سیستمی')
}
const tblProps = computed(() => ({
columns: cols,
api: (params: TableInput) => getAppNotificationsTable(params),
api: (params: TableInput) =>
getAppNotificationsTable({
...params,
source: sourceFilter.value,
} as TableInput & { source: AppNotificationSourceFilter }),
}))
function onSourceChange() {
reload()
}
function fetch() {