1 |
- {"version":3,"sources":["uni-app:///main.js","webpack:///D:/2022/9/sx/pages/product/product.vue?4224","webpack:///D:/2022/9/sx/pages/product/product.vue?ff50","webpack:///D:/2022/9/sx/pages/product/product.vue?77cd","webpack:///D:/2022/9/sx/pages/product/product.vue?b527","uni-app:///pages/product/product.vue","webpack:///D:/2022/9/sx/pages/product/product.vue?093a","webpack:///D:/2022/9/sx/pages/product/product.vue?fb9d"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page"],"mappings":";;;;;;;;;;kDAAA;;;AAGA;AACA,kG,8FAHA;AACAA,EAAE,CAACC,iCAAH,GAAuCC,mBAAvC,CAGAC,UAAU,CAACC,gBAAD,CAAV,C;;;;;;;;;;;;;ACLA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoH;AACpH;AAC2D;AACL;AACc;;;AAGpE;AACqK;AACrK,gBAAgB,+KAAU;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;AAAimB,CAAgB,2nBAAG,EAAC,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACiErnB;AACA;AACA;AACA,uE;;;;;;;;;;;;;;;;;;;;AAoBA;AACA;AACA,wBADA;AAEA,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,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,KAzFA;AA0FA,eA1FA,yBA0FA;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,+CAFA,CAEA;AACA,wCAHA,CAGA;AACA,6CAJA,CAIA;AACA,2CALA,CAKA;AACA;AACA,iCArCA,CAqCA;AACA,OAtCA;AAuCA,KApIA;AAqIA;AACA,OAtIA,iBAsIA;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,KA1KA;AA2KA;AACA,eA5KA,yBA4KA,EA5KA,EA/HA,E;;;;;;;;;;;;;ACxFA;AAAA;AAAA;AAAA;AAA4oC,CAAgB,knCAAG,EAAC,C;;;;;;;;;;;ACAhqC;AACA,OAAO,KAAU,EAAE,kBAKd","file":"pages/product/product.js","sourcesContent":["import 'uni-pages';\n// @ts-ignore\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\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:\\\\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:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\templateLoader.js??vue-loader-options!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--16-0!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\template.js!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-uni-app-loader\\\\page-meta.js!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!E:\\\\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:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!E:\\\\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:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./product.vue?vue&type=script&lang=js&\"","<template>\r\n\t<view class=\"container\">\r\n\t\t<!-- 轮播图 -->\r\n\t\t<top-swiper :imgList=\"imgList\"></top-swiper>\r\n\t\t<!-- 标题 -->\r\n\t\t<product-content :goodsObjact=\"goodsObjact\"></product-content>\r\n\t\t<!-- 拼货时间及优惠 -->\r\n\t\t<!-- <discounts @clickCoupon=\"Getcoupon\" :Info=\"goodsObjact.store_info\" :showCoupon=\"true\"></discounts> -->\r\n\t\t<!-- 猜你喜欢 -->\r\n\t\t<!-- <guess-like @Addcar='Addcar' @clickNavTo='navToDetailPage' :goodList = 'good_list||[]'></guess-like> -->\r\n\t\t<!-- 评价 -->\r\n\t\t<estimate @navTo=\"navTo('/pages/product/reply?id=' + goodsid)\" v-if=\"reply\" :reply=\"reply\" :list=\"list\"></estimate>\r\n\t\t<!-- 规格信息 -->\r\n\t\t<fresh-detail :goodsObjact=\"goodsObjact\"></fresh-detail>\r\n\t\t<!-- 图文详情 -->\r\n\t\t<content-text :description=\"description\"></content-text>\r\n\t\t<!-- 底部高度撑开 -->\r\n\t\t<view class=\"contentBottomHeight\"></view>\r\n\t\t<!-- 底部操作菜单 -->\r\n\t\t<product-bottom @buy=\"buy\" :goodsObjact=\"goodsObjact\" :goodsid=\"goodsid\" @specOPne=\"specOPne\"></product-bottom>\r\n\t\t<!-- 规格-模态层弹窗 -->\r\n\t\t<view class=\"popup spec\" :class=\"specClass\" @touchmove.stop.prevent=\"stopPrevent\" @click=\"toggleSpec\">\r\n\t\t\t<!-- 遮罩层 -->\r\n\t\t\t<view class=\"mask\"></view>\r\n\t\t\t<view class=\"layer attr-content\" @click.stop=\"stopPrevent\">\r\n\t\t\t\t<view class=\"a-t\">\r\n\t\t\t\t\t<image :src=\"actionImage\"></image>\r\n\t\t\t\t\t<view class=\"right\">\r\n\t\t\t\t\t\t<text class=\"name\">{{ goodsObjact.store_name }}</text>\r\n\t\t\t\t\t\t<text class=\"price\">¥{{ actionPrice * goodsNumber }}</text>\r\n\t\t\t\t\t\t<text class=\"stock\">库存:{{ goodsStore }}件</text>\r\n\t\t\t\t\t\t<view class=\"selected\" v-if=\"specList != ''\">\r\n\t\t\t\t\t\t\t已选:\r\n\t\t\t\t\t\t\t<text class=\"selected-text\" v-for=\"(sItem, sIndex) in specSelected\" :key=\"sIndex\">{{ sItem }}</text>\r\n\t\t\t\t\t\t</view>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view>\r\n\t\t\t\t<view v-for=\"(item, index) in specList\" :key=\"index\" class=\"attr-list\">\r\n\t\t\t\t\t<text>{{ item.attr_name }}</text>\r\n\t\t\t\t\t<view class=\"item-list\">\r\n\t\t\t\t\t\t<text\r\n\t\t\t\t\t\t\tv-for=\"(childItem, childIndex) in item.attr_value\"\r\n\t\t\t\t\t\t\t:key=\"childIndex\"\r\n\t\t\t\t\t\t\tclass=\"tit\"\r\n\t\t\t\t\t\t\t:class=\"{ selected: childItem.check }\"\r\n\t\t\t\t\t\t\t@click=\"selectSpec(childItem, item, index)\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{{ childItem.attr }}\r\n\t\t\t\t\t\t</text>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view>\r\n\t\t\t\t<!-- <view class=\"attr-list\">\r\n\t\t\t\t\t<text>购买数量</text>\r\n\t\t\t\t\t<view class=\"item-list\">\r\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>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view> -->\r\n\t\t\t\t<button class=\"btn\" @click.stop=\"buy\" v-show=\"buys_show\">完成</button>\r\n\t\t\t\t<button class=\"btn\" style=\"background-color: #999999;\" v-show=\"buys_shows\">售罄</button>\r\n\t\t\t</view>\r\n\t\t</view>\r\n\t</view>\r\n</template>\r\n\r\n<script>\r\nimport { goodsDetail, cartAdd } from '@/api/product.js';\r\nimport { mapState } from 'vuex';\r\nimport store from '@/store/index.js';\r\nimport { saveUrl } from '@/utils/loginUtils.js';\r\n// #ifdef H5\r\nimport { weixindata } from '@/utils/wxAuthorized';\r\n// #endif\r\n// 头部轮播图\r\nimport topSwiper from './common/topSwiper.vue';\r\n// 标题\r\nimport productContent from './common/productContent.vue';\r\n// 到货时间及优惠\r\nimport discounts from './common/discounts.vue';\r\n// 规格信息\r\nimport freshDetail from './common/freshDetail.vue';\r\n// 图文详情\r\nimport contentText from './common/contentText.vue';\r\n// 底部按钮\r\nimport productBottom from './common/productBottom.vue';\r\n// 猜你喜欢\r\nimport guessLike from './common/guessLike.vue';\r\n// 评价\r\nimport estimate from './common/estimate.vue';\r\nexport default {\r\n\tcomponents: {\r\n\t\tguessLike,\r\n\t\ttopSwiper,\r\n\t\tproductContent,\r\n\t\tdiscounts,\r\n\t\tfreshDetail,\r\n\t\tcontentText,\r\n\t\tproductBottom,\r\n\t\testimate\r\n\t},\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tgoodsStore: 0, //选中库存\r\n\t\t\tspecList: [],\r\n\t\t\tbuys_show: true,\r\n\t\t\tbuys_shows: false,\r\n\t\t\tspecSelected: [], //选中的分类\r\n\t\t\tspecClass: 'none', //显示隐藏弹窗\r\n\t\t\tmany: 1, //1是单规格 2是多规格\r\n\t\t\treply: '', //评论\r\n\t\t\tlist: '', //商品详情的数据\r\n\t\t\ttype: 1, //默认支付方式add为\r\n\t\t\tgoodsType: 0,\r\n\t\t\tgoodsNumber: 1, //购买数量\r\n\t\t\tgoodsid: '', //商品id\r\n\t\t\tdescription: '', //商品描述\r\n\t\t\tgoodsObjact: {\r\n\t\t\t\tpercent: 1\r\n\t\t\t}, //保存商品数据\r\n\t\t\t//图片循环\r\n\t\t\timgList: [],\r\n\t\t\t// 对比对象\r\n\t\t\tactionPrice: 0, //默认选中商品价格\r\n\t\t\tactionImage: '', //默认选中图片\r\n\t\t\tgood_list: '', //猜你喜欢列表\r\n\t\t\tgoodsNumberMax: 0, //最大可购买数量\r\n\t\t\t// 倒计时数据保存\r\n\t\t\tseckillObj: {\r\n\t\t\t\tstopTime: 0, //结束时间\r\n\t\t\t\tstop: false, //是否结束\r\n\t\t\t\tstopTimeH: 0, //小时\r\n\t\t\t\tstopTimeM: 0, //分钟\r\n\t\t\t\tstopTimeS: 0, //秒钟\r\n\t\t\t\tstopTimeD: 0, //天\r\n\t\t\t\tupTime: 0 //更新组件内部组件用\r\n\t\t\t},\r\n\t\t\t// 拼团数据保存\r\n\t\t\tpink: {\r\n\t\t\t\tid: '', //拼团编号\r\n\t\t\t\tuid: '', //用户编号\r\n\t\t\t\tpeople: '', //拼团人数\r\n\t\t\t\tprice: '', //拼团价格\r\n\t\t\t\tstop_time: '', //拼团结束时间\r\n\t\t\t\tnickname: '', //团长昵称\r\n\t\t\t\tavatar: '', //团长头像\r\n\t\t\t\tcount: '', //拼团剩余人数\r\n\t\t\t\th: '', //时\r\n\t\t\t\ti: '', //分\r\n\t\t\t\ts: '' //秒\r\n\t\t\t},\r\n\t\t\tuserInfo: ''\r\n\t\t};\r\n\t},\r\n\tfilters: {\r\n\t\tparseIntTo(percent) {\r\n\t\t\tpercent = +percent * 100;\r\n\t\t\tif (percent % 1 === 0) {\r\n\t\t\t\treturn percent;\r\n\t\t\t} else {\r\n\t\t\t\tpercent = percent.toFixed(1);\r\n\t\t\t\treturn percent;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tasync onLoad(options) {\r\n\t\tlet obj = this;\r\n\t\tobj.userInfo = uni.getStorageSync('userInfo');\r\n\t\t//保存商品id\r\n\t\tthis.goodsid = options.id;\r\n\t\tthis.goodsType = options.type;\r\n\t\t// 判断有无人邀请\r\n\t\tif (options.spread) {\r\n\t\t\t// 存储邀请人\r\n\t\t\tuni.setStorageSync('spread', options.spread);\r\n\t\t}\r\n\t\tsaveUrl();\r\n\t\tthis.goodsDetail();\r\n\t\t// 注册邀请信息\r\n\t\t// #ifdef H5\r\n\t\tlet bool = uni.getStorageSync('weichatBrowser') || '';\r\n\t\tif (bool) {\r\n\t\t\tweixindata();\r\n\t\t}\r\n\t\t// #endif\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapState(['weichatObj', 'baseURL', 'urlFile'])\r\n\t},\r\n\t// 分享\r\n\tonShareAppMessage(options) {\r\n\t\t// 设置菜单中的转发按钮触发转发事件时的转发内容\r\n\t\tlet pages = getCurrentPages(); //获取加载的页面\r\n\t\tlet currentPage = pages[pages.length - 1]; //获取当前页面的对象\r\n\t\tlet url = currentPage.route; //当前页面url\r\n\t\tlet item = currentPage.options; //如果要获取url中所带的参数可以查看options\r\n\t\tlet shareObj = {\r\n\t\t\ttitle: this.goodsObjact.store_name + ' 价格:' + this.goodsObjact.price, // 默认是小程序的名称(可以写slogan等)\r\n\t\t\tpath: url + '?id=' + item.id + '&spread=' + this.userInfo.uid, // 默认是当前页面,必须是以‘/’开头的完整路径\r\n\t\t\timageUrl: this.goodsObjact.image,\r\n\t\t\tsuccess: function(res) {\r\n\t\t\t\t// 转发成功之后的回调\r\n\t\t\t\tif (res.errMsg == 'shareAppMessage:ok') {\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tfail: function() {\r\n\t\t\t\t// 转发失败之后的回调\r\n\t\t\t\tif (res.errMsg == 'shareAppMessage:fail cancel') {\r\n\t\t\t\t\t// 用户取消转发\r\n\t\t\t\t} else if (res.errMsg == 'shareAppMessage:fail') {\r\n\t\t\t\t\t// 转发失败,其中 detail message 为详细失败信息\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn shareObj;\r\n\t},\r\n\tmethods: {\r\n\t\t//选择规格\r\n\t\tselectSpec(item, arr, ind) {\r\n\t\t\tarr.attr_value.forEach(function(e) {\r\n\t\t\t\te.check = false;\r\n\t\t\t});\r\n\t\t\titem.check = true;\r\n\t\t\tlet obj = this;\r\n\t\t\tobj.specSelected[ind] = item.attr;\r\n\t\t\tlet str = obj.specSelected.join(',');\r\n\t\t\t// 获取当前选中的对象\r\n\t\t\tif (obj.productValue[str]) {\r\n\t\t\t\tobj.buys_show = true;\r\n\t\t\t\tobj.buys_shows = false;\r\n\t\t\t\tobj.actionPrice = obj.productValue[str].price;\r\n\t\t\t\tobj.goodsNumberMax = obj.productValue[str].stock;\r\n\t\t\t\tobj.actionImage = obj.productValue[str].image;\r\n\t\t\t\tobj.uniqueId = obj.productValue[str].unique;\r\n\t\t\t\tobj.goodsStore = obj.productValue[str].stock;\r\n\t\t\t} else {\r\n\t\t\t\t(obj.buys_show = false), (obj.buys_shows = true);\r\n\t\t\t}\r\n\t\t\tif (obj.goodsStore == 0) {\r\n\t\t\t\tobj.buys_show = false;\r\n\t\t\t\tobj.buys_shows = true;\r\n\t\t\t}\r\n\t\t\tobj.specSelected[ind] = item.attr;\r\n\t\t},\r\n\t\t// 打開彈窗\r\n\t\tspecOPne(type = 1) {\r\n\t\t\tlet obj = this;\r\n\t\t\tobj.specClass = 'show';\r\n\t\t\tobj.type = type;\r\n\t\t},\r\n\t\t//规格弹窗开关\r\n\t\ttoggleSpec(str) {\r\n\t\t\tif (this.specClass === 'show') {\r\n\t\t\t\tthis.specClass = 'hide';\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.specClass = 'none';\r\n\t\t\t\t}, 250);\r\n\t\t\t} else if (this.specClass === 'none') {\r\n\t\t\t\tthis.specClass = 'show';\r\n\t\t\t}\r\n\t\t\t// 保存当前购买类型\r\n\t\t\tthis.type = str;\r\n\t\t},\r\n\t\t//领取优惠券\r\n\t\tGetcoupon() {\r\n\t\t\tuni.navigateTo({\r\n\t\t\t\turl: '/pages/coupon/getcoupon'\r\n\t\t\t});\r\n\t\t},\r\n\t\t//详情页\r\n\t\tnavToDetailPage(item) {\r\n\t\t\tlet id = item.id;\r\n\t\t\tuni.navigateTo({\r\n\t\t\t\turl: '/pages/product/product?id=' + id\r\n\t\t\t});\r\n\t\t},\r\n\t\t// 跳转页面\r\n\t\tnavTo(url) {\r\n\t\t\tuni.navigateTo({\r\n\t\t\t\turl: '/pages/product/reply?id=' + this.goodsid\r\n\t\t\t});\r\n\t\t},\r\n\t\t//加入购物车\r\n\t\tAddcar(item) {\r\n\t\t\tlet obj = this;\r\n\t\t\tcartAdd({\r\n\t\t\t\tcartNum: '1', //商品数量\r\n\t\t\t\tuniqueId: '', //商品标签\r\n\t\t\t\tnew: 0, //商品是否新增加到购物车1为不加入0为加入\r\n\t\t\t\tmer_id: '',\r\n\t\t\t\tproductId: item.id //商品编号\r\n\t\t\t})\r\n\t\t\t\t.then(function(e) {\r\n\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\ttitle: '成功加入购物车',\r\n\t\t\t\t\t\ttype: 'top',\r\n\t\t\t\t\t\tduration: 500,\r\n\t\t\t\t\t\ticon: 'none'\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tobj.goodsDetail();\r\n\t\t\t\t})\r\n\t\t\t\t.catch(e => {\r\n\t\t\t\t\tconsole.log(e);\r\n\t\t\t\t});\r\n\t\t},\r\n\t\tgoodsDetail() {\r\n\t\t\tlet obj = this;\r\n\t\t\t// 获取普通商品信息\r\n\t\t\tgoodsDetail({}, this.goodsid).then(function({ data }) {\r\n\t\t\t\tobj.list = data;\r\n\t\t\t\tobj.good_list = data.good_list; //保存猜你喜欢列表\r\n\t\t\t\tobj.reply = data.reply; //保存评论列表\r\n\t\t\t\tlet goods = data.storeInfo;\r\n\t\t\t\tobj.goodsObjact = goods;\r\n\t\t\t\tif (obj.goodsObjact.description != null) {\r\n\t\t\t\t\tobj.description = obj.goodsObjact.description.replace(/\\<img/gi, '<img class=\"rich-img\"');\r\n\t\t\t\t} //小程序商品详情图超出屏幕问题\r\n\t\t\t\tobj.imgList = goods.slider_image; //保存轮播图\r\n\t\t\t\tobj.specList = data.productAttr; //保存分类列表\r\n\t\t\t\tif (Array.isArray(data.productValue) != true) {\r\n\t\t\t\t\tobj.many = 2;\r\n\t\t\t\t\tobj.specList = data.productAttr; //保存产品属性\r\n\t\t\t\t\tobj.productValue = data.productValue; //保存属性值\r\n\t\t\t\t\tobj.specSelected = []; //初始化默认选择对象\r\n\t\t\t\t\tfor (let i = 0; i < obj.specList.length; i++) {\r\n\t\t\t\t\t\t// 设置默认数据\r\n\t\t\t\t\t\tlet attrValue = obj.specList[i].attr_value[0];\r\n\t\t\t\t\t\tattrValue.check = true;\r\n\t\t\t\t\t\tobj.specSelected.push(attrValue.attr);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlet str = obj.specSelected.join(',');\r\n\t\t\t\t\tconsole.log(str, 'str');\r\n\t\t\t\t\t// 设置默认值\r\n\t\t\t\t\tobj.actionPrice = obj.productValue[str].price;\r\n\t\t\t\t\tobj.goodsNumberMax = obj.productValue[str].stock;\r\n\t\t\t\t\tobj.actionImage = obj.productValue[str].image;\r\n\t\t\t\t\tobj.uniqueId = obj.productValue[str].unique;\r\n\t\t\t\t\tobj.goodsStore = obj.productValue[str].quota;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tobj.many = 1;\r\n\t\t\t\t\tobj.productValue = data.productValue; //保存分类查询数据\r\n\t\t\t\t\tobj.actionPrice = goods.price; //保存默认选中商品价格\r\n\t\t\t\t\tobj.actionImage = goods.image_base; //保存默认选中商品图片\r\n\t\t\t\t\tobj.goodsNumberMax = goods.stock; //保存默认选中最大可购买商品数量\r\n\t\t\t\t}\r\n\t\t\t\tobj.shopId = data.mer_id; //保存商店id\r\n\t\t\t});\r\n\t\t},\r\n\t\t// 立即购买\r\n\t\tbuy() {\r\n\t\t\tlet obj = this;\r\n\t\t\t// 创建传值对象\r\n\t\t\tlet data = {\r\n\t\t\t\tcartNum: obj.goodsNumber, //商品数量\r\n\t\t\t\tnew: 1,\r\n\t\t\t\tproductId: obj.goodsid, //商品编号\r\n\t\t\t\tuniqueId: obj.uniqueId\r\n\t\t\t};\r\n\r\n\t\t\tif (obj.type == 2) {\r\n\t\t\t\tdata.new = 0;\r\n\t\t\t}\r\n\t\t\tcartAdd(data)\r\n\t\t\t\t.then(function(e) {\r\n\t\t\t\t\tlet da = e.data;\r\n\t\t\t\t\tif (obj.type == 1) {\r\n\t\t\t\t\t\t// 跳转到支付页\r\n\t\t\t\t\t\tuni.navigateTo({\r\n\t\t\t\t\t\t\turl: '/pages/order/createOrder?id=' + da.cartId\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (obj.type == 2) {\r\n\t\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\t\ttitle: '成功加入购物车',\r\n\t\t\t\t\t\t\ttype: 'top',\r\n\t\t\t\t\t\t\tduration: 2000,\r\n\t\t\t\t\t\t\ticon: 'none'\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tobj.goodsDetail();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tobj.toggleSpec();\r\n\t\t\t\t})\r\n\t\t\t\t.catch(e => {\r\n\t\t\t\t\tconsole.log(e);\r\n\t\t\t\t});\r\n\t\t},\r\n\t\t// 阻止触发上级事件\r\n\t\tstopPrevent() {}\r\n\t}\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n/* 弹出层 */\r\n.popup {\r\n\tposition: fixed;\r\n\tleft: 0;\r\n\ttop: 0;\r\n\tright: 0;\r\n\tbottom: 0;\r\n\tz-index: 99;\r\n\t&.show {\r\n\t\tdisplay: block;\r\n\r\n\t\t.mask {\r\n\t\t\tanimation: showPopup 0.2s linear both;\r\n\t\t}\r\n\r\n\t\t.layer {\r\n\t\t\tanimation: showLayer 0.2s linear both;\r\n\t\t}\r\n\t}\r\n\r\n\t&.hide {\r\n\t\t.mask {\r\n\t\t\tanimation: hidePopup 0.2s linear both;\r\n\t\t}\r\n\r\n\t\t.layer {\r\n\t\t\tanimation: hideLayer 0.2s linear both;\r\n\t\t}\r\n\t}\r\n\r\n\t&.none {\r\n\t\tdisplay: none;\r\n\t}\r\n\r\n\t.mask {\r\n\t\tposition: fixed;\r\n\t\ttop: 0;\r\n\t\twidth: 100%;\r\n\t\theight: 100%;\r\n\t\tz-index: 1;\r\n\t\tbackground-color: rgba(0, 0, 0, 0.4);\r\n\t}\r\n\r\n\t.layer {\r\n\t\tposition: fixed;\r\n\t\tz-index: 99;\r\n\t\tbottom: 0;\r\n\t\twidth: 100%;\r\n\t\tmin-height: 35vh;\r\n\t\tborder-radius: 10rpx 10rpx 0 0;\r\n\t\tbackground-color: #fff;\r\n\r\n\t\t.btn {\r\n\t\t\theight: 66rpx;\r\n\t\t\tline-height: 66rpx;\r\n\t\t\tborder-radius: 100rpx;\r\n\t\t\tbackground: $uni-color-primary;\r\n\t\t\tfont-size: $font-base + 2rpx;\r\n\t\t\tcolor: #fff;\r\n\t\t\tmargin: 30rpx auto 20rpx;\r\n\t\t}\r\n\t}\r\n\r\n\t@keyframes showPopup {\r\n\t\t0% {\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\r\n\t\t100% {\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\r\n\t@keyframes hidePopup {\r\n\t\t0% {\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\r\n\t\t100% {\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t}\r\n\r\n\t@keyframes showLayer {\r\n\t\t0% {\r\n\t\t\ttransform: translateY(120%);\r\n\t\t}\r\n\r\n\t\t100% {\r\n\t\t\ttransform: translateY(0%);\r\n\t\t}\r\n\t}\r\n\r\n\t@keyframes hideLayer {\r\n\t\t0% {\r\n\t\t\ttransform: translateY(0);\r\n\t\t}\r\n\r\n\t\t100% {\r\n\t\t\ttransform: translateY(120%);\r\n\t\t}\r\n\t}\r\n}\r\n/* 规格选择弹窗 */\r\n.attr-content {\r\n\tpadding: 25rpx 30rpx;\r\n\r\n\t.a-t {\r\n\t\tdisplay: flex;\r\n\r\n\t\timage {\r\n\t\t\twidth: 170rpx;\r\n\t\t\theight: 170rpx;\r\n\t\t\tflex-shrink: 0;\r\n\t\t\tborder-radius: 8rpx;\r\n\t\t}\r\n\r\n\t\t.right {\r\n\t\t\tdisplay: flex;\r\n\t\t\tflex-direction: column;\r\n\t\t\tpadding-left: 24rpx;\r\n\t\t\tfont-size: $font-sm + 2rpx;\r\n\t\t\tcolor: $font-color-base;\r\n\t\t\tline-height: 42rpx;\r\n\t\t\twidth: 75%;\r\n\r\n\t\t\t.price {\r\n\t\t\t\tfont-size: $font-lg;\r\n\t\t\t\tcolor: $uni-color-primary;\r\n\t\t\t\tmargin: 10rpx 0rpx;\r\n\t\t\t}\r\n\r\n\t\t\t.name {\r\n\t\t\t\tfont-size: 32rpx;\r\n\t\t\t\tcolor: $font-color-dark;\r\n\t\t\t\theight: 50rpx;\r\n\t\t\t\toverflow: hidden;\r\n\t\t\t\ttext-overflow: ellipsis;\r\n\t\t\t\twhite-space: nowrap;\r\n\t\t\t\tdisplay: block;\r\n\t\t\t}\r\n\r\n\t\t\t.selected-text {\r\n\t\t\t\tmargin-right: 10rpx;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t.attr-list {\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: column;\r\n\t\tfont-size: $font-base + 2rpx;\r\n\t\tcolor: $font-color-base;\r\n\t\tpadding-top: 30rpx;\r\n\t\tpadding-left: 10rpx;\r\n\t}\r\n\r\n\t.item-list {\r\n\t\tpadding: 20rpx 0 0;\r\n\t\tdisplay: flex;\r\n\t\tflex-wrap: wrap;\r\n\r\n\t\ttext {\r\n\t\t\tdisplay: flex;\r\n\t\t\talign-items: center;\r\n\t\t\tjustify-content: center;\r\n\t\t\tbackground: #eee;\r\n\t\t\tmargin-right: 20rpx;\r\n\t\t\tmargin-bottom: 20rpx;\r\n\t\t\tborder-radius: 100rpx;\r\n\t\t\tmin-width: 60rpx;\r\n\t\t\theight: 60rpx;\r\n\t\t\tpadding: 0 20rpx;\r\n\t\t\tfont-size: $font-base;\r\n\t\t\tcolor: $font-color-dark;\r\n\t\t}\r\n\r\n\t\t.selected {\r\n\t\t\tbackground: #ddffdf;\r\n\t\t\tcolor: $uni-color-primary;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n//默认商品底部高度\r\n.goodsBottom {\r\n\theight: 160rpx;\r\n}\r\npage {\r\n\tbackground: #f0f0f0;\r\n}\r\n//秒杀、拼团底部高度\r\n.contentBottomHeight {\r\n\theight: 110rpx;\r\n}\r\n//默认商品底部高度\r\n.goodsBottom {\r\n\theight: 160rpx;\r\n}\r\n/deep/ .iconenter {\r\n\tfont-size: $font-base + 2rpx;\r\n\tcolor: #888;\r\n}\r\n/deep/ .con_image {\r\n\twidth: 130rpx;\r\n\theight: 130rpx;\r\n\tdisplay: inline-block;\r\n\tpadding: 15rpx;\r\n\timage {\r\n\t\twidth: 100%;\r\n\t\theight: 100%;\r\n\t}\r\n}\r\n/* 商品详情中限制图片大小 */\r\n/deep/ .rich-img {\r\n\twidth: 100% !important;\r\n\theight: auto;\r\n}\r\n</style>\n","import mod from \"-!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--8-oneOf-1-0!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-1!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-2!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--8-oneOf-1-3!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\sass-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-4!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-5!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!E:\\\\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:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--8-oneOf-1-0!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-1!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-2!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--8-oneOf-1-3!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\sass-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-4!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-5!E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!E:\\\\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 // 1663056411470\n var cssReload = require(\"E:/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":""}
|