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

ibizdev提交

上级 a983a0fa
*2020-4-29*
## v7.0.0-alpha.2 [2020-5-7]
### Bug修复
分页导航栏添加图标配置
### 功能新增及优化
#### 模板
表格文件上传信息显示
批添加、批删除
实体工作流动态视图
实体工作流动态导航表格视图
富文本信息模式
更新默认值
#### 基础文件
表格文件上传信息显示
实体工作流动态视图
实体工作流动态导航表格视图
## v7.0.0-alpha.1 [2020-4-29]
初始化文件
......@@ -428,6 +428,95 @@ mock.onPut(new RegExp(/^\/ibzdepartments\/?([a-zA-Z0-9\-\;]{0,35})$/)).reply((co
});
// FetchCurDept
mock.onGet(new RegExp(/^\/ibzorganizations\/([a-zA-Z0-9\-\;]{1,35})\/ibzdepartments\/fetchcurdept$/)).reply((config: any) => {
console.groupCollapsed("实体:ibzdepartment 方法: FetchCurDept");
console.table({url:config.url, method: config.method, data:config.data});
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, null];
}
const paramArray:Array<any> = ['orgid'];
let tempValue: any = {};
const matchArray:any = new RegExp(/^\/ibzorganizations\/([a-zA-Z0-9\-\;]{1,35})\/ibzdepartments\/fetchcurdept$/).exec(config.url);
if(matchArray && matchArray.length >1 && paramArray && paramArray.length >0){
paramArray.forEach((item: any, index: number) => {
Object.defineProperty(tempValue, item, {
enumerable: true,
value: matchArray[index + 1]
});
});
}
let items = mockDatas ? mockDatas : [];
if (items.length > 0 && paramArray.length > 0) {
paramArray.forEach((paramkey: any) => {
if (tempValue[paramkey] && tempValue[paramkey].indexOf(";") > 0) {
let keysGrounp: Array<any> = tempValue[paramkey].split(new RegExp(/[\;]/));
let tempArray: Array<any> = [];
keysGrounp.forEach((singlekey: any) => {
let _items = items.filter((item: any) => { return item[paramkey] == singlekey });
if(_items.length >0){
tempArray.push(..._items);
}
})
items = tempArray;
} else {
items = items.filter((item: any) => { return item[paramkey] == tempValue[paramkey] });
}
})
}
console.groupCollapsed("response数据 status: "+status+" data: ");
console.table(items);
console.groupEnd();
console.groupEnd();
return [status, items];
});
// FetchCurDept
mock.onGet(new RegExp(/^\/ibzdepartments\/fetchcurdept$/)).reply((config: any) => {
console.groupCollapsed("实体:ibzdepartment 方法: FetchCurDept");
console.table({url:config.url, method: config.method, data:config.data});
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, null];
}
console.groupCollapsed("response数据 status: "+status+" data: ");
console.table(mockDatas);
console.groupEnd();
console.groupEnd();
return [status, mockDatas ? mockDatas : []];
});
// FetchCurDept
mock.onGet(new RegExp(/^\/ibzdepartments\/fetchcurdept(\?[\w-./?%&=,]*)*$/)).reply((config: any) => {
console.groupCollapsed("实体:ibzdepartment 方法: FetchCurDept");
console.table({url:config.url, method: config.method, data:config.data});
if(config.url.includes('page')){
let url = config.url.split('?')[1];
let params = qs.parse(url);
Object.assign(config, params);
}
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, null];
}
let total = mockDatas.length;
let records: Array<any> = [];
if(!config.page || !config.size){
records = mockDatas;
}else{
if((config.page-1)*config.size < total){
records = mockDatas.slice(config.page,config.size);
}
}
console.groupCollapsed("response数据 status: "+status+" data: ");
console.table(records ? records : []);
console.groupEnd();
console.groupEnd();
return [status, records ? records : []];
});
// FetchDefault
mock.onGet(new RegExp(/^\/ibzorganizations\/([a-zA-Z0-9\-\;]{1,35})\/ibzdepartments\/fetchdefault$/)).reply((config: any) => {
console.groupCollapsed("实体:ibzdepartment 方法: FetchDefault");
......
......@@ -243,6 +243,24 @@ export default class IBZDepartmentServiceBase extends EntityService {
return res;
}
/**
* FetchCurDept接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof IBZDepartmentServiceBase
*/
public async FetchCurDept(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
if(context.ibzorganization && true){
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/ibzorganizations/${context.ibzorganization}/ibzdepartments/fetchcurdept`,tempData,isloading);
}
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/ibzdepartments/fetchcurdept`,tempData,isloading);
}
/**
* FetchDefault接口方法
*
......
......@@ -209,51 +209,51 @@
/*** END:多数据视图属性布局 ***/
// 看板视图,卡片模式
.view-container.appportalview,.view-container.deportalview,.view-container.deportalview9{
>.view-card>.ivu-card-body>.content-container{
background: #efefef;
}
.dashboard{
padding: 8px;
}
.portlet-container{
background: #efefef;
}
.portlet-container::after{
content: "";
clear: both;
}
.portlet{
margin: 8px;
height: calc(100% - 16px);
width: calc(100% - 16px);
background: #fff;
border-radius: 4px;
box-shadow: 0 1px 1px rgba(0,0,0,.05), 0 2px 6px 0 rgba(0,0,0,.045);
border: 1px solid transparent;
>.portlet-with-title{
margin-bottom: 12px;
height: calc(100% - 64px);
}
>.portlet-without-title{
margin-top: 12px;
margin-bottom: 12px;
height: calc(100% - 24px);
}
}
}
// .view-container.appportalview,.view-container.deportalview,.view-container.deportalview9{
// >.view-card>.ivu-card-body>.content-container{
// background: #efefef;
// }
// .dashboard{
// padding: 8px;
// }
// .portlet-container{
// background: #efefef;
// }
// .portlet-container::after{
// content: "";
// clear: both;
// }
// .portlet{
// margin: 8px;
// height: calc(100% - 16px);
// width: calc(100% - 16px);
// background: #fff;
// border-radius: 4px;
// box-shadow: 0 1px 1px rgba(0,0,0,.05), 0 2px 6px 0 rgba(0,0,0,.045);
// border: 1px solid transparent;
// >.portlet-with-title{
// margin-bottom: 12px;
// height: calc(100% - 64px);
// }
// >.portlet-without-title{
// margin-top: 12px;
// margin-bottom: 12px;
// height: calc(100% - 24px);
// }
// }
// }
// 看板视图,无缝模式
.view-container.appportalview.seamless-mode,.view-container.deportalview.seamless-mode,.view-container.deportalview9.seamless-mode{
>.view-card>.ivu-card-body>.content-container{
background: transparent;
}
.portlet-container{
background: transparent;
}
.portlet{
background: transparent;
}
}
// // 看板视图,无缝模式
// .view-container.appportalview.seamless-mode,.view-container.deportalview.seamless-mode,.view-container.deportalview9.seamless-mode{
// >.view-card>.ivu-card-body>.content-container{
// background: transparent;
// }
// .portlet-container{
// background: transparent;
// }
// .portlet{
// background: transparent;
// }
// }
@import './user.less';
\ No newline at end of file
......@@ -977,7 +977,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @memberof Main
*/
private onFormLoad(data: any = {},action:string): void {
if(Object.is(action,"save") || Object.is(action,"autoSave"))
if(Object.is(action,"save") || Object.is(action,"autoSave") || Object.is(action,"submit"))
// 更新context的实体主键
if(data.ibzdepartment){
Object.assign(this.context,{ibzdepartment:data.ibzdepartment})
......@@ -1007,6 +1007,9 @@ export default class MainBase extends Vue implements ControlInterface {
if(Object.is(action,'loadDraft')){
this.createDefault();
}
if(Object.is(action,'load')){
this.updateDefault();
}
this.$nextTick(function () {
this.ignorefieldvaluechange = false;
})
......@@ -1550,9 +1553,7 @@ export default class MainBase extends Vue implements ControlInterface {
protected async wfstart(data: any,localdata?:any): Promise<any> {
return new Promise((resolve: any, reject: any) => {
const _this: any = this;
const arg: any = data[0];
Object.assign(arg,{viewparams:this.viewparams});
const post: Promise<any> = Object.is(arg.srfuf, '1')?this.service.update(this.updateAction, JSON.parse(JSON.stringify(this.context)),arg, this.showBusyIndicator):this.service.add(this.createAction,JSON.parse(JSON.stringify(this.context)),arg, this.showBusyIndicator);
const post: Promise<any> = _this.save({},false);
post.then((response:any) =>{
const arg:any = response.data;
if(this.viewparams){
......@@ -1616,6 +1617,13 @@ export default class MainBase extends Vue implements ControlInterface {
const post: Promise<any> = Object.is(arg.srfuf, '1')?this.service.update(this.updateAction, JSON.parse(JSON.stringify(this.context)),arg, this.showBusyIndicator):this.service.add(this.createAction,JSON.parse(JSON.stringify(this.context)),arg, this.showBusyIndicator);
post.then((response:any) =>{
const arg:any = response.data;
// 保存完成UI处理
this.onFormLoad(arg,'save');
this.$emit('save', arg);
this.$nextTick(() => {
this.formState.next({ type: 'save', data: arg });
});
// 准备提交参数
if(this.viewparams){
Object.assign(arg,{viewparams:this.viewparams});
}
......@@ -1627,6 +1635,8 @@ export default class MainBase extends Vue implements ControlInterface {
}
return;
}
this.onFormLoad(arg,'submit');
this.$store.dispatch('viewaction/datasaved', { viewtag: this.viewtag });
this.$Notice.info({ title: '', desc: '工作流提交成功' });
resolve(response);
}).catch((response: any) => {
......@@ -1824,6 +1834,13 @@ export default class MainBase extends Vue implements ControlInterface {
}
}
/**
* 更新默认值
* @memberof Main
*/
public updateDefault(){
}
}
</script>
......
......@@ -708,7 +708,7 @@ export default class ChangePwBase extends Vue implements ControlInterface {
* @memberof ChangePw
*/
private onFormLoad(data: any = {},action:string): void {
if(Object.is(action,"save") || Object.is(action,"autoSave"))
if(Object.is(action,"save") || Object.is(action,"autoSave") || Object.is(action,"submit"))
// 更新context的实体主键
if(data.ibzemployee){
Object.assign(this.context,{ibzemployee:data.ibzemployee})
......@@ -738,6 +738,9 @@ export default class ChangePwBase extends Vue implements ControlInterface {
if(Object.is(action,'loadDraft')){
this.createDefault();
}
if(Object.is(action,'load')){
this.updateDefault();
}
this.$nextTick(function () {
this.ignorefieldvaluechange = false;
})
......@@ -1281,9 +1284,7 @@ export default class ChangePwBase extends Vue implements ControlInterface {
protected async wfstart(data: any,localdata?:any): Promise<any> {
return new Promise((resolve: any, reject: any) => {
const _this: any = this;
const arg: any = data[0];
Object.assign(arg,{viewparams:this.viewparams});
const post: Promise<any> = Object.is(arg.srfuf, '1')?this.service.update(this.updateAction, JSON.parse(JSON.stringify(this.context)),arg, this.showBusyIndicator):this.service.add(this.createAction,JSON.parse(JSON.stringify(this.context)),arg, this.showBusyIndicator);
const post: Promise<any> = _this.save({},false);
post.then((response:any) =>{
const arg:any = response.data;
if(this.viewparams){
......@@ -1347,6 +1348,13 @@ export default class ChangePwBase extends Vue implements ControlInterface {
const post: Promise<any> = Object.is(arg.srfuf, '1')?this.service.update(this.updateAction, JSON.parse(JSON.stringify(this.context)),arg, this.showBusyIndicator):this.service.add(this.createAction,JSON.parse(JSON.stringify(this.context)),arg, this.showBusyIndicator);
post.then((response:any) =>{
const arg:any = response.data;
// 保存完成UI处理
this.onFormLoad(arg,'save');
this.$emit('save', arg);
this.$nextTick(() => {
this.formState.next({ type: 'save', data: arg });
});
// 准备提交参数
if(this.viewparams){
Object.assign(arg,{viewparams:this.viewparams});
}
......@@ -1358,6 +1366,8 @@ export default class ChangePwBase extends Vue implements ControlInterface {
}
return;
}
this.onFormLoad(arg,'submit');
this.$store.dispatch('viewaction/datasaved', { viewtag: this.viewtag });
this.$Notice.info({ title: '', desc: '工作流提交成功' });
resolve(response);
}).catch((response: any) => {
......@@ -1552,6 +1562,13 @@ export default class ChangePwBase extends Vue implements ControlInterface {
public createDefault(){
}
/**
* 更新默认值
* @memberof ChangePw
*/
public updateDefault(){
}
}
</script>
......
......@@ -59,7 +59,7 @@
:data="data"
:context="context"
:viewparams="viewparams"
:itemParam='{ }'
:itemParam='{ parentdata:{"orgid":"%orgid%"}, }'
:disabled="detailsModel.mdeptname.disabled"
name='mdeptname'
deMajorField='deptname'
......@@ -1316,7 +1316,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @memberof Main
*/
private onFormLoad(data: any = {},action:string): void {
if(Object.is(action,"save") || Object.is(action,"autoSave"))
if(Object.is(action,"save") || Object.is(action,"autoSave") || Object.is(action,"submit"))
// 更新context的实体主键
if(data.ibzemployee){
Object.assign(this.context,{ibzemployee:data.ibzemployee})
......@@ -1346,6 +1346,9 @@ export default class MainBase extends Vue implements ControlInterface {
if(Object.is(action,'loadDraft')){
this.createDefault();
}
if(Object.is(action,'load')){
this.updateDefault();
}
this.$nextTick(function () {
this.ignorefieldvaluechange = false;
})
......@@ -1889,9 +1892,7 @@ export default class MainBase extends Vue implements ControlInterface {
protected async wfstart(data: any,localdata?:any): Promise<any> {
return new Promise((resolve: any, reject: any) => {
const _this: any = this;
const arg: any = data[0];
Object.assign(arg,{viewparams:this.viewparams});
const post: Promise<any> = Object.is(arg.srfuf, '1')?this.service.update(this.updateAction, JSON.parse(JSON.stringify(this.context)),arg, this.showBusyIndicator):this.service.add(this.createAction,JSON.parse(JSON.stringify(this.context)),arg, this.showBusyIndicator);
const post: Promise<any> = _this.save({},false);
post.then((response:any) =>{
const arg:any = response.data;
if(this.viewparams){
......@@ -1955,6 +1956,13 @@ export default class MainBase extends Vue implements ControlInterface {
const post: Promise<any> = Object.is(arg.srfuf, '1')?this.service.update(this.updateAction, JSON.parse(JSON.stringify(this.context)),arg, this.showBusyIndicator):this.service.add(this.createAction,JSON.parse(JSON.stringify(this.context)),arg, this.showBusyIndicator);
post.then((response:any) =>{
const arg:any = response.data;
// 保存完成UI处理
this.onFormLoad(arg,'save');
this.$emit('save', arg);
this.$nextTick(() => {
this.formState.next({ type: 'save', data: arg });
});
// 准备提交参数
if(this.viewparams){
Object.assign(arg,{viewparams:this.viewparams});
}
......@@ -1966,6 +1974,8 @@ export default class MainBase extends Vue implements ControlInterface {
}
return;
}
this.onFormLoad(arg,'submit');
this.$store.dispatch('viewaction/datasaved', { viewtag: this.viewtag });
this.$Notice.info({ title: '', desc: '工作流提交成功' });
resolve(response);
}).catch((response: any) => {
......@@ -2163,6 +2173,13 @@ export default class MainBase extends Vue implements ControlInterface {
}
}
/**
* 更新默认值
* @memberof Main
*/
public updateDefault(){
}
}
</script>
......
......@@ -880,7 +880,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @memberof Main
*/
private onFormLoad(data: any = {},action:string): void {
if(Object.is(action,"save") || Object.is(action,"autoSave"))
if(Object.is(action,"save") || Object.is(action,"autoSave") || Object.is(action,"submit"))
// 更新context的实体主键
if(data.ibzorganization){
Object.assign(this.context,{ibzorganization:data.ibzorganization})
......@@ -910,6 +910,9 @@ export default class MainBase extends Vue implements ControlInterface {
if(Object.is(action,'loadDraft')){
this.createDefault();
}
if(Object.is(action,'load')){
this.updateDefault();
}
this.$nextTick(function () {
this.ignorefieldvaluechange = false;
})
......@@ -1453,9 +1456,7 @@ export default class MainBase extends Vue implements ControlInterface {
protected async wfstart(data: any,localdata?:any): Promise<any> {
return new Promise((resolve: any, reject: any) => {
const _this: any = this;
const arg: any = data[0];
Object.assign(arg,{viewparams:this.viewparams});
const post: Promise<any> = Object.is(arg.srfuf, '1')?this.service.update(this.updateAction, JSON.parse(JSON.stringify(this.context)),arg, this.showBusyIndicator):this.service.add(this.createAction,JSON.parse(JSON.stringify(this.context)),arg, this.showBusyIndicator);
const post: Promise<any> = _this.save({},false);
post.then((response:any) =>{
const arg:any = response.data;
if(this.viewparams){
......@@ -1519,6 +1520,13 @@ export default class MainBase extends Vue implements ControlInterface {
const post: Promise<any> = Object.is(arg.srfuf, '1')?this.service.update(this.updateAction, JSON.parse(JSON.stringify(this.context)),arg, this.showBusyIndicator):this.service.add(this.createAction,JSON.parse(JSON.stringify(this.context)),arg, this.showBusyIndicator);
post.then((response:any) =>{
const arg:any = response.data;
// 保存完成UI处理
this.onFormLoad(arg,'save');
this.$emit('save', arg);
this.$nextTick(() => {
this.formState.next({ type: 'save', data: arg });
});
// 准备提交参数
if(this.viewparams){
Object.assign(arg,{viewparams:this.viewparams});
}
......@@ -1530,6 +1538,8 @@ export default class MainBase extends Vue implements ControlInterface {
}
return;
}
this.onFormLoad(arg,'submit');
this.$store.dispatch('viewaction/datasaved', { viewtag: this.viewtag });
this.$Notice.info({ title: '', desc: '工作流提交成功' });
resolve(response);
}).catch((response: any) => {
......@@ -1727,6 +1737,13 @@ export default class MainBase extends Vue implements ControlInterface {
}
}
/**
* 更新默认值
* @memberof Main
*/
public updateDefault(){
}
}
</script>
......
......@@ -833,7 +833,7 @@ export default class NewFormBase extends Vue implements ControlInterface {
* @memberof NewForm
*/
private onFormLoad(data: any = {},action:string): void {
if(Object.is(action,"save") || Object.is(action,"autoSave"))
if(Object.is(action,"save") || Object.is(action,"autoSave") || Object.is(action,"submit"))
// 更新context的实体主键
if(data.ibzorganization){
Object.assign(this.context,{ibzorganization:data.ibzorganization})
......@@ -863,6 +863,9 @@ export default class NewFormBase extends Vue implements ControlInterface {
if(Object.is(action,'loadDraft')){
this.createDefault();
}
if(Object.is(action,'load')){
this.updateDefault();
}
this.$nextTick(function () {
this.ignorefieldvaluechange = false;
})
......@@ -1406,9 +1409,7 @@ export default class NewFormBase extends Vue implements ControlInterface {
protected async wfstart(data: any,localdata?:any): Promise<any> {
return new Promise((resolve: any, reject: any) => {
const _this: any = this;
const arg: any = data[0];
Object.assign(arg,{viewparams:this.viewparams});
const post: Promise<any> = Object.is(arg.srfuf, '1')?this.service.update(this.updateAction, JSON.parse(JSON.stringify(this.context)),arg, this.showBusyIndicator):this.service.add(this.createAction,JSON.parse(JSON.stringify(this.context)),arg, this.showBusyIndicator);
const post: Promise<any> = _this.save({},false);
post.then((response:any) =>{
const arg:any = response.data;
if(this.viewparams){
......@@ -1472,6 +1473,13 @@ export default class NewFormBase extends Vue implements ControlInterface {
const post: Promise<any> = Object.is(arg.srfuf, '1')?this.service.update(this.updateAction, JSON.parse(JSON.stringify(this.context)),arg, this.showBusyIndicator):this.service.add(this.createAction,JSON.parse(JSON.stringify(this.context)),arg, this.showBusyIndicator);
post.then((response:any) =>{
const arg:any = response.data;
// 保存完成UI处理
this.onFormLoad(arg,'save');
this.$emit('save', arg);
this.$nextTick(() => {
this.formState.next({ type: 'save', data: arg });
});
// 准备提交参数
if(this.viewparams){
Object.assign(arg,{viewparams:this.viewparams});
}
......@@ -1483,6 +1491,8 @@ export default class NewFormBase extends Vue implements ControlInterface {
}
return;
}
this.onFormLoad(arg,'submit');
this.$store.dispatch('viewaction/datasaved', { viewtag: this.viewtag });
this.$Notice.info({ title: '', desc: '工作流提交成功' });
resolve(response);
}).catch((response: any) => {
......@@ -1677,6 +1687,13 @@ export default class NewFormBase extends Vue implements ControlInterface {
public createDefault(){
}
/**
* 更新默认值
* @memberof NewForm
*/
public updateDefault(){
}
}
</script>
......
......@@ -38,11 +38,11 @@
git clone -b master $para2 ibzou/
export NODE_OPTIONS=--max-old-space-size=4096
cd ibzou/
mvn clean package -Papi
cd ibzou-provider/ibzou-provider-api
mvn -Papi docker:build
mvn -Papi docker:push
docker -H $para1 stack deploy --compose-file=src/main/docker/ibzou-provider-api.yaml ibzlab-rt --with-registry-auth
mvn clean package -Pweb
cd ibzou-app/ibzou-app-web
mvn -Pweb docker:build
mvn -Pweb docker:push
docker -H $para1 stack deploy --compose-file=src/main/docker/ibzou-app-web.yaml ibzlab-rt --with-registry-auth
</command>
</hudson.tasks.Shell>
</builders>
......
......@@ -9,6 +9,6 @@ CMD echo "The application will start in ${IBZ_SLEEP}s..." && \
sleep ${IBZ_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibzou-app-web.jar
EXPOSE 8080
EXPOSE 30001
ADD ibzou-app-web.jar /ibzou-app-web.jar
......@@ -3,9 +3,11 @@ services:
ibzou-app-web:
image: registry.cn-shanghai.aliyuncs.com/ibizsys/ibzou-app-web:latest
ports:
- "8080:8080"
- "30001:30001"
networks:
- agent_network
environment:
SPRING_CLOUD_NACOS_DISCOVERY_IP: 172.16.180.237
deploy:
mode: replicated
replicas: 1
......
server:
port: 8080
\ No newline at end of file
port: 30001
\ No newline at end of file
server:
port: 8080
port: 30001
#zuul网关路由设置
zuul:
......
......@@ -9,6 +9,6 @@ CMD echo "The application will start in ${IBZ_SLEEP}s..." && \
sleep ${IBZ_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibzou-provider-api.jar
EXPOSE 40001
EXPOSE 8081
ADD ibzou-provider-api.jar /ibzou-provider-api.jar
......@@ -3,11 +3,9 @@ services:
ibzou-provider-api:
image: registry.cn-shanghai.aliyuncs.com/ibizsys/ibzou-provider-api:latest
ports:
- "40001:40001"
- "8081:8081"
networks:
- agent_network
environment:
SPRING_CLOUD_NACOS_DISCOVERY_IP: 172.16.180.237
deploy:
mode: replicated
replicas: 1
......
server:
port: 40001
\ No newline at end of file
port: 8081
\ No newline at end of file
......@@ -32,7 +32,7 @@ public class PermissionSyncJob implements ApplicationRunner {
@Value("${ibiz.enablePermissionValid:false}")
boolean enablePermissionValid; //是否开启权限校验
@Value("${ibiz.systemid:2C40DFCD-0DF5-47BF-91A5-C45F810B0001}")
@Value("${ibiz.systemid:110B1A3E-4944-47C8-B4C4-EC15FB8982F3}")
private String systemId;
@Override
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册