try fix table

This commit is contained in:
2025-01-24 01:46:57 +08:00
parent 27ee106297
commit 11ca450ee7
6 changed files with 94 additions and 42 deletions

View File

@@ -1,7 +1,7 @@
<template>
<kuc-combobox
:items="items.value"
:value="modelValue"
:value="comboboxValue"
@change="updateValue"
:key="componentKey"
:disabled="selectedAppData.loading == undefined ? false : selectedAppData.loading"
@@ -9,20 +9,23 @@
</template>
<script setup lang="ts">
import { search } from '@/js/helper';
import type { CachedSelectedAppData } from '@/types/model';
import { getEmptyOneOf, search } from '@/js/helper';
import type { OneOf } from '@/js/kintone-rest-api-client';
import type { CachedSelectedAppData, EmptyOneOf } from '@/types/model';
import type { KucEvent } from '@/types/my-kintone';
import type { DropdownItem } from 'kintone-ui-component';
import { defineProps, defineEmits, type Ref, watch, ref } from 'vue';
import type { ComboboxChangeEventDetail, DropdownItem } from 'kintone-ui-component';
import { defineProps, defineEmits, type Ref, watch, ref, computed } from 'vue';
const props = defineProps<{
items: Ref<DropdownItem[]>;
modelValue: string;
modelValue: OneOf | EmptyOneOf;
dataList: any[];
id: string;
selectedAppData: CachedSelectedAppData;
}>();
const comboboxValue = computed(() => (props.modelValue?.code || ''));
const componentKey = ref(0);
// fix-bug: force select saved data when load config
watch(
@@ -38,14 +41,18 @@ watch(
type EmitData = {
obj?: any;
value: string;
value: OneOf | EmptyOneOf;
};
const emit = defineEmits<{
(e: 'update:modelValue', data: EmitData): void;
}>();
const updateValue = (event: KucEvent) => {
emit('update:modelValue', { obj: search(props.dataList, props.id), value: event.detail.value });
const updateValue = ({ detail }: KucEvent<ComboboxChangeEventDetail>) => {
console.log(props.selectedAppData.appFields.fields, detail.value)
emit('update:modelValue', {
obj: search(props.dataList, props.id),
value: props.selectedAppData.appFields.fields[detail.value || ''] || getEmptyOneOf(),
});
};
</script>