83 lines
1.2 KiB
Vue
83 lines
1.2 KiB
Vue
<template>
|
|
<view :class="contClass" style="margin-top: 0;">
|
|
<u-row>
|
|
<view style="flex: 1;">
|
|
<u-text :text="leftText" size="28"></u-text>
|
|
</view>
|
|
<u-row>
|
|
<u-icon size="22" :name="`${show?'arrow-up':'arrow-down'}`" color="#333"></u-icon>
|
|
</u-row>
|
|
</u-row>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
computed: {
|
|
leftText() {
|
|
let str = ''
|
|
if (this.value) {
|
|
const curItem = this.list.filter(item => item.val == this.value)[0] || {}
|
|
curItem.title && (str = curItem.title)
|
|
} else {
|
|
str = this.placeholder
|
|
}
|
|
return str
|
|
},
|
|
contClass() {
|
|
let pre = ['radius-20']
|
|
if (this.isWhite) {
|
|
pre.push('blcok-white')
|
|
} else {
|
|
pre.push('blcok-grey')
|
|
}
|
|
return pre.join(" ")
|
|
}
|
|
},
|
|
props: {
|
|
isWhite: {
|
|
default () {
|
|
return false
|
|
}
|
|
},
|
|
placeholder: {
|
|
default () {
|
|
return ''
|
|
}
|
|
},
|
|
show: {
|
|
default () {
|
|
return false
|
|
}
|
|
},
|
|
value: {
|
|
default () {
|
|
return ''
|
|
}
|
|
},
|
|
list: {
|
|
default () {
|
|
return []
|
|
}
|
|
}
|
|
},
|
|
data() {
|
|
return {
|
|
|
|
}
|
|
},
|
|
created() {
|
|
|
|
},
|
|
onHide() {
|
|
|
|
},
|
|
destroyed() {},
|
|
|
|
methods: {}
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
|
|
</style> |