render-dict.vue
670 Bytes
<template>
<view class="render-dict" :class="ddClassBind">
<slot>{{ valueText }}</slot>
</view>
</template>
<script>
import { mapGetters } from 'vuex';
import MIX_DD_CLASS from '@/mixins/ddclass';
export default {
mixins: [MIX_DD_CLASS],
props: {
dict: String,
value: String,
filter: Function,
},
computed: {
...mapGetters(['dictValue']),
valueText: function() {
if (this.filter) {
return this.filter(this.dictValue(this.dict, this.value));
}
return this.dictValue(this.dict, this.value);
},
}
};
</script>
<style lang="scss">
.render-dict {
display: inline-flex;
align-items: center;
}
</style>