index.html.vue 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710
  1. <template>
  2. <ShopPageHead></ShopPageHead>
  3. <main class="index_main" id="all_vue">
  4. <HomeAdvertising :imgurl="adImg1"></HomeAdvertising>
  5. <ShopSubMenu></ShopSubMenu>
  6. <section class="shop_1_box clearfix">
  7. <div class="shop_2_left clearfix">
  8. <div class="shop_2_left_name_box phone_none">
  9. <label class="shop_2_left_name">商城公告:</label>
  10. <span class="shop_2_left_name_box_a dot1" @click="ShowDialog = true" v-if="DialogData">
  11. {{ DialogData.title }}
  12. </span>
  13. </div>
  14. <div class="phone_shop_2_left_name_box pc_none">
  15. <label class="phone_shop_2_left_name">
  16. <!-- 商城公告: -->
  17. </label>
  18. <span class="phone_shop_2_left_name_tag" @click="ShowDialog_phone = true" v-if="DialogData"> &gt; </span>
  19. <span class="phone_shop_2_left_name_box_a dot1" @click="ShowDialog_phone = true" v-if="DialogData">
  20. {{ DialogData.title }}
  21. </span>
  22. </div>
  23. <div class="shop_ul_img_1 clearfix">
  24. <ShopSwiperXcShop :data="boxData1_data1" :data2="boxData1_data2" :data3="boxData1_data3"></ShopSwiperXcShop>
  25. </div>
  26. </div>
  27. <div class="shop_3_right clearfix">
  28. <div class="phone_roll_out pc_none">
  29. <div class="phone_roll_box">
  30. <div class="phone_roll_head">供应商品</div>
  31. <div class="phone_roll_ul">
  32. <el-carousel :interval="933993" height="28vw" indicator-position="outside" @change="change_fun">
  33. <el-carousel-item>
  34. <div class="phone_roll_li" v-for="(item,index) in boxData2.slice(0, 2)">
  35. <nuxtLink
  36. :to="getShopPathDetail1(item)"
  37. class="phone_roll_li_a"
  38. >
  39. <img class="phone_roll_li_img" :src="item.imgurl" title="" alt="">
  40. <div class="phone_roll_ul_li_dot1">
  41. {{ item.name }}
  42. </div>
  43. </nuxtLink>
  44. </div>
  45. </el-carousel-item>
  46. <el-carousel-item>
  47. <div class="phone_roll_li" v-for="(item,index) in boxData2.slice(2, 4)">
  48. <nuxtLink
  49. :to="getShopPathDetail1(item)"
  50. class="phone_roll_li_a"
  51. >
  52. <img class="phone_roll_li_img" :src="item.imgurl" title="" alt="">
  53. <div class="phone_roll_ul_li_dot1">
  54. {{ item.name }}
  55. </div>
  56. </nuxtLink>
  57. </div>
  58. </el-carousel-item>
  59. <el-carousel-item>
  60. <div class="phone_roll_li" v-for="(item,index) in boxData2.slice(4,6)">
  61. <nuxtLink
  62. :to="getShopPathDetail1(item)"
  63. class="phone_roll_li_a"
  64. >
  65. <img class="phone_roll_li_img" :src="item.imgurl" title="" alt="">
  66. <div class="phone_roll_ul_li_dot1">
  67. {{ item.name }}
  68. </div>
  69. </nuxtLink>
  70. </div>
  71. </el-carousel-item>
  72. </el-carousel>
  73. </div>
  74. </div>
  75. <div class="phone_roll_box">
  76. <div class="phone_roll_head">求购商品</div>
  77. <div class="phone_roll_ul">
  78. <el-carousel :interval="933993" height="28vw" indicator-position="outside" @change="change_fun">
  79. <el-carousel-item>
  80. <div class="phone_roll_li" v-for="(item,index) in boxData3.slice(0, 2)">
  81. <nuxtLink
  82. :to="getShopPathDetail1(item)"
  83. class="phone_roll_li_a"
  84. >
  85. <img class="phone_roll_li_img" :src="item.imgurl" title="" alt="">
  86. <div class="phone_roll_ul_li_dot1">
  87. {{ item.name }}
  88. </div>
  89. </nuxtLink>
  90. </div>
  91. </el-carousel-item>
  92. <el-carousel-item>
  93. <div class="phone_roll_li" v-for="(item,index) in boxData3.slice(2, 4)">
  94. <nuxtLink
  95. :to="getShopPathDetail1(item)"
  96. class="phone_roll_li_a"
  97. >
  98. <img class="phone_roll_li_img" :src="item.imgurl" title="" alt="">
  99. <div class="phone_roll_ul_li_dot1">
  100. {{ item.name }}
  101. </div>
  102. </nuxtLink>
  103. </div>
  104. </el-carousel-item>
  105. <el-carousel-item>
  106. <div class="phone_roll_li" v-for="(item,index) in boxData3.slice(4,6)">
  107. <nuxtLink
  108. :to="getShopPathDetail1(item)"
  109. class="phone_roll_li_a"
  110. >
  111. <img class="phone_roll_li_img" :src="item.imgurl" title="" alt="">
  112. <div class="phone_roll_ul_li_dot1">
  113. {{ item.name }}
  114. </div>
  115. </nuxtLink>
  116. </div>
  117. </el-carousel-item>
  118. </el-carousel>
  119. </div>
  120. </div>
  121. </div>
  122. <div class="choice_1_box clearfix phone_none">
  123. <div class="choice_1_btn_box clearfix">
  124. <div class="choice_1_btn"
  125. :class="{ choice_1_btn_only: choice_1_num == 1 }"
  126. @mouseover="choice_1_num = 1">
  127. <span class="choice_1_btn_a">供应商品</span>
  128. </div>
  129. <div class="choice_1_btn"
  130. :class="{ choice_1_btn_only: choice_1_num == 2 }"
  131. @mouseover="choice_1_num = 2">
  132. <span class="choice_1_btn_a">求购商品</span>
  133. </div>
  134. </div>
  135. <div class="choice_1_card_box">
  136. <div class="shop_ul_img_2 choice_1_card clearfix" v-show="choice_1_num == 1">
  137. <div class="shop_li_img_2" v-for="(item,index) in boxData2">
  138. <nuxtLink
  139. :to="getShopPathDetail1(item)"
  140. class="shop_li_img_2_a"
  141. >
  142. <div class="shop_li_img_2_num"> {{ index + 1 }} </div>
  143. <div class="shop_li_img_2_right clearfix">
  144. <img class="shop_li_img_2_img" :src="item.imgurl" :alt="item.name">
  145. <div class="shop_li_img_2_text">
  146. {{item.name}}
  147. </div>
  148. </div>
  149. </nuxtLink>
  150. </div>
  151. </div>
  152. <div class="shop_ul_img_2 choice_1_card clearfix" v-show="choice_1_num == 2">
  153. <div class="shop_li_img_2" v-for="(item,index) in boxData3">
  154. <nuxtLink
  155. :to="getShopPathDetail1(item)"
  156. class="shop_li_img_2_a"
  157. >
  158. <div class="shop_li_img_2_num"> {{ index + 1 }} </div>
  159. <div class="shop_li_img_2_right clearfix">
  160. <img class="shop_li_img_2_img" :src="item.imgurl" :alt="item.name">
  161. <div class="shop_li_img_2_text">
  162. {{item.name}}
  163. </div>
  164. </div>
  165. </nuxtLink>
  166. </div>
  167. </div>
  168. </div>
  169. </div>
  170. </div>
  171. </section>
  172. <section class="shop_2_box clearfix">
  173. <div class="shop_name_box">
  174. <div class="shop_name">
  175. <span class="shop_name_box_a">为你精选</span>
  176. </div>
  177. <div class="shop_name_right">
  178. </div>
  179. </div>
  180. <div class="shop_ul_img_3 clearfix">
  181. <div class="shop_li_img_3" v-for="(item,index) in boxData4">
  182. <NuxtLink
  183. :to="getShopPathDetail1(item)"
  184. class="shop_li_img_3_a"
  185. :title="item.name"
  186. >
  187. <img class="shop_li_img_3_img" :src="item.imgurl" alt="">
  188. <div class="shop_li_img_3_dot2 dot2">
  189. {{ item.name }}
  190. </div>
  191. <div class="shop_li_img_3_hover" v-if="index == 0">
  192. <div class="shop_li_img_3_hover_dot1 dot1">
  193. {{ item.name }}
  194. </div>
  195. </div>
  196. </NuxtLink>
  197. </div>
  198. </div>
  199. </section>
  200. <section class="shop_3_box clearfix">
  201. <div class="shop_name_box">
  202. <div class="shop_name">
  203. <span class="shop_name_box_a">热门产品</span>
  204. </div>
  205. <div class="shop_name_right"></div>
  206. </div>
  207. <div class="shop_ul_img_3_box_2 clearfix">
  208. <section class="shop_hot_door_box clearfix" v-for="item in boxData5">
  209. <NuxtLink
  210. :to="getShopPathDetail1(item)"
  211. class="shop_hot_door_a"
  212. :title="item.name"
  213. >
  214. <img class="shop_hot_door_img" :src="item.imgurl" title="" alt="">
  215. <div class="shop_hot_door_left">
  216. <h4 class="shop_hot_door_h4">乡村商城热门产品</h4>
  217. <div class="shop_hot_door_title">性价比高</div>
  218. <div class="shop_hot_door_btn">点击查看</div>
  219. </div>
  220. </NuxtLink>
  221. </section>
  222. <div class="shop_li_img_3" v-for="(per_obj, per_index) in 2" :key="per_obj" v-show="false">
  223. <!--占位-->
  224. </div>
  225. <div class="shop_li_img_3" v-for="item in boxData5data2">
  226. <NuxtLink
  227. :to="getShopPathDetail1(item)"
  228. class="shop_alert_img_li_a"
  229. :title="item.name"
  230. >
  231. <img class="shop_li_img_3_img" :src="item.imgurl" alt="item.name">
  232. <div class="shop_li_img_3_dot2 dot2">
  233. {{ item.name }}
  234. </div>
  235. </NuxtLink>
  236. </div>
  237. </div>
  238. </section>
  239. <section class="shop_4_box clearfix">
  240. <div class="shop_name_box">
  241. <div class="shop_name">
  242. <span class="shop_name_box_a">热搜商品</span>
  243. </div>
  244. <div class="shop_name_right"> </div>
  245. </div>
  246. <div class="shop_ul_img_3 clearfix">
  247. <div class="shop_li_img_3" v-for="item in boxData6">
  248. <NuxtLink
  249. :to="getShopPathDetail1(item)"
  250. class="shop_li_img_3_a"
  251. :title="item.name"
  252. >
  253. <img class="shop_li_img_3_img" :src="item.imgurl" alt="item.name">
  254. <div class="shop_li_img_3_dot2 dot2">
  255. {{ item.name}}
  256. </div>
  257. </NuxtLink>
  258. </div>
  259. </div>
  260. </section>
  261. <!-- 最新发布 -->
  262. <!-- 热搜商品 -->
  263. <section class="shop_5_box clearfix">
  264. <div class="shop_name_box">
  265. <div class="shop_name"><a class="shop_name_box_a" href="" title="">最新发布</a></div>
  266. <div class="shop_name_right"> </div>
  267. </div>
  268. <!--热搜商品-->
  269. <div class="shop_ul_img_3_3 clearfix">
  270. <div class="shop_li_img_3" v-for="item in boxData7" :key="per_obj">
  271. <NuxtLink
  272. :to="getShopPathDetail1(item)"
  273. class="shop_li_img_3_a"
  274. :title="item.name"
  275. >
  276. <img class="shop_li_img_3_img" :src="item.imgurl" alt="item.name">
  277. <div class="shop_li_img_3_dot2 dot2">
  278. {{ item.name }}
  279. </div>
  280. </NuxtLink>
  281. </div>
  282. </div>
  283. <!--热搜商品-->
  284. </section>
  285. <!-- 热搜商品 -->
  286. </main>
  287. <!-- 页面底部 -->
  288. <HomeFoot></HomeFoot>
  289. <!--公告弹出框-->
  290. <el-dialog
  291. class="shop_notice_box"
  292. v-if="DialogData"
  293. v-model="ShowDialog"
  294. :title="DialogData.title"
  295. width="50%"
  296. :before-close="handleClose"
  297. center
  298. >
  299. <div v-html="DialogData.content" class="shop_notice_content"></div>
  300. </el-dialog>
  301. <!--公告弹出框 phone-->
  302. <el-dialog
  303. class="shop_notice_box"
  304. v-if="DialogData"
  305. v-model="ShowDialog_phone"
  306. :title="DialogData.title"
  307. width="92%" top="11%"
  308. :before-close="handleClose"
  309. center
  310. >
  311. <div v-html="DialogData.content" class="shop_notice_content"></div>
  312. </el-dialog>
  313. </template>
  314. <script setup>
  315. // 引入全局状态
  316. //1.页面必备方法 start ---------------------------------------->
  317. import { ref, onMounted } from 'vue'
  318. import { ElRadio, ElRadioGroup, ElMessage, ElDialog} from 'element-plus'
  319. const radio1 = ref('1')
  320. // vue选项卡
  321. const choice_1_num = ref(1)
  322. //1.页面必备方法 end ---------------------------------------->
  323. //2.获得所有数据 start ---------------------------------------->
  324. //模块1 最新数据 轮埠图
  325. const boxData1_data1 = ref([])
  326. const boxData1_data2 = ref([])
  327. const boxData1_data3 = ref([])
  328. //模块2 供应商品
  329. const boxData2 = ref([])
  330. //模块3 求购商品
  331. const boxData3 = ref([])
  332. //模块4 为你精选
  333. const boxData4 = ref([])
  334. //模块5 热门产品
  335. const boxData5 = ref([])
  336. const boxData5data2 = ref([])
  337. //模块6 热搜商品
  338. const boxData6 = ref([])
  339. //模块7 最新发布 图文
  340. const boxData7 = ref([])
  341. //公告
  342. const DialogData = ref("")
  343. const DialogData_phone = ref("")
  344. const ShowDialog = ref(false)
  345. const ShowDialog_phone = ref(false)
  346. //创建请求数据json
  347. let getJson = [
  348. {"level":"4,0,24"},//最新数据
  349. {"level":"5,0,6"},//供应商品
  350. {"level":"6,0,6"},//求购商品
  351. {"level":"1,0,6"},//为你精选
  352. {"level":"2,0,11"},//热门产品
  353. {"level":"3,0,6"},//热搜商品
  354. ]
  355. let jsonString = JSON.stringify(getJson)
  356. //获取所有数据
  357. async function getPageAllData() {
  358. const mkdata = await requestDataPromise('/web/getWebsiteshop', {
  359. method: 'GET',
  360. query: {
  361. 'catid': 346,
  362. 'id': jsonString,
  363. },
  364. });
  365. if (mkdata.code == 200) {
  366. console.log(mkdata)
  367. //最新数据1
  368. for(let index in mkdata.data.goods[0]){
  369. //取出前面15个放到boxData1中
  370. if(index < 5){
  371. boxData1_data1.value.push(mkdata.data.goods[0][index])
  372. }else if(index >= 5 && index < 10){
  373. boxData1_data2.value.push(mkdata.data.goods[0][index])
  374. }else if(index >= 10 && index < 15){
  375. boxData1_data3.value.push(mkdata.data.goods[0][index])
  376. }
  377. }
  378. //最新数据2
  379. boxData7.value = mkdata.data.goods[0];
  380. //供应商品
  381. boxData2.value = mkdata.data.goods[1];
  382. //求购商品
  383. boxData3.value = mkdata.data.goods[2];
  384. //为你精选
  385. boxData4.value = mkdata.data.goods[3];
  386. //热门产品
  387. for(let index in mkdata.data.goods[4]){
  388. if(index < 1){
  389. boxData5.value.push(mkdata.data.goods[4][index])
  390. }else{
  391. boxData5data2.value.push(mkdata.data.goods[4][index])
  392. }
  393. }
  394. //热搜商品
  395. boxData6.value = mkdata.data.goods[5];
  396. //通知公告
  397. DialogData.value = mkdata.data.article;
  398. } else {
  399. ElMessage.error(mkdata.message)
  400. }
  401. }
  402. getPageAllData();
  403. //2.获得所有数据 end ---------------------------------------->
  404. //3.广告 start ---------------------------------------->
  405. //获得所有广告
  406. let adImg1 = ref({})
  407. onMounted(async () => {
  408. const { $webUrl, $CwebUrl } = useNuxtApp();
  409. //从客户端启动广告
  410. //广告1
  411. let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=xcw_shopcategory_0001`
  412. const responseAd1 = await fetch(url, {
  413. headers: {
  414. 'Content-Type': 'application/json',
  415. 'Userurl': $CwebUrl,
  416. 'Origin': $CwebUrl
  417. }
  418. });
  419. const resultAd1 = await responseAd1.json();
  420. adImg1.value = resultAd1.data[0];
  421. })
  422. //3.广告 end ---------------------------------------->
  423. useSeoMeta({
  424. title: "",
  425. meta: [
  426. { name: 'keywords', content: "", tagPriority: 10 },
  427. { name: 'description', content: "", tagPriority: 10 },
  428. { name: 'viewport', content: 'width=device-width,initial-scale=1,user-scalable=no',tagPriority: 10 }
  429. ]
  430. });
  431. //4.设置seo信息 start---------------------------------------->
  432. //获得当前的完整路径
  433. const route = useRoute();
  434. const fullPath = route.path;
  435. //拆分,取出来中间这一段,然后提取数字部分
  436. const segments = fullPath.split('/');
  437. const targetSegment = segments[1];
  438. const articleId = ref(0);
  439. //通过导航路径反向查询导航id
  440. const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
  441. method: 'GET',
  442. query: {
  443. 'pinyin': targetSegment,
  444. },
  445. });
  446. if (getRouteId.code == 200) {
  447. articleId.value = getRouteId.data.category_id
  448. } else {
  449. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  450. console.log("错误位置:通过url路径查询导航池id")
  451. console.log("后端错误反馈:", getRouteId.message)
  452. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  453. }
  454. //4.1 设置seo信息
  455. const setData = await requestDataPromise('/web/getWebsiteCategoryHead', {
  456. method: 'GET',
  457. query: {
  458. 'catid': articleId.value
  459. },
  460. });
  461. if (setData.code == 200) {
  462. let seoTitle = setData.data.seo_title;
  463. let seoDescription = setData.data.seo_description;
  464. let seoKeywords = setData.data.seo_keywords;
  465. let seoSuffix = setData.data.suffix;
  466. let seoName = setData.data.website_name;
  467. useSeoMeta({
  468. title: seoTitle + "_" + seoName + "_" + seoSuffix,
  469. meta: [
  470. { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
  471. { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
  472. { name: 'viewport', content:"width=device-width,initial-scale=1,user-scalable=no"}
  473. ]
  474. });
  475. } else {
  476. // console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  477. // console.log("错误位置:设置列表页面SEO数据")
  478. // console.log("后端错误反馈:", setData.message)
  479. // console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  480. }
  481. //4.设置seo信息 end---------------------------------------->
  482. </script>
  483. <style lang="less" scoped>
  484. @import '@/assets/css/shop/index.less';
  485. </style>
  486. <style lang="less" scoped>
  487. @media screen and (min-width:801px){/*pc*/
  488. .pc_none{display:none;}
  489. }
  490. @media screen and (max-width:800px){/*ipad_phone*/
  491. .index_main{width:100%;margin:0px auto;}
  492. .shop_2_left{width:100%;float:none;}
  493. .shop_1_box{ margin-top:8px;}
  494. .phone_shop_2_left_name_box{
  495. height:33px;width:92%;background:#A01C0E;
  496. padding:0px 4%;box-sizing:border-box;
  497. margin:0px auto;
  498. .phone_shop_2_left_name{
  499. height:100%;line-height:33px;color:#fff;font-size:16px;float:left;margin-right:8px;
  500. padding-right:20px;
  501. background:url(../../public/image/3.png) no-repeat right center;
  502. background-size:auto 18px;
  503. }
  504. .phone_shop_2_left_name_tag{height:100%;line-height:33px;color:#fff;font-size:22px;float:right;margin-left:8px;}
  505. .phone_shop_2_left_name_box_a{display:block;height:100%;line-height:33px;color:#fff;font-size:14px;}
  506. }
  507. .shop_ul_img_1{
  508. width:92%;margin:10px auto;
  509. }
  510. .shop_3_right{width:92%;float:none;margin:0px auto 8px; }
  511. .phone_roll_out{
  512. overflow:hidden;
  513. .phone_roll_box{width:49%;box-sizing:border-box;border:solid 4px #A01C0E;border-radius:4px;
  514. background:#A01C0E;}
  515. .phone_roll_box:nth-of-type(odd){float:left;}
  516. .phone_roll_box:nth-of-type(even){float:right;}
  517. .phone_roll_head{height:33px;line-height:33px;color:#fff;font-size:16px;
  518. font-style:italic;text-indent:11px;}
  519. .phone_roll_ul{overflow:hidden;background:#fff7ed;border-radius:4px;}
  520. .phone_roll_li{width:44%;box-sizing:border-box; }
  521. .phone_roll_li:nth-of-type(odd){float:left;margin-left:3%;}
  522. .phone_roll_li:nth-of-type(even){float:right;margin-right:3%;}
  523. .phone_roll_li_a{display:block;width:100%;height:100%;}
  524. .phone_roll_li_img{display:block;width:100%;height:20vw;margin-top:2vw;}
  525. .phone_roll_ul_li_dot1{height:5vw;line-height:5vw;color:#A01C0E;font-size:3vw;text-align:center;
  526. margin:1vw 0;
  527. word-break: keep-all; white-space: nowrap;overflow:hidden;text-overflow:ellipsis;
  528. }
  529. /deep/.el-carousel__arrow--left{display:none;}
  530. /deep/.el-carousel__arrow--right{display:none;}
  531. /deep/.el-carousel__indicators--outside button{width:3vw;height:3vw;border-radius:50%;background:#e98008;margin:0px 1vw;}
  532. /deep/.el-carousel__indicator.is-active button{background:#ffc62e;}
  533. }
  534. .shop_2_box{width:92%;margin:10px auto;}
  535. .shop_name_box .shop_name{height:33px;line-height:33px;}
  536. .shop_name_box .shop_name_box_a{height:33px;line-height:33px;font-size:14px;font-weight:normal;display:block;}
  537. .shop_name_box{overflow:hidden;border-bottom:1px solid #E6E6E6;}
  538. .shop_name_right{display:none;}
  539. .shop_ul_img_3{height:120vw!important;margin-top:11px; }
  540. .shop_ul_img_3_box_2{margin:10px auto;overflow:hidden;height:169vw; }
  541. .shop_ul_img_3_3{height:300vw;margin-top:11px; }
  542. .shop_li_img_3{width:48%;margin:0px auto 15px;}
  543. .shop_ul_img_3 .shop_li_img_3:nth-of-type(n+5){display:none;}
  544. .shop_li_img_3:nth-of-type(even){float:right;}
  545. .shop_li_img_3:nth-of-type(odd){float:left;}
  546. .shop_li_img_3_a{display:block;width:100%;}
  547. .shop_li_img_3_img{display:block;width:100%;height:44vw;}
  548. .shop_li_img_3_dot2{width:100%;margin:2vw auto 0;
  549. font-size:4vw;line-height:5vw;height:10vw;}
  550. .shop_ul_img_3_box_2 .shop_li_img_3:nth-of-type(n+7){display:none;}
  551. .shop_3_box{width:92%;margin:10px auto 0;}
  552. .shop_hot_door_box{float:none;width:100%;margin:8px auto;height:auto;}
  553. .shop_hot_door_box a{display:block;width:100%;overflow:hidden;}
  554. .shop_hot_door_img{margin:10px;}
  555. .shop_hot_door_h4{height:auto;line-height:22px;font-size:16px;font-weight:normal;margin-top:22px;}
  556. .shop_4_box{height:auto;width:92%;margin:10px auto 0;}
  557. .shop_4_box .shop_li_img_3:nth-of-type(n+7){display:none;}
  558. .shop_5_box{width:92%;margin:10px auto 0;}
  559. .shop_5_box .shop_li_img_3:nth-of-type(n+11){display:none;}
  560. // /deep/ .el-dialog--center{width:92%;}
  561. :deep(.el-overlay){width:92%;border:dashed 1px red;}
  562. /deep/ .el-overlay{width:92%;border:dashed 1px red;}
  563. .phone_none{display:none;}
  564. }
  565. </style>