This commit is contained in:
oneao committed 2025-09-29 17:33:48 +08:00
1 parent 9954a33f89
commit aa10a8c1f7
80 files changed
+14576 -732

No files matched your search

@@ -0,0 +1,55 @@
<script setup lang="ts">
import PickerSelect from '../picker-select/index.vue'
const props = defineProps({
label: { type: String, default: '' },
value: { type: null as unknown as PropType<any>, default: undefined },
labelField: { type: String, required: true },
valueField: { type: String, required: true },
viewname: { type: String, required: true },
field1: { type: String, required: true },
field2: { type: String, required: true },
placeholder: { type: String, default: '请选择' },
})
const emits = defineEmits<{
(e: 'update:label', val: string): void
(e: 'update:value', val: any): void
}>()
const _visible = ref(false)
const _label = ref(props.label)
// 同步 props.label
watch(() => props.label, (val) => {
_label.value = val
})
// 选中时只处理 label
function handleSelectChange(selectValue: any) {
if (!selectValue)
return
_label.value = selectValue[props.labelField]
emits('update:label', _label.value)
}
</script>
<template>
<sar-popout-input
v-model="_label"
:placeholder="props.placeholder"
@click="_visible = true"
>
<PickerSelect
v-model:visible="_visible"
:value="props.value"
:viewname="props.viewname"
:field1="props.field1"
:field2="props.field2"
:label-field="props.labelField"
:value-field="props.valueField"
@update:value="emits('update:value', $event)"
@change="handleSelectChange"
/>
</sar-popout-input>
</template>