Cardview Popup içerisinde Lookup çağrıları

This commit is contained in:
Sedat ÖZTÜRK 2026-01-28 14:51:19 +03:00
parent 4bec5442a8
commit 566da635c6

View file

@ -1,6 +1,6 @@
import Container from '@/components/shared/Container' import Container from '@/components/shared/Container'
import { DX_CLASSNAMES } from '@/constants/app.constant' import { DX_CLASSNAMES } from '@/constants/app.constant'
import { DbTypeEnum, GridDto, PlatformEditorTypes } from '@/proxy/form/models' import { DbTypeEnum, GridDto, PlatformEditorTypes, UiLookupDataSourceTypeEnum } from '@/proxy/form/models'
import { useLocalization } from '@/utils/hooks/useLocalization' import { useLocalization } from '@/utils/hooks/useLocalization'
import { usePermission } from '@/utils/hooks/usePermission' import { usePermission } from '@/utils/hooks/usePermission'
import { usePWA } from '@/utils/hooks/usePWA' import { usePWA } from '@/utils/hooks/usePWA'
@ -364,6 +364,56 @@ const CardView = (props: CardViewProps) => {
cols?.forEach((col) => { cols?.forEach((col) => {
const eo = col.editorOptions const eo = col.editorOptions
// Lookup desteği ekle (SchedulerView'daki gibi)
// gridDto'dan ilgili columnFormat'ı bul
const listFormField = gridDto?.columnFormats?.find((x: any) => x.fieldName === col.dataField)
if (listFormField?.lookupDto) {
const lookup = listFormField.lookupDto
if (lookup.dataSourceType === UiLookupDataSourceTypeEnum.Query) {
col.editorOptions = {
...col.editorOptions,
dataSource: new CustomStore({
key: 'key',
loadMode: 'raw',
load: async () => {
try {
const { dynamicFetch } = await import('@/services/form.service')
const response = await dynamicFetch('list-form-select/lookup', 'POST', null, {
listFormCode,
listFormFieldName: col.dataField,
filters: [],
})
return (response.data ?? []).map((a: any) => ({
key: a.Key,
name: a.Name,
group: a.Group,
}))
} catch (error) {
console.error('Lookup load error:', error)
return []
}
},
}),
valueExpr: 'key',
displayExpr: 'name',
}
} else if (lookup.dataSourceType === UiLookupDataSourceTypeEnum.StaticData) {
if (lookup.lookupQuery) {
try {
const staticData = JSON.parse(lookup.lookupQuery)
col.editorOptions = {
...col.editorOptions,
dataSource: staticData,
valueExpr: lookup.valueExpr || 'key',
displayExpr: lookup.displayExpr || 'name',
}
} catch (error) {
console.error('Static data parse error:', error)
}
}
}
}
// Sadece phoneGlobal formatlı kolonlarda çalış // Sadece phoneGlobal formatlı kolonlarda çalış
if (eo?.format === 'phoneGlobal') { if (eo?.format === 'phoneGlobal') {
// DevExtreme bazen string tipinde formatter'ı çağırmaz // DevExtreme bazen string tipinde formatter'ı çağırmaz