1404/11/06-

This commit is contained in:
2026-01-26 11:21:13 +03:30
parent edf1824229
commit 0f5d362b04
+241 -252
View File
@@ -2,7 +2,7 @@
<div class="p-5">
<a-spin size="large" :spinning="loading">
<div
class="w-full bg-[#0A1B37] flex p-2 rounded-lg md:justify-evenly flex-col md:flex-row shadow-lg"
class="w-full bg-[#0A1B37] flex p-2 rounded-lg md:justify-evenly flex-col shadow-lg"
>
<div class="flex text-white gap-2 items-center">
<div>مظنه روز:</div>
@@ -24,30 +24,30 @@
<BaseCard class="w-full md:w-none md:col-span-7">
<div class="text-lg font-bold">مشتری</div>
<div
class="flex flex-col md:flex-row justify-around mt-5 justify-between items-dashboard h-full"
class="flex flex-col md:flex-row justify-around mt-5 justify-between items-dashboard h-full"
>
<DashboardItem
class="md:w-1/3"
color="blue"
title="مشتری جدید"
unit="نفر"
:count="dashboardInf?.new_customer_single"
class="md:w-1/3"
color="blue"
title="مشتری جدید"
unit="نفر"
:count="dashboardInf?.new_customer_single"
/>
<div class="h-[60%] hidden md:block bg-gray-200 w-[1px]" />
<DashboardItem
class="md:w-1/3"
color="green"
title="کل مشتریان"
unit="نفر"
:count="dashboardInf?.all_customer_single"
class="md:w-1/3"
color="green"
title="کل مشتریان"
unit="نفر"
:count="dashboardInf?.all_customer_single"
/>
<div class="h-[60%] hidden md:block bg-gray-200 w-[1px]" />
<DashboardItem
class="md:w-1/3"
color="orange"
title="مشتریان بایگانی شده"
unit="نفر"
:count="dashboardInf?.archive_customer_single"
class="md:w-1/3"
color="orange"
title="مشتریان بایگانی شده"
unit="نفر"
:count="dashboardInf?.archive_customer_single"
/>
</div>
</BaseCard>
@@ -58,8 +58,8 @@
<div class="bg-blue-600 text-white rounded p-1">گرم</div>
<div class="bg-blue-600 text-white rounded p-1">کیف طلا</div>
<div
class="text-white rounded p-1"
:class="
class="text-white rounded p-1"
:class="
sums?.goldToCash >= 0
? sums?.goldToCash === 0
? 'bg-amber-600'
@@ -70,8 +70,8 @@
{{ usePrice(sums?.goldToCash ?? 0, true, '') }}
</div>
<div
class="text-white rounded p-1"
:class="
class="text-white rounded p-1"
:class="
sums?.gold >= 0
? sums?.gold === 0
? 'bg-amber-600'
@@ -83,8 +83,8 @@
</div>
<div class="bg-blue-600 text-white rounded p-1">کیف پول</div>
<div
class="text-white rounded p-1"
:class="
class="text-white rounded p-1"
:class="
sums?.cash >= 0
? sums?.cash === 0
? 'bg-amber-600'
@@ -95,8 +95,8 @@
{{ usePrice(sums?.cash ?? 0, true, '') }}
</div>
<div
class="text-white rounded p-1"
:class="
class="text-white rounded p-1"
:class="
sums?.cashToGold >= 0
? sums?.cashToGold === 0
? 'bg-amber-600'
@@ -108,27 +108,27 @@
</div>
</div>
</BaseCard>
<BaseCard class="h-full md:col-span-7">
<BaseCard class="w-full h-full md:col-span-7">
<ASpin :spinning="tarazLoading">
<div class="grid md:grid-cols-3 gap-3 mt-2">
<div>
<div class="md:flex content-center gap-3">
<div class="w-full md:flex items-baseline gap-10 bg-gray-100 p-2 rounded-lg">
<div class="w-full md:flex items-baseline gap-2 bg-gray-100 p-2 rounded-lg">
<p class="font-bold mr-2">تاریخ تراز</p>
<div class="w-full flex items-baseline flex-1 gap-3">
<p class="font-bold">از:</p>
<BaseDatePicker
v-model:value="startTaraz"
format="YYYY-MM-DD HH:mm:ss"
class="flex-1"
v-model:value="startTaraz"
format="YYYY-MM-DD HH:mm:ss"
class="flex-1"
/>
</div>
<div class="w-full flex items-baseline flex-1 gap-3">
<p class="font-bold">تا:</p>
<BaseDatePicker
v-model:value="endTaraz"
format="YYYY-MM-DD HH:mm:ss"
class="flex-1"
v-model:value="endTaraz"
format="YYYY-MM-DD HH:mm:ss"
class="flex-1"
/>
</div>
<BaseButton @click="getTaraz()">ثبت تاریخ</BaseButton>
@@ -141,8 +141,8 @@
</div>
</div>
<div
class="flex flex-col gap-3 bg-yellow-100 p-2 rounded-lg w-full cursor-pointer"
@click="openNewTabBalance"
class="flex flex-col gap-3 bg-yellow-100 p-2 rounded-lg w-full cursor-pointer"
@click="openNewTabBalance"
>
<span class="text-center text-base font-700 bg-yellow text-white rounded-lg">
تراز طلایی
@@ -152,8 +152,8 @@
<div class="flex justify-between mx-5">
<span class="font-600">تراز اصلی:</span>
<span
class="text-base"
:class="
class="text-base"
:class="
(balance_?.goldBalance ?? 0) > 0
? 'text-green-600'
: (balance_?.goldBalance ?? 0) === 0
@@ -169,8 +169,8 @@
</div>
</div>
<div
class="flex flex-col gap-3 bg-blue-100 p-2 rounded-lg w-full cursor-pointer"
@click="openNewTabBalance"
class="flex flex-col gap-3 bg-blue-100 p-2 rounded-lg w-full cursor-pointer"
@click="openNewTabBalance"
>
<span class="text-center text-base font-700 bg-blue-6 rounded-lg text-white">
تراز ریالی
@@ -180,8 +180,8 @@
<div class="flex justify-between mx-5">
<span class="font-600">تراز اصلی:</span>
<span
class="text-base"
:class="
class="text-base"
:class="
(balance_?.cashBalance ?? 0) > 0
? 'text-green-600'
: (balance_?.cashBalance ?? 0) === 0
@@ -199,223 +199,217 @@
</div>
</ASpin>
</BaseCard>
<BaseCard class="w-full md:w-none md:col-span-2">
<div class="text-lg font-bold">تراز بدهی</div>
<div ref="main" class="w-full aspect-square"></div>
</BaseCard>
<!-- <BaseCard class="w-full md:w-none md:col-span-2">
<div class="text-lg font-bold">تراز بدهی</div>
<div ref="main" class="w-full aspect-square"></div>
</BaseCard>-->
<BaseCard class="md:col-span-5">
<div id="chart">
<div class="font-bold text-lg mt-2 text-center md:text-right mb-2">مقایسه قیمت ها</div>
<apexchart
type="bar"
height="350"
:options="otherPricesOptions"
:series="otherPricesSeries"
/>
</div>
<div>
<div class="md:grid grid-cols-4 gap-4 mt-4 justify-between text-center">
<div class="grid-cols-1 grid gap-2 bg-blue-100 rounded-lg shadow-lg">
<div class="flex items-center text-right p-2">
<img src="/src/assets/img/saminLogo_.png" class="w-2rem h-2rem" />
<div class="mr-4">
<div>قیمت ثمین گلد</div>
<div>
{{ usePrice(othersPrices?.price_last ? othersPrices?.price_last : 0) }}
</div>
</div>
</div>
</div>
<div class="grid-cols-1 grid gap-2 bg-red-100 rounded-lg shadow-lg">
<div class="flex items-center text-right p-2">
<img src="/src/assets/img/milliLogo.png" class="w-2rem h-2rem" />
<div class="mr-4">
<div>قیمت سایت میلی</div>
<div>{{ usePrice(othersPrices?.milli ? othersPrices?.milli : 0) }}</div>
</div>
</div>
</div>
<div class="grid-cols-1 grid gap-2 bg-green-100 rounded-lg shadow-lg">
<div class="flex items-center text-right p-2">
<img src="/src/assets/img/henzaLogo.png" class="w-2rem h-2rem" />
<div class="mr-4">
<div>قیمت سایت هنزا</div>
<div>{{ usePrice(othersPrices?.henzagold ? othersPrices?.henzagold : 0) }}</div>
</div>
</div>
</div>
<div class="grid-cols-1 grid gap-2 bg-orange-100 rounded-lg shadow-lg">
<div class="flex items-center text-right p-2">
<img src="/src/assets/img/talaLogo.png" class="w-2rem h-2rem" />
<div class="mr-4">
<div>قیمت سایت طلا</div>
<div>{{ usePrice(othersPrices?.tala_ir ? othersPrices?.tala_ir : 0) }}</div>
</div>
</div>
</div>
</div>
</div>
</BaseCard>
<div class="md:col-span-7 md:grid gap-4">
<BaseCard>
<div class=" ">
<div class="flex flex-col md:flex-row justify-between items-center">
<div class="flex items-end">
<div class="text-2xl font-bold ml-2">{{ usePrice(123456789123, true, '') }}</div>
<div class="text-lg">تومان</div>
</div>
<div>
<div
class="flex bg-gray-50 px-1 py-1 dashboard-tabs-class border-size-[1px] border-gray-200 border-solid rounded-lg"
>
<div :class="type === 'week' ? 'selected_item' : ''" @click="setType('week')">
هفتگی
</div>
<div :class="type === 'month' ? 'selected_item' : ''" @click="setType('month')">
ماهانه
</div>
<div :class="type === 'year' ? 'selected_item' : ''" @click="setType('year')">
سالانه
</div>
</div>
</div>
</div>
</div>
<div class="mb-10">جمع فروش به مشتری</div>
<apexchart
type="area"
height="350"
ref="chart"
:options="sumOfSellCoworkerOption"
:series="sumOfSellCoworkerSeries"
></apexchart>
</BaseCard>
<div class="flex flex-col items-center md:items-unset md:grid md:grid-cols-7 gap-4">
<BaseCard class="w-full md:w-none md:col-span-7">
<div>
<div class="font-bold text-lg mt-2 text-center md:text-right">
حسابداری ثمین گلد در یک نگاه
</div>
<div class="md:flex mt-6">
<div class="flex items-baseline flex-1 gap-3">
<p>از:</p>
<BaseDatePicker
v-model:value="startDate"
@on-change="getTaraz"
format="YYYY-MM-DD HH:mm:ss"
class="flex-1"
<!-- <BaseCard class="md:col-span-5">
<div id="chart">
<div class="font-bold text-lg mt-2 text-center md:text-right mb-2">مقایسه قیمت ها</div>
<apexchart
type="bar"
height="350"
:options="otherPricesOptions"
:series="otherPricesSeries"
/>
</div>
<div class="flex items-baseline flex-1 gap-3">
<p class="md:mr-6">تا:</p>
<BaseDatePicker
v-model:value="endDate"
@on-change="getTaraz"
format="YYYY-MM-DD HH:mm:ss"
class="flex-1"
/>
</div>
</div>
<div class="grid-cols-1 grid gap-2 bg-green-100 rounded-lg shadow-lg">
<div class="p-4">
<div class="font-bold text-lg">دریافتی</div>
<div class="md:grid-cols-5 grid gap-2 mt-4">
<div>
<div>کل سود دریافت شده</div>
<div class="font-bold">{{ usePrice(balance?.fullPriceSood ?? 0) }}</div>
</div>
<div>
<div>کل کارمزد</div>
<div class="font-bold">{{ usePrice(balance?.fullPriceKaermozd ?? 0) }}</div>
</div>
<div>
<div>تعداد سفارشات</div>
<div class="font-bold">{{ balance?.orderCount }}</div>
</div>
<div>
<div class="ml-2">قیمت نهایی محاسبه شده با روش اول</div>
<div class="font-bold">{{ usePrice(balance?.fullPriceM1 ?? 0) }}</div>
</div>
<div>
<div class="ml-2">قیمت نهایی محاسبه شده با روش دوم</div>
<div class="font-bold">{{ usePrice(balance?.fullPriceM2 ?? 0) }}</div>
</div>
</div>
</div>
</div>
<div class="mt-4 bg-red-100 p-4 rounded-lg flex-col md:flex-row shadow-lg">
<div class="font-bold text-lg">خروجی</div>
<div class="md:grid-cols-2 grid mt-4">
<div>
<div>پاداش معرفی به گرم</div>
<div class="font-bold">{{ balance?.Gifts }}</div>
</div>
<div>
<div>پاداش معرفی به ریال</div>
<div class="font-bold">{{ usePrice(balance?.GiftsPrise ?? 0) }}</div>
</div>
</div>
</div>
<div
class="mt-4 bg-blue-100 p-4 rounded-lg md:justify-evenly flex-col md:flex-row shadow-lg"
>
<div>
<div class="font-bold text-lg">قیمت کل</div>
<div class="flex mt-4">
<div class="ml-4">کل درآمد :</div>
<div class="font-bold">{{ usePrice(balance?.sumAll ?? 0) }}</div>
<div class="md:grid grid-cols-4 gap-4 mt-4 justify-between text-center">
<div class="grid-cols-1 grid gap-2 bg-blue-100 rounded-lg shadow-lg">
<div class="flex items-center text-right p-2">
<img src="/src/assets/img/garosyLogo_.png" class="w-2rem h-2rem" />
<div class="mr-4">
<div>قیمت گروسی</div>
<div>
{{ usePrice(othersPrices?.price_last ? othersPrices?.price_last : 0) }}
</div>
</div>
</div>
</div>
<div class="grid-cols-1 grid gap-2 bg-red-100 rounded-lg shadow-lg">
<div class="flex items-center text-right p-2">
<img src="/src/assets/img/milliLogo.png" class="w-2rem h-2rem" />
<div class="mr-4">
<div>قیمت سایت میلی</div>
<div>{{ usePrice(othersPrices?.milli ? othersPrices?.milli : 0) }}</div>
</div>
</div>
</div>
<div class="grid-cols-1 grid gap-2 bg-green-100 rounded-lg shadow-lg">
<div class="flex items-center text-right p-2">
<img src="/src/assets/img/henzaLogo.png" class="w-2rem h-2rem" />
<div class="mr-4">
<div>قیمت سایت هنزا</div>
<div>{{ usePrice(othersPrices?.henzagold ? othersPrices?.henzagold : 0) }}</div>
</div>
</div>
</div>
<div class="grid-cols-1 grid gap-2 bg-orange-100 rounded-lg shadow-lg">
<div class="flex items-center text-right p-2">
<img src="/src/assets/img/talaLogo.png" class="w-2rem h-2rem" />
<div class="mr-4">
<div>قیمت سایت طلا</div>
<div>{{ usePrice(othersPrices?.tala_ir ? othersPrices?.tala_ir : 0) }}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</BaseCard>
</div>
<div class="flex flex-col items-center md:items-unset md:grid md:grid-cols-7 gap-4">
<BaseCard class="w-full md:w-none md:col-span-7">
<div>
<div class="font-bold text-lg mt-2 text-center md:text-right">نوسانات قیمت</div>
<div id="chart">
<div class="toolbar mt-2 mb-2">
<button
id="DAILY"
@click="updateData('DAILY')"
:class="{ active: selection === 'DAILY' }"
>
24 ساعت اخیر
</button>
</BaseCard>-->
<button
id="WEEKLY"
@click="updateData('WEEKLY')"
:class="{ active: selection === 'WEEKLY' }"
>
هفته گذشته
</button>
<button
id="MONTHLY"
@click="updateData('MONTHLY')"
:class="{ active: selection === 'MONTHLY' }"
>
ماه گذشته
</button>
</div>
<div id="chart-timeline">
<!-- <div class="md:col-span-7 md:grid gap-4">-->
<!-- <BaseCard>
<div class=" ">
<div class="flex flex-col md:flex-row justify-between items-center">
<div class="flex items-end">
<div class="text-2xl font-bold ml-2">{{ usePrice(123456789123, true, '') }}</div>
<div class="text-lg">تومان</div>
</div>
<div>
<div
class="flex bg-gray-50 px-1 py-1 dashboard-tabs-class border-size-[1px] border-gray-200 border-solid rounded-lg"
>
<div :class="type === 'week' ? 'selected_item' : ''" @click="setType('week')">
هفتگی
</div>
<div :class="type === 'month' ? 'selected_item' : ''" @click="setType('month')">
ماهانه
</div>
<div :class="type === 'year' ? 'selected_item' : ''" @click="setType('year')">
سالانه
</div>
</div>
</div>
</div>
</div>
<div class="mb-10">جمع فروش به مشتری</div>
<apexchart
type="area"
height="350"
ref="chart"
:options="priceChartOptions"
:series="priceChartSeries"
:options="sumOfSellCoworkerOption"
:series="sumOfSellCoworkerSeries"
></apexchart>
</div>
</BaseCard>-->
<BaseCard class="w-full md:grid md:col-span-7">
<div class="font-bold text-lg mt-2 text-center md:text-right">
حسابداری گلد در یک نگاه
</div>
<div class="md:flex mt-6">
<div class="flex items-baseline flex-1 gap-3">
<p>از:</p>
<BaseDatePicker
v-model:value="startDate"
@on-change="getTaraz"
format="YYYY-MM-DD HH:mm:ss"
class="flex-1"
/>
</div>
<div class="flex items-baseline flex-1 gap-3">
<p class="md:mr-6">تا:</p>
<BaseDatePicker
v-model:value="endDate"
@on-change="getTaraz"
format="YYYY-MM-DD HH:mm:ss"
class="flex-1"
/>
</div>
</div>
<div class="grid-cols-1 grid gap-2 bg-green-100 rounded-lg shadow-lg">
<div class="p-4">
<div class="font-bold text-lg">دریافتی</div>
<div class="md:grid-cols-5 grid gap-2 mt-4">
<div>
<div>کل سود دریافت شده</div>
<div class="font-bold">{{ usePrice(balance?.fullPriceSood ?? 0) }}</div>
</div>
<div>
<div>کل کارمزد</div>
<div class="font-bold">{{ usePrice(balance?.fullPriceKaermozd ?? 0) }}</div>
</div>
<div>
<div>تعداد سفارشات</div>
<div class="font-bold">{{ balance?.orderCount }}</div>
</div>
<div>
<div class="ml-2">قیمت نهایی محاسبه شده با روش اول</div>
<div class="font-bold">{{ usePrice(balance?.fullPriceM1 ?? 0) }}</div>
</div>
<div>
<div class="ml-2">قیمت نهایی محاسبه شده با روش دوم</div>
<div class="font-bold">{{ usePrice(balance?.fullPriceM2 ?? 0) }}</div>
</div>
</div>
</BaseCard>
</div>
</div>
</div>
<div class="mt-4 bg-red-100 p-4 rounded-lg flex-col md:flex-row shadow-lg">
<div class="font-bold text-lg">خروجی</div>
<div class="md:grid-cols-2 grid mt-4">
<div>
<div>پاداش معرفی به گرم</div>
<div class="font-bold">{{ balance?.Gifts }}</div>
</div>
<div>
<div>پاداش معرفی به ریال</div>
<div class="font-bold">{{ usePrice(balance?.GiftsPrise ?? 0) }}</div>
</div>
</div>
</div>
<div
class="mt-4 bg-blue-100 p-4 rounded-lg md:justify-evenly flex-col md:flex-row shadow-lg"
>
<div>
<div class="font-bold text-lg">قیمت کل</div>
<div class="flex mt-4">
<div class="ml-4">کل درآمد :</div>
<div class="font-bold">{{ usePrice(balance?.sumAll ?? 0) }}</div>
</div>
</div>
</div>
</BaseCard>
<BaseCard class="w-full md:w-none md:col-span-7">
<div>
<div class="font-bold text-lg mt-2 text-center md:text-right">نوسانات قیمت</div>
<div id="chart">
<div class="toolbar text-center md:text-right mt-2 mb-2">
<button
id="DAILY"
@click="updateData('DAILY')"
:class="{ active: selection === 'DAILY' }"
>
24 ساعت اخیر
</button>
<button
id="WEEKLY"
@click="updateData('WEEKLY')"
:class="{ active: selection === 'WEEKLY' }"
>
هفته گذشته
</button>
<button
id="MONTHLY"
@click="updateData('MONTHLY')"
:class="{ active: selection === 'MONTHLY' }"
>
ماه گذشته
</button>
</div>
<div id="chart-timeline">
<apexchart
type="area"
height="350"
ref="chart"
:options="priceChartOptions"
:series="priceChartSeries"
></apexchart>
</div>
</div>
</div>
</BaseCard>
</div>
</a-spin>
</div>
@@ -432,19 +426,14 @@ import { getOthersPrices } from '@/api/othersPrices'
import type { Charts, Dashboard } from '@/model/dashboard'
import { getWalletTable } from '@/api/wallet'
import type { Accounting } from '@/model/accounting'
import { getAccountingTable, getTotalAccountingTable } from '@/api/accounting'
import { getAccountingTable } from '@/api/accounting'
import { ref } from 'vue'
import type { OthersPrices } from '@/model/othersPrices'
import { getNow, toJalaliNoTime } from '@core/utils/useDataTime'
import { cols } from '@/pages/menuPages/customers/base/hooks/customerColumns'
import type { TableInput } from '@core/type/baseTable'
import type { PriceChart } from '@/model/priceChart'
// import {getBalance} from "@/api/product"
import type { Balance } from '@/model/product'
import { getBalance } from "@/api/product";
const tarazLoading = ref<boolean>(false)
const main = ref(null)
const bar = ref(null)
const type = ref<string>('week')
const dashboardInf = ref<Dashboard>()
const othersPrices = ref<OthersPrices>()
@@ -672,7 +661,7 @@ const otherPricesOptions = ref({
}
},
xaxis: {
categories: ['henzagold.com', 'milli.gold', 'tala.ir', 'samin.gold'],
categories: ['henzagold.com', 'milli.gold', 'tala.ir', 'gold.ir'],
labels: {
style: {
fontFamily: "'IranSans', sans-serif",
@@ -865,11 +854,11 @@ onMounted(() => {
}
.dashboard-tabs-class div {
@apply text-gray-400 w-25 text-center py-2 cursor-pointer;
@apply text-gray-400 w-25 text-center py-2 cursor-pointer;
}
.selected_item {
@apply ! bg- [ #0A1B37 ] ! text-white rounded-lg;
@apply ! bg- [ #0A1B37 ] ! text-white rounded-lg;
}
//chart