| <template> | 
|     <view class="box"> | 
|         <view class="box_bg" :style="{backgroundImage: 'url(' + Config.resourcePath + Config.bgImg + ')'}"></view> | 
|         <view class="box_user"> | 
|             <text>欢迎{{User.username}}登录</text> | 
|             <view class="box_user_btn" @click="loginOut">退出登录</view> | 
|         </view> | 
|         <view class="box_content" :style="{maxWidth: Config.rangeSize + 'px', minWidth: Config.rangeSize + 'px'}"> | 
|             <!-- 广告图 --> | 
|             <view class="advertisement"> | 
|                 <image :src="Config.resourcePath + Config.topImg" mode="widthFix"></image> | 
|             </view> | 
|              | 
|             <view class="box_content_left" v-if="status > 0" @click="fanhuiPage"> | 
|                 <image src="@/static/ic_left@2x.png" mode="widthFix"></image> | 
|             </view> | 
|             <view class="box_content_right" @click="xiaPage" v-if="status > 0 && status !== 2"> | 
|                 <image src="@/static/ic_right@2x.png" mode="widthFix"></image> | 
|             </view> | 
|              | 
|             <!-- 一键清空按钮 --> | 
|             <view class="box_content_close" v-if="status === 0" @click="empty"> | 
|                 一键清空 | 
|             </view> | 
|              | 
|             <!-- 首页 --> | 
|             <template v-if="status === 0"> | 
|                 <view class="commodityFrom" v-if="shopList && shopList.length > 0"> | 
|                     <view class="commodityFrom_head"> | 
|                         <view class="commodityFrom_head_item">类别</view> | 
|                         <view class="commodityFrom_head_item">品牌</view> | 
|                         <view class="commodityFrom_head_item">型号</view> | 
|                         <view class="commodityFrom_head_item">指导价</view> | 
|                         <view class="commodityFrom_head_item">入手价</view> | 
|                     </view> | 
|                     <view class="commodityFrom_body"> | 
|                         <view class="commodityFrom_body_content"> | 
|                             <view class="commodityFrom_body_content_item" v-for="(item, index) in shopList" :key="index"> | 
|                                 <view class="commodityFrom_body_content_item_num"> | 
|                                     <view class="commodityFrom_body_content_item_num_img"> | 
|                                         <image :src="item.categoryImgurl" mode="widthFix"></image> | 
|                                     </view> | 
|                                     <text>{{item.categoryName}}</text> | 
|                                     <!-- {{stringOperations(item.categoryName, 4)}} --> | 
|                                 </view> | 
|                                  <!-- @click="open(index, 1)" --> | 
|                                 <view class="commodityFrom_body_content_item_num" @mouseenter.stop="mouseenterP(index, item.categoryId)" @mouseleave.stop="mouseleaveP(index)"> | 
|                                     <!-- {{stringOperations(item.brandName, 4)}}  brandData --> | 
|                                     <text>{{item.brandName}}</text>  | 
|                                     <view class="drop-down" :style="{ opacity: item.ppShow ? opacity : '0', zIndex: item.ppShow ? zIndex : '-1' }"> | 
|                                         <view class="drop-down-item" v-for="(child, i) in item.ppData" :key="i" @click.stop="clickBrand(item, child, index)"> | 
|                                             <text>{{child.name}}</text> | 
|                                         </view> | 
|                                     </view> | 
|                                 </view> | 
|                                  <!-- @click="open(index, 2)" --> | 
|                                 <view class="commodityFrom_body_content_item_num" @mouseenter.stop="mouseenterX(index)" @mouseleave.stop="mouseleaveX(index)"> | 
|                                     <!-- {{stringOperations(item.name, 16)}} --> | 
|                                     <text>{{item.name}}</text> | 
|                                      | 
|                                     <view class="drop-top" v-show="item.name"> | 
|                                         {{item.name}} | 
|                                     </view> | 
|                                     <view class="drop-down" :style="{ opacity: item.xhShow ? opacity : '0', zIndex: item.xhShow ? zIndex : '-1' }"> | 
|                                         <view class="drop-down-item" v-for="(data, s) in item.xhData" :key="s" @click.stop="clickXH(data, index)"> | 
|                                             <!-- {{ stringOperations(data.name, 7)}} --> | 
|                                             <text>{{data.name}}</text> | 
|                                         </view> | 
|                                     </view> | 
|                                 </view> | 
|                                 <view class="commodityFrom_body_content_item_num"> | 
|                                     <text>{{ item.zdPrice }}</text> | 
|                                 </view> | 
|                                 <view class="commodityFrom_body_content_item_num"> | 
|                                     <input | 
|                                         type="number" | 
|                                         v-model="item.price" | 
|                                         @onkeyup="checkInput(this)" | 
|                                         @input="changePrice(item.price, index)" /> | 
|                                 </view> | 
|                                 <view class="commodityFrom_body_content_item_tips"> | 
|                                     <image src="@/static/ic_img@2x.png" mode="widthFix" @click="openImg(index)"></image> | 
|                                     <image src="@/static/ic_copy@2x.png" mode="widthFix" @click="copyItem(item)"></image> | 
|                                     <image src="@/static/ic_delete@2x.png" mode="widthFix" @click="deleItem(index)"></image> | 
|                                 </view> | 
|                             </view> | 
|                         </view> | 
|                         <view class="commodityFrom_body_total"> | 
|                             <view class="commodityFrom_body_total_item">总计:</view> | 
|                             <view class="commodityFrom_body_total_item"> | 
|                                 {{simplifyNum(zdj)}} | 
|                                 <!-- {{unitConvert(zdTotalPrice).num}}{{unitConvert(zdTotalPrice).unit}} --> | 
|                             </view> | 
|                             <view class="commodityFrom_body_total_item"> | 
|                                 {{simplifyNum(totalPrices)}} | 
|                                 <!-- {{unitConvert(totalPrice).num}}{{unitConvert(totalPrice).unit}} --> | 
|                             </view> | 
|                         </view> | 
|                     </view> | 
|                 </view> | 
|                 <view class="productCategory"> | 
|                 <view class="productCategory_list"> | 
|                     <view | 
|                     class="productCategory_list_item" | 
|                     v-for="(item, index) in category" | 
|                     :key="index" | 
|                     @click="clickItem(index, item.id, item.name)"> | 
|                         <image :src="item.imgurl ? item.prefixUrl + item.imgurl : ''" mode="widthFix"></image> | 
|                         <text>{{item.name}}</text> | 
|                     </view> | 
|                     <view class="productCategory_list_zw"></view> | 
|                     <view class="productCategory_list_zw"></view> | 
|                     <view class="productCategory_list_zw"></view> | 
|                     <view class="productCategory_list_zw"></view> | 
|                     <view class="productCategory_list_zw"></view> | 
|                 </view> | 
|             </view> | 
|             </template> | 
|              | 
|             <!-- 商品列表 --> | 
|             <template v-if="status === 1 || status === 2"> | 
|                 <view class="productPage"> | 
|                     <view class="productPage_head"> | 
|                         <view class="productPage_head_item" v-if="attrFirstList && attrFirstList.length > 0"> | 
|                             <text>{{attributeOne.name ? attributeOne.name : attrFirstName}}</text> | 
|                             <image src="@/static/ar_open@2x.png" mode="widthFix"></image> | 
|                             <view class="productPage_xl" v-if="attrFirstList.length > 0"> | 
|                                 <view class="productPage_xl_iten" v-for="(item, index) in attrFirstList" :key="index" @click="clickShopPageCheck(item, 1)"> | 
|                                     <text>{{item.name}}</text> | 
|                                 </view> | 
|                             </view> | 
|                         </view> | 
|                         <view class="productPage_head_item" v-if="attrSecondList && attrSecondList.length > 0"> | 
|                             <text>{{attributeTwo.name ? attributeTwo.name : attrSecondName}}</text> | 
|                             <image src="@/static/ar_open@2x.png" mode="widthFix"></image> | 
|                             <view class="productPage_xl" v-if="attrSecondList.length > 0"> | 
|                                 <view class="productPage_xl_iten" v-for="(item, index) in attrSecondList" :key="index" @click="clickShopPageCheck(item, 2)"> | 
|                                     <text>{{item.name}}</text> | 
|                                 </view> | 
|                             </view> | 
|                         </view> | 
|                         <view class="productPage_head_item"> | 
|                             <text v-if="budget.type == 1 || budget.type == 2">{{budget.name}}</text> | 
|                             <text v-else>{{budget.max && budget.min ? budget.min + '~' + budget.max : '预算'}}</text> | 
|                             <image src="@/static/ar_open@2x.png" mode="widthFix"></image> | 
|                             <view class="productPage_xl" v-if="budgetList.length > 0"> | 
|                                 <view class="productPage_xl_iten" v-for="(item, index) in budgetList" :key="index" @click="clickShopPageCheck(item, 3)"> | 
|                                     <template v-if="!item.name"> | 
|                                         <text>{{item.minamount}}~{{item.maxamount}}</text> | 
|                                     </template> | 
|                                     <template v-else> | 
|                                         <text>{{item.name}}</text> | 
|                                     </template> | 
|                                 </view> | 
|                             </view> | 
|                         </view> | 
|                         <view class="productPage_head_item"> | 
|                             <text>{{shopPageBrand.name ? shopPageBrand.name : '品牌'}}</text> | 
|                             <image src="@/static/ar_open@2x.png" mode="widthFix"></image> | 
|                             <view class="productPage_xl" v-if="brandData1.length > 0"> | 
|                                 <view class="productPage_xl_iten" v-for="(item, index) in brandData1" :key="index" @click="clickShopPageCheck(item, 4)"> | 
|                                     <text>{{item.name}}</text> | 
|                                 </view> | 
|                             </view> | 
|                         </view> | 
|                     </view> | 
|                     <view class="productPage_pk" v-if="isPK || status === 2"> | 
|                         <view class="productPage_pk_shop"> | 
|                             <view class="productPage_pk_shop_sp" @click="openSearch('left')" v-if="JSON.stringify(leftShop) == '{}'"> | 
|                                 <image src="@/static/ic_add@2x.png" mode="widthFix"></image> | 
|                             </view> | 
|                             <view class="productPage_pk_shop_sp1" @click="clickPKshop(leftShop)" v-else> | 
|                                 <view class="productPage_pk_shop_sp1_img"> | 
|                                     <image :src="leftShop.imgurl ? leftShop.prefixUrl + leftShop.imgurl : ''" mode="widthFix"></image> | 
|                                 </view> | 
|                                 <text>{{leftShop.name}}</text> | 
|                             </view> | 
|                             <view class="productPage_pk_shop_t"> | 
|                                 <image :src="Config.resourcePath + Config.pkImg" mode="widthFix"></image> | 
|                             </view> | 
|                         </view> | 
|                         <view class="productPage_pk_z" @click="jumpPK"> | 
|                             <image src="@/static/ic_pk@2x.png" mode="widthFix"></image> | 
|                         </view> | 
|                         <view class="productPage_pk_shop"> | 
|                             <view class="productPage_pk_shop_sp" @click="openSearch('right')" v-if="JSON.stringify(rightShop) == '{}'"> | 
|                                 <image src="@/static/ic_add@2x.png" mode="widthFix"></image> | 
|                             </view> | 
|                             <view class="productPage_pk_shop_sp1" @click="clickPKshop(rightShop)" v-else> | 
|                                 <view class="productPage_pk_shop_sp1_img"> | 
|                                     <image :src="rightShop.imgurl ? rightShop.prefixUrl + rightShop.imgurl : ''" mode="widthFix"></image> | 
|                                 </view> | 
|                                 <text>{{rightShop.name}}</text> | 
|                             </view> | 
|                             <view class="productPage_pk_shop_t"> | 
|                                 <image :src="Config.resourcePath + Config.pkImg" mode="widthFix"></image> | 
|                             </view> | 
|                         </view> | 
|                     </view> | 
|                     <view class="productPage_shop" v-if="status === 1 && !pkcontent"> | 
|                         <noData v-if="shopPageData.length === 0 && shopPageDataSou.length === 0" /> | 
|                         <template v-else> | 
|                             <view class="productPage_shop_item" v-for="(item, index) in isSOU ? shopPageDataSou : shopPageData" :key="index" @click="clickshoppageItem(item)"> | 
|                                 <view class="productPage_shop_item_img"> | 
|                                     <image :src="item.imgurl ? item.prefixUrl + item.imgurl : ''" mode="widthFix"></image> | 
|                                 </view> | 
|                                 <!-- stringOperations(item.name, 6) --> | 
|                                 <text>{{item.name}}</text> | 
|                             </view> | 
|                             <view class="productPage_shop_zw"></view> | 
|                             <view class="productPage_shop_zw"></view> | 
|                             <view class="productPage_shop_zw"></view> | 
|                         </template> | 
|                     </view> | 
|                      <!-- v-if="status === 2" --> | 
|                     <view class="productPage_parameter" v-if="isPK && pkcontent"> | 
|                         <view class="productPage_parameter_item" v-for="(item, index) in [leftShop, rightShop]" :key="index"> | 
|                             <view class="productPage_parameter_item_head"> | 
|                                 <text>{{item.name}}</text> | 
|                             </view> | 
|                             <view class="productPage_parameter_item_content"> | 
|                                 <view class="productPage_parameter_item_content_price"> | 
|                                     <view class="zdj"> | 
|                                         <text>指导价:</text> | 
|                                         <text>¥{{item.zdPrice}}</text> | 
|                                     </view> | 
|                                     <view class="rsj"> | 
|                                         <text>建议入手价:</text> | 
|                                         <text>¥{{item.price}}</text> | 
|                                     </view> | 
|                                 </view> | 
|                                 <view class="productPage_parameter_item_content_nr"> | 
|                                     <view class="item" v-for="(child, i) in item.goodsParamList" :key="i"> | 
|                                         <view class="label">{{child.name}}:</view> | 
|                                         <view class="value">{{child.val}}</view> | 
|                                     </view> | 
|                                 </view> | 
|                             </view> | 
|                         </view> | 
|                     </view> | 
|                 </view> | 
|             </template> | 
|              | 
|             <!-- 查看大图 --> | 
|             <bigImg | 
|                 ref="bigImg" | 
|                 :imgList="imgList"/> | 
|             <!-- 查看大图 --> | 
|             <bigImg1 | 
|                 ref="bigImg1" | 
|                 :imgList="imgList"/> | 
|             <!-- 搜索 --> | 
|              | 
|             <!-- 搜索组件 --> | 
|             <search | 
|                 ref="search" | 
|                 :categoryList="category" | 
|                 :shopList="shopData" | 
|                 :status="status" | 
|                 :categoryName="categoryName" | 
|                 :categoryid="categoryId" | 
|                 @result="result" />  | 
|         </view> | 
|     </view> | 
| </template> | 
|   | 
| <script> | 
|     import bigImg from '@/components/bigImg.vue' | 
|     import bigImg1 from '@/components/bigImg1.vue' | 
|     import search from '@/components/search.vue' | 
|     import noData from '@/components/noData.vue' | 
|     import { mapState } from 'vuex' | 
|     import { categoryList, goodsList, brandList, h5Image, goodsPage, listForH5 } from '@/apis/index.js' | 
|     export default { | 
|         data() { | 
|             return { | 
|                 status: 0,    // 0首页 1商品列表 2pk页 | 
|                  | 
|                 img: '', | 
|                  | 
|                 opacity: 1, | 
|                 zIndex: 2, | 
|                  | 
|                 index: '', | 
|                  | 
|                 val: '', | 
|                  | 
|                 isPK: false, | 
|                 pkcontent: false, | 
|                  | 
|                 imgList: [],  // 查看图片数据集合 | 
|                 i: 0, | 
|                  | 
|                 categoryId: '',    // 类别id | 
|                 categoryName: '',    // 类别名称 | 
|                 category: [],    // 类别数据 | 
|                 shopList: [],    // 首页已选商品 | 
|                 shopData: [],    // 商品数据 | 
|                 brandData: [],    // 品牌数据 | 
|                 brandData1: [],        // 商品列表页查询搜索 | 
|                  | 
|                 attrFirstName: '', | 
|                 attrSecondName: '', | 
|                 attrFirstList: [],    // 属性1 | 
|                 attrSecondList: [],    // 属性2 | 
|                 budgetList: [],    // 预算 | 
|                 isSOU: false, | 
|                 shopPageData: [],    // 商品列表页面数据 | 
|                 shopPageDataSou: [],    // 商品列表页面搜索数据 | 
|                 attributeOne: {        // 商品页面属性一 | 
|                     id: '', | 
|                     name: '' | 
|                 }, | 
|                 attributeTwo: {        // 商品页面属性二 | 
|                     id: '', | 
|                     name: '' | 
|                 }, | 
|                 budget: {        // 商品页面预算 | 
|                     id: '', | 
|                     max: '', | 
|                     min: '', | 
|                     type: '' | 
|                 }, | 
|                 shopPageBrand: {        // 商品页面品牌 | 
|                     id: '', | 
|                     name: '' | 
|                 }, | 
|                  | 
|                 leftShop: {},    // pk左侧商品 | 
|                 rightShop: {},    // pk右侧商品 | 
|                  | 
|                 totalPrices: 0, | 
|                 zdj: 0, | 
|                  | 
|                 select: [],    // 已选 | 
|                  | 
|                 model: {        // 商品查询数据 | 
|                     attrFirst: '', | 
|                     attrSecond: '', | 
|                     brandId: '', | 
|                     categoryId: '', | 
|                     eprice: '', | 
|                     sprice: '', | 
|                     keyword: '' | 
|                 }, | 
|                  | 
|                 page: 1 | 
|             } | 
|         }, | 
|         components: { bigImg, search, noData, bigImg1 }, | 
|         onLoad() { | 
|             var that = this | 
|             // 监听键盘组合键 | 
|             document.onkeydown = function(e) { | 
|                 var keyCode = e.keyCode || e.which || e.charCode; | 
|                 var ctrlKey = e.ctrlKey || e.metaKey; | 
|                 if (!that.$refs.search.show) { | 
|                     if (ctrlKey && keyCode == 70) { | 
|                         if (that.status === 0) { | 
|                             that.$refs.search.index = 0 | 
|                             that.$refs.search.open() | 
|                         } | 
|                         e.preventDefault(); | 
|                         return false; | 
|                     } else if (keyCode === 37) { | 
|                         that.fanhuiPage() | 
|                         e.preventDefault(); | 
|                         return false; | 
|                     } else if (keyCode === 39) { | 
|                         that.xiaPage() | 
|                         e.preventDefault(); | 
|                         return false; | 
|                     } | 
|                 } else { | 
|                     console.log('已经打开搜索框', keyCode) | 
|                     if (keyCode === 38) { | 
|                         that.$refs.search.changeTop() | 
|                     } else if (keyCode === 40) { | 
|                         that.$refs.search.changeBottom() | 
|                     } else if (keyCode === 13) { | 
|                         that.$refs.search.confirm() | 
|                     } | 
|                 } | 
|             } | 
|             this.getCategoryList() | 
|             // this.getGoodsList() | 
|             this.getbrandList() | 
|             this.h5Images() | 
|         }, | 
|         onReady() { | 
|             var that = this | 
|             let divs = document.getElementsByClassName('box') | 
|             let start = 0 | 
|             divs[0].onmousedown = function(ev){ | 
|                 if (that.status === 1) { | 
|                     start = ev.pageY | 
|                     //event的兼容性 | 
|                     var ev = ev || event; | 
|                     //获取鼠标按下的坐标 | 
|                     var x1 = ev.clientX; | 
|                     var y1 = ev.clientY; | 
|                     //获取元素的left,top值 | 
|                     var l = divs.offsetLeft; | 
|                     var t = divs.offsetTop; | 
|                     //给可视区域添加鼠标的移动事件 | 
|                     document.onmousemove = function(ev) { | 
|                         //event的兼容性 | 
|                         var ev = ev || event; | 
|                         //获取鼠标移动时的坐标 | 
|                         var x2 = ev.clientX; | 
|                         var y2 = ev.clientY; | 
|                         //计算出鼠标的移动距离 | 
|                         var x = x2 - x1; | 
|                         var y = y2 - y1; | 
|                         //移动的数值与元素的left,top相加,得出元素的移动的距离 | 
|                         var lt = y + t; | 
|                         var ls = x + l; | 
|                         let num = start - ev.pageY | 
|                         if (num < -100) { | 
|                             that.isPK = true | 
|                         } else if (num > 100) { | 
|                             that.leftShop = {} | 
|                             that.rightShop = {} | 
|                             that.isPK = false | 
|                         } | 
|                     } | 
|                     //清除 | 
|                     document.onmouseup = function(ev){ | 
|                         document.onmousemove = null; | 
|                     } | 
|                 } | 
|             } | 
|         }, | 
|         computed: { | 
|             // 指导价总计 | 
|             zdTotalPrice() { | 
|                 let num = 0 | 
|                 this.shopList.forEach(item => { | 
|                     // num = num + Number(item.zdPrice) | 
|                     num = this.addPrice(num, Number(item.zdPrice)) | 
|                 }) | 
|                 return num || 0 | 
|             }, | 
|             // 入手价 | 
|             totalPrice() { | 
|                 let num = 0 | 
|                 this.shopList.forEach(item => { | 
|                     // num = num + Number(item.price) | 
|                     num = this.addPrice(num, Number(item.price)) | 
|                 }) | 
|                 return num || 0 | 
|             }, | 
|             ...mapState(['Cookies', 'Config', 'User']) | 
|         }, | 
|         watch: { | 
|             status: { | 
|                 handler(news, old) { | 
|                     if (news === 0) { | 
|                         this.page = 1 | 
|                         this.categoryName = '' | 
|                         this.categoryId = '' | 
|                         this.shopPageData = [] | 
|                     } | 
|                 } | 
|             }, | 
|             shopList: { | 
|                 deep: true, | 
|                 handler(news, old) { | 
|                     let rsj = 0 | 
|                     let zdj = 0 | 
|                     this.shopList.forEach(item => { | 
|                         // rsj = rsj + Number(item.price) | 
|                         rsj = this.addPrice(rsj, Number(item.price)) | 
|                         // zdj = zdj + Number(item.zdPrice) | 
|                         zdj = this.addPrice(zdj, Number(item.zdPrice)) | 
|                     }) | 
|                     // console.log('rsj', rsj) | 
|                     // console.log('zdj', zdj) | 
|                     this.totalPrices = rsj | 
|                     this.zdj = zdj | 
|                 } | 
|             } | 
|         }, | 
|         methods: { | 
|             async mouseenterP(index, categoryId) { | 
|                 this.shopList[index].ppShow = true | 
|                 if (!this.shopList[index].ppData || this.shopList[index].ppData.length == 0) { | 
|                     let res = await brandList({ categoryId }) | 
|                     if (res.code === 200) { | 
|                         this.shopList[index].ppData = res.data | 
|                     } | 
|                 } | 
|                 this.$forceUpdate() | 
|             }, | 
|             mouseleaveP(index) { | 
|                 this.shopList[index].ppShow = false | 
|                 this.$forceUpdate() | 
|             }, | 
|             async mouseenterX(index) { | 
|                 this.shopList[index].xhShow = true | 
|                 if (this.shopList[index].xhData && this.shopList[index].xhData.length > 0) { | 
|                      | 
|                     this.$forceUpdate() | 
|                 } else { | 
|                     let res = await listForH5({ | 
|                         categoryId: this.shopList[index].categoryId, | 
|                         brandId: this.shopList[index].brandId | 
|                     }) | 
|                     if (res.code === 200) { | 
|                         this.shopList[index].xhData = res.data; | 
|                         // this.shopList[index].xhShow = true | 
|                         this.$forceUpdate() | 
|                     } | 
|                 } | 
|                 // this.shopList[index].xhShow = true | 
|                 // this.$forceUpdate() | 
|             }, | 
|             mouseleaveX(index) { | 
|                 this.shopList[index].xhShow = false | 
|                 this.$forceUpdate() | 
|                 // listForH5({ | 
|                 //     categoryId: this.shopList[index].categoryId, | 
|                 //     brandId: this.shopList[index].brandId | 
|                 // }).then(res => { | 
|                 //     this.shopList[index].xhData = res.data; | 
|                 //     this.shopList[index].xhShow = false | 
|                 //     this.$forceUpdate() | 
|                 // }) | 
|                 // this.shopList[index].ppShow = false | 
|                 // this.$forceUpdate() | 
|             }, | 
|             addPrice (arg1, arg2) { | 
|                 let r1, r2, m; | 
|                 try { | 
|                     r1 = arg1.toString().split('.')[1].length; // 获取arg1小数位的长度 | 
|                 } catch (e) { | 
|                     r1 = 0; | 
|                 } | 
|                 try { | 
|                     r2 = arg2.toString().split('.')[1].length; // 获取arg2小数位的长度 | 
|                 } catch (e) { | 
|                     r2 = 0; | 
|                 } | 
|                 m = Math.pow(10, Math.max(r1, r2)); // max()函数是选出小数点位最大的参数的长度,保证将两个参数都化为整数,pow()函数是将10做指数幂操作,将参数都化为整数 | 
|                 return (arg1 * m + arg2 * m )/m; | 
|             }, | 
|             // 退出 | 
|             loginOut() { | 
|                 this.$store.commit('clean') | 
|                 uni.redirectTo({ url: '/pages/login/login' }); | 
|             }, | 
|             // 查询商品数据 | 
|             getShopList(type) { | 
|                 if (type === 1) { | 
|                     this.page = 1 | 
|                     this.shopPageData = [] | 
|                 } | 
|                 goodsPage({ | 
|                     capacity: 20, | 
|                     page: this.page, | 
|                     model: this.model | 
|                 }).then(res => { | 
|                     if (this.shopPageData.length === res.data.total) return | 
|                     let arr = [...this.shopPageData, ...res.data.records] | 
|                     this.shopPageData = arr | 
|                     this.page = this.page + 1 | 
|                 }) | 
|             }, | 
|             checkInput(_this) { | 
|               if (_this.value != '' && _this.value.substr(0, 1) == '.') { | 
|                 _this.value = 0 | 
|               } | 
|               if (_this.value == '') { | 
|                 _this.value = 0 | 
|               } | 
|               _this.value = _this.value.replace(/^0*(0\.|[1-9])/, '$1') // 禁止粘贴 | 
|               _this.value = _this.value.replace(/[^\d.]/g, '0.00') // 禁止输入非数字 | 
|               _this.value = _this.value.replace(/\.{2,}/g, '.') // 只保留第一个. 清除多余的 | 
|               _this.value = _this.value.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.') | 
|               _this.value = _this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3') // 只能输入两个小数 | 
|   | 
|               if (_this.value.indexOf('.') < 0 && _this.value != '') { | 
|                 // 以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额 | 
|                 if (_this.value.substr(0, 1) == '0' && _this.value.length == 2) { | 
|                   _this.value = _this.value.substr(1, _this.value.length) | 
|                 } | 
|               } | 
|               if (!_this.value) { | 
|                 _this.value = 0 | 
|               } | 
|             }, | 
|             changePrice(price, index) { | 
|                 if (price.indexOf('-') !== -1) { | 
|                     console.log('-') | 
|                     this.shopList[index].price = '' | 
|                     return | 
|                 } | 
|                 // if (!/^\d[0,9]$/.test(price)) { | 
|                 //     this.shopList[index].price = JSON.parse(JSON.stringify(price.replace(/-/g, ''))) | 
|                 //     return | 
|                 // } | 
|                 let rsj = 0 | 
|                 this.shopList.forEach(item => { | 
|                     rsj = rsj + Number(item.price) | 
|                 }) | 
|                 console.log('rsj', rsj) | 
|                 this.totalPrices = rsj | 
|             }, | 
|             simplifyNum(number) { | 
|                 if (!number && number != 0) return number; | 
|                 let test = number.toFixed(0) | 
|                 // console.log(test) | 
|                 if(test.length >= 7){ | 
|                     const moneys = number / 10000 | 
|                     const realVal = parseFloat(moneys).toFixed(0); | 
|                     return realVal + "w" | 
|                 } else { | 
|                     return number | 
|                 } | 
|             }, | 
|             // 获取海报图 | 
|             h5Images() { | 
|                 h5Image({}) | 
|                     .then(res => { | 
|                         this.img = res.data | 
|                     }) | 
|             }, | 
|             xiaPage() { | 
|                 if (this.status === 2 || this.status === 0) return | 
|                 this.status = this.status + 1 | 
|             }, | 
|             // 返回上一页 | 
|             fanhuiPage() { | 
|                 if (this.status === 0) return | 
|                 this.status = this.status - 1 | 
|                 if (this.status === 0) { | 
|                     this.leftShop = {} | 
|                     this.rightShop = {} | 
|                     this.isPK = false, | 
|                     this.pkcontent = false | 
|                     this.attributeOne = { | 
|                         id: '', | 
|                         name: '' | 
|                     }, | 
|                     this.attributeTwo = { | 
|                         id: '', | 
|                         name: '' | 
|                     }, | 
|                     this.budget = { | 
|                         id: '', | 
|                         max: '', | 
|                         min: '' | 
|                     } | 
|                     this.shopPageBrand = { | 
|                         id: '', | 
|                         name: '' | 
|                     } | 
|                 } else if (this.status === 1) { | 
|                     this.leftShop = {} | 
|                     this.rightShop = {} | 
|                     this.isPK = false, | 
|                     this.pkcontent = false | 
|                 } | 
|             }, | 
|             // 点击型号 | 
|             clickXH(item, index) { | 
|                 let obj = JSON.parse(JSON.stringify(this.shopList[index])) | 
|                 obj.name = JSON.parse(JSON.stringify(item.name)) | 
|                 obj.zdPrice = JSON.parse(JSON.stringify(item.zdPrice)) | 
|                 obj.price = JSON.parse(JSON.stringify(item.price)) | 
|                 obj.multifileList = JSON.parse(JSON.stringify(item.multifileList)) | 
|                 obj.xhShow = false | 
|                 // this.shopList.splice(index, 1) | 
|                 this.shopList[index] = JSON.parse(JSON.stringify(obj)) | 
|                 console.log(this.shopList[index]) | 
|                 console.log(JSON.parse(JSON.stringify(obj))) | 
|                 let rsj = 0 | 
|                 let zdj = 0 | 
|                 this.shopList.forEach(item => { | 
|                     rsj = this.addPrice(rsj, Number(item.price)) | 
|                     zdj = this.addPrice(zdj, Number(item.zdPrice)) | 
|                 }) | 
|                 this.totalPrices = rsj | 
|                 this.zdj = zdj | 
|                 this.$forceUpdate() | 
|             }, | 
|             // 点击pk商品带回首页 | 
|             clickPKshop(item) { | 
|                 this.shopList.push(item) | 
|                 this.status = 0 | 
|                 this.isPK = false | 
|                 this.pkcontent = false | 
|                 this.leftShop = {} | 
|                 this.rightShop = {} | 
|             }, | 
|             // 查看大图 | 
|             openImg(i) { | 
|                 this.imgList = [] | 
|                 this.shopList.forEach((item, index) => { | 
|                     if (index === i) { | 
|                         item.multifileList.forEach(child => { | 
|                             this.imgList.push(item.prefixUrl + child.fileurl) | 
|                         }) | 
|                     } | 
|                 }) | 
|                 // console.log(this.imgList) | 
|                 this.$viewerApi({ | 
|                   images: this.imgList, | 
|                 }) | 
|                 // this.$refs.bigImg.open(0) | 
|                 // this.$refs.bigImg1.open(0) | 
|             }, | 
|             empty() { | 
|                 this.shopList = [] | 
|             }, | 
|             // 跳转pk | 
|             jumpPK() { | 
|                 if (JSON.stringify(this.leftShop) !== '{}' && JSON.stringify(this.rightShop) !== '{}') { | 
|                     this.isPK = true | 
|                     this.pkcontent = true | 
|                     this.status = 2 | 
|                 } | 
|             }, | 
|             // 点击加入pk商品 | 
|             openSearch(type) { | 
|                 if (type === 'left') { | 
|                     this.$refs.search.open('left') | 
|                 } else if (type === 'right') { | 
|                     this.$refs.search.open('right') | 
|                 } | 
|             }, | 
|             // 点击商品列表页面查询 | 
|             clickShopPageCheck(item, type) { | 
|                 this.leftShop = {} | 
|                 this.rightShop = {} | 
|                 // this.isSOU = true | 
|                 // this.shopPageDataSou = [] | 
|                 if (type === 1) { | 
|                     this.attributeOne.name = item.name  === '全部' ? '' : item.name | 
|                     this.attributeOne.id = item.id | 
|                      | 
|                     if (item.name === '全部') { | 
|                         this.model.attrFirst = '' | 
|                     } else { | 
|                         this.model.attrFirst = item.id | 
|                     } | 
|                      | 
|                     this.getShopList(1) | 
|                      | 
|                 } else if (type === 2) { | 
|                     this.attributeTwo.name = item.name === '全部' ? '' : item.name | 
|                     this.attributeTwo.id = item.id | 
|                      | 
|                     if (item.name === '全部') { | 
|                         this.model.attrSecond = '' | 
|                     } else { | 
|                         this.model.attrSecond = item.id | 
|                     } | 
|                      | 
|                     this.getShopList(1) | 
|                 } else if (type === 3) { | 
|                     console.log(item) | 
|                     this.budget.id = item.id | 
|                     this.budget.max = item.maxamount | 
|                     this.budget.min = item.minamount | 
|                     this.budget.type = item.type | 
|                     if (item.name) { | 
|                         this.budget.name = item.name | 
|                     } | 
|                     if (item.name === '全部') { | 
|                         this.model.sprice = '' | 
|                         this.model.eprice = '' | 
|                     } else { | 
|                         this.model.sprice = item.minamount || 0 | 
|                         this.model.eprice = item.maxamount || 99999 | 
|                     } | 
|                      | 
|                     this.getShopList(1) | 
|                 } else if (type === 4) { | 
|                     this.shopPageBrand.id = item.id | 
|                     this.shopPageBrand.name = item.name === '全部' ? '' : item.name | 
|                      | 
|                     if (item.name === '全部') { | 
|                         this.model.brandId = '' | 
|                     } else { | 
|                         this.model.brandId = item.id | 
|                     } | 
|                      | 
|                     this.getShopList(1) | 
|                 } | 
|                 this.isPK = false | 
|                 this.pkcontent = false | 
|                 this.status = 1 | 
|                 this.shopPageData.forEach(item => { | 
|                     if ( | 
|                     (this.attributeOne.id ? item.attrFirstIds.indexOf(String(this.attributeOne.id)) !== -1 : true) && | 
|                     (this.attributeTwo.id ? item.attrSecodIds.indexOf(String(this.attributeTwo.id)) !== -1 : true) && | 
|                     (this.budget.type == 3 ? (item.price <= Number(this.budget.max)) && (item.price >= Number(this.budget.min)) : true) && | 
|                     (this.budget.type == 1 ? (item.price <= Number(this.budget.max)) : true) && | 
|                     (this.budget.type == 2 ? (item.price >= Number(this.budget.min)) : true) && | 
|                     (this.shopPageBrand.id ? item.brandId === this.shopPageBrand.id : true) | 
|                     ) { | 
|                         this.shopPageDataSou.push(item) | 
|                     } | 
|                 }) | 
|             }, | 
|             // 点击商品列表页面商品 | 
|             clickshoppageItem(item) { | 
|                 this.shopList.push(item) | 
|                 this.attrFirstList = [] | 
|                 this.attrSecondList = [] | 
|                 this.budgetList = [] | 
|                 this.status = 0 | 
|                 this.isPK = false | 
|                 this.pkcontent = false | 
|             }, | 
|             // 获取搜索结果 | 
|             getSelectShop(categoryId, brandId) { | 
|                 this.select = [] | 
|                 this.shopData.forEach(item => { | 
|                     if (item.categoryId === categoryId && item.brandId === brandId) { | 
|                         this.select.push(JSON.parse(JSON.stringify(item))) | 
|                     } | 
|                 }) | 
|             }, | 
|             // 选择品牌 | 
|             clickBrand(item, val, index) { | 
|                 // let res = await listForH5({ | 
|                 //     categoryId: this.shopList[index].categoryId, | 
|                 //     brandId: this.shopList[index].brandId | 
|                 // }) | 
|                 // if (res.code === 200) { | 
|                 //     this.shopList[index].xhData = res.data; | 
|                 // } | 
|                 this.shopList[index].brandName = JSON.parse(JSON.stringify(val.name)) | 
|                 this.shopList[index].brandId = JSON.parse(JSON.stringify(val.id)) | 
|                 this.shopList[index].name = '' | 
|                 this.shopList[index].zdPrice = '' | 
|                 this.shopList[index].price = '' | 
|                 this.shopList[index].xhData = [] | 
|                 this.shopList[index].ppShow = false | 
|                 this.$forceUpdate() | 
|             }, | 
|             // 品牌 | 
|             getbrandList() { | 
|                 // brandList({}) | 
|                 //     .then(res => { | 
|                 //         this.brandData = JSON.parse(JSON.stringify(res.data)) | 
|                 //         this.brandData1 = JSON.parse(JSON.stringify(res.data)) | 
|                 //         this.brandData1.unshift({ name: '全部', id: '' }) | 
|                 //     }) | 
|             }, | 
|             // 获取选中商品 | 
|             result(val) { | 
|                 val.ppShow = false | 
|                 val.xhShow = false | 
|                 if (this.$refs.search.typeName === 'left') { | 
|                     this.leftShop = JSON.parse(JSON.stringify(val)) | 
|                 } else if (this.$refs.search.typeName === 'right') { | 
|                     this.rightShop = JSON.parse(JSON.stringify(val)) | 
|                 } else { | 
|                     this.shopList.push(JSON.parse(JSON.stringify(val))) | 
|                 } | 
|             }, | 
|             // 获取全部商品 | 
|             getGoodsList() { | 
|                 goodsList({}) | 
|                     .then(res => { | 
|                         this.shopData = res.data | 
|                     }) | 
|             }, | 
|             // 获取全部品类 | 
|             getCategoryList() { | 
|                 categoryList({}) | 
|                     .then(res => { | 
|                         res.data.forEach(item => { | 
|                             item.active = false | 
|                         }) | 
|                         this.category = res.data | 
|                     }) | 
|             }, | 
|             stringOperations(val, num) { | 
|                 if (!val) return | 
|                 if (val.length <= num) return val | 
|                 return val.substring(0, num) + '...' | 
|             }, | 
|             copyItem(item) { | 
|                 let obj = JSON.parse(JSON.stringify(item)) | 
|                 obj.brandId = '' | 
|                 obj.brand = '' | 
|                 obj.brandName = '' | 
|                 obj.name = '' | 
|                 obj.zdPrice = '' | 
|                 obj.price = '' | 
|                 this.shopList.push(obj) | 
|             }, | 
|             deleItem(i) { | 
|                 this.shopList.splice(i, 1) | 
|             }, | 
|             // 首页已选列表品牌下拉 | 
|             open(index, type) { | 
|                 this.shopList.forEach((item, i) => { | 
|                     item.ppShow = false | 
|                     item.xhShow = false | 
|                 }) | 
|                  | 
|                 this.shopList.forEach((item, i) => { | 
|                     if (i === index) { | 
|                         if (type === 1) { | 
|                             item.ppShow = true | 
|                         } else { | 
|                             listForH5({ | 
|                                 categoryId: this.shopList[index].categoryId, | 
|                                 brandId: this.shopList[index].brandId | 
|                             }).then(res => { | 
|                                 this.shopList[index].xhData = res.data; | 
|                                 item.xhShow = true | 
|                                 this.$forceUpdate() | 
|                             }) | 
|                              | 
|                             // let arr = [] | 
|                             // this.shopData.forEach(element => { | 
|                             //     // console.log(element.categoryId === item.categoryId && element.brandId === item.brandId) | 
|                             //     if ( | 
|                             //     (item.categoryId ? element.categoryId === item.categoryId : true) && | 
|                             //     (item.brandId ? element.brandId === item.brandId : true)) { | 
|                             //         arr.push(JSON.parse(JSON.stringify(element))) | 
|                             //     } | 
|                             // }) | 
|                             // this.shopList[index].xhData = arr; | 
|                             // item.xhShow = true | 
|                         } | 
|                     } | 
|                 }) | 
|                 this.$forceUpdate() | 
|             }, | 
|             // 点击类别 | 
|             clickItem(index, id, name) { | 
|                 this.categoryId = id | 
|                 this.model.categoryId = id | 
|                 this.categoryName = name | 
|                  | 
|                 this.getShopList() | 
|                  | 
|                 brandList({ categoryId: id }) | 
|                     .then(res => { | 
|                         this.brandData1 = JSON.parse(JSON.stringify(res.data)) | 
|                         this.brandData1.unshift({ name: '全部', id: '' }) | 
|                         console.log(this.brandData1) | 
|                     }) | 
|                  | 
|                 this.category.forEach((item, num) => { | 
|                     if (index === num) { | 
|                         item.active = true | 
|                          | 
|                         this.attrSecondList = [] | 
|                         this.attrFirstList = [] | 
|                         this.budgetList = [] | 
|                          | 
|                         this.attrFirstName = item.attrFirst | 
|                         this.attrSecondName = item.attrSecond | 
|                         if (item.cateParamFirstList) { | 
|                             this.attrFirstList = JSON.parse(JSON.stringify(item.cateParamFirstList)) | 
|                             this.attrFirstList.unshift({ name: '全部', id: '' }) | 
|                         } | 
|                         if (item.cateParamSecondList) { | 
|                             this.attrSecondList = JSON.parse(JSON.stringify(item.cateParamSecondList)) | 
|                             this.attrSecondList.unshift({ name: '全部', id: '' }) | 
|                         } | 
|                         // this.budgetList = JSON.parse(JSON.stringify(item.budgetList)) | 
|                         // console.log(item.budgetList) | 
|                         let arr = [] | 
|                         item.budgetList.forEach(item => { | 
|                             // 没有最小金额 | 
|                             if (!item.minamount) { | 
|                                 arr.push({ | 
|                                     id: JSON.parse(JSON.stringify(item.id)), | 
|                                     type: 1, | 
|                                     maxamount: JSON.parse(JSON.stringify(item.maxamount)), | 
|                                     minamount: JSON.parse(JSON.stringify(item.minamount)), | 
|                                     name: `${JSON.parse(JSON.stringify(item.maxamount))}以内` | 
|                                 }) | 
|                             // 没有最大金额 | 
|                             } else if (!item.maxamount) { | 
|                                 arr.push({ | 
|                                     id: JSON.parse(JSON.stringify(item.id)), | 
|                                     type: 2, | 
|                                     maxamount: JSON.parse(JSON.stringify(item.maxamount)), | 
|                                     minamount: JSON.parse(JSON.stringify(item.minamount)), | 
|                                     name: `${JSON.parse(JSON.stringify(item.minamount))}以上` | 
|                                 }) | 
|                             } else { | 
|                                 arr.push({ | 
|                                     id: JSON.parse(JSON.stringify(item.id)), | 
|                                     type: 3, | 
|                                     maxamount: JSON.parse(JSON.stringify(item.maxamount)), | 
|                                     minamount: JSON.parse(JSON.stringify(item.minamount)) | 
|                                 }) | 
|                             } | 
|                         }) | 
|                         arr.unshift({ name: '全部', id: '' }) | 
|                         this.budgetList = arr | 
|                         // console.log(this.budgetList) | 
|                     } else { | 
|                         item.active = false | 
|                     } | 
|                 }) | 
|                 // this.shopPageData = [] | 
|                 // this.shopData.forEach(item => { | 
|                 //     if (item.categoryId === id) { | 
|                 //         this.shopPageData.push(JSON.parse(JSON.stringify(item))) | 
|                 //     } | 
|                 // }) | 
|                 this.attributeOne = { | 
|                     id: '', | 
|                     name: '' | 
|                 }, | 
|                 this.attributeTwo = { | 
|                     id: '', | 
|                     name: '' | 
|                 }, | 
|                 this.budget = { | 
|                     id: '', | 
|                     max: '', | 
|                     min: '' | 
|                 }, | 
|                 this.shopPageBrand = { | 
|                     id: '', | 
|                     name: '' | 
|                 }, | 
|                 this.status = 1 | 
|             }, | 
|             mousemove(e) { | 
|                 if (e === this.index) return | 
|                 this.index = e | 
|             } | 
|         }, | 
|         onReachBottom() { | 
|             if (this.status == 1) { | 
|                 this.getShopList() | 
|             } | 
|         } | 
|     } | 
| </script> | 
|   | 
| <style lang="scss" scoped> | 
|     .box { | 
|         width: 100vw; | 
|         min-height: 100vh; | 
|         display: flex; | 
|         justify-content: center; | 
|         .box_bg { | 
|             position: fixed; | 
|             top: 0; | 
|             left: 0; | 
|             z-index: -1; | 
|             width: 100vw; | 
|             height: 100vh; | 
|             background-repeat: no-repeat; | 
|             background-size: 100% 100%; | 
|         } | 
|         .box_user { | 
|             z-index: 99; | 
|             position: fixed; | 
|             top: 30px; | 
|             right: 40px; | 
|             display: flex; | 
|             align-items: center; | 
|             text { | 
|                 font-size: 16px; | 
|                 font-family: PingFangSC-Medium, PingFang SC; | 
|                 font-weight: 500; | 
|                 color: #FFFFFF; | 
|             } | 
|             .box_user_btn { | 
|                 width: 80px; | 
|                 height: 34px; | 
|                 line-height: 34px; | 
|                 text-align: center; | 
|                 border-radius: 8px; | 
|                 border: 2px solid #FFFFFF; | 
|                 font-size: 16px; | 
|                 font-family: PingFangSC-Regular, PingFang SC; | 
|                 font-weight: 400; | 
|                 color: #FFFFFF; | 
|                 margin-left: 22px; | 
|                 cursor: pointer; | 
|             } | 
|         } | 
|         .box_content { | 
|             // max-width: 750px; | 
|             // min-width: 750px; | 
|             .box_content_left { | 
|                 position: fixed; | 
|                 left: 50px; | 
|                 top: 50%; | 
|                 cursor: pointer; | 
|                 transform: translate(-50%, 0); | 
|                 width: 80px; | 
|                 height: 80px; | 
|                 z-index: 9; | 
|                 image { | 
|                     width: 100%; | 
|                     height: 100%; | 
|                 } | 
|             } | 
|             .box_content_right { | 
|                 position: fixed; | 
|                 right: 50px; | 
|                 top: 50%; | 
|                 cursor: pointer; | 
|                 transform: translate(-50%, 0); | 
|                 width: 80px; | 
|                 height: 80px; | 
|                 z-index: 9; | 
|                 image { | 
|                     width: 100%; | 
|                     height: 100%; | 
|                 } | 
|             } | 
|             .box_content_close { | 
|                 position: fixed; | 
|                 right: 0; | 
|                 bottom: 30px; | 
|                 cursor: pointer; | 
|                 transform: translate(-50%, 0); | 
|                 width: 80px; | 
|                 height: 80px; | 
|                 border-radius: 50%; | 
|                 background-color: rgba(0, 224, 255, 0.18); | 
|                 color: #FFFFFF; | 
|                 font-size: 16px; | 
|                 display: flex; | 
|                 align-items: center; | 
|                 justify-content: center; | 
|             } | 
|             .advertisement { | 
|                 width: 100%; | 
|                 // height: 300px; | 
|                 image { | 
|                     width: 100%; | 
|                     height: 100%; | 
|                 } | 
|             } | 
|             .commodityFrom { | 
|                 width: 100%; | 
|                 padding: 0 22px; | 
|                 box-sizing: border-box; | 
|                 margin-top: 16px; | 
|                 .commodityFrom_head { | 
|                     width: 100%; | 
|                     height: 45px; | 
|                     padding: 10px 8px; | 
|                     box-sizing: border-box; | 
|                     background: rgba(0,224,255,0.24) linear-gradient(180deg, rgba(255,255,255,0.35) 0%, rgba(0,0,0,0.21) 100%); | 
|                     border-radius: 8px 8px 0px 0px; | 
|                     display: flex; | 
|                     align-items: center; | 
|                     .commodityFrom_head_item { | 
|                         // flex: 1; | 
|                         width: 126px; | 
|                         height: 100%; | 
|                         display: flex; | 
|                         align-items: center; | 
|                         justify-content: center; | 
|                         font-size: 16px; | 
|                         font-family: SourceHanSansSC-Medium, SourceHanSansSC; | 
|                         font-weight: 500; | 
|                         color: #FFFFFF; | 
|                         margin-right: 6px; | 
|                         &:last-child { | 
|                             margin-right: 0 !important; | 
|                         } | 
|                         &:nth-child(3) { | 
|                             flex: 1 !important; | 
|                         } | 
|                         &:nth-child(4) { | 
|                             width: 100px !important; | 
|                         } | 
|                         &:nth-child(5) { | 
|                             width: 100px !important; | 
|                         } | 
|                     } | 
|                 } | 
|                 .commodityFrom_body { | 
|                     width: 100%; | 
|                     padding: 10px 8px; | 
|                     box-sizing: border-box; | 
|                     background: rgba(0,224,255,0.3); | 
|                     border-radius: 0 0 8px 8px; | 
|                     display: flex; | 
|                     flex-direction: column; | 
|                     .commodityFrom_body_content { | 
|                         width: 100%; | 
|                         display: flex; | 
|                         flex-direction: column; | 
|                         .commodityFrom_body_content_item { | 
|                             width: 100%; | 
|                             height: 45px; | 
|                             display: flex; | 
|                             align-items: center; | 
|                             margin-bottom: 6px; | 
|                             position: relative; | 
|                             transition: .5s; | 
|                             &:hover .commodityFrom_body_content_item_tips { | 
|                                 transform: translate(100%, 0%); | 
|                                 opacity: 1; | 
|                                 z-index: 1; | 
|                             } | 
|                             .commodityFrom_body_content_item_tips { | 
|                                 transition: .5s; | 
|                                 position: absolute; | 
|                                 padding: 0 4px; | 
|                                 box-sizing: border-box; | 
|                                 right: -16px; | 
|                                 top: 0; | 
|                                 opacity: 0; | 
|                                 transform: translate(0%, 0%); | 
|                                 z-index: -1; | 
|                                 height: 45px; | 
|                                 display: flex; | 
|                                 align-items: center; | 
|                                 background: rgba(0,224,255,0.3); | 
|                                 border-radius: 8px; | 
|                                 image { | 
|                                     width: 32px; | 
|                                     height: 32px; | 
|                                     cursor: pointer; | 
|                                 } | 
|                             } | 
|                             .commodityFrom_body_content_item_num { | 
|                                 width: 126px; | 
|                                 height: 100%; | 
|                                 padding: 0 15px; | 
|                                 box-sizing: border-box; | 
|                                 background: #FFFFFF; | 
|                                 border-radius: 8px; | 
|                                 margin-right: 6px; | 
|                                 display: flex; | 
|                                 align-items: center; | 
|                                 justify-content: center; | 
|                                 position: relative; | 
|                                 &:hover { | 
|                                     .drop-top { | 
|                                         z-index: 5; | 
|                                         opacity: 1; | 
|                                     } | 
|                                 } | 
|                                 &:nth-child(4) { | 
|                                     width: 100px !important; | 
|                                 } | 
|                                 &:nth-child(5) { | 
|                                     width: 100px !important; | 
|                                     margin-right: 0 !important; | 
|                                 } | 
|                                 &:nth-child(2) { | 
|                                     cursor: pointer; | 
|                                 } | 
|                                 &:nth-child(3) { | 
|                                     cursor: pointer; | 
|                                     flex: 1 !important; | 
|                                 } | 
|                                 text { | 
|                                     text-align: center; | 
|                                     width: 100%; | 
|                                     font-size: 16px; | 
|                                     font-family: PingFangSC-Medium, PingFang SC; | 
|                                     font-weight: 500; | 
|                                     color: #111111; | 
|                                     overflow: hidden; | 
|                                     white-space: nowrap; | 
|                                     text-overflow: ellipsis; | 
|                                 } | 
|                                 .drop-top { | 
|                                     transition: .5s; | 
|                                     z-index: -2; | 
|                                     opacity: 0; | 
|                                     position: absolute; | 
|                                     top: 0; | 
|                                     left: 0; | 
|                                     white-space: nowrap; | 
|                                     transform: translate(0, -100%); | 
|                                     padding: 5px 15px; | 
|                                     box-sizing: border-box; | 
|                                     line-height: 40px; | 
|                                     background: rgba(0, 0, 0, 0.8); | 
|                                     border-radius: 10px; | 
|                                     color: #FFFFFF; | 
|                                     font-size: 16px; | 
|                                     font-weight: 500; | 
|                                 } | 
|                                 .commodityFrom_body_content_item_num_img { | 
|                                     width: 24px; | 
|                                     height: 24px; | 
|                                     margin-right: 4px; | 
|                                     image { | 
|                                         width: 100%; | 
|                                         height: 100%; | 
|                                     } | 
|                                 } | 
|                                 input { | 
|                                     font-size: 16px; | 
|                                     font-family: PingFangSC-Medium, PingFang SC; | 
|                                     font-weight: 500; | 
|                                     color: #111111; | 
|                                     text-align: center; | 
|                                 } | 
|                                 .drop-down::-webkit-scrollbar { | 
|                                     width: 6px; | 
|                                     background: rgba(255,255,255,0.5); | 
|                                     border-radius: 4px; | 
|                                 } | 
|                                 .drop-down::-webkit-scrollbar-thumb { | 
|                                     box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); | 
|                                     background: rgba(255,255,255,0.8); | 
|                                 } | 
|                                 .drop-down { | 
|                                     position: absolute; | 
|                                     bottom: 0; | 
|                                     left: 0; | 
|                                     width: 100%; | 
|                                     min-height: 0; | 
|                                     max-height: 260px; | 
|                                     overflow-y: scroll; | 
|                                     overflow-x: hidden; | 
|                                     height: auto; | 
|                                     transform: translate(0%, 100%); | 
|                                     background: linear-gradient(180deg, #518198 0%, #033B58 100%); | 
|                                     box-shadow: 0px 4px 12px 0px rgba(0,0,0,0.19); | 
|                                     border-radius: 0px 0px 8px 8px; | 
|                                     // display: flex; | 
|                                     // flex-direction: column; | 
|                                     transition: .5s; | 
|                                     .drop-down-item { | 
|                                         width: 100%; | 
|                                         height: 52px; | 
|                                         // padding: 0 10px; | 
|                                         // box-sizing: border-box; | 
|                                         // overflow: hidden; | 
|                                         // white-space: nowrap; | 
|                                         // text-overflow: ellipsis; | 
|                                         cursor: pointer; | 
|                                         display: flex; | 
|                                         align-items: center; | 
|                                         justify-content: center; | 
|                                         &:hover { | 
|                                             text { | 
|                                                 color: #FFF200; | 
|                                             } | 
|                                         } | 
|                                         text { | 
|                                             width: 100%; | 
|                                             text-align: center; | 
|                                             font-size: 16px; | 
|                                             font-family: PingFangSC-Regular, PingFang SC; | 
|                                             font-weight: 400; | 
|                                             color: #FFFFFF; | 
|                                             overflow: hidden; | 
|                                             white-space: nowrap; | 
|                                             text-overflow: ellipsis; | 
|                                         } | 
|                                     } | 
|                                 } | 
|                             } | 
|                         } | 
|                     } | 
|                     .commodityFrom_body_total { | 
|                         width: 100%; | 
|                         height: 45px; | 
|                         display: flex; | 
|                         align-items: center; | 
|                         .commodityFrom_body_total_item { | 
|                             width: 100px; | 
|                             height: 100%; | 
|                             background: rgba(255,255,255,0.4); | 
|                             border-radius: 8px; | 
|                             margin-right: 6px; | 
|                             font-size: 16px; | 
|                             font-family: SourceHanSansSC-Bold, SourceHanSansSC; | 
|                             font-weight: bold; | 
|                             color: #FFF200; | 
|                             display: flex; | 
|                             align-items: center; | 
|                             justify-content: center; | 
|                             input { | 
|                                 font-size: 16px; | 
|                                 font-family: SourceHanSansSC-Bold, SourceHanSansSC; | 
|                                 font-weight: bold; | 
|                                 color: #FFF200; | 
|                                 text-align: center; | 
|                             } | 
|                             &:first-child { | 
|                                 flex: 1; | 
|                                 display: flex; | 
|                                 align-items: center; | 
|                                 justify-content: flex-end; | 
|                                 font-size: 16px; | 
|                                 font-family: SourceHanSansSC-Medium, SourceHanSansSC; | 
|                                 font-weight: 500; | 
|                                 color: #FFFFFF; | 
|                             } | 
|                             &:last-child { | 
|                                 margin-right: 0 !important; | 
|                             } | 
|                         } | 
|                     } | 
|                 } | 
|             } | 
|             .productCategory { | 
|                 width: 100%; | 
|                 padding: 0 22px; | 
|                 box-sizing: border-box; | 
|                 margin-top: 10px; | 
|                 .productCategory_list { | 
|                     width: 100%; | 
|                     padding: 10px 20px 0px 20px; | 
|                     box-sizing: border-box; | 
|                     background: rgba(0,224,255,0.18); | 
|                     border-radius: 8px; | 
|                     display: flex; | 
|                     align-items: center; | 
|                     justify-content: space-between; | 
|                     flex-wrap: wrap; | 
|                     margin-bottom: 30px; | 
|                     .productCategory_list_zw { | 
|                         width: 20%; | 
|                         height: 0; | 
|                     } | 
|                     .productCategory_active { | 
|                         background: rgba(255,255,255,0.24) !important; | 
|                         border-radius: 8px !important; | 
|                     } | 
|                     .productCategory_list_item { | 
|                         width: 20%    ; | 
|                         height: 108px; | 
|                         display: flex; | 
|                         transition: .5s; | 
|                         flex-direction: column; | 
|                         align-items: center; | 
|                         justify-content: center; | 
|                         margin-bottom: 12px; | 
|                         cursor: pointer; | 
|                         &:hover { | 
|                             background: rgba(255,255,255,0.24) !important; | 
|                             border-radius: 8px !important; | 
|                         } | 
|                         image { | 
|                             width: 52px; | 
|                             height: 52px; | 
|                             margin-bottom: 4px; | 
|                         } | 
|                         text { | 
|                             font-size: 16px; | 
|                             font-family: SourceHanSansSC-Normal, SourceHanSansSC; | 
|                             font-weight: 400; | 
|                             color: #FFFFFF; | 
|                         } | 
|                     } | 
|                 } | 
|             } | 
|             .productPage { | 
|                 width: 100%; | 
|                 padding: 0 22px; | 
|                 box-sizing: border-box; | 
|                 margin-top: 16px; | 
|                 .productPage_head { | 
|                     width: 100%; | 
|                     height: 45px; | 
|                     display: flex; | 
|                     align-items: center; | 
|                     background: rgba(0,224,255,0.34) linear-gradient(180deg, rgba(255,255,255,0.35) 0%, rgba(0,0,0,0.21) 100%); | 
|                     border-radius: 8px 8px 0px 0px; | 
|                     .productPage_head_item { | 
|                         flex: 1; | 
|                         height: 100%; | 
|                         display: flex; | 
|                         align-items: center; | 
|                         justify-content: center; | 
|                         cursor: pointer; | 
|                         position: relative; | 
|                         &:hover { | 
|                             border-radius: 8px 8px 0px 0px; | 
|                             background: linear-gradient(360deg, #025170 0%, #529DB9 100%) !important; | 
|                         } | 
|                         &:hover image { | 
|                             transform: rotate(180deg); | 
|                         } | 
|                         &:hover .productPage_xl { | 
|                             transform: translate(0%, 100%); | 
|                             display: block; | 
|                             animation: move 0.5s 0s; | 
|                         } | 
|                         @keyframes move { | 
|                             0%{ | 
|                                 opacity: 0; | 
|                             } | 
|                             100%{ | 
|                                 opacity: 1; | 
|                             } | 
|                         } | 
|                         .productPage_xl::-webkit-scrollbar { | 
|                             width: 6px; | 
|                             background: rgba(255,255,255,0.5); | 
|                             border-radius: 4px; | 
|                         } | 
|                         .productPage_xl::-webkit-scrollbar-thumb { | 
|                             box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); | 
|                             background: rgba(255,255,255,0.8); | 
|                         } | 
|                         .productPage_xl { | 
|                             transition: .3s; | 
|                             position: absolute; | 
|                             bottom: 0; | 
|                             left: 0; | 
|                             min-height: 0; | 
|                             max-height: 260px; | 
|                             overflow-y: scroll; | 
|                             overflow-x: hidden; | 
|                             height: auto; | 
|                             display: none; | 
|                             z-index: 3; | 
|                             transform: translate(0%, 90%); | 
|                             width: 100%; | 
|                             background: linear-gradient(180deg, #518198 0%, #033B58 100%); | 
|                             box-shadow: 0px 4px 12px 0px rgba(0,0,0,0.19); | 
|                             border-radius: 0px 0px 8px 8px; | 
|                             .productPage_xl_iten { | 
|                                 width: 100%; | 
|                                 height: 40px; | 
|                                 line-height: 40px; | 
|                                 text-align: center; | 
|                                 cursor: pointer; | 
|                                 &:hover { | 
|                                     text { | 
|                                         color: #FFF200; | 
|                                     } | 
|                                 } | 
|                                 text { | 
|                                     width: 100%; | 
|                                     text-align: center; | 
|                                     font-size: 16px; | 
|                                     font-family: PingFangSC-Regular, PingFang SC; | 
|                                     font-weight: 400; | 
|                                     color: #FFFFFF; | 
|                                     overflow: hidden; | 
|                                     white-space: nowrap; | 
|                                     text-overflow: ellipsis; | 
|                                 } | 
|                             } | 
|                         } | 
|                         text { | 
|                             font-size: 16px; | 
|                             font-family: SourceHanSansSC-Regular, SourceHanSansSC; | 
|                             font-weight: 400; | 
|                             color: #FFFFFF; | 
|                         } | 
|                         image { | 
|                             transition: .3s; | 
|                             width: 14px; | 
|                             height: 10px; | 
|                             margin-left: 4px; | 
|                             margin-top: 7px; | 
|                             transform: rotate(0deg); | 
|                         } | 
|                     } | 
|                 } | 
|                 .productPage_pk { | 
|                     width: 100%; | 
|                     margin-bottom: 32px; | 
|                     display: flex; | 
|                     align-items: center; | 
|                     .productPage_pk_shop { | 
|                         flex: 1; | 
|                         display: flex; | 
|                         justify-content: center; | 
|                         align-items: center; | 
|                         flex-direction: column; | 
|                         .productPage_pk_shop_sp { | 
|                             width: 100px; | 
|                             height: 100px; | 
|                             margin-top: 84px; | 
|                             cursor: pointer; | 
|                             margin-bottom: 52px; | 
|                             image { | 
|                                 width: 100%; | 
|                                 height: 100%; | 
|                             } | 
|                         } | 
|                         .productPage_pk_shop_sp1 { | 
|                             width: 184px; | 
|                             height: 200px; | 
|                             background: linear-gradient(180deg, rgba(225,255,252,0.8) 0%, rgba(179,255,252,0.61) 36%, rgba(0,255,251,0.36) 100%); | 
|                             border-radius: 8px; | 
|                             border: 2px solid #FFFFFF; | 
|                             display: flex; | 
|                             padding: 0 15px; | 
|                             box-sizing: border-box; | 
|                             align-items: center; | 
|                             justify-content: center; | 
|                             flex-direction: column; | 
|                             margin-bottom: 12px; | 
|                             margin-top: 24px; | 
|                             cursor: pointer; | 
|                             .productPage_pk_shop_sp1_img { | 
|                                 width: 100px; | 
|                                 height: 100px; | 
|                                 image { | 
|                                     width: 100%; | 
|                                     height: 100%; | 
|                                 } | 
|                             } | 
|                             text { | 
|                                 width: 100%; | 
|                                 font-size: 16px; | 
|                                 font-family: SourceHanSansSC-Medium, SourceHanSansSC; | 
|                                 font-weight: 500; | 
|                                 color: #FFFFFF; | 
|                                 margin-top: 18px; | 
|                                 overflow: hidden; | 
|                                 white-space: nowrap; | 
|                                 text-overflow: ellipsis; | 
|                             } | 
|                         } | 
|                         .productPage_pk_shop_t { | 
|                             width: 254px; | 
|                             height: 76px; | 
|                             image { | 
|                                 width: 100%; | 
|                                 height: 100%; | 
|                             } | 
|                         } | 
|                     } | 
|                     .productPage_pk_z { | 
|                         flex-shrink: 0; | 
|                         width: 100px; | 
|                         height: 50px; | 
|                         cursor: pointer; | 
|                         image { | 
|                             width: 100%; | 
|                             height: 100%; | 
|                         } | 
|                     } | 
|                 } | 
|                 .productPage_shop { | 
|                     width: 100%; | 
|                     margin-top: 12px; | 
|                     display: flex; | 
|                     justify-content: space-between; | 
|                     flex-wrap: wrap; | 
|                     .productPage_shop_zw { | 
|                         width: 168px; | 
|                         height: 0; | 
|                     } | 
|                     .productPage_shop_item { | 
|                         width: 168px; | 
|                         // height: 204px; | 
|                         margin-bottom: 12px; | 
|                         cursor: pointer; | 
|                         background: rgba(0,224,255,0.18); | 
|                         border-radius: 8px; | 
|                         display: flex; | 
|                         transition: .5s; | 
|                         padding: 15px; | 
|                         box-sizing: border-box; | 
|                         flex-direction: column; | 
|                         // justify-content: center; | 
|                         align-items: center; | 
|                         box-sizing: border-box; | 
|                         white-space: pre-wrap; | 
|                         word-break: break-all; | 
|                         text-align: center; | 
|                         &:hover { | 
|                             background: linear-gradient(180deg, rgba(0,224,255,0.3) 0%, rgba(255,255,255,0.41) 100%); | 
|                             border-radius: 8px; | 
|                             border: 2px solid #FFFFFF; | 
|                             box-sizing: border-box; | 
|                         } | 
|                         .productPage_shop_item_img { | 
|                             width: 136px; | 
|                             height: 136px; | 
|                             display: flex; | 
|                             align-items: center; | 
|                             justify-content: center; | 
|                             overflow: hidden; | 
|                             image { | 
|                                 width: 100%; | 
|                                 height: 100%; | 
|                             } | 
|                         } | 
|                         text { | 
|                             width: 100%; | 
|                             overflow: hidden; | 
|                             text-overflow: ellipsis; | 
|                             display: -webkit-box; | 
|                             -webkit-line-clamp: 2; | 
|                             -webkit-box-orient: vertical; | 
|                             font-size: 16px; | 
|                             font-family: SourceHanSansSC-Normal, SourceHanSansSC; | 
|                             font-weight: 400; | 
|                             color: #FFFFFF; | 
|                             margin-top: 12px; | 
|                         } | 
|                     } | 
|                 } | 
|                 .productPage_parameter { | 
|                     width: 100%; | 
|                     display: flex; | 
|                     align-items: flex-start; | 
|                     justify-content: space-between; | 
|                     margin-bottom: 30px; | 
|                     .productPage_parameter_item { | 
|                         width: 49%; | 
|                         &:first-child { | 
|                             margin-right: 18px; | 
|                         } | 
|                         .productPage_parameter_item_head { | 
|                             width: 100%; | 
|                             height: 40px; | 
|                             background: rgba(0,224,255,0.34) linear-gradient(180deg, rgba(255,255,255,0.35) 0%, rgba(0,0,0,0.21) 100%); | 
|                             border-radius: 8px 8px 0px 0px; | 
|                             display: flex; | 
|                             align-items: center; | 
|                             justify-content: center; | 
|                             overflow: hidden; | 
|                             white-space: nowrap; | 
|                             text-overflow: ellipsis; | 
|                             text { | 
|                                 width: 100%; | 
|                                 text-align: center; | 
|                                 font-size: 16px; | 
|                                 font-family: SourceHanSansSC-Medium, SourceHanSansSC; | 
|                                 font-weight: 500; | 
|                                 color: #FFFFFF; | 
|                                 overflow: hidden; | 
|                                 white-space: nowrap; | 
|                                 text-overflow: ellipsis; | 
|                             } | 
|                         } | 
|                         .productPage_parameter_item_content { | 
|                             width: 100%; | 
|                             padding: 14px; | 
|                             box-sizing: border-box; | 
|                             background: rgba(0,224,255,0.3); | 
|                             border-radius: 0px 0px 8px 8px; | 
|                             display: flex; | 
|                             flex-direction: column; | 
|                             .productPage_parameter_item_content_price { | 
|                                 padding: 16px 0; | 
|                                 box-sizing: border-box; | 
|                                 background: #FFFFFF; | 
|                                 border-radius: 8px; | 
|                                 display: flex; | 
|                                 align-items: center; | 
|                                 .zdj { | 
|                                     flex: 1; | 
|                                     display: flex; | 
|                                     flex-direction: column; | 
|                                     align-items: flex-start; | 
|                                     justify-content: center; | 
|                                     margin-left: 20px; | 
|                                     text { | 
|                                         &:first-child { | 
|                                             font-size: 16px; | 
|                                             font-family: SourceHanSansSC-Regular, SourceHanSansSC; | 
|                                             font-weight: 400; | 
|                                             color: #333333; | 
|                                         } | 
|                                         &:last-child { | 
|                                             font-size: 16px; | 
|                                             font-family: SourceHanSansSC-Bold, SourceHanSansSC; | 
|                                             font-weight: bold; | 
|                                             color: #222222; | 
|                                             margin-top: 10px; | 
|                                         } | 
|                                     } | 
|                                 } | 
|                                 .rsj { | 
|                                     flex: 1; | 
|                                     display: flex; | 
|                                     flex-direction: column; | 
|                                     align-items: flex-start; | 
|                                     justify-content: center; | 
|                                     text { | 
|                                         &:first-child { | 
|                                             font-size: 16px; | 
|                                             font-family: SourceHanSansSC-Regular, SourceHanSansSC; | 
|                                             font-weight: 400; | 
|                                             color: #333333; | 
|                                         } | 
|                                         &:last-child { | 
|                                             font-size: 16px; | 
|                                             font-family: SourceHanSansSC-Bold, SourceHanSansSC; | 
|                                             font-weight: bold; | 
|                                             color: #F10000; | 
|                                             margin-top: 10px; | 
|                                         } | 
|                                     } | 
|                                 } | 
|                             } | 
|                             .productPage_parameter_item_content_nr { | 
|                                 padding: 16px 18px; | 
|                                 box-sizing: border-box; | 
|                                 background: #FFFFFF; | 
|                                 border-radius: 8px; | 
|                                 margin-top: 12px; | 
|                                 display: flex; | 
|                                 flex-direction: column; | 
|                                 .item { | 
|                                     display: flex; | 
|                                     align-items: flex-start; | 
|                                     margin-bottom: 15px; | 
|                                     &:last-child { | 
|                                         margin-bottom: 0 !important; | 
|                                     } | 
|                                     .label { | 
|                                         flex-shrink: 0; | 
|                                         font-size: 16px; | 
|                                         font-family: SourceHanSansSC-Normal, SourceHanSansSC; | 
|                                         font-weight: 400; | 
|                                         color: #222222; | 
|                                     } | 
|                                     .value { | 
|                                         flex: 1; | 
|                                         font-size: 16px; | 
|                                         font-family: SourceHanSansSC-Normal, SourceHanSansSC; | 
|                                         font-weight: 400; | 
|                                         color: #222222; | 
|                                     } | 
|                                 } | 
|                             } | 
|                         } | 
|                     } | 
|                 } | 
|             } | 
|         } | 
|     } | 
| </style> |