投屏pc端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

302 lines
8.2 KiB

6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
  1. <template>
  2. <header class="navbar home-navbar">
  3. <div class="navbar-header header-logo">
  4. <router-link to="/">
  5. <img src="@/assets/images/logo2.png" />
  6. </router-link>
  7. </div>
  8. <nav class="header-nav">
  9. <ul class="navbar-nav" v-if="!isLogin || userIsActive">
  10. <li>
  11. <router-link to="/index">{{$t('首页')}}</router-link>
  12. </li>
  13. <li>
  14. <router-link to="/coincoin">{{$t('币币交易')}}</router-link>
  15. </li>
  16. <li>
  17. <router-link to="/release">{{$t('解封交易')}}</router-link>
  18. </li>
  19. <li>
  20. <router-link to="/currency">{{$t('法币交易')}}</router-link>
  21. </li>
  22. <li>
  23. <router-link to="/news">{{$t('公告')}}</router-link>
  24. </li>
  25. </ul>
  26. <ul class="navbar-nav" v-if="isLogin && !userIsActive">
  27. <li>
  28. <router-link to="/index">{{$t('首页')}}</router-link>
  29. </li>
  30. <li>
  31. <span @click="noActive">{{$t('币币交易')}}</span>
  32. </li>
  33. <li>
  34. <span @click="noActive">{{$t('解封交易')}}</span>
  35. </li>
  36. <li>
  37. <span @click="noActive">{{$t('法币交易')}}</span>
  38. </li>
  39. <li>
  40. <span @click="noActive">{{$t('公告')}}</span>
  41. </li>
  42. </ul>
  43. <ul class="navbar-nav navbar-right" v-if="isLogin && userIsActive">
  44. <li @mouseover="showAsssets = true" @mouseleave="showAsssets = false">
  45. <router-link to="/assets">{{$t('资产')}}</router-link>
  46. <ul class="header-menu-dropdowns" v-if="showAsssets">
  47. <li>
  48. <router-link to="/assets/coincoin">{{$t('币币账户(充币&提币)')}}</router-link>
  49. </li>
  50. <li>
  51. <router-link to="/assets/currency">{{$t('法币账户')}}</router-link>
  52. </li>
  53. </ul>
  54. </li>
  55. <li @mouseover="showOrder = true" @mouseleave="showOrder = false">
  56. <router-link to="/order">{{$t('订单')}}</router-link>
  57. <ul class="header-menu-dropdowns" v-if="showOrder">
  58. <li>
  59. <router-link to="/order/coincoin">{{$t('币币订单')}}</router-link>
  60. </li>
  61. <li>
  62. <router-link to="/order/release">{{$t('解封订单')}}</router-link>
  63. </li>
  64. <li>
  65. <router-link to="/currency/order">{{$t('法币订单')}}</router-link>
  66. </li>
  67. </ul>
  68. </li>
  69. <li @mouseover="showMy = true" @mouseleave="showMy = false">
  70. <router-link to="/user">{{$t('我的')}}</router-link>
  71. <ul class="header-menu-dropdowns header-menu-my" v-if="showMy">
  72. <li>
  73. <div class="user-desc-box" v-if="userInfoData">
  74. <h2>
  75. <em>Hi,</em>
  76. {{userInfoData.phone || userInfoData.email}}
  77. </h2>
  78. <p>UID:{{userInfoData.uid}}</p>
  79. </div>
  80. <div class="user-desc-box" v-else>
  81. <h2>{{$t('您还未登录')}}</h2>
  82. </div>
  83. </li>
  84. <li>
  85. <router-link to="/user/account">{{$t('账户中心')}}</router-link>
  86. </li>
  87. <li>
  88. <router-link to="/user/setting">{{$t('个人设置')}}</router-link>
  89. </li>
  90. <li>
  91. <router-link to="/user/invite">{{$t('邀请好友')}}</router-link>
  92. </li>
  93. <li v-if="merchantStatus == 'M_E_S_PASS'">
  94. <router-link to="/user/shop">{{$t('商户信息')}}</router-link>
  95. </li>
  96. <li>
  97. <span @click="logout">{{$t('退出')}}</span>
  98. </li>
  99. </ul>
  100. </li>
  101. <li @mouseover="showLan = true" @mouseleave="showLan = false">
  102. <span>{{currentLanText}}</span>
  103. <ul class="header-menu-language" v-if="showLan">
  104. <li :class="{'active': item.id == currentLan}" v-for="item of languageList" :key="item.id" @click="changeLan(item.id)">
  105. <span>{{item.name}}</span>
  106. </li>
  107. </ul>
  108. </li>
  109. </ul>
  110. <ul class="navbar-nav navbar-right" v-if="isLogin && !userIsActive">
  111. <li @mouseover="showAsssets = true" @mouseleave="showAsssets = false">
  112. <span>{{$t('资产')}}</span>
  113. <ul class="header-menu-dropdowns" v-if="showAsssets">
  114. <li>
  115. <span>{{$t('币币账户(充币&提币)')}}</span>
  116. </li>
  117. <li>
  118. <span>{{$t('法币账户')}}</span>
  119. </li>
  120. </ul>
  121. </li>
  122. <li @mouseover="showOrder = true" @mouseleave="showOrder = false">
  123. <span @click="noActive">{{$t('订单')}}</span>
  124. <ul class="header-menu-dropdowns" v-if="showOrder">
  125. <li>
  126. <span @click="noActive">{{$t('币币订单')}}</span>
  127. </li>
  128. <li>
  129. <span @click="noActive">{{$t('解封订单')}}</span>
  130. </li>
  131. <li>
  132. <span @click="noActive">{{$t('法币订单')}}</span>
  133. </li>
  134. </ul>
  135. </li>
  136. <li @mouseover="showMy = true" @mouseleave="showMy = false">
  137. <span @click="noActive">{{$t('我的')}}</span>
  138. <ul class="header-menu-dropdowns header-menu-my" v-if="showMy">
  139. <li>
  140. <div class="user-desc-box">
  141. <h2>
  142. <em>Hi,</em>
  143. {{userInfoData.phone || userInfoData.email}}
  144. </h2>
  145. <p>UID:{{userInfoData.uid}}</p>
  146. </div>
  147. </li>
  148. <li>
  149. <span @click="noActive">{{$t('账户中心')}}</span>
  150. </li>
  151. <li>
  152. <span @click="noActive">{{$t('个人设置')}}</span>
  153. </li>
  154. <li>
  155. <span @click="noActive">{{$t('邀请好友')}}</span>
  156. </li>
  157. <li v-if="merchantStatus == 'M_E_S_PASS'">
  158. <span @click="noActive">{{$t('商户信息')}}</span>
  159. </li>
  160. <li>
  161. <span @click="logout">{{$t('退出')}}</span>
  162. </li>
  163. </ul>
  164. </li>
  165. <li @mouseover="showLan = true" @mouseleave="showLan = false">
  166. <span>{{currentLanText}}</span>
  167. <ul class="header-menu-language" v-if="showLan">
  168. <li :class="{'active': item.id == currentLan}" v-for="item of languageList" :key="item.id" @click="changeLan(item.id)">
  169. <span>{{item.name}}</span>
  170. </li>
  171. </ul>
  172. </li>
  173. </ul>
  174. <ul class="navbar-nav navbar-right nav-dropdown" v-if="!isLogin">
  175. <li>
  176. <router-link to="/login">{{$t('登录')}}</router-link>
  177. </li>
  178. <li>
  179. <router-link to="/register">{{$t('注册')}}</router-link>
  180. </li>
  181. <li @mouseover="showLan = true" @mouseleave="showLan = false">
  182. <span>{{currentLanText}}</span>
  183. <ul class="header-menu-language" v-if="showLan">
  184. <li :class="{'active': item.id == currentLan}" v-for="item of languageList" :key="item.id" @click="changeLan(item.id)">
  185. <span>{{item.name}}</span>
  186. </li>
  187. </ul>
  188. </li>
  189. </ul>
  190. </nav>
  191. </header>
  192. </template>
  193. <script>
  194. import { mapState } from 'vuex'
  195. export default {
  196. name: 'myHeader',
  197. data() {
  198. return {
  199. showAsssets: false, //资产菜单
  200. showOrder: false, //订单菜单
  201. showMy: false, //我的菜单
  202. showLan: false, //语言菜单
  203. currentLan: '', //当前语言
  204. languageList: [
  205. {
  206. id: 'cn',
  207. name: '简体中文'
  208. },
  209. {
  210. id: 'en',
  211. name: 'English'
  212. },
  213. {
  214. id: 'korean',
  215. name: '한글'
  216. },
  217. ]
  218. }
  219. },
  220. computed: {
  221. ...mapState('user', ['isLogin', 'userInfoData', 'userIsActive', 'merchantStatus']),
  222. currentLanText() { //当前语言
  223. let text;
  224. this.languageList.forEach(item => {
  225. if (item.id == this.currentLan) {
  226. text = item.name;
  227. }
  228. })
  229. return text;
  230. }
  231. },
  232. methods: {
  233. changeLan(lan) { //切换语言
  234. this.currentLan = lan;
  235. // 此处记录语言选择
  236. this.common.setItem('lan', lan)
  237. // 修改显示语言
  238. this.$i18n.locale = lan;
  239. },
  240. logout() {
  241. this.$confirm(this.$t('您是否确定退出当前账号?'), this.$t('提示'), {
  242. cancelButtonText: this.$t('取消'),
  243. confirmButtonText: this.$t('确定'),
  244. type: 'warning'
  245. })
  246. .then(() => {
  247. this.$message.success(this.$t('退出登录成功!'));
  248. this.$store.dispatch('user/logout');
  249. })
  250. },
  251. noActive() { //没激活的时候,不给点链接
  252. this.$confirm(this.$t('您还未激活账号!'), this.$t('提示'), {
  253. cancelButtonText: this.$t('稍后再说'),
  254. confirmButtonText: this.$t('去激活'),
  255. type: 'warning'
  256. })
  257. .then(() => {
  258. this.postAxios('/api/levl/upload/valid')
  259. .then(() => {
  260. this.$message.success('激活成功!');
  261. setTimeout(() => {
  262. this.$store.dispatch('user/getUserStatus');
  263. }, 600);
  264. })
  265. })
  266. }
  267. },
  268. created() {
  269. this.currentLan = this.common.getItem('lan') || 'cn';
  270. }
  271. }
  272. </script>
  273. <style>
  274. </style>