index-enterprise.vue 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <template>
  2. <div class="home-pages">
  3. <!-- 头部 -->
  4. <comHead v-if="headData.show" :row="headData" :datas="realList"></comHead>
  5. <!-- 导航 -->
  6. <div class="nav-bos">
  7. <div v-for="(item, index) in navList" :key="index" class="nav-list" @click="onPath(item.url)">
  8. <img class="nav-image" :src="item.img" alt="" />
  9. <div class="flex-row-between">
  10. <div>
  11. <div class="name1">{{ item.name1 }}</div>
  12. <div class="name2">{{ item.name2 }}</div>
  13. </div>
  14. <div class="nav-more flex-row-center">
  15. <el-icon><ArrowRight /></el-icon>
  16. </div>
  17. </div>
  18. </div>
  19. </div>
  20. <!-- 猜你喜欢 -->
  21. <indexMorTitle :datas="{ title1: '猜你喜欢' }"></indexMorTitle>
  22. <comGoods :row="{ styleType: 1, goodsShow: [1, 2, 3], goodsTitleType: 3 }" :datas="recommendList"></comGoods>
  23. </div>
  24. </template>
  25. <script setup lang="ts">
  26. import indexMorTitle from '@/views/home/pccomponents/pages/indexMorTitle.vue';
  27. import comHead from '@/views/home/pccomponents/pages/headData.vue';
  28. import comGoods from '@/views/home/pccomponents/pages/goods.vue';
  29. import { onPath } from '@/utils/siteConfig';
  30. import { getSearchTitle, getHomeNav } from '@/api/home/index';
  31. import {
  32. getEnterpriseRightsMemberEquityList,
  33. getEnterpriseHomeAdList,
  34. getCustomerProductPage,
  35. customerMessageList
  36. } from '@/api/home/index-enterprise';
  37. import enterprise1 from '@/assets/images/home/enterprise1.png';
  38. import enterprise2 from '@/assets/images/home/enterprise2.png';
  39. import enterprise3 from '@/assets/images/home/enterprise3.png';
  40. import enterprise4 from '@/assets/images/home/enterprise4.png';
  41. const headData = ref<any>({});
  42. const realList = ref<any>([]);
  43. const recommendList = ref<any>([]);
  44. //导航
  45. const navList = ref<any>([
  46. { name1: '采购日历', name2: '提前制定和管理月度采购计划', url: '/enterprise/purchaseHistory', img: enterprise1 },
  47. { name1: '自助开票', name2: '灵活自助开票 换开管票服务', url: '/enterprise/invoiceManage', img: enterprise2 },
  48. { name1: '下载中心', name2: '批量订单打印', url: '/order/orderManage', img: enterprise3 },
  49. { name1: '批量下单', name2: '智能识别多商品多地址一键下单', url: '/cart', img: enterprise4 }
  50. ]);
  51. onMounted(() => {
  52. document.documentElement.style.setProperty('--hover-color', '#E7000B');
  53. getHead();
  54. });
  55. //头部
  56. const getHead = async () => {
  57. headData.value.topStyle = 1;
  58. headData.value.toplabel = [];
  59. headData.value.classifyShow = true;
  60. headData.value.headType = 4;
  61. headData.value.leftStyle = 1;
  62. headData.value.carouselList = [];
  63. headData.value.advertList = [];
  64. headData.value.realDataType = 1;
  65. headData.value.realNumber = 6;
  66. headData.value.navlList = [];
  67. try {
  68. const datas1 = await getSearchTitle(5);
  69. if (datas1.code == 200) {
  70. datas1.data.forEach((item: any) => {
  71. headData.value.toplabel.push({
  72. title: item.navigationName
  73. });
  74. });
  75. }
  76. const datas2 = await getHomeNav(5);
  77. headData.value.topNav = [];
  78. datas2.data.forEach((item: any) => {
  79. headData.value.topNav.push({
  80. title: item.navigationName,
  81. url: item.url ? item.url : ''
  82. });
  83. });
  84. const datas3 = await getEnterpriseHomeAdList({});
  85. if (datas3.code == 200) {
  86. datas3.data.forEach((item: any) => {
  87. headData.value.carouselList.push({
  88. imageUrl: item.imageUrl
  89. });
  90. });
  91. }
  92. const datas5 = await customerMessageList({ status: '0', pageSize: 20 });
  93. if (datas5.code == 200) realList.value = datas5.rows;
  94. const datas6 = await getEnterpriseRightsMemberEquityList({});
  95. if (datas6.code == 200) {
  96. datas6.data.forEach((item: any) => {
  97. headData.value.navlList.push({
  98. imageUrl: item.imageUrl,
  99. title: item.title,
  100. url: item.link ? item.link : ''
  101. });
  102. });
  103. }
  104. headData.value.show = true;
  105. } catch (error) {}
  106. };
  107. //猜你喜欢
  108. getCustomerProductPage({}).then((res) => {
  109. if (res.code == 200) {
  110. recommendList.value = res.rows;
  111. }
  112. });
  113. </script>
  114. <style lang="scss" scoped>
  115. .home-pages {
  116. width: 100%;
  117. padding-bottom: 30px;
  118. :deep(.hover-color) {
  119. cursor: pointer;
  120. &:hover {
  121. color: var(--hover-color) !important;
  122. .zi-hover {
  123. color: var(--hover-color) !important;
  124. }
  125. }
  126. }
  127. // 导航
  128. .nav-bos {
  129. margin: 0 auto;
  130. width: 100%;
  131. max-width: 1500px;
  132. min-width: 1200px;
  133. display: flex;
  134. gap: 0 10px;
  135. .nav-list {
  136. margin-top: 15px;
  137. flex: 0 0 calc((100% - 30px) / 4);
  138. height: 150px;
  139. background: #ffffff;
  140. border-radius: 5px;
  141. padding: 20px;
  142. display: flex;
  143. flex-direction: column;
  144. justify-content: space-between;
  145. cursor: pointer;
  146. .nav-image {
  147. width: 50px;
  148. height: 50px;
  149. background: #ffeeea;
  150. border-radius: 6px 6px 6px 6px;
  151. }
  152. .name1 {
  153. font-size: 15px;
  154. margin-bottom: 5px;
  155. color: #101828;
  156. }
  157. .name2 {
  158. font-size: 13px;
  159. color: #6a7282;
  160. }
  161. .nav-more {
  162. width: 20px;
  163. height: 20px;
  164. border-radius: 20px;
  165. border: 1px solid #3d3e3f;
  166. }
  167. }
  168. }
  169. }
  170. </style>