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

lab_qyk 发布系统代码

上级 87feeed9
## v7.0.0-alpha.8 [2020-6-4]
### Bug修复
修复树右键菜单事件传值bug
修复树节点图标样式
修复viewdata和viewparams解析不同步
修复界面行为多主键分隔符由";"改为","
修复多层导航失效
数据选择,自动填充编辑器参数处理,动态代码表编辑器参数
修复富文本国际化bug
修复坐标轴的自定义参数
修复分页面板配置导航参数
修复实体处理逻辑
修复应用级context对象特性丢失的问题
修复新建逻辑
修复动态代码表传递上下文、参数逻辑
### 功能新增及优化
#### 模板
树选择双击
列表快速分组和快速搜索表单
数据视图快速分组和快速搜索表单
日历图例、日历快速分组和批处理工具栏
实体国际化路径调整
面板界面行为支持
列表,数据视图下拉加载
增加图表名称代码表识别、雷达图支持
uaa菜单权限
增加数据看板动态模型数据存库
应用样式调整
#### 基础文件
人员选择标准控件样式调整
应用样式调整
## v7.0.0-alpha.7 [2020-5-28]
### Bug修复
......@@ -219,6 +281,4 @@
## v7.0.0-alpha.1 [2020-4-29]
初始化文件
初始化文件
\ No newline at end of file
......@@ -26,7 +26,7 @@
"element-ui": "^2.13.0",
"file-saver": "^2.0.2",
"font-awesome": "^4.7.0",
"ibiz-gantt-elastic": "^1.0.15",
"ibiz-gantt-elastic": "^1.0.16",
"ibiz-vue-lib": "^0.1.10",
"interactjs": "^1.9.4",
"moment": "^2.24.0",
......
......@@ -76,6 +76,7 @@ import AppDepartmentSelect from './components/app-department-select/app-departme
import IBizGroupSelect from './components/ibiz-group-select/ibiz-group-select.vue'
import IBizGroupPicker from './components/ibiz-group-picker/ibiz-group-picker.vue'
import AppWFApproval from './components/app-wf-approval/app-wf-approval.vue'
import Breadcrumb from './components/app-breadcrumb/app-breadcrumb.vue';
// 全局挂载UI实体服务注册中心
window['uiServiceRegister'] = uiServiceRegister;
......@@ -161,5 +162,6 @@ export const AppComponents = {
v.component('ibiz-group-select',IBizGroupSelect);
v.component('ibiz-group-picker',IBizGroupPicker);
v.component('app-wf-approval',AppWFApproval);
v.component('app-breadcrumb',Breadcrumb);
},
};
\ No newline at end of file
......@@ -173,29 +173,22 @@ export default class AppAutocomplete extends Vue {
* @param callback
*/
public onSearch(query: any, callback: any): void {
// 公共参数处理
let data: any = {};
const bcancel: boolean = this.handlePublicParams(data);
if (!bcancel) {
return;
}
// 参数处理
let _context = data.context;
let _param = data.param;
// 处理搜索参数
query = !query ? '' : query;
if (!this.inputState && Object.is(query, this.value)) {
query = '';
}
this.inputState = false;
// 合并视图上下文参数和视图参数
let param: any = JSON.parse(JSON.stringify(this.viewparams));
let context: any = JSON.parse(JSON.stringify(this.context));
Object.assign(param, { query: query });
// 附加参数处理
if (this.itemParam.context) {
let _context = this.$util.formatData(this.data,this.itemParam.context);
Object.assign(context,_context);
}
if (this.itemParam.param) {
let _param = this.$util.formatData(this.data,this.itemParam.param);
Object.assign(param,_param);
}
if (this.itemParam.parentdata) {
let _parentdata = this.$util.formatData(this.data,this.itemParam.parentdata);
Object.assign(param,_parentdata);
}
Object.assign(_param, { query: query });
// 错误信息国际化
let error: string = (this.$t('components.appAutocomplete.error') as any);
let miss: string = (this.$t('components.appAutocomplete.miss') as any);
......@@ -208,7 +201,7 @@ export default class AppAutocomplete extends Vue {
} else if(!this.acParams.interfaceName) {
this.$Notice.error({ title: error, desc: miss+'interfaceName' });
} else {
this.service.getItems(this.acParams.serviceName,this.acParams.interfaceName, context, param).then((response: any) => {
this.service.getItems(this.acParams.serviceName,this.acParams.interfaceName, _context, _param).then((response: any) => {
if (!response) {
this.$Notice.error({ title: error, desc: requestException });
} else {
......@@ -274,6 +267,34 @@ export default class AppAutocomplete extends Vue {
this.$forceUpdate();
}
/**
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof AppAutocomplete
*/
public handlePublicParams(arg: any): boolean {
if (!this.data) {
this.$Notice.error({ title: (this.$t('components.appPicker.error') as any), desc: (this.$t('components.appPicker.formdataException') as any) });
return false;
}
// 合并表单参数
arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
// 附加参数处理
if (this.itemParam && this.itemParam.context) {
let _context = this.$util.formatData(this.data,arg.context,this.itemParam.context);
Object.assign(arg.context,_context);
}
if (this.itemParam && this.itemParam.param) {
let _param = this.$util.formatData(this.data,arg.param,this.itemParam.param);
Object.assign(arg.param,_param);
}
return true;
}
}
</script>
......
.el-breadcrumb__inner,
.el-breadcrumb__inner a {
font-weight: 400 !important;
}
.app-breadcrumb.el-breadcrumb {
display: inline-block;
font-size: 14px;
line-height: 50px;
margin-left: 8px;
.no-redirect {
color: #97a8be;
cursor: text;
}
}
\ No newline at end of file
<template>
<el-breadcrumb
class="app-breadcrumb"
separator="/"
>
<transition-group name="breadcrumb">
<el-breadcrumb-item
v-for="(item, index) in breadcrumbs"
:key="item.path"
>
<span
v-if="item.redirect === 'noredirect' || index === breadcrumbs.length-1"
class="no-redirect"
>{{ $t(item.meta.caption) }}</span>
<a
v-else
@click.prevent="handleLink(item)"
>{{ $t(item.meta.caption) }}</a>
</el-breadcrumb-item>
</transition-group>
</el-breadcrumb>
</template>
<script lang="ts">
import { compile } from 'path-to-regexp'
import { Component, Vue, Watch, Prop } from 'vue-property-decorator'
import { RouteRecord, Route } from 'vue-router'
@Component({
name: 'Breadcrumb'
})
export default class extends Vue {
private breadcrumbs: RouteRecord[] = []
@Prop() public defPSAppView?: any;
@Watch('$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()
}
created() {
this.getBreadcrumb()
}
private getBreadcrumb() {
let matched = this.$route.matched.filter((item) => item.meta && item.meta.caption)
const first = matched[0]
if (!this.isDashboard(first)) {
matched = [{ path: "/index/:index?", meta: {
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 };
}
private handleLink(item: any) {
this.$router.push(this.pathCompile(item)).catch(err => {
console.warn(err);
});
}
}
</script>
<style lang='less'>
@import "./app-breadcrumb.less";
</style>
\ No newline at end of file
......@@ -7,7 +7,7 @@
</template>
<script lang="ts">
import { Component, Vue, Prop, Model } from 'vue-property-decorator';
import { Component, Vue, Prop, Model, Watch } from 'vue-property-decorator';
import CodeListService from "@service/app/codelist-service";
@Component({
......@@ -53,6 +53,38 @@ export default class AppCheckBox extends Vue {
*/
@Prop() disabled?: boolean;
/**
* 传入表单数据
*
* @type {*}
* @memberof DropDownList
*/
@Prop() public data?: any;
/**
* 传入额外参数
*
* @type {*}
* @memberof DropDownList
*/
@Prop() public itemParam?: any;
/**
* 视图上下文
*
* @type {*}
* @memberof AppAutocomplete
*/
@Prop() public context!: any;
/**
* 视图参数
*
* @type {*}
* @memberof AppFormDRUIPart
*/
@Prop() public viewparams!: any;
/**
* 获取启用禁用状态
*
......@@ -166,6 +198,28 @@ export default class AppCheckBox extends Vue {
*/
public items: any[] = [];
/**
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof DropDownList
*/
public handlePublicParams(arg: any) {
// 合并表单参数
arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
// 附加参数处理
if (this.itemParam && this.itemParam.context) {
let _context = this.$util.formatData(this.data,arg.context,this.itemParam.context);
Object.assign(arg.context,_context);
}
if (this.itemParam && this.itemParam.param) {
let _param = this.$util.formatData(this.data,arg.param,this.itemParam.param);
Object.assign(arg.param,_param);
}
}
/**
* vue 生命周期
*
......@@ -181,7 +235,13 @@ export default class AppCheckBox extends Vue {
console.log(`----${this.tag}----$t('components.appCheckBox.notExist')`);
}
} else if (Object.is(this.codelistType,"DYNAMIC")) {
this.codeListService.getItems(this.tag).then((res:any) => {
// 公共参数处理
let data: any = {};
this.handlePublicParams(data);
// 参数处理
let _context = data.context;
let _param = data.param;
this.codeListService.getItems(this.tag,_context,_param).then((res:any) => {
this.items = res;
}).catch((error:any) => {
console.log(`----${this.tag}----$t('components.appCheckBox.notExist')`);
......@@ -190,6 +250,29 @@ export default class AppCheckBox extends Vue {
}
}
/**
* 监听表单数据变化
*
* @memberof AppOrgSelect
*/
@Watch('data',{immediate:true,deep:true})
onDataChange(newVal: any, oldVal: any) {
if(newVal){
if(this.tag && this.codelistType == 'DYNAMIC'){
// 公共参数处理
let data: any = {};
this.handlePublicParams(data);
// 参数处理
let _context = data.context;
let _param = data.param;
this.codeListService.getItems(this.tag,_context,_param).then((res:any) => {
this.items = res;
}).catch((error:any)=>{
console.log(`----${this.tag}----代码表不存在!`);
})
}
}
}
}
</script>
......
......@@ -279,8 +279,8 @@ export default class AppColumnLink extends Vue {
return false;
}
// 合并表单参数
arg.param = JSON.parse(JSON.stringify(this.viewparams));
arg.context = JSON.parse(JSON.stringify(this.context));
arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
return true;
}
......
......@@ -170,15 +170,15 @@ export default class AppEmbedPicker extends Vue {
let context: any = JSON.parse(JSON.stringify(this.context));
// 附加参数处理
if (this.itemParam.context) {
let _context = this.$util.formatData(activeData,this.itemParam.context);
let _context = this.$util.formatData(activeData,context,this.itemParam.context);
Object.assign(context,_context);
}
if (this.itemParam.param) {
let _param = this.$util.formatData(activeData,this.itemParam.param);
let _param = this.$util.formatData(activeData,param,this.itemParam.param);
Object.assign(param,_param);
}
if (this.itemParam.parentdata) {
let _parentdata = this.$util.formatData(activeData,this.itemParam.parentdata);
let _parentdata = this.$util.formatData(activeData,param,this.itemParam.parentdata);
Object.assign(param,_parentdata);
}
this.viewdata = JSON.stringify(context);
......
......@@ -44,6 +44,14 @@ export default class AppMpicker extends Vue {
*/
@Prop() curvalue?: any;
/**
* 表单项参数
*
* @type {any}
* @memberof AppPicker
*/
@Prop() public itemParam: any;
/**
* 表单项名称
*/
......@@ -147,9 +155,18 @@ export default class AppMpicker extends Vue {
* @memberof AppMpicker
*/
public onSearch(query: any) {
let param: any = { query: query };
// 公共参数处理
let data: any = {};
const bcancel: boolean = this.handlePublicParams(data);
if (!bcancel) {
return;
}
// 参数处理
let _context = data.context;
let _param = data.param;
Object.assign(_param ,{ query: query });
if (this.activeData) {
Object.assign(param, { srfreferdata: this.activeData });
Object.assign(_param, { srfreferdata: this.activeData });
}
// 错误信息国际化
let error: string = (this.$t('components.appMpicker.error') as any);
......@@ -162,7 +179,7 @@ export default class AppMpicker extends Vue {
} else if(!this.acParams.interfaceName) {
this.$Notice.error({ title: error, desc: miss+'interfaceName' });
} else {
this.service.getItems(this.acParams.serviceName,this.acParams.interfaceName, param).then((response: any) => {
this.service.getItems(this.acParams.serviceName,this.acParams.interfaceName, _context, _param).then((response: any) => {
if (!response) {
this.$Notice.error({ title: error, desc: requestException });
} else {
......@@ -216,6 +233,33 @@ export default class AppMpicker extends Vue {
}
}
/**
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof AppMpicker
*/
public handlePublicParams(arg: any): boolean {
if (!this.activeData) {
this.$Notice.error({ title: (this.$t('components.appPicker.error') as any), desc: (this.$t('components.appPicker.formdataException') as any) });
return false;
}
// 合并表单参数
arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
// 附加参数处理
if (this.itemParam && this.itemParam.context) {
let _context = this.$util.formatData(this.activeData,arg.context,this.itemParam.context);
Object.assign(arg.context,_context);
}
if (this.itemParam && this.itemParam.param) {
let _param = this.$util.formatData(this.activeData,arg.param,this.itemParam.param);
Object.assign(arg.param,_param);
}
return true;
}
/**
* 打开视图
*
......@@ -229,8 +273,15 @@ export default class AppMpicker extends Vue {
if (this.pickupView && Object.keys(this.pickupView).length > 0) {
// 参数处理
const view = { ...this.pickupView };
let _viewparams = JSON.parse(JSON.stringify(this.viewparams));
let _context = JSON.parse(JSON.stringify(this.context));
// 公共参数处理
let data: any = {};
const bcancel: boolean = this.handlePublicParams(data);
if (!bcancel) {
return;
}
// 参数处理
let _context = data.context;
let _viewparams = data.param;
let _selectItems = JSON.parse(JSON.stringify(this.selectItems));
if(!Object.is(this.deKeyField,"srfkey")){
_selectItems.forEach((item:any, index:number)=>{
......
......@@ -22,6 +22,14 @@
.ivu-select-dropdown{
max-height: 200px;
overflow: scroll;
margin: 0;
padding: 0;
.ivu-dropdown-menu{
.view-container{
margin: 0;
padding: 0;
}
}
.tree-contant{
overflow:inherit;
}
......
......@@ -255,21 +255,17 @@ export default class AppPickerSelectView extends Vue {
return false;
}
// 合并表单参数
arg.param = JSON.parse(JSON.stringify(this.viewparams));
arg.context = JSON.parse(JSON.stringify(this.context));
arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
// 附加参数处理
if (this.itemParam.context) {
let _context = this.$util.formatData(this.data,this.itemParam.context);
let _context = this.$util.formatData(this.data,arg.context,this.itemParam.context);
Object.assign(arg.context,_context);
}
if (this.itemParam.param) {
let _param = this.$util.formatData(this.data,this.itemParam.param);
let _param = this.$util.formatData(this.data,arg.param,this.itemParam.param);
Object.assign(arg.param,_param);
}
if (this.itemParam.parentdata) {
let _parentdata = this.$util.formatData(this.data,this.itemParam.parentdata);
Object.assign(arg.param,_parentdata);
}
return true;
}
......
......@@ -410,9 +410,9 @@ export default class AppPicker extends Vue {
// 判断打开方式
if (view.placement && !Object.is(view.placement, '')) {
if (Object.is(view.placement, 'POPOVER')) {
this.openPopOver($event, view, _context, data);
this.openPopOver($event, view, _context, _param);
} else {
this.openDrawer(view, _context, data);
this.openDrawer(view, _context, _param);
}
} else {
this.openPopupModal(view, _context, _param);
......@@ -647,21 +647,17 @@ export default class AppPicker extends Vue {
return false;
}
// 合并表单参数
arg.param = JSON.parse(JSON.stringify(this.viewparams));
arg.context = JSON.parse(JSON.stringify(this.context));
arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
// 附加参数处理
if (this.itemParam.context) {
let _context = this.$util.formatData(this.data,this.itemParam.context);
if (this.itemParam && this.itemParam.context) {
let _context = this.$util.formatData(this.data,arg.context,this.itemParam.context);
Object.assign(arg.context,_context);
}
if (this.itemParam.param) {
let _param = this.$util.formatData(this.data,this.itemParam.param);
if (this.itemParam && this.itemParam.param) {
let _param = this.$util.formatData(this.data,arg.param,this.itemParam.param);
Object.assign(arg.param,_param);
}
if (this.itemParam.parentdata) {
let _parentdata = this.$util.formatData(this.data,this.itemParam.parentdata);
Object.assign(arg.param,_parentdata);
}
return true;
}
......@@ -691,9 +687,9 @@ export default class AppPicker extends Vue {
// 判断打开方式
if (view.placement && !Object.is(view.placement, '')) {
if (Object.is(view.placement, 'POPOVER')) {
this.openPopOver($event, view, _context, data);
this.openPopOver($event, view, _context, _param);
} else {
this.openDrawer(view, _context, data);
this.openDrawer(view, _context, _param);
}
} else {
this.openPopupModal(view, _context, _param);
......
......@@ -6,7 +6,7 @@
</radio-group>
</template>
<script lang = 'ts'>
import { Component, Vue, Prop, Model } from 'vue-property-decorator';
import { Component, Vue, Prop, Model,Watch } from 'vue-property-decorator';
import CodeListService from "@service/app/codelist-service";
@Component({})
......@@ -61,6 +61,39 @@ export default class AppRadioGroup extends Vue {
*/
@Prop() public codelistType?: string;
/**
* 传入表单数据
*
* @type {*}
* @memberof DropDownList
*/
@Prop() public data?: any;
/**
* 监听表单数据变化
*
* @memberof AppOrgSelect
*/
@Watch('data',{immediate:true,deep:true})
onDataChange(newVal: any, oldVal: any) {
if(newVal){
if(this.tag && this.codelistType == 'DYNAMIC'){
// 公共参数处理
let data: any = {};
this.handlePublicParams(data);
// 参数处理
let _context = data.context;
let _param = data.param;
console.log("app-radio-group")
this.codeListService.getItems(this.tag,_context,_param).then((res:any) => {
this.items = res;
}).catch((error:any)=>{
console.log(`----${this.tag}----代码表不存在!`);
})
}
}
}
/**
* 是否禁用
*
......@@ -69,6 +102,30 @@ export default class AppRadioGroup extends Vue {
*/
@Prop() public disabled?: boolean;
/**
* 传入额外参数
*
* @type {*}
* @memberof DropDownList
*/
@Prop() public itemParam?: any;
/**
* 视图上下文
*
* @type {*}
* @memberof AppAutocomplete
*/
@Prop() public context!: any;
/**
* 视图参数
*
* @type {*}
* @memberof AppFormDRUIPart
*/
@Prop() public viewparams!: any;
/**
* 属性名称
*
......@@ -99,6 +156,28 @@ export default class AppRadioGroup extends Vue {
*/
public items: any[] = [];
/**
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof DropDownList
*/
public handlePublicParams(arg: any) {
// 合并表单参数
arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
// 附加参数处理
if (this.itemParam && this.itemParam.context) {
let _context = this.$util.formatData(this.data,arg.context,this.itemParam.context);
Object.assign(arg.context,_context);
}
if (this.itemParam && this.itemParam.param) {
let _param = this.$util.formatData(this.data,arg.param,this.itemParam.param);
Object.assign(arg.param,_param);
}
}
/**
* vue 生命周期
*
......@@ -108,9 +187,15 @@ export default class AppRadioGroup extends Vue {
if(this.tag && this.codelistType == 'STATIC'){
this.items = this.$store.getters.getCodeListItems(this.tag);
}else if(this.tag && this.codelistType == 'DYNAMIC'){
this.codeListService.getItems(this.tag).then((data:any)=>{
this.items = data;
}).catch((data:any)=>{
// 公共参数处理
let data: any = {};
this.handlePublicParams(data);
// 参数处理
let _context = data.context;
let _param = data.param;
this.codeListService.getItems(this.tag,_context,_param).then((res:any) => {
this.items = res;
}).catch((error:any)=>{
console.log(`----${this.tag}----代码表不存在!`);
})
}
......
......@@ -104,7 +104,7 @@ export default class AppRichTextEditor extends Vue {
* @type {*}
* @memberof AppRichTextEditor
*/
public langu: any = localStorage.getItem('local') ? localStorage.getItem('local') : 'zh_CN' ;
public langu: any = localStorage.getItem('local') ? localStorage.getItem('local') : 'zh-CN' ;
/**
* 语言映射文件
......
<template>
<codelist v-if="tag" :tag="tag" :value="value" :codelistType="codelistType" :renderMode="renderMode" :valueSeparator="valueSeparator" :textSeparator="textSeparator"></codelist>
<codelist v-if="tag" :tag="tag" :value="value" :codelistType="codelistType" :renderMode="renderMode" :valueSeparator="valueSeparator" :textSeparator="textSeparator" :data="data" :itemParam="itemParam" :context="context" :viewparams="viewparams"></codelist>
<app-upload-file-info v-else-if="Object.is(this.editorType,'PICTURE') || Object.is(this.editorType,'PICTURE_ONE') || Object.is(this.editorType,'FILEUPLOADER')" :value="value" :name="name"></app-upload-file-info>
<span class="app-span" v-else >{{text}}</span>
</template>
<script lang="ts">
import { Vue, Component, Prop, Watch, Model } from 'vue-property-decorator';
import CodeListService from "@service/app/codelist-service";
@Component({})
export default class AppSpan extends Vue {
......@@ -64,6 +63,38 @@ export default class AppSpan extends Vue {
*/
@Prop({default:','}) public valueSeparator?: string;
/**
* 传入表单数据
*
* @type {*}
* @memberof AppSpan
*/
@Prop() public data?: any;
/**
* 传入额外参数
*
* @type {*}
* @memberof AppSpan
*/
@Prop() public itemParam?: any;
/**
* 视图上下文
*
* @type {*}
* @memberof AppSpan
*/
@Prop() public context!: any;
/**
* 视图参数
*
* @type {*}
* @memberof AppSpan
*/
@Prop() public viewparams!: any;
/**
* 监控表单属性 data 值
*
......
......@@ -220,15 +220,15 @@ export default class AppTreePicker extends Vue {
let context: any = JSON.parse(JSON.stringify(this.context));
// 附加参数处理
if (this.itemParam.context) {
let _context = this.$util.formatData(activeData,this.itemParam.context);
let _context = this.$util.formatData(activeData,context,this.itemParam.context);
Object.assign(context,_context);
}
if (this.itemParam.param) {
let _param = this.$util.formatData(activeData,this.itemParam.param);
let _param = this.$util.formatData(activeData,param,this.itemParam.param);
Object.assign(param,_param);
}
if (this.itemParam.parentdata) {
let _parentdata = this.$util.formatData(activeData,this.itemParam.parentdata);
let _parentdata = this.$util.formatData(activeData,param,this.itemParam.parentdata);
Object.assign(param,_parentdata);
}
this.viewdata = JSON.stringify(context);
......
......@@ -37,14 +37,14 @@ export default class CodeList extends Vue {
* 代码表类型
*
* @type {string}
* @memberof AppCheckBox
* @memberof CodeList
*/
@Prop() public codelistType?: string;
/**
* 当前值
* @type {any}
* @memberof SelectPicker
* @memberof CodeList
*
*/
@Prop() public value?: string;
......@@ -52,24 +52,56 @@ export default class CodeList extends Vue {
/**
* 获取或模式
* @type {boolean}
* @memberof SelectPicker
* @memberof CodeList
*/
@Prop({default:"STR"}) public renderMode?: string;
/**
* 文本分隔符
* @type {boolean}
* @memberof SelectPicker
* @memberof CodeList
*/
@Prop({default:'、'}) public textSeparator?: string;
/**
* 值分隔符
* @type {boolean}
* @memberof SelectPicker
* @memberof CodeList
*/
@Prop({default:','}) public valueSeparator?: string;
/**
* 传入表单数据
*
* @type {*}
* @memberof CodeList
*/
@Prop() public data?: any;
/**
* 传入额外参数
*
* @type {*}
* @memberof CodeList
*/
@Prop() public itemParam?: any;
/**
* 视图上下文
*
* @type {*}
* @memberof CodeList
*/
@Prop() public context!: any;
/**
* 视图参数
*
* @type {*}
* @memberof CodeList
*/
@Prop() public viewparams!: any;
/**
* 是否为空
*
......@@ -101,7 +133,7 @@ export default class CodeList extends Vue {
*/
public isUseLangres:boolean = false;
/**
/**
* 数据值变化
*
* @param {*} newval
......@@ -112,7 +144,18 @@ export default class CodeList extends Vue {
@Watch('value')
public onValueChange(newVal: any, oldVal: any) {
this.dataHandle();
}
/**
* 监听表单数据变化
*
* @memberof CodeList
*/
@Watch('data',{immediate:true,deep:true})
onDataChange(newVal: any, oldVal: any) {
if(newVal){
this.dataHandle();
}
}
/**
......@@ -131,7 +174,13 @@ export default class CodeList extends Vue {
this.ifEmpty = false;
// 动态代码表处理
if (Object.is(this.codelistType, "DYNAMIC")) {
this.codeListService.getItems(this.tag).then((res: any) => {
// 公共参数处理
let data: any = {};
this.handlePublicParams(data);
// 参数处理
let _context = data.context;
let _param = data.param;
this.codeListService.getItems(this.tag,_context,_param).then((res:any) => {
let items = res;
_this.setItems(items, _this);
}).catch((error: any) => {
......@@ -209,6 +258,28 @@ export default class CodeList extends Vue {
}
}
/**
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof CodeList
*/
public handlePublicParams(arg: any) {
// 合并表单参数
arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
// 附加参数处理
if (this.itemParam && this.itemParam.context) {
let _context = this.$util.formatData(this.data,arg.context,this.itemParam.context);
Object.assign(arg.context,_context);
}
if (this.itemParam && this.itemParam.param) {
let _param = this.$util.formatData(this.data,arg.param,this.itemParam.param);
Object.assign(arg.param,_param);
}
}
}
</script>
......
......@@ -81,7 +81,7 @@ export default class DropDownListDynamic extends Vue {
@Watch('data',{ deep: true })
onDataChange(newVal: any, val: any){
if(newVal){
this.handleOtherParam();
}
}
......@@ -145,26 +145,40 @@ export default class DropDownListDynamic extends Vue {
public items: any[] = [];
/**
* 处理额外参数
*/
public handleOtherParam(){
if(this.itemParam){
this.queryParam = {};
this.otherParam = this.itemParam.parentdata;
if(this.otherParam && Object.keys(this.otherParam).length >0){
Object.keys(this.otherParam).forEach((item:any) =>{
let value: string | null = this.otherParam[item];
if (value && value.startsWith('%') && value.endsWith('%')) {
const key = value.substring(1, value.length - 1);
if (this.data && this.data.hasOwnProperty(key)) {
value = (this.data[key] !== null && this.data[key] !== undefined) ? this.data[key] : null;
} else {
value = null;
}
}
Object.assign(this.queryParam,{[item]:value});
})
}
* 视图上下文
*
* @type {*}
* @memberof AppAutocomplete
*/
@Prop() public context!: any;
/**
* 视图参数
*
* @type {*}
* @memberof AppFormDRUIPart
*/
@Prop() public viewparams!: any;
/**
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof DropDownListDynamic
*/
public handlePublicParams(arg: any) {
// 合并表单参数
arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
// 附加参数处理
if (this.itemParam.context) {
let _context = this.$util.formatData(this.data,arg.context,this.itemParam.context);
Object.assign(arg.context,_context);
}
if (this.itemParam.param) {
let _param = this.$util.formatData(this.data,arg.param,this.itemParam.param);
Object.assign(arg.param,_param);
}
}
......@@ -182,7 +196,13 @@ export default class DropDownListDynamic extends Vue {
console.log(`----${this.tag}----代码表不存在`);
}
}else if(this.tag && Object.is(this.codelistType,"DYNAMIC")){
this.codeListService.getItems(this.tag,{},this.queryParam).then((res:any) => {
// 公共参数处理
let data: any = {};
this.handlePublicParams(data);
// 参数处理
let _context = data.context;
let _param = data.param;
this.codeListService.getItems(this.tag,_context,_param).then((res:any) => {
this.items = res;
}).catch((error:any) => {
console.log(`----${this.tag}----代码表不存在`);
......@@ -199,7 +219,13 @@ export default class DropDownListDynamic extends Vue {
public onClick($event:any){
if($event){
if(this.tag && Object.is(this.codelistType,"DYNAMIC")){
this.codeListService.getItems(this.tag,{},this.queryParam).then((res:any) => {
// 公共参数处理
let data: any = {};
this.handlePublicParams(data);
// 参数处理
let _context = data.context;
let _param = data.param;
this.codeListService.getItems(this.tag,_context,_param).then((res:any) => {
this.items = res;
}).catch((error:any) => {
console.log(`----${this.tag}----代码表不存在`);
......
......@@ -84,6 +84,38 @@ export default class DropDownListMpicker extends Vue {
*/
@Prop() public placeholder?: string;
/**
* 传入额外参数
*
* @type {*}
* @memberof DropDownListMpicker
*/
@Prop() public itemParam?: any;
/**
* 视图上下文
*
* @type {*}
* @memberof DropDownListMpicker
*/
@Prop() public context!: any;
/**
* 视图参数
*
* @type {*}
* @memberof DropDownListMpicker
*/
@Prop() public viewparams!: any;
/**
* 传入表单数据
*
* @type {*}
* @memberof DropDownListMpicker
*/
@Prop() public data?: any;
/**
* 计算属性(当前值)
* @type {any}
......@@ -113,6 +145,28 @@ export default class DropDownListMpicker extends Vue {
*/
public items: any[] = [];
/**
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof DropDownList
*/
public handlePublicParams(arg: any) {
// 合并表单参数
arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
// 附加参数处理
if (this.itemParam.context) {
let _context = this.$util.formatData(this.data,arg.context,this.itemParam.context);
Object.assign(arg.context,_context);
}
if (this.itemParam.param) {
let _param = this.$util.formatData(this.data,arg.param,this.itemParam.param);
Object.assign(arg.param,_param);
}
}
/**
* vue 生命周期
*
......@@ -127,7 +181,13 @@ export default class DropDownListMpicker extends Vue {
console.log(`----${this.tag}----代码表不存在`);
}
}else if(this.tag && Object.is(this.codelistType,"DYNAMIC")){
this.codeListService.getItems(this.tag).then((res:any) => {
// 公共参数处理
let data: any = {};
this.handlePublicParams(data);
// 参数处理
let _context = data.context;
let _param = data.param;
this.codeListService.getItems(this.tag,_context,_param).then((res:any) => {
this.items = res;
}).catch((error:any) => {
console.log(`----${this.tag}----代码表不存在`);
......@@ -143,7 +203,13 @@ export default class DropDownListMpicker extends Vue {
*/
public onClick($event:any){
if(this.tag && Object.is(this.codelistType,"DYNAMIC")){
this.codeListService.getItems(this.tag).then((res:any) => {
// 公共参数处理
let data: any = {};
this.handlePublicParams(data);
// 参数处理
let _context = data.context;
let _param = data.param;
this.codeListService.getItems(this.tag,_context,_param).then((res:any) => {
this.items = res;
}).catch((error:any) => {
console.log(`----${this.tag}----代码表不存在`);
......
......@@ -81,7 +81,7 @@ export default class DropDownList extends Vue {
@Watch('data',{ deep: true })
onDataChange(newVal: any, val: any){
if(newVal){
this.handleOtherParam();
}
}
......@@ -93,6 +93,22 @@ export default class DropDownList extends Vue {
*/
@Prop() public itemParam?: any;
/**
* 视图上下文
*
* @type {*}
* @memberof AppAutocomplete
*/
@Prop() public context!: any;
/**
* 视图参数
*
* @type {*}
* @memberof AppFormDRUIPart
*/
@Prop() public viewparams!: any;
/**
* 是否禁用
* @type {any}
......@@ -145,26 +161,24 @@ export default class DropDownList extends Vue {
public items: any[] = [];
/**
* 处理额外参数
*/
public handleOtherParam(){
if(this.itemParam){
this.queryParam = {};
this.otherParam = this.itemParam.parentdata;
if(this.otherParam && Object.keys(this.otherParam).length >0){
Object.keys(this.otherParam).forEach((item:any) =>{
let value: string | null = this.otherParam[item];
if (value && value.startsWith('%') && value.endsWith('%')) {
const key = value.substring(1, value.length - 1);
if (this.data && this.data.hasOwnProperty(key)) {
value = (this.data[key] !== null && this.data[key] !== undefined) ? this.data[key] : null;
} else {
value = null;
}
}
Object.assign(this.queryParam,{[item]:value});
})
}
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof DropDownList
*/
public handlePublicParams(arg: any) {
// 合并表单参数
arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
// 附加参数处理
if (this.itemParam && this.itemParam.context) {
let _context = this.$util.formatData(this.data,arg.context,this.itemParam.context);
Object.assign(arg.context,_context);
}
if (this.itemParam && this.itemParam.param) {
let _param = this.$util.formatData(this.data,arg.param,this.itemParam.param);
Object.assign(arg.param,_param);
}
}
......@@ -182,7 +196,13 @@ export default class DropDownList extends Vue {
console.log(`----${this.tag}----代码表不存在`);
}
}else if(this.tag && Object.is(this.codelistType,"DYNAMIC")){
this.codeListService.getItems(this.tag,{},this.queryParam).then((res:any) => {
// 公共参数处理
let data: any = {};
this.handlePublicParams(data);
// 参数处理
let _context = data.context;
let _param = data.param;
this.codeListService.getItems(this.tag,_context,_param).then((res:any) => {
this.items = res;
}).catch((error:any) => {
console.log(`----${this.tag}----代码表不存在`);
......@@ -199,7 +219,13 @@ export default class DropDownList extends Vue {
public onClick($event:any){
if($event){
if(this.tag && Object.is(this.codelistType,"DYNAMIC")){
this.codeListService.getItems(this.tag,{},this.queryParam).then((res:any) => {
// 公共参数处理
let data: any = {};
this.handlePublicParams(data);
// 参数处理
let _context = data.context;
let _param = data.param;
this.codeListService.getItems(this.tag,_context,_param).then((res:any) => {
this.items = res;
}).catch((error:any) => {
console.log(`----${this.tag}----代码表不存在`);
......
// .ibiz-page-tag {
// position: relative;
// box-sizing: border-box;
// // width: calc(100% + 30px);
// height: 38px;
// padding: 0 60px 0 30px;
// background: #f6f6f6;
// .tags-body {
// position: relative;
// width: 100%;
// height: 100%;
// overflow: hidden;
// .tags-container {
// position: absolute;
// overflow: visible;
// white-space: nowrap;
// transition: left .3s ease;
// .ivu-tag {
// margin: 0;
// height: 38px;
// line-height: 38px;
// border: 0;
// border-radius: 0;
// border-right: 1px solid #ddd;
// font-size: 14px;
// .text-icon {
// height: 16px;
// margin-bottom: -3px;
// }
// .ivu-icon-ios-close {
// visibility: hidden;
// }
// .tag-text {
// display: table-cell;
// .ivu-tooltip {
// display: block;
// .ivu-tooltip-rel {
// display: block;
// max-width: 200px;
// overflow: hidden;
// text-overflow: ellipsis;
// }
// }
// }
// }
// .ivu-tag.tag-is-active {
// background: #fff;
// }
// .ivu-tag:hover,.ivu-tag.tag-is-active {
// .ivu-icon-ios-close {
// visibility: initial;
// }
// }
// }
// }
// .move-btn {
// font-size: 18px;
// width: 30px;
// height: 38px;
// line-height: 38px;
// border-left: 1px solid #ddd;
// border-right: 1px solid #ddd;
// text-align: center;
// cursor: pointer;
// }
// .move-btn:hover {
// background: #efefef;
// }
// .move-left, .move-right, .ivu-dropdown{
// position: absolute;
// top: 0;
// }
// .move-left {
// left: 0;
// }
// .move-right {
// right: 30px;
// }
// .ivu-dropdown {
// right: 0;
// }
// }
// .tags-transition-move {
// transition: transform .3s;
// }
// .tags-transition-enter,.tags-transition-leave-to{
// opacity: 0;
// }
.ibiz-page-tag {
position: relative;
box-sizing: border-box;
// width: calc(100% + 30px);
height: 38px;
padding: 0 60px 0 30px;
background: #f6f6f6;
.tags-body {
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
.tags-container {
position: absolute;
overflow: visible;
white-space: nowrap;
transition: left .3s ease;
.ivu-tag {
margin: 0;
height: 38px;
line-height: 38px;
border: 0;
border-radius: 0;
border-right: 1px solid #ddd;
font-size: 14px;
.text-icon {
height: 16px;
margin-bottom: -3px;
}
.ivu-icon-ios-close {
visibility: hidden;
}
.tag-text {
display: table-cell;
.ivu-tooltip {
display: block;
.ivu-tooltip-rel {
display: block;
max-width: 200px;
overflow: hidden;
text-overflow: ellipsis;
}
}
}
}
.ivu-tag.tag-is-active {
background: #fff;
}
.ivu-tag:hover,.ivu-tag.tag-is-active {
.ivu-icon-ios-close {
visibility: initial;
}
}
.el-tabs{
.el-tabs__nav{
padding:0px 10px;
border:none;
}
.el-tabs__item{
color:#ccc;
border:none;
}
.el-tabs__item:hover{
color:#409eff;
}
.is-active{
color:#409eff;
border-bottom:2px solid #409eff !important;
}
.el-tabs__nav-scroll{
background-color: white;
}
.el-tabs__header{
box-shadow: 0 1px 2px 0 rgba(0,0,0,.15);
margin:0 0 1 0;
}
}
.move-btn {
font-size: 18px;
width: 30px;
height: 38px;
line-height: 38px;
border-left: 1px solid #ddd;
border-right: 1px solid #ddd;
text-align: center;
cursor: pointer;
}
.move-btn:hover {
background: #efefef;
}
.move-left, .move-right, .ivu-dropdown{
position: absolute;
top: 0;
}
.move-left {
left: 0;
}
.move-right {
right: 30px;
}
.ivu-dropdown {
right: 0;
}
}
.tags-transition-move {
transition: transform .3s;
}
.tags-transition-enter,.tags-transition-leave-to{
opacity: 0;
}
\ No newline at end of file
......@@ -122,6 +122,14 @@ export class ChartSeries {
*/
public seriesLayoutBy:string = "column";
/**
* 序列代码表
*
* @type {*}
* @memberof ChartSeries
*/
public seriesCodeList:any;
/**
* Creates an instance of ChartSeries.
* ChartSeries 实例
......@@ -144,6 +152,7 @@ export class ChartSeries {
this.dataSetFields = opts.dataSetFields ? opts.dataSetFields:[];
this.seriesMap = opts.seriesMap ? opts.seriesMap:null;
this.seriesIndex = opts.seriesIndex? opts.seriesIndex:0;
this.seriesCodeList = opts.seriesCodeList?opts.seriesCodeList:null;
}
/**
......@@ -285,4 +294,14 @@ export class ChartSeries {
public setSeriesIndex(state: number): void {
this.seriesIndex = state;
}
/**
* 设置序列代码表
*
* @param {any} state
* @memberof ChartSeries
*/
public setSeriesCodeList(state: any): void {
this.seriesCodeList = state;
}
}
\ No newline at end of file
......@@ -3,12 +3,14 @@
}
.view-container {
.view-card {
.ivu-card-body {
.content-container{
height: calc(100% - 64px);
}
.app-modal{
.view-container {
.view-card {
.ivu-card-body {
.content-container{
height: calc(100% - 64px);
}
}
}
}
}
}
\ No newline at end of file
......@@ -4,5 +4,5 @@
.ibzdepartment-pickup-grid-view{
width:100%;
display: block;
}
\ No newline at end of file
......@@ -3,12 +3,14 @@
}
.view-container {
.view-card {
.ivu-card-body {
.content-container{
height: calc(100% - 64px);
}
.app-modal{
.view-container {
.view-card {
.ivu-card-body {
.content-container{
height: calc(100% - 64px);
}
}
}
}
}
}
\ No newline at end of file
......@@ -4,5 +4,5 @@
.ibzemployee-pickup-grid-view{
width:100%;
display: block;
}
\ No newline at end of file
......@@ -3,12 +3,14 @@
}
.view-container {
.view-card {
.ivu-card-body {
.content-container{
height: calc(100% - 64px);
}
.app-modal{
.view-container {
.view-card {
.ivu-card-body {
.content-container{
height: calc(100% - 64px);
}
}
}
}
}
}
\ No newline at end of file
......@@ -4,5 +4,5 @@
.ibzorganization-pickup-grid-view{
width:100%;
display: block;
}
\ No newline at end of file
......@@ -2,25 +2,13 @@
<div class="index_view ouindex-view">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ouindexview"></app-studioaction>
<layout :class="themeClasses" :style="themeStyle">
<header class="index_header">
<div class="header-left" >
<div class="page-logo">
<img src="../../../assets/img/logo.png" height="32" />
<span style="display: inline-block;margin-left: 10px;font-size: 22px;">{{$t(model.srfCaption)}}</span>
</div>
</div>
<div class="header-right" style="display: flex;align-items: center;justify-content: space-between;">
<app-header-menus />
<app-lang style='font-size: 15px;padding: 0 10px;'></app-lang>
<app-orgsector></app-orgsector>
<app-user></app-user>
<app-theme style="width:45px;display: flex;justify-content: center;"></app-theme>
</div>
</header>
<layout>
<sider :width="collapseChange ? 64 : 200" hide-trigger v-model="collapseChange">
<div class="sider-top">
<i class="ivu-icon ivu-icon-md-menu" @click="handleClick"></i>
<div class="page-logo">
<img v-show="collapseChange" src="../../../assets/img/logo.png" height="16" />
<span v-show="!collapseChange" style="display: block;text-align: center;font-weight: 300;font-size: 20px;">{{$t(model.srfCaption)}}</span>
</div>
</div>
<view_appmenu
:viewState="viewState"
......@@ -37,12 +25,30 @@
@closeview="closeView($event)">
</view_appmenu>
</sider>
<content class="index_content" :style="{'width':this.collapseChange ? 'calc(100vw - 64px)' : 'calc(100vw - 200px)' }">
<tab-page-exp></tab-page-exp>
<app-keep-alive :routerList="getRouterList">
<router-view :key="getRouterViewKey"></router-view>
</app-keep-alive>
</content>
<layout>
<header class="index_header">
<div class="header-left" >
<div class="page-logo">
<i v-show="!collapseChange" class="ivu-icon el-icon-s-fold" @click="handleClick"></i>
<i v-show="collapseChange" class="ivu-icon el-icon-s-unfold" @click="handleClick"></i>
<app-breadcrumb :defPSAppView="defPSAppView"></app-breadcrumb>
</div>
</div>
<div class="header-right" style="display: flex;align-items: center;justify-content: space-between;">
<app-header-menus />
<app-lang style='font-size: 15px;padding: 0 10px;'></app-lang>
<app-orgsector></app-orgsector>
<app-user></app-user>
<app-theme style="width:45px;display: flex;justify-content: center;"></app-theme>
</div>
</header>
<content class="index_content" :style="{'width':this.collapseChange ? 'calc(100vw - 64px)' : 'calc(100vw - 200px)' }">
<tab-page-exp></tab-page-exp>
<app-keep-alive :routerList="getRouterList">
<router-view :key="getRouterViewKey"></router-view>
</app-keep-alive>
</content>
</layout>
</layout>
</layout>
</div>
......
......@@ -5,12 +5,16 @@
.index_view{
margin-bottom: 1px;
width: 100%;
height: 100%;
padding: 0;
margin: 0;
overflow: hidden;
color:#303133;
background-color: #fff;
.index_header{
height:50px;
height:65px;
padding:0 20px;
display: flex;
align-items: center;
......@@ -20,6 +24,29 @@
align-items: center;
}
.header-left{
i{
color:#b4bcc8;
}
i:hover{
color:#1890ff;
}
> .app-breadcrumb{
> span .el-breadcrumb__item .el-breadcrumb__inner{
a{
color:#606d80 !important;
cursor: pointer !important;
}
a:last-child:hover{
color:#1890ff !important;
}
}
}
.ivu-icon{
font-size: 20px;
padding: 4px;
margin-top: -2px;
cursor: pointer;
}
display: flex;
align-items: center;
justify-content: space-between;
......@@ -35,7 +62,7 @@
}
}
.index_content{
background-color:#fff;
background-color:#F0F2F5;
height:calc(100vh - 50px);
overflow-x: hidden;
overflow-y: hidden;
......@@ -46,16 +73,21 @@
}
}
.ivu-layout .ivu-layout-sider .ivu-layout-sider-children .sider-top{
line-height: 58px;
text-align: right;
padding-right: 18px;
}
.ivu-layout .ivu-layout-sider .ivu-layout-sider-children .sider-top .ivu-icon{
font-size: 20px;
padding: 4px;
margin-top: -2px;
line-height: 58px;
text-align: center;
font-size: 20px;
cursor: pointer;
}
.sider-top{
margin-bottom: 1px;
height:65px;
box-shadow: 0 1px 2px 0 rgba(0,0,0,.15);
> .page-logo{
text-align: center;
}
}
}
/*** BRGIN:滚动条样式 ***/
......
......@@ -40,6 +40,14 @@ export default class CodeListService {
*/
public static codelistCache:Map<string,any> = new Map();
/**
* 动态代码表缓存(已完成)
*
* @type {Map<string,any>}
* @memberof CodeListService
*/
public static codelistCached:Map<string,any> = new Map();
/**
* 获取动态代码表
......@@ -51,31 +59,22 @@ export default class CodeListService {
*/
public getItems(tag: string,context:any = {}, data?: any, isloading?: boolean,): Promise<any[]> {
let _this: any = this;
if(context && context.srfsessionid){
delete context.srfsessionid;
}
let isEnableCache:boolean = _this[tag].isEnableCache;
let cacheTimeout:any = _this[tag].cacheTimeout;
return new Promise((resolve:any,reject:any) =>{
// 如有查询参数传递过来,需直接加载,不能使用缓存
if(data && Object.keys(data).length >0){
if (_this[tag]) {
_this[tag].getItems(context,JSON.parse(JSON.stringify(data)),isloading).then((result:any) =>{
resolve(result);
}).catch((error:any) =>{
Promise.reject([]);
})
}else{
return Promise.reject([]);
}
}else{
// 启用缓存
if(isEnableCache){
// 加载完成,从store获取
if(this.$store && _this.$store.getters){
let items:any = _this.$store.getters.getCodeListItems(tag);
// 加载完成,从本地缓存获取
if(CodeListService.codelistCached.get(`${JSON.stringify(context)}-${JSON.stringify(data)}-${tag}`)){
let items:any = CodeListService.codelistCached.get(`${JSON.stringify(context)}-${JSON.stringify(data)}-${tag}`);
if(items.length >0){
if(cacheTimeout !== -1){
if(new Date().getTime() > _this[tag].expirationTime){
_this[tag].getItems(context,data,isloading).then((result:any) =>{
_this.$store.commit('updateCodeList',{srfkey:tag,items:result});
CodeListService.codelistCached.set(`${JSON.stringify(context)}-${JSON.stringify(data)}-${tag}`,{items:result});
_this[tag].expirationTime = new Date().getTime() + cacheTimeout;
resolve(result);
}).catch((error:any) =>{
......@@ -90,10 +89,11 @@ export default class CodeListService {
}
}
if (_this[tag]) {
const callback:Function = (tag:string,promise:Promise<any>) =>{
const callback:Function = (context:any ={},data:any ={},tag:string,promise:Promise<any>) =>{
promise.then((result:any) =>{
console.log()
if(result.length > 0){
_this.$store.commit('updateCodeList',{srfkey:tag,items:result});
CodeListService.codelistCached.set(`${JSON.stringify(context)}-${JSON.stringify(data)}-${tag}`,{items:result});
return resolve(result);
}else{
return resolve([]);
......@@ -103,15 +103,15 @@ export default class CodeListService {
})
}
// 加载中,UI又需要数据,解决连续加载同一代码表问题
if(CodeListService.codelistCache.get(tag)){
callback(tag,CodeListService.codelistCache.get(tag));
if(CodeListService.codelistCache.get(`${JSON.stringify(context)}-${JSON.stringify(data)}-${tag}`)){
callback(context,data,tag,CodeListService.codelistCache.get(`${JSON.stringify(context)}-${JSON.stringify(data)}-${tag}`));
}else{
let result:Promise<any> = _this[tag].getItems(context,data,isloading);
CodeListService.codelistCache.set(tag,result);
CodeListService.codelistCache.set(`${JSON.stringify(context)}-${JSON.stringify(data)}-${tag}`,result);
if(cacheTimeout !== -1){
_this[tag].expirationTime = new Date().getTime() + cacheTimeout;
}
callback(tag,result);
callback(context,data,tag,result);
}
}
}else{
......@@ -125,7 +125,6 @@ export default class CodeListService {
return Promise.reject([]);
}
}
}
})
}
}
\ No newline at end of file
......@@ -63,10 +63,11 @@
}
.view-container {
height: calc(100% - 38px);
// height: 100%;
// display: flex;
padding: 0 15px;
height: calc(100% - 65px);
padding: 0 12px;
margin: 0px 12px;
background: white;
box-shadow: 0 2px 4px 0 rgba(0,0,0,.12), 0 0 6px 0 rgba(0,0,0,.04);
// flex-direction: column;
> .view-card {
height: 100%;
......@@ -110,11 +111,16 @@
.viewcontainer2 {
height: 100%;
width: 100%;
padding: 0px 12px !important;
margin: 0px !important;
-webkit-box-shadow: none !important;
}
.viewcontainer3 {
height: 100%;
width: 100%;
padding: 0px;
padding: 0px 12px !important;
margin: 0px !important;
-webkit-box-shadow: none !important;
}
......@@ -207,7 +213,7 @@
}
}
.view-container.degridview, .view-container.degridview9, .view-container.dewfgridview, .view-container.delistview, .view-container.delistview9, .view-container.dedataview, .view-container.dedataview9, .view-container.decalendarview, .view-container.decalendarview9{
.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%;
......
/*** BRGIN:默认蓝色主题 ***/
.app_theme_blue {
> header {
background-color: #2d5f8b;
color: #6ba1d1;
> .ivu-layout-has-sider > .ivu-layout > header{
.app-theme-icon {
color: #6ba1d1;
}
.page-logo {
color: #fff;
}
.header-right {
> div:hover {
background: #3774aa;
}
}
.el-menu.el-menu--horizontal {
/* .el-menu.el-menu--horizontal {
> .el-menu-item, > .el-submenu > .el-submenu__title {
background: #2d5f8b;
color: #6ba1d1;
......@@ -36,40 +26,41 @@
color: #f1f1f1;
}
}
}
} */
}
> .ivu-layout {
> .ivu-layout-sider {
background-color: #4276a4;
.sider-top {
.ivu-icon {
background: #2d5f8b;
color: #6ba1d1;
}
}
.app-menu {
> .el-menu-item.is-active, > .el-submenu.is-active > .el-submenu__title {
border-left: 4px solid #d64635;
}
}
> .ivu-layout-sider {
background-color: #4276a4;
.sider-top {
color: hsla(0,0%,100%,.8);
background: #2d5f8b;
}
}
}
> .el-menu , > .ivu-layout > .ivu-layout-sider .app-app-menu > .app-menu {
background: #4276a4;
.el-menu-item:hover, .el-menu-item.is-active {
.el-menu-item:hover, .el-menu-item:hover {
background: #3c6c95 !important;
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
.el-submenu_title:hover{
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
.el-menu-item.is-active{
border-left: 4px solid #d64635;
background: #3c6c95 !important;
}
.el-submenu.is-opened, .el-submenu:hover, .el-submenu.is-active {
> .el-submenu__title {
background: #3c6c95 !important;
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
background: #4276a4;
}
}
.el-submenu__title, .el-menu-item {
......@@ -78,9 +69,16 @@
color: #c9dff5;
}
}
.el-submenu__title:hover{
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
.el-menu-item {
border-top: 1px solid #4276a4;
background: #4276a4;
border-left: 4px solid transparent;
}
.el-submenu {
border-top: 1px solid #4276a4;
......@@ -97,5 +95,11 @@
.ivu-menu-submenu-title{
color: #f5f5f5;
}
.sider-top{
color:#fff;
}
div.ivu-divider{
background-color: #c9dff5;
}
}
/*** END:默认蓝色主题 ***/
\ No newline at end of file
/*** BRGIN:默认Dark Blue主题 ***/
.app_theme_darkblue {
> header {
background-color: #2b3643;
color: #606d80;
.app-theme-icon {
color: #606d80;
}
.page-logo {
color: #fff;
}
.header-right {
> div:hover {
background: #3b4a5c;
}
}
.el-menu.el-menu--horizontal {
> .el-menu-item, > .el-submenu > .el-submenu__title {
background: #2b3643;
color: #606d80;
i {
color: #606d80;
}
}
> .el-menu-item.is-active, > .el-submenu.is-active > .el-submenu__title {
background-color: #364150;
color: #f1f1f1;
i {
color: #f1f1f1;
}
}
> .el-menu-item:hover, > .el-submenu:hover > .el-submenu__title {
background-color: #3e4b5c;
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
}
> .ivu-layout-has-sider > .ivu-layout > header{
.app-theme-icon {
color: #606d80;
}/*
.el-menu.el-menu--horizontal {
> .el-menu-item, > .el-submenu > .el-submenu__title {
background: #20222A;
color: #606d80;
i {
color: #606d80;
}
}
> .el-menu-item.is-active, > .el-submenu.is-active > .el-submenu__title {
background-color: #20222A;
color: #f1f1f1;
i {
color: #f1f1f1;
}
}
> .el-menu-item:hover, > .el-submenu:hover > .el-submenu__title {
background-color: #3e4b5c;
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
} */
}
> .ivu-layout {
> .ivu-layout-sider {
background-color: #20222A;
.sider-top {
color: hsla(0,0%,100%,.8);
background-color: #20222A;
}
}
}
> .el-menu , > .ivu-layout > .ivu-layout-sider .app-app-menu > .app-menu {
background: #20222A;
.el-menu-item:hover, .el-menu-item:hover {
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
.el-submenu__title:hover{
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
.el-menu-item.is-active{
border-left: 4px solid #409EFF;
background: #060708 !important;
color:white;
}
.el-submenu.is-opened, .el-submenu:hover, .el-submenu.is-active {
> .el-submenu__title {
background: #20222A;
}
}
.el-submenu__title, .el-menu-item {
color: #b4bcc8;
i {
color: #b4bcc8;
}
}
.el-menu-item {
border-top: 1px solid #20222A;
background: #20222A;
border-left: 4px solid transparent;
}
.el-submenu {
border-top: 1px solid #20222A;
background: #20222A;
> .el-menu {
border-top: 1px solid #20222A;
background: #20222A;
}
}
}
.ivu-menu-light{
background: #20222A;
}
.ivu-menu-submenu-title{
color: #fff;
}
.sider-top{
color:#fff;
}
div.ivu-divider{
background-color: #b4bcc8;
}
}
> .ivu-layout {
> .ivu-layout-sider {
background-color: #364150;
.sider-top {
.ivu-icon {
background: #2b3643;
color: #606d80;
}
}
.app-menu {
> .el-menu-item.is-active, > .el-submenu.is-active > .el-submenu__title {
border-left: 4px solid #1caf9a;
}
}
}
}
> .el-menu , > .ivu-layout > .ivu-layout-sider .app-app-menu > .app-menu {
background: #364150;
.el-menu-item:hover, .el-menu-item.is-active {
background: #3e4b5c !important;
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
.el-submenu.is-opened, .el-submenu:hover, .el-submenu.is-active {
> .el-submenu__title {
background: #3e4b5c !important;
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
}
.el-submenu__title, .el-menu-item {
color: #b4bcc8;
i {
color: #b4bcc8;
}
}
.el-menu-item {
border-top: 1px solid #364150;
background: #364150;
}
.el-submenu {
border-top: 1px solid #364150;
background: #364150;
> .el-menu {
border-top: 1px solid #364150;
background: #364150;
}
}
}
.ivu-menu-light{
background: #364150;
}
.ivu-menu-submenu-title{
color: #fff;
}
}
/*** END:默认Dark Blue主题 ***/
\ No newline at end of file
/*** END:默认Dark Blue主题 ***/
\ No newline at end of file
/*** BRGIN:默认亮色主题 ***/
.app-default-theme {
> header {
background-color: #e8eaec;
color: #aaaaaa;
.app-theme-icon {
color: #aaaaaa;
}
.page-logo {
color: #535c70;
}
.header-right {
> div:hover {
background: #d4d4d4;
}
}
.el-menu.el-menu--horizontal {
> .el-menu-item, > .el-submenu > .el-submenu__title {
background: #e1e1e1;
color: #aaaaaa;
i {
color: #aaaaaa;
}
}
> .el-menu-item.is-active, > .el-submenu.is-active > .el-submenu__title {
background-color: #f6f6f6;
color: #666666;
i {
color: #666666;
}
}
> .el-menu-item:hover, > .el-submenu:hover > .el-submenu__title {
background-color: #e9e9e9;
color: #666666 !important;
i {
color: #666666;
}
}
}
}
> .ivu-layout {
> .ivu-layout-sider {
background-color: #f6f6f6;
.sider-top {
.ivu-icon {
background: #f6f6f6;
color: #aaaaaa;
}
}
.app-menu {
> .el-menu-item.is-active, > .el-submenu.is-active > .el-submenu__title {
border-left: 4px solid #1890ff;
}
}
}
}
> .el-menu , > .ivu-layout > .ivu-layout-sider .app-app-menu > .app-menu {
background: #f6f6f6;
.el-menu-item:hover, .el-menu-item.is-active {
> .ivu-layout-has-sider > .ivu-layout > header {
.app-theme-icon {
color: #aaaaaa;
}
/* .el-menu.el-menu--horizontal {
> .el-menu-item, > .el-submenu > .el-submenu__title {
background: #e1e1e1;
color: #aaaaaa;
i {
color: #aaaaaa;
}
}
> .el-menu-item.is-active, > .el-submenu.is-active > .el-submenu__title {
background-color: #f6f6f6;
color: #666666;
i {
color: #666666;
}
}
> .el-menu-item:hover, > .el-submenu:hover > .el-submenu__title {
background-color: #e9e9e9;
color: #666666 !important;
i {
color: #666666;
}
}
} */
}
> .ivu-layout {
> .ivu-layout-sider {
background-color: #f6f6f6;
.sider-top {
background-color: #e8eaec;
.ivu-icon {
color: #aaaaaa;
}
}
}
}
> .el-menu , > .ivu-layout > .ivu-layout-sider .app-app-menu > .app-menu {
background: #f6f6f6;
.el-menu-item:hover, .el-menu-item:hover,.el-menu-item.is-active {
background: #fff !important;
color: #1890ff !important;
i {
color: #1890ff;
}
}
.el-submenu__title:hover{
color: #1890ff !important;
i {
color: #1890ff;
}
}
.el-menu-item.is-active{
border-left: 4px solid #1890ff;
background: #fff !important;
color: #1890ff !important;
i {
color: #1890ff;
}
}
.el-submenu.is-opened, .el-submenu:hover, .el-submenu.is-active {
> .el-submenu__title {
background: #fff !important;
color: #1890ff !important;
i {
color: #1890ff;
}
}
}
.el-submenu__title, .el-menu-item {
color: #666666;
i {
color: #666666;
}
}
.el-menu-item {
border-top: 1px solid #f6f6f6;
background: #f6f6f6;
}
.el-submenu {
border-top: 1px solid #f6f6f6;
background: #f6f6f6;
> .el-menu {
border-top: 1px solid #f6f6f6;
background: #f6f6f6;
}
}
}
.ivu-menu-light{
background: #f6f6f6;
}
.ivu-menu-submenu-title{
color: #000;
}
.el-submenu.is-opened, .el-submenu:hover{
> .el-submenu__title {
background: #f6f6f6;
}
}
.el-submenu__title, .el-menu-item {
color: #666666;
i {
color: #666666;
}
}
.el-menu-item {
border-top: 1px solid #f6f6f6;
background: #f6f6f6;
border-left: 4px solid transparent;
}
.el-submenu {
border-top: 1px solid #f6f6f6;
background: #f6f6f6;
> .el-menu {
border-top: 1px solid #f6f6f6;
background: #f6f6f6;
}
}
}
.ivu-menu-light{
background: #f6f6f6;
}
.ivu-menu-submenu-title{
color: #000;
}
.sider-top{
color:#000;
}
div.ivu-divider{
background-color: #b3b3b3;
}
}
}
/*** END:默认亮色主题 ***/
\ No newline at end of file
/*** END:默认亮色主题 ***/
\ No newline at end of file
......@@ -11,7 +11,7 @@
padding: 0;
height: calc(100% - 52px);
.view-container{
padding: 15px;
padding: 12px;
}
}
}
......
......@@ -117,16 +117,18 @@ export declare interface Util {
* @memberof Util
*/
srfFilePath2(name: string): string;
/**
* 附加参数格式化
*
* @static
* @param {any} arg 表单数据
* @param {any} parent 外层context或viewparams
* @param {any} params 附加参数
* @returns {any}
* @memberof Util
*/
formatData(arg: any, params: any): any
formatData(arg: any,parent:any, params: any): any ;
/**
* 日期格式化
......
......@@ -293,11 +293,12 @@ export class Util {
*
* @static
* @param {any} arg 表单数据
* @param {any} parent 外层context或viewparams
* @param {any} params 附加参数
* @returns {any}
* @memberof Util
*/
public static formatData(arg: any, params: any): any {
public static formatData(arg: any,parent:any, params: any): any {
let _data: any = {};
Object.keys(params).forEach((name: string) => {
if (!name) {
......@@ -307,7 +308,13 @@ export class Util {
if (value && value.startsWith('%') && value.endsWith('%')) {
const key = value.substring(1, value.length - 1);
if (arg && arg.hasOwnProperty(key)) {
value = (arg[key] !== null && arg[key] !== undefined) ? arg[key] : null;
if(arg[key] !== null && arg[key] !== undefined){
value = arg[key];
}else if(parent[key] !== null && parent[key] !== undefined){
value = parent[key];
}else{
value = null;
}
} else {
value = null;
}
......
......@@ -21,28 +21,32 @@
}
}
.el-submenu__title i, .el-menu-item i {
font-size: 16px;
width: 16px;
font-size: 12px;
width: 18px;
}
.el-submenu__title .app-menu-icon,.el-submenu__title .app-menu-icon{
width:20px;
font-size: 14px;
}
.el-submenu__title .text {
font-size: 16px;
}
.el-menu-item, .el-submenu__title {
height: 36px;
font-size: 16px;
line-height: 32px;
height: 50px;
font-size: 14px;
line-height: 50px;
}
.el-menu-item, .el-submenu, .el-menu {
border-top: 1px solid #fff;
}
> .el-menu-item, > .el-submenu > .el-submenu__title {
height: 40px;
line-height: 36px;
border-left: 4px solid transparent;
height: 56px;
line-height: 56px;
padding-left: 16px !important;
}
.app-menu-icon {
margin-right: 4px;
margin: 4px;
text-align: center;
}
> .el-submenu {
> .el-menu {
......@@ -70,8 +74,8 @@
}
}
.ivu-divider-horizontal {
width: calc(100% - 32px);
min-width: calc(100% - 32px);
width: 100%;
min-width: 100%;
margin: 4px auto;
margin-bottom: 1px;
}
......@@ -99,8 +103,8 @@
}
}
.ivu-divider-horizontal {
width: calc(100% - 12px);
min-width: calc(100% - 12px);
width: 100%;
min-width: 100%;
margin: 4px auto;
margin-bottom: 1px;
}
......
.tree-right-menu {
.ivu-divider-horizontal {
width: calc(100% - 32px);
min-width: calc(100% - 32px);
width: 100%;
min-width: 100%;
margin: 0 auto;
}
.ivu-dropdown-item {
......
......@@ -74,14 +74,22 @@
<i-col v-show="detailsModel.createdate.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='createdate' :itemRules="this.rules.createdate" class='' :caption="$t('entities.ibzdepartment.main_form.details.createdate')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.createdate.error" :isEmptyCaption="false" labelPos="LEFT">
<app-span name='createdate'
:value="data.createdate" style=""></app-span>
:value="data.createdate" :data="data"
:context="context"
:viewparams="viewparams"
:itemParam="{}"
style=""></app-span>
</app-form-item>
</i-col>
<i-col v-show="detailsModel.updatedate.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='updatedate' :itemRules="this.rules.updatedate" class='' :caption="$t('entities.ibzdepartment.main_form.details.updatedate')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.updatedate.error" :isEmptyCaption="false" labelPos="LEFT">
<app-span name='updatedate'
:value="data.updatedate" style=""></app-span>
:value="data.updatedate" :data="data"
:context="context"
:viewparams="viewparams"
:itemParam="{}"
style=""></app-span>
</app-form-item>
</i-col>
......
......@@ -7,7 +7,8 @@
> .ivu-split-pane {
> div {
height: 100%;
overflow: auto;
overflow-y: auto;
overflow-x: hidden;
display: flex;
flex-direction: column;
.tree-exp-bar-header {
......
......@@ -58,7 +58,17 @@
</i-col>
<i-col v-show="detailsModel.sex.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='sex' :itemRules="this.rules.sex" class='' :caption="$t('entities.ibzemployee.main_form.details.sex')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.sex.error" :isEmptyCaption="false" labelPos="LEFT">
<dropdown-list v-model="data.sex" :data="data" :itemParam="{}" :disabled="detailsModel.sex.disabled" tag='CLIBZSex' codelistType='STATIC' placeholder='请选择...' style=""></dropdown-list>
<dropdown-list
v-model="data.sex"
:data="data"
:context="context"
:viewparams="viewparams"
:itemParam="{}"
:disabled="detailsModel.sex.disabled"
tag='CLIBZSex'
codelistType='STATIC'
placeholder='请选择...' style="">
</dropdown-list>
</app-form-item>
</i-col>
......
......@@ -42,14 +42,22 @@
<i-col v-show="detailsModel.createdate.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='createdate' :itemRules="this.rules.createdate" class='' :caption="$t('entities.ibzorganization.main_form.details.createdate')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.createdate.error" :isEmptyCaption="false" labelPos="LEFT">
<app-span name='createdate'
:value="data.createdate" style=""></app-span>
:value="data.createdate" :data="data"
:context="context"
:viewparams="viewparams"
:itemParam="{}"
style=""></app-span>
</app-form-item>
</i-col>
<i-col v-show="detailsModel.updatedate.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='updatedate' :itemRules="this.rules.updatedate" class='' :caption="$t('entities.ibzorganization.main_form.details.updatedate')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.updatedate.error" :isEmptyCaption="false" labelPos="LEFT">
<app-span name='updatedate'
:value="data.updatedate" style=""></app-span>
:value="data.updatedate" :data="data"
:context="context"
:viewparams="viewparams"
:itemParam="{}"
style=""></app-span>
</app-form-item>
</i-col>
......
.tree-right-menu {
.ivu-divider-horizontal {
width: calc(100% - 32px);
min-width: calc(100% - 32px);
width: 100%;
min-width: 100%;
margin: 0 auto;
}
.ivu-dropdown-item {
......
......@@ -7,7 +7,8 @@
> .ivu-split-pane {
> div {
height: 100%;
overflow: auto;
overflow-y: auto;
overflow-x: hidden;
display: flex;
flex-direction: column;
.tree-exp-bar-header {
......
......@@ -248,6 +248,7 @@ public class IBZDepartmentServiceImpl extends ServiceImpl<IBZDepartmentMapper, I
}
}
@Override
public List<JSONObject> select(String sql, Map param){
return this.baseMapper.selectBySQL(sql,param);
......
......@@ -214,6 +214,7 @@ public class IBZDeptMemberServiceImpl extends ServiceImpl<IBZDeptMemberMapper, I
}
}
@Override
public List<JSONObject> select(String sql, Map param){
return this.baseMapper.selectBySQL(sql,param);
......
......@@ -259,6 +259,7 @@ public class IBZEmployeeServiceImpl extends ServiceImpl<IBZEmployeeMapper, IBZEm
}
}
@Override
public List<JSONObject> select(String sql, Map param){
return this.baseMapper.selectBySQL(sql,param);
......
......@@ -200,6 +200,7 @@ public class IBZOrganizationServiceImpl extends ServiceImpl<IBZOrganizationMappe
}
}
@Override
public List<JSONObject> select(String sql, Map param){
return this.baseMapper.selectBySQL(sql,param);
......
......@@ -158,6 +158,7 @@ public class IBZPostServiceImpl extends ServiceImpl<IBZPostMapper, IBZPost> impl
@Override
public List<JSONObject> select(String sql, Map param){
return this.baseMapper.selectBySQL(sql,param);
......
......@@ -214,6 +214,7 @@ public class IBZTeamMemberServiceImpl extends ServiceImpl<IBZTeamMemberMapper, I
}
}
@Override
public List<JSONObject> select(String sql, Map param){
return this.baseMapper.selectBySQL(sql,param);
......
......@@ -158,6 +158,7 @@ public class IBZTeamServiceImpl extends ServiceImpl<IBZTeamMapper, IBZTeam> impl
@Override
public List<JSONObject> select(String sql, Map param){
return this.baseMapper.selectBySQL(sql,param);
......
......@@ -6,6 +6,9 @@
<!--该方法用于重写mybatis中selectById方法,以实现查询逻辑属性-->
<select id="selectById" resultMap="IBZDepartmentResultMap" databaseId="mysql">
<![CDATA[select t1.* from (SELECT t1.`BCODE`, t1.`CREATEDATE`, t1.`DEPTCODE`, t1.`DEPTID`, t1.`DEPTLEVEL`, t1.`DEPTNAME`, t1.`ENABLE`, t1.`LEADERID`, t1.`LEADERNAME`, t1.`ORGID`, t11.`ORGNAME`, t1.`PDEPTID`, t21.`DEPTNAME` AS `PDEPTNAME`, t1.`SHORTNAME`, t1.`SHOWORDER`, t1.`UPDATEDATE` FROM `IBZDEPT` t1 LEFT JOIN IBZORG t11 ON t1.ORGID = t11.ORGID LEFT JOIN IBZDEPT t21 ON t1.PDEPTID = t21.DEPTID ) t1 where deptid=#{id}]]>
</select>
<select id="selectById" resultMap="IBZDepartmentResultMap" databaseId="oracle">
<![CDATA[select t1.* from (SELECT t1.BCODE, t1.CREATEDATE, t1.DEPTCODE, t1.DEPTID, t1.DEPTLEVEL, t1.DEPTNAME, t1.ENABLE, t1.LEADERID, t1.LEADERNAME, t1.ORGID, t11.ORGNAME, t1.PDEPTID, t21.DEPTNAME AS PDEPTNAME, t1.SHORTNAME, t1.SHOWORDER, t1.UPDATEDATE FROM IBZDEPT t1 LEFT JOIN IBZORG t11 ON t1.ORGID = t11.ORGID LEFT JOIN IBZDEPT t21 ON t1.PDEPTID = t21.DEPTID ) t1 where deptid=#{id}]]>
</select>
<select id="selectById" resultMap="IBZDepartmentResultMap" databaseId="postgresql">
<![CDATA[select t1.* from (SELECT t1.BCODE, t1.CREATEDATE, t1.DEPTCODE, t1.DEPTID, t1.DEPTLEVEL, t1.DEPTNAME, t1.ENABLE, t1.ORGID, t1.PDEPTID, t1.SHORTNAME, t1.SHOWORDER, t1.UPDATEDATE FROM IBZDEPT t1 ) t1 where deptid=#{id}]]>
......@@ -52,30 +55,38 @@
<!--数据查询[Default]-->
<sql id="Default" databaseId="mysql">
<![CDATA[ SELECT t1.`BCODE`, t1.`CREATEDATE`, t1.`DEPTCODE`, t1.`DEPTID`, t1.`DEPTLEVEL`, t1.`DEPTNAME`, t1.`ENABLE`, t1.`LEADERID`, t1.`LEADERNAME`, t1.`ORGID`, t11.`ORGNAME`, t1.`PDEPTID`, t21.`DEPTNAME` AS `PDEPTNAME`, t1.`SHORTNAME`, t1.`SHOWORDER`, t1.`UPDATEDATE` FROM `IBZDEPT` t1 LEFT JOIN IBZORG t11 ON t1.ORGID = t11.ORGID LEFT JOIN IBZDEPT t21 ON t1.PDEPTID = t21.DEPTID
WHERE t1.ENABLE = 1
WHERE t1.enable = 1
]]>
</sql>
<!--数据查询[Default]-->
<sql id="Default" databaseId="oracle">
<![CDATA[ SELECT t1.BCODE, t1.CREATEDATE, t1.DEPTCODE, t1.DEPTID, t1.DEPTLEVEL, t1.DEPTNAME, t1.ENABLE, t1.LEADERID, t1.LEADERNAME, t1.ORGID, t11.ORGNAME, t1.PDEPTID, t21.DEPTNAME AS PDEPTNAME, t1.SHORTNAME, t1.SHOWORDER, t1.UPDATEDATE FROM IBZDEPT t1 LEFT JOIN IBZORG t11 ON t1.ORGID = t11.ORGID LEFT JOIN IBZDEPT t21 ON t1.PDEPTID = t21.DEPTID
WHERE t1.enable = 1
]]>
</sql>
<!--数据查询[Default]-->
<sql id="Default" databaseId="postgresql">
<![CDATA[ SELECT t1.BCODE, t1.CREATEDATE, t1.DEPTCODE, t1.DEPTID, t1.DEPTLEVEL, t1.DEPTNAME, t1.ENABLE, t1.ORGID, t1.PDEPTID, t1.SHORTNAME, t1.SHOWORDER, t1.UPDATEDATE FROM IBZDEPT t1
WHERE t1.ENABLE = 1
WHERE t1.enable = 1
]]>
</sql>
<!--数据查询[View]-->
<sql id="View" databaseId="mysql">
<![CDATA[ SELECT t1.`BCODE`, t1.`CREATEDATE`, t1.`DEPTCODE`, t1.`DEPTID`, t1.`DEPTLEVEL`, t1.`DEPTNAME`, t1.`ENABLE`, t1.`LEADERID`, t1.`LEADERNAME`, t1.`ORGID`, t11.`ORGNAME`, t1.`PDEPTID`, t21.`DEPTNAME` AS `PDEPTNAME`, t1.`SHORTNAME`, t1.`SHOWORDER`, t1.`UPDATEDATE` FROM `IBZDEPT` t1 LEFT JOIN IBZORG t11 ON t1.ORGID = t11.ORGID LEFT JOIN IBZDEPT t21 ON t1.PDEPTID = t21.DEPTID
WHERE t1.ENABLE = 1
WHERE t1.enable = 1
]]>
</sql>
<!--数据查询[View]-->
<sql id="View" databaseId="oracle">
<![CDATA[ SELECT t1.BCODE, t1.CREATEDATE, t1.DEPTCODE, t1.DEPTID, t1.DEPTLEVEL, t1.DEPTNAME, t1.ENABLE, t1.LEADERID, t1.LEADERNAME, t1.ORGID, t11.ORGNAME, t1.PDEPTID, t21.DEPTNAME AS PDEPTNAME, t1.SHORTNAME, t1.SHOWORDER, t1.UPDATEDATE FROM IBZDEPT t1 LEFT JOIN IBZORG t11 ON t1.ORGID = t11.ORGID LEFT JOIN IBZDEPT t21 ON t1.PDEPTID = t21.DEPTID
WHERE t1.enable = 1
]]>
</sql>
<!--数据查询[View]-->
<sql id="View" databaseId="postgresql">
<![CDATA[ SELECT t1.BCODE, t1.CREATEDATE, t1.DEPTCODE, t1.DEPTID, t1.DEPTLEVEL, t1.DEPTNAME, t1.ENABLE, t1.ORGID, t1.PDEPTID, t1.SHORTNAME, t1.SHOWORDER, t1.UPDATEDATE FROM IBZDEPT t1
WHERE t1.ENABLE = 1
WHERE t1.enable = 1
]]>
</sql>
</mapper>
......@@ -7,6 +7,9 @@
<select id="selectById" resultMap="IBZDeptMemberResultMap" databaseId="mysql">
<![CDATA[select t1.* from (SELECT t1.`DEPTID`, t11.`DEPTNAME`, t1.`MEMBERID`, t21.`PERSONNAME`, t1.`USERID` FROM `IBZDEPTMEMBER` t1 LEFT JOIN IBZDEPT t11 ON t1.DEPTID = t11.DEPTID LEFT JOIN IBZEMP t21 ON t1.USERID = t21.USERID ) t1 where memberid=#{id}]]>
</select>
<select id="selectById" resultMap="IBZDeptMemberResultMap" databaseId="oracle">
<![CDATA[select t1.* from (SELECT t1.DEPTID, t11.DEPTNAME, t1.MEMBERID, t21.PERSONNAME, t1.USERID FROM IBZDEPTMEMBER t1 LEFT JOIN IBZDEPT t11 ON t1.DEPTID = t11.DEPTID LEFT JOIN IBZEMP t21 ON t1.USERID = t21.USERID ) t1 where memberid=#{id}]]>
</select>
<!--通过mybatis将查询结果注入到entity中,通过配置autoMapping="true"由mybatis自动处理映射关系 -->
<resultMap id="IBZDeptMemberResultMap" type="cn.ibizlab.core.ou.domain.IBZDeptMember" autoMapping="true">
......@@ -50,12 +53,20 @@
<![CDATA[ SELECT t1.`DEPTID`, t11.`DEPTNAME`, t1.`MEMBERID`, t21.`PERSONNAME`, t1.`USERID` FROM `IBZDEPTMEMBER` t1 LEFT JOIN IBZDEPT t11 ON t1.DEPTID = t11.DEPTID LEFT JOIN IBZEMP t21 ON t1.USERID = t21.USERID
]]>
</sql>
<!--数据查询[Default]-->
<sql id="Default" databaseId="oracle">
<![CDATA[ SELECT t1.DEPTID, t11.DEPTNAME, t1.MEMBERID, t21.PERSONNAME, t1.USERID FROM IBZDEPTMEMBER t1 LEFT JOIN IBZDEPT t11 ON t1.DEPTID = t11.DEPTID LEFT JOIN IBZEMP t21 ON t1.USERID = t21.USERID
]]>
</sql>
<!--数据查询[View]-->
<sql id="View" databaseId="mysql">
<![CDATA[ SELECT t1.`DEPTID`, t11.`DEPTNAME`, t1.`MEMBERID`, t21.`PERSONNAME`, t1.`USERID` FROM `IBZDEPTMEMBER` t1 LEFT JOIN IBZDEPT t11 ON t1.DEPTID = t11.DEPTID LEFT JOIN IBZEMP t21 ON t1.USERID = t21.USERID
]]>
</sql>
<!--数据查询[View]-->
<sql id="View" databaseId="oracle">
<![CDATA[ SELECT t1.DEPTID, t11.DEPTNAME, t1.MEMBERID, t21.PERSONNAME, t1.USERID FROM IBZDEPTMEMBER t1 LEFT JOIN IBZDEPT t11 ON t1.DEPTID = t11.DEPTID LEFT JOIN IBZEMP t21 ON t1.USERID = t21.USERID
]]>
</sql>
</mapper>
......@@ -6,6 +6,9 @@
<!--该方法用于重写mybatis中selectById方法,以实现查询逻辑属性-->
<select id="selectById" resultMap="IBZEmployeeResultMap" databaseId="mysql">
<![CDATA[select t1.* from (SELECT t1.`ADDR`, t1.`AVATAR`, t1.`BCODE`, t1.`BIRTHDAY`, t1.`CERTCODE`, t1.`CREATEDATE`, t1.`DOMAINS`, t1.`EMAIL`, t1.`ENABLE`, t1.`FONTSIZE`, t1.`IPADDR`, t1.`LANG`, t1.`LOGINNAME`, t1.`MDEPTCODE`, t1.`MDEPTID`, t1.`MDEPTNAME`, t1.`MEMO`, t1.`NICKNAME`, t1.`ORGCODE`, t1.`ORGID`, t1.`ORGNAME`, t1.`PASSWORD`, t1.`PERSONNAME`, t1.`PHONE`, t1.`POSTCODE`, t1.`POSTID`, t1.`POSTNAME`, t1.`RESERVER`, t1.`SEX`, t1.`SHOWORDER`, t1.`THEME`, t1.`UPDATEDATE`, t1.`USERCODE`, t1.`USERICON`, t1.`USERID`, t1.`USERNAME` FROM `IBZEMP` t1 ) t1 where userid=#{id}]]>
</select>
<select id="selectById" resultMap="IBZEmployeeResultMap" databaseId="oracle">
<![CDATA[select t1.* from (SELECT t1.ADDR, t1.AVATAR, t1.BCODE, t1.BIRTHDAY, t1.CERTCODE, t1.CREATEDATE, t1.DOMAINS, t1.EMAIL, t1.ENABLE, t1.FONTSIZE, t1.IPADDR, t1.LANG, t1.LOGINNAME, t1.MDEPTCODE, t1.MDEPTID, t1.MDEPTNAME, t1.MEMO, t1.NICKNAME, t1.ORGCODE, t1.ORGID, t1.ORGNAME, t1.PASSWORD, t1.PERSONNAME, t1.PHONE, t1.POSTCODE, t1.POSTID, t1.POSTNAME, t1.RESERVER, t1.SEX, t1.SHOWORDER, t1.THEME, t1.UPDATEDATE, t1.USERCODE, t1.USERICON, t1.USERID, t1.USERNAME FROM IBZEMP t1 ) t1 where userid=#{id}]]>
</select>
<select id="selectById" resultMap="IBZEmployeeResultMap" databaseId="postgresql">
<![CDATA[select t1.* from (SELECT t1.ADDR, t1.AVATAR, t1.BCODE, t1.BIRTHDAY, t1.CERTCODE, t1.CREATEDATE, t1.DOMAINS, t1.EMAIL, t1.ENABLE, t1.FONTSIZE, t1.GZZ, t1.IPADDR, t1.LANG, t1.LOGINNAME, t1.MDEPTCODE, t1.MDEPTID, t1.MDEPTNAME, t1.MEMO, t1.NICKNAME, t1.ORGCODE, t1.ORGID, t1.ORGNAME, t1.PASSWORD, t1.PERSONNAME, t1.PHONE, t1.POSTCODE, t1.POSTID, t1.POSTNAME, t1.RESERVER, t1.RYZJ, t1.SEX, t1.SHOWORDER, t1.SXQM, t1.THEME, t1.UPDATEDATE, t1.USERCODE, t1.USERICON, t1.USERID, t1.USERNAME, t1.ZW FROM IBZEMP t1 ) t1 where userid=#{id}]]>
......@@ -61,30 +64,38 @@
<!--数据查询[Default]-->
<sql id="Default" databaseId="mysql">
<![CDATA[ SELECT t1.`ADDR`, t1.`AVATAR`, t1.`BCODE`, t1.`BIRTHDAY`, t1.`CERTCODE`, t1.`CREATEDATE`, t1.`DOMAINS`, t1.`EMAIL`, t1.`ENABLE`, t1.`FONTSIZE`, t1.`IPADDR`, t1.`LANG`, t1.`LOGINNAME`, t1.`MDEPTCODE`, t1.`MDEPTID`, t1.`MDEPTNAME`, t1.`MEMO`, t1.`NICKNAME`, t1.`ORGCODE`, t1.`ORGID`, t1.`ORGNAME`, t1.`PASSWORD`, t1.`PERSONNAME`, t1.`PHONE`, t1.`POSTCODE`, t1.`POSTID`, t1.`POSTNAME`, t1.`RESERVER`, t1.`SEX`, t1.`SHOWORDER`, t1.`THEME`, t1.`UPDATEDATE`, t1.`USERCODE`, t1.`USERICON`, t1.`USERID`, t1.`USERNAME` FROM `IBZEMP` t1
WHERE t1.ENABLE = 1
WHERE t1.enable = 1
]]>
</sql>
<!--数据查询[Default]-->
<sql id="Default" databaseId="oracle">
<![CDATA[ SELECT t1.ADDR, t1.AVATAR, t1.BCODE, t1.BIRTHDAY, t1.CERTCODE, t1.CREATEDATE, t1.DOMAINS, t1.EMAIL, t1.ENABLE, t1.FONTSIZE, t1.IPADDR, t1.LANG, t1.LOGINNAME, t1.MDEPTCODE, t1.MDEPTID, t1.MDEPTNAME, t1.MEMO, t1.NICKNAME, t1.ORGCODE, t1.ORGID, t1.ORGNAME, t1.PASSWORD, t1.PERSONNAME, t1.PHONE, t1.POSTCODE, t1.POSTID, t1.POSTNAME, t1.RESERVER, t1.SEX, t1.SHOWORDER, t1.THEME, t1.UPDATEDATE, t1.USERCODE, t1.USERICON, t1.USERID, t1.USERNAME FROM IBZEMP t1
WHERE t1.enable = 1
]]>
</sql>
<!--数据查询[Default]-->
<sql id="Default" databaseId="postgresql">
<![CDATA[ SELECT t1.ADDR, t1.AVATAR, t1.BCODE, t1.BIRTHDAY, t1.CERTCODE, t1.CREATEDATE, t1.DOMAINS, t1.EMAIL, t1.ENABLE, t1.FONTSIZE, t1.GZZ, t1.IPADDR, t1.LANG, t1.LOGINNAME, t1.MDEPTCODE, t1.MDEPTID, t1.MDEPTNAME, t1.MEMO, t1.NICKNAME, t1.ORGCODE, t1.ORGID, t1.ORGNAME, t1.PASSWORD, t1.PERSONNAME, t1.PHONE, t1.POSTCODE, t1.POSTID, t1.POSTNAME, t1.RESERVER, t1.RYZJ, t1.SEX, t1.SHOWORDER, t1.SXQM, t1.THEME, t1.UPDATEDATE, t1.USERCODE, t1.USERICON, t1.USERID, t1.USERNAME, t1.ZW FROM IBZEMP t1
WHERE t1.ENABLE = 1
WHERE t1.enable = 1
]]>
</sql>
<!--数据查询[View]-->
<sql id="View" databaseId="mysql">
<![CDATA[ SELECT t1.`ADDR`, t1.`AVATAR`, t1.`BCODE`, t1.`BIRTHDAY`, t1.`CERTCODE`, t1.`CREATEDATE`, t1.`DOMAINS`, t1.`EMAIL`, t1.`ENABLE`, t1.`FONTSIZE`, t1.`IPADDR`, t1.`LANG`, t1.`LOGINNAME`, t1.`MDEPTCODE`, t1.`MDEPTID`, t1.`MDEPTNAME`, t1.`MEMO`, t1.`NICKNAME`, t1.`ORGCODE`, t1.`ORGID`, t1.`ORGNAME`, t1.`PASSWORD`, t1.`PERSONNAME`, t1.`PHONE`, t1.`POSTCODE`, t1.`POSTID`, t1.`POSTNAME`, t1.`RESERVER`, t1.`SEX`, t1.`SHOWORDER`, t1.`THEME`, t1.`UPDATEDATE`, t1.`USERCODE`, t1.`USERICON`, t1.`USERID`, t1.`USERNAME` FROM `IBZEMP` t1
WHERE t1.ENABLE = 1
WHERE t1.enable = 1
]]>
</sql>
<!--数据查询[View]-->
<sql id="View" databaseId="oracle">
<![CDATA[ SELECT t1.ADDR, t1.AVATAR, t1.BCODE, t1.BIRTHDAY, t1.CERTCODE, t1.CREATEDATE, t1.DOMAINS, t1.EMAIL, t1.ENABLE, t1.FONTSIZE, t1.IPADDR, t1.LANG, t1.LOGINNAME, t1.MDEPTCODE, t1.MDEPTID, t1.MDEPTNAME, t1.MEMO, t1.NICKNAME, t1.ORGCODE, t1.ORGID, t1.ORGNAME, t1.PASSWORD, t1.PERSONNAME, t1.PHONE, t1.POSTCODE, t1.POSTID, t1.POSTNAME, t1.RESERVER, t1.SEX, t1.SHOWORDER, t1.THEME, t1.UPDATEDATE, t1.USERCODE, t1.USERICON, t1.USERID, t1.USERNAME FROM IBZEMP t1
WHERE t1.enable = 1
]]>
</sql>
<!--数据查询[View]-->
<sql id="View" databaseId="postgresql">
<![CDATA[ SELECT t1.ADDR, t1.AVATAR, t1.BCODE, t1.BIRTHDAY, t1.CERTCODE, t1.CREATEDATE, t1.DOMAINS, t1.EMAIL, t1.ENABLE, t1.FONTSIZE, t1.GZZ, t1.IPADDR, t1.LANG, t1.LOGINNAME, t1.MDEPTCODE, t1.MDEPTID, t1.MDEPTNAME, t1.MEMO, t1.NICKNAME, t1.ORGCODE, t1.ORGID, t1.ORGNAME, t1.PASSWORD, t1.PERSONNAME, t1.PHONE, t1.POSTCODE, t1.POSTID, t1.POSTNAME, t1.RESERVER, t1.RYZJ, t1.SEX, t1.SHOWORDER, t1.SXQM, t1.THEME, t1.UPDATEDATE, t1.USERCODE, t1.USERICON, t1.USERID, t1.USERNAME, t1.ZW FROM IBZEMP t1
WHERE t1.ENABLE = 1
WHERE t1.enable = 1
]]>
</sql>
</mapper>
......@@ -6,6 +6,9 @@
<!--该方法用于重写mybatis中selectById方法,以实现查询逻辑属性-->
<select id="selectById" resultMap="IBZOrganizationResultMap" databaseId="mysql">
<![CDATA[select t1.* from (SELECT t1.`CREATEDATE`, t1.`ENABLE`, t1.`ORGCODE`, t1.`ORGID`, t1.`ORGLEVEL`, t1.`ORGNAME`, t1.`PORGID`, t11.`ORGNAME` AS `PORGNAME`, t1.`SHORTNAME`, t1.`SHOWORDER`, t1.`UPDATEDATE` FROM `IBZORG` t1 LEFT JOIN IBZORG t11 ON t1.PORGID = t11.ORGID ) t1 where orgid=#{id}]]>
</select>
<select id="selectById" resultMap="IBZOrganizationResultMap" databaseId="oracle">
<![CDATA[select t1.* from (SELECT t1.CREATEDATE, t1.ENABLE, t1.ORGCODE, t1.ORGID, t1.ORGLEVEL, t1.ORGNAME, t1.PORGID, t11.ORGNAME AS PORGNAME, t1.SHORTNAME, t1.SHOWORDER, t1.UPDATEDATE FROM IBZORG t1 LEFT JOIN IBZORG t11 ON t1.PORGID = t11.ORGID ) t1 where orgid=#{id}]]>
</select>
<select id="selectById" resultMap="IBZOrganizationResultMap" databaseId="postgresql">
<![CDATA[select t1.* from (SELECT t1.CREATEDATE, t1.ENABLE, t1.ORGCODE, t1.ORGID, t1.ORGLEVEL, t1.ORGNAME, t1.PORGID, t1.SHORTNAME, t1.SHOWORDER, t1.UPDATEDATE FROM IBZORG t1 ) t1 where orgid=#{id}]]>
......@@ -42,30 +45,38 @@
<!--数据查询[Default]-->
<sql id="Default" databaseId="mysql">
<![CDATA[ SELECT t1.`CREATEDATE`, t1.`ENABLE`, t1.`ORGCODE`, t1.`ORGID`, t1.`ORGLEVEL`, t1.`ORGNAME`, t1.`PORGID`, t11.`ORGNAME` AS `PORGNAME`, t1.`SHORTNAME`, t1.`SHOWORDER`, t1.`UPDATEDATE` FROM `IBZORG` t1 LEFT JOIN IBZORG t11 ON t1.PORGID = t11.ORGID
WHERE t1.ENABLE = 1
WHERE t1.enable = 1
]]>
</sql>
<!--数据查询[Default]-->
<sql id="Default" databaseId="oracle">
<![CDATA[ SELECT t1.CREATEDATE, t1.ENABLE, t1.ORGCODE, t1.ORGID, t1.ORGLEVEL, t1.ORGNAME, t1.PORGID, t11.ORGNAME AS PORGNAME, t1.SHORTNAME, t1.SHOWORDER, t1.UPDATEDATE FROM IBZORG t1 LEFT JOIN IBZORG t11 ON t1.PORGID = t11.ORGID
WHERE t1.enable = 1
]]>
</sql>
<!--数据查询[Default]-->
<sql id="Default" databaseId="postgresql">
<![CDATA[ SELECT t1.CREATEDATE, t1.ENABLE, t1.ORGCODE, t1.ORGID, t1.ORGLEVEL, t1.ORGNAME, t1.PORGID, t1.SHORTNAME, t1.SHOWORDER, t1.UPDATEDATE FROM IBZORG t1
WHERE t1.ENABLE = 1
WHERE t1.enable = 1
]]>
</sql>
<!--数据查询[View]-->
<sql id="View" databaseId="mysql">
<![CDATA[ SELECT t1.`CREATEDATE`, t1.`ENABLE`, t1.`ORGCODE`, t1.`ORGID`, t1.`ORGLEVEL`, t1.`ORGNAME`, t1.`PORGID`, t11.`ORGNAME` AS `PORGNAME`, t1.`SHORTNAME`, t1.`SHOWORDER`, t1.`UPDATEDATE` FROM `IBZORG` t1 LEFT JOIN IBZORG t11 ON t1.PORGID = t11.ORGID
WHERE t1.ENABLE = 1
WHERE t1.enable = 1
]]>
</sql>
<!--数据查询[View]-->
<sql id="View" databaseId="oracle">
<![CDATA[ SELECT t1.CREATEDATE, t1.ENABLE, t1.ORGCODE, t1.ORGID, t1.ORGLEVEL, t1.ORGNAME, t1.PORGID, t11.ORGNAME AS PORGNAME, t1.SHORTNAME, t1.SHOWORDER, t1.UPDATEDATE FROM IBZORG t1 LEFT JOIN IBZORG t11 ON t1.PORGID = t11.ORGID
WHERE t1.enable = 1
]]>
</sql>
<!--数据查询[View]-->
<sql id="View" databaseId="postgresql">
<![CDATA[ SELECT t1.CREATEDATE, t1.ENABLE, t1.ORGCODE, t1.ORGID, t1.ORGLEVEL, t1.ORGNAME, t1.PORGID, t1.SHORTNAME, t1.SHOWORDER, t1.UPDATEDATE FROM IBZORG t1
WHERE t1.ENABLE = 1
WHERE t1.enable = 1
]]>
</sql>
</mapper>
......@@ -7,6 +7,9 @@
<select id="selectById" resultMap="IBZPostResultMap" databaseId="mysql">
<![CDATA[select t1.* from (SELECT t1.`POSTCODE`, t1.`POSTID`, t1.`POSTNAME` FROM `IBZPOST` t1 ) t1 where postid=#{id}]]>
</select>
<select id="selectById" resultMap="IBZPostResultMap" databaseId="oracle">
<![CDATA[select t1.* from (SELECT t1.POSTCODE, t1.POSTID, t1.POSTNAME FROM IBZPOST t1 ) t1 where postid=#{id}]]>
</select>
<!--通过mybatis将查询结果注入到entity中,通过配置autoMapping="true"由mybatis自动处理映射关系 -->
<resultMap id="IBZPostResultMap" type="cn.ibizlab.core.ou.domain.IBZPost" autoMapping="true">
......@@ -30,12 +33,20 @@
<![CDATA[ SELECT t1.`POSTCODE`, t1.`POSTID`, t1.`POSTNAME` FROM `IBZPOST` t1
]]>
</sql>
<!--数据查询[Default]-->
<sql id="Default" databaseId="oracle">
<![CDATA[ SELECT t1.POSTCODE, t1.POSTID, t1.POSTNAME FROM IBZPOST t1
]]>
</sql>
<!--数据查询[View]-->
<sql id="View" databaseId="mysql">
<![CDATA[ SELECT t1.`POSTCODE`, t1.`POSTID`, t1.`POSTNAME` FROM `IBZPOST` t1
]]>
</sql>
<!--数据查询[View]-->
<sql id="View" databaseId="oracle">
<![CDATA[ SELECT t1.POSTCODE, t1.POSTID, t1.POSTNAME FROM IBZPOST t1
]]>
</sql>
</mapper>
......@@ -7,6 +7,9 @@
<select id="selectById" resultMap="IBZTeamResultMap" databaseId="mysql">
<![CDATA[select t1.* from (SELECT t1.`TEAMID`, t1.`TEAMNAME` FROM `IBZTEAM` t1 ) t1 where teamid=#{id}]]>
</select>
<select id="selectById" resultMap="IBZTeamResultMap" databaseId="oracle">
<![CDATA[select t1.* from (SELECT t1.TEAMID, t1.TEAMNAME FROM IBZTEAM t1 ) t1 where teamid=#{id}]]>
</select>
<!--通过mybatis将查询结果注入到entity中,通过配置autoMapping="true"由mybatis自动处理映射关系 -->
<resultMap id="IBZTeamResultMap" type="cn.ibizlab.core.ou.domain.IBZTeam" autoMapping="true">
......@@ -30,12 +33,20 @@
<![CDATA[ SELECT t1.`TEAMID`, t1.`TEAMNAME` FROM `IBZTEAM` t1
]]>
</sql>
<!--数据查询[Default]-->
<sql id="Default" databaseId="oracle">
<![CDATA[ SELECT t1.TEAMID, t1.TEAMNAME FROM IBZTEAM t1
]]>
</sql>
<!--数据查询[View]-->
<sql id="View" databaseId="mysql">
<![CDATA[ SELECT t1.`TEAMID`, t1.`TEAMNAME` FROM `IBZTEAM` t1
]]>
</sql>
<!--数据查询[View]-->
<sql id="View" databaseId="oracle">
<![CDATA[ SELECT t1.TEAMID, t1.TEAMNAME FROM IBZTEAM t1
]]>
</sql>
</mapper>
......@@ -7,6 +7,9 @@
<select id="selectById" resultMap="IBZTeamMemberResultMap" databaseId="mysql">
<![CDATA[select t1.* from (SELECT t21.`PERSONNAME`, t1.`TEAMID`, t1.`TEAMMEMBERID`, t11.`TEAMNAME`, t1.`USERID` FROM `IBZTEAMMEMBER` t1 LEFT JOIN IBZTEAM t11 ON t1.TEAMID = t11.TEAMID LEFT JOIN IBZEMP t21 ON t1.USERID = t21.USERID ) t1 where teammemberid=#{id}]]>
</select>
<select id="selectById" resultMap="IBZTeamMemberResultMap" databaseId="oracle">
<![CDATA[select t1.* from (SELECT t21.PERSONNAME, t1.TEAMID, t1.TEAMMEMBERID, t11.TEAMNAME, t1.USERID FROM IBZTEAMMEMBER t1 LEFT JOIN IBZTEAM t11 ON t1.TEAMID = t11.TEAMID LEFT JOIN IBZEMP t21 ON t1.USERID = t21.USERID ) t1 where teammemberid=#{id}]]>
</select>
<!--通过mybatis将查询结果注入到entity中,通过配置autoMapping="true"由mybatis自动处理映射关系 -->
<resultMap id="IBZTeamMemberResultMap" type="cn.ibizlab.core.ou.domain.IBZTeamMember" autoMapping="true">
......@@ -50,12 +53,20 @@
<![CDATA[ SELECT t21.`PERSONNAME`, t1.`TEAMID`, t1.`TEAMMEMBERID`, t11.`TEAMNAME`, t1.`USERID` FROM `IBZTEAMMEMBER` t1 LEFT JOIN IBZTEAM t11 ON t1.TEAMID = t11.TEAMID LEFT JOIN IBZEMP t21 ON t1.USERID = t21.USERID
]]>
</sql>
<!--数据查询[Default]-->
<sql id="Default" databaseId="oracle">
<![CDATA[ SELECT t21.PERSONNAME, t1.TEAMID, t1.TEAMMEMBERID, t11.TEAMNAME, t1.USERID FROM IBZTEAMMEMBER t1 LEFT JOIN IBZTEAM t11 ON t1.TEAMID = t11.TEAMID LEFT JOIN IBZEMP t21 ON t1.USERID = t21.USERID
]]>
</sql>
<!--数据查询[View]-->
<sql id="View" databaseId="mysql">
<![CDATA[ SELECT t21.`PERSONNAME`, t1.`TEAMID`, t1.`TEAMMEMBERID`, t11.`TEAMNAME`, t1.`USERID` FROM `IBZTEAMMEMBER` t1 LEFT JOIN IBZTEAM t11 ON t1.TEAMID = t11.TEAMID LEFT JOIN IBZEMP t21 ON t1.USERID = t21.USERID
]]>
</sql>
<!--数据查询[View]-->
<sql id="View" databaseId="oracle">
<![CDATA[ SELECT t21.PERSONNAME, t1.TEAMID, t1.TEAMMEMBERID, t11.TEAMNAME, t1.USERID FROM IBZTEAMMEMBER t1 LEFT JOIN IBZTEAM t11 ON t1.TEAMID = t11.TEAMID LEFT JOIN IBZEMP t21 ON t1.USERID = t21.USERID
]]>
</sql>
</mapper>
......@@ -48,6 +48,10 @@ public enum DEPredefinedFieldType {
* 逻辑有效
*/
LOGICVALID,
/**
* 排序
*/
ORDERVALUE,
/**
* 不处理
*/
......
......@@ -20,23 +20,28 @@ import org.springframework.util.StringUtils;
@Service
public class IBZConfigService extends ServiceImpl<IBZConfigMapper, IBZConfig> implements IService<IBZConfig> {
@Value("${ibiz.systemid:ibzou}")
private String systemId;
@Cacheable( value="ibzou_configs",key = "'cfgid:'+#p0+'||'+#p1+'||'+#p2")
@Value("${ibiz.admin.userid:0100}")
private String adminuserid;
@Cacheable( value="ibzrt_configs",key = "'cfgid:'+#p0+'||'+#p1+'||'+#p2")
public JSONObject getConfig(String cfgType,String targetType,String userId)
{
if(StringUtils.isEmpty(userId)||StringUtils.isEmpty(cfgType)||StringUtils.isEmpty(targetType))
throw new BadRequestAlertException("获取配置失败,参数缺失","IBZConfig",cfgType);
IBZConfig config=this.getOne(Wrappers.query(IBZConfig.builder().systemId(systemId).cfgType(cfgType).targetType(targetType).userId(userId).build()),false);
if(config==null)
return new JSONObject();
else
return JSON.parseObject(config.getCfg());
if(config==null) {
config=this.getOne(Wrappers.query(IBZConfig.builder().systemId(systemId).cfgType(cfgType).targetType(targetType).userId(adminuserid).build()),false);
if(config==null) {
return new JSONObject();
}
}
return JSON.parseObject(config.getCfg());
}
@CacheEvict( value="ibzou_configs",key = "'cfgid:'+#p0+'||'+#p1+'||'+#p2")
@CacheEvict( value="ibzrt_configs",key = "'cfgid:'+#p0+'||'+#p1+'||'+#p2")
public boolean saveConfig(String cfgType,String targetType,String userId,JSONObject config)
{
if(StringUtils.isEmpty(userId)||StringUtils.isEmpty(cfgType)||StringUtils.isEmpty(targetType))
......@@ -47,7 +52,7 @@ public class IBZConfigService extends ServiceImpl<IBZConfigMapper, IBZConfig> im
return this.saveOrUpdate(IBZConfig.builder().systemId(systemId).cfgType(cfgType).targetType(targetType).userId(userId).cfg(cfg).updateDate(DataObject.getNow()).build());
}
@CacheEvict( value="ibzou_configs",key = "'cfgid:'+#p0+'||'+#p1+'||'+#p2")
@CacheEvict( value="ibzrt_configs",key = "'cfgid:'+#p0+'||'+#p1+'||'+#p2")
public void resetConfig(String cfgType,String targetType,String userId)
{
if(StringUtils.isEmpty(userId)||StringUtils.isEmpty(cfgType)||StringUtils.isEmpty(targetType))
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册