1 |
- {"version":3,"sources":["uni-app:///main.js","webpack:///G:/gsxm/git/yangdaxia/pages/product/product.vue?0a24","webpack:///G:/gsxm/git/yangdaxia/pages/product/product.vue?bc04","webpack:///G:/gsxm/git/yangdaxia/pages/product/product.vue?788d","webpack:///G:/gsxm/git/yangdaxia/pages/product/product.vue?228a","uni-app:///pages/product/product.vue","webpack:///G:/gsxm/git/yangdaxia/pages/product/product.vue?a854","webpack:///G:/gsxm/git/yangdaxia/pages/product/product.vue?641a"],"names":["createPage","Page"],"mappings":";;;;;;;;;;kDAAA;AACA;AACA,mG;AACAA,UAAU,CAACC,gBAAD,CAAV,C;;;;;;;;;;;;;ACHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoH;AACpH;AAC2D;AACL;AACc;;;AAGpE;AAC2K;AAC3K,gBAAgB,oLAAU;AAC1B,EAAE,6EAAM;AACR,EAAE,kFAAM;AACR,EAAE,2FAAe;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,sFAAU;AACZ;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAA+nB,CAAgB,opBAAG,EAAC,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACiEnpB;AACA;AACA;AACA,uE;;;;;;;;;;;;;;;;;;;;AAoBA;AACA;AACA;AACA,wBAFA;AAGA,kCAHA;AAIA,wBAJA;AAKA,4BALA;AAMA,4BANA;AAOA,gCAPA;AAQA,sBARA,EADA;;AAWA,MAXA,kBAWA;AACA;AACA,mBADA,EACA;AACA,kBAFA;AAGA,qBAHA;AAIA,uBAJA;AAKA,sBALA,EAKA;AACA,uBANA,EAMA;AACA,aAPA,EAOA;AACA,eARA,EAQA;AACA,cATA,EASA;AACA,aAVA,EAUA;AACA,kBAXA;AAYA,oBAZA,EAYA;AACA,iBAbA,EAaA;AACA,qBAdA,EAcA;AACA;AACA,kBADA,EAfA;AAiBA;AACA;AACA,iBAnBA;AAoBA;AACA,oBArBA,EAqBA;AACA,qBAtBA,EAsBA;AACA,mBAvBA,EAuBA;AACA,uBAxBA,EAwBA;AACA;AACA;AACA,mBADA,EACA;AACA,mBAFA,EAEA;AACA,oBAHA,EAGA;AACA,oBAJA,EAIA;AACA,oBALA,EAKA;AACA,oBANA,EAMA;AACA,iBAPA,CAOA;AAPA,OA1BA;AAmCA;AACA;AACA,cADA,EACA;AACA,eAFA,EAEA;AACA,kBAHA,EAGA;AACA,iBAJA,EAIA;AACA,qBALA,EAKA;AACA,oBANA,EAMA;AACA,kBAPA,EAOA;AACA,iBARA,EAQA;AACA,aATA,EASA;AACA,aAVA,EAUA;AACA,aAXA,CAWA;AAXA,OApCA;AAiDA,kBAjDA;;AAmDA,GA/DA;AAgEA;AACA,cADA,sBACA,OADA,EACA;AACA;AACA;AACA;AACA,OAFA,MAEA;AACA;AACA;AACA;AACA,KATA,EAhEA;;AA2EA,QA3EA,kBA2EA,OA3EA,EA2EA;AACA,iBADA,GACA,KADA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbA;;;;;;AAoBA,GA/FA;AAgGA;AACA,2DADA,CAhGA;;AAmGA;AACA,mBApGA,6BAoGA,OApGA,EAoGA;AACA;AACA,kCAFA,CAEA;AACA,8CAHA,CAGA;AACA,gCAJA,CAIA;AACA,mCALA,CAKA;AACA;AACA,4EADA,EACA;AACA,mEAFA,EAEA;AACA,sCAHA;AAIA;AACA;AACA;AACA;AACA,OARA;AASA;AACA;AACA;AACA;AACA,SAFA,MAEA;AACA;AACA;AACA,OAhBA;;;AAmBA;AACA,GA9HA;AA+HA;AACA;AACA,cAFA,sBAEA,IAFA,EAEA,GAFA,EAEA,GAFA,EAEA;AACA;AACA;AACA,OAFA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OARA,MAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KA3BA;AA4BA;AACA,YA7BA,sBA6BA;AACA;AACA;AACA;AACA,KAjCA;AAkCA;AACA,cAnCA,sBAmCA,GAnCA,EAmCA;AACA;AACA;AACA;AACA;AACA,SAFA,EAEA,GAFA;AAGA,OALA,MAKA;AACA;AACA;AACA;AACA;AACA,KA9CA;AA+CA;AACA,aAhDA,uBAgDA;AACA;AACA,sCADA;;AAGA,KApDA;AAqDA;AACA,mBAtDA,2BAsDA,IAtDA,EAsDA;AACA;AACA;AACA,8CADA;;AAGA,KA3DA;AA4DA;AACA,SA7DA,iBA6DA,GA7DA,EA6DA;AACA;AACA,sDADA;;AAGA,KAjEA;AAkEA;AACA,UAnEA,kBAmEA,IAnEA,EAmEA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA,oBADA,EACA;AACA,oBAFA,EAEA;AACA,cAHA,EAGA;AACA,kBAJA;AAKA,0BALA,CAKA;AALA;AAOA,UAPA,CAOA;AACA;AACA,0BADA;AAEA,qBAFA;AAGA,uBAHA;AAIA,sBAJA;;;AAOA;AACA,OAhBA;AAiBA,WAjBA,CAiBA;AACA;AACA,OAnBA;AAoBA,KAjGA;AAkGA,eAlGA,yBAkGA;AACA;AACA;AACA;AACA;AACA,uCAFA,CAEA;AACA,+BAHA,CAGA;AACA;AACA;AACA;AACA;AACA,SARA,CAQA;AACA,yCATA,CASA;AACA,wCAVA,CAUA;AACA;AACA;AACA,0CAFA,CAEA;AACA,+CAHA,CAGA;AACA,gCAJA,CAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAnBA,MAmBA;AACA;AACA;AACA,6CAjCA,CAiCA;AACA,sCAlCA,CAkCA;AACA,2CAnCA,CAmCA;AACA,yCApCA,CAoCA;AACA,iCArCA,CAqCA;AACA,OAtCA;AAuCA,KA5IA;AA6IA;AACA,OA9IA,iBA8IA;AACA;AACA;AACA;AACA,gCADA,EACA;AACA,cAFA;AAGA,8BAHA,EAGA;AACA,8BAJA;;;AAOA;AACA;AACA;AACA;AACA,UADA,CACA;AACA;AACA;AACA;AACA;AACA,2DADA;;AAGA;AACA;AACA;AACA,4BADA;AAEA,uBAFA;AAGA,0BAHA;AAIA,wBAJA;;AAMA;AACA;AACA;AACA,OAnBA;AAoBA,WApBA,CAoBA;AACA;AACA,OAtBA;AAuBA,KAlLA;AAmLA;AACA,eApLA,yBAoLA,EApLA,EA/HA,E;;;;;;;;;;;;;ACxFA;AAAA;AAAA;AAAA;AAAypC,CAAgB,0nCAAG,EAAC,C;;;;;;;;;;;ACA7qC;AACA,OAAO,KAAU,EAAE,kBAKd","file":"pages/product/product.js","sourcesContent":["import 'uni-pages';\nimport Vue from 'vue'\nimport Page from './pages/product/product.vue'\ncreatePage(Page)","import { render, staticRenderFns, recyclableRender, components } from \"./product.vue?vue&type=template&id=2fbdbe34&\"\nvar renderjs\nimport script from \"./product.vue?vue&type=script&lang=js&\"\nexport * from \"./product.vue?vue&type=script&lang=js&\"\nimport style0 from \"./product.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\runtime\\\\componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"pages/product/product.vue\"\nexport default component.exports","export * from \"-!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\templateLoader.js??vue-loader-options!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--16-0!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\template.js!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-uni-app-loader\\\\page-meta.js!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./product.vue?vue&type=template&id=2fbdbe34&\"","var components\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./product.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./product.vue?vue&type=script&lang=js&\"","<template>\n\t<view class=\"container\">\n\t\t<!-- 轮播图 -->\n\t\t<top-swiper :imgList=\"imgList\"></top-swiper>\n\t\t<!-- 标题 -->\n\t\t<product-content :goodsObjact=\"goodsObjact\"></product-content>\n\t\t<!-- 拼货时间及优惠 -->\n\t\t<!-- <discounts @clickCoupon=\"Getcoupon\" :Info=\"goodsObjact.store_info\" :showCoupon=\"true\"></discounts> -->\n\t\t<!-- 猜你喜欢 -->\n\t\t<!-- <guess-like @Addcar='Addcar' @clickNavTo='navToDetailPage' :goodList = 'good_list||[]'></guess-like> -->\n\t\t<!-- 评价 -->\n\t\t<estimate @navTo=\"navTo('/pages/product/reply?id=' + goodsid)\" v-if=\"reply\" :reply=\"reply\" :list=\"list\"></estimate>\n\t\t<!-- 规格信息 -->\n\t\t<fresh-detail :goodsObjact=\"goodsObjact\"></fresh-detail>\n\t\t<!-- 图文详情 -->\n\t\t<content-text :description=\"description\"></content-text>\n\t\t<!-- 底部高度撑开 -->\n\t\t<view class=\"contentBottomHeight\"></view>\n\t\t<!-- 底部操作菜单 -->\n\t\t<product-bottom @buy=\"buy\" :goodsObjact=\"goodsObjact\" :goodsid=\"goodsid\" @specOPne=\"specOPne\"></product-bottom>\n\t\t<!-- 规格-模态层弹窗 -->\n\t\t<view class=\"popup spec\" :class=\"specClass\" @touchmove.stop.prevent=\"stopPrevent\" @click=\"toggleSpec\">\n\t\t\t<!-- 遮罩层 -->\n\t\t\t<view class=\"mask\"></view>\n\t\t\t<view class=\"layer attr-content\" @click.stop=\"stopPrevent\">\n\t\t\t\t<view class=\"a-t\">\n\t\t\t\t\t<image :src=\"actionImage\"></image>\n\t\t\t\t\t<view class=\"right\">\n\t\t\t\t\t\t<text class=\"name\">{{ goodsObjact.store_name }}</text>\n\t\t\t\t\t\t<text class=\"price\">积分{{ actionPrice * goodsNumber }}</text>\n\t\t\t\t\t\t<!-- <text class=\"stock\">库存:{{ goodsStore }}件</text> -->\n\t\t\t\t\t\t<view class=\"selected\" v-if=\"specList != ''\">\n\t\t\t\t\t\t\t已选:\n\t\t\t\t\t\t\t<text class=\"selected-text\" v-for=\"(sItem, sIndex) in specSelected\" :key=\"sIndex\">{{ sItem }}</text>\n\t\t\t\t\t\t</view>\n\t\t\t\t\t</view>\n\t\t\t\t</view>\n\t\t\t\t<view v-for=\"(item, index) in specList\" :key=\"index\" class=\"attr-list\">\n\t\t\t\t\t<text>{{ item.attr_name }}</text>\n\t\t\t\t\t<view class=\"item-list\">\n\t\t\t\t\t\t<text\n\t\t\t\t\t\t\tv-for=\"(childItem, childIndex) in item.attr_value\"\n\t\t\t\t\t\t\t:key=\"childIndex\"\n\t\t\t\t\t\t\tclass=\"tit\"\n\t\t\t\t\t\t\t:class=\"{ selected: childItem.check }\"\n\t\t\t\t\t\t\t@click=\"selectSpec(childItem, item, index)\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ childItem.attr }}\n\t\t\t\t\t\t</text>\n\t\t\t\t\t</view>\n\t\t\t\t</view>\n\t\t\t\t<!-- <view class=\"attr-list\">\n\t\t\t\t\t<text>购买数量</text>\n\t\t\t\t\t<view class=\"item-list\">\n\t\t\t\t\t\t<uni-number-box class=\"step\" :isMin=\"true\" :value=\"goodsNumber\" :min=\"1\" :max=\"goodsNumberMax\" @eventChange=\"numberChange\"></uni-number-box>\n\t\t\t\t\t</view>\n\t\t\t\t</view> -->\n\t\t\t\t<button class=\"btn\" @click.stop=\"buy\" v-show=\"buys_show\">完成</button>\n\t\t\t\t<button class=\"btn\" style=\"background-color: #999999;\" v-show=\"buys_shows\">售罄</button>\n\t\t\t</view>\n\t\t</view>\n\t</view>\n</template>\n\n<script>\nimport { goodsDetail, cartAdd } from '@/api/product.js';\nimport { mapState } from 'vuex';\nimport store from '@/store/index.js';\nimport { saveUrl } from '@/utils/loginUtils.js';\n// #ifdef H5\nimport { weixindata } from '@/utils/wxAuthorized';\n// #endif\n// 头部轮播图\nimport topSwiper from './common/topSwiper.vue';\n// 标题\nimport productContent from './common/productContent.vue';\n// 到货时间及优惠\nimport discounts from './common/discounts.vue';\n// 规格信息\nimport freshDetail from './common/freshDetail.vue';\n// 图文详情\nimport contentText from './common/contentText.vue';\n// 底部按钮\nimport productBottom from './common/productBottom.vue';\n// 猜你喜欢\n// import guessLike from './common/guessLike.vue';\n// 评价\nimport estimate from './common/estimate.vue';\nexport default {\n\tcomponents: {\n\t\t// guessLike,\n\t\ttopSwiper,\n\t\tproductContent,\n\t\tdiscounts,\n\t\tfreshDetail,\n\t\tcontentText,\n\t\tproductBottom,\n\t\testimate\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tgoodsStore: 0, //选中库存\n\t\t\tspecList: [],\n\t\t\tbuys_show: true,\n\t\t\tbuys_shows: false,\n\t\t\tspecSelected: [], //选中的分类\n\t\t\tspecClass: 'none', //显示隐藏弹窗\n\t\t\tmany: 1, //1是单规格 2是多规格\n\t\t\treply: '', //评论\n\t\t\tlist: '', //商品详情的数据\n\t\t\ttype: 1, //默认支付方式add为\n\t\t\tgoodsType: 0,\n\t\t\tgoodsNumber: 1, //购买数量\n\t\t\tgoodsid: '', //商品id\n\t\t\tdescription: '', //商品描述\n\t\t\tgoodsObjact: {\n\t\t\t\tpercent: 1\n\t\t\t}, //保存商品数据\n\t\t\t//图片循环\n\t\t\timgList: [],\n\t\t\t// 对比对象\n\t\t\tactionPrice: 0, //默认选中商品价格\n\t\t\tactionImage: '', //默认选中图片\n\t\t\tgood_list: '', //猜你喜欢列表\n\t\t\tgoodsNumberMax: 0, //最大可购买数量\n\t\t\t// 倒计时数据保存\n\t\t\tseckillObj: {\n\t\t\t\tstopTime: 0, //结束时间\n\t\t\t\tstop: false, //是否结束\n\t\t\t\tstopTimeH: 0, //小时\n\t\t\t\tstopTimeM: 0, //分钟\n\t\t\t\tstopTimeS: 0, //秒钟\n\t\t\t\tstopTimeD: 0, //天\n\t\t\t\tupTime: 0 //更新组件内部组件用\n\t\t\t},\n\t\t\t// 拼团数据保存\n\t\t\tpink: {\n\t\t\t\tid: '', //拼团编号\n\t\t\t\tuid: '', //用户编号\n\t\t\t\tpeople: '', //拼团人数\n\t\t\t\tprice: '', //拼团价格\n\t\t\t\tstop_time: '', //拼团结束时间\n\t\t\t\tnickname: '', //团长昵称\n\t\t\t\tavatar: '', //团长头像\n\t\t\t\tcount: '', //拼团剩余人数\n\t\t\t\th: '', //时\n\t\t\t\ti: '', //分\n\t\t\t\ts: '' //秒\n\t\t\t},\n\t\t\tuserInfo: ''\n\t\t};\n\t},\n\tfilters: {\n\t\tparseIntTo(percent) {\n\t\t\tpercent = +percent * 100;\n\t\t\tif (percent % 1 === 0) {\n\t\t\t\treturn percent;\n\t\t\t} else {\n\t\t\t\tpercent = percent.toFixed(1);\n\t\t\t\treturn percent;\n\t\t\t}\n\t\t}\n\t},\n\tasync onLoad(options) {\n\t\tlet obj = this;\n\t\tobj.userInfo = uni.getStorageSync('userInfo');\n\t\t//保存商品id\n\t\tthis.goodsid = options.id;\n\t\tthis.goodsType = options.type;\n\t\t// 判断有无人邀请\n\t\tif (options.spread) {\n\t\t\t// 存储邀请人\n\t\t\tuni.setStorageSync('spread', options.spread);\n\t\t}\n\t\tsaveUrl();\n\t\tthis.goodsDetail();\n\t\t// 注册邀请信息\n\t\t// #ifdef H5\n\t\tlet bool = uni.getStorageSync('weichatBrowser') || '';\n\t\tif (bool) {\n\t\t\tweixindata();\n\t\t}\n\t\t// #endif\n\t},\n\tcomputed: {\n\t\t...mapState(['weichatObj', 'baseURL', 'urlFile'])\n\t},\n\t// 分享\n\tonShareAppMessage(options) {\n\t\t// 设置菜单中的转发按钮触发转发事件时的转发内容\n\t\tlet pages = getCurrentPages(); //获取加载的页面\n\t\tlet currentPage = pages[pages.length - 1]; //获取当前页面的对象\n\t\tlet url = currentPage.route; //当前页面url\n\t\tlet item = currentPage.options; //如果要获取url中所带的参数可以查看options\n\t\tlet shareObj = {\n\t\t\ttitle: this.goodsObjact.store_name + ' 价格:' + this.goodsObjact.price, // 默认是小程序的名称(可以写slogan等)\n\t\t\tpath: url + '?id=' + item.id + '&spread=' + this.userInfo.uid, // 默认是当前页面,必须是以‘/’开头的完整路径\n\t\t\timageUrl: this.goodsObjact.image,\n\t\t\tsuccess: function(res) {\n\t\t\t\t// 转发成功之后的回调\n\t\t\t\tif (res.errMsg == 'shareAppMessage:ok') {\n\t\t\t\t}\n\t\t\t},\n\t\t\tfail: function() {\n\t\t\t\t// 转发失败之后的回调\n\t\t\t\tif (res.errMsg == 'shareAppMessage:fail cancel') {\n\t\t\t\t\t// 用户取消转发\n\t\t\t\t} else if (res.errMsg == 'shareAppMessage:fail') {\n\t\t\t\t\t// 转发失败,其中 detail message 为详细失败信息\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\treturn shareObj;\n\t},\n\tmethods: {\n\t\t//选择规格\n\t\tselectSpec(item, arr, ind) {\n\t\t\tarr.attr_value.forEach(function(e) {\n\t\t\t\te.check = false;\n\t\t\t});\n\t\t\titem.check = true;\n\t\t\tlet obj = this;\n\t\t\tobj.specSelected[ind] = item.attr;\n\t\t\tlet str = obj.specSelected.join(',');\n\t\t\t// 获取当前选中的对象\n\t\t\tif (obj.productValue[str]) {\n\t\t\t\tobj.buys_show = true;\n\t\t\t\tobj.buys_shows = false;\n\t\t\t\tobj.actionPrice = obj.productValue[str].price;\n\t\t\t\tobj.goodsNumberMax = obj.productValue[str].stock;\n\t\t\t\tobj.actionImage = obj.productValue[str].image;\n\t\t\t\tobj.uniqueId = obj.productValue[str].unique;\n\t\t\t\tobj.goodsStore = obj.productValue[str].stock;\n\t\t\t} else {\n\t\t\t\t(obj.buys_show = false), (obj.buys_shows = true);\n\t\t\t}\n\t\t\tif (obj.goodsStore == 0) {\n\t\t\t\tobj.buys_show = false;\n\t\t\t\tobj.buys_shows = true;\n\t\t\t}\n\t\t\tobj.specSelected[ind] = item.attr;\n\t\t},\n\t\t// 打開彈窗\n\t\tspecOPne(type=1) {\n\t\t\tlet obj = this;\n\t\t\tobj.specClass = 'show';\n\t\t\tobj.type = type\n\t\t},\n\t\t//规格弹窗开关\n\t\ttoggleSpec(str) {\n\t\t\tif (this.specClass === 'show') {\n\t\t\t\tthis.specClass = 'hide';\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.specClass = 'none';\n\t\t\t\t}, 250);\n\t\t\t} else if (this.specClass === 'none') {\n\t\t\t\tthis.specClass = 'show';\n\t\t\t}\n\t\t\t// 保存当前购买类型\n\t\t\tthis.type = str;\n\t\t},\n\t\t//领取优惠券\n\t\tGetcoupon() {\n\t\t\tuni.navigateTo({\n\t\t\t\turl: '/pages/coupon/getcoupon'\n\t\t\t});\n\t\t},\n\t\t//详情页\n\t\tnavToDetailPage(item) {\n\t\t\tlet id = item.id;\n\t\t\tuni.navigateTo({\n\t\t\t\turl: '/pages/product/product?id=' + id\n\t\t\t});\n\t\t},\n\t\t// 跳转页面\n\t\tnavTo(url) {\n\t\t\tuni.navigateTo({\n\t\t\t\turl: '/pages/product/reply?id=' + this.goodsid\n\t\t\t});\n\t\t},\n\t\t//加入购物车\n\t\tAddcar(item) {\n\t\t\tlet obj = this;\r\n\t\t\tif(obj.userInfo) {\r\n\t\t\t\tif(obj.userInfo.is_real == 1) {\r\n\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\n\t\t\tcartAdd({\n\t\t\t\tcartNum: '1', //商品数量\n\t\t\t\tuniqueId: '', //商品标签\n\t\t\t\tnew: 0, //商品是否新增加到购物车1为不加入0为加入\n\t\t\t\tmer_id: '',\n\t\t\t\tproductId: item.id //商品编号\n\t\t\t})\n\t\t\t\t.then(function(e) {\n\t\t\t\t\tuni.showToast({\n\t\t\t\t\t\ttitle: '成功加入购物车',\n\t\t\t\t\t\ttype: 'top',\n\t\t\t\t\t\tduration: 500,\n\t\t\t\t\t\ticon: 'none'\n\t\t\t\t\t});\n\n\t\t\t\t\tobj.goodsDetail();\n\t\t\t\t})\n\t\t\t\t.catch(e => {\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t});\n\t\t},\n\t\tgoodsDetail() {\n\t\t\tlet obj = this;\n\t\t\t// 获取普通商品信息\n\t\t\tgoodsDetail({}, this.goodsid).then(function({ data }) {\n\t\t\t\tobj.list = data;\n\t\t\t\tobj.good_list = data.good_list; //保存猜你喜欢列表\n\t\t\t\tobj.reply = data.reply; //保存评论列表\n\t\t\t\tlet goods = data.storeInfo;\n\t\t\t\tobj.goodsObjact = goods;\n\t\t\t\tif (obj.goodsObjact.description != null) {\n\t\t\t\t\tobj.description = obj.goodsObjact.description.replace(/\\<img/gi, '<img class=\"rich-img\"');\n\t\t\t\t} //小程序商品详情图超出屏幕问题\n\t\t\t\tobj.imgList = goods.slider_image; //保存轮播图\n\t\t\t\tobj.specList = data.productAttr; //保存分类列表\n\t\t\t\tif (Array.isArray(data.productValue) != true) {\n\t\t\t\t\tobj.many = 2;\n\t\t\t\t\tobj.specList = data.productAttr; //保存产品属性\n\t\t\t\t\tobj.productValue = data.productValue; //保存属性值\n\t\t\t\t\tobj.specSelected = []; //初始化默认选择对象\n\t\t\t\t\tfor (let i = 0; i < obj.specList.length; i++) {\n\t\t\t\t\t\t// 设置默认数据\n\t\t\t\t\t\tlet attrValue = obj.specList[i].attr_value[0];\n\t\t\t\t\t\tattrValue.check = true;\n\t\t\t\t\t\tobj.specSelected.push(attrValue.attr);\n\t\t\t\t\t}\n\t\t\t\t\tlet str = obj.specSelected.join(',');\n\t\t\t\t\tconsole.log(str, 'str');\n\t\t\t\t\t// 设置默认值\n\t\t\t\t\tobj.actionPrice = obj.productValue[str].price;\n\t\t\t\t\tobj.goodsNumberMax = obj.productValue[str].stock;\n\t\t\t\t\tobj.actionImage = obj.productValue[str].image;\n\t\t\t\t\tobj.uniqueId = obj.productValue[str].unique;\n\t\t\t\t\tobj.goodsStore = obj.productValue[str].quota;\n\t\t\t\t} else {\n\t\t\t\t\tobj.many = 1;\n\t\t\t\t}\n\t\t\t\tobj.productValue = data.productValue; //保存分类查询数据\n\t\t\t\tobj.actionPrice = goods.price; //保存默认选中商品价格\n\t\t\t\tobj.actionImage = goods.image_base; //保存默认选中商品图片\n\t\t\t\tobj.goodsNumberMax = goods.stock; //保存默认选中最大可购买商品数量\n\t\t\t\tobj.shopId = data.mer_id; //保存商店id\n\t\t\t});\n\t\t},\n\t\t// 立即购买\n\t\tbuy() {\n\t\t\tlet obj = this;\n\t\t\t// 创建传值对象\n\t\t\tlet data = {\n\t\t\t\t\tcartNum: obj.goodsNumber, //商品数量\n\t\t\t\t\tnew: 1,\n\t\t\t\t\tproductId: obj.goodsid,//商品编号\n\t\t\t\t\tuniqueId:obj.uniqueId\n\t\t\t\t};\n\t\t\t\n\t\t\tif (obj.type == 2) {\n\t\t\t\tdata.new = 0;\n\t\t\t}\n\t\t\tcartAdd(data)\n\t\t\t\t.then(function(e) {\n\t\t\t\t\tlet da = e.data;\n\t\t\t\t\tif (obj.type == 1) {\n\t\t\t\t\t\t// 跳转到支付页\n\t\t\t\t\t\tuni.navigateTo({\n\t\t\t\t\t\t\turl: '/pages/order/createOrder?id=' + da.cartId\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif (obj.type == 2) {\n\t\t\t\t\t\tuni.showToast({\n\t\t\t\t\t\t\ttitle: '成功加入购物车',\n\t\t\t\t\t\t\ttype: 'top',\n\t\t\t\t\t\t\tduration: 2000,\n\t\t\t\t\t\t\ticon: 'none'\n\t\t\t\t\t\t});\n\t\t\t\t\t\tobj.goodsDetail();\n\t\t\t\t\t}\n\t\t\t\t\tobj.toggleSpec()\n\t\t\t\t})\n\t\t\t\t.catch(e => {\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t});\n\t\t},\n\t\t// 阻止触发上级事件\n\t\tstopPrevent() {}\n\t}\n};\n</script>\n\n<style lang=\"scss\">\n/* 弹出层 */\n.popup {\n\tposition: fixed;\n\tleft: 0;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tz-index: 99;\n\t&.show {\n\t\tdisplay: block;\n\n\t\t.mask {\n\t\t\tanimation: showPopup 0.2s linear both;\n\t\t}\n\n\t\t.layer {\n\t\t\tanimation: showLayer 0.2s linear both;\n\t\t}\n\t}\n\n\t&.hide {\n\t\t.mask {\n\t\t\tanimation: hidePopup 0.2s linear both;\n\t\t}\n\n\t\t.layer {\n\t\t\tanimation: hideLayer 0.2s linear both;\n\t\t}\n\t}\n\n\t&.none {\n\t\tdisplay: none;\n\t}\n\n\t.mask {\n\t\tposition: fixed;\n\t\ttop: 0;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tz-index: 1;\n\t\tbackground-color: rgba(0, 0, 0, 0.4);\n\t}\n\n\t.layer {\n\t\tposition: fixed;\n\t\tz-index: 99;\n\t\tbottom: 0;\n\t\twidth: 100%;\n\t\tmin-height: 35vh;\n\t\tborder-radius: 10rpx 10rpx 0 0;\n\t\tbackground-color: #fff;\n\n\t\t.btn {\n\t\t\theight: 66rpx;\n\t\t\tline-height: 66rpx;\n\t\t\tborder-radius: 100rpx;\n\t\t\tbackground: $bg-green-gradual;\n\t\t\tfont-size: $font-base + 2rpx;\n\t\t\tcolor: #fff;\n\t\t\tmargin: 30rpx auto 20rpx;\n\t\t}\n\t}\n\n\t@keyframes showPopup {\n\t\t0% {\n\t\t\topacity: 0;\n\t\t}\n\n\t\t100% {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t@keyframes hidePopup {\n\t\t0% {\n\t\t\topacity: 1;\n\t\t}\n\n\t\t100% {\n\t\t\topacity: 0;\n\t\t}\n\t}\n\n\t@keyframes showLayer {\n\t\t0% {\n\t\t\ttransform: translateY(120%);\n\t\t}\n\n\t\t100% {\n\t\t\ttransform: translateY(0%);\n\t\t}\n\t}\n\n\t@keyframes hideLayer {\n\t\t0% {\n\t\t\ttransform: translateY(0);\n\t\t}\n\n\t\t100% {\n\t\t\ttransform: translateY(120%);\n\t\t}\n\t}\n}\n/* 规格选择弹窗 */\n.attr-content {\n\tpadding: 25rpx 30rpx;\n\n\t.a-t {\n\t\tdisplay: flex;\n\n\t\timage {\n\t\t\twidth: 170rpx;\n\t\t\theight: 170rpx;\n\t\t\tflex-shrink: 0;\n\t\t\tborder-radius: 8rpx;\n\t\t}\n\n\t\t.right {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tpadding-left: 24rpx;\n\t\t\tfont-size: $font-sm + 2rpx;\n\t\t\tcolor: $font-color-base;\n\t\t\tline-height: 42rpx;\n\t\t\twidth: 75%;\n\n\t\t\t.price {\n\t\t\t\tfont-size: $font-lg;\n\t\t\t\tcolor: $uni-color-primary;\n\t\t\t\tmargin: 10rpx 0rpx;\n\t\t\t}\n\n\t\t\t.name {\n\t\t\t\tfont-size: 32rpx;\n\t\t\t\tcolor: $font-color-dark;\n\t\t\t\theight: 50rpx;\n\t\t\t\toverflow: hidden;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\tdisplay: block;\n\t\t\t}\n\n\t\t\t.selected-text {\n\t\t\t\tmargin-right: 10rpx;\n\t\t\t}\n\t\t}\n\t}\n\n\t.attr-list {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tfont-size: $font-base + 2rpx;\n\t\tcolor: $font-color-base;\n\t\tpadding-top: 30rpx;\n\t\tpadding-left: 10rpx;\n\t}\n\n\t.item-list {\n\t\tpadding: 20rpx 0 0;\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\n\t\ttext {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tbackground: #eee;\n\t\t\tmargin-right: 20rpx;\n\t\t\tmargin-bottom: 20rpx;\n\t\t\tborder-radius: 100rpx;\n\t\t\tmin-width: 60rpx;\n\t\t\theight: 60rpx;\n\t\t\tpadding: 0 20rpx;\n\t\t\tfont-size: $font-base;\n\t\t\tcolor: $font-color-dark;\n\t\t}\n\n\t\t.selected {\n\t\t\tbackground: #ddffdf;\n\t\t\tcolor: $uni-color-primary;\n\t\t}\n\t}\n}\n\n//默认商品底部高度\n.goodsBottom {\n\theight: 160rpx;\n}\npage {\n\tbackground: #f0f0f0;\n}\n//秒杀、拼团底部高度\n.contentBottomHeight {\n\theight: 110rpx;\n}\n//默认商品底部高度\n.goodsBottom {\n\theight: 160rpx;\n}\n/deep/ .iconenter {\n\tfont-size: $font-base + 2rpx;\n\tcolor: #888;\n}\n/deep/ .con_image {\n\twidth: 130rpx;\n\theight: 130rpx;\n\tdisplay: inline-block;\n\tpadding: 15rpx;\n\timage {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t}\n}\n/* 商品详情中限制图片大小 */\n/deep/ .rich-img {\n\twidth: 100% !important;\n\theight: auto;\n}\n</style>\n","import mod from \"-!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--8-oneOf-1-0!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-1!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-2!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--8-oneOf-1-3!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\sass-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-4!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-5!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./product.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--8-oneOf-1-0!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-1!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-2!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--8-oneOf-1-3!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\sass-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-4!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-5!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!E:\\\\soft\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./product.vue?vue&type=style&index=0&lang=scss&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1630044237546\n var cssReload = require(\"E:/soft/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""}
|