zhengyiming
2 天以前 1d472eb06970c85b0edfb58871956bc2c8d69916
apps/housekeepingMiniApp/src/pages/home/index.vue
@@ -1,10 +1,10 @@
<template>
  <PageLayoutWithBg class="index-page-wrapper" :title="''" :need-auth="false">
    <template #left>
  <PageLayoutWithBg class="index-page-wrapper" :title="'首页'" :need-auth="false">
    <!-- <template #left>
      <div class="menu-btn-wrapper menu-logo">
        <img :src="IconLogo" class="logo" />
      </div>
    </template>
    </template> -->
    <InfiniteLoading
      scrollViewClassName="common-infinite-scroll-list home-list"
      commonMode
@@ -25,13 +25,13 @@
            <div class="city-btn-text">{{ locationCity }}</div>
          </div>
        </div>
        <div class="home-banner-wrapper">
          <nut-swiper :auto-play="3000">
        <SquareView class="home-banner-wrapper" :width-power="2">
          <nut-swiper :auto-play="3000" class="home-banner-swiper">
            <nut-swiper-item v-for="(item, index) in advertisements" :key="item.id">
              <img :src="item.file" class="banner-img" draggable="false" />
            </nut-swiper-item>
          </nut-swiper>
        </div>
        </SquareView>
        <!-- <div class="home-recommend-wrapper">
          <div class="home-recommend-item">推荐</div>
          <div class="home-recommend-item">推荐</div>
@@ -43,8 +43,13 @@
            :key="index"
            style="height: 160px"
          > -->
        <nut-grid class="home-gird">
          <nut-grid-item v-for="item in positionGrid" :key="item.value" :text="item.label">
        <nut-grid class="home-gird" :column-num="5">
          <nut-grid-item
            v-for="item in positionGrid"
            :key="item.value"
            :text="item.label"
            @click="goService(item)"
          >
            <img :src="setOSSLink(item.data.field2)" class="home-grid-item-icon" />
            <!-- <Dongdong /> -->
          </nut-grid-item>
@@ -81,7 +86,7 @@
import { setLocationCity } from '@/utils';
import _ from 'lodash';
import IconLogo from '@/assets/home/icon-logo.png';
import { TaskCard } from '@12333/components';
import { SquareView } from '@12333/components';
import IconLocaltion from '@/assets/task/icon-localtion.png';
import { useAllAreaList, useInfiniteLoading, useTaskList } from '@12333/hooks';
import { useAccessLogin } from '@/hooks';
@@ -89,7 +94,7 @@
import { setOSSLink, trim } from '@12333/utils';
import * as standardServiceServices from '@12333/services/apiV2/standardService';
import { EnumPagedListOrder, EnumStandardServiceReleaseStatus } from '@12333/constants';
import StandardServiceCard from './StandardServiceCard.vue';
import { useSystemStore } from '@/stores/modules/system';
const { locationCity } = useUser();
@@ -117,12 +122,12 @@
      keywords: queryState.keywords,
    };
    return standardServiceServices.getStandardServices(params, {
    return standardServiceServices.getOpenStandardServices(params, {
      showLoading: false,
    });
  },
  {
    queryKey: ['standardServiceServices/getStandardServices', queryState],
    queryKey: ['standardServiceServices/getOpenStandardServices', queryState],
  }
);
@@ -153,6 +158,16 @@
    url: `${RouterPath.serciceDetail}?id=${item.id}`,
  });
}
const switchTab = useSwitchTab();
const systemStore = useSystemStore();
function goService(item: API.SelectOptionStringGetDictionaryDataSelectQueryResultOption) {
  systemStore.setServicePageJobCode(item.value);
  switchTab({
    url: `${RouterPath.service}`,
  });
}
</script>
<style lang="scss">
@@ -200,10 +215,16 @@
  .home-banner-wrapper {
    margin-bottom: 20px;
    .home-banner-swiper {
      width: 100%;
      height: 100%;
    }
    .banner-img {
      width: 100%;
      height: 260px;
      height: 100%;
      object-fit: cover;
      object-position: center top;
    }
  }