Skip to content

Commit 52f652a

Browse files
committed
admin panel add language-select
1 parent e336f7d commit 52f652a

File tree

3 files changed

+59
-5
lines changed

3 files changed

+59
-5
lines changed

vue/src/components/language-list.vue

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<template>
2+
<div class="full-screen-btn-con language-list" style="width:80px">
3+
<Dropdown @on-click="changeLanguage">
4+
<a>
5+
<i :class="currentLanguage.icon" style="display:inline-block"></i>
6+
{{currentLanguage.displayName}}
7+
<Icon type="arrow-down-b"></Icon>
8+
</a>
9+
<DropdownMenu slot="list">
10+
<DropdownItem v-for="(language,index) in languages" :key="index" :name="language.name" style="text-align:left">
11+
<i :class="language.icon" style="display:inline-block"></i>
12+
{{language.displayName}}
13+
</DropdownItem>
14+
</DropdownMenu>
15+
</Dropdown>
16+
</div>
17+
</template>
18+
<script lang="ts">
19+
import { Component, Vue,Inject, Prop,Watch } from 'vue-property-decorator';
20+
import Util from '../lib/util'
21+
import AbpBase from '../lib/abpbase'
22+
@Component
23+
export default class LanguageList extends AbpBase{
24+
get languages(){
25+
return abp.localization.languages.filter(val=>{
26+
return !val.isDisabled&&val.name!==this.currentLanguage.name;
27+
});
28+
}
29+
changeLanguage(languageName:string){
30+
abp.utils.setCookieValue(
31+
"Abp.Localization.CultureName",
32+
languageName,
33+
new Date(new Date().getTime() + 5 * 365 * 86400000), //5 year
34+
abp.appPath
35+
);
36+
location.reload();
37+
}
38+
get currentLanguage(){
39+
return abp.localization.currentLanguage;
40+
}
41+
}
42+
</script>
43+
<style>
44+
.language-list{
45+
width:80px;
46+
}
47+
.language-list i{
48+
display: inline-block
49+
}
50+
</style>
51+
52+

vue/src/views/main.less

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@
148148
right: 0;
149149
top: 0;
150150
height: 100%;
151-
width: 230px;
151+
width: 300px;
152152
.switch-theme-con{
153153
display: inline-block;
154154
width: 40px;
@@ -177,11 +177,11 @@
177177
position: absolute;
178178
right: 0;
179179
top: 0;
180-
width: 150px;
180+
width: 130px;
181181
height: 100%;
182182
.main-user-name{
183183
display: inline-block;
184-
width: 80px;
184+
width: 60px;
185185
word-break: keep-all;
186186
white-space: nowrap;
187187
vertical-align: middle;

vue/src/views/main.vue

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@
3535
<div class="header-avator-con">
3636
<full-screen v-model="isFullScreen" @on-change="fullscreenChange"></full-screen>
3737
<lock-screen></lock-screen>
38-
<notice></notice>
38+
<notice></notice>
39+
<language-list></language-list>
3940
<div class="user-dropdown-menu-con">
4041
<Row type="flex" justify="end" align="middle" class="user-dropdown-innercon">
4142
<Dropdown transfer trigger="click" @on-click="handleClickUserDropdown">
@@ -77,9 +78,10 @@
7778
import notice from '../components/notices/notice.vue';
7879
import util from '../lib/util';
7980
import copyfooter from '../components/Footer.vue'
81+
import LanguageList from '../components/language-list.vue'
8082
import AbpBase from '../lib/abpbase'
8183
@Component({
82-
components:{shrinkableMenu,tagsPageOpened,breadcrumbNav,fullScreen,lockScreen,notice,copyfooter}
84+
components:{shrinkableMenu,tagsPageOpened,breadcrumbNav,fullScreen,lockScreen,notice,copyfooter,LanguageList}
8385
})
8486
export default class Main extends AbpBase {
8587
shrink:boolean=false;

0 commit comments

Comments
 (0)