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

ibiz4j 发布系统代码

上级 a72be830
## v7.0.0-alpha.7 [2020-5-28]
### Bug修复
修复门户部件flex布局
修复表格选择框列样式出现省略号
修复批删除传递参数调整
修复表单上界面行为参数传递bug
修复分页导航、编辑类视图标题
修复界面行为多主键分隔符由";"改为","
修复导航类视图宽度格式
修复图表排序
修复关系界面逻辑
修复401跳登录页清除user和token
### 功能新增及优化
#### 模板
列表,数据视图默认排序
面板项支持偏移
应用支持自定义默认端口
门户部件图标和容器样式
表格列头图片和头部样式
表格操作列图标
表格编辑项值规则
增加树选择双击事件
增加图表分组属性计数统计(srfcount)
增加雷达图支持
#### 基础文件
修复分页导航、编辑类视图标题
修复界面行为多主键分隔符由";"改为","
修复关系界面逻辑
修复401跳登录页清除user和token
## v7.0.0-alpha.6 [2020-5-23]
### Bug修复
......
.context-menu-container {
// width: 100vw;
// height: 100vh;
// z-index: -10000;
// position: absolute;
// top: 0;
// left: 0;
line-height: 1;
// width: 100vw;
// height: 100vh;
// z-index: -10000;
// position: absolute;
// top: 0;
// left: 0;
// line-height: 1;
z-index: 10001;
.context-menu-content {
z-index: 10001;
position: absolute;
background: #FFF;
// border: 1px solid #e3e3e3;
}
.context-menu-content {
position: absolute;
background: #FFF;
// border: 1px solid #e3e3e3;
.ivu-divider{
width: 100%;
}
.context-menus {
}
.context-menus-item {
list-style: none;
line-height: 36px;
padding: 0 13px;
margin: 0;
font-size: 14px;
color: #606266;
cursor: pointer;
outline: none;
display: flex;
.icon {
display: flex;
justify-content: center;
align-items: center;
font-size: 16px;
width: 20px;
margin-right: 8px;
}
}
.context-menus-item:hover {
background-color: #ecf5ff;
color: #66b1ff;
}
}
.context-menus {
.context-menus-item {
list-style: none;
line-height: 36px;
padding: 0 13px;
margin: 0;
font-size: 14px;
color: #606266;
cursor: pointer;
outline: none;
display: flex;
.icon {
display: flex;
justify-content: center;
align-items: center;
font-size: 16px;
width: 20px;
margin-right: 8px;
}
}
.context-menus-item:hover {
background-color: #ecf5ff;
color: #66b1ff;
}
}
}
.context-menu {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
\ No newline at end of file
import ibzdeptmember_en_US from '@locale/lanres/ibzdept-member/ibzdept-member_en_US';
import ibzteammember_en_US from '@locale/lanres/ibzteam-member/ibzteam-member_en_US';
import ibzdepartment_en_US from '@locale/lanres/ibzdepartment/ibzdepartment_en_US';
import ibzemployee_en_US from '@locale/lanres/ibzemployee/ibzemployee_en_US';
import ibzorganization_en_US from '@locale/lanres/ibzorganization/ibzorganization_en_US';
import ibzteam_en_US from '@locale/lanres/ibzteam/ibzteam_en_US';
import components_en_US from '@locale/lanres/components/components_en_US';
import codelist_en_US from '@locale/lanres/codelist/codelist_en_US';
import userCustom_en_US from '@locale/lanres/userCustom/userCustom_en_US';
......@@ -67,9 +69,11 @@ export default {
},
entities: {
ibzdeptmember: ibzdeptmember_en_US,
ibzteammember: ibzteammember_en_US,
ibzdepartment: ibzdepartment_en_US,
ibzemployee: ibzemployee_en_US,
ibzorganization: ibzorganization_en_US,
ibzteam: ibzteam_en_US,
},
components: components_en_US,
codelist: codelist_en_US,
......
import ibzdeptmember_zh_CN from '@locale/lanres/ibzdept-member/ibzdept-member_zh_CN';
import ibzteammember_zh_CN from '@locale/lanres/ibzteam-member/ibzteam-member_zh_CN';
import ibzdepartment_zh_CN from '@locale/lanres/ibzdepartment/ibzdepartment_zh_CN';
import ibzemployee_zh_CN from '@locale/lanres/ibzemployee/ibzemployee_zh_CN';
import ibzorganization_zh_CN from '@locale/lanres/ibzorganization/ibzorganization_zh_CN';
import ibzteam_zh_CN from '@locale/lanres/ibzteam/ibzteam_zh_CN';
import components_zh_CN from '@locale/lanres/components/components_zh_CN';
import codelist_zh_CN from '@locale/lanres/codelist/codelist_zh_CN';
import userCustom_zh_CN from '@locale/lanres/userCustom/userCustom_zh_CN';
......@@ -67,9 +69,11 @@ export default {
},
entities: {
ibzdeptmember: ibzdeptmember_zh_CN,
ibzteammember: ibzteammember_zh_CN,
ibzdepartment: ibzdepartment_zh_CN,
ibzemployee: ibzemployee_zh_CN,
ibzorganization: ibzorganization_zh_CN,
ibzteam: ibzteam_zh_CN,
},
components: components_zh_CN,
codelist: codelist_zh_CN,
......
export default {
fields: {
teammemberid: 'TEAMMEMBER',
teamid: 'TEAMID',
userid: '用户标识',
teamname: '组名称',
personname: '姓名',
},
};
\ No newline at end of file
export default {
fields: {
teammemberid: 'TEAMMEMBER',
teamid: 'TEAMID',
userid: '用户标识',
teamname: '组名称',
personname: '姓名',
},
};
\ No newline at end of file
export default {
fields: {
teamid: 'TEAMID',
teamname: '组名称',
},
};
\ No newline at end of file
export default {
fields: {
teamid: 'TEAMID',
teamname: '组名称',
},
};
\ No newline at end of file
import qs from 'qs';
import { MockAdapter } from '@/mock/mock-adapter';
const mock = MockAdapter.getInstance();
// 模拟数据
const mockDatas: Array<any> = [
];
//getwflink
mock.onGet(new RegExp(/^\/wfcore\/ibzou-app-web\/ibzteammembers\/[a-zA-Z0-9\-\;]+\/usertasks\/[a-zA-Z0-9\-\;]+\/ways$/)).reply((config: any) => {
console.groupCollapsed("实体:ibzteammember 方法: getwflink");
console.table({url:config.url, method: config.method, data:config.data});
console.groupEnd();
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, {}];
}
return [status,[
{"sequenceFlowId":"dfdsfdsfdsfdsfds","sequenceFlowName":"同意",
"taskId":"aaaaddddccccddddd","processDefinitionKey":"support-workorders-approve-v1",
"processInstanceId":"ddlfldldfldsfds","refViewKey":""},
{"sequenceFlowId":"ddssdfdfdfdfsfdf","sequenceFlowName":"不同意",
"taskId":"aaaaddddccccddddd","processDefinitionKey":"support-workorders-approve-v1",
"processInstanceId":"ddfdsldlfdlldsf","refViewKey":"workorder_ltform_editview"}
]];
});
// getwfstep
mock.onGet(new RegExp(/^\/wfcore\/ibzou-app-web\/ibzteammembers\/process-definitions-nodes$/)).reply((config: any) => {
console.groupCollapsed("实体:ibzteammember 方法: getwfstep");
console.table({url:config.url, method: config.method, data:config.data});
console.groupEnd();
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, {}];
}
return [status, [
{"userTaskId":"sddfddfd-dfdf-fdfd-fdf-dfdfd",
"userTaskName":"待审",
"cnt":0,
"processDefinitionKey":"support-workorders-approve-v1",
"processDefinitionName":"工单审批流程v1"
},
{"userTaskId":"sddfddfd-dfdf-fdfd-fdf-87927",
"userTaskName":"待分配",
"cnt":3,
"processDefinitionKey":"support-workorders-approve-v1",
"processDefinitionName":"工单审批流程v1"}
]];
});
// createBatch
mock.onPost(new RegExp(/^\/ibzteammembers\/batch$/)).reply((config: any) => {
console.groupCollapsed("实体:ibzteammember 方法: createBatch");
console.table({url:config.url, method: config.method, data:config.data});
console.groupEnd();
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, {}];
}
return [status, {}];
});
// updateBatch
mock.onPut(new RegExp(/^\/ibzteammembers\/batch$/)).reply((config: any) => {
console.groupCollapsed("实体:ibzteammember 方法: updateBatch");
console.table({url:config.url, method: config.method, data:config.data});
console.groupEnd();
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, {}];
}
return [status, {}];
});
// removeBatch
mock.onDelete(new RegExp(/^\/ibzteammembers\/batch$/)).reply((config: any) => {
console.groupCollapsed("实体:ibzteammember 方法: removeBatch");
console.table({url:config.url, method: config.method, data:config.data});
console.groupEnd();
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, {}];
}
return [status, {}];
});
// Select
mock.onGet(new RegExp(/^\/ibzteammembers\/([a-zA-Z0-9\-\;]{1,35})\/select$/)).reply((config: any) => {
console.groupCollapsed("实体:ibzteammember 方法: Select");
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> = ['teammemberid'];
const matchArray:any = new RegExp(/^\/ibzteammembers\/([a-zA-Z0-9\-\;]{1,35})\/select$/).exec(config.url);
let tempValue: any = {};
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 : [];
let _items = items.find((item: any) => Object.is(item.teammemberid, tempValue.teammemberid));
console.groupCollapsed("response数据 status: "+status+" data: ");
console.table(_items);
console.groupEnd();
console.groupEnd();
return [status, _items];
});
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// FetchDefault
mock.onGet(new RegExp(/^\/ibzteammembers\/select$/)).reply((config: any) => {
console.groupCollapsed("实体:ibzteammember 方法: FetchDefault");
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 : []];
});
// FetchDefault
mock.onGet(new RegExp(/^\/ibzteammembers\/select(\?[\w-./?%&=,]*)*$/)).reply((config: any) => {
console.groupCollapsed("实体:ibzteammember 方法: FetchDefault");
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 : []];
});
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
import qs from 'qs';
import { MockAdapter } from '@/mock/mock-adapter';
const mock = MockAdapter.getInstance();
// 模拟数据
const mockDatas: Array<any> = [
];
//getwflink
mock.onGet(new RegExp(/^\/wfcore\/ibzou-app-web\/ibzteams\/[a-zA-Z0-9\-\;]+\/usertasks\/[a-zA-Z0-9\-\;]+\/ways$/)).reply((config: any) => {
console.groupCollapsed("实体:ibzteam 方法: getwflink");
console.table({url:config.url, method: config.method, data:config.data});
console.groupEnd();
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, {}];
}
return [status,[
{"sequenceFlowId":"dfdsfdsfdsfdsfds","sequenceFlowName":"同意",
"taskId":"aaaaddddccccddddd","processDefinitionKey":"support-workorders-approve-v1",
"processInstanceId":"ddlfldldfldsfds","refViewKey":""},
{"sequenceFlowId":"ddssdfdfdfdfsfdf","sequenceFlowName":"不同意",
"taskId":"aaaaddddccccddddd","processDefinitionKey":"support-workorders-approve-v1",
"processInstanceId":"ddfdsldlfdlldsf","refViewKey":"workorder_ltform_editview"}
]];
});
// getwfstep
mock.onGet(new RegExp(/^\/wfcore\/ibzou-app-web\/ibzteams\/process-definitions-nodes$/)).reply((config: any) => {
console.groupCollapsed("实体:ibzteam 方法: getwfstep");
console.table({url:config.url, method: config.method, data:config.data});
console.groupEnd();
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, {}];
}
return [status, [
{"userTaskId":"sddfddfd-dfdf-fdfd-fdf-dfdfd",
"userTaskName":"待审",
"cnt":0,
"processDefinitionKey":"support-workorders-approve-v1",
"processDefinitionName":"工单审批流程v1"
},
{"userTaskId":"sddfddfd-dfdf-fdfd-fdf-87927",
"userTaskName":"待分配",
"cnt":3,
"processDefinitionKey":"support-workorders-approve-v1",
"processDefinitionName":"工单审批流程v1"}
]];
});
// createBatch
mock.onPost(new RegExp(/^\/ibzteams\/batch$/)).reply((config: any) => {
console.groupCollapsed("实体:ibzteam 方法: createBatch");
console.table({url:config.url, method: config.method, data:config.data});
console.groupEnd();
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, {}];
}
return [status, {}];
});
// updateBatch
mock.onPut(new RegExp(/^\/ibzteams\/batch$/)).reply((config: any) => {
console.groupCollapsed("实体:ibzteam 方法: updateBatch");
console.table({url:config.url, method: config.method, data:config.data});
console.groupEnd();
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, {}];
}
return [status, {}];
});
// removeBatch
mock.onDelete(new RegExp(/^\/ibzteams\/batch$/)).reply((config: any) => {
console.groupCollapsed("实体:ibzteam 方法: removeBatch");
console.table({url:config.url, method: config.method, data:config.data});
console.groupEnd();
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, {}];
}
return [status, {}];
});
// Select
mock.onGet(new RegExp(/^\/ibzteams\/([a-zA-Z0-9\-\;]{1,35})\/select$/)).reply((config: any) => {
console.groupCollapsed("实体:ibzteam 方法: Select");
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> = ['teamid'];
const matchArray:any = new RegExp(/^\/ibzteams\/([a-zA-Z0-9\-\;]{1,35})\/select$/).exec(config.url);
let tempValue: any = {};
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 : [];
let _items = items.find((item: any) => Object.is(item.teamid, tempValue.teamid));
console.groupCollapsed("response数据 status: "+status+" data: ");
console.table(_items);
console.groupEnd();
console.groupEnd();
return [status, _items];
});
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// FetchDefault
mock.onGet(new RegExp(/^\/ibzteams\/select$/)).reply((config: any) => {
console.groupCollapsed("实体:ibzteam 方法: FetchDefault");
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 : []];
});
// FetchDefault
mock.onGet(new RegExp(/^\/ibzteams\/select(\?[\w-./?%&=,]*)*$/)).reply((config: any) => {
console.groupCollapsed("实体:ibzteam 方法: FetchDefault");
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 : []];
});
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
......@@ -8,6 +8,8 @@ import './upload/upload';
// 实体级接口对象
import './entity/ibzdept-members/ibzdept-members';
import './entity/ibzteam-members/ibzteam-members';
import './entity/ibzdepartments/ibzdepartments';
import './entity/ibzemployees/ibzemployees';
import './entity/ibzorganizations/ibzorganizations';
import './entity/ibzteams/ibzteams';
......@@ -40,9 +40,11 @@ export class EntityServiceRegister {
*/
protected init(): void {
this.allEntityService.set('ibzdeptmember', () => import('@/service/ibzdept-member/ibzdept-member-service'));
this.allEntityService.set('ibzteammember', () => import('@/service/ibzteam-member/ibzteam-member-service'));
this.allEntityService.set('ibzdepartment', () => import('@/service/ibzdepartment/ibzdepartment-service'));
this.allEntityService.set('ibzemployee', () => import('@/service/ibzemployee/ibzemployee-service'));
this.allEntityService.set('ibzorganization', () => import('@/service/ibzorganization/ibzorganization-service'));
this.allEntityService.set('ibzteam', () => import('@/service/ibzteam/ibzteam-service'));
}
/**
......
import { Http,Util } from '@/utils';
import EntityService from '../entity-service';
/**
* 组成员服务对象基类
*
* @export
* @class IBZTeamMemberServiceBase
* @extends {EntityServie}
*/
export default class IBZTeamMemberServiceBase extends EntityService {
/**
* Creates an instance of IBZTeamMemberServiceBase.
*
* @param {*} [opts={}]
* @memberof IBZTeamMemberServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 初始化基础数据
*
* @memberof IBZTeamMemberServiceBase
*/
public initBasicData(){
this.APPLYDEKEY ='ibzteammember';
this.APPDEKEY = 'teammemberid';
this.APPDENAME = 'ibzteammembers';
this.APPDETEXT = 'teammemberid';
this.APPNAME = 'web';
this.SYSTEMNAME = 'ibzou';
}
// 实体接口
/**
* Select接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof IBZTeamMemberServiceBase
*/
public async Select(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
return Http.getInstance().get(`/ibzteammembers/${context.ibzteammember}/select`,isloading);
}
/**
* FetchDefault接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof IBZTeamMemberServiceBase
*/
public async FetchDefault(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/ibzteammembers/select`,tempData,isloading);
}
}
\ No newline at end of file
import { Http,Util } from '@/utils';
import IBZTeamMemberServiceBase from './ibzteam-member-service-base';
/**
* 组成员服务对象
*
* @export
* @class IBZTeamMemberService
* @extends {IBZTeamMemberServiceBase}
*/
export default class IBZTeamMemberService extends IBZTeamMemberServiceBase {
/**
* Creates an instance of IBZTeamMemberService.
*
* @param {*} [opts={}]
* @memberof IBZTeamMemberService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import { Http,Util } from '@/utils';
import EntityService from '../entity-service';
/**
* 组服务对象基类
*
* @export
* @class IBZTeamServiceBase
* @extends {EntityServie}
*/
export default class IBZTeamServiceBase extends EntityService {
/**
* Creates an instance of IBZTeamServiceBase.
*
* @param {*} [opts={}]
* @memberof IBZTeamServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 初始化基础数据
*
* @memberof IBZTeamServiceBase
*/
public initBasicData(){
this.APPLYDEKEY ='ibzteam';
this.APPDEKEY = 'teamid';
this.APPDENAME = 'ibzteams';
this.APPDETEXT = 'teamname';
this.APPNAME = 'web';
this.SYSTEMNAME = 'ibzou';
}
// 实体接口
/**
* Select接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof IBZTeamServiceBase
*/
public async Select(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
return Http.getInstance().get(`/ibzteams/${context.ibzteam}/select`,isloading);
}
/**
* FetchDefault接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof IBZTeamServiceBase
*/
public async FetchDefault(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/ibzteams/select`,tempData,isloading);
}
}
\ No newline at end of file
import { Http,Util } from '@/utils';
import IBZTeamServiceBase from './ibzteam-service-base';
/**
* 组服务对象
*
* @export
* @class IBZTeamService
* @extends {IBZTeamServiceBase}
*/
export default class IBZTeamService extends IBZTeamServiceBase {
/**
* Creates an instance of IBZTeamService.
*
* @param {*} [opts={}]
* @memberof IBZTeamService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
......@@ -207,7 +207,7 @@
}
}
.view-container.degridview, .view-container.degridview9, .view-container.dewfgridview{
.view-container.degridview, .view-container.degridview9, .view-container.dewfgridview, .view-container.delistview, .view-container.delistview9, .view-container.dedataview, .view-container.dedataview9{
>.view-card.view-no-caption{
>.ivu-card-body{
height: 100%;
......
import { Environment } from '@/environments/environment';
import { UIActionTool,Util } from '@/utils';
import UIService from '../ui-service';
import { Subject } from 'rxjs';
import IBZTeamMemberService from '@/service/ibzteam-member/ibzteam-member-service';
/**
* 组成员UI服务对象基类
*
* @export
* @class IBZTeamMemberUIServiceBase
*/
export default class IBZTeamMemberUIServiceBase extends UIService {
/**
* 是否支持工作流
*
* @memberof IBZTeamMemberUIServiceBase
*/
public isEnableWorkflow:boolean = false;
/**
* 当前UI服务对应的数据服务对象
*
* @memberof IBZTeamMemberUIServiceBase
*/
public dataService:IBZTeamMemberService = new IBZTeamMemberService();
/**
* 所有关联视图
*
* @memberof IBZTeamMemberUIServiceBase
*/
public allViewMap: Map<string, Object> = new Map();
/**
* 状态值
*
* @memberof IBZTeamMemberUIServiceBase
*/
public stateValue: number = 0;
/**
* 状态属性
*
* @memberof IBZTeamMemberUIServiceBase
*/
public stateField: string = "";
/**
* 主状态属性集合
*
* @memberof IBZTeamMemberUIServiceBase
*/
public mainStateFields:Array<any> = [];
/**
* 主状态集合Map
*
* @memberof IBZTeamMemberUIServiceBase
*/
public allDeMainStateMap:Map<string,string> = new Map();
/**
* Creates an instance of IBZTeamMemberUIServiceBase.
*
* @param {*} [opts={}]
* @memberof IBZTeamMemberUIServiceBase
*/
constructor(opts: any = {}) {
super(opts);
this.initViewMap();
this.initDeMainStateMap();
}
/**
* 初始化视图Map
*
* @memberof IBZTeamMemberUIServiceBase
*/
public initViewMap(){
}
/**
* 初始化主状态集合
*
* @memberof IBZTeamMemberUIServiceBase
*/
public initDeMainStateMap(){
}
/**
* 获取指定数据的重定向页面
*
* @param srfkey 数据主键
* @param isEnableWorkflow 重定向视图是否需要处理流程中的数据
* @memberof IBZTeamMemberUIServiceBase
*/
public async getRDAppView(srfkey:string,isEnableWorkflow:boolean){
this.isEnableWorkflow = isEnableWorkflow;
// 进行数据查询
let result:any = await this.dataService.Get({ibzteammember:srfkey});
const curData:any = result.data;
//判断当前数据模式,默认为true,todo
const iRealDEModel:boolean = true;
let bDataInWF:boolean = false;
let bWFMode:any = false;
// 计算数据模式
if (this.isEnableWorkflow) {
bDataInWF = await this.dataService.testDataInWF({stateValue:this.stateValue,stateField:this.stateField},curData);
if (bDataInWF) {
bDataInWF = true;
bWFMode = await this.dataService.testUserExistWorklist(null,curData);
}
}
let strPDTViewParam:string = await this.getDESDDEViewPDTParam(curData, bDataInWF, bWFMode);
//若不是当前数据模式,处理strPDTViewParam,todo
//查找视图
//返回视图
return this.allViewMap.get(strPDTViewParam);
}
/**
* 获取实际的数据类型
*
* @memberof IBZTeamMemberUIServiceBase
*/
public getRealDEType(entity:any){
}
/**
* 获取实体单数据实体视图预定义参数
*
* @param curData 当前数据
* @param bDataInWF 是否有数据在工作流中
* @param bWFMode 是否工作流模式
* @memberof IBZTeamMemberUIServiceBase
*/
public async getDESDDEViewPDTParam(curData:any, bDataInWF:boolean, bWFMode:boolean){
let strPDTParam:string = '';
if (bDataInWF) {
// 判断数据是否在流程中
}
//多表单,todo
const isEnableMultiForm:boolean = false;
const multiFormDEField:string|null =null;
if (isEnableMultiForm && multiFormDEField) {
const objFormValue:string = curData[multiFormDEField];
if(!Environment.isAppMode){
return 'MOBEDITVIEW'+objFormValue;
}
return 'EDITVIEW'+objFormValue;
}
if(!Environment.isAppMode){
if(this.getDEMainStateTag(curData)){
return `MOBEDITVIEW:MSTAG:${ await this.getDEMainStateTag(curData)}`;
}
return 'MOBEDITVIEW:';
}
if(this.getDEMainStateTag(curData)){
return `EDITVIEW:MSTAG:${ await this.getDEMainStateTag(curData)}`;
}
return 'EDITVIEW:';
}
/**
* 获取数据对象的主状态标识
*
* @param curData 当前数据
* @memberof IBZTeamMemberUIServiceBase
*/
public async getDEMainStateTag(curData:any){
if(this.mainStateFields.length === 0) return null;
this.mainStateFields.forEach((singleMainField:any) =>{
if(!(singleMainField in curData)){
console.error(`当前数据对象不包含属性singleMainField,可能会发生错误`);
}
})
let strTag:String = "";
for (let i = 0; i <= 1; i++) {
let strTag:string = (curData[this.mainStateFields[0]])?(i == 0) ? curData[this.mainStateFields[0]] : "":"";
if (this.mainStateFields.length >= 2) {
for (let j = 0; j <= 1; j++) {
let strTag2:string = (curData[this.mainStateFields[1]])?`${strTag}__${(j == 0) ? curData[this.mainStateFields[1]] : ""}`:strTag;
if (this.mainStateFields.length >= 3) {
for (let k = 0; k <= 1; k++) {
let strTag3:string = (curData[this.mainStateFields[2]])?`${strTag2}__${(k == 0) ? curData[this.mainStateFields[2]] : ""}`:strTag2;
// 判断是否存在
return this.allDeMainStateMap.get(strTag3);
}
}else{
return this.allDeMainStateMap.get(strTag2);
}
}
}else{
return this.allDeMainStateMap.get(strTag);
}
}
return null;
}
}
\ No newline at end of file
import IBZTeamMemberUIServiceBase from './ibzteam-member-ui-service-base';
/**
* 组成员UI服务对象
*
* @export
* @class IBZTeamMemberUIService
*/
export default class IBZTeamMemberUIService extends IBZTeamMemberUIServiceBase {
/**
* Creates an instance of IBZTeamMemberUIService.
*
* @param {*} [opts={}]
* @memberof IBZTeamMemberUIService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import { Environment } from '@/environments/environment';
import { UIActionTool,Util } from '@/utils';
import UIService from '../ui-service';
import { Subject } from 'rxjs';
import IBZTeamService from '@/service/ibzteam/ibzteam-service';
/**
* 组UI服务对象基类
*
* @export
* @class IBZTeamUIServiceBase
*/
export default class IBZTeamUIServiceBase extends UIService {
/**
* 是否支持工作流
*
* @memberof IBZTeamUIServiceBase
*/
public isEnableWorkflow:boolean = false;
/**
* 当前UI服务对应的数据服务对象
*
* @memberof IBZTeamUIServiceBase
*/
public dataService:IBZTeamService = new IBZTeamService();
/**
* 所有关联视图
*
* @memberof IBZTeamUIServiceBase
*/
public allViewMap: Map<string, Object> = new Map();
/**
* 状态值
*
* @memberof IBZTeamUIServiceBase
*/
public stateValue: number = 0;
/**
* 状态属性
*
* @memberof IBZTeamUIServiceBase
*/
public stateField: string = "";
/**
* 主状态属性集合
*
* @memberof IBZTeamUIServiceBase
*/
public mainStateFields:Array<any> = [];
/**
* 主状态集合Map
*
* @memberof IBZTeamUIServiceBase
*/
public allDeMainStateMap:Map<string,string> = new Map();
/**
* Creates an instance of IBZTeamUIServiceBase.
*
* @param {*} [opts={}]
* @memberof IBZTeamUIServiceBase
*/
constructor(opts: any = {}) {
super(opts);
this.initViewMap();
this.initDeMainStateMap();
}
/**
* 初始化视图Map
*
* @memberof IBZTeamUIServiceBase
*/
public initViewMap(){
}
/**
* 初始化主状态集合
*
* @memberof IBZTeamUIServiceBase
*/
public initDeMainStateMap(){
}
/**
* 获取指定数据的重定向页面
*
* @param srfkey 数据主键
* @param isEnableWorkflow 重定向视图是否需要处理流程中的数据
* @memberof IBZTeamUIServiceBase
*/
public async getRDAppView(srfkey:string,isEnableWorkflow:boolean){
this.isEnableWorkflow = isEnableWorkflow;
// 进行数据查询
let result:any = await this.dataService.Get({ibzteam:srfkey});
const curData:any = result.data;
//判断当前数据模式,默认为true,todo
const iRealDEModel:boolean = true;
let bDataInWF:boolean = false;
let bWFMode:any = false;
// 计算数据模式
if (this.isEnableWorkflow) {
bDataInWF = await this.dataService.testDataInWF({stateValue:this.stateValue,stateField:this.stateField},curData);
if (bDataInWF) {
bDataInWF = true;
bWFMode = await this.dataService.testUserExistWorklist(null,curData);
}
}
let strPDTViewParam:string = await this.getDESDDEViewPDTParam(curData, bDataInWF, bWFMode);
//若不是当前数据模式,处理strPDTViewParam,todo
//查找视图
//返回视图
return this.allViewMap.get(strPDTViewParam);
}
/**
* 获取实际的数据类型
*
* @memberof IBZTeamUIServiceBase
*/
public getRealDEType(entity:any){
}
/**
* 获取实体单数据实体视图预定义参数
*
* @param curData 当前数据
* @param bDataInWF 是否有数据在工作流中
* @param bWFMode 是否工作流模式
* @memberof IBZTeamUIServiceBase
*/
public async getDESDDEViewPDTParam(curData:any, bDataInWF:boolean, bWFMode:boolean){
let strPDTParam:string = '';
if (bDataInWF) {
// 判断数据是否在流程中
}
//多表单,todo
const isEnableMultiForm:boolean = false;
const multiFormDEField:string|null =null;
if (isEnableMultiForm && multiFormDEField) {
const objFormValue:string = curData[multiFormDEField];
if(!Environment.isAppMode){
return 'MOBEDITVIEW'+objFormValue;
}
return 'EDITVIEW'+objFormValue;
}
if(!Environment.isAppMode){
if(this.getDEMainStateTag(curData)){
return `MOBEDITVIEW:MSTAG:${ await this.getDEMainStateTag(curData)}`;
}
return 'MOBEDITVIEW:';
}
if(this.getDEMainStateTag(curData)){
return `EDITVIEW:MSTAG:${ await this.getDEMainStateTag(curData)}`;
}
return 'EDITVIEW:';
}
/**
* 获取数据对象的主状态标识
*
* @param curData 当前数据
* @memberof IBZTeamUIServiceBase
*/
public async getDEMainStateTag(curData:any){
if(this.mainStateFields.length === 0) return null;
this.mainStateFields.forEach((singleMainField:any) =>{
if(!(singleMainField in curData)){
console.error(`当前数据对象不包含属性singleMainField,可能会发生错误`);
}
})
let strTag:String = "";
for (let i = 0; i <= 1; i++) {
let strTag:string = (curData[this.mainStateFields[0]])?(i == 0) ? curData[this.mainStateFields[0]] : "":"";
if (this.mainStateFields.length >= 2) {
for (let j = 0; j <= 1; j++) {
let strTag2:string = (curData[this.mainStateFields[1]])?`${strTag}__${(j == 0) ? curData[this.mainStateFields[1]] : ""}`:strTag;
if (this.mainStateFields.length >= 3) {
for (let k = 0; k <= 1; k++) {
let strTag3:string = (curData[this.mainStateFields[2]])?`${strTag2}__${(k == 0) ? curData[this.mainStateFields[2]] : ""}`:strTag2;
// 判断是否存在
return this.allDeMainStateMap.get(strTag3);
}
}else{
return this.allDeMainStateMap.get(strTag2);
}
}
}else{
return this.allDeMainStateMap.get(strTag);
}
}
return null;
}
}
\ No newline at end of file
import IBZTeamUIServiceBase from './ibzteam-ui-service-base';
/**
* 组UI服务对象
*
* @export
* @class IBZTeamUIService
*/
export default class IBZTeamUIService extends IBZTeamUIServiceBase {
/**
* Creates an instance of IBZTeamUIService.
*
* @param {*} [opts={}]
* @memberof IBZTeamUIService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
......@@ -40,9 +40,11 @@ export class UIServiceRegister {
*/
protected init(): void {
this.allUIService.set('ibzdeptmember', () => import('@/uiservice/ibzdept-member/ibzdept-member-ui-service'));
this.allUIService.set('ibzteammember', () => import('@/uiservice/ibzteam-member/ibzteam-member-ui-service'));
this.allUIService.set('ibzdepartment', () => import('@/uiservice/ibzdepartment/ibzdepartment-ui-service'));
this.allUIService.set('ibzemployee', () => import('@/uiservice/ibzemployee/ibzemployee-ui-service'));
this.allUIService.set('ibzorganization', () => import('@/uiservice/ibzorganization/ibzorganization-ui-service'));
this.allUIService.set('ibzteam', () => import('@/uiservice/ibzteam/ibzteam-ui-service'));
}
/**
......
......@@ -125,6 +125,13 @@ export class Interceptors {
* @memberof Interceptors
*/
private doNoLogin(data: any = {}): void {
// 清除user和token
if(localStorage.getItem('user')){
localStorage.removeItem('user');
}
if(localStorage.getItem('token')){
localStorage.removeItem('token');
}
if (data.loginurl && !Object.is(data.loginurl, '') && data.originurl && !Object.is(data.originurl, '')) {
let _url = encodeURIComponent(encodeURIComponent(window.location.href));
let loginurl: string = data.loginurl;
......
......@@ -29,5 +29,8 @@
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
.icon{
padding-right: 10px;
}
}
// this is less
......@@ -29,5 +29,8 @@
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
.icon{
padding-right: 10px;
}
}
// this is less
......@@ -37,11 +37,6 @@
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
</command>
</hudson.tasks.Shell>
</builders>
......
......@@ -29,7 +29,6 @@ import cn.ibizlab.util.domain.EntityMP;
/**
* 实体[部门]
*/
@Builder
@Getter
@Setter
@NoArgsConstructor
......
......@@ -29,7 +29,6 @@ import cn.ibizlab.util.domain.EntityMP;
/**
* 实体[部门成员]
*/
@Builder
@Getter
@Setter
@NoArgsConstructor
......
......@@ -29,7 +29,6 @@ import cn.ibizlab.util.domain.EntityMP;
/**
* 实体[人员]
*/
@Builder
@Getter
@Setter
@NoArgsConstructor
......
......@@ -29,7 +29,6 @@ import cn.ibizlab.util.domain.EntityMP;
/**
* 实体[单位机构]
*/
@Builder
@Getter
@Setter
@NoArgsConstructor
......
......@@ -29,7 +29,6 @@ import cn.ibizlab.util.domain.EntityMP;
/**
* 实体[岗位]
*/
@Builder
@Getter
@Setter
@NoArgsConstructor
......
......@@ -29,7 +29,6 @@ import cn.ibizlab.util.domain.EntityMP;
/**
* 实体[组]
*/
@Builder
@Getter
@Setter
@NoArgsConstructor
......
......@@ -29,7 +29,6 @@ import cn.ibizlab.util.domain.EntityMP;
/**
* 实体[组成员]
*/
@Builder
@Getter
@Setter
@NoArgsConstructor
......
......@@ -9,6 +9,6 @@ CMD echo "The application will start in ${IBIZ_SLEEP}s..." && \
sleep ${IBIZ_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,21 +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
- SERVER_PORT=40001
- SPRING_CLOUD_NACOS_DISCOVERY_SERVER-ADDR=172.16.102.211:8848
- SPRING_REDIS_HOST=172.16.100.243
- SPRING_REDIS_PORT=6379
- SPRING_REDIS_DATABASE=0
- SPRING_DATASOURCE_USERNAME=a_A_5d9d78509
- SPRING_DATASOURCE_PASSWORD=@6dEfb3@
- SPRING_DATASOURCE_URL=jdbc:mysql://172.16.180.232:3306/a_A_5d9d78509?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true
- SPRING_DATASOURCE_DRIVER-CLASS-NAME=com.mysql.jdbc.Driver
- SPRING_DATASOURCE_DEFAULTSCHEMA=a_A_5d9d78509
deploy:
mode: replicated
replicas: 1
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册