赫艾前端
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.

234 lines
8.4 KiB

4 years ago
2 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
  1. <template>
  2. <nav class="site-navbar" :class="'site-navbar--' + navbarLayoutType">
  3. <div class="site-navbar__header">
  4. <h1 class="site-navbar__brand">
  5. <el-menu
  6. class="site-navbar__menu"
  7. mode="horizontal">
  8. <el-menu-item class="site-navbar__switch" index="0" @click="sidebarFold = !sidebarFold">
  9. <icon-svg name="zhedie"></icon-svg>
  10. </el-menu-item>
  11. </el-menu>
  12. <a class="site-navbar__brand-lg" href="javascript:;" >{{$t('commonSystemName')}}</a>
  13. <a class="site-navbar__brand-mini" href="javascript:;">{{$t('commonAbbreviation')}}</a>
  14. </h1>
  15. </div>
  16. <div class="site-navbar__body clearfix">
  17. <!-- <el-menu-->
  18. <!-- class="site-navbar__menu"-->
  19. <!-- mode="horizontal">-->
  20. <!-- <el-menu-item class="site-navbar__switch" index="0" @click="sidebarFold = !sidebarFold">-->
  21. <!-- <icon-svg name="zhedie"></icon-svg>-->
  22. <!-- </el-menu-item>-->
  23. <!-- </el-menu>-->
  24. <el-menu
  25. class="site-navbar__menu site-navbar__menu--right"
  26. mode="horizontal">
  27. <!-- <el-menu-item class="site-navbar__avatar" index="2">-->
  28. <!-- <span>{{siteNow}}</span>-->
  29. <!-- </el-menu-item>-->
  30. <el-submenu index="2">
  31. <template slot="title">设置</template>
  32. <el-submenu index="2-1" >
  33. <template slot="title">语言设置</template>
  34. <el-menu-item index="2-1-1" @click.native="switch_the_language('cn')">{{$t('lange.cn')}}</el-menu-item>
  35. <el-menu-item index="2-1-2" @click.native="switch_the_language('en')">{{$t('lange.en')}}</el-menu-item>
  36. <el-menu-item index="2-1-3" @click.native="switch_the_language('jp')">{{$t('lange.jp')}}</el-menu-item>
  37. <el-menu-item index="2-1-4" @click.native="switch_the_language('kr')">{{$t('lange.kr')}}</el-menu-item>
  38. </el-submenu>
  39. <el-submenu index="2-2">
  40. <template slot="title">用户设置</template>
  41. <el-menu-item index="2-2-1" @click.native="updatePasswordHandle()">修改密码</el-menu-item>
  42. <el-menu-item index="2-2-2" @click.native="updateLanguageHandle()">修改默认语言</el-menu-item>
  43. </el-submenu>
  44. <el-menu-item index="2-3" @click="$router.push({ name: 'theme' })">主题设置</el-menu-item>
  45. </el-submenu>
  46. <el-menu-item class="site-navbar__avatar" index="3">
  47. <el-dropdown :show-timeout="0" placement="bottom">
  48. <span class="el-dropdown-link">
  49. <img src="~@/assets/img/avatar.png" :alt="userName">{{ userName }}
  50. </span>
  51. <el-dropdown-menu slot="dropdown">
  52. <el-dropdown-item @click.native="logoutHandle()">退出</el-dropdown-item>
  53. </el-dropdown-menu>
  54. </el-dropdown>
  55. </el-menu-item>
  56. </el-menu>
  57. <!-- <el-menu-->
  58. <!-- class="site-navbar__menu site-navbar__menu&#45;&#45;right"-->
  59. <!-- mode="horizontal">-->
  60. <!-- <el-menu-item index="1">-->
  61. <!-- <el-dropdown :show-timeout="0" placement="bottom">-->
  62. <!-- <span class="el-dropdown-link">-->
  63. <!-- &lt;!&ndash; 注2在按钮中加入单击事件事件指向语言切换函数 &ndash;&gt;-->
  64. <!-- {{$t('language.name')}}-->
  65. <!-- </span>-->
  66. <!-- <el-dropdown-menu slot="dropdown">-->
  67. <!-- <el-dropdown-item @click.native="switch_the_language('cn')">{{$t('lange.cn')}}</el-dropdown-item>-->
  68. <!-- <el-dropdown-item @click.native="switch_the_language('en')">{{$t('lange.en')}}</el-dropdown-item>-->
  69. <!-- <el-dropdown-item @click.native="switch_the_language('jp')">{{$t('lange.jp')}}</el-dropdown-item>-->
  70. <!-- <el-dropdown-item @click.native="switch_the_language('kr')">{{$t('lange.kr')}}</el-dropdown-item>-->
  71. <!-- </el-dropdown-menu>-->
  72. <!-- </el-dropdown>-->
  73. <!-- </el-menu-item>-->
  74. <!-- <el-menu-item index="1" @click="$router.push({ name: 'theme' })">-->
  75. <!-- <template slot="title">-->
  76. <!-- <el-badge value="new">-->
  77. <!-- <icon-svg name="shezhi" class="el-icon-setting"></icon-svg>-->
  78. <!-- </el-badge>-->
  79. <!-- </template>-->
  80. <!-- </el-menu-item>-->
  81. <!-- <el-menu-item class="site-navbar__avatar" index="3">-->
  82. <!-- <el-dropdown :show-timeout="0" placement="bottom">-->
  83. <!-- <span class="el-dropdown-link">-->
  84. <!-- <img src="~@/assets/img/avatar.png" :alt="userName">{{ userName }}-->
  85. <!-- </span>-->
  86. <!-- <el-dropdown-menu slot="dropdown">-->
  87. <!-- <el-dropdown-item @click.native="updatePasswordHandle()">修改密码</el-dropdown-item>-->
  88. <!-- <el-dropdown-item @click.native="updateLanguageHandle()">修改默认语言</el-dropdown-item>-->
  89. <!-- <el-dropdown-item @click.native="logoutHandle()">退出</el-dropdown-item>-->
  90. <!-- </el-dropdown-menu>-->
  91. <!-- </el-dropdown>-->
  92. <!-- </el-menu-item>-->
  93. <!-- </el-menu>-->
  94. </div>
  95. <!-- 弹窗, 修改密码 -->
  96. <update-password v-if="updatePassowrdVisible" ref="updatePassowrd"></update-password>
  97. <update-language v-if="updateLanguageVisible" ref="updateLanguage"></update-language>
  98. </nav>
  99. </template>
  100. <script>
  101. import UpdatePassword from './main-navbar-update-password'
  102. import UpdateLanguage from './main-navbar-update-language'
  103. import {clearLoginInfo} from '@/utils'
  104. import {
  105. getSiteData,
  106. } from "@/api/board.js"
  107. export default {
  108. data() {
  109. return {
  110. siteNow:'',
  111. updatePassowrdVisible: false,
  112. updateLanguageVisible: false,
  113. message: this.$t('language.name')
  114. }
  115. },
  116. components: {
  117. UpdatePassword,
  118. UpdateLanguage
  119. },
  120. computed: {
  121. navbarLayoutType: {
  122. get() {
  123. return this.$store.state.common.navbarLayoutType
  124. }
  125. },
  126. sidebarFold: {
  127. get() {
  128. return this.$store.state.common.sidebarFold
  129. },
  130. set(val) {
  131. this.$store.commit('common/updateSidebarFold', val)
  132. }
  133. },
  134. mainTabs: {
  135. get() {
  136. return this.$store.state.common.mainTabs
  137. },
  138. set(val) {
  139. this.$store.commit('common/updateMainTabs', val)
  140. }
  141. },
  142. userName: {
  143. get() {
  144. return this.$store.state.user.userDisplay
  145. }
  146. }
  147. },
  148. methods: {
  149. // 注3:增加语言切换函数
  150. switch_the_language(val) {
  151. localStorage.setItem('locale', val)
  152. location.reload()
  153. },
  154. // 修改密码
  155. updatePasswordHandle() {
  156. this.updatePassowrdVisible = true
  157. this.$nextTick(() => {
  158. this.$refs.updatePassowrd.init()
  159. })
  160. },
  161. // 修改用户默认语言
  162. updateLanguageHandle(){
  163. this.updateLanguageVisible = true
  164. this.$nextTick(() =>{
  165. this.$refs.updateLanguage.init()
  166. })
  167. },
  168. // 退出
  169. logoutHandle() {
  170. this.$confirm(`确定进行[退出]操作?`, '提示', {
  171. confirmButtonText: '确定',
  172. cancelButtonText: '取消',
  173. type: 'warning'
  174. }).then(() => {
  175. this.$http({
  176. url: this.$http.adornUrl('/sys/logout'),
  177. method: 'post',
  178. data: this.$http.adornData()
  179. }).then(({data}) => {
  180. if (data && data.code === 0) {
  181. clearLoginInfo()
  182. this.$router.push({name: 'login'})
  183. }
  184. })
  185. }).catch(() => {
  186. })
  187. },
  188. getNowSite(){
  189. let data={};
  190. getSiteData(data).then(({data}) => {
  191. if(data.rows.length>0){
  192. for (let i = 0; i <data.rows.length ; i++) {
  193. if(data.rows[i].siteID==this.$store.state.user.site){
  194. this.siteNow="当前工厂:"+data.rows[i].siteID+" - "+data.rows[i].siteName
  195. }
  196. }
  197. }
  198. })
  199. }
  200. },
  201. created() {
  202. this. getNowSite()
  203. }
  204. }
  205. </script>
  206. <style lang="scss">
  207. .icon-svg {
  208. width: 2em;
  209. }
  210. .el-menu--collapse .el-menu .el-submenu, .el-menu--popup, .el-menu-item{
  211. min-width: 50px!important;
  212. }
  213. .site-navbar__brand-lg, .site-navbar__brand-mini {
  214. margin: 0 5px;
  215. color: #fff;
  216. margin-left: -45px;
  217. }
  218. .el-menu--horizontal>.el-menu-item {
  219. color: #3b4249;
  220. }
  221. </style>