提交 f760fd9a 编写于 作者: tony001's avatar tony001

视图标题国际化调整

上级 694d1141
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
:key="item.path" :key="item.path"
> >
<span <span
v-if="item.redirect === 'noredirect' || index === breadcrumbs.length-1" v-if="index === breadcrumbs.length-1"
class="no-redirect" class="no-redirect"
>{{ $t(item.meta.caption) }}</span> >{{ $t(item.meta.caption) }}</span>
<a <a
...@@ -22,64 +22,57 @@ ...@@ -22,64 +22,57 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { compile } from 'path-to-regexp'
import { Component, Vue, Watch, Prop } from 'vue-property-decorator' import { Component, Vue, Watch, Prop } from 'vue-property-decorator'
import { RouteRecord, Route } from 'vue-router' import { RouteRecord, Route } from 'vue-router'
@Component({ @Component({
name: 'Breadcrumb'
}) })
export default class extends Vue { export default class Breadcrumb extends Vue {
private breadcrumbs: RouteRecord[] = []
private breadcrumbs: RouteRecord[] = []; //面包屑列表
@Prop() public defPSAppView?: any; @Prop() public defPSAppView: any; //默认视图
/**
* 监听路由
*
* @memberof Breadcrumb
*/
@Watch('$route') @Watch('$route')
private onRouteChange(route: Route) { private onRouteChange(route: Route) {
// if you go to the redirect page, do not update the breadcrumbs
if (route.path.startsWith('/redirect/')) {
return
}
this.getBreadcrumb() this.getBreadcrumb()
} }
/**
* vue 生命周期
*
* @memberof Breadcrumb
*/
created() { created() {
this.getBreadcrumb() this.getBreadcrumb()
} }
/**
* 获取面包屑数据
*
* @memberof Breadcrumb
*/
private getBreadcrumb() { private getBreadcrumb() {
let matched = this.$route.matched.filter((item) => item.meta && item.meta.caption) this.breadcrumbs = this.$route.matched.filter((item) => {
const first = matched[0] return item.meta && item.meta.caption
if (!this.isDashboard(first)) { })
matched = [{ path: "/index/:index?", meta: { if(this.defPSAppView){
caption: 'app.views.index.caption', /**如果配置了默认视图,给面包屑第一级赋值默认视图为首页 */
viewType: 'APPINDEX',
parameters: [
{ pathName: 'index', parameterName: 'index' },
],
requireAuth: true, } } as RouteRecord].concat(matched)
}
this.breadcrumbs = matched.filter((item) => {
return item.meta && item.meta.caption && item.meta.breadcrumb !== false
})
}
private isDashboard(route: RouteRecord) {
const name = route && route.meta.parameters[0].pathName;
if (!name) {
return false
} }
return name.trim().toLocaleLowerCase() === 'index'.toLocaleLowerCase()
}
private pathCompile(item: any) {
const { params, path, query } = item;
return { params, path, query };
} }
/**
* 单机面包屑
*
* @memberof Breadcrumb
*/
private handleLink(item: any) { private handleLink(item: any) {
this.$router.push(this.pathCompile(item)).catch(err => { this.$router.push(item).catch(err => {
console.warn(err); console.warn(err);
}); });
} }
......
...@@ -101,7 +101,7 @@ export default class EditViewEngine extends ViewEngine { ...@@ -101,7 +101,7 @@ export default class EditViewEngine extends ViewEngine {
* @memberof EditViewEngine * @memberof EditViewEngine
*/ */
public onFormLoad(arg: any): void { public onFormLoad(arg: any): void {
this.view.model.dataInfo = Object.is(arg.srfuf, '1') ? (this.majorPSDEField?arg[this.majorPSDEField]:arg.srfmajortext) : this.view.$(this.view.$t('app.local.new')); this.view.model.dataInfo = Object.is(arg.srfuf, '1') ? (this.majorPSDEField?arg[this.majorPSDEField]:arg.srfmajortext) : this.view.$t('app.local.new');
this.setTabCaption(this.view.model.dataInfo); this.setTabCaption(this.view.model.dataInfo);
const newdata: boolean = !Object.is(arg.srfuf, '1'); const newdata: boolean = !Object.is(arg.srfuf, '1');
...@@ -115,7 +115,7 @@ export default class EditViewEngine extends ViewEngine { ...@@ -115,7 +115,7 @@ export default class EditViewEngine extends ViewEngine {
* @memberof EditViewEngine * @memberof EditViewEngine
*/ */
public onFormSave(arg: any): void { public onFormSave(arg: any): void {
this.view.model.dataInfo = Object.is(arg.srfuf, '1') ? (this.majorPSDEField?arg[this.majorPSDEField]:arg.srfmajortext) : this.view.$(this.view.$t('app.local.new')); this.view.model.dataInfo = Object.is(arg.srfuf, '1') ? (this.majorPSDEField?arg[this.majorPSDEField]:arg.srfmajortext) : this.view.$t('app.local.new');
this.setTabCaption(this.view.model.dataInfo); this.setTabCaption(this.view.model.dataInfo);
const newdata: boolean = !Object.is(arg.srfuf, '1'); const newdata: boolean = !Object.is(arg.srfuf, '1');
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册