<template> <div class="userInfo_top-box"> <div class="go_landing"> <div class="center_landing"> <div class="center_landingl"> <p class="center_text"> <span class="telnum">{{ $t("homePage.CallName") }}</span >{{ $t("taps.Telnum") }} <br /><router-link class="contact" to="/contact" >{{ $t("homePage.us") }}</router-link > </p> <el-row class="block-col-2"> <el-col> <el-select v-model="locale" placeholder="" @change="changeLocale"> <el-option v-for="item in list" :key="item.value" :label="item.name" :value="item.value" > </el-option> </el-select> </el-col> </el-row> </div> <div class="center_landingr"> <el-row class="block-col-2" v-if="tokenShow"> <el-col> <el-dropdown trigger="click"> <span class="el-dropdown-link"> {{ info.name || info.nickname }}<i class="el-icon-arrow-down el-icon--right"></i> </span> <el-dropdown-menu slot="dropdown"> <el-dropdown-item @click.native="$router.push({ name: 'address' })" >{{ $t("checkout.Addre") }}</el-dropdown-item > <el-dropdown-item @click.native="$router.push({ name: 'orderList' })" >{{ $t("checkout.Order") }}</el-dropdown-item > <el-dropdown-item @click.native="signOut">{{ $t("checkout.Sign") }}</el-dropdown-item> </el-dropdown-menu> </el-dropdown> </el-col> </el-row> <div class="login_b" v-if="!tokenShow"> <el-button class="buttom" type="primary" icon="el-icon-user-solid" @click="$router.push({ name: 'login' })" >{{ $t("landing.registration") }}</el-button > </div> <div class="goshopping_box" @click="$router.push({ name: 'mycart' })" @mouseenter="mouseenterMycar" > <p class="center_text mycart_t"> <!-- <i class="el-icon-shopping-cart-2"></i> --> <img src="@/assets/img/gouwugouwuchedinggou.png" class="images-mycar" /> {{ $t("homePage.basket") }} <span class="goshopping_text" v-if="num > 0">({{ num }})</span> </p> <div class="taps_cart" :class="mycartShow ? 'mycart_aps' : ''" @mouseleave="mouseleaveMycar" > <dissMycart v-show="mycartShow" :list="listCart" :count="cartTotal" ref="dissMycart" ></dissMycart> </div> </div> </div> </div> </div> </div> </template> <script> import Bus from "@/js/bus"; import dissMycart from "./diss-mycart"; var that = this; export default { name: "userInfo", components: { dissMycart }, data() { return { listCart: [], cartTotal: 0, mycartShow: localStorage.getItem("cartTap") === "1", info: "", // locale: this.$util.localeStorage() ? 'English': 'Chinese', locale: this.$util.localeStorage() ? this.$t("homePage.English") : this.$t("homePage.Chinese"), tokenShow: !!localStorage.getItem("token"), list: [ { id: 1, value: "en", // name: 'English' name: this.$t("homePage.English") }, { id: 2, value: "cn", // name: 'Chinese' name: this.$t("homePage.Chinese") } ], num: JSON.parse(localStorage.getItem("shoppingNum")) // 购物车数量 }; }, // watch: { // '$store.state.tapscart' (newVal, oldVal) { // // console.log(newVal, '==========', oldVal) // if (oldVal > 0) { // console.log(newVal, '==========', oldVal) // // that.mycartShow = true // // this.getList() // this.mouseenterMycar() // } else { // that.mycartShow = false // } // } // }, created() { this.info = JSON.parse(localStorage.getItem("info")); this.getList(); }, mounted() { let _this = this; Bus.$on("onmycar", val => { // this.mouseenterMycar() // console.log(val, '3333333333') if (val == 1) { // console.log(val, '88888') this.showList = false; this.mouseenterMycar(); // console.log(val, '444444') } else { _this.mouseleaveMycar(); } }); window.addEventListener("setItemEvent", function(e) { // let key = e.key // console.log(key, '======') if (e.key === "shoppingNum") { _this.num = e.newValue; } // if (e.key === 'cartTap') { // let cartTap = localStorage.getItem('cartTap') // if (cartTap) { // _this.mouseenterMycar() // } else { // _this.mouseleaveMycar() // } // } }); }, methods: { changeLocale(e) { sessionStorage.removeItem("tdk"); localStorage.removeItem("token"); if (e == "en") { window.location.href = "https://crs.sanyoubio.com"; } else { window.location.href = "https://crs.sanyoubio.com.cn"; } }, signOut() { let data = JSON.parse(localStorage.getItem("shoppingCart")); if (data) { localStorage.setItem("shoppingNum", JSON.stringify(data.length)); } else { localStorage.setItem("shoppingNum", JSON.stringify(0)); } localStorage.removeItem("user"); localStorage.removeItem("token"); localStorage.removeItem("info"); this.$router.push({ name: "login" }); }, mouseenterMycar() { this.mycartShow = true; this.getList(); }, mouseleaveMycar() { this.mycartShow = false; }, getList() { let that = this; let data = JSON.parse(localStorage.getItem("shoppingCart")); let arry = []; if (JSON.parse(localStorage.getItem("token"))) { if (data && data.length > 0) { data.forEach(item => { var obj = { checked: true, id: item.id, number: item.number, productCatalog: item.productCatalog, skuId: item.skuId }; arry.push(obj); }); } else { arry = null; } this.$api .post("cart/index", { cartList: arry }) .then(res => { if (res.code == 0) { this.listCart = res.data.cartList; that.cartTotal = res.data.cartTotal.checkedGoodsDiscount; } else { // this.$message(res.msg) } }); } else { if (data && data.length > 0) { that.listCart = []; that.cartTotal = 0; data.forEach(item => { that.listCart.push(item); if (this.$util.localeStorage()) { that.cartTotal += item.number * item.discountPrice; } else { that.cartTotal += item.number * item.cnDiscountPrice; } }); } } } } }; </script> <style lang="scss" scoped> @media screen and (min-width: 751px) and (max-width: 9999px) { .userInfo_top-box { .go_landing { // background-color: #273949; .center_landing { margin: 0 auto; display: flex; justify-content: space-between; // align-items: center; align-content: center; .center_landingl { text-align: center; font-weight: 500; .block-col-2 /deep/ { cursor: pointer; .el-col { .el-select { width: 100px; height: 30px; .el-input__inner { border: none; height: 26px; line-height: 26px; font-size: 12px; // background-color: rgba(0, 0, 0, 0); } .el-input__suffix { .el-input__suffix-inner { display: block; height: 100%; .el-input__icon { line-height: 26px; } } } } } .el-dropdown { height: 50px; line-height: 50px; width: 100px; display: block; } .el-dropdown-link { color: #fff; margin-left: 20px; } .el-icon-arrow-down { margin-left: 10px; // color: red; } .el-dropdown:hover { background: #005bab; // color: red; } } .center_text { color: #005bab; cursor: pointer; font-weight: 600; font-size: 12px; .telnum { color: #000; margin-right: 4px; font-weight: 500; } .contact { color: #005bab; } } } .center_landingr { margin-left: 20px; .block-col-2 /deep/ { cursor: pointer; .el-dropdown { height: 28px; line-height: 28px; width: 100px; display: block; text-align: right; } .el-dropdown-link { color: #000; margin-left: 20px; font-size: 12px; } .el-icon-arrow-down { margin-left: 6px; } .el-dropdown:hover { background: #fff; } } .center_text { color: #fff; cursor: pointer; } .login_b { display: block; color: #000; .buttom /deep/ { background-color: rgba(0, 0, 0, 0); border: none; color: #000 !important; padding: 6px 8px !important; font-size: 12px; .el-icon-user-solid { color: #005bab !important; } } } } } } } .goshopping_box { position: relative; .goshopping_text { font-size: 14px; } .taps_cart { display: none; position: absolute; top: 35px; z-index: 1000; // left: 50%; right: 0; // transform: translateX(-50%); } .mycart_aps { display: block !important; } } .cardpmd { display: none; } .landingpmd_imgf { display: none; } .center_text { color: #fff; a { color: #fff; cursor: pointer; text-decoration: none; } a:hover { color: #005bab; cursor: pointer; text-decoration: none; } } .mycart_t /deep/ { display: flex; align-items: center; color: #000 !important; justify-content: right; padding-right: 8px; font-weight: 500; font-size: 12px; .images-mycar { width: 30px; margin-right: 6px; } .el-icon-shopping-cart-2 { // color: #005BAB; color: red; font-weight: 600; font-size: 30px; margin-right: 6px; } .goshopping_text { margin-left: 6px; color: #005bab; } } } // @media screen and (min-width: 751px) and (max-width: 1600px) { // .taps_cart{ // display: none; // position: absolute; // top: 30px; // z-index: 99; // left: -50% !important; // // transform: translateX(-50%); // } // } </style>