index.vue 42 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213
  1. <template>
  2. <view class="product-con">
  3. <!-- <up-navbar
  4. class="goods-nav-bar"
  5. :bgColor="`rgba(255, 255, 255, ${opacity})`"
  6. >
  7. <template #left>
  8. <view class="nav-slot">
  9. <uni-icons
  10. customPrefix="iconfont"
  11. size="19"
  12. @click="goBack"
  13. type="icon-fanhui"
  14. />
  15. </view>
  16. </template>
  17. <template #right> </template>
  18. </up-navbar> -->
  19. <view>
  20. <scroll-view
  21. :scroll-top="scrollTop"
  22. scroll-y="true"
  23. scroll-with-animation="true"
  24. :style="'height:' + height + 'px;'"
  25. @scroll="handleScroll"
  26. >
  27. <view id="past0">
  28. <product-con-swiper
  29. @click="previewImage(sliderImage)"
  30. :imgUrls="sliderImage"
  31. :videoline="productInfo.videoLink"
  32. >
  33. </product-con-swiper>
  34. <view class="ms-time">
  35. <image src="/static/images/tg_detail.png"></image>
  36. <text class="ms-time-text"
  37. >团购价:¥{{
  38. (
  39. Number(specExtraList[0].laborCost) *
  40. Number(specExtraList[0].weight) +
  41. Number(specExtraList[0].additionalFee)
  42. ).toFixed(2)
  43. }}</text
  44. >
  45. <view class="ms-time-box">
  46. <view class="ms-time-tips">{{
  47. productInfo.seckillStatusName
  48. }}</view>
  49. <up-count-down
  50. :time="Math.max(msTime - Date.now(), 0)"
  51. format="HH:mm:ss"
  52. autoStart
  53. millisecond
  54. @change="onChange"
  55. >
  56. <view class="time">
  57. <view class="time__custom">
  58. <text class="time__custom__item">
  59. {{ timeData.days.toString().padStart(2, "0") }}
  60. </text>
  61. </view>
  62. <text class="time__doc">:</text>
  63. <view class="time__custom">
  64. <text class="time__custom__item">
  65. {{ timeData.hours.toString().padStart(2, "0") }}
  66. </text>
  67. </view>
  68. <text class="time__doc">:</text>
  69. <view class="time__custom">
  70. <text class="time__custom__item">
  71. {{ timeData.minutes.toString().padStart(2, "0") }}
  72. </text>
  73. </view>
  74. <text class="time__doc">:</text>
  75. <view class="time__custom">
  76. <text class="time__custom__item">
  77. {{ timeData.seconds.toString().padStart(2, "0") }}
  78. </text>
  79. </view>
  80. </view>
  81. </up-count-down>
  82. </view>
  83. </view>
  84. <view class="pad30">
  85. <view class="wrapper mb30 borRadius14">
  86. <view class="introduce">
  87. <view class="tag">现货</view>
  88. <view class="tag-text"> {{ productInfo.storeName }} </view>
  89. </view>
  90. <view class="label acea-row row-between-wrapper">
  91. <view class="label-item"
  92. >工费:
  93. {{ specExtraList[0].laborCost.toFixed(2) || 0 }}元/克</view
  94. >
  95. <view class="label-item"
  96. >重量: {{ specExtraList[0].weight }}克</view
  97. >
  98. <view class="label-item">
  99. 附加费{{ specExtraList[0].additionalFee || 0 }}元</view
  100. >
  101. </view>
  102. <view
  103. class="share acea-row row-between row-bottom"
  104. style="margin-top: 10px"
  105. >
  106. <view class="money font-color">
  107. <text class="num">{{
  108. (
  109. Number(specExtraList[0].laborCost) *
  110. Number(specExtraList[0].weight) +
  111. Number(specExtraList[0].additionalFee)
  112. ).toFixed(2)
  113. }}</text>
  114. </view>
  115. </view>
  116. </view>
  117. <view
  118. class="attribute acea-row row-between-wrapper mb30 borRadius14"
  119. >
  120. <view class="line1">
  121. 已选择 :
  122. <text class="atterTxt" v-for="item in productAttr" :key="item"
  123. >{{ item.attrName }}:{{ item.attrValues }}</text
  124. >
  125. </view>
  126. <view class="iconfont icon-jiantou"></view>
  127. </view>
  128. <view class="row-block mb30 borRadius14">
  129. <view class="row-express">
  130. <view class="left-box">
  131. <uni-icons class="icon" type="cart" size="24"></uni-icons>
  132. <text class="text">48小时送达</text>
  133. </view>
  134. <view class="express-price">
  135. <text class="express-place">广东深圳</text>
  136. </view>
  137. </view>
  138. <up-line color="#ccc" length="100%" margin="10px 0"></up-line>
  139. <view class="tip-text">
  140. <uni-icons size="24" type="hand-up"></uni-icons>
  141. <view class="text">
  142. <text class="t1">买的放心,用的称心</text>
  143. <text class="t2">平台有保障</text>
  144. </view>
  145. </view>
  146. </view>
  147. </view>
  148. </view>
  149. <view class="product-intro" id="past3">
  150. <view class="title">
  151. <image src="/static/images/xzuo.png"></image>
  152. <span class="sp">产品详情</span>
  153. <image src="/static/images/xyou.png"></image>
  154. </view>
  155. <view class="conter">
  156. <up-parse :content="description"></up-parse>
  157. </view>
  158. </view>
  159. <view style="height: 120rpx"></view>
  160. </scroll-view>
  161. </view>
  162. <view class="footer acea-row row-between-wrapper">
  163. <view class="toAPP">
  164. <wx-open-launch-app
  165. id="launch-btn"
  166. appid="wx5f33a4ace799b661"
  167. :extinfo="'/pages/group_buying/proDetail?id=' + id"
  168. @error="goShuiBei"
  169. >
  170. <component :is="'script'" v-bind="{ type: 'text/wxtag-template' }">
  171. <button
  172. class="storeAPP"
  173. style="
  174. background-color: #e9c279;
  175. color: #fff;
  176. border-radius: 50rpx;
  177. line-height: 100rpx;
  178. padding: 20rpx 20rpx;
  179. z-index: 999;
  180. box-sizing: border-box;
  181. "
  182. >
  183. 打开水贝商城
  184. </button>
  185. </component>
  186. </wx-open-launch-app>
  187. </view>
  188. </view>
  189. </view>
  190. </template>
  191. <script setup>
  192. import { onReady, onLoad, onShow } from "@dcloudio/uni-app";
  193. import { ref, computed, getCurrentInstance, toRaw } from "vue";
  194. import { useToast } from "@/hooks/useToast";
  195. import wx from "weixin-js-sdk";
  196. // import { useAppStore } from "@/stores/app.js";
  197. import { getGroupBuyingProductDetail, getWechatConfig } from "@/api/index.js";
  198. import productConSwiper from "@/components/productConSwiper";
  199. const { Toast } = useToast();
  200. const msTime = ref(0);
  201. const timeData = ref({});
  202. const app = getApp();
  203. const instance = getCurrentInstance();
  204. const initwxlaunch = () => {
  205. getWechatConfig(encodeURIComponent(location.href.split("#")[0])).then(
  206. (res) => {
  207. wx.config({
  208. debug: res.data.debug, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  209. appId: res.data.appId, // 必填,公众号的唯一标识
  210. timestamp: res.data.timestamp, // 必填,生成签名的时间戳
  211. nonceStr: res.data.nonceStr, // 必填,生成签名的随机串
  212. signature: res.data.signature, // 必填,签名,// 必填,签名
  213. jsapi_ticket: res.data.jsapi_ticket, // 必填,签名,// 必填,签名
  214. jsApiList: ["wx-open-subscribe", "wx-open-launch-app"], // 必填,需要使用的JS接口列表,这个地方必须至少写一个,即使你一个都不想用'updateTimelineShareData',
  215. openTagList: ["wx-open-subscribe", "wx-open-launch-app"],
  216. // 可选,需要使用的开放标签列表
  217. });
  218. wx.checkJsApi({
  219. jsApiList: ["wx-open-launch-app"], // 校验跳转APP的标签是否可用
  220. success: function (res) {
  221. console.log("可用");
  222. },
  223. fail: (err) => {
  224. console.log(err, "不可用");
  225. },
  226. });
  227. }
  228. );
  229. };
  230. const goShuiBei = () => {
  231. let url = `shuibei://`;
  232. let errUrl = "https://a.app.qq.com/o/simple.jsp?pkgname=uni.app.UNI9DE338F";
  233. window.location.href = url;
  234. setTimeout(() => {
  235. window.location.href = errUrl;
  236. }, 3000);
  237. };
  238. initwxlaunch();
  239. // const appStore = useAppStore();
  240. // const isLogin = computed(() => appStore.isLogin);
  241. // const uid = computed(() => appStore.uid);
  242. const attrTxt = ref("请选择");
  243. const attrValue = ref("");
  244. const id = ref("");
  245. const productInfo = ref({});
  246. const productValue = ref([]);
  247. const productAttr = ref([]);
  248. const specExtraList = ref([]);
  249. const attr = ref({
  250. cartAttr: false,
  251. productAttr: [],
  252. productSelect: {},
  253. });
  254. const description = ref("");
  255. const opacity = ref(0);
  256. const height = ref(0);
  257. const scrollTop = ref(0);
  258. const sliderImage = ref([]);
  259. const userJoinPink = ref(false);
  260. const type = ref("");
  261. const showProductPopup = ref(false); // 商品规格弹窗
  262. const handleBtnTpe = ref(""); // "buy" or "cart"
  263. // 定义 onChange 方法
  264. const onChange = (e) => {
  265. const isEnded = msTime.value <= Date.now();
  266. if (isEnded) {
  267. timeData.value = { hours: 0, minutes: 0, seconds: 0 };
  268. } else {
  269. timeData.value = e;
  270. }
  271. };
  272. // 计算秒杀是否结束
  273. const isSeckillEnded = computed(() => {
  274. return msTime.value <= Date.now();
  275. });
  276. onLoad((options) => {
  277. uni.getSystemInfo({
  278. success(res) {
  279. height.value = res.windowHeight;
  280. },
  281. });
  282. if (options.id || options.scene) {
  283. if (options.scene) {
  284. const qrCodeValue = $util.getUrlParams(decodeURIComponent(options.scene));
  285. const mapeMpQrCodeValue = $util.formatMpQrCodeData(qrCodeValue);
  286. app.globalData.spread = mapeMpQrCodeValue.spread;
  287. id.value = mapeMpQrCodeValue.id;
  288. } else {
  289. id.value = options.id;
  290. }
  291. type.value = options.type ?? "normal";
  292. }
  293. getGoodsDetails(id.value);
  294. });
  295. onShow(() => {});
  296. onReady(() => {});
  297. const iptCartNum = (e) => {
  298. attr.value.productSelect.cart_num = e || 1;
  299. };
  300. const handleScroll = (e) => {
  301. const scrollYVal = e.detail.scrollTop;
  302. const opacityVal = scrollYVal / 350 > 1 ? 1 : scrollYVal / 350;
  303. opacity.value = opacityVal;
  304. };
  305. const ChangeAttr = (res) => {
  306. const productSelect = productValue.value[res];
  307. console.log("productSelect", productSelect);
  308. if (productSelect) {
  309. attr.value.productSelect = {
  310. ...attr.value.productSelect,
  311. image: productSelect.image,
  312. sales: productSelect.sales,
  313. weight: productSelect.weight,
  314. price: productSelect.price,
  315. storePrice: productSelect.storePrice,
  316. stock: productSelect.stock,
  317. unique: productSelect.id,
  318. cart_num: 1,
  319. additionalAmount: productSelect.additionalAmount,
  320. };
  321. attrValue.value = res;
  322. attrTxt.value = "已选择";
  323. } else {
  324. attr.value.productSelect = {
  325. ...attr.value.productSelect,
  326. image: productInfo.value.image,
  327. weight: productSelect.weight,
  328. price: productInfo.value.price,
  329. storePrice: productSelect.storePrice,
  330. stock: 0,
  331. unique: productInfo.value.id,
  332. cart_num: 1,
  333. additionalAmount: productSelect.additionalAmount,
  334. };
  335. attrValue.value = "";
  336. attrTxt.value = "请选择";
  337. }
  338. };
  339. const getGoodsDetails = async (productId) => {
  340. try {
  341. const res = await getGroupBuyingProductDetail(productId);
  342. const product = res.data.storeCombination;
  343. msTime.value = res.data.stopTime;
  344. specExtraList.value = res.data.specExtraList || [];
  345. sliderImage.value = JSON.parse(product.sliderImage);
  346. productInfo.value = product;
  347. description.value = product.content;
  348. userJoinPink.value = res.data.userJoinPink;
  349. attr.value.productAttr = res.data.productAttr;
  350. productValue.value = res.data.productValue;
  351. console.log("API Response:", res.data);
  352. console.log("specExtraList:", specExtraList.value);
  353. console.log("productInfo:", productInfo.value);
  354. uni.setNavigationBarTitle({
  355. title: product.storeName.substring(0, 7) + "...",
  356. });
  357. attr.value.productAttr = attr.value.productAttr.map((item) => ({
  358. attrName: item.attrName,
  359. attrValues: item.attrValues.split(","),
  360. id: item.id,
  361. isDel: item.isDel,
  362. productId: item.productId,
  363. type: item.type,
  364. }));
  365. downloadFilestoreImage();
  366. // DefaultSelect();
  367. } catch (err) {
  368. Toast({ title: err.toString(), icon: "none" });
  369. console.error("getGoodsDetails error:", err);
  370. }
  371. };
  372. const DefaultSelect = () => {
  373. let value = [];
  374. console.log("productValue.value", toRaw(productValue.value));
  375. const keys = Object.keys(productValue.value);
  376. for (let i = 0; i < keys.length; i++) {
  377. const key = keys[i];
  378. value = attr.value.productAttr.length ? key.split(",") : [];
  379. }
  380. attr.value.productAttr.forEach((item, i) => {
  381. item.index = value[i];
  382. });
  383. const productSelect = productValue.value[value.join(",")];
  384. if (productSelect && attr.value.productAttr.length) {
  385. attr.value.productSelect = {
  386. ...attr.value.productSelect,
  387. storeName: productInfo.value.storeName,
  388. image: productSelect.image,
  389. sales: productSelect.sales,
  390. weight: productSelect.weight,
  391. price: productSelect.price,
  392. storePrice: productSelect.storePrice,
  393. stock: productSelect.stock,
  394. unique: productSelect.id,
  395. cart_num: 1,
  396. additionalAmount: productSelect.additionalAmount,
  397. };
  398. attrValue.value = value.join(",");
  399. attrTxt.value = "已选择";
  400. } else if (!productSelect && attr.value.productAttr.length) {
  401. attr.value.productSelect = {
  402. ...attr.value.productSelect,
  403. storeName: productInfo.value.storeName,
  404. image: productInfo.value.image,
  405. sales: productSelect.sales,
  406. weight: productSelect.weight,
  407. price: productInfo.value.price,
  408. storePrice: productSelect.storePrice,
  409. stock: 0,
  410. unique: productInfo.value.id,
  411. cart_num: 1,
  412. additionalAmount: productSelect.additionalAmount,
  413. };
  414. attrValue.value = "";
  415. attrTxt.value = "请选择";
  416. } else if (!productSelect && !attr.value.productAttr.length) {
  417. attr.value.productSelect = {
  418. ...attr.value.productSelect,
  419. storeName: productInfo.value.storeName,
  420. image: productInfo.value.image,
  421. sales: productSelect.sales,
  422. weight: productSelect.weight,
  423. price: productInfo.value.price,
  424. storePrice: productSelect.storePrice,
  425. stock: productInfo.value.stock,
  426. unique: productInfo.value.id || "",
  427. cart_num: 1,
  428. additionalAmount: productSelect.additionalAmount,
  429. };
  430. attrValue.value = "";
  431. attrTxt.value = "请选择";
  432. }
  433. };
  434. const selecAttr = () => {
  435. showProductPopup.value = true;
  436. handleBtnTpe.value = "buy";
  437. };
  438. const onMyEvent = () => {
  439. attr.value.cartAttr = false;
  440. };
  441. // 关闭规格弹窗
  442. const closeProductPopup = () => {
  443. showProductPopup.value = false;
  444. attr.value.cartAttr = false;
  445. };
  446. const setDomain = (url) => {
  447. url = url ? url.toString() : "";
  448. return url.includes("https://") ? url : url.replace("http://", "https://");
  449. };
  450. const downloadFilestoreImage = async () => {
  451. try {
  452. const res = await uni.downloadFile({
  453. url: setDomain(productInfo.value.image),
  454. });
  455. } catch {}
  456. };
  457. const goBack = () => {
  458. const pages = getCurrentPages();
  459. if (pages.length > 1) {
  460. uni.navigateBack();
  461. } else {
  462. uni.switchTab({ url: "/pages/mall/index" });
  463. }
  464. };
  465. function toMessagePage() {
  466. uni.navigateTo({ url: "/pages/users/customer_service_message/index" });
  467. }
  468. </script>
  469. <style scoped lang="scss">
  470. .wrapper {
  471. .label-item {
  472. color: #f94200;
  473. }
  474. .introduce {
  475. display: flex;
  476. .tag {
  477. width: 83rpx;
  478. height: 40rpx;
  479. background-color: #f94200;
  480. border-radius: 5rpx;
  481. display: flex;
  482. justify-content: center;
  483. align-items: center;
  484. color: #fff;
  485. font-size: 24rpx;
  486. border-radius: 5rpx;
  487. }
  488. .tag-text {
  489. margin-left: 10rpx;
  490. }
  491. }
  492. }
  493. .product-con {
  494. height: 100%;
  495. .mask {
  496. z-index: 88;
  497. }
  498. .goods-nav-bar {
  499. background-color: rgba(255, 255, 255, 0.3);
  500. .nav-slot {
  501. padding: 5rpx 10rpx;
  502. border-radius: 40rpx;
  503. border: 1px solid #ccc;
  504. display: flex;
  505. justify-content: space-between;
  506. align-items: center;
  507. background-color: rgba(255, 255, 255, 0.8);
  508. }
  509. }
  510. .ms-time {
  511. width: 100%;
  512. position: relative;
  513. image {
  514. width: 100%;
  515. height: 90rpx;
  516. }
  517. .ms-time-text {
  518. position: absolute;
  519. left: 17%;
  520. top: 50%;
  521. transform: translateY(-50%);
  522. color: #fc5072;
  523. }
  524. .ms-time-box {
  525. position: absolute;
  526. right: 2%;
  527. top: 50%;
  528. transform: translateY(-50%);
  529. display: flex;
  530. flex-direction: column;
  531. align-items: center;
  532. justify-content: center;
  533. height: 100%;
  534. color: #fff;
  535. .time {
  536. @include flex;
  537. align-items: center;
  538. &__custom {
  539. margin-top: 4px;
  540. width: 22px;
  541. height: 22px;
  542. border-radius: 4px;
  543. /* #ifndef APP-NVUE */
  544. display: flex;
  545. /* #endif */
  546. justify-content: center;
  547. align-items: center;
  548. &__item {
  549. color: #fff;
  550. font-size: 12px;
  551. text-align: center;
  552. }
  553. }
  554. &__doc {
  555. color: #fff;
  556. padding: 0px 4px;
  557. }
  558. &__item {
  559. color: #606266;
  560. font-size: 15px;
  561. margin-right: 4px;
  562. }
  563. }
  564. }
  565. }
  566. .store-info {
  567. margin-top: 20rpx;
  568. background-color: #fff;
  569. .title {
  570. padding: 0 30rpx;
  571. font-size: 28rpx;
  572. color: #282828;
  573. height: 80rpx;
  574. line-height: 80rpx;
  575. border-bottom: 1px solid #f5f5f5;
  576. }
  577. .info {
  578. padding: 0 30rpx;
  579. height: 126rpx;
  580. .picTxt {
  581. width: 615rpx;
  582. .pictrue {
  583. width: 76rpx;
  584. height: 76rpx;
  585. image {
  586. width: 100%;
  587. height: 100%;
  588. border-radius: 6rpx;
  589. }
  590. }
  591. .text {
  592. width: 522rpx;
  593. .name {
  594. font-size: 30rpx;
  595. color: #282828;
  596. }
  597. .address {
  598. font-size: 24rpx;
  599. color: #666;
  600. margin-top: 3rpx;
  601. .iconfont {
  602. color: #707070;
  603. font-size: 18rpx;
  604. margin-left: 10rpx;
  605. }
  606. .addressTxt {
  607. max-width: 480rpx;
  608. }
  609. }
  610. }
  611. }
  612. .iconfont {
  613. font-size: 40rpx;
  614. }
  615. }
  616. }
  617. .superior {
  618. background-color: #fff;
  619. margin-top: 30rpx;
  620. padding: 0 24rpx 30rpx 24rpx;
  621. .title {
  622. height: 98rpx;
  623. image {
  624. width: 20rpx;
  625. height: 20rpx;
  626. }
  627. .titleTxt {
  628. margin: 0 10rpx;
  629. font-size: 30rpx;
  630. color: #333333;
  631. // background-image: linear-gradient(to right, #f57a37 0%, #f21b07 100%);
  632. // -webkit-background-clip: text;
  633. // -webkit-text-fill-color: transparent;
  634. }
  635. }
  636. .slider-banner {
  637. width: 100%;
  638. margin: 0 auto;
  639. position: relative;
  640. swiper,
  641. swiper-item {
  642. height: 100%;
  643. width: 100%;
  644. }
  645. .list {
  646. width: 100%;
  647. .item {
  648. width: 198rpx;
  649. margin: 0 22rpx 30rpx 0;
  650. font-size: 26rpx;
  651. &:nth-of-type(3n) {
  652. margin-right: 0;
  653. }
  654. .pictrue {
  655. position: relative;
  656. width: 100%;
  657. height: 198rpx;
  658. image {
  659. width: 100%;
  660. height: 100%;
  661. border-radius: 6rpx;
  662. }
  663. }
  664. .name {
  665. color: #282828;
  666. margin-top: 12rpx;
  667. }
  668. }
  669. }
  670. .swiper-pagination-bullet {
  671. background-color: #999;
  672. }
  673. .swiper-pagination-bullet-active {
  674. background-color: $theme-color;
  675. }
  676. }
  677. }
  678. }
  679. .activityName {
  680. line-height: 44rpx;
  681. }
  682. .bntVideo {
  683. width: auto !important;
  684. .buy {
  685. border-radius: 50rpx !important;
  686. }
  687. }
  688. .row-block {
  689. background-color: #fff;
  690. padding: 20rpx;
  691. font-size: 0.8125rem;
  692. color: #000;
  693. .row-express {
  694. // width: 100%;
  695. display: flex;
  696. justify-content: space-between;
  697. // margin: 20rpx 10rpx 10rpx;
  698. .left-box {
  699. .icon {
  700. vertical-align: middle;
  701. }
  702. .text {
  703. margin: 0 0 0 14rpx;
  704. font-size: 28rpx;
  705. vertical-align: middle;
  706. }
  707. }
  708. .express-price {
  709. display: flex;
  710. align-items: center;
  711. }
  712. }
  713. .tip-text {
  714. display: flex;
  715. align-items: center;
  716. .text {
  717. display: flex;
  718. flex-direction: column;
  719. margin: 0 0 0 20rpx;
  720. .t2 {
  721. font-size: 24rpx;
  722. color: #666;
  723. }
  724. }
  725. }
  726. }
  727. .attribute {
  728. .line1 {
  729. width: 600rpx;
  730. color: #000;
  731. .atterTxt {
  732. display: inline-block;
  733. padding: 0 15rpx;
  734. font-size: 26rpx;
  735. // color: #000;
  736. background-color: #ffe4cb;
  737. border-radius: 10rpx;
  738. border: solid 1rpx #ffa666;
  739. }
  740. }
  741. }
  742. .chat-btn {
  743. background-color: antiquewhite !important;
  744. }
  745. .activity_pin,
  746. .activity_miao,
  747. .activity_kan {
  748. width: auto;
  749. height: 44rpx;
  750. line-height: 44rpx;
  751. padding: 0 15rpx;
  752. opacity: 1;
  753. border-radius: 22rpx;
  754. }
  755. .activity_pin {
  756. background: linear-gradient(
  757. 90deg,
  758. rgba(233, 51, 35, 1) 0%,
  759. rgba(250, 101, 20, 1) 100%
  760. );
  761. }
  762. .activity_miao {
  763. background: linear-gradient(
  764. 90deg,
  765. rgba(250, 102, 24, 1) 0%,
  766. rgba(254, 161, 15, 1) 100%
  767. );
  768. margin-left: 19rpx;
  769. }
  770. .activity_kan {
  771. background: linear-gradient(
  772. 90deg,
  773. rgba(254, 159, 15, 1) 0%,
  774. rgba(254, 178, 15, 1) 100%
  775. );
  776. margin-left: 19rpx;
  777. }
  778. .iconfonts {
  779. color: #fff !important;
  780. font-size: 28rpx;
  781. }
  782. .activity_title {
  783. font-size: 24rpx;
  784. color: #fff;
  785. }
  786. .mask {
  787. position: fixed;
  788. top: 0;
  789. left: 0;
  790. right: 0;
  791. bottom: 0;
  792. background-color: rgba(0, 0, 0, 0.6);
  793. z-index: 9;
  794. &.mask {
  795. z-index: 300 !important;
  796. }
  797. }
  798. .head-bar {
  799. background: #fff;
  800. }
  801. .generate-posters {
  802. width: 100%;
  803. height: 170rpx;
  804. background-color: #fff;
  805. position: fixed;
  806. left: 0;
  807. bottom: 0;
  808. z-index: 388;
  809. transform: translate3d(0, 100%, 0);
  810. transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
  811. border-top: 1rpx solid #eee;
  812. &.on {
  813. transform: translate3d(0, 0, 0);
  814. }
  815. .item {
  816. flex: 50%;
  817. text-align: center;
  818. font-size: 30rpx;
  819. .iconfont {
  820. font-size: 80rpx;
  821. color: #5eae72;
  822. &.icon-haibao {
  823. color: #5391f1;
  824. }
  825. }
  826. }
  827. }
  828. .pictrue_log {
  829. width: 80upx;
  830. height: 40upx;
  831. border-radius: 10upx 0 12upx 0;
  832. line-height: 40upx;
  833. font-size: 24upx;
  834. }
  835. .pictrue_log_class {
  836. z-index: 3;
  837. background: linear-gradient(
  838. 90deg,
  839. rgba(246, 122, 56, 1) 0%,
  840. rgba(241, 27, 9, 1) 100%
  841. );
  842. opacity: 1;
  843. position: absolute;
  844. top: 0;
  845. left: 0;
  846. color: #fff;
  847. text-align: center;
  848. }
  849. .navbar {
  850. position: fixed;
  851. background-color: #fff;
  852. top: 0;
  853. left: 0;
  854. z-index: 99;
  855. width: 100%;
  856. .navbarH {
  857. position: relative;
  858. .navbarCon {
  859. position: absolute;
  860. bottom: 0;
  861. height: 100rpx;
  862. width: 100%;
  863. }
  864. }
  865. .header {
  866. height: 96rpx;
  867. font-size: 30rpx;
  868. color: #050505;
  869. background-color: #fff;
  870. /* #ifdef MP */
  871. padding-right: 95rpx;
  872. /* #endif */
  873. .item {
  874. position: relative;
  875. margin: 0 25rpx;
  876. &.on:before {
  877. position: absolute;
  878. width: 60rpx;
  879. height: 5rpx;
  880. background-repeat: no-repeat;
  881. content: "";
  882. background-image: linear-gradient(to right, #ff3366 0%, #ff6533 100%);
  883. bottom: -10rpx;
  884. left: 50%;
  885. margin-left: -28rpx;
  886. }
  887. }
  888. }
  889. }
  890. .icon-xiangzuo {
  891. margin-top: var(--status-bar-height);
  892. /* #ifdef H5 */
  893. top: 20rpx !important;
  894. /* #endif */
  895. color: #000;
  896. position: fixed;
  897. font-size: 36rpx;
  898. width: 100rpx;
  899. height: 56rpx;
  900. line-height: 54rpx;
  901. z-index: 1000;
  902. left: -5rpx;
  903. }
  904. .share-box {
  905. z-index: 1000;
  906. position: fixed;
  907. left: 0;
  908. top: 0;
  909. width: 100%;
  910. height: 100%;
  911. image {
  912. width: 100%;
  913. height: 100%;
  914. }
  915. }
  916. .pro-wrapper {
  917. .iconn {
  918. background-image: url("data:image/png;base64,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");
  919. width: 100rpx;
  920. height: 100rpx;
  921. background-repeat: no-repeat;
  922. background-size: 100% 100%;
  923. margin: 0 auto;
  924. &.iconn1 {
  925. background-image: url("data:image/png;base64,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");
  926. }
  927. }
  928. }
  929. .canvas {
  930. position: fixed;
  931. z-index: -5;
  932. opacity: 0;
  933. }
  934. .poster-pop {
  935. position: fixed;
  936. width: 450rpx;
  937. height: 714rpx;
  938. top: 50%;
  939. left: 50%;
  940. transform: translateX(-50%);
  941. margin-top: -432rpx;
  942. z-index: 399;
  943. image {
  944. width: 100%;
  945. height: 100%;
  946. display: block;
  947. }
  948. .close {
  949. width: 46rpx;
  950. height: 75rpx;
  951. position: fixed;
  952. right: 0;
  953. top: -73rpx;
  954. display: block;
  955. }
  956. .save-poster {
  957. background-color: #df2d0a;
  958. font-size: 22rpx;
  959. color: #fff;
  960. text-align: center;
  961. height: 76rpx;
  962. line-height: 76rpx;
  963. width: 100%;
  964. }
  965. .keep {
  966. color: #fff;
  967. text-align: center;
  968. font-size: 25rpx;
  969. margin-top: 10rpx;
  970. }
  971. }
  972. button {
  973. padding: 0;
  974. margin: 0;
  975. line-height: normal;
  976. background-color: #fff;
  977. &::after {
  978. border: 0;
  979. }
  980. }
  981. action-sheet-item {
  982. padding: 0;
  983. height: 240rpx;
  984. align-items: center;
  985. display: flex;
  986. }
  987. .contact {
  988. font-size: 16px;
  989. width: 50%;
  990. background-color: #fff;
  991. padding: 8rpx 0;
  992. border-radius: 0;
  993. margin: 0;
  994. line-height: 2;
  995. &::after {
  996. border: none;
  997. }
  998. }
  999. .action-sheet {
  1000. font-size: 17px;
  1001. line-height: 1.8;
  1002. width: 50%;
  1003. position: absolute;
  1004. top: 0;
  1005. right: 0;
  1006. padding: 25rpx 0;
  1007. }
  1008. .share-top {
  1009. background-color: rgba(255, 255, 255, 0.8);
  1010. padding: 5rpx 10rpx;
  1011. border-radius: 40rpx;
  1012. }
  1013. .footer {
  1014. padding: 0 20rpx 0 30rpx;
  1015. position: fixed;
  1016. bottom: 0;
  1017. width: 100%;
  1018. box-sizing: border-box;
  1019. height: 100rpx;
  1020. background-color: #fff;
  1021. z-index: 277;
  1022. border-top: 1rpx solid #f0f0f0;
  1023. text-align: center;
  1024. .toAPP {
  1025. min-width: 30%;
  1026. position: absolute;
  1027. top: -85rpx;
  1028. left: 35%;
  1029. .storeAPP {
  1030. background-color: #e9c279;
  1031. color: #fff;
  1032. border-radius: 50rpx;
  1033. line-height: 50rpx;
  1034. padding: 20rpx 20rpx;
  1035. z-index: 999;
  1036. .logoimg {
  1037. display: inline-block;
  1038. width: 50rpx;
  1039. height: 50rpx;
  1040. border-radius: 5rpx;
  1041. vertical-align: middle;
  1042. }
  1043. }
  1044. }
  1045. .item {
  1046. font-size: 18rpx;
  1047. color: #666;
  1048. .iconfont {
  1049. text-align: center;
  1050. font-size: 40rpx;
  1051. &.icon-shoucang1 {
  1052. color: #f00;
  1053. }
  1054. }
  1055. .icon-item {
  1056. font-size: 40rpx;
  1057. position: relative;
  1058. .num {
  1059. color: #fff;
  1060. position: absolute;
  1061. font-size: 18rpx;
  1062. padding: 2rpx 8rpx 3rpx;
  1063. border-radius: 200rpx;
  1064. top: -10rpx;
  1065. right: -10rpx;
  1066. }
  1067. }
  1068. }
  1069. .bnt {
  1070. width: 444rpx;
  1071. height: 76rpx;
  1072. .bnts {
  1073. width: 222rpx;
  1074. text-align: center;
  1075. line-height: 76rpx;
  1076. color: #fff;
  1077. font-size: 28rpx;
  1078. }
  1079. .joinCart {
  1080. border-radius: 50rpx 0 0 50rpx;
  1081. background-image: linear-gradient(to right, #fea10f 0%, #fa8013 100%);
  1082. }
  1083. .buy {
  1084. border-radius: 0 50rpx 50rpx 0;
  1085. background-image: linear-gradient(to right, #fa6514 0%, #e93323 100%);
  1086. }
  1087. }
  1088. }
  1089. </style>