|                                                                                                   |  | <template>  <view class="category">    <view class="flex flex-column category-item" v-for="item in categoryOptions" :key="item.id" @click="onClick(item)">      <image class="img" :src="item.icon" mode="aspectFit"></image>      <view>{{ item.label }}</view>    </view>  </view></template>
<script>  export default {		data() {			return {				categoryOptions: [],			}		},		created() {      this.getData()    },    methods: {      async getData() {
				try {					const categorys = (await this.$fetch('queryCategoryList', { pageSize: 6, isShow: '1' }))?.records?.map(item => {            const { id, icon, title } = item
            return {               id,              icon,              label: title,               path: `/pages/index/category?categoryId=${id}`,             }          })
          this.categoryOptions = [            ...categorys.slice(0, 5),            {              id: '006',              icon: '/static/image/temp-6.png',              label: '研学日记',              path: `/pages_order/article/search?api=queryJournalList&title=研学日记`,            },            {              id: '007',              icon: '/static/image/temp-7.png',              label: '研学政策',              path: `/pages_order/article/search?api=queryPolicyList&title=研学政策`,            },            categorys[5],            {              id: '009',              icon: '/static/image/temp-9.png',              label: '公司动态',              path: `/pages_order/article/search?api=queryNewsList&title=公司动态`,            },            {              id: '010',              icon: '/static/image/temp-10.png',              label: '全部',              path: `/pages/index/category`,            },          ]
				} catch(err) {
				}
      },      onClick(target) {        const { path } = target
        if (path) {          uni.navigateTo({            url: path          })        }      },    },  }</script>
<style scoped lang="scss">
	.category {		margin-top: 158rpx;		width: 100%;		padding: 24rpx 32rpx;		box-sizing: border-box;		display: grid;		grid-template-columns: repeat(5, 1fr);		column-gap: 16rpx;		row-gap: 4rpx;		background: linear-gradient(#DAF3FF, #FBFEFF 50rpx, #FBFEFF);		border: 2rpx solid #FFFFFF;		border-radius: 32rpx;				&-item {			padding: 16rpx 0;			row-gap: 12rpx;			font-size: 22rpx;			color: #9B9B9B;						.img {				width: 72rpx;				height: 72rpx;			}		}	}
</style>
 |