1404/12/06-fix bug in add product form tooltip

This commit is contained in:
2026-02-25 17:36:11 +03:30
parent 9557989b20
commit d87f850b00
8 changed files with 190 additions and 186 deletions
-6
View File
@@ -15,7 +15,6 @@ declare module '@vue/runtime-core' {
ABadge: typeof import('ant-design-vue/es')['Badge']
AButton: typeof import('ant-design-vue/es')['Button']
ACard: typeof import('ant-design-vue/es')['Card']
ACheckbox: typeof import('ant-design-vue/es')['Checkbox']
AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider']
ADivider: typeof import('ant-design-vue/es')['Divider']
ADrawer: typeof import('ant-design-vue/es')['Drawer']
@@ -33,10 +32,7 @@ declare module '@vue/runtime-core' {
AMenuItem: typeof import('ant-design-vue/es')['MenuItem']
AModal: typeof import('ant-design-vue/es')['Modal']
APagination: typeof import('ant-design-vue/es')['Pagination']
APopconfirm: typeof import('ant-design-vue/es')['Popconfirm']
APopover: typeof import('ant-design-vue/es')['Popover']
ARadio: typeof import('ant-design-vue/es')['Radio']
ARadioButton: typeof import('ant-design-vue/es')['RadioButton']
ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup']
ASelect: typeof import('ant-design-vue/es')['Select']
ASelectOption: typeof import('ant-design-vue/es')['SelectOption']
@@ -46,8 +42,6 @@ declare module '@vue/runtime-core' {
ATable: typeof import('ant-design-vue/es')['Table']
ATabPane: typeof import('ant-design-vue/es')['TabPane']
ATabs: typeof import('ant-design-vue/es')['Tabs']
ATag: typeof import('ant-design-vue/es')['Tag']
ATextarea: typeof import('ant-design-vue/es')['Textarea']
ATooltip: typeof import('ant-design-vue/es')['Tooltip']
AUpload: typeof import('ant-design-vue/es')['Upload']
BaseButton: typeof import('./src/core/components/BaseButton/index.ts')['default']
@@ -81,7 +81,7 @@ defineExpose({
@prefix: ~'@{prefixCls}-pophoverstatus';
.ant-popover,
.ant-tooltip {
z-index: 10 !important;
z-index: 1001 !important;
}
.@{prefix} {
@@ -82,7 +82,7 @@ defineExpose({
@prefix: ~'@{prefixCls}-pophoverstatus';
.ant-popover,
.ant-tooltip {
z-index: 10 !important;
z-index: 1001 !important;
}
.@{prefix} {
@@ -403,7 +403,7 @@ defineExpose({
@prefix: ~'@{prefixCls}-pophoverstatus';
.ant-popover,
.ant-tooltip {
z-index: 10 !important;
z-index: 1001 !important;
}
.@{prefix} {
@@ -81,7 +81,7 @@ defineExpose({
@prefix: ~'@{prefixCls}-pophoverstatus';
.ant-popover,
.ant-tooltip {
z-index: 10 !important;
z-index: 1001 !important;
}
.@{prefix} {
@@ -82,7 +82,7 @@ defineExpose({
@prefix: ~'@{prefixCls}-pophoverstatus';
.ant-popover,
.ant-tooltip {
z-index: 10 !important;
z-index: 1001 !important;
}
.@{prefix} {
@@ -589,7 +589,7 @@ async function setTimeActive(start: string, end: string) {
@prefix: ~'@{prefixCls}-pophoverstatus';
.ant-popover,
.ant-tooltip {
z-index: 10 !important;
z-index: 1001 !important;
}
.@{prefix} {
+184 -174
View File
@@ -3,35 +3,34 @@
<!-- <BasicMainCard>-->
<div class="flex w-full h-full">
<tbl
ref="table"
class="w-full h-full"
@info="info"
@edit="edit"
@add="add"
@chargeMoney="walletMoneyCharge"
@chargeGold="walletGoldCharge"
ref="table"
class="w-full h-full"
@info="info"
@edit="edit"
@add="add"
@chargeMoney="walletMoneyCharge"
@chargeGold="walletGoldCharge"
/>
<!-- <BasicMenu :menu="menu" width="13rem" @onChange="tabSelected" />
<component :is="selectedComponent" class="mr-5" />-->
<!-- <BasicShowContext title="پروژه ها"> <Search /> </BasicShowContext>-->
</div>
<!-- </BasicMainCard>-->n
<BasicModal
v-model:visible="addUserVisible"
width="50rem"
:title="`${editId ? 'ویرایش' : 'افزودن'} محصول`"
@ok="ok"
:loading="loading"
@close="addUserVisible = false"
v-model:visible="addUserVisible"
width="50rem"
:title="`${editId ? 'ویرایش' : 'افزودن'} محصول`"
@ok="ok"
:loading="loading"
@close="addUserVisible = false"
>
<Collapse class="grid grid-cols-1 gap-2" v-model:activeKey="activeKey_">
<BaseCollapse title="اطلاعات محصول" active-key="0" :actives="activeKey_">
<template #content>
<!-- <div class="flex justify-between h-full w-full">-->
<div
v-if="form.group_type === '' || form.group_type !== 'آبشده'"
class="md:flex justify-between border-1 border-solid rounded-lg border-gray-200 p-2"
v-if="form.group_type === '' || form.group_type !== 'آبشده'"
class="md:flex justify-between border-1 border-solid rounded-lg border-gray-200 p-2"
>
<div class="items-center">
<span class="ml-4">دریافت قیمت از :</span>
@@ -43,28 +42,28 @@
<div>
<div v-if="methodOption === '1'" class="md:flex items-center justify-between md:w-[25rem]">
<div>قیمت وسط :</div>
<BasicInput class="mt-1 md:mt-unset" addon-before="ریال" type="price" v-model:value="form.price" />
<BasicInput class="mt-1 md:mt-unset" addon-before="ریال" type="price" v-model:value="form.price"/>
<AButton
class="border-green text-green mt-1 md:mt-unset rounded-full aspect-square"
size="small"
shape="circle"
@click="addPrice()"
class="border-green text-green mt-1 md:mt-unset rounded-full aspect-square"
size="small"
shape="circle"
@click="addPrice()"
>
<template #icon>
<div class="flex items-center justify-center">
<Icon icon="vuesax-linear:add" size="20" />
<Icon icon="vuesax-linear:add" size="20"/>
</div>
</template>
</AButton>
<AButton
class="border-red text-red mr-1 md:mr-unset rounded-full"
size="small"
shape="circle"
@click="minusPrice()"
class="border-red text-red mr-1 md:mr-unset rounded-full"
size="small"
shape="circle"
@click="minusPrice()"
>
<template #icon>
<div class="flex items-center justify-center">
<Icon icon="vuesax-linear:minus" size="20" />
<Icon icon="vuesax-linear:minus" size="20"/>
</div>
</template>
</AButton>
@@ -73,12 +72,12 @@
<div class="ml-4">قیمت :</div>
<div class="">
<BasicSelect
class="w-11rem method_style"
allowClear
:items="pricesList"
valueName="name"
keyName="id"
v-model:value="form.reading_method"
class="w-11rem method_style"
allowClear
:items="pricesList"
valueName="name"
keyName="id"
v-model:value="form.reading_method"
/>
</div>
</div>
@@ -96,7 +95,7 @@
<div v-if="weightOption === '1'" class="flex items-center">
<span class="ml-4 ">وزن به گرم :</span>
<div class="">
<BasicInput v-model:value="form.amount" type="number" />
<BasicInput v-model:value="form.amount" type="number"/>
</div>
<div class="mt-1 mr-4" v-if="form.amount && form.amount < 1 && 0 < form.amount">
معادل {{ form.amount * 1000 }} سوت
@@ -106,99 +105,110 @@
<a-form :model="form" ref="formRef" autocomplete="off">
<div class="grid md:grid-cols-2 gap-4">
<a-form-item label="عنوان" name="title" :rules="inputRules()">
<BasicInput v-model:value="form.title" />
<BasicInput v-model:value="form.title"/>
</a-form-item>
<a-form-item v-if="getConfigApp('name') === 'garoosi'" label="دسته بندی" name="group_type" :rules="inputRules()">
<a-form-item v-if="getConfigApp('name') === 'garoosi'" label="دسته بندی" name="group_type"
:rules="inputRules()">
<BasicSelect
v-model:value="form.group_type"
:items="GaroosiCategoryItems"
valueName="value"
keyName="value"
v-model:value="form.group_type"
:items="GaroosiCategoryItems"
valueName="value"
keyName="value"
/>
</a-form-item>
<a-form-item v-else label="دسته بندی" name="group_type" :rules="inputRules()">
<BasicSelect
v-model:value="form.group_type"
:items="categoryItems"
valueName="value"
keyName="value"
v-model:value="form.group_type"
:items="categoryItems"
valueName="value"
keyName="value"
/>
</a-form-item>
<a-form-item label="جنس فلز" name="metal_id" :rules="inputRules()">
<BasicSelect
v-model:value="form.metal_id"
:items="metalItems"
valueName="value"
keyName="key"
v-model:value="form.metal_id"
:items="metalItems"
valueName="value"
keyName="key"
/>
</a-form-item>
<a-form-item label="واحد" name="unit" :rules="inputRules()">
<BasicSelect
v-model:value="form.unit"
:items="unitItems"
valueName="value"
keyName="value"
v-model:value="form.unit"
:items="unitItems"
valueName="value"
keyName="value"
/>
</a-form-item>
<!-- <a-form-item v-if="weightOption === '1'" label="وزن به گرم" name="amount" :rules="inputRules()">
<BasicInput v-model:value="form.amount" type="number" />
</a-form-item>-->
vite build
<a-form-item v-if="form.group_type === '' || form.group_type !== 'آبشده'"
name="percent_fee_buy" :rules="inputRules()">
<template #label>
<span class="inline-flex items-center gap-1">
کارمزد درصدی موقع خرید
<a-tooltip placement="bottom" class="cursor-pointer">
<template #title>
<span>مقدار باید به اعشار وارد گردد بعنوان مثال 1 درصد به صورت 0.01 باید وارد گردد.</span>
</template>
<Icon icon="vuesax-linear:info-circle" class="cursor-pointer" color="#e3bf00" />
</a-tooltip>
</span>
<a-tooltip
placement="top"
>
<template #title>
مقدار باید به اعشار وارد گردد بعنوان مثال 1 درصد به صورت 0.01 باید وارد گردد.
</template>
<span class="inline-flex cursor-pointer">
<Icon
icon="vuesax-linear:info-circle"
color="#e3bf00"
/>
</span>
</a-tooltip>
</span>
</template>
<BasicInput v-model:value="form.percent_fee_buy" type="number" />
<BasicInput v-model:value="form.percent_fee_buy" type="number"/>
</a-form-item>
<a-form-item v-if="form.group_type === '' || form.group_type !== 'آبشده'"
label="هزینه نقدی موقع خرید" name="cash_fee_buy" :rules="inputRules()">
<BasicInput v-model:value="form.cash_fee_buy" type="number" />
<BasicInput v-model:value="form.cash_fee_buy" type="number"/>
</a-form-item>
<a-form-item v-if="form.group_type === '' || form.group_type !== 'آبشده'"
name="percent_fee_sell" :rules="inputRules()">
<template #label>
<span class="inline-flex items-center gap-1">
کارمزد درصدی موقع فروش
<a-tooltip placement="bottom" class="cursor-pointer">
<template #title>
<span>مقدار باید به اعشار وارد گردد بعنوان مثال 1 درصد به صورت 0.01 باید وارد گردد</span>
</template>
<Icon icon="vuesax-linear:info-circle" class="cursor-pointer" color="#e3bf00" />
<a-tooltip placement="top" class="cursor-pointer" :zIndex="9999">
<template #title>
<span>مقدار باید به اعشار وارد گردد بعنوان مثال 1 درصد به صورت 0.01 باید وارد گردد</span>
</template>
<Icon icon="vuesax-linear:info-circle" class="cursor-pointer" color="#e3bf00"/>
</a-tooltip>
</span>
</template>
<BasicInput v-model:value="form.percent_fee_sell" type="number" />
<BasicInput v-model:value="form.percent_fee_sell" type="number"/>
</a-form-item>
<a-form-item v-if="form.group_type === '' || form.group_type !== 'آبشده'"
label="هزینه نقدی موقع فروش" name="cash_fee_sell" :rules="inputRules()">
<BasicInput v-model:value="form.cash_fee_sell" type="number" />
<BasicInput v-model:value="form.cash_fee_sell" type="number"/>
</a-form-item>
<a-form-item label="زمان شروع فعال سازی" name="auto_open_at">
<TimePicker
v-model:value="form.auto_open_at"
:locale="customLocale"
placeholder="انتخاب زمان"
:defaultValue="dayjs('00:00:00', 'HH:mm:ss')"
v-model:value="form.auto_open_at"
:locale="customLocale"
placeholder="انتخاب زمان"
:defaultValue="dayjs('00:00:00', 'HH:mm:ss')"
/>
<!-- <a-time-picker v-model:value="form.auto_open_at"/>-->
</a-form-item>
<a-form-item label="زمان پایان فعال سازی" name="auto_close_at">
<TimePicker
v-model:value="form.auto_close_at"
:locale="customLocale"
placeholder="انتخاب زمان"
:defaultValue="dayjs('00:00:00', 'HH:mm:ss')"
v-model:value="form.auto_close_at"
:locale="customLocale"
placeholder="انتخاب زمان"
:defaultValue="dayjs('00:00:00', 'HH:mm:ss')"
/>
<!-- <a-time-picker v-model:value="form.auto_close_at"/>-->
</a-form-item>
@@ -210,14 +220,14 @@
<template #content>
<div class="flex gap-2">
<IndexImageUploader
v-model:file-list="ProductIndexImage"
@ok="uploadedIndexFile"
@delete="deleteIndexFile"
v-model:file-list="ProductIndexImage"
@ok="uploadedIndexFile"
@delete="deleteIndexFile"
/>
<ProductImageUploader
v-model:file-list="ImageFileList"
@ok="uploadedFile"
@delete="deleteFile"
v-model:file-list="ImageFileList"
@ok="uploadedFile"
@delete="deleteFile"
/>
</div>
</template>
@@ -226,12 +236,12 @@
</BasicModal>
<BasicModal
v-model:visible="userInfoVisible"
width="100vw"
title="اطلاعات کاربر"
:loading="loading"
custom-footer
@close="userInfoVisible = false"
v-model:visible="userInfoVisible"
width="100vw"
title="اطلاعات کاربر"
:loading="loading"
custom-footer
@close="userInfoVisible = false"
>
<a-tabs v-model:activeKey="activeKey">
<a-tab-pane key="اطلاعات جامع" tab="اطلاعات جامع">
@@ -244,17 +254,17 @@
<div class="flex flex-col justify-center items-center pl-3">
<div class="flex flex-col justify-center items-center">
<Icon
:icon="
:icon="
userInfo.is_legal === 0
? 'vuesax-linear:close-circle'
: 'vuesax-linear:verify'
"
:key="userInfo.is_legal"
:color="userInfo.is_legal === 0 ? '#ff0000' : '#008000'"
:key="userInfo.is_legal"
:color="userInfo.is_legal === 0 ? '#ff0000' : '#008000'"
/>
<p
class="text-[11px] mt-2"
:class="userInfo.is_legal === 0 ? 'reject' : 'success'"
class="text-[11px] mt-2"
:class="userInfo.is_legal === 0 ? 'reject' : 'success'"
>
{{ userStatus(userInfo.is_legal).title }}
</p>
@@ -262,169 +272,169 @@
<div>{{ toJalaliNoTime(userInfo?.created_at) }}</div>
<div class="mt-2">
<CustomTag
:textColor="userInfo?.active ? '#25855A' : '#C53030'"
:bgColor="userInfo?.active ? '#E3F4E9' : '#FECACA'"
class="font-bold px-6"
:textColor="userInfo?.active ? '#25855A' : '#C53030'"
:bgColor="userInfo?.active ? '#E3F4E9' : '#FECACA'"
class="font-bold px-6"
>
{{ userInfo?.active ? "فعال" : "غیرفعال" }}
</CustomTag>
</div>
</div>
</div>
<BasicInfoItem title="کد کاربری" :value="userInfo?.id" />
<BasicInfoItem title="نوع کاربر" :value="userInfo?.type_str" />
<BasicInfoItem title="کد کاربری" :value="userInfo?.id"/>
<BasicInfoItem title="نوع کاربر" :value="userInfo?.type_str"/>
<BasicInfoItem
title="تاریخ تولد"
:value="userInfo?.birth_date ? toJalaliNoTime(userInfo?.birth_date) : '_'"
title="تاریخ تولد"
:value="userInfo?.birth_date ? toJalaliNoTime(userInfo?.birth_date) : '_'"
/>
<BasicInfoItem title="شماره ملی" :value="userInfo?.n_code ?? '_'" />
<BasicInfoItem title="نام استان" :value="userInfo?.province ?? '_'" />
<BasicInfoItem title="نام شهر" :value="userInfo?.city ?? '_'" />
<BasicInfoItem title="شماره ملی" :value="userInfo?.n_code ?? '_'"/>
<BasicInfoItem title="نام استان" :value="userInfo?.province ?? '_'"/>
<BasicInfoItem title="نام شهر" :value="userInfo?.city ?? '_'"/>
<BasicInfoItem
title="سقف اعتبار"
:value="userInfo?.gram ? `${userInfo?.gram} گرم` : '_'"
title="سقف اعتبار"
:value="userInfo?.gram ? `${userInfo?.gram} گرم` : '_'"
/>
<BasicInfoItem title="کد معرف" :value="userInfo?.referral_id" />
<BasicInfoItem title="کد معرف" :value="userInfo?.referral_id"/>
<BasicInfoItem
title="کد معرف کاربر"
:value="userInfo?.referral ? userInfo?.referral?.id : '_'"
title="کد معرف کاربر"
:value="userInfo?.referral ? userInfo?.referral?.id : '_'"
/>
<BasicInfoItem
title="نام معرف کاربر"
:value="userInfo?.referral ? userInfo?.referral?.name : '_'"
title="نام معرف کاربر"
:value="userInfo?.referral ? userInfo?.referral?.name : '_'"
/>
<BasicInfoItem
title="میزان سود معرفی"
:value="userInfo?.profit_amount ? `${userInfo?.profit_amount} گرم` : '_'"
title="میزان سود معرفی"
:value="userInfo?.profit_amount ? `${userInfo?.profit_amount} گرم` : '_'"
/>
<BasicInfoItem
title="حداکثر معرفی"
:value="userInfo?.add_user_limit ? `${userInfo?.add_user_limit} نفر` : '_'"
title="حداکثر معرفی"
:value="userInfo?.add_user_limit ? `${userInfo?.add_user_limit} نفر` : '_'"
/>
<BasicInfoItem title="آخرین بازدید" :value="toJalali(userInfo?.last_seen_at)" />
<BasicInfoItem title="آخرین بازدید" :value="toJalali(userInfo?.last_seen_at)"/>
<BasicInfoItem title="وضعیت سفارش دهی">
<CustomTag
:textColor="userInfo?.trade_active === 1 ? '#25855A' : '#C53030'"
:bgColor="userInfo?.trade_active === 1 ? '#E3F4E9' : '#FECACA'"
class="font-bold px-6"
:textColor="userInfo?.trade_active === 1 ? '#25855A' : '#C53030'"
:bgColor="userInfo?.trade_active === 1 ? '#E3F4E9' : '#FECACA'"
class="font-bold px-6"
>
{{ userInfo?.trade_active === 1 ? "مجاز" : "غیر مجاز" }}
</CustomTag>
</BasicInfoItem>
<div class="col-span-4 grid grid-cols-2 gap-3">
<div
v-for="(item, index) in userInfo.wallet"
:key="index"
class="grid grid-cols-2 bg-orange-50 gap-2 rounded-lg p-2"
v-for="(item, index) in userInfo.wallet"
:key="index"
class="grid grid-cols-2 bg-orange-50 gap-2 rounded-lg p-2"
>
<BasicInfoItem
title="نام قلک"
:value="item?.fund ? item?.fund?.title : 'کیف پول طلایی'"
title="نام قلک"
:value="item?.fund ? item?.fund?.title : 'کیف پول طلایی'"
/>
<BasicInfoItem title="مقدار طلا" :value="`${item?.gold} گرم`" />
<BasicInfoItem title="مقدار طلا" :value="`${item?.gold} گرم`"/>
</div>
</div>
</div>
</a-tab-pane>
<a-tab-pane key="لیست سفارشات" tab="لیست سفارشات">
<orders-tbl ref="orderTable" :customerId="userInfo?.id" @info="infoOrder" />
<orders-tbl ref="orderTable" :customerId="userInfo?.id" @info="infoOrder"/>
</a-tab-pane>
<a-tab-pane key="لیست تراکنش ها" tab="لیست تراکنش ها">
<transactions-tbl ref="transactionTable" :customerId="userInfo?.id" />
<transactions-tbl ref="transactionTable" :customerId="userInfo?.id"/>
</a-tab-pane>
<a-tab-pane key="پیامک ها" tab="پیامک ها">
<sms-tbl ref="smsTable" :mobile="userInfo?.mobile" />
<sms-tbl ref="smsTable" :mobile="userInfo?.mobile"/>
</a-tab-pane>
<a-tab-pane key="معرفی کرده ها" tab="معرفی کرده ها">
<ReferralsTable ref="referralTable" :customerId="userInfo?.id" />
<ReferralsTable ref="referralTable" :customerId="userInfo?.id"/>
</a-tab-pane>
<a-tab-pane key="قلک ها" tab="قلک ها">
<FundsTable ref="fundTable" :customerId="userInfo?.id" />
<FundsTable ref="fundTable" :customerId="userInfo?.id"/>
</a-tab-pane>
</a-tabs>
</BasicModal>
<BasicModal
v-model:visible="showMoneyWalletCharge"
width="20rem"
title="شارژ کیف پول ریالی"
@ok="chargeMoneyWallet"
:loading="loading"
@close="showMoneyWalletCharge = false"
v-model:visible="showMoneyWalletCharge"
width="20rem"
title="شارژ کیف پول ریالی"
@ok="chargeMoneyWallet"
:loading="loading"
@close="showMoneyWalletCharge = false"
>
<a-form :model="formCharge" ref="formChargeRef" autocomplete="off">
<a-form-item label="مقدار شارژ " name="value" :rules="inputRules()">
<BasicInput addon-before="ریال" v-model:value="formCharge.value" type="price" />
<BasicInput addon-before="ریال" v-model:value="formCharge.value" type="price"/>
<div v-show="formCharge.value > 10">
معادل {{ usePrice(formCharge.value / 10, true, "تومان") }}
</div>
</a-form-item>
<a-form-item label="علت شارژ " name="value" :rules="inputRules()">
<BasicInput v-model:value="formCharge.note" />
<BasicInput v-model:value="formCharge.note"/>
</a-form-item>
</a-form>
</BasicModal>
<BasicModal
v-model:visible="showGoldWalletCharge"
width="20rem"
title="شارژ کیف پول طلایی"
@ok="chargeGoldWallet"
:loading="loading"
@close="showGoldWalletCharge = false"
v-model:visible="showGoldWalletCharge"
width="20rem"
title="شارژ کیف پول طلایی"
@ok="chargeGoldWallet"
:loading="loading"
@close="showGoldWalletCharge = false"
>
<a-form :model="formCharge" ref="formChargeRef" autocomplete="off">
<a-form-item label="مقدار شارژ " name="value" :rules="inputRules()">
<BasicInput addon-before="گرم" v-model:value="formCharge.value" type="number" />
<BasicInput addon-before="گرم" v-model:value="formCharge.value" type="number"/>
<!-- <div v-show="formCharge.value > 10">
معادل {{ usePrice(formCharge.value / 10, true, 'تومان') }}
</div>-->
</a-form-item>
<a-form-item label="علت شارژ " name="value" :rules="inputRules()">
<BasicInput v-model:value="formCharge.note" />
<BasicInput v-model:value="formCharge.note"/>
</a-form-item>
</a-form>
</BasicModal>
<BasicInfoModal
v-model:visible="userInfoOrderVisible"
@close="userInfoOrderVisible = false"
:title="infoParams.title"
:date="infoParams.date"
:time="infoParams.time"
:type="infoParams.type"
:name="infoParams.name"
:items="infoParams.items"
v-model:visible="userInfoOrderVisible"
@close="userInfoOrderVisible = false"
:title="infoParams.title"
:date="infoParams.date"
:time="infoParams.time"
:type="infoParams.type"
:name="infoParams.name"
:items="infoParams.items"
/>
</div>
</template>
<script setup lang="ts">
// import BasicInfoModal from '@/components/BasicInfoModal'
import { Collapse, FormItem, message, Textarea, Form, TimePicker } from "ant-design-vue";
import { inputLenRules, inputRules } from "@/utils/inputRules";
import { useStaticApiListsStore } from "@/store/staticApisStore";
import { ref, watch } from "vue";
import {Collapse, FormItem, message, Textarea, Form, TimePicker} from "ant-design-vue";
import {inputLenRules, inputRules} from "@/utils/inputRules";
import {useStaticApiListsStore} from "@/store/staticApisStore";
import {ref, watch} from "vue";
import tbl from "./components/table.vue";
import type { FormInstance } from "ant-design-vue";
import type {FormInstance} from "ant-design-vue";
import BasicInfoModal from "@/components/BasicInfoModal/index.vue";
import type { Info } from "@/components/BasicInfoModal/model/Info";
import { toJalali, toJalaliNoTime, toTime } from "@core/utils/useDataTime";
import { confirmDeleteItem } from "@/utils/confirmModal";
import { cloneDeep } from "lodash";
import type { Item } from "@/model/Item";
import type { Customer } from "@/model/customer";
import { createProduct, deleteCustomer, updateCustomer } from "@/api/product";
import type { Charge } from "@/model/wallet";
import type {Info} from "@/components/BasicInfoModal/model/Info";
import {toJalali, toJalaliNoTime, toTime} from "@core/utils/useDataTime";
import {confirmDeleteItem} from "@/utils/confirmModal";
import {cloneDeep} from "lodash";
import type {Item} from "@/model/Item";
import type {Customer} from "@/model/customer";
import {createProduct, deleteCustomer, updateCustomer} from "@/api/product";
import type {Charge} from "@/model/wallet";
import customers from "@/router/routes/products";
import { chargeWallet } from "@/api/wallet";
import { usePrice } from "@core/utils/usePrice";
import {chargeWallet} from "@/api/wallet";
import {usePrice} from "@core/utils/usePrice";
import jalaliday from "jalaliday";
import ordersTbl from "@/pages/menuPages/orders/components/table.vue";
import transactionsTbl from "@/pages/menuPages/transactions/components/table.vue";
import smsTbl from "@/pages/menuPages/sms/components/table.vue";
import FundsTable from "@/pages/menuPages/customers/base/components/fundsTable.vue";
import ReferralsTable from "@/pages/menuPages/customers/base/components/referralsTable.vue";
import type { Order } from "@/model/order";
import type {Order} from "@/model/order";
import Icon from "@core/components/BaseIcon/src/Icon.vue";
import type { MethodePrices, Product } from "@/model/product";
import type {MethodePrices, Product} from "@/model/product";
import IndexImageUploader from "@/components/ProductUploader/IndexImageUploader.vue";
import ProductImageUploader from "@/components/ProductUploader/ProductImageUploader.vue";
@@ -468,8 +478,8 @@ function deleteFile() {
}
import BaseCollapse from "@/pages/menuPages/products/base/components/BaseCollapse.vue";
import { methodePrices } from "@/api/price";
import { getAllPrices } from "@/api/dashboard";
import {methodePrices} from "@/api/price";
import {getAllPrices} from "@/api/dashboard";
import dayjs from "dayjs";
const ProductIndexImage = ref<Array<FileList>>([]);
@@ -885,7 +895,7 @@ const minusPrice = () => {
import customParseFormat from "dayjs/plugin/customParseFormat";
import locale from "ant-design-vue/es/date-picker/locale/fa_IR";
import { getConfigApp } from '@/utils/config'
import {getConfigApp} from '@/utils/config'
dayjs.extend(customParseFormat);
const customLocale = ref({