提交 5e93075c 编写于 作者: KK's avatar KK

格式化代码 & 修复未配置英文名称不显示文本 & 增加路由配置

上级 abe38884
...@@ -66,260 +66,284 @@ ...@@ -66,260 +66,284 @@
</ion-page> </ion-page>
</template> </template>
<script lang="ts"> <script lang="ts">
import { import { Vue, Component, Prop, Provide, Emit, Watch, } from "vue-property-decorator";
Vue,
Component,
Prop,
Provide,
Emit,
Watch,
} from "vue-property-decorator";
import { settingConfig } from "./config"; import { settingConfig } from "./config";
import i18n from '@/locale' import i18n from '@/locale'
@Component({ @Component({
components: {}, components: {},
}) })
export default class AppSetting extends Vue { export default class AppSetting extends Vue {
/** /**
* 用户名称 * 用户名称
*/ *
public srfloginname = ""; * @type {string}
* @memberof AppSetting
*/
public srfloginname = "";
/** /**
* 第三方服务 * 第三方服务
*/ *
public thirdPartyName = this.$viewTool.getThirdPartyName(); * @type {string}
* @memberof AppSetting
*/
public thirdPartyName = this.$viewTool.getThirdPartyName();
/** /**
* 生命周期 * 视图数据
*/ *
public created() { * @memberof AppSetting
let appdata = this.$store.state.appdata; */
this.srfloginname = appdata && appdata.context && appdata.context.srfloginname?appdata.context.srfloginname:"" ; public data: any = {
this.$viewTool.setViewTitleOfThirdParty("设置"); top: [],
this.setViewTitleStatus(); center: [],
this.initializeData(); bottom: [],
}
/**
* 视图数据
*/
public data: any = {
top: [],
center: [],
bottom: [],
};
/**
* 初始化数据
*/
public initializeData() {
// console.log(settingConfig);
let data = [];
data.push(...settingConfig.default, ...settingConfig.userCustomize);
// 分类合并
data.forEach((item: any) => {
if (item.position == "top") {
this.data.top.push(item);
}
if (item.position == "center") {
this.data.center.push(item);
}
if (item.position == "bottom") {
this.data.bottom.push(item);
}
// 多语言处理
if (item.entext) {
if (i18n.locale == "ZH-CN") {
item.showtext = item.text;
} else if (i18n.locale == "EN-US"){
item.showtext = item.entext;
}
}
});
// 排序规则
let compare = (property: any) => {
return (a: any, b: any) => {
var value1 = a[property];
var value2 = b[property];
return value1 - value2;
};
}; };
// 排序
Object.keys(this.data).forEach((item: any) => {
this.data[item].sort(compare("sort"));
});
}
/**
* 标题状态
*
*/
public titleStatus: boolean = true;
/**
* 设置标题状态
*
*/
public setViewTitleStatus() {
const thirdPartyName = this.$store.getters.getThirdPartyName();
if (thirdPartyName) {
this.titleStatus = false;
}
}
/** /**
* 退出登录 * 初始化数据
*/ *
public async logout() { * @memberof AppSetting
const title: any = this.$t("app.tabpage.sureclosetip.title"); */
const contant: any = this.$t("app.tabpage.sureclosetip.content"); public initializeData() {
const result = await this.$notice.confirm(title, "确认退出当前账号?"); let data = [];
if (result) { data.push(...settingConfig.default, ...settingConfig.userCustomize);
if (this.thirdPartyName) { // 分类合并
this.$viewTool.ThirdPartyClose(); data.forEach((item: any) => {
return; if (item.position == "top") {
} this.data.top.push(item);
const get: Promise<any> = this.$http.get("v7/logout"); }
get.then((response: any) => { if (item.position == "center") {
if (response && response.status === 200) { this.data.center.push(item);
this.doLogin(); }
} if (item.position == "bottom") {
}) this.data.bottom.push(item);
.catch((error: any) => { }
console.error(error); // 多语言处理
if (item.entext) {
if (i18n.locale == "ZH-CN") {
item.showtext = item.text;
} else if (i18n.locale == "EN-US") {
item.showtext = item.entext;
}
} else {
item.showtext = item.text;
}
});
// 排序规则
let compare = (property: any) => {
return (a: any, b: any) => {
var value1 = a[property];
var value2 = b[property];
return value1 - value2;
};
};
// 排序
Object.keys(this.data).forEach((item: any) => {
this.data[item].sort(compare("sort"));
}); });
} }
}
/** /**
* 去登录 * 标题状态
* *
*/ * @memberof AppSetting
public doLogin(data?: any): void { */
// 清除user、token public titleStatus: boolean = true;
if (localStorage.getItem("user")) {
localStorage.removeItem("user"); /**
* 设置标题状态
*
* @memberof AppSetting
*/
public setViewTitleStatus() {
const thirdPartyName = this.$store.getters.getThirdPartyName();
if (thirdPartyName) {
this.titleStatus = false;
}
} }
if (localStorage.getItem("token")) {
localStorage.removeItem("token"); /**
* 退出登录
*
* @memberof AppSetting
*/
public async logout() {
const title: any = this.$t("app.tabpage.sureclosetip.title");
const contant: any = this.$t("app.tabpage.sureclosetip.content");
const result = await this.$notice.confirm(title, "确认退出当前账号?");
if (result) {
if (this.thirdPartyName) {
this.$viewTool.ThirdPartyClose();
return;
}
const get: Promise<any> = this.$http.get("v7/logout");
get.then((response: any) => {
if (response && response.status === 200) {
this.doLogin();
}
})
.catch((error: any) => {
console.error(error);
});
}
} }
this.$router.push({ name: "login" });
}
/** /**
* 清除缓存 * 去登录
*/ *
public async clear() { * @memberof AppSetting
const result = await this.$notice.confirm("清除缓存", "清除缓存可能会导致当前登录信息失效!!!"); */
if (result) { public doLogin(data?: any): void {
localStorage.clear(); // 清除user、token
if (localStorage.getItem("user")) {
localStorage.removeItem("user");
}
if (localStorage.getItem("token")) {
localStorage.removeItem("token");
}
this.$router.push({ name: "login" });
} }
}
/** /**
* 主题切换 * 清除缓存
*/ *
public changeTheme() { * @memberof AppSetting
let changeTheme: any = this.$refs.changeTheme; */
if (changeTheme && changeTheme[0]) { public async clear() {
changeTheme[0].open(); const result = await this.$notice.confirm("清除缓存", "清除缓存可能会导致当前登录信息失效!!!");
if (result) {
localStorage.clear();
}
} }
}
/** /**
* 个人中心 * 主题切换
*/ *
public userCenter() { * @memberof AppSetting
const { context, param } = this.$store.getters.getAppData(); */
let user: any = {}; public changeTheme() {
if (context && context.srfuserid) { let changeTheme: any = this.$refs.changeTheme;
user[settingConfig.userEntityName] = context.srfuserid; if (changeTheme && changeTheme[0]) {
changeTheme[0].open();
}
} }
if (settingConfig.userCenterViewName) {
this.$appmodal.openModal( /**
{ viewname: settingConfig.userCenterViewName, title: "" }, * 个人中心
user *
); * @memberof AppSetting
} else { */
this.$notice.warning("用户自定义视图未配置"); public userCenter() {
const { context, param } = this.$store.getters.getAppData();
let user: any = {};
if (context && context.srfuserid) {
user[settingConfig.userEntityName] = context.srfuserid;
}
if (settingConfig.userCenterViewName) {
this.$appmodal.openModal(
{ viewname: settingConfig.userCenterViewName, title: "" },
user
);
} else {
this.$notice.warning("用户自定义视图未配置");
}
} }
}
/** /**
* 模态打开 * 模态打开
* *
*/ * @memberof AppSetting
private async openPopupModal(view: any, context: any, param: any): Promise<any> { */
const result: any = await this.$appmodal.openModal(view, context, param); private async openPopupModal(view: any, context: any, param: any): Promise<any> {
if (result || Object.is(result.ret, "OK")) { const result: any = await this.$appmodal.openModal(view, context, param);
this.$emit("change", result.datas[0].backEnd); if (result || Object.is(result.ret, "OK")) {
this.$emit("change", result.datas[0].backEnd);
}
} }
}
/** /**
* 语言列表 * 语言列表
* *
*/ * @memberof AppSetting
public lanArray:any; */
public lanArray: any;
/** /**
* 切换语言 * 切换语言
* *
*/ * @memberof AppSetting
public changeLanguage(){ */
let lanarr:any = localStorage.getItem('lanArray'); public changeLanguage() {
this.lanArray = JSON.parse(lanarr); let lanarr: any = localStorage.getItem('lanArray');
this.lanArray = this.lanArray.map( (language:any) => language.indexOf("ZH-CN") > -1 ? language.replace("ZH-CN","EN-US") : language.replace("EN-US","ZH-CN")); this.lanArray = JSON.parse(lanarr);
i18n.locale = this.lanArray[0]; this.lanArray = this.lanArray.map((language: any) => language.indexOf("ZH-CN") > -1 ? language.replace("ZH-CN", "EN-US") : language.replace("EN-US", "ZH-CN"));
localStorage.setItem('local',this.lanArray[0]); i18n.locale = this.lanArray[0];
localStorage.setItem('lanArray',JSON.stringify(this.lanArray)) ; localStorage.setItem('local', this.lanArray[0]);
// 提示框 localStorage.setItem('lanArray', JSON.stringify(this.lanArray));
if (this.lanArray[0] === "ZH-CN") { // 提示框
this.$notice.success('已切换为中文!'); if (this.lanArray[0] === "ZH-CN") {
} else if (this.lanArray[0] === "EN-US"){ this.$notice.success('已切换为中文!');
this.$notice.success('已切换为英文!'); } else if (this.lanArray[0] === "EN-US") {
this.$notice.success('已切换为英文!');
}
Object.keys(this.data).forEach((items: any) => {
// 多语言处理
this.data[items].forEach((item: any) => {
if (item.entext) {
if (i18n.locale == "ZH-CN") {
item.showtext = item.text;
} else if (i18n.locale == "EN-US") {
item.showtext = item.entext;
}
}
})
});
this.$forceUpdate();
} }
Object.keys(this.data).forEach((items: any) => {
// 多语言处理 /**
this.data[items].forEach((item:any)=>{ * item点击事件
if (item.entext) { *
if (i18n.locale == "ZH-CN") { * @memberof AppSetting
item.showtext = item.text; */
} else if (i18n.locale == "EN-US"){ public onItemClick(item: any) {
item.showtext = item.entext; // 内置功能
} if (item.name == "accountInformation") {
this.userCenter();
} else if (item.name == "theme") {
this.changeTheme();
} else if (item.name == "layoutStyle") {
this.openPopupModal({ viewname: item.viewName }, {}, {});
} else if (item.name == "logout") {
this.logout();
} else if (item.name == "clear") {
this.clear();
} else if (item.name == "language") {
this.changeLanguage();
} else {
// 自定义功能
if (item.path) {
this.$router.push(`/viewshell/null/${item.path}`);
} else if (item.viewName) {
this.openPopupModal({ viewname: item.viewName }, {}, {});
}
} }
}) }
});
this.$forceUpdate();
}
/** /**
* item点击事件 * 生命周期
*/ *
public onItemClick(item: any) { * @memberof AppSetting
// 内置功能 */
if (item.name == "accountInformation") { public created() {
this.userCenter(); let appdata = this.$store.state.appdata;
} else if (item.name == "theme") { this.srfloginname = appdata && appdata.context && appdata.context.srfloginname ? appdata.context.srfloginname : "";
this.changeTheme(); this.$viewTool.setViewTitleOfThirdParty("设置");
} else if (item.name == "layoutStyle") { this.setViewTitleStatus();
this.openPopupModal({ viewname: item.viewName }, {}, {}); this.initializeData();
} else if (item.name == "logout") {
this.logout();
} else if (item.name == "clear") {
this.clear();
} else if (item.name == "language"){
this.changeLanguage();
} else {
// 自定义功能
if (item.viewName) {
this.openPopupModal({ viewname: item.viewName }, {}, {});
}
} }
}
} }
</script> </script>
<style lang="less"> <style lang="less">
......
...@@ -118,6 +118,8 @@ export const settingConfig = { ...@@ -118,6 +118,8 @@ export const settingConfig = {
// sort: "201", // sort: "201",
// 打开视图名称 // 打开视图名称
// viewName: "", // viewName: "",
// 路由路径
// path: "",
// }, // },
], ],
}; };
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册