mirror of https://github.com/4xmen/xshop.git
added rate input vue component
parent
fc33d4ed2a
commit
5eff6259d9
@ -0,0 +1,78 @@
|
|||||||
|
<template>
|
||||||
|
<div id="rate-input">
|
||||||
|
<div class="float-end" @mouseleave="hoverIndex = 0">
|
||||||
|
<template v-for="i in 5">
|
||||||
|
<i :class="hoverClass(i)" @mouseenter="hovering(i)" @click="val = i"></i>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<div class="p-2">
|
||||||
|
{{this.xtitle}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<input type="hidden" :name="xname" v-model="val">
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "rate-input",
|
||||||
|
components: {},
|
||||||
|
data: () => {
|
||||||
|
return {
|
||||||
|
hoverIndex: 0,
|
||||||
|
val: 0,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
xtitle:{
|
||||||
|
default: 'rate',
|
||||||
|
type: String,
|
||||||
|
},
|
||||||
|
xname:{
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
xvalue:{
|
||||||
|
default: 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.val = this.xvalue;
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
methods: {
|
||||||
|
hovering(i) {
|
||||||
|
this.hoverIndex = i;
|
||||||
|
},
|
||||||
|
hoverClass(i) {
|
||||||
|
if (this.hoverIndex >= i) {
|
||||||
|
return 'ri-star-fill';
|
||||||
|
} else {
|
||||||
|
if (this.val >= i){
|
||||||
|
return 'ri-star-fill selected';
|
||||||
|
}
|
||||||
|
return 'ri-star-line';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
#rate-input {
|
||||||
|
|
||||||
|
i {
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 25px;
|
||||||
|
color: gray;
|
||||||
|
transition: 250ms;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ri-star-fill {
|
||||||
|
color: goldenrod;
|
||||||
|
|
||||||
|
&.selected{
|
||||||
|
color:var(--xshop-primary);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
Loading…
Reference in New Issue