| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | <template>  <uni-grid :showBorder="Boolean(data.border)" :column="data.col">    <uni-grid-item      v-for="(item, index) in data.list"      :key="index"      @tap="sheep.$router.go(item.url)"    >      <view class="grid-item-box ss-flex ss-flex-col ss-row-center ss-col-center">        <view class="img-box">          <view            class="tag-box"            v-if="item.badge.show"            :style="[{ background: item.badge.bgColor, color: item.badge.color }]"          >            {{ item.badge.text }}          </view>          <image class="menu-image" :src="sheep.$url.cdn(item.src)"></image>        </view>        <view class="title-box ss-flex ss-flex-col ss-row-center ss-col-center">          <view class="grid-text" :style="[{ color: item.title.color }]">            {{ item.title.text }}          </view>          <view class="grid-tip" :style="[{ color: item.tip.color }]">            {{ item.tip.text }}          </view>        </view>      </view>    </uni-grid-item>  </uni-grid></template><script setup>  import sheep from '@/sheep';  const props = defineProps({    data: {      type: Object,      default() {},    },  });</script><style lang="scss" scoped>  .menu-image {    width: 24px;    height: 24px;  }  .grid-item-box {    flex: 1;    display: flex;    flex-direction: column;    align-items: center;    justify-content: center;    height: 100%;    .img-box {      position: relative;      .tag-box {        position: absolute;        z-index: 2;        top: 0;        right: 0;        font-size: 2em;        line-height: 1;        padding: 0.4em 0.6em 0.3em;        transform: scale(0.4) translateX(0.5em) translatey(-0.6em);        transform-origin: 100% 0;        border-radius: 200rpx;        white-space: nowrap;      }    }    .title-box {      .grid-tip {        font-size: 24rpx;        white-space: nowrap;        text-align: center;      }    }  }</style>
 |