提交 39be8e25 编写于 作者: ibizdev's avatar ibizdev

ibizdev提交

上级 095c58c2
......@@ -191,6 +191,14 @@
"viewname": "SYS_USEREditView",
"viewtag": "9a896aa77c214ed87ab9be4fd6c6bec5"
},
"sys_user_rolecustomview": {
"title": "角色表自定义视图",
"caption": "角色表自定义视图",
"viewtype": "DECUSTOMVIEW",
"viewmodule": "uaa",
"viewname": "SYS_USER_ROLECustomView",
"viewtag": "9b017760188bc666966521361d0ad5a1"
},
"sys_permissionpickupgridview": {
"title": "权限表选择表格视图",
"caption": "权限/资源",
......
......@@ -22,6 +22,10 @@ export default {
pickupgridview: {
caption: "用户角色关系",
title: '用户角色关系',
},
customview: {
caption: "角色表自定义视图",
title: '角色表自定义视图',
},
mpickupview: {
caption: "用户角色关系",
......
......@@ -21,6 +21,10 @@ export default {
pickupgridview: {
caption: '用户角色关系',
title: '用户角色关系',
},
customview: {
caption: '角色表自定义视图',
title: '角色表自定义视图',
},
mpickupview: {
caption: '用户角色关系',
......
......@@ -199,6 +199,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "SYS_USEREditView",
"viewtag": "9a896aa77c214ed87ab9be4fd6c6bec5"
},
"sys_user_rolecustomview": {
"title": "角色表自定义视图",
"caption": "角色表自定义视图",
"viewtype": "DECUSTOMVIEW",
"viewmodule": "uaa",
"viewname": "SYS_USER_ROLECustomView",
"viewtag": "9b017760188bc666966521361d0ad5a1"
},
"sys_permissionpickupgridview": {
"title": "权限表选择表格视图",
"caption": "权限/资源",
......
<template>
<div class="view-container decustomview sys-user-rolecustom-view">
<app-studioaction :viewTitle="$t(model.srfTitle)" viewName="sys_user_rolecustomview"></app-studioaction>
<card class='view-card' :disHover="true" :padding="0" :bordered="false">
<p slot='title'>
<span class='caption-info'>{{$t(model.srfTitle)}}</span>
</p>
<div class="content-container">
</div>
</card>
</div>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import { Subject } from 'rxjs';
import SYS_USER_ROLEService from '@/service/sys-user-role/sys-user-role-service';
@Component({
components: {
},
})
export default class SYS_USER_ROLECustomViewBase extends Vue {
/**
* 实体服务对象
*
* @type {SYS_USER_ROLEService}
* @memberof SYS_USER_ROLECustomViewBase
*/
protected appEntityService: SYS_USER_ROLEService = new SYS_USER_ROLEService;
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof SYS_USER_ROLECustomViewBase
*/
protected counterServiceArray:Array<any> = [];
/**
* 数据变化
*
* @param {*} val
* @returns {*}
* @memberof SYS_USER_ROLECustomViewBase
*/
@Emit()
protected viewDatasChange(val: any):any {
return val;
}
/**
* 传入视图上下文
*
* @type {string}
* @memberof SYS_USER_ROLECustomViewBase
*/
@Prop() protected viewdata!: string;
/**
* 传入视图参数
*
* @type {string}
* @memberof SYS_USER_ROLECustomViewBase
*/
@Prop() protected viewparam!: string;
/**
* 视图默认使用
*
* @type {boolean}
* @memberof SYS_USER_ROLECustomViewBase
*/
@Prop({ default: true }) protected viewDefaultUsage!: boolean;
/**
* 视图标识
*
* @type {string}
* @memberof SYS_USER_ROLECustomViewBase
*/
protected viewtag: string = '9b017760188bc666966521361d0ad5a1';
/**
* 自定义视图导航上下文集合
*
* @type {*}
* @memberof SYS_USER_ROLECustomViewBase
*/
protected customViewNavContexts:any ={
};
/**
* 自定义视图导航参数集合
*
* @type {*}
* @memberof SYS_USER_ROLECustomViewBase
*/
protected customViewParams:any ={
};
/**
* 视图模型数据
*
* @type {*}
* @memberof SYS_USER_ROLECustomViewBase
*/
protected model: any = {
srfCaption: 'entities.sys_user_role.views.customview.caption',
srfTitle: 'entities.sys_user_role.views.customview.title',
srfSubTitle: 'entities.sys_user_role.views.customview.subtitle',
dataInfo: ''
}
/**
* 视图参数变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof SYS_USER_ROLECustomViewBase
*/
@Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) {
if(newVal){
for(let key in this.viewparams){
delete this.viewparams[key];
}
Object.assign(this.viewparams, JSON.parse(this.viewparam));
}
}
/**
* 处理应用上下文变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof SYS_USER_ROLECustomViewBase
*/
@Watch('viewdata')
onViewData(newVal: any, oldVal: any) {
const _this: any = this;
if (!Object.is(newVal, oldVal) && _this.engine) {
_this.parseViewParam();
_this.engine.load();
}
}
/**
* 容器模型
*
* @type {*}
* @memberof SYS_USER_ROLECustomViewBase
*/
protected containerModel: any = {
};
/**
* 计数器刷新
*
* @memberof SYS_USER_ROLECustomViewBase
*/
public counterRefresh(){
const _this:any =this;
if(_this.counterServiceArray && _this.counterServiceArray.length >0){
_this.counterServiceArray.forEach((item:any) =>{
if(item.refreshData && item.refreshData instanceof Function){
item.refreshData();
}
})
}
}
/**
* 视图状态订阅对象
*
* @private
* @type {Subject<{action: string, data: any}>}
* @memberof SYS_USER_ROLECustomViewBase
*/
protected viewState: Subject<ViewState> = new Subject();
/**
* 引擎初始化
*
* @private
* @memberof SYS_USER_ROLECustomViewBase
*/
private engineInit(): void {
}
/**
* 应用上下文
*
* @type {*}
* @memberof SYS_USER_ROLECustomViewBase
*/
protected context:any = {};
/**
* 视图参数
*
* @type {*}
* @memberof SYS_USER_ROLECustomViewBase
*/
protected viewparams:any = {};
/**
* 解析视图参数
*
* @private
* @memberof SYS_USER_ROLECustomViewBase
*/
private parseViewParam(): void {
for(let key in this.context){
delete this.context[key];
}
if (!this.viewDefaultUsage && this.viewdata && !Object.is(this.viewdata, '')) {
Object.assign(this.context, JSON.parse(this.viewdata));
if(this.context && this.context.srfparentdename){
Object.assign(this.viewparams,{srfparentdename:this.context.srfparentdename});
}
if(this.context && this.context.srfparentkey){
Object.assign(this.viewparams,{srfparentkey:this.context.srfparentkey});
}
this.handleCustomViewData();
return;
}
const path = (this.$route.matched[this.$route.matched.length - 1]).path;
const keys: Array<any> = [];
const curReg = this.$pathToRegExp.pathToRegexp(path, keys);
const matchArray = curReg.exec(this.$route.path);
let tempValue: Object = {};
keys.forEach((item: any, index: number) => {
Object.defineProperty(tempValue, item.name, {
enumerable: true,
value: matchArray[index + 1]
});
});
this.$viewTool.formatRouteParams(tempValue,this.$route,this.context,this.viewparams);
if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
Object.assign(this.context,this.$store.getters.getAppData().context);
}
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
}
/**
* 处理自定义视图数据
*
* @memberof SYS_USER_ROLECustomViewBase
*/
public handleCustomViewData(){
if(Object.keys(this.customViewNavContexts).length > 0){
Object.keys(this.customViewNavContexts).forEach((item:any) =>{
let tempContext:any = {};
let curNavContext:any = this.customViewNavContexts[item];
this.handleCustomDataLogic(curNavContext,tempContext,item);
Object.assign(this.context,tempContext);
})
}
if(Object.keys(this.customViewParams).length > 0){
Object.keys(this.customViewParams).forEach((item:any) =>{
let tempParam:any = {};
let curNavParam:any = this.customViewParams[item];
this.handleCustomDataLogic(curNavParam,tempParam,item);
Object.assign(this.viewparams,tempParam);
})
}
}
/**
* 处理自定义视图数据逻辑
*
* @memberof SYS_USER_ROLECustomViewBase
*/
public handleCustomDataLogic(curNavData:any,tempData:any,item:string){
// 直接值直接赋值
if(curNavData.isRawValue){
if(Object.is(curNavData.value,"null") || Object.is(curNavData.value,"")){
Object.defineProperty(tempData, item, {
value: null,
writable : true,
enumerable : true,
configurable : true
});
}else{
Object.defineProperty(tempData, item, {
value: curNavData.value,
writable : true,
enumerable : true,
configurable : true
});
}
}else{
// 先从导航上下文取数,没有再从导航参数(URL)取数,如果导航上下文和导航参数都没有则为null
if(this.context[(curNavData.value).toLowerCase()]){
Object.defineProperty(tempData, item, {
value: this.context[(curNavData.value).toLowerCase()],
writable : true,
enumerable : true,
configurable : true
});
}else{
if(this.viewparams[(curNavData.value).toLowerCase()]){
Object.defineProperty(tempData, item, {
value: this.viewparams[(curNavData.value).toLowerCase()],
writable : true,
enumerable : true,
configurable : true
});
}else{
Object.defineProperty(tempData, item, {
value: null,
writable : true,
enumerable : true,
configurable : true
});
}
}
}
}
/**
* Vue声明周期
*
* @memberof SYS_USER_ROLECustomViewBase
*/
protected created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof SYS_USER_ROLECustomViewBase
*/
protected afterCreated(){
const secondtag = this.$util.createUUID();
this.$store.commit('viewaction/createdView', { viewtag: this.viewtag, secondtag: secondtag });
this.viewtag = secondtag;
this.parseViewParam();
}
/**
* 销毁之前
*
* @memberof SYS_USER_ROLECustomViewBase
*/
protected beforeDestroy() {
this.$store.commit('viewaction/removeView', this.viewtag);
}
/**
* Vue声明周期(组件初始化完毕)
*
* @memberof SYS_USER_ROLECustomViewBase
*/
protected mounted() {
this.afterMounted();
}
/**
* 执行mounted后的逻辑
*
* @memberof SYS_USER_ROLECustomViewBase
*/
protected afterMounted(){
const _this: any = this;
_this.engineInit();
if (_this.loadModel && _this.loadModel instanceof Function) {
_this.loadModel();
}
}
/**
* 关闭视图
*
* @param {any[]} args
* @memberof SYS_USER_ROLECustomViewBase
*/
protected closeView(args: any[]): void {
let _view: any = this;
if (_view.viewdata) {
_view.$emit('viewdataschange', [args]);
_view.$emit('close', [args]);
} else if (_view.$tabPageExp) {
_view.$tabPageExp.onClose(_view.$route.fullPath);
}
}
/**
* 销毁视图回调
*
* @memberof SYS_USER_ROLECustomViewBase
*/
protected destroyed(){
this.afterDestroyed();
}
/**
* 执行destroyed后的逻辑
*
* @memberof SYS_USER_ROLECustomViewBase
*/
protected afterDestroyed(){
if(this.viewDefaultUsage){
let localStoreLength = Object.keys(localStorage);
if(localStoreLength.length > 0){
localStoreLength.forEach((item:string) =>{
if(item.startsWith(this.context.srfsessionid)){
localStorage.removeItem(item);
}
})
}
}
}
}
</script>
<style lang='less'>
@import './sys-user-rolecustom-view.less';
</style>
\ No newline at end of file
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import SYS_USER_ROLECustomViewBase from './sys-user-rolecustom-view-base.vue';
@Component({
components: {
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
})
export default class SYS_USER_ROLECustomView extends SYS_USER_ROLECustomViewBase {
}
</script>
\ No newline at end of file
......@@ -249,6 +249,15 @@ export const viewstate: any = {
'fb89f9af95f2caf92ccc1249025c9a1b',
],
},
{
viewtag: '9b017760188bc666966521361d0ad5a1',
viewmodule: 'uaa',
viewname: 'SYS_USER_ROLECustomView',
viewaction: '',
viewdatachange: false,
refviews: [
],
},
{
viewtag: '9c0b351150648f7661be53c10eaabd67',
viewmodule: 'uaa',
......
......@@ -82,6 +82,7 @@ export default class SYS_USER_ROLEUIServiceBase extends UIService {
this.allViewMap.set('REDIRECTVIEW:',{viewname:'redirectview',srfappde:'sys_user_roles'});
this.allViewMap.set('EDITVIEW:',{viewname:'editview',srfappde:'sys_user_roles'});
this.allViewMap.set(':',{viewname:'pickupgridview',srfappde:'sys_user_roles'});
this.allViewMap.set(':',{viewname:'customview',srfappde:'sys_user_roles'});
this.allViewMap.set('MPICKUPVIEW:',{viewname:'mpickupview',srfappde:'sys_user_roles'});
this.allViewMap.set(':',{viewname:'editview2',srfappde:'sys_user_roles'});
this.allViewMap.set('PICKUPVIEW:',{viewname:'pickupview',srfappde:'sys_user_roles'});
......
......@@ -94,7 +94,7 @@
</createTable>
</changeSet>
<!--输出实体[SYS_USER_ROLE]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-sys_user_role-37-5">
<changeSet author="a_A_5d9d78509" id="tab-sys_user_role-41-5">
<createTable tableName="IBZUSER_ROLE">
<column name="SYS_USER_ROLEID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_SYS_USER_ROLE_SYS_USER_ROLE"/>
......@@ -200,10 +200,10 @@
<!--输出实体[SYS_USER]外键关系 -->
<!--输出实体[SYS_PSSYSUNIRES]外键关系 -->
<!--输出实体[SYS_USER_ROLE]外键关系 -->
<changeSet author="a_A_5d9d78509" id="fk-sys_user_role-37-12">
<changeSet author="a_A_5d9d78509" id="fk-sys_user_role-41-12">
<addForeignKeyConstraint baseColumnNames="SYS_ROLEID" baseTableName="IBZUSER_ROLE" constraintName="DER1N_SYS_USER_ROLE_SYS_ROLE_S" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="SYS_ROLEID" referencedTableName="IBZROLE" validate="true"/>
</changeSet>
<changeSet author="a_A_5d9d78509" id="fk-sys_user_role-37-13">
<changeSet author="a_A_5d9d78509" id="fk-sys_user_role-41-13">
<addForeignKeyConstraint baseColumnNames="SYS_USERID" baseTableName="IBZUSER_ROLE" constraintName="DER1N_SYS_USER_ROLE_SYS_USER_S" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="USERID" referencedTableName="IBZUSER" validate="true"/>
</changeSet>
<!--输出实体[SYS_PERMISSION]外键关系 -->
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册