| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | <template>    <view class="search-box">        <view class="search">            <icon class="icon" type="search" size="3.733vw" />            <input v-model="value" class="input" confirm-type="search" placeholder-style="font-size:3.733vw;"                :placeholder="placeholder" type="text" @confirm="onConfirm">            <icon v-if="value" class="icon" type="clear" size="3.733vw" @click="onClear" />        </view>        <slot />    </view></template><script>export default {    props: {        placeholder: {            type: String,            default: "搜索关键字"        },        onSearch: {            type: Function        }    },    data() {        return {            value: ""        }    },    methods: {        onConfirm() {            this.$emit("onSearch", this.value)        },        onClear() {            this.value = '';            this.$emit("onSearch", this.value)        }    },}</script><style lang="scss">.search-box {    display: flex;    width: 100%;    box-sizing: border-box;    .search {        display: flex;        align-items: center;        flex: 1;        height: 30px;        background: #F2F2F2;        border-radius: 50px;        flex-shrink: 0;        margin: 0 !important;        .icon {            padding: 10px;        }        .input {            flex: 1;            margin: 0 !important;        }    }}</style>
 |