| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | <template>  <view class="send-wrap ss-flex">    <view class="left ss-flex ss-flex-1">      <uni-easyinput        class="ss-flex-1 ss-p-l-22"        :inputBorder="false"        :clearable="false"        v-model="message"        placeholder="请输入你要咨询的问题"      ></uni-easyinput>    </view>    <text class="sicon-basic bq" @tap.stop="onTools('emoji')"></text>    <text      v-if="!message"      class="sicon-edit"      :class="{ 'is-active': toolsMode === 'tools' }"      @tap.stop="onTools('tools')"    ></text>    <button v-if="message" class="ss-reset-button send-btn" @tap="sendMessage">      发送    </button>  </view></template><script setup>  import { computed } from 'vue';  /**   * 消息发送组件   */  const props = defineProps({    // 消息    modelValue: {      type: String,      default: '',    },    // 工具模式    toolsMode: {      type: String,      default: '',    },  });  const emits = defineEmits(['update:modelValue', 'onTools', 'sendMessage']);  const message = computed({    get() {      return props.modelValue;    },    set(newValue) {      emits(`update:modelValue`, newValue);    }  });  // 打开工具菜单  function onTools(mode) {    emits('onTools', mode);  }  // 发送消息  function sendMessage() {    emits('sendMessage');  }</script><style scoped lang="scss">  .send-wrap {    padding: 18rpx 20rpx;    background: #fff;    .left {      height: 64rpx;      border-radius: 32rpx;      background: var(--ui-BG-1);    }    .bq {      font-size: 50rpx;      margin-left: 10rpx;    }    .sicon-edit {      font-size: 50rpx;      margin-left: 10rpx;      transform: rotate(0deg);      transition: all linear 0.2s;      &.is-active {        transform: rotate(45deg);      }    }    .send-btn {      width: 100rpx;      height: 60rpx;      line-height: 60rpx;      border-radius: 30rpx;      background: linear-gradient(90deg, var(--ui-BG-Main), var(--ui-BG-Main-gradient));      font-size: 26rpx;      color: #fff;      margin-left: 11rpx;    }  }</style>
 |