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

zhouweidong 部署微服务应用 [ibz-wf,统一工作流]

上级 8a35ca51
...@@ -98,6 +98,7 @@ import AppAlert from './components/app-alert/app-alert.vue' ...@@ -98,6 +98,7 @@ import AppAlert from './components/app-alert/app-alert.vue'
import AppAlertGroup from './components/app-alert-group/app-alert-group.vue' import AppAlertGroup from './components/app-alert-group/app-alert-group.vue'
import AppRawItem from './components/app-rawitem/app-rawitem.vue' import AppRawItem from './components/app-rawitem/app-rawitem.vue'
import AppImageRomate from './components/app-image-romate/app-image-romate.vue' import AppImageRomate from './components/app-image-romate/app-image-romate.vue'
import { MenuIcon } from './components/menu-icon/menu-icon'
// 全局挂载UI实体服务注册中心 // 全局挂载UI实体服务注册中心
window['uiServiceRegister'] = uiServiceRegister; window['uiServiceRegister'] = uiServiceRegister;
...@@ -210,6 +211,7 @@ export const AppComponents = { ...@@ -210,6 +211,7 @@ export const AppComponents = {
v.component('app-alert', AppAlert); v.component('app-alert', AppAlert);
v.component('app-alert-group', AppAlertGroup); v.component('app-alert-group', AppAlertGroup);
v.component('app-rawitem',AppRawItem); v.component('app-rawitem',AppRawItem);
v.component('app-image-romate', AppImageRomate) v.component('app-image-romate', AppImageRomate);
v.component('menu-icon', MenuIcon);
}, },
}; };
\ No newline at end of file
...@@ -341,6 +341,7 @@ export default class AppPicker extends Vue { ...@@ -341,6 +341,7 @@ export default class AppPicker extends Vue {
public onSelectOpen(flag: boolean): void { public onSelectOpen(flag: boolean): void {
this.open = flag; this.open = flag;
if (this.open) { if (this.open) {
this.items = [];
//设置下拉列表的最大宽度 //设置下拉列表的最大宽度
this.setDropdownWidth(); this.setDropdownWidth();
this.onSearch(this.curvalue, null, true); this.onSearch(this.curvalue, null, true);
......
import { Vue, Component, Prop } from 'vue-property-decorator';
import './menu-icon.less';
/**
* 平台菜单按钮适配
*
* @export
* @class MenuIcon
* @extends {Vue}
*/
@Component({})
export class MenuIcon extends Vue {
/**
* 项数据
*
* @type {*}
* @memberof MenuIcon
*/
@Prop()
public item: any;
/**
* 绘制图标
*
* @returns {*}
* @memberof MenuIcon
*/
public render(): any {
if (this.item) {
if (this.item.iconcls) {
return <i class={this.item.iconcls} />
}
if (this.item.icon) {
return <img src={this.item.icon} />
}
}
return <span />
}
}
\ No newline at end of file
...@@ -97,6 +97,15 @@ export class SearchViewEngine extends ViewEngine { ...@@ -97,6 +97,15 @@ export class SearchViewEngine extends ViewEngine {
if (this.view && !this.view.isExpandSearchForm) { if (this.view && !this.view.isExpandSearchForm) {
Object.assign(arg, { query: this.view.query }); Object.assign(arg, { query: this.view.query });
} }
// 快速分组和快速搜索栏
let otherQueryParam:any = {};
if(this.view && this.view.quickGroupData){
Object.assign(otherQueryParam,this.view.quickGroupData);
}
if(this.view && this.view.quickFormData){
Object.assign(otherQueryParam,this.view.quickFormData);
}
Object.assign(arg,{viewparams:otherQueryParam});
} }
......
...@@ -254,11 +254,11 @@ export default class WFGroupEditViewBase extends Vue { ...@@ -254,11 +254,11 @@ export default class WFGroupEditViewBase extends Vue {
@Watch('viewparam',{immediate: true, deep: true}) @Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) { onParamData(newVal: any, oldVal: any) {
if(newVal){ if(newVal){
for(let key in this.viewparams){ this.viewparams = {};
delete this.viewparams[key]; if(typeof newVal == 'string') {
}
if(typeof this.viewparams == 'string') {
Object.assign(this.viewparams, JSON.parse(this.viewparam)); Object.assign(this.viewparams, JSON.parse(this.viewparam));
}else{
this.viewparams = Util.deepCopy(this.viewparam);
} }
} }
......
...@@ -283,11 +283,11 @@ export default class WFGroupGridViewBase extends Vue { ...@@ -283,11 +283,11 @@ export default class WFGroupGridViewBase extends Vue {
@Watch('viewparam',{immediate: true, deep: true}) @Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) { onParamData(newVal: any, oldVal: any) {
if(newVal){ if(newVal){
for(let key in this.viewparams){ this.viewparams = {};
delete this.viewparams[key]; if(typeof newVal == 'string') {
}
if(typeof this.viewparams == 'string') {
Object.assign(this.viewparams, JSON.parse(this.viewparam)); Object.assign(this.viewparams, JSON.parse(this.viewparam));
}else{
this.viewparams = Util.deepCopy(this.viewparam);
} }
} }
......
...@@ -7,7 +7,60 @@ ...@@ -7,7 +7,60 @@
<div class="content-container pickup-view"> <div class="content-container pickup-view">
<div class='view-body-messages'> <div class='view-body-messages'>
</div> </div>
<div class="translate-contant">
<div class="center" :style="{width : !isShowButton ? '100%' : ''}">
<view_pickupviewpanel
:viewState="viewState"
:viewparams="JSON.parse(JSON.stringify(viewparams))"
:context="JSON.parse(JSON.stringify(context))"
:isSingleSelect="isSingleSelect"
:selectedData="selectedData"
:isShowButton="isShowButton"
name="pickupviewpanel"
ref='pickupviewpanel'
@selectionchange="pickupviewpanel_selectionchange($event)"
@activated="pickupviewpanel_activated($event)"
@load="pickupviewpanel_load($event)"
@closeview="closeView($event)">
</view_pickupviewpanel>
</div>
<div v-if="isShowButton" class="translate-buttons">
<div class="buttons">
<i-button type="primary" :title="this.containerModel.view_rightbtn.text"
:disabled="this.containerModel.view_rightbtn.disabled"
@click="onCLickRight">
<i class="el-icon-arrow-right"></i>
</i-button>
<i-button type="primary" :title="this.containerModel.view_leftbtn.text"
:disabled="this.containerModel.view_leftbtn.disabled"
@click="onCLickLeft">
<i class="el-icon-arrow-left"></i>
</i-button>
<i-button type="primary" :title="this.containerModel.view_allrightbtn.text"
@click="onCLickAllRight">
<i class="el-icon-d-arrow-right"></i>
</i-button>
<i-button type="primary" :title="this.containerModel.view_allleftbtn.text"
@click="onCLickAllLeft">
<i class="el-icon-d-arrow-left"></i>
</i-button>
</div>
</div>
<div v-if="isShowButton" class="right">
<div class="mpicker-select">
<div v-for="(item, index) in viewSelections" :key="index" :class="item._select ? 'select' : ''" @click="selectionsClick(item)" @dblclick="selectionsDBLClick(item)">
<span>{{item.srfmajortext}}</span>
</div>
</div>
</div>
</div>
<card v-if="isShowButton" :dis-hover="true" :bordered="false" class="footer">
<row :style="{ textAlign: 'right' }">
<i-button type="primary" :disabled="this.viewSelections.length > 0 ? false : true" @click="onClickOk">{{this.containerModel.view_okbtn.text}}</i-button>
&nbsp;&nbsp;
<i-button @click="onClickCancel">{{this.containerModel.view_cancelbtn.text}}</i-button>
</row>
</card>
</div> </div>
<div class='view-bottom-messages'> <div class='view-bottom-messages'>
</div> </div>
...@@ -145,11 +198,11 @@ export default class WFGroupMPickupViewBase extends Vue { ...@@ -145,11 +198,11 @@ export default class WFGroupMPickupViewBase extends Vue {
@Watch('viewparam',{immediate: true, deep: true}) @Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) { onParamData(newVal: any, oldVal: any) {
if(newVal){ if(newVal){
for(let key in this.viewparams){ this.viewparams = {};
delete this.viewparams[key]; if(typeof newVal == 'string') {
}
if(typeof this.viewparams == 'string') {
Object.assign(this.viewparams, JSON.parse(this.viewparam)); Object.assign(this.viewparams, JSON.parse(this.viewparam));
}else{
this.viewparams = Util.deepCopy(this.viewparam);
} }
if(this.viewparams.selectedData){ if(this.viewparams.selectedData){
this.selectedData = JSON.stringify(this.viewparams.selectedData); this.selectedData = JSON.stringify(this.viewparams.selectedData);
......
...@@ -178,11 +178,11 @@ export default class WFGroupPickupGridViewBase extends Vue { ...@@ -178,11 +178,11 @@ export default class WFGroupPickupGridViewBase extends Vue {
@Watch('viewparam',{immediate: true, deep: true}) @Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) { onParamData(newVal: any, oldVal: any) {
if(newVal){ if(newVal){
for(let key in this.viewparams){ this.viewparams = {};
delete this.viewparams[key]; if(typeof newVal == 'string') {
}
if(typeof this.viewparams == 'string') {
Object.assign(this.viewparams, JSON.parse(this.viewparam)); Object.assign(this.viewparams, JSON.parse(this.viewparam));
}else{
this.viewparams = Util.deepCopy(this.viewparam);
} }
} }
......
...@@ -165,11 +165,11 @@ export default class WFGroupPickupViewBase extends Vue { ...@@ -165,11 +165,11 @@ export default class WFGroupPickupViewBase extends Vue {
@Watch('viewparam',{immediate: true, deep: true}) @Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) { onParamData(newVal: any, oldVal: any) {
if(newVal){ if(newVal){
for(let key in this.viewparams){ this.viewparams = {};
delete this.viewparams[key]; if(typeof newVal == 'string') {
}
if(typeof this.viewparams == 'string') {
Object.assign(this.viewparams, JSON.parse(this.viewparam)); Object.assign(this.viewparams, JSON.parse(this.viewparam));
}else{
this.viewparams = Util.deepCopy(this.viewparam);
} }
if(this.viewparams.selectedData){ if(this.viewparams.selectedData){
this.selectedData = JSON.stringify(this.viewparams.selectedData); this.selectedData = JSON.stringify(this.viewparams.selectedData);
......
...@@ -167,11 +167,11 @@ export default class WFIndexViewBase extends Vue { ...@@ -167,11 +167,11 @@ export default class WFIndexViewBase extends Vue {
@Watch('viewparam',{immediate: true, deep: true}) @Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) { onParamData(newVal: any, oldVal: any) {
if(newVal){ if(newVal){
for(let key in this.viewparams){ this.viewparams = {};
delete this.viewparams[key]; if(typeof newVal == 'string') {
}
if(typeof this.viewparams == 'string') {
Object.assign(this.viewparams, JSON.parse(this.viewparam)); Object.assign(this.viewparams, JSON.parse(this.viewparam));
}else{
this.viewparams = Util.deepCopy(this.viewparam);
} }
} }
......
...@@ -254,11 +254,11 @@ export default class WFMemberEditViewBase extends Vue { ...@@ -254,11 +254,11 @@ export default class WFMemberEditViewBase extends Vue {
@Watch('viewparam',{immediate: true, deep: true}) @Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) { onParamData(newVal: any, oldVal: any) {
if(newVal){ if(newVal){
for(let key in this.viewparams){ this.viewparams = {};
delete this.viewparams[key]; if(typeof newVal == 'string') {
}
if(typeof this.viewparams == 'string') {
Object.assign(this.viewparams, JSON.parse(this.viewparam)); Object.assign(this.viewparams, JSON.parse(this.viewparam));
}else{
this.viewparams = Util.deepCopy(this.viewparam);
} }
} }
......
...@@ -283,11 +283,11 @@ export default class WFMemberGridViewBase extends Vue { ...@@ -283,11 +283,11 @@ export default class WFMemberGridViewBase extends Vue {
@Watch('viewparam',{immediate: true, deep: true}) @Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) { onParamData(newVal: any, oldVal: any) {
if(newVal){ if(newVal){
for(let key in this.viewparams){ this.viewparams = {};
delete this.viewparams[key]; if(typeof newVal == 'string') {
}
if(typeof this.viewparams == 'string') {
Object.assign(this.viewparams, JSON.parse(this.viewparam)); Object.assign(this.viewparams, JSON.parse(this.viewparam));
}else{
this.viewparams = Util.deepCopy(this.viewparam);
} }
} }
......
...@@ -254,11 +254,11 @@ export default class WFProcessDefinitionEditViewBase extends Vue { ...@@ -254,11 +254,11 @@ export default class WFProcessDefinitionEditViewBase extends Vue {
@Watch('viewparam',{immediate: true, deep: true}) @Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) { onParamData(newVal: any, oldVal: any) {
if(newVal){ if(newVal){
for(let key in this.viewparams){ this.viewparams = {};
delete this.viewparams[key]; if(typeof newVal == 'string') {
}
if(typeof this.viewparams == 'string') {
Object.assign(this.viewparams, JSON.parse(this.viewparam)); Object.assign(this.viewparams, JSON.parse(this.viewparam));
}else{
this.viewparams = Util.deepCopy(this.viewparam);
} }
} }
......
...@@ -283,11 +283,11 @@ export default class WFProcessDefinitionGridViewBase extends Vue { ...@@ -283,11 +283,11 @@ export default class WFProcessDefinitionGridViewBase extends Vue {
@Watch('viewparam',{immediate: true, deep: true}) @Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) { onParamData(newVal: any, oldVal: any) {
if(newVal){ if(newVal){
for(let key in this.viewparams){ this.viewparams = {};
delete this.viewparams[key]; if(typeof newVal == 'string') {
}
if(typeof this.viewparams == 'string') {
Object.assign(this.viewparams, JSON.parse(this.viewparam)); Object.assign(this.viewparams, JSON.parse(this.viewparam));
}else{
this.viewparams = Util.deepCopy(this.viewparam);
} }
} }
......
...@@ -179,11 +179,11 @@ export default class WFREModelEditViewBase extends Vue { ...@@ -179,11 +179,11 @@ export default class WFREModelEditViewBase extends Vue {
@Watch('viewparam',{immediate: true, deep: true}) @Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) { onParamData(newVal: any, oldVal: any) {
if(newVal){ if(newVal){
for(let key in this.viewparams){ this.viewparams = {};
delete this.viewparams[key]; if(typeof newVal == 'string') {
}
if(typeof this.viewparams == 'string') {
Object.assign(this.viewparams, JSON.parse(this.viewparam)); Object.assign(this.viewparams, JSON.parse(this.viewparam));
}else{
this.viewparams = Util.deepCopy(this.viewparam);
} }
} }
......
...@@ -254,11 +254,11 @@ export default class WFTaskEditViewBase extends Vue { ...@@ -254,11 +254,11 @@ export default class WFTaskEditViewBase extends Vue {
@Watch('viewparam',{immediate: true, deep: true}) @Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) { onParamData(newVal: any, oldVal: any) {
if(newVal){ if(newVal){
for(let key in this.viewparams){ this.viewparams = {};
delete this.viewparams[key]; if(typeof newVal == 'string') {
}
if(typeof this.viewparams == 'string') {
Object.assign(this.viewparams, JSON.parse(this.viewparam)); Object.assign(this.viewparams, JSON.parse(this.viewparam));
}else{
this.viewparams = Util.deepCopy(this.viewparam);
} }
} }
......
...@@ -260,11 +260,11 @@ export default class WFTaskGridViewBase extends Vue { ...@@ -260,11 +260,11 @@ export default class WFTaskGridViewBase extends Vue {
@Watch('viewparam',{immediate: true, deep: true}) @Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) { onParamData(newVal: any, oldVal: any) {
if(newVal){ if(newVal){
for(let key in this.viewparams){ this.viewparams = {};
delete this.viewparams[key]; if(typeof newVal == 'string') {
}
if(typeof this.viewparams == 'string') {
Object.assign(this.viewparams, JSON.parse(this.viewparam)); Object.assign(this.viewparams, JSON.parse(this.viewparam));
}else{
this.viewparams = Util.deepCopy(this.viewparam);
} }
} }
......
...@@ -254,11 +254,11 @@ export default class WFUserEditViewBase extends Vue { ...@@ -254,11 +254,11 @@ export default class WFUserEditViewBase extends Vue {
@Watch('viewparam',{immediate: true, deep: true}) @Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) { onParamData(newVal: any, oldVal: any) {
if(newVal){ if(newVal){
for(let key in this.viewparams){ this.viewparams = {};
delete this.viewparams[key]; if(typeof newVal == 'string') {
}
if(typeof this.viewparams == 'string') {
Object.assign(this.viewparams, JSON.parse(this.viewparam)); Object.assign(this.viewparams, JSON.parse(this.viewparam));
}else{
this.viewparams = Util.deepCopy(this.viewparam);
} }
} }
......
...@@ -283,11 +283,11 @@ export default class WFUserGridViewBase extends Vue { ...@@ -283,11 +283,11 @@ export default class WFUserGridViewBase extends Vue {
@Watch('viewparam',{immediate: true, deep: true}) @Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) { onParamData(newVal: any, oldVal: any) {
if(newVal){ if(newVal){
for(let key in this.viewparams){ this.viewparams = {};
delete this.viewparams[key]; if(typeof newVal == 'string') {
}
if(typeof this.viewparams == 'string') {
Object.assign(this.viewparams, JSON.parse(this.viewparam)); Object.assign(this.viewparams, JSON.parse(this.viewparam));
}else{
this.viewparams = Util.deepCopy(this.viewparam);
} }
} }
......
...@@ -7,7 +7,60 @@ ...@@ -7,7 +7,60 @@
<div class="content-container pickup-view"> <div class="content-container pickup-view">
<div class='view-body-messages'> <div class='view-body-messages'>
</div> </div>
<div class="translate-contant">
<div class="center" :style="{width : !isShowButton ? '100%' : ''}">
<view_pickupviewpanel
:viewState="viewState"
:viewparams="JSON.parse(JSON.stringify(viewparams))"
:context="JSON.parse(JSON.stringify(context))"
:isSingleSelect="isSingleSelect"
:selectedData="selectedData"
:isShowButton="isShowButton"
name="pickupviewpanel"
ref='pickupviewpanel'
@selectionchange="pickupviewpanel_selectionchange($event)"
@activated="pickupviewpanel_activated($event)"
@load="pickupviewpanel_load($event)"
@closeview="closeView($event)">
</view_pickupviewpanel>
</div>
<div v-if="isShowButton" class="translate-buttons">
<div class="buttons">
<i-button type="primary" :title="this.containerModel.view_rightbtn.text"
:disabled="this.containerModel.view_rightbtn.disabled"
@click="onCLickRight">
<i class="el-icon-arrow-right"></i>
</i-button>
<i-button type="primary" :title="this.containerModel.view_leftbtn.text"
:disabled="this.containerModel.view_leftbtn.disabled"
@click="onCLickLeft">
<i class="el-icon-arrow-left"></i>
</i-button>
<i-button type="primary" :title="this.containerModel.view_allrightbtn.text"
@click="onCLickAllRight">
<i class="el-icon-d-arrow-right"></i>
</i-button>
<i-button type="primary" :title="this.containerModel.view_allleftbtn.text"
@click="onCLickAllLeft">
<i class="el-icon-d-arrow-left"></i>
</i-button>
</div>
</div>
<div v-if="isShowButton" class="right">
<div class="mpicker-select">
<div v-for="(item, index) in viewSelections" :key="index" :class="item._select ? 'select' : ''" @click="selectionsClick(item)" @dblclick="selectionsDBLClick(item)">
<span>{{item.srfmajortext}}</span>
</div>
</div>
</div>
</div>
<card v-if="isShowButton" :dis-hover="true" :bordered="false" class="footer">
<row :style="{ textAlign: 'right' }">
<i-button type="primary" :disabled="this.viewSelections.length > 0 ? false : true" @click="onClickOk">{{this.containerModel.view_okbtn.text}}</i-button>
&nbsp;&nbsp;
<i-button @click="onClickCancel">{{this.containerModel.view_cancelbtn.text}}</i-button>
</row>
</card>
</div> </div>
<div class='view-bottom-messages'> <div class='view-bottom-messages'>
</div> </div>
...@@ -145,11 +198,11 @@ export default class WFUserMPickupViewBase extends Vue { ...@@ -145,11 +198,11 @@ export default class WFUserMPickupViewBase extends Vue {
@Watch('viewparam',{immediate: true, deep: true}) @Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) { onParamData(newVal: any, oldVal: any) {
if(newVal){ if(newVal){
for(let key in this.viewparams){ this.viewparams = {};
delete this.viewparams[key]; if(typeof newVal == 'string') {
}
if(typeof this.viewparams == 'string') {
Object.assign(this.viewparams, JSON.parse(this.viewparam)); Object.assign(this.viewparams, JSON.parse(this.viewparam));
}else{
this.viewparams = Util.deepCopy(this.viewparam);
} }
if(this.viewparams.selectedData){ if(this.viewparams.selectedData){
this.selectedData = JSON.stringify(this.viewparams.selectedData); this.selectedData = JSON.stringify(this.viewparams.selectedData);
......
...@@ -178,11 +178,11 @@ export default class WFUserPickupGridViewBase extends Vue { ...@@ -178,11 +178,11 @@ export default class WFUserPickupGridViewBase extends Vue {
@Watch('viewparam',{immediate: true, deep: true}) @Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) { onParamData(newVal: any, oldVal: any) {
if(newVal){ if(newVal){
for(let key in this.viewparams){ this.viewparams = {};
delete this.viewparams[key]; if(typeof newVal == 'string') {
}
if(typeof this.viewparams == 'string') {
Object.assign(this.viewparams, JSON.parse(this.viewparam)); Object.assign(this.viewparams, JSON.parse(this.viewparam));
}else{
this.viewparams = Util.deepCopy(this.viewparam);
} }
} }
......
...@@ -165,11 +165,11 @@ export default class WFUserPickupViewBase extends Vue { ...@@ -165,11 +165,11 @@ export default class WFUserPickupViewBase extends Vue {
@Watch('viewparam',{immediate: true, deep: true}) @Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) { onParamData(newVal: any, oldVal: any) {
if(newVal){ if(newVal){
for(let key in this.viewparams){ this.viewparams = {};
delete this.viewparams[key]; if(typeof newVal == 'string') {
}
if(typeof this.viewparams == 'string') {
Object.assign(this.viewparams, JSON.parse(this.viewparam)); Object.assign(this.viewparams, JSON.parse(this.viewparam));
}else{
this.viewparams = Util.deepCopy(this.viewparam);
} }
if(this.viewparams.selectedData){ if(this.viewparams.selectedData){
this.selectedData = JSON.stringify(this.viewparams.selectedData); this.selectedData = JSON.stringify(this.viewparams.selectedData);
......
...@@ -246,7 +246,7 @@ ...@@ -246,7 +246,7 @@
} }
} }
.view-container.degridview, .view-container.degridview9, .view-container.dewfgridview, .view-container.delistview, .view-container.delistview9, .view-container.dedataview, .view-container.dedataview9{ .view-container.degridview, .view-container.degridview9, .view-container.dewfgridview, .view-container.delistview, .view-container.delistview9, .view-container.dedataview, .view-container.dedataview9,.view-container.dechartview,.view-container.dechartview9{
>.view-card.view-no-caption{ >.view-card.view-no-caption{
>.ivu-card-body{ >.ivu-card-body{
height: 100%; height: 100%;
......
...@@ -109,7 +109,13 @@ export class Interceptors { ...@@ -109,7 +109,13 @@ export class Interceptors {
error = error ? error : { response: {} }; error = error ? error : { response: {} };
let { response: res } = error; let { response: res } = error;
let { data: _data } = res; let { data: _data } = res;
// 处理异常
if(res.headers && res.headers['x-ibz-error']){
res.data.errorKey = res.headers['x-ibz-error'];
}
if(res.headers && res.headers['x-ibz-params']){
res.data.entityName = res.headers['x-ibz-params'];
}
if (res.status === 401) { if (res.status === 401) {
this.doNoLogin(_data.data); this.doNoLogin(_data.data);
} }
......
...@@ -760,9 +760,17 @@ export default class WFIndexViewBase extends Vue implements ControlInterface { ...@@ -760,9 +760,17 @@ export default class WFIndexViewBase extends Vue implements ControlInterface {
item.items.map((singleItem:any) =>{ item.items.map((singleItem:any) =>{
if(!singleItem.hidden){ if(!singleItem.hidden){
item.hidden = false; item.hidden = false;
}else{
if(singleItem.items && singleItem.items.length >0){
singleItem.items.map((grandsonItem:any) =>{
if(!grandsonItem.hidden){
item.hidden = false;
}
})
}
} }
if(singleItem.items && singleItem.items.length >0){ if(item.items && item.items.length >0){
this.computeParentMenus(singleItem.items); this.computeParentMenus(item.items);
} }
}) })
} }
......
...@@ -310,4 +310,23 @@ export default class ControlService { ...@@ -310,4 +310,23 @@ export default class ControlService {
} }
}) })
} }
/**
* 根据后台标识获取数据标识名称
*
* @param prop 后台标识
* @memberof ControlService
*/
public getNameByProp(prop: any) {
let model: any = this.getMode();
if(!model || !prop) {
return false;
}
let dataItems: any[] = model.getDataItems();
prop = prop.replace(/([A-Z])/g,"_$1").toLowerCase();
let data: any = dataItems.find((item:any) => {
return Object.is(prop, item.prop);
});
return data.name;
}
} }
\ No newline at end of file
...@@ -241,7 +241,6 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -241,7 +241,6 @@ export default class MainBase extends Vue implements ControlInterface {
} }
/** /**
* 代码表服务对象 * 代码表服务对象
* *
...@@ -250,6 +249,14 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -250,6 +249,14 @@ export default class MainBase extends Vue implements ControlInterface {
*/ */
public codeListService:CodeListService = new CodeListService({ $store: this.$store }); public codeListService:CodeListService = new CodeListService({ $store: this.$store });
/**
* 主信息表格列
*
* @type {string}
* @memberof MainBase
*/
public majorInfoColName:string = "groupname";
/** /**
* 界面UI服务对象 * 界面UI服务对象
* *
...@@ -746,16 +753,18 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -746,16 +753,18 @@ export default class MainBase extends Vue implements ControlInterface {
this.errorMessages = []; this.errorMessages = [];
let validateState = true; let validateState = true;
let index = -1; let index = -1;
for(let item of this.items){ for (let item of this.items) {
index++; let tempMessage: string = '';
if(item.rowDataState === "create" || item.rowDataState === "update"){ index++;
for(let property of Object.keys(this.rules)){ if (item.rowDataState === "create" || item.rowDataState === "update") {
if(!await this.validate(property,item,index)){ for (let property of Object.keys(this.rules)) {
validateState = false; if (!await this.validate(property, item, index)) {
this.errorMessages.push(this.gridItemsModel[index][property].error); validateState = false;
} tempMessage = tempMessage + '<p>' + this.gridItemsModel[index][property].error + '<p>';
}
}
} }
} this.errorMessages.push(tempMessage);
} }
return validateState; return validateState;
} }
...@@ -880,7 +889,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -880,7 +889,7 @@ export default class MainBase extends Vue implements ControlInterface {
} }
let dataInfo = ''; let dataInfo = '';
_datas.forEach((record: any, index: number) => { _datas.forEach((record: any, index: number) => {
let srfmajortext = record.name; let srfmajortext = record.groupname;
if (index < 5) { if (index < 5) {
if (!Object.is(dataInfo, '')) { if (!Object.is(dataInfo, '')) {
dataInfo += '、'; dataInfo += '、';
...@@ -892,9 +901,9 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -892,9 +901,9 @@ export default class MainBase extends Vue implements ControlInterface {
}); });
if (_datas.length < 5) { if (_datas.length < 5) {
dataInfo = dataInfo + ' '+(this.$t('app.gridpage.totle') as string) + _datas.length + (this.$t('app.gridpage.records') as string)+(this.$t('app.gridpage.data') as string); dataInfo = dataInfo + ' ' + (this.$t('app.gridpage.totle') as string) + _datas.length + (this.$t('app.gridpage.records') as string) + (this.$t('app.gridpage.data') as string);
} else { } else {
dataInfo = dataInfo + '...' + ' '+(this.$t('app.gridpage.totle') as string) + _datas.length + (this.$t('app.gridpage.desc2') as string); dataInfo = ' ... ' + (this.$t('app.gridpage.totle') as string) + _datas.length + (this.$t('app.gridpage.records') as string) + (this.$t('app.gridpage.data') as string);
} }
const removeData = () => { const removeData = () => {
...@@ -1198,7 +1207,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1198,7 +1207,7 @@ export default class MainBase extends Vue implements ControlInterface {
return; return;
} }
if (Object.is('load', action)) { if (Object.is('load', action)) {
this.load(data); this.load(data,true);
} }
if (Object.is('remove', action)) { if (Object.is('remove', action)) {
this.remove(data); this.remove(data);
...@@ -1689,11 +1698,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1689,11 +1698,7 @@ export default class MainBase extends Vue implements ControlInterface {
} }
if (!await this.validateAll()) { if (!await this.validateAll()) {
if(this.errorMessages && this.errorMessages.length > 0) { if(this.errorMessages && this.errorMessages.length > 0) {
let descMessage: string = ''; this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: this.errorMessages[0] });
this.errorMessages.forEach((message: any) => {
descMessage = descMessage + '<p>' + message + '<p>';
})
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: descMessage });
} else { } else {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: (this.$t('app.commonWords.rulesException') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: (this.$t('app.commonWords.rulesException') as string) });
} }
...@@ -1734,10 +1739,46 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1734,10 +1739,46 @@ export default class MainBase extends Vue implements ControlInterface {
if(errorItems.length === 0 && successItems.length >0 && !this.isformDruipart){ if(errorItems.length === 0 && successItems.length >0 && !this.isformDruipart){
this.$Notice.success({ title: '', desc: (this.$t('app.commonWords.saveSuccess') as string) }); this.$Notice.success({ title: '', desc: (this.$t('app.commonWords.saveSuccess') as string) });
}else{ }else{
errorItems.forEach((item:any,index:number)=>{ errorItems.forEach((item: any, index: number) => {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: errorMessage[index].data.message }); if(errorMessage[index] && errorMessage[index].data) {
console.error(errorMessage[index]); if(Object.is(errorMessage[index].data.errorKey, 'DupCheck')) {
}); let errorProp: string = errorMessage[index].data.message.match(/\[[a-zA-Z]*\]/)[0];
let name: string = errorProp ? this.service.getNameByProp(errorProp.substr(1, errorProp.length-2)) : '';
if(name) {
let desc: any = this.allColumns.find((column: any) =>{
return Object.is(column.name, name);
});
this.$Notice.error({
title: (this.$t('app.commonWords.createFailed') as string),
desc: (desc ? desc.label : '') + " : " + item[name] + (this.$t('app.commonWords.isExist') as string) + '!',
});
} else {
this.$Notice.error({
title: (this.$t('app.commonWords.createFailed') as string),
desc: errorMessage[index].data.message?errorMessage[index].data.message:(this.$t('app.commonWords.sysException') as string),
});
}
} else if(Object.is(errorMessage[index].data.errorKey, 'DuplicateKeyException')){
let name: string = this.service.getNameByProp("groupid");
if(name){
let desc: any = this.allColumns.find((column: any) =>{
return Object.is(column.name, name);
});
this.$Notice.error({
title: (this.$t('app.commonWords.createFailed') as string),
desc: (desc ? desc.label : '') + " : " + item[name] + (this.$t('app.commonWords.isExist') as string) + '!',
});
}
}else {
this.$Notice.error({
title: (this.$t('app.commonWords.saveFailed') as string),
desc: errorMessage[index].data.message?errorMessage[index].data.message:(this.$t('app.commonWords.sysException') as string),
});
}
} else {
this.$Notice.error({ title: (this.$t('app.commonWords.saveFailed') as string), desc: (item[this.majorInfoColName]?item[this.majorInfoColName]:"") + (this.$t('app.commonWords.saveFailed') as string) + '!' });
}
});
} }
return successItems; return successItems;
} }
...@@ -1996,15 +2037,19 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1996,15 +2037,19 @@ export default class MainBase extends Vue implements ControlInterface {
let startOp = (val:boolean)=>{ let startOp = (val:boolean)=>{
if(falg.isPast){ if(falg.isPast){
if(opValue){ if(opValue){
falg.isPast = falg && val; falg.isPast = falg.isPast && val;
}else{ }else{
falg.isPast = falg || val; falg.isPast = falg.isPast || val;
} }
}else{ }else{
falg.isPast = val; falg.isPast = val;
} }
} }
rule[name].forEach((item:any) => { rule[name].forEach((item:any) => {
if((value === null || value === undefined || value === "") && (item.type != 'GROUP')){
startOp(true);
return falg;
}
// 常规规则 // 常规规则
if(item.type == 'SIMPLE'){ if(item.type == 'SIMPLE'){
startOp(!this.$verify.checkFieldSimpleRule(value,item.condOP,item.paramValue,item.ruleInfo,item.paramType,this.curEditRowData,item.isKeyCond)); startOp(!this.$verify.checkFieldSimpleRule(value,item.condOP,item.paramValue,item.ruleInfo,item.paramType,this.curEditRowData,item.isKeyCond));
...@@ -2027,7 +2072,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -2027,7 +2072,7 @@ export default class MainBase extends Vue implements ControlInterface {
} }
// 分组 // 分组
if(item.type == 'GROUP'){ if(item.type == 'GROUP'){
falg = this.verifyDeRules('group',item,"AND",value) falg = this.verifyDeRules('group',item,item.condOP?item.condOP:"AND",value)
if(item.isNotMode){ if(item.isNotMode){
falg.isPast = !falg.isPast; falg.isPast = !falg.isPast;
} }
......
...@@ -253,7 +253,6 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -253,7 +253,6 @@ export default class MainBase extends Vue implements ControlInterface {
} }
/** /**
* 代码表服务对象 * 代码表服务对象
* *
...@@ -262,6 +261,14 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -262,6 +261,14 @@ export default class MainBase extends Vue implements ControlInterface {
*/ */
public codeListService:CodeListService = new CodeListService({ $store: this.$store }); public codeListService:CodeListService = new CodeListService({ $store: this.$store });
/**
* 主信息表格列
*
* @type {string}
* @memberof MainBase
*/
public majorInfoColName:string = "";
/** /**
* 界面UI服务对象 * 界面UI服务对象
* *
...@@ -767,16 +774,18 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -767,16 +774,18 @@ export default class MainBase extends Vue implements ControlInterface {
this.errorMessages = []; this.errorMessages = [];
let validateState = true; let validateState = true;
let index = -1; let index = -1;
for(let item of this.items){ for (let item of this.items) {
index++; let tempMessage: string = '';
if(item.rowDataState === "create" || item.rowDataState === "update"){ index++;
for(let property of Object.keys(this.rules)){ if (item.rowDataState === "create" || item.rowDataState === "update") {
if(!await this.validate(property,item,index)){ for (let property of Object.keys(this.rules)) {
validateState = false; if (!await this.validate(property, item, index)) {
this.errorMessages.push(this.gridItemsModel[index][property].error); validateState = false;
} tempMessage = tempMessage + '<p>' + this.gridItemsModel[index][property].error + '<p>';
}
}
} }
} this.errorMessages.push(tempMessage);
} }
return validateState; return validateState;
} }
...@@ -913,9 +922,9 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -913,9 +922,9 @@ export default class MainBase extends Vue implements ControlInterface {
}); });
if (_datas.length < 5) { if (_datas.length < 5) {
dataInfo = dataInfo + ' '+(this.$t('app.gridpage.totle') as string) + _datas.length + (this.$t('app.gridpage.records') as string)+(this.$t('app.gridpage.data') as string); dataInfo = dataInfo + ' ' + (this.$t('app.gridpage.totle') as string) + _datas.length + (this.$t('app.gridpage.records') as string) + (this.$t('app.gridpage.data') as string);
} else { } else {
dataInfo = dataInfo + '...' + ' '+(this.$t('app.gridpage.totle') as string) + _datas.length + (this.$t('app.gridpage.desc2') as string); dataInfo = ' ... ' + (this.$t('app.gridpage.totle') as string) + _datas.length + (this.$t('app.gridpage.records') as string) + (this.$t('app.gridpage.data') as string);
} }
const removeData = () => { const removeData = () => {
...@@ -1219,7 +1228,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1219,7 +1228,7 @@ export default class MainBase extends Vue implements ControlInterface {
return; return;
} }
if (Object.is('load', action)) { if (Object.is('load', action)) {
this.load(data); this.load(data,true);
} }
if (Object.is('remove', action)) { if (Object.is('remove', action)) {
this.remove(data); this.remove(data);
...@@ -1711,11 +1720,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1711,11 +1720,7 @@ export default class MainBase extends Vue implements ControlInterface {
} }
if (!await this.validateAll()) { if (!await this.validateAll()) {
if(this.errorMessages && this.errorMessages.length > 0) { if(this.errorMessages && this.errorMessages.length > 0) {
let descMessage: string = ''; this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: this.errorMessages[0] });
this.errorMessages.forEach((message: any) => {
descMessage = descMessage + '<p>' + message + '<p>';
})
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: descMessage });
} else { } else {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: (this.$t('app.commonWords.rulesException') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: (this.$t('app.commonWords.rulesException') as string) });
} }
...@@ -1756,10 +1761,40 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1756,10 +1761,40 @@ export default class MainBase extends Vue implements ControlInterface {
if(errorItems.length === 0 && successItems.length >0 && !this.isformDruipart){ if(errorItems.length === 0 && successItems.length >0 && !this.isformDruipart){
this.$Notice.success({ title: '', desc: (this.$t('app.commonWords.saveSuccess') as string) }); this.$Notice.success({ title: '', desc: (this.$t('app.commonWords.saveSuccess') as string) });
}else{ }else{
errorItems.forEach((item:any,index:number)=>{ errorItems.forEach((item: any, index: number) => {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: errorMessage[index].data.message }); if(errorMessage[index] && errorMessage[index].data) {
console.error(errorMessage[index]); if(Object.is(errorMessage[index].data.errorKey, 'DupCheck')) {
}); let errorProp: string = errorMessage[index].data.message.match(/\[[a-zA-Z]*\]/)[0];
let name: string = errorProp ? this.service.getNameByProp(errorProp.substr(1, errorProp.length-2)) : '';
if(name) {
let desc: any = this.allColumns.find((column: any) =>{
return Object.is(column.name, name);
});
this.$Notice.error({
title: (this.$t('app.commonWords.createFailed') as string),
desc: (desc ? desc.label : '') + " : " + item[name] + (this.$t('app.commonWords.isExist') as string) + '!',
});
} else {
this.$Notice.error({
title: (this.$t('app.commonWords.createFailed') as string),
desc: errorMessage[index].data.message?errorMessage[index].data.message:(this.$t('app.commonWords.sysException') as string),
});
}
} else if(Object.is(errorMessage[index].data.errorKey, 'DuplicateKeyException')){
this.$Notice.error({
title: (this.$t('app.commonWords.saveFailed') as string),
desc: errorMessage[index].data.message?errorMessage[index].data.message:(this.$t('app.commonWords.sysException') as string),
});
}else {
this.$Notice.error({
title: (this.$t('app.commonWords.saveFailed') as string),
desc: errorMessage[index].data.message?errorMessage[index].data.message:(this.$t('app.commonWords.sysException') as string),
});
}
} else {
this.$Notice.error({ title: (this.$t('app.commonWords.saveFailed') as string), desc: (item[this.majorInfoColName]?item[this.majorInfoColName]:"") + (this.$t('app.commonWords.saveFailed') as string) + '!' });
}
});
} }
return successItems; return successItems;
} }
...@@ -2017,15 +2052,19 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -2017,15 +2052,19 @@ export default class MainBase extends Vue implements ControlInterface {
let startOp = (val:boolean)=>{ let startOp = (val:boolean)=>{
if(falg.isPast){ if(falg.isPast){
if(opValue){ if(opValue){
falg.isPast = falg && val; falg.isPast = falg.isPast && val;
}else{ }else{
falg.isPast = falg || val; falg.isPast = falg.isPast || val;
} }
}else{ }else{
falg.isPast = val; falg.isPast = val;
} }
} }
rule[name].forEach((item:any) => { rule[name].forEach((item:any) => {
if((value === null || value === undefined || value === "") && (item.type != 'GROUP')){
startOp(true);
return falg;
}
// 常规规则 // 常规规则
if(item.type == 'SIMPLE'){ if(item.type == 'SIMPLE'){
startOp(!this.$verify.checkFieldSimpleRule(value,item.condOP,item.paramValue,item.ruleInfo,item.paramType,this.curEditRowData,item.isKeyCond)); startOp(!this.$verify.checkFieldSimpleRule(value,item.condOP,item.paramValue,item.ruleInfo,item.paramType,this.curEditRowData,item.isKeyCond));
...@@ -2048,7 +2087,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -2048,7 +2087,7 @@ export default class MainBase extends Vue implements ControlInterface {
} }
// 分组 // 分组
if(item.type == 'GROUP'){ if(item.type == 'GROUP'){
falg = this.verifyDeRules('group',item,"AND",value) falg = this.verifyDeRules('group',item,item.condOP?item.condOP:"AND",value)
if(item.isNotMode){ if(item.isNotMode){
falg.isPast = !falg.isPast; falg.isPast = !falg.isPast;
} }
......
...@@ -267,7 +267,6 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -267,7 +267,6 @@ export default class MainBase extends Vue implements ControlInterface {
} }
/** /**
* 代码表服务对象 * 代码表服务对象
* *
...@@ -276,6 +275,14 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -276,6 +275,14 @@ export default class MainBase extends Vue implements ControlInterface {
*/ */
public codeListService:CodeListService = new CodeListService({ $store: this.$store }); public codeListService:CodeListService = new CodeListService({ $store: this.$store });
/**
* 主信息表格列
*
* @type {string}
* @memberof MainBase
*/
public majorInfoColName:string = "definitionname";
/** /**
* 界面UI服务对象 * 界面UI服务对象
* *
...@@ -790,16 +797,18 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -790,16 +797,18 @@ export default class MainBase extends Vue implements ControlInterface {
this.errorMessages = []; this.errorMessages = [];
let validateState = true; let validateState = true;
let index = -1; let index = -1;
for(let item of this.items){ for (let item of this.items) {
index++; let tempMessage: string = '';
if(item.rowDataState === "create" || item.rowDataState === "update"){ index++;
for(let property of Object.keys(this.rules)){ if (item.rowDataState === "create" || item.rowDataState === "update") {
if(!await this.validate(property,item,index)){ for (let property of Object.keys(this.rules)) {
validateState = false; if (!await this.validate(property, item, index)) {
this.errorMessages.push(this.gridItemsModel[index][property].error); validateState = false;
} tempMessage = tempMessage + '<p>' + this.gridItemsModel[index][property].error + '<p>';
}
}
} }
} this.errorMessages.push(tempMessage);
} }
return validateState; return validateState;
} }
...@@ -936,9 +945,9 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -936,9 +945,9 @@ export default class MainBase extends Vue implements ControlInterface {
}); });
if (_datas.length < 5) { if (_datas.length < 5) {
dataInfo = dataInfo + ' '+(this.$t('app.gridpage.totle') as string) + _datas.length + (this.$t('app.gridpage.records') as string)+(this.$t('app.gridpage.data') as string); dataInfo = dataInfo + ' ' + (this.$t('app.gridpage.totle') as string) + _datas.length + (this.$t('app.gridpage.records') as string) + (this.$t('app.gridpage.data') as string);
} else { } else {
dataInfo = dataInfo + '...' + ' '+(this.$t('app.gridpage.totle') as string) + _datas.length + (this.$t('app.gridpage.desc2') as string); dataInfo = ' ... ' + (this.$t('app.gridpage.totle') as string) + _datas.length + (this.$t('app.gridpage.records') as string) + (this.$t('app.gridpage.data') as string);
} }
const removeData = () => { const removeData = () => {
...@@ -1250,7 +1259,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1250,7 +1259,7 @@ export default class MainBase extends Vue implements ControlInterface {
return; return;
} }
if (Object.is('load', action)) { if (Object.is('load', action)) {
this.load(data); this.load(data,true);
} }
if (Object.is('remove', action)) { if (Object.is('remove', action)) {
this.remove(data); this.remove(data);
...@@ -1743,11 +1752,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1743,11 +1752,7 @@ export default class MainBase extends Vue implements ControlInterface {
} }
if (!await this.validateAll()) { if (!await this.validateAll()) {
if(this.errorMessages && this.errorMessages.length > 0) { if(this.errorMessages && this.errorMessages.length > 0) {
let descMessage: string = ''; this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: this.errorMessages[0] });
this.errorMessages.forEach((message: any) => {
descMessage = descMessage + '<p>' + message + '<p>';
})
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: descMessage });
} else { } else {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: (this.$t('app.commonWords.rulesException') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: (this.$t('app.commonWords.rulesException') as string) });
} }
...@@ -1788,10 +1793,46 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1788,10 +1793,46 @@ export default class MainBase extends Vue implements ControlInterface {
if(errorItems.length === 0 && successItems.length >0 && !this.isformDruipart){ if(errorItems.length === 0 && successItems.length >0 && !this.isformDruipart){
this.$Notice.success({ title: '', desc: (this.$t('app.commonWords.saveSuccess') as string) }); this.$Notice.success({ title: '', desc: (this.$t('app.commonWords.saveSuccess') as string) });
}else{ }else{
errorItems.forEach((item:any,index:number)=>{ errorItems.forEach((item: any, index: number) => {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: errorMessage[index].data.message }); if(errorMessage[index] && errorMessage[index].data) {
console.error(errorMessage[index]); if(Object.is(errorMessage[index].data.errorKey, 'DupCheck')) {
}); let errorProp: string = errorMessage[index].data.message.match(/\[[a-zA-Z]*\]/)[0];
let name: string = errorProp ? this.service.getNameByProp(errorProp.substr(1, errorProp.length-2)) : '';
if(name) {
let desc: any = this.allColumns.find((column: any) =>{
return Object.is(column.name, name);
});
this.$Notice.error({
title: (this.$t('app.commonWords.createFailed') as string),
desc: (desc ? desc.label : '') + " : " + item[name] + (this.$t('app.commonWords.isExist') as string) + '!',
});
} else {
this.$Notice.error({
title: (this.$t('app.commonWords.createFailed') as string),
desc: errorMessage[index].data.message?errorMessage[index].data.message:(this.$t('app.commonWords.sysException') as string),
});
}
} else if(Object.is(errorMessage[index].data.errorKey, 'DuplicateKeyException')){
let name: string = this.service.getNameByProp("definitionkey");
if(name){
let desc: any = this.allColumns.find((column: any) =>{
return Object.is(column.name, name);
});
this.$Notice.error({
title: (this.$t('app.commonWords.createFailed') as string),
desc: (desc ? desc.label : '') + " : " + item[name] + (this.$t('app.commonWords.isExist') as string) + '!',
});
}
}else {
this.$Notice.error({
title: (this.$t('app.commonWords.saveFailed') as string),
desc: errorMessage[index].data.message?errorMessage[index].data.message:(this.$t('app.commonWords.sysException') as string),
});
}
} else {
this.$Notice.error({ title: (this.$t('app.commonWords.saveFailed') as string), desc: (item[this.majorInfoColName]?item[this.majorInfoColName]:"") + (this.$t('app.commonWords.saveFailed') as string) + '!' });
}
});
} }
return successItems; return successItems;
} }
...@@ -2050,15 +2091,19 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -2050,15 +2091,19 @@ export default class MainBase extends Vue implements ControlInterface {
let startOp = (val:boolean)=>{ let startOp = (val:boolean)=>{
if(falg.isPast){ if(falg.isPast){
if(opValue){ if(opValue){
falg.isPast = falg && val; falg.isPast = falg.isPast && val;
}else{ }else{
falg.isPast = falg || val; falg.isPast = falg.isPast || val;
} }
}else{ }else{
falg.isPast = val; falg.isPast = val;
} }
} }
rule[name].forEach((item:any) => { rule[name].forEach((item:any) => {
if((value === null || value === undefined || value === "") && (item.type != 'GROUP')){
startOp(true);
return falg;
}
// 常规规则 // 常规规则
if(item.type == 'SIMPLE'){ if(item.type == 'SIMPLE'){
startOp(!this.$verify.checkFieldSimpleRule(value,item.condOP,item.paramValue,item.ruleInfo,item.paramType,this.curEditRowData,item.isKeyCond)); startOp(!this.$verify.checkFieldSimpleRule(value,item.condOP,item.paramValue,item.ruleInfo,item.paramType,this.curEditRowData,item.isKeyCond));
...@@ -2081,7 +2126,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -2081,7 +2126,7 @@ export default class MainBase extends Vue implements ControlInterface {
} }
// 分组 // 分组
if(item.type == 'GROUP'){ if(item.type == 'GROUP'){
falg = this.verifyDeRules('group',item,"AND",value) falg = this.verifyDeRules('group',item,item.condOP?item.condOP:"AND",value)
if(item.isNotMode){ if(item.isNotMode){
falg.isPast = !falg.isPast; falg.isPast = !falg.isPast;
} }
......
...@@ -325,7 +325,6 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -325,7 +325,6 @@ export default class MainBase extends Vue implements ControlInterface {
} }
/** /**
* 代码表服务对象 * 代码表服务对象
* *
...@@ -334,6 +333,14 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -334,6 +333,14 @@ export default class MainBase extends Vue implements ControlInterface {
*/ */
public codeListService:CodeListService = new CodeListService({ $store: this.$store }); public codeListService:CodeListService = new CodeListService({ $store: this.$store });
/**
* 主信息表格列
*
* @type {string}
* @memberof MainBase
*/
public majorInfoColName:string = "taskname";
/** /**
* 界面UI服务对象 * 界面UI服务对象
* *
...@@ -886,16 +893,18 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -886,16 +893,18 @@ export default class MainBase extends Vue implements ControlInterface {
this.errorMessages = []; this.errorMessages = [];
let validateState = true; let validateState = true;
let index = -1; let index = -1;
for(let item of this.items){ for (let item of this.items) {
index++; let tempMessage: string = '';
if(item.rowDataState === "create" || item.rowDataState === "update"){ index++;
for(let property of Object.keys(this.rules)){ if (item.rowDataState === "create" || item.rowDataState === "update") {
if(!await this.validate(property,item,index)){ for (let property of Object.keys(this.rules)) {
validateState = false; if (!await this.validate(property, item, index)) {
this.errorMessages.push(this.gridItemsModel[index][property].error); validateState = false;
} tempMessage = tempMessage + '<p>' + this.gridItemsModel[index][property].error + '<p>';
}
}
} }
} this.errorMessages.push(tempMessage);
} }
return validateState; return validateState;
} }
...@@ -1020,7 +1029,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1020,7 +1029,7 @@ export default class MainBase extends Vue implements ControlInterface {
} }
let dataInfo = ''; let dataInfo = '';
_datas.forEach((record: any, index: number) => { _datas.forEach((record: any, index: number) => {
let srfmajortext = record.name; let srfmajortext = record.taskname;
if (index < 5) { if (index < 5) {
if (!Object.is(dataInfo, '')) { if (!Object.is(dataInfo, '')) {
dataInfo += '、'; dataInfo += '、';
...@@ -1032,9 +1041,9 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1032,9 +1041,9 @@ export default class MainBase extends Vue implements ControlInterface {
}); });
if (_datas.length < 5) { if (_datas.length < 5) {
dataInfo = dataInfo + ' '+(this.$t('app.gridpage.totle') as string) + _datas.length + (this.$t('app.gridpage.records') as string)+(this.$t('app.gridpage.data') as string); dataInfo = dataInfo + ' ' + (this.$t('app.gridpage.totle') as string) + _datas.length + (this.$t('app.gridpage.records') as string) + (this.$t('app.gridpage.data') as string);
} else { } else {
dataInfo = dataInfo + '...' + ' '+(this.$t('app.gridpage.totle') as string) + _datas.length + (this.$t('app.gridpage.desc2') as string); dataInfo = ' ... ' + (this.$t('app.gridpage.totle') as string) + _datas.length + (this.$t('app.gridpage.records') as string) + (this.$t('app.gridpage.data') as string);
} }
const removeData = () => { const removeData = () => {
...@@ -1338,7 +1347,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1338,7 +1347,7 @@ export default class MainBase extends Vue implements ControlInterface {
return; return;
} }
if (Object.is('load', action)) { if (Object.is('load', action)) {
this.load(data); this.load(data,true);
} }
if (Object.is('remove', action)) { if (Object.is('remove', action)) {
this.remove(data); this.remove(data);
...@@ -1836,11 +1845,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1836,11 +1845,7 @@ export default class MainBase extends Vue implements ControlInterface {
} }
if (!await this.validateAll()) { if (!await this.validateAll()) {
if(this.errorMessages && this.errorMessages.length > 0) { if(this.errorMessages && this.errorMessages.length > 0) {
let descMessage: string = ''; this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: this.errorMessages[0] });
this.errorMessages.forEach((message: any) => {
descMessage = descMessage + '<p>' + message + '<p>';
})
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: descMessage });
} else { } else {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: (this.$t('app.commonWords.rulesException') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: (this.$t('app.commonWords.rulesException') as string) });
} }
...@@ -1881,10 +1886,46 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1881,10 +1886,46 @@ export default class MainBase extends Vue implements ControlInterface {
if(errorItems.length === 0 && successItems.length >0 && !this.isformDruipart){ if(errorItems.length === 0 && successItems.length >0 && !this.isformDruipart){
this.$Notice.success({ title: '', desc: (this.$t('app.commonWords.saveSuccess') as string) }); this.$Notice.success({ title: '', desc: (this.$t('app.commonWords.saveSuccess') as string) });
}else{ }else{
errorItems.forEach((item:any,index:number)=>{ errorItems.forEach((item: any, index: number) => {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: errorMessage[index].data.message }); if(errorMessage[index] && errorMessage[index].data) {
console.error(errorMessage[index]); if(Object.is(errorMessage[index].data.errorKey, 'DupCheck')) {
}); let errorProp: string = errorMessage[index].data.message.match(/\[[a-zA-Z]*\]/)[0];
let name: string = errorProp ? this.service.getNameByProp(errorProp.substr(1, errorProp.length-2)) : '';
if(name) {
let desc: any = this.allColumns.find((column: any) =>{
return Object.is(column.name, name);
});
this.$Notice.error({
title: (this.$t('app.commonWords.createFailed') as string),
desc: (desc ? desc.label : '') + " : " + item[name] + (this.$t('app.commonWords.isExist') as string) + '!',
});
} else {
this.$Notice.error({
title: (this.$t('app.commonWords.createFailed') as string),
desc: errorMessage[index].data.message?errorMessage[index].data.message:(this.$t('app.commonWords.sysException') as string),
});
}
} else if(Object.is(errorMessage[index].data.errorKey, 'DuplicateKeyException')){
let name: string = this.service.getNameByProp("taskid");
if(name){
let desc: any = this.allColumns.find((column: any) =>{
return Object.is(column.name, name);
});
this.$Notice.error({
title: (this.$t('app.commonWords.createFailed') as string),
desc: (desc ? desc.label : '') + " : " + item[name] + (this.$t('app.commonWords.isExist') as string) + '!',
});
}
}else {
this.$Notice.error({
title: (this.$t('app.commonWords.saveFailed') as string),
desc: errorMessage[index].data.message?errorMessage[index].data.message:(this.$t('app.commonWords.sysException') as string),
});
}
} else {
this.$Notice.error({ title: (this.$t('app.commonWords.saveFailed') as string), desc: (item[this.majorInfoColName]?item[this.majorInfoColName]:"") + (this.$t('app.commonWords.saveFailed') as string) + '!' });
}
});
} }
return successItems; return successItems;
} }
...@@ -2143,15 +2184,19 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -2143,15 +2184,19 @@ export default class MainBase extends Vue implements ControlInterface {
let startOp = (val:boolean)=>{ let startOp = (val:boolean)=>{
if(falg.isPast){ if(falg.isPast){
if(opValue){ if(opValue){
falg.isPast = falg && val; falg.isPast = falg.isPast && val;
}else{ }else{
falg.isPast = falg || val; falg.isPast = falg.isPast || val;
} }
}else{ }else{
falg.isPast = val; falg.isPast = val;
} }
} }
rule[name].forEach((item:any) => { rule[name].forEach((item:any) => {
if((value === null || value === undefined || value === "") && (item.type != 'GROUP')){
startOp(true);
return falg;
}
// 常规规则 // 常规规则
if(item.type == 'SIMPLE'){ if(item.type == 'SIMPLE'){
startOp(!this.$verify.checkFieldSimpleRule(value,item.condOP,item.paramValue,item.ruleInfo,item.paramType,this.curEditRowData,item.isKeyCond)); startOp(!this.$verify.checkFieldSimpleRule(value,item.condOP,item.paramValue,item.ruleInfo,item.paramType,this.curEditRowData,item.isKeyCond));
...@@ -2174,7 +2219,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -2174,7 +2219,7 @@ export default class MainBase extends Vue implements ControlInterface {
} }
// 分组 // 分组
if(item.type == 'GROUP'){ if(item.type == 'GROUP'){
falg = this.verifyDeRules('group',item,"AND",value) falg = this.verifyDeRules('group',item,item.condOP?item.condOP:"AND",value)
if(item.isNotMode){ if(item.isNotMode){
falg.isPast = !falg.isPast; falg.isPast = !falg.isPast;
} }
......
...@@ -265,7 +265,6 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -265,7 +265,6 @@ export default class MainBase extends Vue implements ControlInterface {
} }
/** /**
* 代码表服务对象 * 代码表服务对象
* *
...@@ -274,6 +273,14 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -274,6 +273,14 @@ export default class MainBase extends Vue implements ControlInterface {
*/ */
public codeListService:CodeListService = new CodeListService({ $store: this.$store }); public codeListService:CodeListService = new CodeListService({ $store: this.$store });
/**
* 主信息表格列
*
* @type {string}
* @memberof MainBase
*/
public majorInfoColName:string = "personname";
/** /**
* 界面UI服务对象 * 界面UI服务对象
* *
...@@ -788,16 +795,18 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -788,16 +795,18 @@ export default class MainBase extends Vue implements ControlInterface {
this.errorMessages = []; this.errorMessages = [];
let validateState = true; let validateState = true;
let index = -1; let index = -1;
for(let item of this.items){ for (let item of this.items) {
index++; let tempMessage: string = '';
if(item.rowDataState === "create" || item.rowDataState === "update"){ index++;
for(let property of Object.keys(this.rules)){ if (item.rowDataState === "create" || item.rowDataState === "update") {
if(!await this.validate(property,item,index)){ for (let property of Object.keys(this.rules)) {
validateState = false; if (!await this.validate(property, item, index)) {
this.errorMessages.push(this.gridItemsModel[index][property].error); validateState = false;
} tempMessage = tempMessage + '<p>' + this.gridItemsModel[index][property].error + '<p>';
}
}
} }
} this.errorMessages.push(tempMessage);
} }
return validateState; return validateState;
} }
...@@ -922,7 +931,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -922,7 +931,7 @@ export default class MainBase extends Vue implements ControlInterface {
} }
let dataInfo = ''; let dataInfo = '';
_datas.forEach((record: any, index: number) => { _datas.forEach((record: any, index: number) => {
let srfmajortext = record.displayname; let srfmajortext = record.personname;
if (index < 5) { if (index < 5) {
if (!Object.is(dataInfo, '')) { if (!Object.is(dataInfo, '')) {
dataInfo += '、'; dataInfo += '、';
...@@ -934,9 +943,9 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -934,9 +943,9 @@ export default class MainBase extends Vue implements ControlInterface {
}); });
if (_datas.length < 5) { if (_datas.length < 5) {
dataInfo = dataInfo + ' '+(this.$t('app.gridpage.totle') as string) + _datas.length + (this.$t('app.gridpage.records') as string)+(this.$t('app.gridpage.data') as string); dataInfo = dataInfo + ' ' + (this.$t('app.gridpage.totle') as string) + _datas.length + (this.$t('app.gridpage.records') as string) + (this.$t('app.gridpage.data') as string);
} else { } else {
dataInfo = dataInfo + '...' + ' '+(this.$t('app.gridpage.totle') as string) + _datas.length + (this.$t('app.gridpage.desc2') as string); dataInfo = ' ... ' + (this.$t('app.gridpage.totle') as string) + _datas.length + (this.$t('app.gridpage.records') as string) + (this.$t('app.gridpage.data') as string);
} }
const removeData = () => { const removeData = () => {
...@@ -1240,7 +1249,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1240,7 +1249,7 @@ export default class MainBase extends Vue implements ControlInterface {
return; return;
} }
if (Object.is('load', action)) { if (Object.is('load', action)) {
this.load(data); this.load(data,true);
} }
if (Object.is('remove', action)) { if (Object.is('remove', action)) {
this.remove(data); this.remove(data);
...@@ -1733,11 +1742,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1733,11 +1742,7 @@ export default class MainBase extends Vue implements ControlInterface {
} }
if (!await this.validateAll()) { if (!await this.validateAll()) {
if(this.errorMessages && this.errorMessages.length > 0) { if(this.errorMessages && this.errorMessages.length > 0) {
let descMessage: string = ''; this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: this.errorMessages[0] });
this.errorMessages.forEach((message: any) => {
descMessage = descMessage + '<p>' + message + '<p>';
})
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: descMessage });
} else { } else {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: (this.$t('app.commonWords.rulesException') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: (this.$t('app.commonWords.rulesException') as string) });
} }
...@@ -1778,10 +1783,46 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1778,10 +1783,46 @@ export default class MainBase extends Vue implements ControlInterface {
if(errorItems.length === 0 && successItems.length >0 && !this.isformDruipart){ if(errorItems.length === 0 && successItems.length >0 && !this.isformDruipart){
this.$Notice.success({ title: '', desc: (this.$t('app.commonWords.saveSuccess') as string) }); this.$Notice.success({ title: '', desc: (this.$t('app.commonWords.saveSuccess') as string) });
}else{ }else{
errorItems.forEach((item:any,index:number)=>{ errorItems.forEach((item: any, index: number) => {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: errorMessage[index].data.message }); if(errorMessage[index] && errorMessage[index].data) {
console.error(errorMessage[index]); if(Object.is(errorMessage[index].data.errorKey, 'DupCheck')) {
}); let errorProp: string = errorMessage[index].data.message.match(/\[[a-zA-Z]*\]/)[0];
let name: string = errorProp ? this.service.getNameByProp(errorProp.substr(1, errorProp.length-2)) : '';
if(name) {
let desc: any = this.allColumns.find((column: any) =>{
return Object.is(column.name, name);
});
this.$Notice.error({
title: (this.$t('app.commonWords.createFailed') as string),
desc: (desc ? desc.label : '') + " : " + item[name] + (this.$t('app.commonWords.isExist') as string) + '!',
});
} else {
this.$Notice.error({
title: (this.$t('app.commonWords.createFailed') as string),
desc: errorMessage[index].data.message?errorMessage[index].data.message:(this.$t('app.commonWords.sysException') as string),
});
}
} else if(Object.is(errorMessage[index].data.errorKey, 'DuplicateKeyException')){
let name: string = this.service.getNameByProp("userid");
if(name){
let desc: any = this.allColumns.find((column: any) =>{
return Object.is(column.name, name);
});
this.$Notice.error({
title: (this.$t('app.commonWords.createFailed') as string),
desc: (desc ? desc.label : '') + " : " + item[name] + (this.$t('app.commonWords.isExist') as string) + '!',
});
}
}else {
this.$Notice.error({
title: (this.$t('app.commonWords.saveFailed') as string),
desc: errorMessage[index].data.message?errorMessage[index].data.message:(this.$t('app.commonWords.sysException') as string),
});
}
} else {
this.$Notice.error({ title: (this.$t('app.commonWords.saveFailed') as string), desc: (item[this.majorInfoColName]?item[this.majorInfoColName]:"") + (this.$t('app.commonWords.saveFailed') as string) + '!' });
}
});
} }
return successItems; return successItems;
} }
...@@ -2040,15 +2081,19 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -2040,15 +2081,19 @@ export default class MainBase extends Vue implements ControlInterface {
let startOp = (val:boolean)=>{ let startOp = (val:boolean)=>{
if(falg.isPast){ if(falg.isPast){
if(opValue){ if(opValue){
falg.isPast = falg && val; falg.isPast = falg.isPast && val;
}else{ }else{
falg.isPast = falg || val; falg.isPast = falg.isPast || val;
} }
}else{ }else{
falg.isPast = val; falg.isPast = val;
} }
} }
rule[name].forEach((item:any) => { rule[name].forEach((item:any) => {
if((value === null || value === undefined || value === "") && (item.type != 'GROUP')){
startOp(true);
return falg;
}
// 常规规则 // 常规规则
if(item.type == 'SIMPLE'){ if(item.type == 'SIMPLE'){
startOp(!this.$verify.checkFieldSimpleRule(value,item.condOP,item.paramValue,item.ruleInfo,item.paramType,this.curEditRowData,item.isKeyCond)); startOp(!this.$verify.checkFieldSimpleRule(value,item.condOP,item.paramValue,item.ruleInfo,item.paramType,this.curEditRowData,item.isKeyCond));
...@@ -2071,7 +2116,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -2071,7 +2116,7 @@ export default class MainBase extends Vue implements ControlInterface {
} }
// 分组 // 分组
if(item.type == 'GROUP'){ if(item.type == 'GROUP'){
falg = this.verifyDeRules('group',item,"AND",value) falg = this.verifyDeRules('group',item,item.condOP?item.condOP:"AND",value)
if(item.isNotMode){ if(item.isNotMode){
falg.isPast = !falg.isPast; falg.isPast = !falg.isPast;
} }
......
...@@ -37,6 +37,11 @@ ...@@ -37,6 +37,11 @@
git clone -b master $para2 ibzwf/ git clone -b master $para2 ibzwf/
export NODE_OPTIONS=--max-old-space-size=4096 export NODE_OPTIONS=--max-old-space-size=4096
cd ibzwf/ cd ibzwf/
mvn clean package -Pweb
cd ibzwf-app/ibzwf-app-web
mvn -Pweb docker:build
mvn -Pweb docker:push
docker -H $para1 stack deploy --compose-file=src/main/docker/ibzwf-app-web.yaml ibzlab-rt --with-registry-auth
</command> </command>
</hudson.tasks.Shell> </hudson.tasks.Shell>
</builders> </builders>
......
...@@ -12,6 +12,6 @@ CMD echo "The application will start in ${IBIZ_SLEEP}s..." && \ ...@@ -12,6 +12,6 @@ CMD echo "The application will start in ${IBIZ_SLEEP}s..." && \
sleep ${IBIZ_SLEEP} && \ sleep ${IBIZ_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibzwf-app-web.jar java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibzwf-app-web.jar
EXPOSE 8080 EXPOSE 30003
ADD ibzwf-app-web.jar /ibzwf-app-web.jar ADD ibzwf-app-web.jar /ibzwf-app-web.jar
...@@ -3,9 +3,22 @@ services: ...@@ -3,9 +3,22 @@ services:
ibzwf-app-web: ibzwf-app-web:
image: registry.cn-shanghai.aliyuncs.com/ibizsys/ibzwf-app-web:latest image: registry.cn-shanghai.aliyuncs.com/ibizsys/ibzwf-app-web:latest
ports: ports:
- "8080:8080" - "30003:30003"
networks: networks:
- agent_network - agent_network
environment:
- SPRING_CLOUD_NACOS_DISCOVERY_IP=172.16.180.237
- SERVER_PORT=30003
- 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&allowMultiQueries=true
- SPRING_DATASOURCE_DRIVER-CLASS-NAME=com.mysql.jdbc.Driver
- SPRING_DATASOURCE_DEFAULTSCHEMA=a_A_5d9d78509
- NACOS=172.16.102.211:8848
deploy: deploy:
resources: resources:
limits: limits:
......
...@@ -53,6 +53,9 @@ public class webSecurityConfig extends WebSecurityConfigurerAdapter { ...@@ -53,6 +53,9 @@ public class webSecurityConfig extends WebSecurityConfigurerAdapter {
@Value("${ibiz.file.previewpath:ibizutil/preview}") @Value("${ibiz.file.previewpath:ibizutil/preview}")
private String previewpath; private String previewpath;
@Value("${ibiz.auth.excludesPattern:}")
private String[] excludesPattern;
@Autowired @Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
...@@ -116,9 +119,15 @@ public class webSecurityConfig extends WebSecurityConfigurerAdapter { ...@@ -116,9 +119,15 @@ public class webSecurityConfig extends WebSecurityConfigurerAdapter {
// 文件操作 // 文件操作
.antMatchers("/"+downloadpath+"/**").permitAll() .antMatchers("/"+downloadpath+"/**").permitAll()
.antMatchers("/"+uploadpath).permitAll() .antMatchers("/"+uploadpath).permitAll()
.antMatchers("/"+previewpath+"/**").permitAll() .antMatchers("/"+previewpath+"/**");
// 所有请求都需要认证
.anyRequest().authenticated() for (String excludePattern : excludesPattern) {
authenticationTokenFilter.addExcludePattern(excludePattern);
httpSecurity.authorizeRequests().antMatchers(excludePattern).permitAll();
}
// 所有请求都需要认证
httpSecurity.authorizeRequests().anyRequest().authenticated()
// 防止iframe 造成跨域 // 防止iframe 造成跨域
.and().headers().frameOptions().disable(); .and().headers().frameOptions().disable();
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册