freeGoods.vue 32 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150
  1. <template>
  2. <view class="container">
  3. <navbar :config="config" backColor="#666"></navbar>
  4. <view id="page-top">
  5. <view class="product">
  6. <view class="u-bg-fff pb40">
  7. <view class="pic">
  8. <!-- <image src="../../../static/delImg/product2.png" mode="aspectFill"></image> -->
  9. <swiper class="swiper" indicator-dots="true" autoplay="true" interval="5000" duration="1500"
  10. circular="true">
  11. <swiper-item v-if="dataForm.video_url">
  12. <!-- <video enable-progress-gesture="false" :src="dataForm.video_url"></video>
  13. -->
  14. <j-video class="jvideo" :url="dataForm.video_url" width="750rpx" height="620rpx"></j-video>
  15. </swiper-item>
  16. <swiper-item v-for="(item, index) in imglist" :key="index">
  17. <image :src="item" mode="aspectFill"></image>
  18. </swiper-item>
  19. </swiper>
  20. <view class="p-price" >
  21. <view class="pd24 u-flex-center"style="align-items: baseline;">
  22. <view class="u-FFF u-font36">
  23. <text>免费领</text>
  24. </view>
  25. <text class="discount u-font24 u-ml20 u-del">¥{{ dataForm.max_market_price }}</text>
  26. </view>
  27. </view>
  28. <view class="u-plr30" style="margin-top: 100rpx;">
  29. <view>
  30. <view class="u-font34 u-bold u-1A1A1A">
  31. <view v-if="dataForm.platform_store" class="tag" style="vertical-align: middle;">自营</view>
  32. <text class="u-font34 u-bold u-1A1A1A" style="vertical-align: middle;">{{dataForm.title}}</text>
  33. </view>
  34. </view>
  35. <view class="u-font24 u-mt15 u-999">
  36. <text>已售
  37. <text class="u-FF0000">{{ dataForm.result_sale_num }}</text>件,仅剩<text
  38. class="u-FF0000">{{
  39. dataForm.residual_inventory
  40. }}</text>件</text>
  41. </view>
  42. </view>
  43. </view>
  44. </view>
  45. <view class="u-bg-fff u-mt10">
  46. <view class="u-plr30 u-flex-center-sb pt-pb35">
  47. <view class="u-flex-center">
  48. <view @click="goShop">
  49. <image class="u-avatar104" :src="shop.logo"></image>
  50. </view>
  51. <view class="u-ml25">
  52. <view class="u-font28 u-1A1A1A u-bold">{{ shop.shop_name }} </view>
  53. <view class="u-999 u-font24 u-mt5 u-text2" @click="goLocal">
  54. <text class="iconfont" style="color: #0F8947;">&#xe6db;</text>
  55. {{ shop.province_name }}{{ shop.city_name }}{{ shop.area_name
  56. }}{{ shop.address }}
  57. </view>
  58. </view>
  59. </view>
  60. <view class="iconfont" @click="goShop">&#xe6c7;</view>
  61. </view>
  62. </view>
  63. </view>
  64. <view class="u-bg-fff u-mt10">
  65. <view class="tab u-flex-center-sa u-font30 u-1A1A1A u-border-one-one" :style="`top: calc(${statusBarHeight}px + 44px)`">
  66. <view @tap="change(0)" class="pb30" :class="{ active: isChecked == 0 }">商品详情</view>
  67. <view @tap="change(1)" class="pb30" :class="{ active: isChecked == 1 }">
  68. 用户评论({{ commentList.length }})</view>
  69. </view>
  70. <view class="u-mt10">
  71. <!--商品详情-->
  72. <view v-if="isChecked == 0">
  73. <view class="richText ql-editor-box">
  74. <rich-text :nodes="goodsInfo.mobile_detail"></rich-text>
  75. <!-- <jyf-parser :html="$mUtil.formatRichText(goodsInfo.mobile_detail)" ref="article">
  76. </jyf-parser> -->
  77. </view>
  78. </view>
  79. <!--评论-->
  80. <view class="u-plr30" v-else>
  81. <comment :value="commentList"></comment>
  82. </view>
  83. </view>
  84. </view>
  85. </view>
  86. <view style="height:150rpx;background-color:white"></view>
  87. <view class="bottom-btn u-bg-fff">
  88. <view class="pt-pb30 u-plr30 u-flex-center-sb">
  89. <button @click="share" class="u-text-center goods-tools">
  90. <view class="iconfont2 u-font44 u-999">&#xe684;</view>
  91. <view class="u-font28 u-1A1A1A">分享</view>
  92. </button>
  93. <button class="u-text-center goods-tools" @click="collection">
  94. <view v-if="!isCollection">
  95. <view class="iconfont2 u-font36 u-999">&#xe6bf;</view>
  96. <view class="u-font28 u-1A1A1A">收藏</view>
  97. </view>
  98. <view v-else>
  99. <view class="iconfont2 u-font44 u-999 collectionActive">&#xe616;</view>
  100. <view class="u-font28 u-1A1A1A">取消</view>
  101. </view>
  102. </button>
  103. <!--普通商品-->
  104. <view class="cart" @click="goTocart">
  105. <view class="u-text-center goods-tools">
  106. <view class="iconfont2 car-icon u-font44 u-999">&#xe600;<text v-if="carNums > 0" class="nums">{{ carNums }}</text></view>
  107. <view class="u-font28 u-1A1A1A">购物车</view>
  108. </view>
  109. <!-- <view class="number u-font20 u-FFF">10</view> -->
  110. </view>
  111. <view class="u-flex flex-sb" v-if="ispay">
  112. <button class="cart-btn u-00321E u-font30" @click="buy(0, dataForm.id)">
  113. 加入购物车
  114. </button>
  115. <button class="buy-btn u-DCCDA4 u-font30" @click="buy(1, dataForm.id)">
  116. 立即购买
  117. </button>
  118. </view>
  119. </view>
  120. </view>
  121. <!--规格-->
  122. <uniPopup type="bottom" ref="specOpen">
  123. <view class="u-bg-fff spec">
  124. <view class="u-plr30 flex-sb u-border-one-one pb30">
  125. <view class="u-flex-center">
  126. <image class="u-goods200" :src="choseConfig.cover ? choseConfig.cover : cover"></image>
  127. <view class="u-ml20">
  128. <view class="u-999 u-font24 price-zhe">
  129. <view class="u-FF0000 u-font36">
  130. <rich-text :nodes="$mUtil.priceBigSmall(choseConfig.sale_price ? choseConfig.sale_price : moPrice)"></rich-text>
  131. </view>
  132. <text class="u-del u-ml15">¥{{ choseConfig.market_price ? choseConfig.market_price : moDelPrice }}
  133. </text>
  134. <!-- <text class="u-ml10">7.5折</text> -->
  135. </view>
  136. <view class="u-font22 u-999 u-mt5">库存 {{ stock }} 件</view>
  137. <view class="u-1A1A1A u-mt25">{{
  138. choseConfig.sku_set_name ? choseConfig.sku_set_name : "请选择"
  139. }}
  140. </view>
  141. </view>
  142. </view>
  143. <view class="iconfont u-999 closeIcon" @click="specOpenClose">&#xe612;</view>
  144. </view>
  145. <view>
  146. <!-- overHeight -->
  147. <view class="">
  148. <view class="u-mt30" v-for="(item, index) in skuTab" :key="item.head.id">
  149. <view class="u-plr30">{{ item.head.name }}</view>
  150. <view class="u-mt20 u-border-one-one pb30">
  151. <view class="u-plr30 u-flex u-flex-warp">
  152. <view class="spec-item" :class="childrenItem.flag ? 'activeColor' : ''"
  153. @click="chonseSku(index, childrenItem.id)" v-for="childrenItem in item.values"
  154. :key="childrenItem.id">{{ childrenItem.name }}</view>
  155. </view>
  156. </view>
  157. </view>
  158. </view>
  159. <view class="u-plr30 u-mt30">
  160. <view class="u-flex-center-sb">
  161. <view>购买数量</view>
  162. <!-- <view class="u-flex-center">
  163. <view class="iconfont minus" @click="resNum">&#xe60b;</view>
  164. <view class="num">{{ add_num }}</view>
  165. <view class="iconfont plus-sign" @click="addNum">&#xe686;</view>
  166. </view> -->
  167. <!-- 服务体系礼包、免费商品、公益申领不能一次购买多个 -->
  168. <view class="u-flex-center">
  169. <view class="num" style="border: none;">{{ add_num }}</view>
  170. </view>
  171. </view>
  172. <view class="specOpen-btn">
  173. <view v-if="btnType == 0">
  174. <button class="u-btn-two" @click="btnBuy(btnType)">
  175. {{ btnName }}
  176. </button>
  177. </view>
  178. <view v-else>
  179. <button class="u-btn-two" @click="btnBuy(btnType)">
  180. {{ btnName }}
  181. </button>
  182. </view>
  183. </view>
  184. </view>
  185. </view>
  186. </view>
  187. </uniPopup>
  188. <!--页面加载动画-->
  189. <ldLoading isFullScreen :active="loading"></ldLoading>
  190. <share ref="shares" :contentHeight="580" v-if="isvisible"></share>
  191. </view>
  192. </template>
  193. <script>
  194. import uniPopup from "../../../components/uni-popup/uni-popup.vue";
  195. import comment from "../../../components/ld-comment/ld-comment.vue";
  196. import jyfParser from "../../../components/jyf-parser/jyf-parser";
  197. import share from "./../../public/share";
  198. import jVideo from "../../../components/j-video/j-video.vue"
  199. let app = getApp()
  200. export default {
  201. components: {
  202. uniPopup,
  203. comment,
  204. jyfParser,
  205. share,
  206. jVideo
  207. },
  208. data() {
  209. return {
  210. //手机状态栏高度
  211. statusBarHeight: uni.getSystemInfoSync().statusBarHeight,
  212. config: {
  213. back: true, //false是tolbar页面 是则不写
  214. title: "商品详情",
  215. color: "#1a1a1a",
  216. //背景颜色;参数一:透明度(0-1);参数二:背景颜色(array则为线性渐变,string为单色背景)
  217. backgroundColor: [1, '#ffffff'],
  218. // backTabPage: "",
  219. // leftSlot:true
  220. },
  221. imglist: [], //详情图片数组
  222. isChecked: 0,
  223. btnName: "",
  224. btnType: "", //0 购物车,1 立即购买
  225. dataForm: {}, //商品详情
  226. shop: {}, //店铺信息
  227. shopDiscounts: {}, //店铺首单优惠
  228. stock: 0,
  229. cover: "",
  230. loading: true,
  231. moDelPrice: "",
  232. moPrice: "",
  233. goodsSkuList: [], //sku组合值
  234. skuTab: [], //sku二位数组
  235. goods_id: null,
  236. limit_buy_num: 0,
  237. choseConfig: {},
  238. hasId: "",
  239. add_num: 1,
  240. goStatus: 0, //0:购物车,1下单
  241. shop_id: 0,
  242. commentList: [],
  243. goodsInfo: {},
  244. dataShopId: "",
  245. isvisible: false,
  246. isCollection: false, //是否收藏
  247. option:null,
  248. imgUrl: this.$mConfig.staticUrl,
  249. ispay: app.globalData.openPay,
  250. fromShare: false, // 是否分享过来的页面
  251. carNums: 0 // 购物车数量
  252. };
  253. },
  254. onShow() {
  255. var pages = getCurrentPages();
  256. var prevPage = pages[pages.length - 2];
  257. if (prevPage == undefined) {
  258. // this.config.backTabPage = "/pages/research/homepage/lidaPage";
  259. }
  260. if(uni.getStorageSync("apiToken")) {
  261. this.cartList()
  262. }
  263. },
  264. onLoad(options) {
  265. //店铺推荐(商品)
  266. this.option = options.id
  267. console.log('分类带过来的id'+this.option)
  268. console.log(options)
  269. if (options.id) {
  270. this.getDetailInfo(options.id);
  271. this.goodsDetail(options.id);
  272. this.loadComment(options.id);
  273. }
  274. if (options.shareId) {
  275. this.recordSave(options.shareId, options.id);
  276. }
  277. if(options.share == 1) {
  278. this.fromShare = true
  279. }
  280. },
  281. onShareAppMessage(res) {
  282. if (res.from === "button") {
  283. // 来自页面内分享按钮
  284. console.log(res.target);
  285. }
  286. return {
  287. title: this.shareTitle,
  288. imageUrl: this.shareImg,
  289. path: `/pages/product/goods/goods?id=${this.goodsId}&shopid=${this.shop_id}&share=1`,
  290. };
  291. },
  292. methods: {
  293. iconBtn() {
  294. if(this.fromShare) {
  295. uni.redirectTo({
  296. url: '/pages/index/home'
  297. });
  298. }else {
  299. uni.navigateBack();
  300. }
  301. },
  302. goLocal() {
  303. uni.openLocation({
  304. latitude: Number(this.shop.tx_latitude),
  305. longitude: Number(this.shop.tx_longitude),
  306. name:this.shop.name,
  307. address: this.shop.address,
  308. success: function() {
  309. console.log("success");
  310. },
  311. });
  312. console.log(this.shop)
  313. },
  314. // 购物车数量
  315. cartList(){
  316. let shop = uni.getStorageSync('shop')
  317. let nums =0
  318. console.log(shop.id)
  319. this.$http.get(`/cart/list/` + shop.id)
  320. .then(res => {
  321. if(res&&res.code==200){
  322. if(res.list.length >0){
  323. res.list.forEach(k=>{
  324. k.flag =false
  325. nums +=k.user_cart_list.length
  326. })
  327. this.carNums =nums
  328. }else{
  329. this.carNums = 0
  330. }
  331. }
  332. })
  333. },
  334. goShop() {
  335. uni.navigateTo({
  336. url: "/pages/research/homepage/shopHomepage?shopId=" + this.shop_id,
  337. });
  338. },
  339. recordSave(share_user_id, goods_id) {
  340. this.$http
  341. .post("/share/record/save", {
  342. share_user_id: share_user_id,
  343. goods_id: goods_id,
  344. })
  345. .then((res) => {});
  346. },
  347. collection() {
  348. let token = uni.getStorageSync("apiToken");
  349. if (!token) {
  350. uni.navigateTo({
  351. url: "/pages/login/index",
  352. });
  353. } else {
  354. if (this.isCollection) {
  355. this.$http
  356. .delete("/collect/goods/delete/" + this.dataForm.id)
  357. .then((res) => {
  358. if (res && res.code == 200) {
  359. this.isCollection = false;
  360. this.$mUtil.toast("取消收藏成功");
  361. } else {
  362. this.$mUtil.toast(res.msg);
  363. }
  364. });
  365. } else {
  366. this.$http
  367. .put("/collect/goods/save", {
  368. goods_id: this.dataForm.id
  369. })
  370. .then((res) => {
  371. if (res && res.code == 200) {
  372. this.isCollection = true;
  373. this.$mUtil.toast("收藏成功");
  374. } else {
  375. this.$mUtil.toast(res.msg);
  376. }
  377. });
  378. }
  379. }
  380. },
  381. share() {
  382. this.isvisible = false
  383. let token = uni.getStorageSync("apiToken");
  384. if (!token) {
  385. uni.navigateTo({
  386. url: "/pages/login/index",
  387. });
  388. } else {
  389. this.$http.get('/goods/info/'+this.option).then((res)=>{
  390. if(res&&res.code==200){
  391. if(res.data==null){
  392. this.$mUtil.toast("该商品不存在")
  393. }else{
  394. let user = uni.getStorageSync("personal");
  395. this.isvisible = true;
  396. this.$nextTick(() => {
  397. this.$refs.shares.shareInfo(
  398. "/?pageType=1&type=1&id=" + this.goodsId + "&shareId=" + user.id,
  399. 'pages/down',
  400. this.dataForm.title,
  401. "",
  402. this.dataForm.cover
  403. );
  404. });
  405. }
  406. }
  407. })
  408. }
  409. },
  410. // 获取主页数据
  411. getIndexList(shopid) {
  412. this.$http.get("/yxt/shop/info/" + shopid).then((res) => {
  413. uni.stopPullDownRefresh();
  414. this.loading = false;
  415. if (res.data && res.code == 200) {
  416. this.shop = res.data;
  417. }
  418. });
  419. },
  420. getByShop(id) {
  421. //店铺优惠查询
  422. this.$http.get("/marketing/firstOrder/getByShop/" + id).then((res) => {
  423. if (res && res.code == 200) {
  424. this.shopDiscounts = res.data;
  425. }
  426. });
  427. },
  428. getDetailInfo(id) {
  429. this.$http.get("/goods/info/" + id).then((res) => {
  430. this.loading = false;
  431. if (res && res.code == 200) {
  432. this.dataForm = res.data;
  433. this.goodsId = res.data.id;
  434. this.imglist = res.data.images;
  435. this.shareImg = res.data.cover;
  436. this.shareTitle = res.data.title;
  437. this.dataShopId = res.data.shop_id;
  438. this.shop_id = res.data.shop_id;
  439. this.getByShop(this.dataShopId);
  440. this.getIndexList(this.dataShopId);
  441. }
  442. });
  443. let token = uni.getStorageSync("apiToken");
  444. if (token) {
  445. this.$http.get("/collect/goods/is-collect/" + id).then((res) => {
  446. if (res && res.code == 200) {
  447. this.isCollection = res.data;
  448. }
  449. });
  450. }
  451. },
  452. goTocart() {
  453. uni.navigateTo({
  454. url: "/pages/index/shop",
  455. });
  456. },
  457. //点击拼团更多
  458. goGb() {
  459. this.$refs.gbOpen.open();
  460. },
  461. //点击关闭
  462. gbClose() {
  463. this.$refs.gbOpen.close();
  464. },
  465. //评论,商品详情切换
  466. change(i) {
  467. this.isChecked = i;
  468. },
  469. //点购物车,立即购买
  470. buy(i, id) {
  471. // 【免费领商品】不能加入购物车
  472. if(i== 0){
  473. uni.showToast({
  474. icon: 'none',
  475. title: '该商品不可加入购物车'
  476. })
  477. return false;
  478. }
  479. this.btnType = i;
  480. this.checkSku(id);
  481. if (i == 0) {
  482. this.btnName = "加入购物车";
  483. } else {
  484. this.btnName = "立即购买";
  485. }
  486. },
  487. // 减数量
  488. resNum() {
  489. if (this.add_num > 1) {
  490. this.add_num--;
  491. }
  492. },
  493. //加数量
  494. addNum() {
  495. this.add_num++;
  496. },
  497. chonseSku(index, id) {
  498. this.skuTab[index].values.forEach((res) => {
  499. res.flag = false;
  500. if (res.id == id) {
  501. res.flag = true;
  502. }
  503. });
  504. let choseId = [];
  505. this.skuTab.forEach((res) => {
  506. res.values.forEach((Key) => {
  507. if (Key.flag) {
  508. choseId.push(Key.id);
  509. }
  510. });
  511. });
  512. let totalId = choseId.join("|");
  513. this.hasId = totalId;
  514. this.goodsSkuList.forEach((res) => {
  515. if (res.sku_hash_code == totalId) {
  516. this.choseConfig = res;
  517. this.stock = res.able_stock;
  518. this.able_stock = res.able_stock;
  519. }
  520. });
  521. console.log(this.goodsSkuList)
  522. console.log('goodsSkuList')
  523. },
  524. //查询sku
  525. checkSku(id) {
  526. this.$http.get(`/goods/skus/${this.shop_id}/${id}`).then((res) => {
  527. this.loading = false;
  528. if (res && res.code == 200) {
  529. // this.choseConfig = {};
  530. this.hasId = ''
  531. res.data.goods.sku_table.forEach((keys) => {
  532. keys.values.forEach((val) => {
  533. val.flag = false;
  534. });
  535. });
  536. this.limit_buy_num = res.data.goods.limit_buy_num;
  537. this.goods_id = res.data.goods.id;
  538. this.goodsSkuList = res.data.goods_sku_list;
  539. this.moPrice = res.data.goods.min_sale_price;
  540. this.moDelPrice = res.data.goods.max_sale_price;
  541. this.cover = res.data.goods.cover;
  542. this.stock = res.data.total_stock;
  543. if (res.data.goods_auth) {
  544. if (res.data.goods_auth.added) {
  545. this.$refs.specOpen.open();
  546. } else {
  547. this.$mUtil.toast("该商品已经下架");
  548. }
  549. } else {
  550. this.$mUtil.toast("没有经营权限");
  551. }
  552. //只有没数据才去重新渲染sku的数据
  553. if(this.skuTab.length == 0){
  554. this.skuTab = res.data.goods.sku_table;
  555. for(let i in this.skuTab){
  556. //默认选中第一个可选项
  557. this.skuTab[i].values[0].flag = true;
  558. }
  559. //显示选中的sku信息
  560. // this.chonseSku(0, this.skuTab[0].values[0].id);
  561. }
  562. //显示选中的sku信息
  563. this.chonseSku(0, this.skuTab[0].values[0].id);
  564. console.log(this.skuTab)
  565. console.log('skuTab')
  566. // if(res.data.goods.sku_table.length>0){
  567. // this.$refs.specOpen.open()
  568. // }else{
  569. // this.hasId = ''
  570. // this.btnBuy()
  571. // }
  572. }
  573. });
  574. },
  575. //关闭规格弹窗
  576. specOpenClose() {
  577. this.$refs.specOpen.close();
  578. },
  579. //加入购物车
  580. btnBuys() {
  581. // 判断是否选中sku
  582. if (this.skuTab.length > 0 && this.hasId.split('|').length<this.skuTab.length) {
  583. this.$mUtil.toast("请选中分类");
  584. return false;
  585. }
  586. // 判断限购
  587. if (this.add_num > this.limit_buy_num && this.limit_buy_num != 0) {
  588. this.$mUtil.toast("商品限购" + this.limit_buy_num + "件");
  589. return false;
  590. }
  591. //判断库存
  592. if (this.goodsSkuList.length > 0 && this.able_stock < this.add_num) {
  593. this.$mUtil.toast("商品库存只有" + this.able_stock + "件");
  594. this.$http.post(`/singlegoods/understockrecord/save`, {
  595. shop_id: this.shop_id,
  596. goods_id: this.goods_id,
  597. single_goods_id: this.choseConfig.single_goods_id,
  598. sku_set_name: this.choseConfig.sku_set_name,
  599. buy_num: this.add_num
  600. }).then((res) => {
  601. });
  602. return false;
  603. }
  604. if (this.goStatus == 0) {
  605. let data = {
  606. goods_id: this.goods_id,
  607. sku_hash_code: this.hasId,
  608. add_num: this.add_num,
  609. source_shop_id: this.shop_id.toString(),
  610. };
  611. this.$http.post(`/cart/add`, data).then((res) => {
  612. if (res && res.code == 200) {
  613. this.$mUtil.toast("添加成功");
  614. this.$refs.specOpen.close();
  615. this.choseConfig = {};
  616. this.add_num = 1;
  617. this.cartList();
  618. }
  619. });
  620. } else {
  621. this.psotJson();
  622. }
  623. },
  624. //组合数据
  625. psotJson() {
  626. // this.loading = true;
  627. let dataJson = {};
  628. let childArr = [];
  629. let parendArr = [];
  630. // let shop = uni.getStorageSync('shop')
  631. // let shopid = shop.id ? shop.id : ''
  632. childArr.push({
  633. user_cart_id: 0,
  634. activity_goods_id: "0",
  635. goods_id: this.goods_id,
  636. num: this.add_num,
  637. sku_hash_code: this.hasId,
  638. });
  639. parendArr.push({
  640. shop_id: this.dataShopId,
  641. source_shop_id: this.shop_id,
  642. activity_id: 0, //活动id
  643. sponsor_activity_id: 0, //拼团id
  644. user_remark: "",
  645. items: childArr,
  646. });
  647. dataJson = {
  648. is_cart: false, //是否来源于购物车
  649. receipt_id: null,
  650. shipment_mode: 0, //0物流,1自提
  651. shop_orders: parendArr,
  652. marketing_type: 0, //0无活动,1秒杀,2拼团
  653. free: true
  654. };
  655. uni.setStorageSync("dataJson", dataJson);
  656. //let originalPrice = this.dataForm.max_market_price // 原价
  657. //let zhe = ((this.dataForm.min_sale_price / this.dataForm.max_market_price) *10).toFixed(1) // 折扣
  658. uni.navigateTo({
  659. url: "../surePay/freeSurePay",
  660. });
  661. // let shop = uni.getStorageSync('shop')
  662. // let shopid=shop.id?shop.id:''
  663. // this.loading = false;
  664. // this.$http.post(`/order/build`, dataJson).then(res => {
  665. // if (res && res.code == 200) {
  666. // uni.setStorageSync('sureData', res.data)
  667. // uni.navigateTo({
  668. // url: '../surePay/surePay'
  669. // })
  670. // }
  671. // })
  672. },
  673. //
  674. btnBuy(i) {
  675. this.goStatus = i;
  676. let token = uni.getStorageSync("apiToken");
  677. //判断是否微信授权登录(没有授权登录进wx-login,授权了但没有注册进login)
  678. if (!token) {
  679. uni.navigateTo({
  680. url: "/pages/login/index",
  681. });
  682. } else {
  683. this.btnBuys();
  684. }
  685. //0 购物车,1 立即购买
  686. },
  687. /**
  688. * 详情
  689. * */
  690. goodsDetail(id) {
  691. this.$http.get(`/goods/content/${id}`).then((res) => {
  692. if (res && res.code == 200) {
  693. this.goodsInfo = res.data;
  694. }
  695. });
  696. },
  697. /*评论*/
  698. loadComment(id) {
  699. this.$http
  700. .get(`/comment/orderGoods/getgoodscomments/${id}`)
  701. .then((res) => {
  702. if (res && res.code == 200) {
  703. this.commentList = res.list;
  704. }
  705. });
  706. },
  707. },
  708. };
  709. </script>
  710. <style lang="scss">
  711. @font-face {
  712. font-family: 'hxicon';
  713. /* project id 2009392 */
  714. src: url(data:font/truetype;charset=utf-8;base64,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) format('truetype');
  715. }
  716. @font-face {
  717. font-family: 'iconfont';
  718. /* project id 2070236 */
  719. src: url('//at.alicdn.com/t/font_2070236_id1ac7qapa.eot');
  720. src: url('//at.alicdn.com/t/font_2070236_id1ac7qapa.eot?#iefix') format('embedded-opentype'),
  721. url('//at.alicdn.com/t/font_2070236_id1ac7qapa.woff2') format('woff2'),
  722. url('//at.alicdn.com/t/font_2070236_id1ac7qapa.woff') format('woff'),
  723. url('//at.alicdn.com/t/font_2070236_id1ac7qapa.ttf') format('truetype'),
  724. url('//at.alicdn.com/t/font_2070236_id1ac7qapa.svg#iconfont') format('svg');
  725. }
  726. .hxicon {
  727. font-family: hxicon;
  728. font-size: 20px;
  729. font-style: normal;
  730. /* #ifndef APP-PLUS-NVUE */
  731. -webkit-font-smoothing: antialiased;
  732. -webkit-text-stroke-width: 0.2px;
  733. -moz-osx-font-smoothing: grayscale;
  734. /* #endif */
  735. }
  736. .price-zhe {
  737. display: flex;
  738. align-items: baseline;
  739. }
  740. .slotBox {
  741. position: fixed;
  742. .back {
  743. padding: 0 13rpx;
  744. }
  745. }
  746. .love-color{
  747. width: 36rpx;
  748. height: 36rpx;
  749. }
  750. .tag {
  751. display: inline-block;
  752. padding: 0 10rpx;
  753. height: 40rpx;
  754. background: #ff0000;
  755. border-radius: 10rpx 0px 10rpx 0px;
  756. line-height: 40rpx;
  757. text-align: center;
  758. margin-right: 10rpx;
  759. color: #fff;
  760. font-size: 20rpx;
  761. }
  762. .collectionActive {
  763. color: #ff0000;
  764. // font-size: 45rpx;
  765. transform: scale(1.2);
  766. }
  767. page {
  768. background-color: #f5f5f5;
  769. }
  770. .pd24 {
  771. padding: 24rpx;
  772. }
  773. .pd20 {
  774. padding: 20rpx;
  775. }
  776. .pt20-pb14 {
  777. padding-top: 20rpx;
  778. padding-bottom: 14rpx;
  779. }
  780. .pt28-pb18 {
  781. padding-top: 28rpx;
  782. padding-bottom: 18rpx;
  783. }
  784. .pb30 {
  785. padding-bottom: 30rpx;
  786. }
  787. .pb40 {
  788. padding-bottom: 40rpx;
  789. }
  790. .pb50 {
  791. padding-bottom: 50rpx;
  792. }
  793. .pt-pb30 {
  794. padding-top: 30rpx;
  795. padding-bottom: 30rpx;
  796. }
  797. .pt-pb35 {
  798. padding-top: 35rpx;
  799. padding-bottom: 35rpx;
  800. }
  801. .ml54 {
  802. margin-left: 54rpx;
  803. }
  804. .ml138 {
  805. margin-left: 138rpx;
  806. }
  807. .br-rd10 {
  808. border-radius: 10rpx;
  809. }
  810. .br-rd20 {
  811. border-radius: 20rpx;
  812. }
  813. .stb-btn {
  814. padding: 8rpx 18rpx;
  815. border-radius: 10rpx;
  816. }
  817. .br-FF0000 {
  818. border: 1rpx solid #ff0000;
  819. border-radius: 24rpx;
  820. padding: 6rpx 12rpx;
  821. }
  822. .bg-FFF6EE {
  823. background-color: #fff6ee;
  824. }
  825. .mt80 {
  826. margin-top: 80rpx;
  827. }
  828. .product {
  829. // padding-bottom: 150rpx;
  830. }
  831. .pic {
  832. width: 100%;
  833. position: relative;
  834. .swiper {
  835. // height: 620rpx;
  836. height: 100vw;
  837. video {
  838. width: 100%;
  839. // height: 620rpx;
  840. height: 100vw;
  841. }
  842. image {
  843. width: 100%;
  844. // height: 620rpx;
  845. height: 100vw;
  846. }
  847. }
  848. .p-price {
  849. z-index: 10;
  850. width: 100%;
  851. position: absolute;
  852. top: 600rpx;
  853. background: linear-gradient(90deg,#20a733, #0a824b);
  854. border-radius: 20rpx 20rpx 0px 0px;
  855. .discount {
  856. color: #ffffff;
  857. }
  858. }
  859. }
  860. .richText {
  861. padding: 30rpx;
  862. /deep/ img {
  863. margin-top: 0 !important;
  864. }
  865. }
  866. //秒杀,拼团样式
  867. .p-ab {
  868. position: absolute;
  869. top: 448rpx;
  870. }
  871. .stb-list {
  872. padding-bottom: 10rpx;
  873. }
  874. .triangle-bottomright {
  875. width: 0;
  876. height: 0;
  877. border-bottom: 108rpx solid #dccda4;
  878. border-left: 60rpx solid transparent;
  879. }
  880. .seckill {
  881. background-color: #dccda4;
  882. color: #0B844A;
  883. padding: 16rpx;
  884. padding-right: 28rpx;
  885. border-radius: 5rpx 20rpx 0px 0px;
  886. }
  887. .seckill-btn {
  888. width: 86%;
  889. }
  890. .br-284534 {
  891. border-bottom: 1rpx solid rgba($color: #0B844A, $alpha: 0.3);
  892. }
  893. .gb-te {
  894. padding-top: 20rpx;
  895. padding-bottom: 15rpx;
  896. }
  897. .gb-btn {
  898. padding: 18rpx 80rpx 8rpx;
  899. line-height: 30rpx;
  900. }
  901. .btn-bg-dccda4 {
  902. background: #dccda4;
  903. border-radius: 48rpx 0rpx 0rpx 48rpx;
  904. }
  905. .btn-bg-00321E {
  906. background: #0B844A;
  907. border-radius: 0px 48px 48px 0px;
  908. }
  909. .tab {
  910. position: sticky;
  911. top: 0;
  912. background-color: #fff;
  913. padding-top: 38rpx;
  914. z-index: 9;
  915. .pb30{
  916. position: relative;
  917. &::before {
  918. content: '';
  919. position: absolute;
  920. left: 50%;
  921. bottom: 0;
  922. transform: translateX(-50%);
  923. width: 0;
  924. height: 2px;
  925. background: #0f8a46;
  926. transition: all 0.3s;
  927. }
  928. &.active {
  929. font-size: 30rpx;
  930. color: #0D8847;
  931. font-weight: 700;
  932. &::before {
  933. width: 100%;
  934. }
  935. }
  936. }
  937. }
  938. .bottom-btn {
  939. width: 100%;
  940. position: fixed;
  941. bottom: 0;
  942. z-index: 9;
  943. border-top: 1rpx solid #e6e6e6;
  944. .cart {
  945. position: relative;
  946. .car-icon {
  947. position: relative;
  948. .nums {
  949. font-size: 20rpx;
  950. color: #FFFFFF;
  951. font-weight: 400;
  952. padding: 4rpx;
  953. height: 30rpx;
  954. min-width: 30rpx;
  955. line-height: 23rpx;
  956. background-color: #FF0000;
  957. border-radius: 15rpx;
  958. position: absolute;
  959. right: 5rpx;
  960. top: -10rpx;
  961. }
  962. }
  963. .number {
  964. position: absolute;
  965. top: -10rpx;
  966. left: 45rpx;
  967. padding: 4rpx 8rpx;
  968. background-color: #ff0000;
  969. border: 4rpx solid #ffffff;
  970. border-radius: 40rpx;
  971. }
  972. }
  973. .cart-btn {
  974. width: 200rpx;
  975. height: 85rpx;
  976. line-height: 85rpx;
  977. background: #F8A764;
  978. color: white;
  979. border-radius: 40rpx;
  980. margin-right: 10rpx;
  981. }
  982. .buy-btn {
  983. width: 200rpx;
  984. height: 85rpx;
  985. line-height: 85rpx;
  986. background: #0B844A;
  987. border-radius: 40rpx;
  988. margin-left: 10rpx;
  989. }
  990. }
  991. .flex-sb {
  992. display: flex;
  993. justify-content: space-between;
  994. }
  995. //弹窗
  996. .spec {
  997. border-radius: 18rpx 18rpx 0rpx 0rpx;
  998. padding-top: 30rpx;
  999. // max-height: 900rpx;
  1000. overflow-y: auto;
  1001. // padding-bottom: constant(safe-area-inset-bottom);
  1002. // padding-bottom: env(safe-area-inset-bottom);
  1003. .spec-item {
  1004. background-color: #f6f6f6;
  1005. border: 1px solid #f6f6f6;
  1006. padding: 12rpx 30rpx;
  1007. font-size: 24rpx;
  1008. color: #1a1a1a;
  1009. border-radius: 4px;
  1010. }
  1011. .activeColor {
  1012. background-color: #e1e6e3;
  1013. border: 1px solid #0B844A;
  1014. color: #0B844A;
  1015. border-radius: 4px;
  1016. }
  1017. .spec-item:not(:last-child) {
  1018. margin-right: 24rpx;
  1019. }
  1020. //减号
  1021. .minus {
  1022. width: 50rpx;
  1023. height: 50rpx;
  1024. line-height: 50rpx;
  1025. text-align: center;
  1026. background: #dedede;
  1027. border-radius: 8rpx 0rpx 0rpx 8rpx;
  1028. }
  1029. .num {
  1030. width: 74rpx;
  1031. height: 46rpx;
  1032. line-height: 46rpx;
  1033. text-align: center;
  1034. border: 1px solid #dedede;
  1035. }
  1036. //加号
  1037. .plus-sign {
  1038. width: 50rpx;
  1039. height: 50rpx;
  1040. line-height: 50rpx;
  1041. text-align: center;
  1042. background: #dedede;
  1043. border-radius: 0rpx 8rpx 8rpx 0rpx;
  1044. }
  1045. .specOpen-btn {
  1046. margin-top: 68rpx;
  1047. padding-bottom: 34rpx;
  1048. button {
  1049. background-color: #0B844A;
  1050. color: #ffffff;
  1051. }
  1052. }
  1053. }
  1054. .jvideo {
  1055. .playIcon {
  1056. width: 100rpx;
  1057. }
  1058. }
  1059. </style>