index.html 54 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657
  1. <!DOCTYPE html>
  2. <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="https://www.thymeleaf.org ">
  4. <head>
  5. <title>采美365网-医美采购平台-生美采购平台-美业一站式正品采购平台</title>
  6. <meta name="keywords" content="美业采购商城,美业信息平台,美业采购顾问,美业采购咨询,美容产品,美容仪器,医美产品,医美器械,二手仪器,美业正品联盟">
  7. <meta name="description" content="采美365网是一家专注于医美生美的B2B采购平台,拥有各类医疗器械资质和进出口资质,聚集全球众多知名供应商,上架丰富的医美生美产品和仪器,一站式解决美容机构的采购需求">
  8. <meta name="baidu-site-verification" content="KbkRJg9357"/>
  9. <link rel="canonical" href="https://www.caimei365.com/"/>
  10. <template th:replace="components/head-link"></template>
  11. <link th:href="@{/css/base/floor.css(v=${version})}" rel="stylesheet" type="text/css">
  12. <link th:href="@{/css/index/index_new.h5.css(v=${version})}" media="screen and (max-width:768px)" rel="stylesheet" type="text/css">
  13. <link th:href="@{/css/index/index_new.pc.css(v=${version})}" media="screen and (min-width:768px)" rel="stylesheet" type="text/css">
  14. <link th:href="@{/lib/css/swiper-bundle.css(v=${version})}" media="screen and (min-width:768px)" rel="stylesheet" type="text/css">
  15. <link rel="stylesheet" href="https://unpkg.zhimg.com/element-ui@2.15.13/lib/theme-chalk/index.css" />
  16. <link rel="stylesheet" href="/lib/element-ui/element-ui-min.css" />
  17. <!-- vant css -->
  18. <link rel="stylesheet" href="/lib/element-ui/index.css"/>
  19. <template th:replace="components/analysis"></template>
  20. </head>
  21. <body>
  22. <!-- 引用头部 -->
  23. <template th:replace="components/header"></template>
  24. <!-- 首页 -->
  25. <div id="container" v-cloak>
  26. <!--首页图片轮播-->
  27. <div id="swiper-container" class="swiper-container">
  28. <ul class="swiper-wrapper swiper-wrapper-banner">
  29. <li class="swiper-slide mfc" th:each="img: ${bannerList}">
  30. <a href="javascript:void(0)" th:attr="data-href=${img.link}" onclick="handleBannerStatistics($(this))"><img th:src="${img.image}" th:alt="${img.title}"></a>
  31. </li>
  32. </ul>
  33. <div class="swiper-pagination swiper-pagination-banner mfc"><span v-if="isPC" th:each="img: ${bannerList}"></span></div>
  34. <a class="swiper-button-prev" href="javascript:void(0)"></a>
  35. <a class="swiper-button-next" href="javascript:void(0)"></a>
  36. </div>
  37. <div class="mNavBox h5Only clear">
  38. <!--导航菜单-->
  39. <a th:each="menu: ${topMenuList}" class="nav" th:href="${menu.link}">
  40. <img class="nav-icon" th:src="${menu.icon}" th:alt="${menu.name}">
  41. <p th:text="${menu.name}"></p>
  42. </a>
  43. </div>
  44. <div class="quickOperation" v-if="quickoperaList.length > 0 && !isPC" v-cloak>
  45. <van-swipe class="my-swipe" :autoplay="false">
  46. <van-swipe-item v-for="(item, index) in quickoperaList" :key="item">
  47. <div class="carousel-list">
  48. <div class="list" v-for="(i, o) in item" :key="o" @click="goQuickOpera(i)">
  49. <div class="list-content">
  50. <div class="list-icon">
  51. <van-image style="width: 100%; height: 100%;" :src="i.icon" />
  52. </div>
  53. <div class="list-title">
  54. <div class="title-1">
  55. <div class="title-1-item">{{i.name}}</div>
  56. <div class="title-2-item">GO></div>
  57. </div>
  58. <div class="title-2">{{i.remark || ''}}</div>
  59. </div>
  60. </div>
  61. </div>
  62. </div>
  63. </van-swipe-item>
  64. </van-swipe>
  65. </div>
  66. <div id="new-container" class="section_container" v-if="newsList.length>0">
  67. <div class="inner">
  68. <div class="new-label">公告:</div>
  69. <div class="new-list">
  70. <a href="javascript:void(0)" class="new-li" v-for="(list ,index) in newsList" :key="index" @click="hanldDetails(list.id)">
  71. <span class="new-icon"></span>
  72. <p v-text="list.title"></p>
  73. </a>
  74. </div>
  75. <a href="/news.html" class="new-more"> 更多>> </a>
  76. </div>
  77. </div>
  78. <!-- 快捷运营 -->
  79. <div class="quickOperation" v-if="quickoperaList.length > 0 && isPC" v-cloak>
  80. <el-carousel :autoplay="false" indicator-position="outside">
  81. <el-carousel-item v-for="(item, index) in quickoperaList" :key="item">
  82. <div class="carousel-list">
  83. <div class="list" v-for="(i, o) in item" :key="o" @click="goQuickOpera(i)">
  84. <div class="card">
  85. <div class="card-content">
  86. <div class="card-icon">
  87. <el-image style="width: 100%; height: 100%;" :src="i.icon"></el-image>
  88. </div>
  89. <div class="card-title">
  90. <div class="title-1">
  91. <div class="title-1-item">{{i.name}}</div>
  92. <div class="title-2-item">GO></div>
  93. </div>
  94. <div class="title-2">{{i.remark || ''}}</div>
  95. </div>
  96. </div>
  97. </div>
  98. </div>
  99. </div>
  100. </el-carousel-item>
  101. </el-carousel>
  102. </div>
  103. <!--首页楼层主体数据-->
  104. <div class="section_container">
  105. <div class="inner">
  106. <div id="sidebar" class="section_right">
  107. <div class="box" >
  108. <div class="section_right_item ross" v-if="isRossShow" :class="isRossShow ? 'show' : 'none'">
  109. <a href="/supplier-1378.html" v-if="isPC"><img src="/img/ross/ross-image@1x.jpg" alt="深圳艾斯佰丽生物科技有限公司"></a>
  110. <a href="/supplier-1378.html" v-else><img src="/img/ross/ross-image@3x.jpg" alt="深圳艾斯佰丽生物科技有限公司"></a>
  111. </div>
  112. <div class="section_right_item" th:if="${sideJson.get('liveList')}!=null and ${sideJson.get('liveList').size}>0">
  113. <div class="right_item_title">
  114. <p>精彩直播</p>
  115. <a href="https://wx.vzan.com/plug-ins/?v=637429463853329710#/FixupIndex/399803126?shareuid=0" target="_blank" rel="nofollow" onclick="_czc.push(['_trackEvent','商城首页','精彩直播','点击','','Um_Event_HomeLiveTemplateClick'])">
  116. <template v-if="isPC">更多&gt;</template><template v-else>&gt;</template>
  117. </a>
  118. </div>
  119. <div class="right_item_main" th:each="live,stat : ${sideJson.get('liveList')}" th:object="${live}">
  120. <a th:if="${stat.index}==0" th:attr="data-href=*{link}" href="javascript:void(0)" onclick="handleRightStatistics($(this),2)" th:title="*{liveTitle}" class="item_banner">
  121. <img src="/img/base/placeholder.png" th:attr="data-original=*{homePageImage}" th:alt="*{liveTitle}">
  122. <div class="name" th:text="*{liveTitle}"></div>
  123. <div class="statu">
  124. <template th:if="*{liveStatus}==1"><i class="mIcon icon-wart"></i><p>未开始</p></template>
  125. <template th:if="*{liveStatus}==2"><i class="mIcon icon-live"></i><p>直播中</p></template>
  126. <template th:if="*{liveStatus}==3"><i class="mIcon icon-end"></i><p>看回放</p></template>
  127. </div>
  128. </a>
  129. <a th:if="${stat.index}>0" th:attr="data-href=*{link}" href="javascript:void(0)" onclick="handleRightStatistics($(this),2)" th:title="*{liveTitle}" class="item_text">
  130. <p class="item_text_name" th:text="*{liveTitle}"></p>
  131. </a>
  132. </div>
  133. </div>
  134. <div id="fixed-wrap" class="section_right_item" th:if="${sideJson.get('cmImageList')}!=null and ${sideJson.get('cmImageList').size}>0">
  135. <div class="right_item_title">
  136. <p>最新活动</p>
  137. <a href="https://www.caimei365.com/promotions.html" target="_blank" onclick="_czc.push(['_trackEvent','商城首页','最新活动','点击','','Um_Event_HomeActivityTemplateClick'])">
  138. <template v-if="isPC">更多&gt;</template><template v-else>&gt;</template>
  139. </a>
  140. </div>
  141. <div class="right_item_main" th:each="image,stat : ${sideJson.get('cmImageList')}" th:object="${image}">
  142. <a th:if="${stat.index}==0" th:attr="data-href=*{link}" onclick="handleRightStatistics($(this),3)" href="javascript:void(0)" th:title="*{title}" class="item_banner">
  143. <img src="/img/base/placeholder.png" th:attr="data-original=*{homePageImage}" th:alt="*{title}">
  144. <div class="name" th:text="*{title}"></div>
  145. </a>
  146. <a th:if="${stat.index}>0" th:attr="data-href=*{link}" onclick="handleRightStatistics($(this),3)" href="javascript:void(0)" th:title="*{title}" class="item_text">
  147. <p class="item_text_name" th:text="*{title}"></p>
  148. </a>
  149. </div>
  150. </div>
  151. <div class="section_right_item" th:if="${sideJson.get('infoList')}!=null and ${sideJson.get('infoList').size}>0">
  152. <div class="right_item_title">
  153. <p>热门文章</p>
  154. <a href="https://www.caimei365.com/info/center-3-1.html" target="_blank" onclick="_czc.push(['_trackEvent','商城首页','热门文章','点击','','Um_Event_HomeArticleTemplateClick'])">
  155. <template v-if="isPC">更多&gt;</template><template v-else>&gt;</template>
  156. </a>
  157. </div>
  158. <div class="right_item_main" th:each="info,stat : ${sideJson.get('infoList')}" th:object="${info}">
  159. <a th:if="${stat.index}==0" th:attr="data-href=*{link}" onclick="handleRightStatistics($(this),4)" href="javascript:void(0)" th:title="*{title}" class="item_banner">
  160. <img src="/img/base/placeholder.png" th:attr="data-original=*{homePageImage}" th:alt="*{title}">
  161. <div class="name" th:text="*{title}"></div>
  162. </a>
  163. <a th:if="${stat.index}>0" th:attr="data-href=*{link}" onclick="handleRightStatistics($(this),4)" href="javascript:void(0)" th:title="*{title}" class="item_text">
  164. <p class="item_text_name info" th:text="*{title}"></p>
  165. <p class="item_text_time" v-if="isPC" th:text="*{createDate}"></p>
  166. </a>
  167. </div>
  168. </div>
  169. <div class="section_right_item" th:if="${sideJson.get('baikeList')}!=null and ${sideJson.get('baikeList').size}>0">
  170. <div class="right_item_title">
  171. <p>热门百科</p>
  172. <a href="/encyclopedia/product.html" target="_blank" onclick="_czc.push(['_trackEvent','商城首页','热门百科','点击','','Um_Event_HomeBaikeTemplateClick'])">
  173. <template v-if="isPC">更多&gt;</template><template v-else>&gt;</template>
  174. </a>
  175. </div>
  176. <div class="right_item_main" th:each="info,stat : ${sideJson.get('baikeList')}" th:object="${info}">
  177. <a th:if="${stat.index}==0" th:href="*{link}" th:title="*{name}" class="item_banner">
  178. <img src="/img/base/placeholder.png" th:attr="data-original=*{image}" th:alt="*{name}">
  179. <div class="name" th:text="*{name}"></div>
  180. </a>
  181. <a th:if="${stat.index}>0" th:href="*{link}" th:title="*{name}" class="item_text">
  182. <p class="item_text_name info" th:text="*{name}"></p>
  183. <!-- <p class="item_text_time" v-if="isPC" th:text="*{createDate}"></p> -->
  184. </a>
  185. </div>
  186. </div>
  187. </div>
  188. </div>
  189. <div class="section_left ">
  190. <template v-if="userId > 0">
  191. <!--固定楼层-->
  192. <div class="section_page section_page_user hot" v-for="(floor,index) in hotListPageFloor">
  193. <div class="section_page_title" >
  194. <h1 data-id="0" v-text="floor.title"></h1>
  195. <p v-text="floor.detail"></p>
  196. <a class="section_page_btn" href="/product/hot.html" target="_blank"></a>
  197. </div>
  198. <div class="swiper-container-floor hotList mySwiper" id="recommendBox">
  199. <div class="swiper-wrapper section_page_main type_08 recommendBox-wrapperHot clear mfw section_8 max">
  200. <!-- 商品/图片 列表 -->
  201. <a href="javascript:void(0)" onclick="handleHotStatistics($(this))" :data-href="pros.link" class="swiper-slide page_main_item hot ad_04" v-for="pros in floor.floorImageList4">
  202. <img class="page_main_image" src="/img/base/placeholder.png" :data-original="pros.product.image" :alt="pros.product && pros.product.name">
  203. <div class="page_main_type" v-if="pros.product && pros.product.productType === 2">医疗器械</div>
  204. <div class="page_main_text">
  205. <span class="tag" v-if="pros.product && pros.product.beautyActFlag == 1">美博会</span>
  206. <span v-text="pros.product && pros.product.name"></span>
  207. </div>
  208. <div class="page_main_price">
  209. <!-- 商品价格 -->
  210. <div class="main_price_text">
  211. <!-- 正常商品 -->
  212. <template v-if="pros.product && pros.product.productCategory == 1">
  213. <div class="price_text_tag">
  214. <p class="couponTag" v-if="pros.product && pros.product.couponsLogo">优惠券</p>
  215. <!--超级会员价格标签 svipProductFlag 1:超级会员优惠商品 0 不是商超级会员优惠商品-->
  216. <template v-if="pros.product && pros.product.svipProductFlag === 1">
  217. <div class="svip-tag">
  218. <div class="svip-icon">SVIP</div>
  219. <!-- 公开价格 && (个人机构 || 资质机构) && 开通SVIP 可查看价格-->
  220. <template v-else-if="GLOBAL_USER_IDENTITY === 2 ||
  221. (pros.product.priceFlag === 0 && GLOBAL_USER_IDENTITY === 4) ||
  222. (GLOBAL_USER_IDENTITY === 3 && pros.product.shopId==GLOBAL_SHOP_ID) ||
  223. GLOBAL_VIP_FLAG === 1">
  224. <template v-if="showVipPriceTag(pros.product)">
  225. <div class="svip-price">
  226. <span v-html="pros.product && pros.product.svipPriceTag"></span>
  227. </div>
  228. </template>
  229. </template>
  230. </div>
  231. </template>
  232. <template v-else>
  233. <p class="listTag" v-if="pros.product.actStatus == 1 && pros.product.promotions">
  234. <span v-text="pros.product.promotions && pros.product.promotions.name"></span>
  235. </p>
  236. </template>
  237. </div>
  238. <div class="main_price_login">
  239. <!--priceFlag 0公开价格 1不公开价格 2仅对会员机构公开-->
  240. <template v-if="pros.product && pros.product.priceFlag == 1">
  241. <em class="price_grade_club"><span>¥</span>价格未公开</em>
  242. </template>
  243. <!--机构价仅会员可见 && 用户是普通机构-->
  244. <template v-else-if="pros.product && pros.product.priceFlag==2 && GLOBAL_USER_IDENTITY === 4 && GLOBAL_VIP_FLAG!=1">
  245. <em class="price_grade_club"><span>¥</span>会员可见</em>
  246. </template>
  247. <!--机构价仅医美机构可见-->
  248. <template v-else-if="pros.product && pros.product.priceFlag==3 && (GLOBAL_CLUB_TYPE !=1)">
  249. <em class="price_grade_club red"><span>¥</span>仅医美机构可见</em>
  250. </template>
  251. <!-- 资质机构 || (价格全部机构可见 && 普通机构) || (供应商 && 商品为供应商下的商品) || 超级会员用户 -->
  252. <template v-else-if="GLOBAL_USER_IDENTITY === 2 ||
  253. (pros.product.priceFlag === 0 && GLOBAL_USER_IDENTITY === 4) ||
  254. (GLOBAL_USER_IDENTITY === 3 && pros.product.shopId==GLOBAL_SHOP_ID) ||
  255. GLOBAL_VIP_FLAG === 1">
  256. <div class="main_price_show" :class="{none: showVipPriceTag(pros.product) || PromotionsFormat(pros.product.promotions)}">
  257. <span class="price_num" v-if="showVipPriceTag(pros.product) || PromotionsFormat(pros.product.promotions)" v-text="filtersFormat(pros.product.originalPrice)"></span>
  258. <span class="price_num" v-else v-text="filtersFormat(pros.product.price)"></span>
  259. </div>
  260. </template>
  261. <template v-else>
  262. <!--供应商除自己的商品外,也显示价格等级-->
  263. <em class="price_grade_shop">
  264. <span class="bold">¥</span>
  265. <i :class="'icon mIcon price_grade_'+pros.product.priceGrade"></i>
  266. </em>
  267. </template>
  268. </div>
  269. </template>
  270. <!-- 二手商品 -->
  271. <template v-else>
  272. <div class="main_price_login">
  273. <div class="price_text_tag"></div>
  274. <div v-if="pros.product.detailTalkFlag==2" class="main_price_show">¥价格祥聊</div>
  275. <div v-else class="main_price_show">
  276. ¥<span class="price_num" v-text="filtersFormat(pros.product.price)"></span>
  277. </div>
  278. </div>
  279. </template>
  280. </div>
  281. </div>
  282. </a>
  283. </div>
  284. <div class="swiper-pagination swiper-pagination-floor hot mfc " :data-id="floor.floorImageList4.length"></div>
  285. </div>
  286. </div>
  287. <!--楼层-->
  288. <div class="section_page section_page_user" v-for="(floor,index) in homePageFloor">
  289. <template v-if="floor.floorContent">
  290. <div class="section_page_title" >
  291. <h1 :data-id="index+1" v-text="floor.title"></h1>
  292. <p v-text="floor.detail"></p>
  293. </div>
  294. <div :class="floor.floorContent.templateType == 8 ? 'swiper-container-floor mySwiperSlide' : ''"
  295. :id="floor.floorContent.templateType == 8 ? 'recommendBox' : ''"
  296. >
  297. <div :class="floor.floorContent.templateType == 8 ?
  298. 'swiper-wrapper section_page_main type_08 recommendBox-wrapper clear mfw section_'+floor.floorContent.templateType :
  299. 'section_page_main clear mfw section_'+floor.floorContent.templateType"
  300. >
  301. <!-- 广告图 -->
  302. <template v-if="floor.floorContent.templateType == 1 ||
  303. floor.floorContent.templateType == 2 ||
  304. floor.floorContent.templateType == 3 ||
  305. floor.floorContent.templateType == 4 ||
  306. floor.floorContent.templateType == 5"
  307. >
  308. <a :href="floor.floorContent.adsLink1 ? floor.floorContent.adsLink1 : 'javascript:;'"
  309. :target="floor.floorContent.adsLink1 ? '_blank' : '_self'"
  310. class="page_main_item ad_01"
  311. >
  312. <img v-if="isPC" :src="floor.floorContent.pcAdsImage1" alt="" class="page_main_item_adv">
  313. <img v-else :src="floor.floorContent.appletsAdsImage1" alt="" class="page_main_item_adv">
  314. </a>
  315. </template>
  316. <template v-if="floor.floorContent.templateType == 2 ||
  317. floor.floorContent.templateType == 3 ||
  318. floor.floorContent.templateType == 4"
  319. >
  320. <a :href="floor.floorContent.adsLink2 ? floor.floorContent.adsLink2 : 'javascript:;'"
  321. :target="floor.floorContent.adsLink2 ? '_blank' : '_self'"
  322. class="page_main_item ad_02"
  323. >
  324. <img v-if="isPC" :src="floor.floorContent.pcAdsImage2" alt="" class="page_main_item_adv">
  325. <img v-else :src="floor.floorContent.appletsAdsImage2" alt="" class="page_main_item_adv">
  326. </a>
  327. </template>
  328. <template v-if="floor.floorContent.templateType == 4">
  329. <a :href="floor.floorContent.adsLink3 ? floor.floorContent.adsLink3 : 'javascript:;'"
  330. :target="floor.floorContent.adsLink3 ? '_blank' : '_self'"
  331. class="page_main_item ad_03"
  332. >
  333. <img v-if="isPC" :src="floor.floorContent.pcAdsImage3" alt="" class="page_main_item_adv">
  334. <img v-else :src="floor.floorContent.appletsAdsImage3" alt="" class="page_main_item_adv">
  335. </a>
  336. </template>
  337. <!-- 商品/图片 列表 -->
  338. <a :href="pros.link" class="page_main_item ad_04 swiper-slide" target="_blank" v-for="pros in floor.floorImageList">
  339. <img class="page_main_image" src="/img/base/placeholder.png" :data-original="pros.image" :alt="pros.name">
  340. <div class="page_main_type" v-if="pros.product && pros.product.productType && pros.product.productType === 2">医疗器械</div>
  341. <div class="page_main_tag" v-if="pros.listType == 2"><p v-text="pros.label"></p></div>
  342. <div class="page_main_text">
  343. <span class="tag" v-if="pros.beautyActFlag == 1">美博会</span>
  344. <span v-text="pros.name"></span>
  345. </div>
  346. <div class="page_main_price" v-if="pros.listType == 1">
  347. <!-- 商品价格 -->
  348. <div class="main_price_text">
  349. <!-- 正常商品 -->
  350. <template v-if="pros.product.productCategory == 1">
  351. <div class="price_text_tag">
  352. <p class="couponTag" v-if="pros.product.couponsLogo">优惠券</p>
  353. <!--超级会员价格标签 svipProductFlag 1:超级会员优惠商品 0 不是商超级会员优惠商品-->
  354. <template v-if="pros.product.svipProductFlag === 1">
  355. <div class="svip-tag">
  356. <div class="svip-icon">SVIP</div>
  357. <!-- 公开价格 && (个人机构 || 资质机构) && 开通SVIP 可查看价格-->
  358. <template v-else-if="GLOBAL_USER_IDENTITY === 2 ||
  359. (pros.product.priceFlag === 0 && GLOBAL_USER_IDENTITY === 4) ||
  360. (GLOBAL_USER_IDENTITY === 3 && pros.product.shopId==GLOBAL_SHOP_ID) ||
  361. GLOBAL_VIP_FLAG === 1">
  362. <template v-if="showVipPriceTag(pros.product)">
  363. <div class="svip-price">
  364. <span v-html="pros.product.svipPriceTag"></span>
  365. </div>
  366. </template>
  367. </template>
  368. </div>
  369. </template>
  370. <template v-else>
  371. <p class="listTag" v-if="pros.product.actStatus ==1 && pros.product.promotions">
  372. <span v-text="pros.product.promotions.name"></span>
  373. </p>
  374. </template>
  375. </div>
  376. <div class="main_price_login">
  377. <!--priceFlag 0公开价格 1不公开价格 2仅对会员机构公开-->
  378. <template v-if="pros.product.priceFlag == 1">
  379. <em class="price_grade_club"><span>¥</span>价格未公开</em>
  380. </template>
  381. <!--机构价仅会员可见 && 用户是普通机构-->
  382. <template v-else-if="pros.product.priceFlag==2 && GLOBAL_USER_IDENTITY === 4 && GLOBAL_VIP_FLAG!=1">
  383. <em class="price_grade_club"><span>¥</span>会员可见</em>
  384. </template>
  385. <!--机构价仅医美机构可见-->
  386. <template v-else-if="pros.product.priceFlag==3 && (GLOBAL_CLUB_TYPE !=1)">
  387. <em class="price_grade_club red"><span>¥</span>仅医美机构可见</em>
  388. </template>
  389. <!-- 资质机构 || (价格全部机构可见 && 普通机构) || (供应商 && 商品为供应商下的商品) || 超级会员用户 -->
  390. <template v-else-if="GLOBAL_USER_IDENTITY === 2 ||
  391. (pros.product.priceFlag === 0 && GLOBAL_USER_IDENTITY === 4) ||
  392. (GLOBAL_USER_IDENTITY === 3 && pros.product.shopId==GLOBAL_SHOP_ID) ||
  393. GLOBAL_VIP_FLAG === 1">
  394. <div class="main_price_show" :class="{none: showVipPriceTag(pros.product) || PromotionsFormat(pros.product.promotions)}">
  395. <span class="price_num" v-if="showVipPriceTag(pros.product) || PromotionsFormat(pros.product.promotions)" v-text="filtersFormat(pros.product.originalPrice)"></span>
  396. <span class="price_num" v-else v-text="filtersFormat(pros.product.price)"></span>
  397. </div>
  398. </template>
  399. <template v-else>
  400. <!--供应商除自己的商品外,也显示价格等级-->
  401. <em class="price_grade_shop">
  402. <span class="bold">¥</span><i :class="'icon mIcon price_grade_'+pros.product.priceGrade"></i>
  403. </em>
  404. </template>
  405. </div>
  406. </template>
  407. <!-- 二手商品 -->
  408. <template v-else>
  409. <div class="main_price_login">
  410. <div class="price_text_tag"></div>
  411. <div v-if="pros.product.detailTalkFlag==2" class="main_price_show">¥价格祥聊</div>
  412. <div v-else class="main_price_show">
  413. ¥<span class="price_num" v-text="filtersFormat(pros.product.price)"></span>
  414. </div>
  415. </div>
  416. </template>
  417. </div>
  418. </div>
  419. </a>
  420. <!-- 广告图 -->
  421. <div v-if="floor.floorContent.templateType == 6">
  422. <a :href="floor.floorContent.adsLink1 ? floor.floorContent.adsLink1 : 'javascript:;'"
  423. :target="floor.floorContent.adsLink1 ? '_blank' : '_self' "
  424. class="page_main_item ad_01"
  425. >
  426. <img v-if="isPC" :src="floor.floorContent.pcAdsImage1" alt="" class="page_main_item_adv">
  427. <img v-else :src="floor.floorContent.appletsAdsImage1" alt="" class="page_main_item_adv">
  428. </a>
  429. </div>
  430. </div>
  431. <div v-if="floor.floorContent.templateType == 8"
  432. class="swiper-pagination swiper-pagination-floor mfc"
  433. :data-id="floor.floorImageList.length"
  434. >
  435. </div>
  436. </div>
  437. <div class="section_page_more"
  438. :data-id="floor.floorContent.templateType"
  439. :data-size="floor.floorImageList.length"
  440. >
  441. <div class="more" @click="showMoreItem($event)"> <i class="icon mIcon"></i>查看更多</div>
  442. </div>
  443. </template>
  444. </div>
  445. </template>
  446. <template v-else>
  447. <!--静态化固定楼层-->
  448. <div class="section_page section_page_user hot" th:each="floor,stat : ${floorJson.get('pageFloorList')}">
  449. <div class="section_page_title">
  450. <h1 th:text="${floor.get('title')}" data-id="0"></h1>
  451. <p th:text="${floor.get('detail')}"></p>
  452. <a class="section_page_btn" href="/product/hot.html" target="_blank"></a>
  453. </div>
  454. <div class="hotList swiper-container-floor mySwiper" id="recommendBox">
  455. <div class="section_page_main type_08 swiper-wrapper recommendBox-wrapperHot clear mfw section_8">
  456. <!-- 商品/图片 列表 -->
  457. <th:block th:each="pros : ${floor.get('floorImageList4')}" th:object="${pros}">
  458. <a href="javascript:void(0)" onclick="handleHotStatistics($(this))" th:attr="data-href=*{link}" class="swiper-slide page_main_item hot ad_04">
  459. <th:block th:if="${pros.get('product')}!=null" th:object="${pros.get('product')}">
  460. <img class="page_main_image" src="/img/base/placeholder.png" th:attr="data-original=*{image}" th:alt="*{name}">
  461. </th:block>
  462. <th:block th:if="${pros.get('product')}!=null" th:object="${pros.get('product')}">
  463. <div class="page_main_type" th:if="*{productType}==2">医疗器械</div>
  464. </th:block>
  465. <div class="page_main_text">
  466. <th:block th:if="${pros.containsKey('product')}">
  467. <span class="tag" th:if="${pros.get('product').containsKey('beautyActFlag')} and ${pros.get('product').get('beautyActFlag')}==1">美博会</span>
  468. </th:block>
  469. <span th:text="${pros.get('product').get('name')}"></span>
  470. </div>
  471. <div class="page_main_price">
  472. <th:block th:if="${pros.get('product')}!=null" th:object="${pros.get('product')}">
  473. <!-- 商品价格 -->
  474. <div th:attr="class=*{'main_price_text product_'+productId}, data-id=*{productId}">
  475. <!-- 正常商品 -->
  476. <th:block th:if="*{productCategory}==1">
  477. <div class="price_text_tag">
  478. <p class="couponTag" th:if="*{couponsLogo}">优惠券</p>
  479. <!--超级会员价格标签 svipProductFlag 1:超级会员优惠商品 0 不是商超级会员优惠商品-->
  480. <th:block th:if="${svipProductFlag}!=null">
  481. <div class="svip-tag" th:if="*{svipProductFlag}==1">
  482. <div class="svip-icon">SVIP</div>
  483. </div>
  484. </th:block>
  485. <p class="listTag" th:if="*{actStatus}==1 and ${pros.get('product').get('promotions')}!=null">
  486. <template th:text="*{promotions.name}"></template>
  487. <th:block th:if="*{promotions.type}==1 and *{promotions.mode}==1">
  488. <!--单品优惠:优惠价-->
  489. <span class="price_unit" style="display:none;">:¥</span><span class="price_num"></span>
  490. </th:block>
  491. </p>
  492. </div>
  493. <div class="main_price_none">
  494. <em class="price_grade"><span class="bold">¥</span><i th:attr="class=*{'icon mIcon price_grade_'+priceGrade}"></i></em>
  495. </div>
  496. </th:block>
  497. <!-- 二手商品 -->
  498. <th:block th:if="*{productCategory}!=1">
  499. <div class="main_price_none sec">
  500. <em class="price_grade"><span>¥</span>登录可见</em>
  501. </div>
  502. </th:block>
  503. </div>
  504. </th:block>
  505. </div>
  506. </a>
  507. </th:block>
  508. </div>
  509. <div class="swiper-pagination swiper-pagination-floor hot mfc" th:attr="data-id=${floor.get('floorImageList4').size}"></div>
  510. </div>
  511. </div>
  512. <!--静态化普通楼层-->
  513. <div class="section_page" th:each="floor,stat : ${floorJson.get('homePageFloor')}">
  514. <th:block th:if="${floor.get('floorContent')}!=null">
  515. <div class="section_page_title">
  516. <h1 th:text="${floor.get('title')}" th:attr="data-id=${stat.index+1}"></h1>
  517. <p th:text="${floor.get('detail')}"></p>
  518. </div>
  519. <th:block th:object="${floor.get('floorContent')}">
  520. <div th:class="*{templateType}==8? 'swiper-container-floor mySwiperSlide' : ''" th:id="*{templateType}==8? 'recommendBox' : ''">
  521. <div th:class="*{templateType}==8? *{'section_page_main type_08 swiper-wrapper recommendBox-wrapper clear mfw section_'+templateType} : *{'section_page_main clear mfw section_'+templateType}">
  522. <!-- 广告图 -->
  523. <th:block th:if="*{templateType}==1 or *{templateType}==2 or *{templateType}==3 or *{templateType}==4 or *{templateType}==5">
  524. <a th:href="*{#strings.isEmpty(adsLink1)}? 'javascript:;' : *{adsLink1}" th:attr="target=(*{#strings.isEmpty(adsLink1)} ? '_self' : '_blank')" class="page_main_item ad_01">
  525. <img v-if="isPC" th:src="*{pcAdsImage1}" alt="" class="page_main_item_adv">
  526. <img v-else th:src="*{appletsAdsImage1}" alt="" class="page_main_item_adv">
  527. </a>
  528. </th:block>
  529. <th:block th:if="*{templateType}==2 or *{templateType}==3 or *{templateType}==4">
  530. <a th:href="*{#strings.isEmpty(adsLink2)}? 'javascript:;' : *{adsLink2}" th:attr="target=(*{#strings.isEmpty(adsLink2)} ? '_self' : '_blank')" class="page_main_item ad_02">
  531. <img v-if="isPC" th:src="*{pcAdsImage2}" alt="" class="page_main_item_adv">
  532. <img v-else th:src="*{appletsAdsImage2}" alt="" class="page_main_item_adv">
  533. </a>
  534. </th:block>
  535. <th:block th:if="*{templateType}==4">
  536. <a th:href="*{#strings.isEmpty(adsLink3)}? 'javascript:;' : *{adsLink3}" th:attr="target=(*{#strings.isEmpty(adsLink3)} ? '_self' : '_blank')" class="page_main_item ad_03">
  537. <img v-if="isPC" th:src="*{pcAdsImage3}" alt="" class="page_main_item_adv">
  538. <img v-else th:src="*{appletsAdsImage3}" alt="" class="page_main_item_adv">
  539. </a>
  540. </th:block>
  541. <!-- 商品/图片 列表 -->
  542. <th:block th:each="pros : ${floor.get('floorImageList')}" th:object="${pros}">
  543. <a th:href="*{link}" class="page_main_item ad_04 swiper-slide" target="_blank">
  544. <img class="page_main_image" src="/img/base/placeholder.png" th:attr="data-original=*{image}" th:alt="*{name}">
  545. <th:block th:if="${pros.get('product')}!=null" th:object="${pros.get('product')}">
  546. <div class="page_main_type" th:if="*{productType}==2">医疗器械</div>
  547. </th:block>
  548. <div class="page_main_tag" th:if="*{listType}==2"><p th:text="*{label}"></p></div>
  549. <div class="page_main_text">
  550. <th:block th:if="${pros.containsKey('product')}">
  551. <span class="tag" th:if="${pros.get('product').containsKey('beautyActFlag')} and ${pros.get('product').get('beautyActFlag')}==1">美博会</span>
  552. </th:block>
  553. <span th:text="${pros.get('name')}"></span>
  554. </div>
  555. <div class="page_main_price" th:if="*{listType}==1">
  556. <th:block th:if="${pros.get('product')}!=null" th:object="${pros.get('product')}">
  557. <!-- 商品价格 -->
  558. <div th:attr="class=*{'main_price_text product_'+productId}, data-id=*{productId}">
  559. <!-- 正常商品 -->
  560. <th:block th:if="*{productCategory}==1">
  561. <div class="price_text_tag">
  562. <p class="couponTag" th:if="*{couponsLogo}">优惠券</p>
  563. <!--超级会员价格标签 svipProductFlag 1:超级会员优惠商品 0 不是商超级会员优惠商品-->
  564. <div class="svip-tag" th:if="*{svipProductFlag}==1">
  565. <div class="svip-icon">SVIP</div>
  566. </div>
  567. <p class="listTag" th:if="*{actStatus}==1 and ${pros.get('product').get('promotions')}!=null">
  568. <template th:text="*{promotions.name}"></template>
  569. <th:block th:if="*{promotions.type}==1 and *{promotions.mode}==1">
  570. <!--单品优惠:优惠价-->
  571. <span class="price_unit" style="display:none;">:¥</span><span class="price_num"></span>
  572. </th:block>
  573. </p>
  574. </div>
  575. <div class="main_price_none">
  576. <em class="price_grade"><span class="bold">¥</span><i th:attr="class=*{'icon mIcon price_grade_'+priceGrade}"></i></em>
  577. </div>
  578. </th:block>
  579. <!-- 二手商品 -->
  580. <th:block th:if="*{productCategory}!=1">
  581. <div class="main_price_none sec">
  582. <em class="price_grade"><span>¥</span>登录可见</em>
  583. </div>
  584. </th:block>
  585. </div>
  586. </th:block>
  587. </div>
  588. </a>
  589. </th:block>
  590. <!-- 广告图 -->
  591. <th:block th:if="*{templateType}==6">
  592. <a th:href="*{#strings.isEmpty(adsLink1)}? 'javascript:;' : *{adsLink1}" th:attr="target=(*{#strings.isEmpty(adsLink1)} ? '_self' : '_blank')" class="page_main_item ad_01">
  593. <img v-if="isPC" th:src="*{pcAdsImage1}" alt="" class="page_main_item_adv">
  594. <img v-else th:src="*{appletsAdsImage1}" alt="" class="page_main_item_adv">
  595. </a>
  596. </th:block>
  597. </div>
  598. <div th:if="*{templateType}==8" class="swiper-pagination swiper-pagination-floor mfc" th:attr="data-id=${floor.get('floorImageList').size}"></div>
  599. </div>
  600. <div class="section_page_more" th:attr="data-id=*{templateType}, data-size=${floor.get('floorImageList').size}">
  601. <div class="more" @click="showMoreItem($event)"> <i class="icon mIcon"></i>查看更多</div>
  602. </div>
  603. </th:block>
  604. </th:block>
  605. </div>
  606. </template>
  607. <div class="section_page">
  608. <div class="section_page_title">
  609. <h1 data-id="99">优质供应商</h1>
  610. <p>采美正品联盟 质量保证</p>
  611. </div>
  612. <div class="section_page_bottom" th:object="${floorJson.get('supplierImage')}">
  613. <a th:href="*{#strings.isEmpty(wwwLink)}? 'javascript:;' : *{wwwLink}" th:attr="target=(*{#strings.isEmpty(wwwLink)} ? '_self' : '_blank')" class="page_main_li ad_01">
  614. <img th:src="*{wwwImage}" alt="" class="page_main_item_adv">
  615. </a>
  616. <template th:each="shop : ${floorJson.get('supplierImage').get('qualitySupplierList')}" th:object="${shop}">
  617. <a th:href="*{link}" target="_blank" class="page_main_li ad_02">
  618. <img class="page_main_logo" src="/img/base/placeholder.png" th:attr="data-original=*{image}" th:alt="*{supplierName}">
  619. <div class="page_main_name" th:text="*{supplierName}"></div>
  620. </a>
  621. </template>
  622. </div>
  623. </div>
  624. </div>
  625. </div>
  626. </div>
  627. <!--右侧边栏导航-->
  628. <div id="sideNav" v-if="isPC">
  629. <div class="item">
  630. <a class="item-sideNav" href="javascript:void(0);" v-for="nav in asideNav" :data-id="nav.id" v-text="nav.value" ></a>
  631. <a class="item-sideNav" href="javascript:void(0);"></a>
  632. </div>
  633. </div>
  634. <!--新用户优惠券弹窗-->
  635. <div id="meibohui" class="Popup" v-if="popupFlag" :class="popupFlag ? 'show' :'' ">
  636. <div class="show_popup">
  637. <div class="bg_icon" @click="closePopup"><i class="icon mIcon"></i></div>
  638. <div class="bg_img" @click="popupPage">
  639. <img src="https://static.caimei365.com/app/meibohui/www/coupon-pop-pc.png" v-if="isPC">
  640. <img src="https://static.caimei365.com/app/meibohui/www/coupon-pop-h5.png" v-else>
  641. </div>
  642. </div>
  643. </div>
  644. </div>
  645. <!-- 引入底部 -->
  646. <template th:replace="components/footer"></template>
  647. <template th:replace="components/foot-link"></template>
  648. <script type="text/javascript" src="/lib/element-ui/vant.min.js"></script>
  649. <script type="text/javascript" src="/lib/element-ui/element-ui.min.js"></script>
  650. <script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/product.service.js(v=${version})}"></script>
  651. <script charset="utf-8" type="text/javascript" th:src="@{/js/mixins/cmsMixins.js(v=${version})}"></script>
  652. <script charset="utf-8" type="text/javascript" th:src="@{/js/mixins/cmSysMixins.js(v=${version})}"></script>
  653. <script charset="utf-8" type="text/javascript" th:src="@{/js/index.js(v=${version})}"></script>
  654. </body>
  655. </html>