home_deco.vue 73 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664
  1. <template>
  2. <view :class="isCookie == true ? 'container prevent' : 'container' ">
  3. <!-- 小程序头部兼容 -->
  4. <view class="mp-search-box" v-if="is_show_top == true" :style="{background:pure_bg_color}">
  5. <image class="return" @click="back" :src="imgUrl+'point/return.png'" mode=""></image>
  6. <view class="title">
  7. {{$L('积分商城')}}
  8. </view>
  9. <image v-if="activity_open" class="search" @click="goSearch" :src="imgUrl+'point/search.png'" mode=""></image>
  10. </view>
  11. <!-- 头部分类 -->
  12. <tab-menu :backGround="pure_bg_color" :tabInfo="sort_nav_list" @getChildList="getChildList" v-if="activity_open&&is_show_top == true && home_is_show_top_cat"></tab-menu>
  13. <!-- 头部轮播 -->
  14. <!-- 头部轮播 -->
  15. <!-- 首页装修 -->
  16. <view v-if="activity_open&&is_show_index == true && isShow == true" :class="isShowTab == true?(home_is_show_top_cat?'deco_wrap':'deco_wrap_no_top_cat'):'deco_wrap2'"
  17. :style="{marginTop:is_show_top == false?'110rpx':'',marginTop:isIos?'-22rpx':0}">
  18. <view class="index_deco" v-for="(decoItem,decoIndex) in deco_info" :key="decoIndex">
  19. <view class="carousel-section deco_carousel-section" style="padding-top: 10rpx;" v-if="decoItem.type == 'top_cat_nav' && decoItem.data.length>0">
  20. <!-- 背景色区域 -->
  21. <view :class="decoItem.swiper_bg_style == 1?'titleNview-background top_swiper_style1':'titleNview-background top_swiper_style2'"
  22. :style="{background:titleNViewBackground,borderRadius:decoItem.swiper_bg_style == 1?'border_radius':'0'}"></view>
  23. <uni-swiper-dot :current="swiperCurrent" :info="decoItem.data" mode="dot" :dotsStyles="dotsStyles">
  24. <swiper class="carousel" circular @change="swiperChange" autoplay="true" :style="{margin:isIos?'10rpx':0}">
  25. <swiper-item v-for="(item, index) in decoItem.data" :key="index" class="carousel-item" @click="skipTo(item.url_type,item.url,item.info.productId || item.info.defaultProductId,item.info.pid,item.info.labelName)">
  26. <image :src="item.img" />
  27. </swiper-item>
  28. </swiper>
  29. </uni-swiper-dot>
  30. </view>
  31. <!-- 公告 -->
  32. <view class="notice_box" v-if="decoItem.type == 'gonggao' && decoItem.is_show == true">
  33. <!-- 公告样式一 -->
  34. <view class="notice_wrap1" v-if="decoItem.type == 'gonggao' && decoItem.show_style == 'one'" @click="skipTo(decoItem.url_type,decoItem.url,decoItem.info.productId || decoItem.info.defaultProductId,decoItem.info.pid,decoItem.info.labelName)">
  35. <image :src="noticeImg1" mode="" class="notice_img1"></image>
  36. <marquee class="notice_content_wrap" broadcastType="text" direction="left" :broadcastData="[decoItem.text]"
  37. :broadcastStyle="broadcastStyle1"></marquee>
  38. <view class="notice_wrap1_line"></view>
  39. <view class="notice_more">>></view>
  40. </view>
  41. <!-- 公告样式二 -->
  42. <view class="notice_wrap2" v-if="decoItem.type == 'gonggao' && decoItem.show_style == 'two'" @click="skipTo(decoItem.url_type,decoItem.url,decoItem.info.productId || decoItem.info.defaultProductId,decoItem.info.pid,decoItem.info.labelName)">
  43. <image :src="noticeImg2" mode="" class="notice_img2"></image>
  44. <marquee class="notice_content_wrap2" broadcastType="text" direction="left" :broadcastData="[decoItem.text]"
  45. :broadcastStyle="broadcastStyle2"></marquee>
  46. <view class="notice_wrap2_line"></view>
  47. <view class="notice_more">>></view>
  48. </view>
  49. </view>
  50. <view class="nav_wrap" v-if="decoItem.type == 'nav' && decoItem.is_show == true">
  51. <!-- 导航样式一、二(图标在上/不显示图标) -->
  52. <view class="cate-section" v-if="decoItem.style_set == 'nav' && decoItem.icon_set == 'up' || decoItem.icon_set == 'no-icon' && decoItem.is_show == true">
  53. <view class="cate-item" v-for="(item,index) in decoItem.data" :key="index" @click="skipTo(item.url_type,item.url,item.info.productId || item.info.defaultProductId,item.info.pid,item.info.labelName)">
  54. <image :src="item.img" v-if="decoItem.icon_set == 'up'"></image>
  55. <text>{{filters.toSubstring(item.name,0,9)}}</text>
  56. </view>
  57. </view>
  58. <!-- 导航样式三 (图标文字左右显示)-->
  59. <view class="cate-section" v-if="decoItem.style_set == 'nav' && decoItem.icon_set == 'left' && decoItem.is_show == true"
  60. style="justify-content: flex-start;padding:20rpx 2rpx;">
  61. <view class="cate-item2" v-for="(item,index) in decoItem.data" :key="index" @click="skipTo(item.url_type,item.url,item.info.productId || item.info.defaultProductId,item.info.pid,item.info.labelName)">
  62. <image :src="item.img" style="margin-right:10rpx;" mode="aspectFit"></image>
  63. <view class="cate_name">{{filters.toSubstring(item.name,0,9)}}</view>
  64. </view>
  65. </view>
  66. <!-- 导航分组 -->
  67. <view class="nav_group" v-if="decoItem.style_set == 'tag-nav' && decoItem.is_show == true ">
  68. <view class="nav_group_item" v-for="(item,index) in decoItem.data" :key="index" @click="skipTo(item.url_type,item.url,item.info.productId || item.info.defaultProductId,item.info.pid,item.info.labelName)">
  69. <image :src="item.img" mode="aspectFit"></image>
  70. <view class="nav_group_name">{{item.name}}</view>
  71. </view>
  72. </view>
  73. </view>
  74. <!-- 客服 -->
  75. <view class="service_wrap" v-if="decoItem.type == 'kefu' && decoItem.is_show == true" @click="callUp(decoItem.tel)">
  76. <image :src="telImg" mode=""></image>
  77. <text>{{decoItem.text}}{{decoItem.tel}}</text>
  78. </view>
  79. <!-- 富文本 -->
  80. <view class="rich_text_wrap" v-if="decoItem.type == 'fuwenben' && decoItem.is_show == true">
  81. <rich-text :nodes="decoItem.text" class="rich_text"></rich-text>
  82. </view>
  83. <!-- 图片组合 -->
  84. <view class="combination_wrap" v-if="decoItem.type == 'tupianzuhe'">
  85. <!-- 图片组合0123 -->
  86. <view v-if="decoItem.type == 'tupianzuhe' && decoItem.sele_style<4" style="background-color: #fff;">
  87. <view class="modules-slide">
  88. <view :class="'image-list style' + decoItem.sele_style" v-if="decoItem.sele_style<3">
  89. <view :class="decoItem.sele_style == 2?'combination_style no_margin_right flex_row_start_start tupianzuhe2':'space_between combination_style'"
  90. :style="{'display':decoItem.sele_style < 2?'block':'flex'}">
  91. <view v-for="(childitem, childindex) in decoItem.data" :key="childindex" :class="decoItem.sele_style < 2?'combine1':'combine2'"
  92. :style="{'marginTop':decoItem.sele_style == 1?'20rpx':'0','marginRight':decoItem.sele_style < 3?'0':'20rpx','marginBottom':decoItem.sele_style < 3?'0':'20rpx'}">
  93. <view class="flex_column_start_center" v-if="decoItem.sele_style == 0||decoItem.sele_style == 1">
  94. <image v-if="decoItem.sele_style == 0 " @click="skipTo(childitem.url_type,childitem.url,childitem.info.productId || childitem.info.defaultProductId,childitem.info.pid,childitem.info.labelName)"
  95. mode="aspectFit" :src="childitem.img" :style="{'display': 'block','width':'750rpx','height':(750*childitem.height/childitem.width)+'rpx'}"></image>
  96. <image v-if="decoItem.sele_style == 1" @click="skipTo(childitem.url_type,childitem.url,childitem.info.productId || childitem.info.defaultProductId,childitem.info.pid,childitem.info.labelName)"
  97. mode="aspectFit" :src="childitem.img" :style="{'display': 'block','width':'710rpx','height':(710*childitem.height/childitem.width)+'rpx','margin-bottom':childindex == (decoItem.data.length-1)?'20rpx':0}"></image>
  98. </view>
  99. <view class="flex_row_center_center combine3" v-if="decoItem.sele_style == 2" :style="{'height':childindex%2==0?((345*childitem.height/childitem.width)+'rpx'):((345*decoItem.data[childindex-1].height/decoItem.data[childindex-1].width)+'rpx'),'margin-left':'20rpx'}">
  100. <image @click="skipTo(childitem.url_type,childitem.url,childitem.info.productId || childitem.info.defaultProductId,childitem.info.pid,childitem.info.labelName)"
  101. mode="aspectFit" :src="childitem.img" style="width: 100%;height: 100%;"></image>
  102. </view>
  103. </view>
  104. </view>
  105. </view>
  106. <view :class="'image-list style' + decoItem.sele_style" v-if="decoItem.sele_style == 3">
  107. <view class="combination_style no_margin_right2" style="display: flex;margin-bottom: 20rpx;flex-wrap:wrap">
  108. <view v-for="(childitem, childindex) in decoItem.data" :key="childindex" class="combine2">
  109. <view class="combine4" :style="{'height':childindex%3==0?((690/3*childitem.height/childitem.width)+'rpx'):(childindex%3==1?((690/3*decoItem.data[childindex-1].height/decoItem.data[childindex-1].width)+'rpx'):((690/3*decoItem.data[childindex-2].height/decoItem.data[childindex-2].width)+'rpx')),}">
  110. <image @click="skipTo(childitem.url_type,childitem.url,childitem.info.productId || childitem.info.defaultProductId,childitem.info.pid,childitem.info.labelName)"
  111. mode="aspectFit" :src="childitem.img"></image>
  112. </view>
  113. </view>
  114. </view>
  115. </view>
  116. </view>
  117. </view>
  118. <!--图片组合4 -->
  119. <view v-if="decoItem.type == 'tupianzuhe' && decoItem.sele_style == 4" style="background-color: #fff;">
  120. <view class="modules-slide">
  121. <view class="image-ad clearfix images-tpl">
  122. <view style="display: flex;">
  123. <view class="tupianzuhe04_left flex_row_center_center" @click="skipTo(decoItem.data[0].url_type,decoItem.data[0].url,decoItem.data[0].info.productId || decoItem.data[0].info.defaultProductId,decoItem.data[0].info.pid),decoItem.data[0].info.labelName">
  124. <image mode="aspectFit" :src="decoItem.data[0].img"></image>
  125. </view>
  126. <view style="display: flex;flex-direction: column;justify-content: space-between;">
  127. <view class="tupianzuhe04_right_item flex_row_center_center" @click="skipTo(decoItem.data[1].url_type,decoItem.data[1].url,decoItem.data[1].info.productId || decoItem.data[1].info.defaultProductId,decoItem.data[1].info.pid,decoItem.data[1].info.labelName)">
  128. <image mode="aspectFit" :src="decoItem.data[1].img"></image>
  129. </view>
  130. <view class="tupianzuhe04_right_item flex_row_center_center" @click="skipTo(decoItem.data[2].url_type,decoItem.data[2].url,decoItem.data[2].info.productId || decoItem.data[2].info.defaultProductId,decoItem.data[2].info.pid,decoItem.data[2].info.labelName)">
  131. <image mode="aspectFit" :src="decoItem.data[2].img"></image>
  132. </view>
  133. </view>
  134. </view>
  135. </view>
  136. </view>
  137. </view>
  138. <!-- 图片组合5 6 display: flex;flex-wrap:wrap;-->
  139. <view v-if="decoItem.type == 'tupianzuhe'&& decoItem.sele_style == 5 || decoItem.sele_style == 6" style="background-color: #fff;">
  140. <view class="modules-slide">
  141. <view class="image-ad clearfix images-tpl" style="padding-top: 0;">
  142. <view class="combine5_wrap" style="display:flex;flex-wrap:wrap;width:100%;" v-if="decoItem.sele_style == 5">
  143. <view v-for="(childitem, childindex) in decoItem.data" :key="childindex" class="combine5 flex_row_center_center"
  144. @click="skipTo(childitem.url_type,childitem.url,childitem.info.productId || childitem.info.defaultProductId,childitem.info.pid,childitem.info.labelName)"
  145. :style="{width: childindex == 0 || childindex == 3 ? 230 +'rpx' : 460 + 'rpx',
  146. height: '230rpx',marginTop:'20rpx',marginLeft:'20rpx',backGround:'red'}">
  147. <image mode="aspectFit" :src="childitem.img" style="width: 100%;height: 100%;"></image>
  148. </view>
  149. </view>
  150. <view class="" v-if="decoItem.sele_style == 6" style="display:flex;">
  151. <view class="combine6" style="margin-left: 20rpx;">
  152. <view class="flex_row_center_center" :style="{width:'345rpx',height:345/2+'rpx','flex-shrink':0,'margin-bottom':'20rpx'}"
  153. @click="skipTo(decoItem.data[0].url_type,decoItem.data[0].url,decoItem.data[0].info.productId || decoItem.data[0].info.defaultProductId,decoItem.data[0].info.pid,decoItem.data[0].info.labelName)">
  154. <image :src="decoItem.data[0].img" mode="aspectFit" style="width: 100%;height: 100%;"></image>
  155. </view>
  156. <view class="flex_row_center_center" :style="{width: '345rpx',height:'345rpx','flex-shrink':0}" @click="skipTo(decoItem.data[1].url_type,decoItem.data[1].url,decoItem.data[1].info.productId || decoItem.data[1].info.defaultProductId,decoItem.data[1].info.pid,decoItem.data[1].info.labelName)">
  157. <image :src="decoItem.data[1].img" mode="aspectFit" style="width: 100%;height: 100%;"></image>
  158. </view>
  159. </view>
  160. <view class="combine6">
  161. <view class="flex_row_center_center" :style="{width: '345rpx',height:'345rpx','flex-shrink':0,'margin-bottom':'20rpx'}"
  162. @click="skipTo(decoItem.data[2].url_type,decoItem.data[2].url,decoItem.data[2].info.productId || decoItem.data[2].info.defaultProductId,decoItem.data[2].info.pid,decoItem.data[2].info.labelName)">
  163. <image :src="decoItem.data[2].img" mode="aspectFit" style="width: 100%;height: 100%;"></image>
  164. </view>
  165. <view class="flex_row_center_center" :style="{width: '345rpx',height:345/2+'rpx','flex-shrink':0}" @click="skipTo(decoItem.data[3].url_type,decoItem.data[3].url,decoItem.data[3].info.productId || decoItem.data[3].info.defaultProductId,decoItem.data[3].info.pid,decoItem.data[3].info.labelName)">
  166. <image :src="decoItem.data[3].img" mode="aspectFit" style="width: 100%;height: 100%;"></image>
  167. </view>
  168. </view>
  169. </view>
  170. </view>
  171. </view>
  172. </view>
  173. <!-- 图片组合7-->
  174. <view v-if="decoItem.sele_style == 7" data-index="index" style="background-color: #fff;">
  175. <view class="modules-slide">
  176. <view class="image-ad images-tpl" style="display: flex;justify-content: flex-start;align-items: center;padding-top: 0;">
  177. <view :style="{'display': 'flex','flex-wrap':'wrap','width':(670/3*2+61)+'rpx',}">
  178. <view class="flex_row_center_center" v-for="(childitem, childindex) in decoItem.data" v-if="childindex<4" :key="childindex"
  179. @click="skipTo(childitem.url_type,childitem.url,childitem.info.productId || childitem.info.defaultProductId,childitem.info.pid,childitem.info.labelName)"
  180. :style="{'margin-left':'20rpx',width:670/3+'rpx',height:670/3+'rpx',marginTop:'20rpx','flex-shrink':0}">
  181. <image mode="aspectFit" :src="childitem.img" style="width: 100%;height: 100%;"></image>
  182. </view>
  183. </view>
  184. <view class="flex_row_center_center" v-if="decoItem.data[4]" @click="skipTo(decoItem.data[4].url_type,decoItem.data[4].url,decoItem.data[4].info.productId || decoItem.data[4].info.defaultProductId,decoItem.data[4].info.pid,decoItem.data[4].info.labelName)"
  185. :style="{'margin-top':'20rpx',width:670/3+'rpx',height: (670/3*2+20) +'rpx'}">
  186. <image mode="aspectFit" :src="decoItem.data[4].img" style="width: 100%;height: 100%;"></image>
  187. </view>
  188. </view>
  189. </view>
  190. </view>
  191. </view>
  192. <!-- 搭配 -->
  193. <view class="match_wrap" v-if="decoItem.type == 'dapei' && decoItem.is_show == true">
  194. <view class="match_top">
  195. <view class="match_top_title" v-if="decoItem.dapei_title">{{decoItem.dapei_title}}</view>
  196. <view class="match_image_wrap flex_row_center_center">
  197. <image :src="decoItem.dapei_img" mode="" class="match_image" :style="{width:'710rpx',height:710*decoItem.height/decoItem.width+'rpx'}"></image>
  198. </view>
  199. <view class="match_top_text" v-if="decoItem.dapei_desc">{{decoItem.dapei_desc}}</view>
  200. </view>
  201. <view class="match_main_wrap">
  202. <view class="match_main" v-if="decoItem && decoItem.data && decoItem.data.info">
  203. <view class="match_item" v-for="(item,index) in decoItem.data.info" :key="index" @click="toGoodsDetail(item.productId || item.defaultProductId,item.goodsId)">
  204. <view class="match_goods_img">
  205. <image :src="item.mainImage" mode="aspectFit"></image>
  206. </view>
  207. <view class="match_goods_name">{{item.goodsName}}</view>
  208. <view class="match_goods_price">
  209. <text class="small_price">¥</text>
  210. <text class="big_price">{{filters.toSplit(filters.toFix(item.goodsPrice))[0]}}</text>.
  211. <text class="small_price">{{filters.toSplit(filters.toFix(item.goodsPrice))[1]}}</text>
  212. </view>
  213. </view>
  214. </view>
  215. </view>
  216. </view>
  217. <!-- 辅助线 -->
  218. <view class="subline_wrap" v-if="decoItem.type == 'fzx' && decoItem.is_show == true" :style="{paddingLeft:decoItem.lrmargin*2+'rpx',paddingRight:decoItem.lrmargin*2+'rpx',marginTop:decoItem.tbmargin*2+'rpx',marginBottom:decoItem.tbmargin*2+'rpx'}">
  219. <view class="subline" :style="{height:decoItem.tbmargin+'px',borderBottomColor:decoItem.color,borderBottomStyle:decoItem.val}"></view>
  220. <view :style="{height:decoItem.tbmargin+'px'}"></view>
  221. </view>
  222. <!-- 轮播图 -->
  223. <view class="carousel_bottom_wrap" v-if="decoItem.type == 'lunbo' && decoItem.is_show == true" style="padding:0;">
  224. <swiper class="carousel carousel_bottom" circular autoplay="true" :style="{width:decoItem.width+'rpx',height:decoItem.height+'rpx'}">
  225. <swiper-item v-for="(item, index) in decoItem.data" :key="index" class="carousel-item" style="padding:0;" @click="skipTo(item.url_type,item.url,item.info.productId || item.info.defaultProductId,item.info.pid,item.info.labelName)">
  226. <image :src="item.img" class="carousel_img" />
  227. </swiper-item>
  228. </swiper>
  229. </view>
  230. <!-- 推荐商品样式一 -->
  231. <view class="recommend_goods_wrap" v-if="decoItem.type == 'tuijianshangpin' && decoItem.show_style == 'small'"
  232. style="padding:0">
  233. <view :style="{backgroundColor:decoItem.border_style == 'border_none_grey_bg'?'f8f8f8':'#fff',paddingLeft:decoItem.page_margin*2+'rpx',paddingRight:decoItem.page_margin*2+'rpx',paddingTop:'20rpx'}"
  234. class="rec_goods_wrap">
  235. <recommendItemV :goods_info="item" :show_sale="decoItem.isshow_sales == 1?true:false" :icon_type="decoItem.cart_icon_type"
  236. :height="225" :border_radius="decoItem.border_radius" :border_style="decoItem.border_style" :goods_margin="decoItem.goods_margin"
  237. :page_margin="decoItem.page_margin" v-for="(item,index) in decoItem.data.info" :key="index" @click="skipTo(decoItem.type,item.gid,item.info)">
  238. </recommendItemV>
  239. </view>
  240. </view>
  241. <!-- 推荐商品样式二 -->
  242. <view class="recommend_goods_wrap" v-if="decoItem.type == 'tuijianshangpin' && decoItem.show_style == 'list' && decoItem.is_show == true"
  243. :style="{paddingLeft:decoItem.page_margin+'px',paddingRight:decoItem.page_margin+'px',marginTop:0,backgroundColor:decoItem.border_style == 'border_none_grey_bg'?'f8f8f8':'#fff'}">
  244. <view class="rec_goods_wrap">
  245. <recommendItemV :goods_info="item" :show_sale="decoItem.isshow_sales == 1?true:false" :icon_type="decoItem.cart_icon_type"
  246. :height="225" :border_radius="decoItem.border_radius" :border_style="decoItem.border_style" :goods_margin="decoItem.goods_margin"
  247. :page_margin="decoItem.page_margin" v-for="(item,index) in decoItem.data.info" :key="index" @click="skipTo(decoItem.type,item.gid,item.info)">
  248. </recommendItemV>
  249. <!-- <view class="recommend_goods1" v-for="(item,index) in decoItem.data.info" :key="index" :style="{borderRadius:decoItem.border_radius+'px',border:decoItem.border_style == 'border_eee'?'1rpx solid #eee':'',boxShadow:decoItem.border_style == 'card-shadow'?'rgba(93, 113, 127, 0.08) 0px 2px 8px':'',marginBottom:decoItem.goods_margin+'px'}">
  250. <view class="recommend_goods_img1" @click="toGoodsDetail(item.productId || item.defaultProductId,item.goodsId)">
  251. <image :src="item.mainImage" mode="aspectFill" :style="{borderRadius:border_radius2}"></image>
  252. </view>
  253. <view class="recommend_goods_right">
  254. <view class="recommend_goods_name" @click="toGoodsDetail(item.productId || item.defaultProductId,item.goodsId)">{{item.goodsName}}</view>
  255. <view :class="decoItem.isshow_sales == 1?'':'hide_sold_wrap'">
  256. <view class="recommend_goods_price" :style="{position:decoItem.isshow_sales == 1?'absolute':'static'}">
  257. <text class="small_price">¥</text>
  258. <text class="big_price">{{$getPartNumber(item.goodsPrice,'int')}}</text>
  259. <text class="small_price">{{$getPartNumber(item.goodsPrice,'decimal')}}</text>
  260. </view>
  261. <view class="recommend_goods_bottom" :style="{position:decoItem.isshow_sales == 1?'absolute':'static',width:decoItem.isshow_sales == 1?'100%':'auto'}">
  262. <view class="have_sold" v-if="decoItem.isshow_sales == 1">已售{{item.actualSales}}件</view>
  263. <block>
  264. <image :src="imgUrl+'add-cart.png'" mode="" v-if="decoItem.cart_icon_type == 1" @click="addCart(item.productId || item.defaultProductId,item.goodsId,item)"></image>
  265. <image :src="icon2" mode="" v-if="decoItem.cart_icon_type == 2" @click="addCart(item.productId || item.defaultProductId,item.goodsId,item)"></image>
  266. <image :src="icon3" mode="" v-if="decoItem.cart_icon_type == 3" @click="addCart(item.productId || item.defaultProductId,item.goodsId,item)"></image>
  267. <image :src="icon4" mode="" v-if="decoItem.cart_icon_type == 4" @click="addCart(item.productId || item.defaultProductId,item.goodsId,item)"></image>
  268. </block>
  269. </view>
  270. </view>
  271. </view>
  272. </view> -->
  273. </view>
  274. </view>
  275. <!-- 推荐商品样式三 -->
  276. <view class="recommend_goods_wrap" v-if="decoItem.type == 'tuijianshangpin' && decoItem.show_style == 'big' && decoItem.is_show == true"
  277. :style="{paddingLeft:decoItem.page_margin+'px',paddingRight:decoItem.page_margin+'px',marginTop:0,backgroundColor:decoItem.border_style == 'border_none_grey_bg'?'f8f8f8':'#fff'}">
  278. <recommendItemV :goods_info="item" :show_sale="decoItem.isshow_sales == 1?true:false" :icon_type="decoItem.cart_icon_type"
  279. :height="225" :border_radius="decoItem.border_radius" :border_style="decoItem.border_style" :goods_margin="decoItem.goods_margin"
  280. :page_margin="decoItem.page_margin" v-for="(item,index) in decoItem.data.info" :key="index" @click="skipTo(decoItem.type,item.gid,item.info)">
  281. </recommendItemV>
  282. <!-- <view class="recommend_goods2" v-for="(item,index) in decoItem.data.info" :key="index" :style="{borderRadius:decoItem.border_radius+'px',border:decoItem.border_style == 'border_eee'?'1rpx solid #eee':'',boxShadow:decoItem.border_style == 'card-shadow'?'rgba(93, 113, 127, 0.08) 0px 2px 8px':'',marginBottom:decoItem.goods_margin+'px'}">
  283. <view class="recommend_goods_img2" @click="toGoodsDetail(item.productId || item.defaultProductId,item.goodsId)">
  284. <image :src="item.mainImage" mode="aspectFill" :style="{borderRadius:border_radius1}"></image>
  285. </view>
  286. <view class="recommend_goods_bottom2" :style="{borderRadius:border_radius3}">
  287. <view class="recommend_goods_name2" @click="toGoodsDetail(item.productId || item.defaultProductId,item.goodsId)">{{item.goodsName}}</view>
  288. <view class="goods_bottom" :style="{flexDirection:decoItem.isshow_sales == 1?'':'row',justifyContent:decoItem.isshow_sales == 1?'':'space-between'}">
  289. <view class="recommend_goods_price" style="color:#FC1C1C;">
  290. <text class="small_price">¥</text>
  291. <text class="big_price">{{$getPartNumber(item.goodsPrice,'int')}}</text>
  292. <text class="small_price">{{$getPartNumber(item.goodsPrice,'decimal')}}</text>
  293. </view>
  294. <view class="recommond_goods3_wrap">
  295. <view class="have_sold" v-if="decoItem.isshow_sales == 1">已售{{item.actualSales}}件</view>
  296. <image :src="imgUrl+'add-cart.png'" mode="" v-if="decoItem.cart_icon_type == 1" @click="addCart(item.productId || item.defaultProductId,item.goodsId,item)"></image>
  297. <image :src="icon2" mode="" v-if="decoItem.cart_icon_type == 2" @click="addCart(item.productId || item.defaultProductId,item.goodsId,item)"></image>
  298. <image :src="icon3" mode="" v-if="decoItem.cart_icon_type == 3" @click="addCart(item.productId || item.defaultProductId,item.goodsId,item)"></image>
  299. <image :src="icon4" mode="" v-if="decoItem.cart_icon_type == 4" @click="addCart(item.productId || item.defaultProductId,item.goodsId,item)"></image>
  300. </view>
  301. </view>
  302. </view>
  303. </view> -->
  304. </view>
  305. <!-- 辅助空白 -->
  306. <view class="blank_wrap" v-if="decoItem.type == 'fzkb' && decoItem.id && decoItem.is_show == true" :style="{backgroundColor:decoItem.color,height:decoItem.text+'px'}"></view>
  307. <!-- tab切换 -->
  308. <sort-list :nav_list="decoItem.data" :isShowSale="false" :borderRadius="decoItem.border_radius" v-if="decoItem.type == 'more_tab' && decoItem.is_show == true"
  309. :card_height="225"></sort-list>
  310. </view>
  311. </view>
  312. <view class="carousel-section laber_banner_list" v-if="activity_open&&tab_index > 0&&laber_banner_list.length>0">
  313. <!-- 背景色区域 -->
  314. <view :class="swiper_bg_style == 1?'titleNview-background top_swiper_style1':'titleNview-background top_swiper_style2'"
  315. :style="{background:titleNViewBackground,borderRadius:swiper_bg_style == 1?'border_radius':'0'}"></view>
  316. <uni-swiper-dot mode="dot" :dotsStyles="dotsStyles">
  317. <swiper class="carousel" circular @change="labelSwiperChange" autoplay="true" :style="{margin:isIos?'10rpx':0}">
  318. <swiper-item v-for="(item, index) in laber_banner_list" :key="index" class="carousel-item" @click="skipTo(item.link_type,item.link_value,(item.info?(item.info.productId || item.info.defaultProductId):''),(item.info?item.info.pid:''),(item.info?item.info.labelName:''))">
  319. <image :src="item.imgUrl" />
  320. </swiper-item>
  321. </swiper>
  322. </uni-swiper-dot>
  323. </view>
  324. <!-- 顶部分类切换 -->
  325. <view :class="{sort_sub_wrap:true,laber_banner_list:laber_banner_list.length==0}" v-if="activity_open&&tab_index != 0 && sort_obj.children.length>0">
  326. <view class="sort_sub_top">
  327. <view class="sort_sub_item" v-for="(item,index) in sort_obj.children" :key="index" @click="goGoodsList(item.labelName,item.labelId)">
  328. <view class="sort_sub_img">
  329. <image :src="item.image" mode=""></image>
  330. </view>
  331. <view class="sort_sub_name">{{filterFun(item.labelName)}}</view>
  332. </view>
  333. <view class="see_more_wrap" @click="goGoodsList('more',sort_obj.labelId)" v-if="sort_obj.children.length>7">
  334. <view class="more_icon_circle">
  335. <image :src="imgUrl+'index/more.png'" mode="" class="more_icon"></image>
  336. </view>
  337. <view class="see_more_text">{{$L('查看更多')}}</view>
  338. </view>
  339. </view>
  340. <view class="sort_sub_goods">
  341. <recommendItemV :goods_info="item" :show_sale="false" :icon_type="1" :border_radius="8" :height="225" v-for="(item,index) in sort_obj.goodsList"
  342. :key="index"></recommendItemV>
  343. </view>
  344. <recommendItemList ref='recommendList'></recommendItemList>
  345. </view>
  346. <!-- 空首页装修 -->
  347. <view class="empty_sort_page" v-if="activity_open&&tab_index == 0&&deco_info == null" style="padding-top: 35vh;">
  348. <image :src="imgUrl+'index/empty.png'" mode="aspectFit" class="empty_img"></image>
  349. <view class="empty_text">{{$L('首页暂未装修')}}</view>
  350. </view>
  351. <!-- 分类空页面 -->
  352. <view class="empty_sort_page" v-if="activity_open&&tab_index > 0 && is_show_empty == true">
  353. <image :src="imgUrl+'index/empty.png'" mode="aspectFit" class="empty_img"></image>
  354. <view class="empty_text">{{$L('该分类暂无相关商品')}}</view>
  355. </view>
  356. <!-- 首页开屏框 start -->
  357. <view :class="pointIsCookie == true ? 'open_screen show-dialog' : 'open_screen hide-dialog'" v-if="activity_open&&pointIsCookie == true && home_page_img.length > 0 && home_page_img[0].imgUrl">
  358. <view :style="{ width: width + 'rpx', 'height': height + 'rpx' }" class="open_screen_con" @click="gotoGoods_detail">
  359. <view class="con_img" @click.stop="close_openScreen">
  360. <image :src="openscnImg"></image>
  361. </view>
  362. <image class="open_screen_con_img" :src="home_page_img[0].imgUrl"></image>
  363. </view>
  364. </view>
  365. <!-- 开屏框 end -->
  366. <!-- 活动未开启 start-->
  367. <notOpen v-if='!activity_open'></notOpen>
  368. <!-- 活动未开启 end -->
  369. </view>
  370. </template>
  371. <script module="filters" lang="wxs" src="@/utils/filter.wxs"></script>
  372. <script>
  373. import {
  374. mapState,
  375. } from 'vuex';
  376. import tabMenu from './index-tab-menu.vue'
  377. import sortList from './index-sort-list.vue'
  378. import uniSwiperDot from './uni-swiper-dot/uni-swiper-dot.vue'
  379. import marquee from './marquee.vue'
  380. import {
  381. decoType
  382. } from '@/utils/common.js'
  383. import goodsItemV from './goods_item_v.vue';
  384. import loadingState from "./loading-state.vue";
  385. import recommendItemV from './recommend_item_v.vue'
  386. import recommendItemList from './recommend_list.vue'
  387. import notOpen from './not_open.vue'
  388. export default {
  389. data() {
  390. return {
  391. imgUrl: getApp().globalData.imgUrl,
  392. titleNViewBackground: '',
  393. swiperCurrent: 0,
  394. swiperLength: 0,
  395. carouselList: [],
  396. goodsList: [],
  397. current: 0, //轮播图指示点
  398. dotsStyles: {
  399. selectedBackgroundColor: '#fff',
  400. width: 8,
  401. height: 8,
  402. selectedBorder: 'none',
  403. backgroundColor: 'rgba(255,255,255,0.4)',
  404. border: 'none',
  405. bottom: 8
  406. },
  407. noticeImg1: getApp().globalData.imgUrl + 'index/notice1.png',
  408. noticeImg2: getApp().globalData.imgUrl + 'index/notice2.png',
  409. // deco_info:[] ,//首页装修数据
  410. // home_page_img:[] , //首页开屏图列表
  411. dataObj: {}, //完整版首页装修数据
  412. border_radius: '', //顶部轮播背景圆角
  413. broadcastData1: [], //公告1滚动文字
  414. broadcastData2: [], //公告2滚动文字
  415. broadcastStyle1: { //滚动文字样式设置
  416. speed: 1, //每秒30px
  417. font_size: "24", //字体大小(rpx)
  418. text_color: "#666", //字体颜色
  419. back_color: "linear-gradient(to right,rgba(250,244,244,0.2) 0%, rgba(255,244,244,1) 50%, rgba(250,244,244,0.2) 100%);", //背景色
  420. },
  421. broadcastStyle2: { //滚动文字样式设置
  422. speed: 1, //每秒30px
  423. font_size: "24", //字体大小(rpx)
  424. text_color: "#fff", //字体颜色
  425. back_color: "#3A3A3A", //背景色
  426. },
  427. telImg: getApp().globalData.imgUrl + 'index/mobile.png',
  428. sort_nav_list: [], //顶部分类列表
  429. sort_obj: {}, //二级分类列表+分类商品列表
  430. tab_index: 0, //分类切换下标
  431. is_show_index: true,
  432. adArr: [], //公告数组
  433. icon2: getApp().globalData.imgUrl + 'index/add2.png',
  434. icon3: getApp().globalData.imgUrl + 'index/add.png',
  435. icon4: getApp().globalData.imgUrl + 'index/add3.png',
  436. icon5: getApp().globalData.imgUrl + 'index/stop.png',
  437. client: '', //客户端类型
  438. isCookie: false,
  439. storeIsCookie: false,
  440. openscnImg: getApp().globalData.imgUrl + 'index/close_screen.png',
  441. isShowTab: true, //是否显示顶部分类
  442. sortLen: '', //二级分类长度
  443. isShow: true,
  444. is_show_empty: false, //是否展示分类空页面
  445. pure_bg_color: '', //顶部栏有弧度纯色
  446. border_radius1: '', //推荐商品二角度设置
  447. border_radius2: '', //推荐商品三角度设置
  448. border_radius3: '',
  449. top_bg: '#7B2AD0', //顶部状态栏颜色
  450. noData: false, //暂无数据
  451. is_show_empty_goods: false, //是否展示分类空商品页面
  452. // #ifdef APP-PLUS
  453. isIos: getApp().globalData.systemInfo.platform == 'ios', //是否ios手机
  454. // #endif
  455. // #ifndef APP-PLUS
  456. isIos: false,
  457. // #endif
  458. goods_info: {},
  459. laber_banner_list: [],
  460. pointIsCookie: false,
  461. swiper_bg_style: 2,
  462. };
  463. },
  464. components: {
  465. tabMenu,
  466. sortList,
  467. uniSwiperDot,
  468. marquee,
  469. goodsItemV,
  470. recommendItemV,
  471. recommendItemList,
  472. notOpen
  473. },
  474. props: ['is_show_top', 'deco_info', 'topic_name', 'is_from_found', 'home_is_show_top_cat', 'home_page_img', 'width',
  475. 'height', 'store_width', 'store_height', 'store_page_img','activity_open'
  476. ],
  477. computed: {
  478. ...mapState(['hasLogin', 'userInfo', 'userCenterData'])
  479. },
  480. async mounted() {
  481. this.deco_info && this.deco_info.map(item => {
  482. if (item.type == 'top_cat_nav') {
  483. this.swiper_bg_style = item.swiper_bg_style
  484. }
  485. })
  486. this.getSortList();
  487. //首页装修开平图缓存
  488. let cookievalue = uni.getStorageSync('pointIsCookie');
  489. if (!cookievalue) {
  490. this.pointIsCookie = true;
  491. uni.setStorage({
  492. key: 'pointIsCookie',
  493. data: new Date().getTime()
  494. });
  495. } else {
  496. if(new Date().getTime()*1 - cookievalue*1 > 24*60*60*1000){
  497. this.pointIsCookie = true;
  498. uni.setStorage({
  499. key: 'pointIsCookie',
  500. data: new Date().getTime()
  501. });
  502. }else{
  503. this.pointIsCookie = false;
  504. }
  505. }
  506. },
  507. watch: {
  508. deco_info(val) {
  509. this.noData = val && val.length == 0 ? true : false
  510. val && val.map(item => {
  511. if (item.type == 'tuijianshangpin' && item.show_style == "big") {
  512. this.border_radius1 = item.border_radius + 'px' + ' ' + item.border_radius + 'px' + ' 0 0'
  513. this.border_radius3 = '0 0 ' + item.border_radius + 'px' + ' ' + item.border_radius + 'px'
  514. } else if (item.type == 'tuijianshangpin' && item.show_style == "list") {
  515. this.border_radius2 = item.border_radius + 'px' + ' 0 0 ' + item.border_radius + 'px'
  516. }
  517. })
  518. },
  519. },
  520. methods: {
  521. getMoreData(){
  522. if(this.tab_index>0){
  523. this.$refs.recommendList.getMoreData();
  524. }
  525. },
  526. back() {
  527. uni.reLaunch({
  528. url: '/pages/index/index'
  529. })
  530. },
  531. goSearch() {
  532. uni.navigateTo({
  533. url: '/standard/point/search/search'
  534. })
  535. },
  536. filterFun: function(value) {
  537. if (value && value.length > 4) {
  538. value = value.substring(0, 4);
  539. }
  540. return value;
  541. },
  542. //跳转商品列表
  543. goGoodsList(type, labelId) {
  544. uni.navigateTo({
  545. url: '/standard/point/search/good_list?labelId=' + labelId + '&type=' + type
  546. })
  547. },
  548. //轮播图切换修改背景色
  549. swiperChange(e) {
  550. const index = e.detail.current;
  551. this.swiperCurrent = index;
  552. this.deco_info && this.deco_info.map(item => {
  553. if (item.type == 'top_cat_nav') {
  554. this.pure_bg_color = item.data[index].bg_color
  555. if (item.swiper_bg_style == 1) {
  556. this.titleNViewBackground = item.data[index].bg_color
  557. } else {
  558. this.titleNViewBackground='linear-gradient(' + item.data[index].bg_color + ' 0%,' + item.data[index].bg_color +' 42%,#ffffff 100%) '
  559. }
  560. }
  561. })
  562. },
  563. labelSwiperChange(e) {
  564. const index = e.detail.current;
  565. this.swiperCurrent = index;
  566. this.pure_bg_color = this.laber_banner_list[index].bg_color
  567. if (this.swiper_bg_style == 1) {
  568. this.titleNViewBackground = this.laber_banner_list[index].bg_color
  569. } else {
  570. this.titleNViewBackground = 'linear-gradient(' + this.laber_banner_list[index].bg_color + ' 0%,' + this.laber_banner_list[index].bg_color +
  571. ' 42%,#ffffff 100%)'
  572. }
  573. },
  574. // 获取分类列表
  575. getSortList() {
  576. let param = {}
  577. param.url = 'v3/integral/front/integral/mall/list'
  578. param.method = 'GET'
  579. this.$request(param).then(res => {
  580. if (res.state == 200) {
  581. this.sort_nav_list = res.data.list
  582. this.sort_nav_list.unshift({
  583. labelName: '首页'
  584. })
  585. }
  586. })
  587. },
  588. // 获取二级分类及分类商品列表
  589. getChildList(list, index) {
  590. if (this.tab_index != index) {
  591. // 切换tab回到顶部
  592. uni.pageScrollTo({
  593. scrollTop: 0,
  594. duration: 0
  595. })
  596. this.sort_list = [];
  597. }
  598. this.tab_index = index
  599. if (index > 0) {
  600. this.sort_obj = list
  601. if (this.sort_obj.children.length) {
  602. this.sortLen = this.sort_obj.children.length
  603. this.is_show_empty = false
  604. } else {
  605. this.is_show_empty = true
  606. }
  607. if (this.sort_obj.data) {
  608. var newList=[]
  609. this.laber_banner_list = JSON.parse(this.sort_obj.data)
  610. this.laber_banner_list.map((item)=>{
  611. if(item.imgUrl){
  612. newList.push(item)
  613. }
  614. })
  615. this.laber_banner_list=newList
  616. } else {
  617. this.laber_banner_list = []
  618. }
  619. if (this.sortLen > 9) {
  620. this.sort_obj.children = this.sort_obj.children.slice(0, 9)
  621. }
  622. this.is_show_index = false
  623. } else {
  624. this.is_show_index = true
  625. }
  626. this.isShow = false
  627. this.isShow = true
  628. },
  629. // 拨打客服电话
  630. callUp(tel) {
  631. uni.makePhoneCall({
  632. phoneNumber: tel.toString()
  633. })
  634. },
  635. toSearchPage() {
  636. uni.navigateTo({
  637. url: '/pages/search/search'
  638. })
  639. },
  640. // 相关跳转
  641. skipTo(type, url, productId, pid, labelName) {
  642. if (type == 'url') { //跳转链接地址
  643. if(!url){
  644. return
  645. }
  646. // #ifdef H5
  647. window.open(url)
  648. // #endif
  649. // #ifdef APP-PLUS
  650. plus.runtime.openURL(url) //这里默认使用外部浏览器打开而不是内部web-view组件打开
  651. // #endif
  652. // #ifdef MP
  653. uni.navigateTo({
  654. url: '/standard/index/skip_to?url=' + url
  655. })
  656. // #endif
  657. } else if (type == 'goods') { //跳转商品详情页
  658. uni.navigateTo({
  659. url: '/standard/point/product/detail?productId=' + productId + '&goodsId=' + url
  660. })
  661. } else if (type == 'keyword') { // 关键词
  662. uni.navigateTo({
  663. url: '/standard/point/search/search?keyword=' + url
  664. })
  665. } else if (type == 'category') { //跳转分类
  666. uni.navigateTo({
  667. url: '/standard/point/search/good_list?labelId=' + url + '&type=' + labelName
  668. })
  669. }
  670. },
  671. // 跳转商品详情页
  672. toGoodsDetail(productId, goodsId) {
  673. uni.navigateTo({
  674. url: '/pages/product/detail?productId=' + productId + '&goodsId=' + goodsId
  675. })
  676. },
  677. // 加入购物车
  678. addCart(productId, goodsId, item) {
  679. this.goods_info = item
  680. if (this.userInfo.access_token) {
  681. let param = {}
  682. param.url = 'v3/business/front/cart/add'
  683. param.method = 'POST'
  684. param.data = {
  685. productId: productId,
  686. number: 1
  687. }
  688. this.$request(param).then(res => {
  689. if (res.state == 200) {
  690. uni.showToast({
  691. title: res.msg,
  692. icon: 'none'
  693. })
  694. } else {
  695. uni.showToast({
  696. title: res.msg,
  697. icon: 'none',
  698. duration: 700
  699. })
  700. }
  701. })
  702. } else {
  703. let cart_list = {
  704. storeCartGroupList: [{
  705. promotionCartGroupList: [{
  706. cartList: [{
  707. buyNum: 1,
  708. goodsId: this.goods_info.goodsId,
  709. productId: this.goods_info.productId || this.goods_info.defaultProductId,
  710. productImage: this.goods_info.goodsPic ? this.goods_info.goodsPic : this.goods_info.goodsImage,
  711. goodsName: this.goods_info.goodsName,
  712. isChecked: 1,
  713. productPrice: this.goods_info.goodsPrice,
  714. // productStock: this.goods_info.productStock
  715. }],
  716. }],
  717. storeId: this.goods_info.storeId,
  718. storeName: this.goods_info.storeName,
  719. checkedAll: true
  720. }],
  721. checkedAll: true,
  722. invalidList: []
  723. }
  724. let local_cart_list = uni.getStorageSync('cart_list') //购物车列表本地缓存
  725. if (local_cart_list) {
  726. let tmp_list1 = []
  727. let tmp_list2 = []
  728. cart_list.storeCartGroupList.forEach(item => {
  729. item.promotionCartGroupList.forEach(item1 => {
  730. item1.cartList.forEach(item2 => {
  731. local_cart_list.storeCartGroupList.forEach(v => {
  732. v.promotionCartGroupList.forEach(v1 => {
  733. v1.cartList.forEach(v2 => {
  734. if (v2.productId == item2.productId && v.storeId == item.storeId) {
  735. tmp_list1.push(v)
  736. }
  737. })
  738. tmp_list2 = local_cart_list.storeCartGroupList.filter(v => {
  739. return v.storeId == item.storeId
  740. })
  741. })
  742. })
  743. })
  744. })
  745. })
  746. if (tmp_list1.length > 0 && tmp_list2.length > 0) { //同一店铺同一商品
  747. local_cart_list.storeCartGroupList.map(item => {
  748. item.promotionCartGroupList.map(item1 => {
  749. item1.cartList.map(item2 => {
  750. if (item2.productId == this.goods_info.productId && item.storeId == this.goods_info.storeId) {
  751. item2.buyNum += 1
  752. }
  753. })
  754. })
  755. })
  756. } else if (tmp_list1.length == 0 && tmp_list2.length > 0) { //同一店铺不同商品
  757. local_cart_list.storeCartGroupList.map(item => {
  758. if (item.storeId == this.goods_info.storeId) {
  759. item.promotionCartGroupList.map(item2 => {
  760. item2.cartList.push(cart_list.storeCartGroupList[0].promotionCartGroupList[0].cartList[0])
  761. })
  762. }
  763. })
  764. } else { //不同店铺不同商品
  765. local_cart_list.storeCartGroupList.push(cart_list.storeCartGroupList[0])
  766. }
  767. // 未登录购物车展示数据
  768. uni.setStorage({
  769. key: 'cart_list',
  770. data: local_cart_list,
  771. success: function() {
  772. //更新购物车数量和购物车数据
  773. }
  774. });
  775. } else {
  776. uni.setStorage({
  777. key: 'cart_list',
  778. data: cart_list,
  779. success: function() {
  780. //更新购物车数量和购物车数据
  781. }
  782. });
  783. }
  784. uni.showToast({
  785. title: '加入购物车成功!',
  786. icon: 'none'
  787. })
  788. }
  789. },
  790. //关闭首页广告屏
  791. close_openScreen() {
  792. this.pointIsCookie = false;
  793. },
  794. //点击广告屏跳转到详情页面
  795. gotoGoods_detail() {
  796. this.pointIsCookie = false;
  797. let osValue = this.home_page_img[0];
  798. this.diyNavToOfIntegral(osValue);
  799. },
  800. //积分商城模块跳转通用函数
  801. diyNavToOfIntegral(val){
  802. if (val.link_type == 'url') {
  803. //链接地址,只有h5可以跳转外部链接,其他端都不可以
  804. // #ifdef H5
  805. window.location.href = val.link_value;
  806. // #endif
  807. // #ifdef APP-PLUS
  808. plus.runtime.openURL(val.link_value) //这里默认使用外部浏览器打开而不是内部web-view组件打开
  809. // #endif
  810. // #ifdef MP
  811. uni.navigateTo({
  812. url: '/pages/index/skip_to?url=' + val.link_value
  813. })
  814. // #endif
  815. } else if (val.link_type == 'keyword') {
  816. //关键词
  817. uni.navigateTo({
  818. url: `/standard/point/search/search?keyword=${encodeURIComponent(val.link_value)}&source=search`
  819. });
  820. } else if (val.link_type == 'goods') {
  821. //商品
  822. uni.navigateTo({
  823. url: '/standard/point/product/detail?productId=' + val.info.productId
  824. })
  825. } else if (val.link_type == 'category') {
  826. //商品分类
  827. let url = `/standard/point/search/good_list?labelId=${val.info.labelId}&type=${val.info.labelName}`;
  828. if (val.info.grade == 3) {
  829. url += '&pid=' + val.info.pid;
  830. }
  831. uni.navigateTo({
  832. url: url
  833. })
  834. }
  835. },
  836. },
  837. // #ifndef MP
  838. // 标题栏input搜索框点击
  839. onNavigationBarSearchInputClicked: async function(e) {
  840. uni.navigateTo({
  841. url: `/pages/search/search`
  842. })
  843. },
  844. //点击导航栏 buttons 时触发
  845. onNavigationBarButtonTap(e) {
  846. const index = e.index;
  847. if (index === 0) {
  848. this.$api.msg('点击了扫描');
  849. } else if (index === 1) {
  850. // #ifdef APP-PLUS
  851. const pages = getCurrentPages();
  852. const page = pages[pages.length - 1];
  853. const currentWebview = page.$getAppWebview();
  854. currentWebview.hideTitleNViewButtonRedDot({
  855. index
  856. });
  857. // #endif
  858. uni.navigateTo({
  859. url: '/pages/notice/notice'
  860. })
  861. }
  862. },
  863. // #endif
  864. }
  865. </script>
  866. <style lang="scss">
  867. /deep/.uni-swiper-wrapper{
  868. border-radius: 5px!important;
  869. }
  870. // 开屏 -- start
  871. .container {
  872. width: 750rpx;
  873. margin: 0 auto;
  874. // position: relative;
  875. // background-color: #fff;
  876. /* #ifdef H5 */
  877. margin-top: -24rpx;
  878. /* #endif */
  879. /* #ifdef MP */
  880. margin-top: 10rpx;
  881. /* #endif */
  882. }
  883. .prevent {
  884. // width: 100vw;
  885. // // height: calc(100vh + 98rpx);
  886. // position: fixed;
  887. // top: 0;
  888. // left: 0;
  889. // overflow: hidden;
  890. }
  891. .show-dialog {
  892. animation: 100ms showDialog linear forwards;
  893. }
  894. .hide-dialog {
  895. animation: 100ms hideDialog linear forwards;
  896. }
  897. @keyframes hideDialog {
  898. 0% {
  899. opacity: 1;
  900. }
  901. 25% {
  902. opacity: 0.75;
  903. }
  904. 50% {
  905. opacity: 0.5;
  906. }
  907. 75% {
  908. opacity: 0.25;
  909. }
  910. 100% {
  911. opacity: 0;
  912. }
  913. }
  914. @keyframes showDialog {
  915. 0% {
  916. opacity: 0;
  917. }
  918. 25% {
  919. opacity: 0.25;
  920. }
  921. 50% {
  922. opacity: 0.5;
  923. }
  924. 75% {
  925. opacity: 0.75;
  926. }
  927. 100% {
  928. opacity: 1;
  929. }
  930. }
  931. .container .open_screen {
  932. width: 750rpx;
  933. height: 100vh;
  934. position: fixed;
  935. top: 0;
  936. left: 0;
  937. right: 0;
  938. margin: 0 auto;
  939. background-color: rgba(0, 0, 0, 0.3);
  940. z-index: 99999;
  941. }
  942. .container .open_screen .open_screen_con {
  943. maring: 0 auto;
  944. position: absolute;
  945. top: 50%;
  946. left: 50%;
  947. transform: translate(-50%, -50%);
  948. border-radius: 15rpx;
  949. }
  950. .container .open_screen .open_screen_con .open_screen_con_img {
  951. width: 100%;
  952. height: 100%;
  953. background-size: contain;
  954. border-radius: 15rpx;
  955. }
  956. .container .open_screen .open_screen_con .con_img {
  957. width: 58rpx;
  958. height: 58rpx;
  959. position: absolute;
  960. top: -58rpx;
  961. right: -58rpx;
  962. }
  963. .open_screen_con .con_img image {
  964. width: 100%;
  965. height: 100%;
  966. }
  967. // 开屏 -- end
  968. /* #ifdef H5 */
  969. .deco_wrap {
  970. margin-top: calc(var(--status-bar-height) + 87rpx) !important;
  971. }
  972. /* #endif */
  973. /* #ifdef MP */
  974. .deco_wrap {
  975. margin-top: calc(var(--status-bar-height) + 96rpx) !important;
  976. padding-top: 7rpx;
  977. }
  978. .deco_wrap2 {
  979. margin-top: 108rpx;
  980. }
  981. /* #endif */
  982. /* #ifdef APP-PLUS */
  983. .deco_wrap {
  984. margin-top: calc(var(--status-bar-height) + 155rpx) !important;
  985. }
  986. /* #endif */
  987. .container {
  988. // padding-top: 180rpx;
  989. padding-bottom: 20rpx;
  990. overflow-x: hidden;
  991. background-color: #F5F5F5;
  992. }
  993. /* #ifdef APP-PLUS */
  994. .container1 {
  995. width: 750rpx;
  996. padding-top: 0rpx !important;
  997. padding-bottom: 0;
  998. }
  999. /* #endif */
  1000. .mp-search-box {
  1001. position: fixed;
  1002. /* #ifndef APP-PLUS */
  1003. top: 0;
  1004. /* #endif */
  1005. /* #ifdef APP-PLUS */
  1006. top: var(--status-bar-height);
  1007. /* #endif */
  1008. // #ifdef APP-PLUS */
  1009. // top: var(--status-bar-height);
  1010. // /* #endif
  1011. z-index: 9999;
  1012. width: 750rpx;
  1013. height: 50px;
  1014. padding: 0 20rpx 0 20rpx;
  1015. display: flex;
  1016. box-sizing: border-box;
  1017. align-items: center;
  1018. background: $point-index-title-color;
  1019. .return {
  1020. width: 17rpx;
  1021. height: 29rpx;
  1022. }
  1023. .title {
  1024. width: 663rpx;
  1025. text-align: center;
  1026. font-size: 36rpx;
  1027. color: white;
  1028. }
  1029. .search {
  1030. width: 30rpx;
  1031. height: 30rpx;
  1032. }
  1033. }
  1034. page {
  1035. .topic_top {
  1036. padding-top: 0 !important;
  1037. }
  1038. .cate-section {
  1039. position: relative;
  1040. z-index: 5;
  1041. //border-radius: 16upx 16upx 0 0;
  1042. overflow-x: hidden;
  1043. }
  1044. .carousel-section {
  1045. padding: 0 20rpx;
  1046. box-sizing: border-box;
  1047. background-color: #FFFFFF;
  1048. .titleNview-placing {
  1049. padding-top: 0;
  1050. height: 0;
  1051. }
  1052. .carousel {
  1053. .carousel-item {
  1054. padding: 0;
  1055. }
  1056. }
  1057. .swiper-dots {
  1058. left: 45upx;
  1059. bottom: 40upx;
  1060. }
  1061. }
  1062. }
  1063. .search_img {
  1064. position: absolute;
  1065. width: 30rpx;
  1066. height: 36rpx;
  1067. left: 36rpx;
  1068. top: 50%;
  1069. transform: translateY(-50%);
  1070. z-index: 99;
  1071. }
  1072. page {
  1073. background: #f5f5f5;
  1074. }
  1075. .m-t {
  1076. margin-top: 16upx;
  1077. }
  1078. /* 头部 轮播图 */
  1079. .carousel-section {
  1080. position: relative;
  1081. padding-top: 10px;
  1082. .titleNview-placing {
  1083. height: var(--status-bar-height);
  1084. padding-top: 44px;
  1085. box-sizing: content-box;
  1086. }
  1087. .titleNview-background {
  1088. position: absolute;
  1089. top: 0;
  1090. left: 0;
  1091. width: 100%;
  1092. height: 100px;
  1093. transition: .4s;
  1094. border-radius: 0 0 30rpx 30rpx;
  1095. }
  1096. }
  1097. .carousel {
  1098. width: 100%;
  1099. height: 280upx;
  1100. .carousel-item {
  1101. width: 100%;
  1102. height: 100%;
  1103. // padding: 0 28upx !important;
  1104. overflow: hidden;
  1105. }
  1106. image {
  1107. width: 100%;
  1108. height: 100%;
  1109. border-radius: 10upx;
  1110. overflow: hidden;
  1111. }
  1112. }
  1113. .swiper-dots {
  1114. display: flex;
  1115. position: absolute;
  1116. left: 60upx;
  1117. bottom: 15upx;
  1118. width: 72upx;
  1119. height: 36upx;
  1120. background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAYAAADDhn8LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTk4MzlBNjE0NjU1MTFFOUExNjRFQ0I3RTQ0NEExQjMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTk4MzlBNjA0NjU1MTFFOUExNjRFQ0I3RTQ0NEExQjMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Q0E3RUNERkE0NjExMTFFOTg5NzI4MTM2Rjg0OUQwOEUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Q0E3RUNERkI0NjExMTFFOTg5NzI4MTM2Rjg0OUQwOEUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4Gh5BPAAACTUlEQVR42uzcQW7jQAwFUdN306l1uWwNww5kqdsmm6/2MwtVCp8CosQtP9vg/2+/gY+DRAMBgqnjIp2PaCxCLLldpPARRIiFj1yBbMV+cHZh9PURRLQNhY8kgWyL/WDtwujjI8hoE8rKLqb5CDJaRMJHokC6yKgSCR9JAukmokIknCQJpLOIrJFwMsBJELFcKHwM9BFkLBMKFxNcBCHlQ+FhoocgpVwwnv0Xn30QBJGMC0QcaBVJiAMiec/dcwKuL4j1QMsVCXFAJE4s4NQA3K/8Y6DzO4g40P7UcmIBJxbEesCKWBDg8wWxHrAiFgT4fEGsB/CwIhYE+AeBAAdPLOcV8HRmWRDAiQVcO7GcV8CLM8uCAE4sQCDAlHcQ7x+ABQEEAggEEAggEEAggEAAgQACASAQQCCAQACBAAIBBAIIBBAIIBBAIABe4e9iAe/xd7EAJxYgEGDeO4j3EODp/cOCAE4sYMyJ5cwCHs4rCwI4sYBxJ5YzC84rCwKcXxArAuthQYDzC2JF0H49LAhwYUGsCFqvx5EF2T07dMaJBetx4cRyaqFtHJ8EIhK0i8OJBQxcECuCVutxJhCRoE0cZwMRyRcFefa/ffZBVPogePihhyCnbBhcfMFFEFM+DD4m+ghSlgmDkwlOgpAl4+BkkJMgZdk4+EgaSCcpVX7bmY9kgXQQU+1TgE0c+QJZUUz1b2T4SBbIKmJW+3iMj2SBVBWz+leVfCQLpIqYbp8b85EskIxyfIOfK5Sf+wiCRJEsllQ+oqEkQfBxmD8BBgA5hVjXyrBNUQAAAABJRU5ErkJggg==);
  1121. background-size: 100% 100%;
  1122. .num {
  1123. width: 36upx;
  1124. height: 36upx;
  1125. border-radius: 50px;
  1126. font-size: 24upx;
  1127. color: #fff;
  1128. text-align: center;
  1129. line-height: 36upx;
  1130. }
  1131. .sign {
  1132. position: absolute;
  1133. top: 0;
  1134. left: 50%;
  1135. line-height: 36upx;
  1136. font-size: 12upx;
  1137. color: #fff;
  1138. transform: translateX(-50%);
  1139. }
  1140. }
  1141. /* 分类 */
  1142. .cate-section {
  1143. display: flex;
  1144. justify-content: space-around;
  1145. align-items: center;
  1146. // flex-wrap: wrap;
  1147. padding: 20rpx 0;
  1148. background: #fff;
  1149. .cate-item {
  1150. display: flex;
  1151. flex-direction: column;
  1152. align-items: center;
  1153. font-size: 26upx;
  1154. color: #303133;
  1155. flex: 1;
  1156. image {
  1157. overflow: visible;
  1158. }
  1159. }
  1160. .cate-item2 {
  1161. display: flex;
  1162. align-items: center;
  1163. font-size: 26upx;
  1164. color: #303133;
  1165. }
  1166. .cate_name {
  1167. // width: 78rpx;
  1168. }
  1169. /* 原图标颜色太深,不想改图了,所以加了透明度 */
  1170. image {
  1171. width: 88upx;
  1172. height: 88upx;
  1173. margin-bottom: 14upx;
  1174. border-radius: 50%;
  1175. }
  1176. }
  1177. .ad-1 {
  1178. width: 100%;
  1179. height: 210upx;
  1180. padding: 10upx 0;
  1181. background: #fff;
  1182. image {
  1183. width: 100%;
  1184. height: 100%;
  1185. }
  1186. }
  1187. .notice_box {
  1188. margin: 20rpx 20rpx 0 20rpx;
  1189. background: #FFFFFF;
  1190. border-radius: 14rpx;
  1191. // margin-bottom:20rpx;
  1192. .notice_wrap1 {
  1193. width: 100%;
  1194. height: 80rpx;
  1195. margin-top: 20rpx;
  1196. background-color: #fff;
  1197. display: flex;
  1198. align-items: center;
  1199. border-radius: 14rpx;
  1200. // border-radius: 6px;
  1201. .notice_img1 {
  1202. width: 127rpx;
  1203. height: 80rpx;
  1204. border-radius: 6px 0 0 6px;
  1205. }
  1206. .notice_content_wrap {
  1207. font-size: 28rpx;
  1208. font-weight: 600;
  1209. width: 530rpx;
  1210. white-space: nowrap;
  1211. text-overflow: ellipsis;
  1212. overflow: hidden;
  1213. margin-left: -16rpx;
  1214. .notice_content_title {
  1215. color: #E1261C;
  1216. }
  1217. .notice_content {
  1218. color: #666666;
  1219. }
  1220. }
  1221. .notice_wrap1_line {
  1222. width: 1rpx;
  1223. height: 34rpx;
  1224. background-color: rgba(0, 0, 0, 0.1);
  1225. margin-left: 6rpx;
  1226. }
  1227. .notice_more {
  1228. width: 80rpx;
  1229. text-align: center;
  1230. font-size: 29rpx;
  1231. color: #2E2E2E;
  1232. font-weight: 600;
  1233. }
  1234. }
  1235. .notice_wrap2 {
  1236. width: 100%;
  1237. height: 80rpx;
  1238. // margin-bottom: 20rpx;
  1239. background-color: #3A3A3A;
  1240. display: flex;
  1241. align-items: center;
  1242. box-shadow: 1px 6px 19px 1px rgba(86, 86, 86, 0.1);
  1243. // border-radius: 6px;
  1244. .notice_img2 {
  1245. width: 138rpx;
  1246. height: 80rpx;
  1247. border-radius: 6px 0 0 6px;
  1248. }
  1249. .notice_content_wrap2 {
  1250. font-size: 26rpx;
  1251. font-weight: 600;
  1252. width: 510rpx;
  1253. white-space: nowrap;
  1254. text-overflow: ellipsis;
  1255. overflow: hidden;
  1256. color: #fff;
  1257. margin-left: 5rpx;
  1258. }
  1259. .notice_wrap2_line {
  1260. width: 1rpx;
  1261. height: 38rpx;
  1262. background-color: #fff;
  1263. margin-left: 2rpx;
  1264. }
  1265. .notice_more {
  1266. width: 80rpx;
  1267. text-align: center;
  1268. font-size: 26rpx;
  1269. color: #fff;
  1270. font-weight: 600;
  1271. }
  1272. }
  1273. }
  1274. .service_wrap {
  1275. // width:100%;
  1276. padding: 20rpx;
  1277. font-size: 26rpx;
  1278. color: #333;
  1279. background-color: #fff;
  1280. display: flex;
  1281. align-items: center;
  1282. margin: 20rpx 20rpx 0 20rpx;
  1283. border-radius: 14rpx;
  1284. image {
  1285. width: 30rpx;
  1286. height: 32rpx;
  1287. margin-right: 10rpx;
  1288. }
  1289. }
  1290. .rich_text_wrap {
  1291. font-size: 28rpx;
  1292. background: #fff;
  1293. padding: 30rpx;
  1294. box-sizing: border-box;
  1295. margin-top: 20rpx;
  1296. }
  1297. .match_wrap {
  1298. padding: 20rpx;
  1299. box-sizing: border-box;
  1300. margin-top: 20rpx;
  1301. flex-direction: column;
  1302. background-color: #fff;
  1303. .match_top {
  1304. display: flex;
  1305. flex-direction: column;
  1306. background-color: #fff;
  1307. image {
  1308. width: 100%;
  1309. }
  1310. .match_image_wrap {
  1311. width: 100%;
  1312. display: flex;
  1313. justify-content: center;
  1314. .match_image {
  1315. margin: 0 auto;
  1316. }
  1317. }
  1318. .match_top_title {
  1319. text-align: center;
  1320. padding-bottom: 20rpx;
  1321. font-size: 32rpx;
  1322. color: #333;
  1323. }
  1324. .match_top_text {
  1325. padding: 20rpx 20rpx 0;
  1326. font-size: 28rpx;
  1327. color: #333;
  1328. white-space: nowrap;
  1329. text-overflow: ellipsis;
  1330. overflow: hidden;
  1331. }
  1332. }
  1333. .match_main_wrap {
  1334. background-color: #fff;
  1335. margin-top: 20rpx;
  1336. }
  1337. .match_main {
  1338. display: flex;
  1339. justify-content: space-between;
  1340. overflow-x: scroll;
  1341. box-sizing: border-box;
  1342. .match_item {
  1343. width: 222rpx;
  1344. height: 370rpx;
  1345. margin-right: 20rpx;
  1346. background-color: #fff;
  1347. border-radius: 15rpx;
  1348. position: relative;
  1349. .match_goods_img {
  1350. width: 222rpx;
  1351. height: 222rpx;
  1352. background-color: #ccc;
  1353. border-radius: 15rpx 15rpx 0 0;
  1354. image {
  1355. width: 222rpx;
  1356. height: 222rpx;
  1357. border-radius: 10rpx 10rpx 0 0;
  1358. }
  1359. }
  1360. .match_goods_name {
  1361. font-size: 28rpx;
  1362. color: #333;
  1363. text-overflow: -o-ellipsis-lastline;
  1364. overflow: hidden;
  1365. text-overflow: ellipsis;
  1366. display: -webkit-box;
  1367. -webkit-line-clamp: 2;
  1368. line-clamp: 2;
  1369. -webkit-box-orient: vertical;
  1370. box-sizing: border-box;
  1371. padding: 10rpx 0rpx 0 0rpx;
  1372. }
  1373. .match_goods_price {
  1374. font-size: 28rpx;
  1375. color: rgb(255, 43, 32);
  1376. font-weight: 600;
  1377. position: absolute;
  1378. bottom: 12rpx;
  1379. // left: 20rpx;
  1380. }
  1381. }
  1382. }
  1383. }
  1384. .subline_wrap {
  1385. padding: 30rpx 0;
  1386. background-color: #fff;
  1387. // margin: 20rpx 20rpx 0 20rpx;
  1388. .subline {
  1389. width: 100%;
  1390. border-bottom: 1px dotted #fff;
  1391. }
  1392. }
  1393. .carousel_bottom_wrap {
  1394. padding-bottom: 20rpx;
  1395. background-color: #fff;
  1396. display: flex;
  1397. justify-content: center;
  1398. margin-top: 20rpx;
  1399. .carousel_bottom {
  1400. width: 100%;
  1401. height: 340rpx;
  1402. margin-bottom: 20rpx;
  1403. padding-top: 20rpx;
  1404. }
  1405. }
  1406. .recommend_goods_wrap {
  1407. display: flex;
  1408. justify-content: space-between;
  1409. flex-wrap: wrap;
  1410. padding: 0 20rpx;
  1411. margin-top: 20rpx;
  1412. }
  1413. .carousel_img {
  1414. // height:340rpx !important;
  1415. }
  1416. .blank_wrap {
  1417. margin: 0 20rpx;
  1418. margin-top: 20rpx;
  1419. }
  1420. .nav_wrap {
  1421. width: 100%;
  1422. // padding: 0 20rpx;
  1423. box-sizing: border-box;
  1424. }
  1425. .nav_wrap::-webkit-scrollbar {
  1426. display: none;
  1427. }
  1428. .laber_banner_list {
  1429. margin-top: 98rpx;
  1430. /* #ifdef MP */
  1431. margin-top: 160rpx;
  1432. /* #endif */
  1433. /* #ifdef APP-PLUS */
  1434. margin-top: 220rpx;
  1435. /* #endif*/
  1436. }
  1437. .sort_sub_wrap {
  1438. width: 100%;
  1439. background: #F5F5F5;
  1440. .sort_sub_top {
  1441. // width: 89.5%;
  1442. display: flex;
  1443. // border-radius: 10rpx;
  1444. background-color: #fff;
  1445. padding: 0rpx 20rpx 20rpx 20rpx;
  1446. flex-wrap: wrap;
  1447. box-sizing: border-box;
  1448. .sort_sub_item {
  1449. display: flex;
  1450. flex-direction: column;
  1451. margin-right: 44rpx;
  1452. justify-content: center;
  1453. align-items: center;
  1454. margin-top: 20rpx;
  1455. .sort_sub_img {
  1456. width: 106rpx;
  1457. height: 106rpx;
  1458. border-radius: 50%;
  1459. margin-bottom: 20rpx;
  1460. image {
  1461. width: 106rpx;
  1462. height: 106rpx;
  1463. border-radius: 50%;
  1464. }
  1465. }
  1466. .sort_sub_name {
  1467. font-size: 24rpx;
  1468. color: #333;
  1469. font-weight: 600;
  1470. width: 96rpx;
  1471. white-space: nowrap;
  1472. text-overflow: ellipsis;
  1473. overflow: hidden;
  1474. word-break: break-all;
  1475. text-align: center;
  1476. }
  1477. }
  1478. }
  1479. .sort_sub_top>view:nth-child(5n) {
  1480. margin-right: 0 !important;
  1481. }
  1482. /* #ifdef APP-PLUS*/
  1483. &,.laber_banner_list{
  1484. .sort_sub_top{
  1485. padding-top: 20rpx;
  1486. }
  1487. }
  1488. /* #endif*/
  1489. .sort_sub_goods {
  1490. width: 100%;
  1491. padding: 0 20rpx;
  1492. box-sizing: border-box;
  1493. display: flex;
  1494. justify-content: space-between;
  1495. flex-wrap: wrap;
  1496. margin-top: 20rpx;
  1497. }
  1498. .sort_sub_goods>view:nth-child(2n) {
  1499. margin-right: 0 !important;
  1500. }
  1501. }
  1502. // 图片组合样式
  1503. .goods {
  1504. border: none;
  1505. background: #fff;
  1506. margin-top: 0;
  1507. }
  1508. .index_block {
  1509. width: 750rpx;
  1510. clear: both;
  1511. overflow: hidden;
  1512. background: #fff;
  1513. display: block;
  1514. }
  1515. .goods .content {
  1516. background: #f0f2f5;
  1517. clear: both;
  1518. overflow: hidden;
  1519. display: block;
  1520. }
  1521. .goods .goods-small.goods-item:nth-child(2n+1) {
  1522. padding-right: 8rpx;
  1523. }
  1524. .goods-small.goods-item {
  1525. overflow: hidden;
  1526. float: left;
  1527. width: 50%;
  1528. box-sizing: border-box;
  1529. padding-bottom: 8rpx;
  1530. position: relative;
  1531. -moz-box-sizing: border-box;
  1532. -webkit-box-sizing: border-box;
  1533. }
  1534. .goods-item navigator {
  1535. display: block;
  1536. background: #fff;
  1537. }
  1538. .goods-item-pic {
  1539. vertical-align: middle;
  1540. line-height: 0;
  1541. display: table-cell;
  1542. text-align: center;
  1543. width: calc(50vw - 30rpx);
  1544. height: calc(50vw - 30rpx);
  1545. }
  1546. .goods-item-pic image {
  1547. width: calc(50vw - 30rpx);
  1548. height: calc(50vw - 30rpx);
  1549. }
  1550. .goods-small .goods-item-name {
  1551. height: 66rpx;
  1552. font-size: 26rpx;
  1553. overflow: hidden;
  1554. text-overflow: ellipsis;
  1555. display: -webkit-box;
  1556. -webkit-line-clamp: 2;
  1557. -webkit-box-orient: vertical;
  1558. word-break: break-word;
  1559. color: #232326;
  1560. margin-top: 10rpx;
  1561. line-height: 33rpx;
  1562. margin-bottom: 6rpx;
  1563. padding: 0 8rpx;
  1564. }
  1565. .goods-item-price {
  1566. color: #f23030;
  1567. display: inline-block;
  1568. padding: 0 10rpx 0 8rpx;
  1569. position: relative;
  1570. top: 2rpx;
  1571. height: 50rpx;
  1572. line-height: 50rpx;
  1573. }
  1574. .goods-item-price .yens {
  1575. font-size: 26rpx;
  1576. }
  1577. .goods-item-price .bigprice {
  1578. font-size: 32rpx;
  1579. font-weight: bold;
  1580. display: inline-block;
  1581. }
  1582. .goods-big.goods-item {
  1583. overflow: hidden;
  1584. float: left;
  1585. width: 100%;
  1586. box-sizing: border-box;
  1587. padding-bottom: 8rpx;
  1588. position: relative;
  1589. -moz-box-sizing: border-box;
  1590. -webkit-box-sizing: border-box;
  1591. padding: 16rpx 16rpx 0;
  1592. }
  1593. .goods-item-name {
  1594. height: 66rpx;
  1595. font-size: 26rpx;
  1596. overflow: hidden;
  1597. text-overflow: ellipsis;
  1598. display: -webkit-box;
  1599. -webkit-line-clamp: 2;
  1600. -webkit-box-orient: vertical;
  1601. word-break: break-word;
  1602. color: #232326;
  1603. margin-top: 10rpx;
  1604. line-height: 34rpx;
  1605. margin-bottom: 6rpx;
  1606. padding: 0 8rpx;
  1607. }
  1608. .goods-big .goods-item-price {
  1609. color: #f23030;
  1610. display: inline-block;
  1611. padding: 0 10rpx 0 8rpx;
  1612. position: relative;
  1613. top: 2rpx;
  1614. height: 50rpx;
  1615. line-height: 50rpx;
  1616. }
  1617. .goods-big .goods-item-pic image {
  1618. width: 734rpx;
  1619. height: 734rpx;
  1620. padding: 0 8rpx;
  1621. }
  1622. .hide_title .goods-item .goods-item-name {
  1623. display: none !important;
  1624. }
  1625. .hide_price .goods-item .goods-item-price {
  1626. display: none !important;
  1627. }
  1628. .goods-list.goods-item .goods-item-pic {
  1629. float: left;
  1630. width: 214rpx !important;
  1631. height: 214rpx !important;
  1632. }
  1633. .goods-list.goods-item {
  1634. overflow: hidden;
  1635. float: left;
  1636. width: 100%;
  1637. box-sizing: border-box;
  1638. padding-bottom: 8rpx;
  1639. position: relative;
  1640. -moz-box-sizing: border-box;
  1641. -webkit-box-sizing: border-box;
  1642. background: #fff;
  1643. margin-bottom: 16rpx;
  1644. }
  1645. .goods-list.goods-item .goods-item-pic image {
  1646. width: 214rpx !important;
  1647. height: 214rpx !important;
  1648. }
  1649. .goods-list .goods-item-name {
  1650. padding-top: 40rpx;
  1651. }
  1652. .goods .new-content .goods-item.goods-list .goods-item-name {
  1653. padding-top: 10rpx;
  1654. }
  1655. /*图片组合样式 */
  1656. .modules-slide {
  1657. display: block;
  1658. }
  1659. .modules-slide .image-list.style0,
  1660. .modules-slide .image-list.style0 ul {
  1661. padding: 0;
  1662. margin: 0;
  1663. box-sizing: border-box;
  1664. }
  1665. .modules-slide .image-list.style0,
  1666. .modules-slide .image-list.style0 ul {
  1667. padding: 0;
  1668. margin: 0;
  1669. box-sizing: border-box;
  1670. display: block;
  1671. }
  1672. .modules-slide .image-list ul {
  1673. overflow: hidden;
  1674. box-sizing: border-box;
  1675. display: block;
  1676. }
  1677. .modules-slide .image-list.style0 ul li {
  1678. display: block;
  1679. box-sizing: border-box;
  1680. }
  1681. .modules-slide .image-list ul li navigator {
  1682. display: block;
  1683. }
  1684. .modules-slide .image-list ul li navigator image {
  1685. width: 100%;
  1686. background: #f1f1f1;
  1687. display: block !important;
  1688. }
  1689. .modules-slide image {
  1690. max-width: 100%;
  1691. height: auto;
  1692. vertical-align: middle;
  1693. display: inline-block !important;
  1694. }
  1695. .modules-slide .image-list {
  1696. overflow: hidden;
  1697. .tupianzuhe2 {
  1698. margin-bottom: 20rpx;
  1699. flex-wrap: wrap;
  1700. }
  1701. }
  1702. .modules-slide .image-list.style1 ul li {
  1703. display: block;
  1704. margin: 0 16rpx 16rpx;
  1705. }
  1706. .modules-slide .image-list.style1 ul li image {
  1707. height: 100%;
  1708. }
  1709. .modules-slide .image-list ul li navigator image {
  1710. width: 100%;
  1711. background: #f1f1f1;
  1712. display: block !important;
  1713. }
  1714. .modules-slide .image-list.style2 ul,
  1715. .modules-slide .image-list.style3 ul {
  1716. padding-right: 16rpx;
  1717. }
  1718. .modules-slide .image-list.style2 ul li {
  1719. box-sizing: border-box;
  1720. padding: 0 0 16rpx 16rpx;
  1721. width: 50%;
  1722. float: left;
  1723. }
  1724. .modules-slide .image-list.style3 ul li {
  1725. float: left;
  1726. width: 33.33333%;
  1727. box-sizing: border-box;
  1728. padding: 0 0 16rpx 16rpx;
  1729. }
  1730. .modules-slide .image-ad {
  1731. padding: 20rpx 0;
  1732. box-sizing: border-box;
  1733. display: block;
  1734. clear: both;
  1735. overflow: hidden;
  1736. .tupianzuhe04_left {
  1737. width: calc((750rpx - 60rpx)/2);
  1738. height: calc((750rpx - 60rpx)/2 + 20rpx);
  1739. margin-right: 20rpx;
  1740. margin-left: 20rpx;
  1741. image {
  1742. width: 100%;
  1743. height: 100%
  1744. }
  1745. }
  1746. .tupianzuhe04_right_item {
  1747. width: calc((750rpx - 60rpx)/2);
  1748. height: calc((750rpx - 60rpx)/4);
  1749. image {
  1750. width: 100%;
  1751. height: 100%
  1752. }
  1753. }
  1754. }
  1755. .modules-slide .image-ad>div {
  1756. float: left;
  1757. width: 50%;
  1758. box-sizing: border-box;
  1759. }
  1760. .modules-slide .image-ad div navigator {
  1761. display: block;
  1762. margin: 0 16rpx 16rpx 0;
  1763. box-sizing: border-box;
  1764. }
  1765. .modules-slide .images-tpl image {
  1766. width: 374rpx;
  1767. vertical-align: middle;
  1768. box-sizing: border-box;
  1769. }
  1770. .modules-slide .image-ad2 {
  1771. margin: 0 16rpx 0 0;
  1772. box-sizing: border-box;
  1773. display: block;
  1774. clear: both;
  1775. overflow: hidden;
  1776. }
  1777. .modules-slide .image-ad2 .clearfix {
  1778. display: block;
  1779. clear: both;
  1780. overflow: hidden;
  1781. }
  1782. .modules-slide .image-ad2 div:first-child navigator:nth-child(1),
  1783. .modules-slide .image-ad2 div:first-child navigator:nth-child(1) image {
  1784. width: 228rpx;
  1785. }
  1786. .modules-slide .image-ad2 div:first-child .big:nth-child(2),
  1787. .modules-slide .image-ad2 div:first-child .big:nth-child(2) image {
  1788. width: 473rpx;
  1789. }
  1790. .modules-slide .image-ad2 div navigator {
  1791. display: block;
  1792. float: left;
  1793. margin: 0 0 16rpx 16rpx;
  1794. box-sizing: border-box;
  1795. }
  1796. .modules-slide .images-tpl img {
  1797. width: 100%;
  1798. vertical-align: middle;
  1799. box-sizing: border-box;
  1800. }
  1801. .modules-slide .image-ad2 div:last-child navigator:nth-child(1),
  1802. .modules-slide .image-ad2 div:last-child navigator:nth-child(1) image {
  1803. width: 473rpx;
  1804. }
  1805. .modules-slide .image-ad2 div:last-child navigator:nth-child(2),
  1806. .modules-slide .image-ad2 div:last-child navigator:nth-child(2) image {
  1807. width: 228rpx;
  1808. }
  1809. .modules-slide .image-ad3 {
  1810. padding: 0 0 0 16rpx;
  1811. box-sizing: border-box;
  1812. display: block;
  1813. clear: both;
  1814. overflow: hidden;
  1815. }
  1816. .modules-slide .image-ad3 div {
  1817. width: 367rpx;
  1818. float: left;
  1819. box-sizing: border-box;
  1820. }
  1821. .modules-slide .image-ad3 div image {
  1822. width: 351rpx;
  1823. }
  1824. .modules-slide .image-ad3 div navigator {
  1825. padding: 0 16rpx 16rpx 0;
  1826. display: inline-block;
  1827. box-sizing: border-box;
  1828. }
  1829. .modules-slide .image-ad4 {
  1830. padding: 0 16rpx 16rpx 0;
  1831. box-sizing: border-box;
  1832. display: block;
  1833. }
  1834. .modules-slide .image-ad4 div {
  1835. float: left;
  1836. width: 33.33333%;
  1837. box-sizing: border-box;
  1838. }
  1839. .modules-slide .image-ad4 div navigator {
  1840. display: block;
  1841. margin: 0 0 16rpx 16rpx;
  1842. }
  1843. .countdown {
  1844. width: 100%;
  1845. height: 49.2rpx;
  1846. line-height: 49.2rpx;
  1847. font-size: 39.4rpx;
  1848. }
  1849. .countdown .countdown-name {
  1850. float: left;
  1851. display: block;
  1852. -webkit-transform: scale(0.8);
  1853. }
  1854. .countdown .countdown-main {
  1855. display: block;
  1856. -webkit-transform: scale(0.8);
  1857. }
  1858. .countdown .countdown-num {
  1859. background-color: #000000;
  1860. display: inline-block;
  1861. padding: 0 0rpx;
  1862. width: 25px;
  1863. height: 32.2rpx;
  1864. line-height: 32.2rpx;
  1865. }
  1866. .combine1 {
  1867. display: flex !important;
  1868. flex-direction: column !important;
  1869. text-align: center;
  1870. }
  1871. .combine2 {
  1872. display: flex !important;
  1873. }
  1874. // 推荐商品
  1875. .recommend_goods1 {
  1876. width: 100%;
  1877. height: 350rpx;
  1878. display: flex;
  1879. background-color: #fff;
  1880. border-radius: 20rpx;
  1881. margin-bottom: 20rpx;
  1882. border-radius: 20rpx;
  1883. .recommend_goods_img1 {
  1884. width: 350rpx;
  1885. height: 350rpx;
  1886. margin-right: 20rpx;
  1887. image {
  1888. width: 350rpx;
  1889. height: 350rpx;
  1890. background-color: #ccc;
  1891. }
  1892. }
  1893. .recommend_goods_right {
  1894. width: 100%;
  1895. height: 350rpx;
  1896. position: relative;
  1897. .recommend_goods_name {
  1898. font-size: 30rpx;
  1899. margin-top: 20rpx;
  1900. text-overflow: -o-ellipsis-lastline;
  1901. overflow: hidden;
  1902. text-overflow: ellipsis;
  1903. display: -webkit-box;
  1904. -webkit-line-clamp: 2;
  1905. line-clamp: 2;
  1906. -webkit-box-orient: vertical;
  1907. }
  1908. .recommend_goods_price {
  1909. position: absolute;
  1910. bottom: 80rpx;
  1911. left: 0;
  1912. color: #FC1C1C;
  1913. }
  1914. .recommend_goods_bottom {
  1915. width: 100%;
  1916. position: absolute;
  1917. bottom: 20rpx;
  1918. left: 0;
  1919. display: flex;
  1920. justify-content: space-between;
  1921. image {
  1922. width: 42rpx;
  1923. height: 42rpx;
  1924. margin-right: 20rpx;
  1925. }
  1926. }
  1927. }
  1928. }
  1929. .recommend_goods2 {
  1930. display: flex;
  1931. flex-direction: column;
  1932. width: 100%;
  1933. .recommend_goods_img2 {
  1934. width: 100%;
  1935. height: 702rpx;
  1936. image {
  1937. width: 100%;
  1938. height: 702rpx;
  1939. background-color: #ccc;
  1940. }
  1941. }
  1942. .recommend_goods_bottom2 {
  1943. width: 100%;
  1944. height: 204rpx;
  1945. padding: 20rpx;
  1946. box-sizing: border-box;
  1947. background-color: #fff;
  1948. position: relative;
  1949. .recommend_goods_name2 {
  1950. font-size: 30rpx;
  1951. text-overflow: -o-ellipsis-lastline;
  1952. overflow: hidden;
  1953. text-overflow: ellipsis;
  1954. display: -webkit-box;
  1955. -webkit-line-clamp: 2;
  1956. line-clamp: 2;
  1957. -webkit-box-orient: vertical;
  1958. }
  1959. .goods_bottom {
  1960. width: 100%;
  1961. display: flex;
  1962. flex-direction: column;
  1963. image {
  1964. width: 42rpx;
  1965. height: 42rpx;
  1966. }
  1967. }
  1968. }
  1969. }
  1970. .big_price {
  1971. font-size: 34rpx;
  1972. }
  1973. .small_price {
  1974. font-size: 24rpx;
  1975. }
  1976. .combination_style {
  1977. display: flex;
  1978. }
  1979. .combination_wrap {
  1980. width: 100%;
  1981. background-color: #fff;
  1982. box-sizing: border-box;
  1983. margin-top: 20rpx;
  1984. }
  1985. .combine6 {
  1986. display: flex;
  1987. flex-direction: column;
  1988. margin-right: 20rpx;
  1989. margin-top: 20rpx;
  1990. }
  1991. .scan_img {
  1992. width: 44rpx;
  1993. height: 44rpx;
  1994. position: absolute;
  1995. left: 15rpx;
  1996. }
  1997. .msg_img {
  1998. width: 50rpx;
  1999. height: 50rpx;
  2000. position: absolute;
  2001. right: 20rpx;
  2002. top: 50%;
  2003. transform: translateY(-50%);
  2004. image {
  2005. width: 50rpx;
  2006. height: 50rpx;
  2007. }
  2008. }
  2009. .combine3 {
  2010. width: calc((750rpx - 60rpx)/2);
  2011. margin-top: 20rpx;
  2012. }
  2013. .combine4 {
  2014. width: calc((750rpx - 80rpx)/3);
  2015. margin-top: 20rpx;
  2016. margin-left: 20rpx;
  2017. image {
  2018. width: 100%;
  2019. height: 100%;
  2020. }
  2021. }
  2022. .paddingTB20 {
  2023. padding: 0 20rpx;
  2024. }
  2025. .no_margin_right {
  2026. padding: 0px
  2027. }
  2028. .no_margin_right>view:nth-child(2n) {
  2029. margin-right: 0 !important;
  2030. }
  2031. .no_margin_right2>view:nth-child(3n) {
  2032. margin-right: 0 !important;
  2033. }
  2034. .see_more_wrap {
  2035. display: flex;
  2036. justify-content: center;
  2037. align-items: center;
  2038. flex-direction: column;
  2039. margin-top: 14rpx;
  2040. .more_icon_circle {
  2041. width: 106rpx;
  2042. height: 106rpx;
  2043. display: flex;
  2044. justify-content: center;
  2045. align-items: center;
  2046. border-radius: 50%;
  2047. background-color: #F8F8F8;
  2048. margin-bottom: 20rpx;
  2049. .more_icon {
  2050. width: 52rpx;
  2051. height: 14rpx;
  2052. }
  2053. }
  2054. .see_more_text {
  2055. font-size: 24rpx;
  2056. color: #333;
  2057. font-weight: 600;
  2058. }
  2059. }
  2060. .carousel-section /deep/ .uni-swiper__warp {
  2061. // margin-top: calc(44px + 70rpx) !important;
  2062. }
  2063. /* #ifdef APP-PLUS */
  2064. .laber_banner_list /deep/ .uni-swiper__warp {
  2065. padding-top: 14rpx;
  2066. }
  2067. /* #endif */
  2068. /* #ifdef H5 */
  2069. .carousel-section /deep/ .uni-swiper__warp {
  2070. margin-top: -2rpx !important;
  2071. padding-top: 8rpx !important;
  2072. }
  2073. /* #endif */
  2074. .combine5_wrap>view:nth-child(2n) {
  2075. margin-right: 0 !important;
  2076. }
  2077. .mp-search-box /deep/ .ser-input /deep/ .uni-input-wrapper /deep/ .uni-input-input {
  2078. background-color: #fff;
  2079. }
  2080. .search_input {
  2081. text-align: left;
  2082. }
  2083. .rec_goods_wrap {
  2084. width: 750rpx;
  2085. display: flex;
  2086. justify-content: space-between;
  2087. flex-wrap: wrap;
  2088. }
  2089. .city_wrap {
  2090. font-size: 30rpx;
  2091. display: flex;
  2092. align-items: center;
  2093. color: #fff;
  2094. flex-shrink: 0;
  2095. max-width: 58px;
  2096. white-space: nowrap;
  2097. text-overflow: ellipsis;
  2098. overflow: hidden;
  2099. display: inline-block;
  2100. }
  2101. .top_icon {
  2102. width: 24rpx;
  2103. height: 24rpx;
  2104. margin-left: 11rpx;
  2105. margin-right: 17rpx;
  2106. margin-top: 2rpx;
  2107. flex-shrink: 0;
  2108. }
  2109. .deco_wrap {
  2110. width: 750rpx;
  2111. }
  2112. /* ----TAB切换:---- */
  2113. .tab_nav {
  2114. margin-top: 100rpx;
  2115. }
  2116. .tab_nav_scroll {
  2117. white-space: nowrap;
  2118. }
  2119. .tab_nav_block {
  2120. display: inline-block;
  2121. width: 25%;
  2122. text-align: center;
  2123. }
  2124. .tab_nav_block_t {
  2125. color: #2D2D2D;
  2126. font-size: 28rpx;
  2127. padding-bottom: 14rpx;
  2128. margin: 0 50rpx 4rpx 50rpx
  2129. }
  2130. .tab_nav_block_on {
  2131. color: #333333;
  2132. font-weight: 700;
  2133. font-size: 32rpx;
  2134. margin-bottom: 8rpx;
  2135. }
  2136. .tab_nav_block_i {
  2137. color: #999999;
  2138. font-size: 22rpx;
  2139. padding: 4rpx 0;
  2140. margin: 5rpx 26rpx
  2141. }
  2142. .tab_nav_block_on2 {
  2143. background-color: #FA1C1C;
  2144. color: #FFFFFF;
  2145. border-radius: 16rpx;
  2146. }
  2147. // 短视频3d轮播
  2148. .swiper-block {
  2149. width: 100%;
  2150. display: flex;
  2151. justify-content: center;
  2152. align-items: center;
  2153. height: 346rpx;
  2154. margin: 0
  2155. }
  2156. .slide-image {
  2157. height: 320rpx;
  2158. width: 520rpx;
  2159. border-radius: 9rpx;
  2160. box-shadow: 0px 0px 30rpx rgba(0, 0, 0, .2);
  2161. margin: 0rpx 30rpx;
  2162. z-index: 1;
  2163. }
  2164. .active1 {
  2165. /* transform: scale(1.44); */
  2166. transition: all .2s ease-in 0s;
  2167. height: 100%;
  2168. width: 100%;
  2169. border-radius: 16rpx;
  2170. }
  2171. .active2 {
  2172. width: 100%;
  2173. height: 100%;
  2174. border-radius: 16rpx;
  2175. }
  2176. // 空页面
  2177. .empty_sort_page {
  2178. width: 100%;
  2179. // height: 100vh;
  2180. background: #F5F5F5;
  2181. display: flex;
  2182. flex-direction: column;
  2183. align-items: center;
  2184. padding-top: 340rpx;
  2185. .empty_img {
  2186. width: 210rpx;
  2187. height: 210rpx;
  2188. margin-bottom: 32rpx;
  2189. }
  2190. .empty_text {
  2191. font-size: 26rpx;
  2192. color: #999;
  2193. }
  2194. }
  2195. .scan,
  2196. .message {
  2197. margin-left: 18rpx;
  2198. display: flex;
  2199. align-items: center;
  2200. flex-direction: column;
  2201. flex-shrink: 0;
  2202. image {
  2203. width: 34rpx;
  2204. height: 34rpx;
  2205. }
  2206. text {
  2207. color: white;
  2208. font-size: 20rpx;
  2209. line-height: 22rpx;
  2210. margin-top: 6rpx;
  2211. }
  2212. }
  2213. .search_con {
  2214. position: relative;
  2215. flex: 1;
  2216. }
  2217. .svideo_person_num {
  2218. width: 40rpx;
  2219. height: 40rpx;
  2220. border-radius: 0 0 50% 0;
  2221. }
  2222. .swiper-item {
  2223. color: #fff;
  2224. overflow: hidden;
  2225. left: 40rpx !important;
  2226. right: 20rpx;
  2227. top: 20rpx;
  2228. bottom: 20rpx;
  2229. width: 80% !important;
  2230. height: 280rpx !important;
  2231. // transform: translate(80%, 0px) translateZ(0px);
  2232. }
  2233. .swiper-item1 {
  2234. color: #fff;
  2235. box-sizing: border-box;
  2236. height: 346rpx;
  2237. width: 346rpx !important;
  2238. top: 0rpx;
  2239. bottom: 0rpx;
  2240. overflow: hidden;
  2241. left: 80rpx;
  2242. }
  2243. // 专题页头部
  2244. .topic_top_bar {
  2245. width: 750rpx;
  2246. height: 88rpx;
  2247. background-color: #fff;
  2248. display: flex;
  2249. // justify-content: center;
  2250. align-items: center;
  2251. font-size: 30rpx;
  2252. color: #2d2d2d;
  2253. position: fixed;
  2254. top: 0;
  2255. /* #ifdef MP || APP-PLUS */
  2256. padding-top: 110rpx;
  2257. padding-bottom: 48rpx;
  2258. /* #endif */
  2259. left: 0;
  2260. font-weight: 600;
  2261. z-index: 99999;
  2262. margin: 0 auto;
  2263. right: 0;
  2264. }
  2265. .svideo2_wrap /deep/ .uni-scroll-view /deep/ .uni-scroll-view /deep/ .uni-scroll-view-content>view:nth-last-child(1) {
  2266. margin-right: 0 !important;
  2267. }
  2268. .top_swiper_style1 {
  2269. background: $point-index-title-color;
  2270. }
  2271. .top_swiper_style2 {
  2272. background: linear-gradient($point-index-title-color 0%, $point-index-title-color 42%, #fff 100%);
  2273. }
  2274. .svideo4_wrap /deep/ .uni-scroll-view /deep/ .uni-scroll-view /deep/ .uni-scroll-view-content>view:nth-last-child(1) {
  2275. margin-right: 0 !important;
  2276. }
  2277. .recommond_goods3_wrap {
  2278. display: flex;
  2279. justify-content: space-between;
  2280. }
  2281. .have_sold {
  2282. font-size: 24rpx;
  2283. color: #9a9a9a;
  2284. }
  2285. .topic_back_icon {
  2286. width: 60rpx;
  2287. height: 38rpx;
  2288. padding-left: 20rpx;
  2289. }
  2290. .topic_name {
  2291. width: 100%;
  2292. text-align: center;
  2293. margin-left: -58rpx;
  2294. }
  2295. .hide_sold_wrap {
  2296. width: 100%;
  2297. position: absolute;
  2298. bottom: 20rpx;
  2299. left: 0;
  2300. display: flex;
  2301. justify-content: space-between;
  2302. }
  2303. // 导航分组
  2304. .nav_group {
  2305. padding: 0 86rpx;
  2306. display: flex;
  2307. flex-wrap: wrap;
  2308. justify-content: space-between;
  2309. .nav_group_item {
  2310. display: flex;
  2311. align-items: center;
  2312. justify-content: center;
  2313. padding-top: 40rpx;
  2314. margin-bottom: 40rpx;
  2315. image {
  2316. width: 90rpx;
  2317. height: 90rpx;
  2318. border-radius: 50%;
  2319. margin-right: 20rpx;
  2320. }
  2321. .nav_group_name {
  2322. font-size: 26rpx;
  2323. color: #333;
  2324. }
  2325. }
  2326. .nav_group_item:nth-last-child(1) {
  2327. margin-right: 0;
  2328. }
  2329. }
  2330. .nav_group>view:nth-child(2n) {
  2331. margin-right: 0;
  2332. }
  2333. // 导航分组end
  2334. .rec_goods_wrap>view:nth-child(2n) {
  2335. margin-right: 0 !important;
  2336. }
  2337. .carousel-section /deep/ .uni-swiper__warp /deep/ .uni-swiper__dots-box /deep/ .uni-swiper__dots-item {
  2338. width: 16rpx !important;
  2339. }
  2340. .deco_wrap_no_top_cat {
  2341. margin-top: 38rpx !important;
  2342. /* #ifdef MP || APP-PLUS */
  2343. margin-top: 94rpx !important;
  2344. /* #endif */
  2345. }
  2346. .rich_text /deep/ div .ql-align-center {
  2347. text-align: center;
  2348. }
  2349. .rich_text /deep/ div .ql-align-right {
  2350. text-align: right;
  2351. }
  2352. .rich_text /deep/ div .ql-align-left {
  2353. text-align: left;
  2354. }
  2355. /* #ifdef MP*/
  2356. .rich_text {
  2357. text-align: center;
  2358. }
  2359. /* #endif */
  2360. /* #ifdef APP-PLUS*/
  2361. .deco_carousel-section{
  2362. padding-top: 0!important;
  2363. }
  2364. /* #endif */
  2365. </style>