chat-app/src/components/custom-input/custom-input.vue

59 lines
1.2 KiB
Vue

<template>
<div class="custom-search-input">
<tm-input
class="search-input"
placeholder="请输入…"
color="#F9F9FD"
:round="1"
prefix="tmicon-search"
prefixColor="#46299D"
:prefixLabel="props?.first_talk_record_infos?.receiver_name"
v-model.lazy="state.searchText"
@input="inputSearchText"
:showClear="true"
@clear="clearInput"
></tm-input>
</div>
</template>
<script setup>
import { defineProps, defineEmits, reactive, watch } from 'vue'
const props = defineProps({
searchText: String,
first_talk_record_infos: Object,
})
const state = reactive({
searchText: '', //搜索内容
})
const emits = defineEmits(['inputSearchText'])
watch(
() => props.searchText,
(newSearchText) => {
state.searchText = newSearchText
},
)
//清除输入的搜索内容
const clearInput = () => {
inputSearchText('')
}
//输入搜索文本
const inputSearchText = (e) => {
emits('inputSearchText', e)
}
</script>
<style scoped lang="scss">
.custom-search-input {
width: 100%;
.search-input {
width: 100%;
}
.search-input::v-deep .tmicon-times-circle-fill::before {
content: '\e82a';
color: #d2d2d5;
}
}
</style>