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

适配分页导航面板主状态逻辑

上级 4f5824c8
......@@ -4,9 +4,9 @@
${ctrl.render.code}
<#else>
<div class='tabviewpanel<#if ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>' style="height:100%;">
<tabs :value="tabValue" :animated="false" class='tabexppanel' name='${ctrl.getCodeName()?lower_case}' @on-click="tabPanelClick">
<tabs :value="activiedTabViewPanel" :animated="false" class='tabexppanel' name='${ctrl.getCodeName()?lower_case}' @on-click="tabPanelClick">
<#list ctrl.getPSControls() as tabviewpanel>
<tab-pane :index="${tabviewpanel_index}" name='${tabviewpanel.name}' tab='${ctrl.getCodeName()?lower_case}' class='<#if tabviewpanel.getPSSysCss?? && tabviewpanel.getPSSysCss()??>${tabviewpanel.getPSSysCss().getCssName()}</#if>' v-if="computedAuthorizedPanel('${tabviewpanel.name}')"
<tab-pane :index="${tabviewpanel_index}" name='${tabviewpanel.name}' tab='${ctrl.getCodeName()?lower_case}' class='<#if tabviewpanel.getPSSysCss?? && tabviewpanel.getPSSysCss()??>${tabviewpanel.getPSSysCss().getCssName()}</#if>' v-if="authResourceObject['${tabviewpanel.name}'].visabled"
:label="(h) =>{
return h('div', [
<#if tabviewpanel.getPSSysImage()??>
......@@ -58,6 +58,14 @@ import { Environment } from '@/environments/environment';
*/
public appAuthService: ${appde.getCodeName()}AuthService = new ${appde.getCodeName()}AuthService();
/**
* 界面UI服务对象
*
* @type {${srfclassname('${appde.getCodeName()}')}UIService}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public appUIService:${srfclassname('${appde.getCodeName()}')}UIService = new ${srfclassname('${appde.getCodeName()}')}UIService(this.$store);
/**
* 是否初始化
*
......@@ -137,39 +145,45 @@ import { Environment } from '@/environments/environment';
public activiedTabViewPanel: string = '<#list ctrl.getPSControls() as tabviewpanel><#if tabviewpanel_index==0>${tabviewpanel.name}</#if></#list>';
/**
* 计算激活分页面板
* 计算分页面板权限
*
* @type {string}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public computedActiviedPanel(){
if(this.$store.getters['authresource/getEnablePermissionValid']){
if(Object.keys(this.authResourceObject).length >0){
let targetResult:Array<any> = [];
Object.keys(this.authResourceObject).forEach((item:any) =>{
if(this.computedAuthorizedPanel(item))
targetResult.push(item);
})
if(targetResult.length >0){
this.activiedTabViewPanel = targetResult[0];
this.tabPanelClick(targetResult[0]);
public computedAuthPanel(data:any){
if(!data || Object.keys(data) === 0){
return;
}
if(this.authResourceObject && Object.keys(this.authResourceObject).length >0){
Object.keys(this.authResourceObject).forEach((key:string) =>{
if(this.authResourceObject[key] && this.authResourceObject[key]['dataaccaction']){
let tempUIAction:any = Util.deepCopy(this.authResourceObject[key]);
let result: any[] = ViewTool.calcActionItemAuthState(data,[tempUIAction],this.appUIService);
this.authResourceObject[key].visabled = this.computedPanelWithResource(key,tempUIAction.visabled);
this.authResourceObject[key].disabled = this.computedPanelWithResource(key,tempUIAction.disabled);
}
})
const keys:any = Object.keys(this.authResourceObject);
for(let i=0;i<keys.length;i++){
if(this.authResourceObject[keys[i]].visabled){
this.tabPanelClick(keys[i]);
return;
}
}
}
}
/**
* 计算分页面板是否显示
* 合入统一资源权限
*
* @type {string}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public computedAuthorizedPanel(name:string){
public computedPanelWithResource(name:string,mainState:boolean){
if(!this.$store.getters['authresource/getEnablePermissionValid'])
return true;
return mainState === false?false:true;
if(!this.authResourceObject[name])
return true;
return this.appAuthService.getResourcePermission(this.authResourceObject[name]);
return mainState === false?false:true;
const resouceAuth:boolean = this.appAuthService.getResourcePermission(this.authResourceObject[name]['resourcetag']);
return !resouceAuth?false:mainState?true:false;
}
/**
......@@ -184,7 +198,6 @@ import { Environment } from '@/environments/environment';
/**
* vue 生命周期
*
* @returns
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public created() {
......@@ -204,14 +217,13 @@ import { Environment } from '@/environments/environment';
Object.assign(this.context,{srfparentdename:'${appDataEntity.getCodeName()}',srfparentkey:this.context.${appDataEntity.getCodeName()?lower_case}})
}
</#if>
this.computedActiviedPanel();
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
if(Object.is(action,'loadmodel')){
this.computedAuthPanel(data);
}else{
this.action = action;
this.viewState.next({ tag: this.activiedTabViewPanel, action: action, data: data });
......
......@@ -12,6 +12,7 @@
return;
}
const { data: _data } = response;
this.viewState.next({ tag: 'tabexppanel', action: 'loadmodel', data: _data});
if (_data.${appDataEntity.getMajorPSAppDEField().getCodeName()?lower_case}) {
Object.assign(this.model, { dataInfo: _data.${appDataEntity.getMajorPSAppDEField().getCodeName()?lower_case} });
if(this.$tabPageExp){
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册