|
@@ -1,8 +1,10 @@
|
|
|
<template>
|
|
|
<div class="hc-dropdown-box relative">
|
|
|
<el-dropdown trigger="click">
|
|
|
- <span class="dropdown-label">{{ label }}</span>
|
|
|
- <hc-icon name="arrow-down-s" />
|
|
|
+ <div class="hc-dropdown-body">
|
|
|
+ <span class="hc-dropdown-label">{{ labels || '请选择' }}</span>
|
|
|
+ <hc-icon name="arrow-down-s" class="ml-1" />
|
|
|
+ </div>
|
|
|
<template #dropdown>
|
|
|
<el-dropdown-menu>
|
|
|
<template v-for="(item, index) in menuData" :key="index">
|
|
@@ -39,7 +41,7 @@ defineOptions({
|
|
|
})
|
|
|
|
|
|
//双向绑定
|
|
|
-const label = ref('')
|
|
|
+const labels = ref('')
|
|
|
const curKey = defineModel('modelValue', {
|
|
|
default: -1,
|
|
|
})
|
|
@@ -57,8 +59,8 @@ watch(() => define_props.props, (obj) => {
|
|
|
|
|
|
//监听
|
|
|
watch(curKey, (key) => {
|
|
|
- if (key.value) {
|
|
|
- console.log(key.value)
|
|
|
+ if (key) {
|
|
|
+ console.log(key)
|
|
|
getItemLabel()
|
|
|
}
|
|
|
})
|
|
@@ -80,11 +82,12 @@ const setPropsa = (obj) => {
|
|
|
|
|
|
//获取名称
|
|
|
const getItemLabel = () => {
|
|
|
+ if (!curKey.value) return
|
|
|
const { key, label } = propsa.value
|
|
|
const data = menuData.value
|
|
|
for (let i = 0; i < data.length; i++) {
|
|
|
if (data[i][key] === curKey.value) {
|
|
|
- label.value = data[i][label]
|
|
|
+ labels.value = data[i][label]
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -92,16 +95,14 @@ const getItemLabel = () => {
|
|
|
//被点击
|
|
|
const itemClick = (item) => {
|
|
|
const { key, label } = propsa.value
|
|
|
- label.value = item[label]
|
|
|
+ labels.value = item[label]
|
|
|
curKey.value = item[key]
|
|
|
emit('change', item)
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
-.hc-dropdown-box {
|
|
|
- .dropdown-label {
|
|
|
-
|
|
|
- }
|
|
|
+.hc-dropdown-body {
|
|
|
+ cursor: pointer;
|
|
|
}
|
|
|
</style>
|