| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 | 
							- <template>
 
-   <su-popup
 
-     :show="showTools"
 
-     @close="handleClose"
 
-   >
 
-     <view class="ss-modal-box ss-flex-col">
 
-       <slot></slot>
 
-       <view class="content ss-flex ss-flex-1">
 
-         <template v-if="toolsMode === 'emoji'">
 
-           <swiper
 
-             class="emoji-swiper"
 
-             :indicator-dots="true"
 
-             circular
 
-             indicator-active-color="#7063D2"
 
-             indicator-color="rgba(235, 231, 255, 1)"
 
-             :autoplay="false"
 
-             :interval="3000"
 
-             :duration="1000"
 
-           >
 
-             <swiper-item v-for="emoji in emojiPage" :key="emoji">
 
-               <view class="ss-flex ss-flex-wrap">
 
-                 <image
 
-                   v-for="item in emoji" :key="item"
 
-                   class="emoji-img"
 
-                   :src="sheep.$url.cdn(`/static/img/chat/emoji/${item.file}`)"
 
-                   @tap="onEmoji(item)"
 
-                 >
 
-                 </image>
 
-               </view>
 
-             </swiper-item>
 
-           </swiper>
 
-         </template>
 
-         <template v-else>
 
-           <view class="image">
 
-             <s-uploader
 
-               file-mediatype="image"
 
-               :imageStyles="{ width: 50, height: 50, border: false }"
 
-               @select="imageSelect({ type: 'image', data: $event })"
 
-             >
 
-               <image
 
-                 class="icon"
 
-                 :src="sheep.$url.static('/static/img/shop/chat/image.png')"
 
-                 mode="aspectFill"
 
-               ></image>
 
-             </s-uploader>
 
-             <view>图片</view>
 
-           </view>
 
-           <view class="goods" @tap="onShowSelect('goods')">
 
-             <image
 
-               class="icon"
 
-               :src="sheep.$url.static('/static/img/shop/chat/goods.png')"
 
-               mode="aspectFill"
 
-             ></image>
 
-             <view>商品</view>
 
-           </view>
 
-           <view class="order" @tap="onShowSelect('order')">
 
-             <image
 
-               class="icon"
 
-               :src="sheep.$url.static('/static/img/shop/chat/order.png')"
 
-               mode="aspectFill"
 
-             ></image>
 
-             <view>订单</view>
 
-           </view>
 
-         </template>
 
-       </view>
 
-     </view>
 
-   </su-popup>
 
- </template>
 
- <script setup>
 
-   /**
 
-    * 聊天工具
 
-    */
 
-   import { emojiPage } from '@/pages/chat/util/emoji';
 
-   import sheep from '@/sheep';
 
-   const props = defineProps({
 
-     // 工具模式
 
-     toolsMode: {
 
-       type: String,
 
-       default: '',
 
-     },
 
-     // 控制工具菜单弹出
 
-     showTools: {
 
-       type: Boolean,
 
-       default: () => false,
 
-     },
 
-   });
 
-   const emits = defineEmits(['onEmoji', 'imageSelect', 'onShowSelect', 'close']);
 
-   // 关闭弹出工具菜单
 
-   function handleClose() {
 
-     emits('close');
 
-   }
 
-   // 选择表情
 
-   function onEmoji(emoji) {
 
-     emits('onEmoji', emoji);
 
-   }
 
-   // 选择图片
 
-   function imageSelect(val) {
 
-     emits('imageSelect', val);
 
-   }
 
-   // 选择商品或订单
 
-   function onShowSelect(mode) {
 
-     emits('onShowSelect', mode);
 
-   }
 
- </script>
 
- <style scoped lang="scss">
 
-   .content {
 
-     width: 100%;
 
-     align-content: space-around;
 
-     border-top: 1px solid #dfdfdf;
 
-     padding: 20rpx 0 0;
 
-     .emoji-swiper {
 
-       width: 100%;
 
-       height: 280rpx;
 
-       padding: 0 20rpx;
 
-       .emoji-img {
 
-         width: 50rpx;
 
-         height: 50rpx;
 
-         display: inline-block;
 
-         margin: 10rpx;
 
-       }
 
-     }
 
-     .image,
 
-     .goods,
 
-     .order {
 
-       width: 33.3%;
 
-       height: 280rpx;
 
-       text-align: center;
 
-       font-size: 24rpx;
 
-       color: #333;
 
-       display: flex;
 
-       flex-direction: column;
 
-       align-items: center;
 
-       justify-content: center;
 
-       .icon {
 
-         width: 50rpx;
 
-         height: 50rpx;
 
-         margin-bottom: 21rpx;
 
-       }
 
-     }
 
-     :deep() {
 
-       .uni-file-picker__container {
 
-         justify-content: center;
 
-       }
 
-       .file-picker__box {
 
-         display: none;
 
-         &:last-of-type {
 
-           display: flex;
 
-         }
 
-       }
 
-     }
 
-   }
 
- </style>
 
 
  |