fix edits for borsemes

This commit is contained in:
2026-07-23 17:53:28 +03:30
parent 73feee2048
commit d505f3b5bd
12 changed files with 353 additions and 261 deletions
@@ -17,6 +17,7 @@
:item="item"
@open="openSheet"
@toggle-sts="confirmToggleSts"
@delete="confirmDelete"
/>
</MobileCardList>
@@ -37,6 +38,7 @@ type AccountRow = Card & { sts_str?: string; created_at?: string; customer_id?:
const emit = defineEmits<{
(e: 'toggleSts', item: AccountRow): void
(e: 'delete', id: number): void
}>()
const { sheetVisible, selectedItem, openSheet, syncSelectedItem } = useMobileDetailSheet<AccountRow>()
@@ -55,6 +57,11 @@ function confirmToggleSts(item: AccountRow) {
})
}
function confirmDelete(item: AccountRow) {
if (item.id == null) return
emit('delete', item.id)
}
const { loading, search, items, hasMore, reload, loadMore, fetch } = useMobileTableList<AccountRow>({
fetchApi: getAccountTable,
onFetched: (rows) => syncSelectedItem(rows)
@@ -20,6 +20,12 @@
:size="20"
@click="$emit('toggleSts', item)"
/>
<MobileIconButton
icon="vuesax-linear:trash"
color="#DC2626"
:size="20"
@click="$emit('delete', item)"
/>
</div>
</MobileCard>
</template>
@@ -38,6 +44,7 @@ const props = defineProps<{
defineEmits<{
(e: 'open', item: AccountRow): void
(e: 'toggleSts', item: AccountRow): void
(e: 'delete', item: AccountRow): void
}>()
const customerName = computed(() => props.item.customer?.name || '-')
@@ -10,7 +10,7 @@
</BaseButton>-->
</template>
<template #action="{ column, record }">
<div class="gap-2 flex justify-center">
<div class="gap-2 flex justify-center items-center">
<a-tooltip
:key="record.sts"
placement="bottom"
@@ -25,6 +25,12 @@
:color="record.sts !== 2 ? 'red' : 'green'"
/>
</a-tooltip>
<a-tooltip placement="bottom" class="cursor-pointer" @click="emits('delete', record.id)">
<template #title>
<span>حذف کارت</span>
</template>
<Icon icon="vuesax-linear:trash" color="red" />
</a-tooltip>
</div>
</template>
</BaseTable>
@@ -34,6 +40,7 @@
ref="mobileListRef"
class="min-h-0 flex-1"
@toggle-sts="changeAccountStsFunction"
@delete="(id) => emits('delete', id)"
/>
</div>
</BasicShowContext>
+3 -202
View File
@@ -2,220 +2,21 @@
<div>
<BasicMainCard>
<div class="flex w-full h-full">
<tbl
ref="table"
class="w-full h-full"
@edit="edit"
@delete="deleteItem"
@withdraw="openWithdraw"
/>
<!-- <BasicMenu :menu="menu" width="13rem" @onChange="tabSelected" />
<component :is="selectedComponent" class="mr-5" />-->
<!-- <BasicShowContext title="پروژه ها"> <Search /> </BasicShowContext>-->
<tbl ref="table" class="w-full h-full" @delete="deleteItem" />
</div>
</BasicMainCard>
<!-- <BasicInfoModal
v-model:visible="userInfoVisible"
@close="userInfoVisible = 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 { inputLenRules, inputRules } from '@/utils/inputRules'
import { useStaticApiListsStore } from '@/store/staticApisStore'
import { ref } from 'vue'
import { DatePicker } from 'ant-design-vue'
import tbl from './components/table.vue'
import type { FormInstance } from 'ant-design-vue'
import BasicInfoModal from '@/components/BasicInfoModal/index.vue'
import { message } from 'ant-design-vue/es'
import type { Info } from '@/components/BasicInfoModal/model/Info'
import { 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 { createCustomer, deleteCustomer, updateCustomer } from '@/api/customer'
import type { Order } from '@/model/order'
import type { Wallet, Withdraw } from '@/model/wallet'
import { completeWithdraw } from '@/api/wallet'
//import DatePicker from '@core/components/_sample/components/datePicker.vue'
import { deleteAccount } from '@/api/card'
//loading
const loading = ref<boolean>(false)
//define store
const store = useStaticApiListsStore()
//define tbl
const table = ref(null)
const refreshTable = () => table?.value?.fetch()
let updateKey = ref<number>(0)
//form
const form = ref<Withdraw>({})
const formRef = ref<FormInstance>()
//info
let infoParams = reactive<Info>({})
/*
function info(val: Order) {
infoParams.name = val.customer.name
infoParams.type = val.customer.mobile
infoParams.date = toJalaliNoTime(val.created_at)
infoParams.time = toTime(val.created_at)
infoParams.itemsTitle = 'اطلاعات کاربری'
infoParams.items = [
{
key: 'مقدار (گرم)',
value: val.amount ?? '-'
},
{
key: 'قیمت هر گرم طلا برای مشتری (ریال)',
value: val.price ?? '-'
},
{
key: 'قیمت کل برای مشتری (ریال)',
value: val.total_price ?? '-'
},
{
key: '/قیمت هر گرم طلا بدون سود (ریال)',
value: val.price_original ?? '-'
},
{
key: 'قیمت کل بدون سود (ریال)',
value: val.total_price_original ?? '-'
},
{
key: 'سود هر گرم (ریال)',
value: val.fee ?? '-'
},
{
key: 'سود کل (ریال)',
value: val.total_fee ?? '-'
},
{
key: 'کد کاربری',
value: val.customer.id ?? '-'
},
{
key: 'شماره ملی',
value: val.customer.n_code ?? '-'
},
{
key: 'تاریخ تولد',
value: toJalaliNoTime(val.customer.birth_date) ?? '-'
},
{
key: 'نام فروشگاه',
value: val.customer.shop_name ?? '-'
},
{
key: 'شماره تلفن فروشگاه',
value: val.customer.phone_number ?? '-'
},
{
key: 'نام استان',
value: val.customer.province ?? '-'
},
{
key: 'نام شهر',
value: val.customer.city ?? '-'
}
/!* {
key: 'نام چاپی',
value: val.print_name ?? '-'
}*!/
]
userInfoVisible.value = true
}
*/
//edit
let editId: number | undefined = undefined
async function edit(record: Customer) {
confirmWithdrawVisible.value = true
editId = record.id
form.value = cloneDeep(record)
}
//add
/*async function add() {
loading.value = true
editId = undefined
// await store.getUsersList()
confirmWithdrawVisible.value = true
updateKey.value++
resetData()
loading.value = false
}*/
function openWithdraw(val: number) {
confirmWithdrawId = val
confirmWithdrawVisible.value = true
}
//reset data
const resetData = () => {
formRef.value?.resetFields()
form.value = {
tracked_number: undefined
}
}
//delete
const deleteItem = (id: number) => confirmDeleteItem('کاربر', id, deleteCustomer, refreshTable)
//define selects
onMounted(async () => {
loading.value = true
// await getResponsible()
// await getQC()
// await getManager()
loading.value = false
})
//add project modal
const confirmWithdrawVisible = ref<boolean>(false)
let confirmWithdrawId: number
// const userInfoVisible = ref<boolean>(false)
//submit user
async function okWithdraw() {
formRef.value?.validateFields().then(async () => {
// console.log('salam', form.value)
// return
loading.value = true
try {
form.value.id = confirmWithdrawId
await completeWithdraw(form.value)
confirmWithdrawVisible.value = false
refreshTable()
resetData()
message.success('شماره پیگیری با موفقیت تایید شد')
// await getResponsible()
// await getQC()
// await getManager()
} catch (e) {
console.error(e)
// message.error('خطا در بارگذاری اطلاعات')
} finally {
loading.value = false
}
})
}
const deleteItem = (id: number) => confirmDeleteItem('کارت بانکی', id, deleteAccount, refreshTable)
</script>
<style scoped></style>