8 changed files with 189 additions and 12 deletions
@ -0,0 +1,50 @@ |
|||||||
|
<template> |
||||||
|
<el-select @change="change" filterable> |
||||||
|
<el-option-group |
||||||
|
v-for="group in options" |
||||||
|
:key="group.label" |
||||||
|
:label="group.label" |
||||||
|
> |
||||||
|
<el-option |
||||||
|
v-for="item in group.options" |
||||||
|
:key="item.value" |
||||||
|
:label="item.label" |
||||||
|
:value="item.value" |
||||||
|
/> |
||||||
|
</el-option-group> |
||||||
|
</el-select> |
||||||
|
</template> |
||||||
|
<script setup> |
||||||
|
import { list12337HandleResult } from '@/api/system/dict' |
||||||
|
|
||||||
|
|
||||||
|
const emit = defineEmits(['select']); |
||||||
|
const options = ref([]) |
||||||
|
|
||||||
|
onMounted(() => { |
||||||
|
list12337HandleResult().then(data => { |
||||||
|
options.value = data |
||||||
|
}) |
||||||
|
}) |
||||||
|
|
||||||
|
function change(value) { |
||||||
|
let result = {}; |
||||||
|
if (value) { |
||||||
|
for(const item of options.value) { |
||||||
|
const obj = item.options.find(option => option.value === value); |
||||||
|
if (obj) { |
||||||
|
result = { |
||||||
|
text: obj.text, |
||||||
|
value: obj.value, |
||||||
|
group: item.label |
||||||
|
} |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
emit('select', result) |
||||||
|
} |
||||||
|
</script> |
||||||
|
<style lang="scss" scoped> |
||||||
|
|
||||||
|
</style> |
||||||
Loading…
Reference in new issue