提交 2582c038 编写于 作者: KK's avatar KK

主题组件

上级 7e8fbbde
...@@ -32,4 +32,11 @@ ...@@ -32,4 +32,11 @@
border-left: 5px solid transparent; border-left: 5px solid transparent;
color: #615e5ec4; color: #615e5ec4;
} }
.activeoption{
padding: 5px;
font-size: 12px;
width: 50px;
text-align: center;
border-radius: 2px;
}
} }
\ No newline at end of file
<template> <template>
<div class="app-mobile-select" > <div class="app-mobile-select" @click="open">
<div class="ion-select-icon"></div> <div class="activeoption" v-if="activeoption" :style="{'background':activeoption.background,'color':activeoption.color}">{{activeoption.text}}</div>
<ion-select :value="curValue" @ionChange="change" interface="action-sheet" :cancel-text="$t('app.button.cancel')"> <ion-select v-show="false" ref="themeselect" :value="curValue" @ionChange="change" interface="action-sheet" :cancel-text="$t('app.button.cancel')">
<ion-select-option v-for="option of options" :key="option.value" :value="option.value" class="mob-select-text">{{option.text}}</ion-select-option> <ion-select-option v-for="option of options" :key="option.value" :value="option.value" class="mob-select-text">{{option.text}}</ion-select-option>
</ion-select> </ion-select>
</div> </div>
</template> </template>
...@@ -15,6 +14,8 @@ import { Vue, Component, Prop, Provide, Emit, Watch, } from "vue-property-decora ...@@ -15,6 +14,8 @@ import { Vue, Component, Prop, Provide, Emit, Watch, } from "vue-property-decora
components: {}, components: {},
}) })
export default class AppSelect extends Vue { export default class AppSelect extends Vue {
/** /**
* 当前选中值 * 当前选中值
* @memberof AppSelect * @memberof AppSelect
...@@ -27,6 +28,8 @@ export default class AppSelect extends Vue { ...@@ -27,6 +28,8 @@ export default class AppSelect extends Vue {
this.themeChange(value.detail.value); this.themeChange(value.detail.value);
} }
public activeoption:any = {};
public getTheme(){ public getTheme(){
if (this.$router.app.$store.state.selectTheme) { if (this.$router.app.$store.state.selectTheme) {
return this.$router.app.$store.state.selectTheme; return this.$router.app.$store.state.selectTheme;
...@@ -53,9 +56,9 @@ export default class AppSelect extends Vue { ...@@ -53,9 +56,9 @@ export default class AppSelect extends Vue {
* @memberof AppSelect * @memberof AppSelect
*/ */
public options: any[] = [ public options: any[] = [
{value:"app-blue-theme",text:"dark"}, {value:"app-blue-theme",text:"dark",background:"#705697",color:"#fff"},
{value:"app-dark-blue-theme",text:"light"}, {value:"app-dark-blue-theme",text:"light",background:"#5475ab",color:"#fff"},
{value:"app-default-theme",text:"default"}, {value:"app-default-theme",text:"fault",background:"#3880ff",color:"#fff"},
]; ];
/** /**
...@@ -63,6 +66,7 @@ export default class AppSelect extends Vue { ...@@ -63,6 +66,7 @@ export default class AppSelect extends Vue {
*/ */
public mounted() { public mounted() {
this.activeTheme = this.getTheme(); this.activeTheme = this.getTheme();
this.setActiveoption();
} }
/** /**
...@@ -73,6 +77,20 @@ export default class AppSelect extends Vue { ...@@ -73,6 +77,20 @@ export default class AppSelect extends Vue {
*/ */
public activeTheme = ""; public activeTheme = "";
/**
* 设置
*
* @type {any[]}
* @memberof AppSelect
*/
public setActiveoption(){
let index = this.options.findIndex((item:any)=>{
return this.activeTheme == item.value;
})
console.log(index);
this.activeoption = index>-1? this.options[index]:null;
}
/** /**
* 主题变化 * 主题变化
* *
...@@ -85,8 +103,21 @@ export default class AppSelect extends Vue { ...@@ -85,8 +103,21 @@ export default class AppSelect extends Vue {
localStorage.setItem('theme-class', val); localStorage.setItem('theme-class', val);
this.$router.app.$store.commit('setCurrentSelectTheme', val); this.$router.app.$store.commit('setCurrentSelectTheme', val);
} }
this.setActiveoption();
} }
/**
* 打开
*
* @param {*} val
* @memberof AppTheme
*/
public open(){
let select :any= this.$refs.themeselect;
if(select){
select.open();
}
}
} }
</script> </script>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册