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

ibizdev提交

上级 d5369b34
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
"label": "男性", "label": "男性",
"text": "男性", "text": "男性",
"data":"", "data":"",
"codename":"Item_1",
"value": "男", "value": "男",
"disabled": false "disabled": false
...@@ -18,6 +19,7 @@ ...@@ -18,6 +19,7 @@
"label": "女性", "label": "女性",
"text": "女性", "text": "女性",
"data":"", "data":"",
"codename":"Item_2",
"value": "女", "value": "女",
"disabled": false "disabled": false
...@@ -27,6 +29,7 @@ ...@@ -27,6 +29,7 @@
"label": "性别不详", "label": "性别不详",
"text": "性别不详", "text": "性别不详",
"data":"", "data":"",
"codename":"Item_3",
"value": "性别不详", "value": "性别不详",
"disabled": false "disabled": false
......
...@@ -70,6 +70,7 @@ import AppFormatData from './components/app-format-data/app-format-data.vue' ...@@ -70,6 +70,7 @@ import AppFormatData from './components/app-format-data/app-format-data.vue'
import AppUploadFileInfo from './components/app-upload-file-info/app-upload-file-info.vue' import AppUploadFileInfo from './components/app-upload-file-info/app-upload-file-info.vue'
import ContextMenu from './components/context-menu/context-menu' import ContextMenu from './components/context-menu/context-menu'
import AppColumnFormat from './components/app-column-format/app-column-format.vue' import AppColumnFormat from './components/app-column-format/app-column-format.vue'
import AppQuickGroup from './components/app-quick-group/app-quick-group.vue'
// 全局挂载UI实体服务注册中心 // 全局挂载UI实体服务注册中心
window['uiServiceRegister'] = uiServiceRegister; window['uiServiceRegister'] = uiServiceRegister;
...@@ -149,5 +150,6 @@ export const AppComponents = { ...@@ -149,5 +150,6 @@ export const AppComponents = {
v.component('app-upload-file-info', AppUploadFileInfo); v.component('app-upload-file-info', AppUploadFileInfo);
v.component('context-menu',ContextMenu); v.component('context-menu',ContextMenu);
v.component('app-column-format',AppColumnFormat); v.component('app-column-format',AppColumnFormat);
v.component('app-quick-group',AppQuickGroup);
}, },
}; };
\ No newline at end of file
.app-quick-group{
padding: 4px;
background-color: #F1F1F1;
.app-quick-item{
margin-right: 8px;
padding: 8px;
cursor: pointer;
.app-quick-item-label{
margin-left:4px;
}
.app-seleted-item{
display: inline-block;
font-weight: 700;
color: #0c64eb !important;
padding: 4px;
border-bottom: 2px solid;
}
.app-seleted-item:focus {
outline: none;
}
.app-quick-item-counter{
border-radius: 12px;
padding-left: 4px;
font-size: 12px;
font-weight: 400;
vertical-align: middle;
display: inline-block;
width: 18px;
height: 18px;
margin-left: 4px;
background-color: #ddd;
}
}
.app-quick-item :hover{
color: #0c64eb !important;
}
}
\ No newline at end of file
<template>
<div class="app-quick-group">
<span class="app-quick-item" v-for="item in renderArray" :key="item.id" @click="handleClick(item)">
<span v-if="!item.children" :style="{color:item.color}" :class="{'app-seleted-item':isSelectedItem(item)}">
<i v-if=" item.iconcls && !Object.is(item.iconcls, '')" :class="item.iconcls"></i>
<img v-else-if="item.icon && !Object.is(item.icon, '')" :src="item.icon" />
<span class="app-quick-item-label">{{item.label}}</span>
<span v-show="isSelectedItem(item) && counterService && counterService.counterData && counterService.counterData[item.codename]" class="app-quick-item-counter">{{itemTag(item)}}</span>
</span>
<el-dropdown v-if="item.children" style="outline: none !important;" trigger="click" @command="handleCommand($event,item)">
<span :style="{color:item.color}" :class="{'app-seleted-item':isSelectedItem(item)}">
<i v-if=" item.iconcls && !Object.is(item.iconcls, '')" :class="item.iconcls"></i>
<img v-else-if="item.icon && !Object.is(item.icon, '')" :src="item.icon" />
<span class="app-quick-item-label">{{item.label}}</span>
<span v-show="isSelectedItem(item) && counterService && counterService.counterData && counterService.counterData[item.codename]" class="app-quick-item-counter">{{itemTag(item)}}</span>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="childitem in item.children" :command="childitem" :key="childitem.id">
<span :style="{color:childitem.color}">
<i v-if=" childitem.iconcls && !Object.is(childitem.iconcls, '')" :class="childitem.iconcls"></i>
<img v-else-if="childitem.icon && !Object.is(childitem.icon, '')" :src="childitem.icon" />
<span :style="{color:(childitem.label == item.label)?'#0c64eb':''}">{{childitem.label}}</span>
</span>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</span>
</div>
</template>
<script lang="ts">
import { Vue, Component, Prop, Model, Emit } from "vue-property-decorator";
@Component({})
export default class AppQuickGroup extends Vue {
/**
* 传入渲染项
*
* @type {Array<any>}
* @memberof AppQuickGroup
*/
@Prop() public items!:Array<any>;
/**
* 计数器服务名
*
* @type {string}
* @memberof AppQuickGroup
*/
@Prop() public counterService?:any;
/**
* UI选中项
*
* @type {*}
* @memberof AppQuickGroup
*/
public selectedUiItem:any;
/**
* 传入渲染项
*
* @type {Array<any>}
* @memberof AppQuickGroup
*/
get renderArray(){
if(this.items && this.items.length >0){
this.selectedUiItem = this.items[0];
this.handleClick(this.items[0]);
return this.handleDataSet(this.items)
}else{
return [];
}
}
public itemTag(item:any){
if(this.counterService && this.counterService.counterData && item.codename){
return this.counterService.counterData[item.codename];
}else{
return "";
}
}
/**
* 是否选中当前项
*
* @param item 传入当前项
* @memberof AppQuickGroup
*/
public isSelectedItem(item:any){
if(this.selectedUiItem && (this.selectedUiItem.id === item.id)){
return true;
}else{
return false;
}
}
/**
* 处理代码表返回数据(树状结构)
*
* @param result 返回数组
* @memberof AppQuickGroup
*/
public handleDataSet(result:Array<any>){
let list:Array<any> = [];
if(result.length === 0){
return list;
}
result.forEach((codeItem:any) =>{
if(!codeItem.pvalue){
let valueField:string = codeItem.value;
this.setChildCodeItems(valueField,result,codeItem);
list.push(codeItem);
}
})
return list;
}
/**
* 处理非根节点数据
*
* @param pValue 父值
* @param result 返回数组
* @param codeItem 代码项
* @memberof AppQuickGroup
*/
public setChildCodeItems(pValue:string,result:Array<any>,codeItem:any){
result.forEach((item:any) =>{
if(item.pvalue == pValue){
let valueField:string = item.value;
this.setChildCodeItems(valueField,result,item);
if(!codeItem.children){
codeItem.children = [];
}
codeItem.children.push(item);
}
})
}
/**
* 处理点击事件
*
* @param $event 值
* @param isswitch 是否切换UI选中项
* @memberof AppQuickGroup
*/
public handleClick($event:any,isswitch:boolean = true){
this.$emit('valuechange',$event);
if(isswitch){
this.selectedUiItem = $event;
}
this.$forceUpdate();
}
/**
* 处理子项点击事件
*
* @param $event 值
* @param item 父值
* @memberof AppQuickGroup
*/
public handleCommand($event:any,item:any){
item.label = $event.label;
item.codename = $event.codename;
this.handleClick($event,false);
}
}
</script>
<style lang='less'>
@import "./app-quick-group.less";
</style>
\ No newline at end of file
...@@ -64,6 +64,12 @@ export default class AppUser extends Vue { ...@@ -64,6 +64,12 @@ export default class AppUser extends Vue {
_user.avatar = this.$store.getters.getAppData().context.srfusericonpath; _user.avatar = this.$store.getters.getAppData().context.srfusericonpath;
} }
} }
if(localStorage.getItem("user")){
let user:any = JSON.parse(localStorage.getItem("user") as string);
if(user && user.personname){
_user.name = user.personname;
}
}
Object.assign(this.user,_user,{ Object.assign(this.user,_user,{
time: +new Date time: +new Date
}); });
......
...@@ -117,6 +117,9 @@ export default class MDViewEngine extends ViewEngine { ...@@ -117,6 +117,9 @@ export default class MDViewEngine extends ViewEngine {
if (Object.is(eventName, 'load')) { if (Object.is(eventName, 'load')) {
this.onSearchFormLoad(args); this.onSearchFormLoad(args);
} }
if (Object.is(eventName, 'search')) {
this.onSearchFormLoad(args);
}
} }
/** /**
...@@ -157,6 +160,20 @@ export default class MDViewEngine extends ViewEngine { ...@@ -157,6 +160,20 @@ export default class MDViewEngine extends ViewEngine {
this.isLoadDefault = true; this.isLoadDefault = true;
} }
/**
* 搜索表单搜索
*
* @param {*} [args={}]
* @memberof MDViewEngine
*/
public onSearchFormSearch(args: any = {}): void {
if (this.getMDCtrl() && this.isLoadDefault) {
const tag = this.getMDCtrl().name;
this.setViewState2({ tag: tag, action: 'load', viewdata: this.view.viewparams });
}
this.isLoadDefault = true;
}
/** /**
* 处理实体界面行为 * 处理实体界面行为
* *
...@@ -372,6 +389,15 @@ export default class MDViewEngine extends ViewEngine { ...@@ -372,6 +389,15 @@ export default class MDViewEngine 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.qucikGroupData){
Object.assign(otherQueryParam,this.view.qucikGroupData);
}
if(this.view && this.view.qucikFormData){
Object.assign(otherQueryParam,this.view.qucikFormData);
}
Object.assign(arg,{viewparams:otherQueryParam});
} }
/** /**
......
...@@ -17,6 +17,7 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => { ...@@ -17,6 +17,7 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
label: '男性', label: '男性',
text: '男性', text: '男性',
"data":"", "data":"",
"codename":"Item_1",
value: '男', value: '男',
disabled: false, disabled: false,
...@@ -26,6 +27,7 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => { ...@@ -26,6 +27,7 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
label: '女性', label: '女性',
text: '女性', text: '女性',
"data":"", "data":"",
"codename":"Item_2",
value: '女', value: '女',
disabled: false, disabled: false,
...@@ -35,6 +37,7 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => { ...@@ -35,6 +37,7 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
label: '性别不详', label: '性别不详',
text: '性别不详', text: '性别不详',
"data":"", "data":"",
"codename":"Item_3",
value: '性别不详', value: '性别不详',
disabled: false, disabled: false,
......
...@@ -62,6 +62,7 @@ ...@@ -62,6 +62,7 @@
v-show="isExpandSearchForm" v-show="isExpandSearchForm"
loaddraftAction="FilterGetDraft" loaddraftAction="FilterGetDraft"
loadAction="FilterGet" loadAction="FilterGet"
name="searchform" name="searchform"
ref='searchform' ref='searchform'
@save="searchform_save($event)" @save="searchform_save($event)"
...@@ -102,6 +103,7 @@ ...@@ -102,6 +103,7 @@
</div> </div>
</template> </template>
<script lang='tsx'> <script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator'; import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils'; import { UIActionTool,Util } from '@/utils';
...@@ -112,6 +114,8 @@ import GridViewEngine from '@engine/view/grid-view-engine'; ...@@ -112,6 +114,8 @@ import GridViewEngine from '@engine/view/grid-view-engine';
import IBZDepartmentUIService from '@/uiservice/ibzdepartment/ibzdepartment-ui-service'; import IBZDepartmentUIService from '@/uiservice/ibzdepartment/ibzdepartment-ui-service';
import CodeListService from "@service/app/codelist-service";
@Component({ @Component({
components: { components: {
...@@ -1285,6 +1289,7 @@ export default class IBZDepartmentGridViewBase extends Vue { ...@@ -1285,6 +1289,7 @@ export default class IBZDepartmentGridViewBase extends Vue {
*/ */
public isSingleSelect: boolean = false; public isSingleSelect: boolean = false;
/** /**
* 是否嵌入关系界面 * 是否嵌入关系界面
* *
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
v-show="isExpandSearchForm" v-show="isExpandSearchForm"
loaddraftAction="FilterGetDraft" loaddraftAction="FilterGetDraft"
loadAction="FilterGet" loadAction="FilterGet"
name="searchform" name="searchform"
ref='searchform' ref='searchform'
@save="searchform_save($event)" @save="searchform_save($event)"
......
...@@ -69,6 +69,7 @@ ...@@ -69,6 +69,7 @@
v-show="isExpandSearchForm" v-show="isExpandSearchForm"
loaddraftAction="FilterGetDraft" loaddraftAction="FilterGetDraft"
loadAction="FilterGet" loadAction="FilterGet"
name="searchform" name="searchform"
ref='searchform' ref='searchform'
@save="searchform_save($event)" @save="searchform_save($event)"
...@@ -109,6 +110,7 @@ ...@@ -109,6 +110,7 @@
</div> </div>
</template> </template>
<script lang='tsx'> <script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator'; import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils'; import { UIActionTool,Util } from '@/utils';
...@@ -119,6 +121,8 @@ import GridViewEngine from '@engine/view/grid-view-engine'; ...@@ -119,6 +121,8 @@ import GridViewEngine from '@engine/view/grid-view-engine';
import IBZEmployeeUIService from '@/uiservice/ibzemployee/ibzemployee-ui-service'; import IBZEmployeeUIService from '@/uiservice/ibzemployee/ibzemployee-ui-service';
import CodeListService from "@service/app/codelist-service";
@Component({ @Component({
components: { components: {
...@@ -1325,6 +1329,7 @@ export default class IBZEmployeeGridViewBase extends Vue { ...@@ -1325,6 +1329,7 @@ export default class IBZEmployeeGridViewBase extends Vue {
*/ */
public isSingleSelect: boolean = false; public isSingleSelect: boolean = false;
/** /**
* 是否嵌入关系界面 * 是否嵌入关系界面
* *
......
...@@ -62,6 +62,7 @@ ...@@ -62,6 +62,7 @@
v-show="isExpandSearchForm" v-show="isExpandSearchForm"
loaddraftAction="FilterGetDraft" loaddraftAction="FilterGetDraft"
loadAction="FilterGet" loadAction="FilterGet"
name="searchform" name="searchform"
ref='searchform' ref='searchform'
@save="searchform_save($event)" @save="searchform_save($event)"
...@@ -102,6 +103,7 @@ ...@@ -102,6 +103,7 @@
</div> </div>
</template> </template>
<script lang='tsx'> <script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator'; import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils'; import { UIActionTool,Util } from '@/utils';
...@@ -112,6 +114,8 @@ import GridViewEngine from '@engine/view/grid-view-engine'; ...@@ -112,6 +114,8 @@ import GridViewEngine from '@engine/view/grid-view-engine';
import IBZOrganizationUIService from '@/uiservice/ibzorganization/ibzorganization-ui-service'; import IBZOrganizationUIService from '@/uiservice/ibzorganization/ibzorganization-ui-service';
import CodeListService from "@service/app/codelist-service";
@Component({ @Component({
components: { components: {
...@@ -1275,6 +1279,7 @@ export default class IBZOrganizationGridViewBase extends Vue { ...@@ -1275,6 +1279,7 @@ export default class IBZOrganizationGridViewBase extends Vue {
*/ */
public isSingleSelect: boolean = false; public isSingleSelect: boolean = false;
/** /**
* 是否嵌入关系界面 * 是否嵌入关系界面
* *
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
v-show="isExpandSearchForm" v-show="isExpandSearchForm"
loaddraftAction="FilterGetDraft" loaddraftAction="FilterGetDraft"
loadAction="FilterGet" loadAction="FilterGet"
name="searchform" name="searchform"
ref='searchform' ref='searchform'
@save="searchform_save($event)" @save="searchform_save($event)"
......
...@@ -216,11 +216,16 @@ ...@@ -216,11 +216,16 @@
>.view-card{ >.view-card{
>.ivu-card-body{ >.ivu-card-body{
>.content-container{ >.content-container{
.quick-group-container,.quick-search-container,.quick-search-input{ .quick-group-container,.quick-search-input{
float: left; float: left;
margin-top: 6px; margin-top: 6px;
margin-bottom: 6px; margin-bottom: 6px;
} }
.quick-search-container{
float: left;
margin-top: -2px;
margin-bottom: 6px;
}
} }
} }
} }
......
...@@ -800,7 +800,7 @@ export default class DefaultBase extends Vue implements ControlInterface { ...@@ -800,7 +800,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
if (!this.formValidateStatus()) { if (!this.formValidateStatus()) {
return; return;
} }
this.$emit('load', this.data); this.$emit('search', this.data);
} }
/** /**
...@@ -812,7 +812,7 @@ export default class DefaultBase extends Vue implements ControlInterface { ...@@ -812,7 +812,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
if (!this.formValidateStatus()) { if (!this.formValidateStatus()) {
return; return;
} }
this.$emit('load', this.data); this.$emit('search', this.data);
} }
/** /**
......
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
ref='multipleTable' :data="items" :show-header="!isHideHeader"> ref='multipleTable' :data="items" :show-header="!isHideHeader">
<template slot="empty"> <template slot="empty">
无数据 无数据
<span class="quick-toolbar">
</span>
</template> </template>
<template v-if="!isSingleSelect"> <template v-if="!isSingleSelect">
<el-table-column align="center" type='selection' :width="checkboxColWidth"></el-table-column> <el-table-column align="center" type='selection' :width="checkboxColWidth"></el-table-column>
...@@ -103,7 +105,7 @@ ...@@ -103,7 +105,7 @@
</div> </div>
</poptip> </poptip>
</span> </span>
<span class="batch-toolbar"> <span v-if="selections.length > 0" class="batch-toolbar">
</span> </span>
<span class="page-button"><i-button icon="md-refresh" :title="$t('app.gridpage.refresh')" @click="pageRefresh()"></i-button></span>&nbsp; <span class="page-button"><i-button icon="md-refresh" :title="$t('app.gridpage.refresh')" @click="pageRefresh()"></i-button></span>&nbsp;
<span> <span>
...@@ -663,7 +665,9 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -663,7 +665,9 @@ export default class MainBase extends Vue implements ControlInterface {
const parentdata: any = {}; const parentdata: any = {};
this.$emit('beforeload', parentdata); this.$emit('beforeload', parentdata);
Object.assign(arg, parentdata); Object.assign(arg, parentdata);
Object.assign(arg,{viewparams:this.viewparams}); let tempViewParams:any = parentdata.viewparams?parentdata.viewparams:{};
Object.assign(tempViewParams,JSON.parse(JSON.stringify(this.viewparams)));
Object.assign(arg,{viewparams:tempViewParams});
const post: Promise<any> = this.service.search(this.fetchAction,JSON.parse(JSON.stringify(this.context)), arg, this.showBusyIndicator); const post: Promise<any> = this.service.search(this.fetchAction,JSON.parse(JSON.stringify(this.context)), arg, this.showBusyIndicator);
post.then((response: any) => { post.then((response: any) => {
if (!response.status || response.status !== 200) { if (!response.status || response.status !== 200) {
......
...@@ -29,6 +29,14 @@ ...@@ -29,6 +29,14 @@
display: inline; display: inline;
} }
.el-table { .el-table {
.quick-toolbar{
display: inline-block;
button{
background: #ebf3fb;
color: #2575ca;
border: 0;
}
}
.el-tooltip{ .el-tooltip{
.ivu-form-item{ .ivu-form-item{
margin-bottom: unset !important; margin-bottom: unset !important;
...@@ -51,13 +59,24 @@ ...@@ -51,13 +59,24 @@
position: absolute; position: absolute;
left: 0; left: 0;
} }
.batch-toolbar{
position: absolute;
left: 105px;
>.toolbar-container{
button {
font-size: 16px;
min-width: 32px;
height: 32px;
margin-right: 4px;
margin-top: 0;
margin-bottom: 0;
}
}
}
} }
.el-table__body-wrapper{ .el-table__body-wrapper{
height: calc(100% - 45px) !important; height: calc(100% - 45px) !important;
} }
.el-table__empty-block{
height: auto !important;
}
} }
.ivu-modal-content{ .ivu-modal-content{
.footer{ .footer{
...@@ -68,4 +87,5 @@ ...@@ -68,4 +87,5 @@
} }
// this is less // this is less
...@@ -756,7 +756,7 @@ export default class DefaultBase extends Vue implements ControlInterface { ...@@ -756,7 +756,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
if (!this.formValidateStatus()) { if (!this.formValidateStatus()) {
return; return;
} }
this.$emit('load', this.data); this.$emit('search', this.data);
} }
/** /**
...@@ -768,7 +768,7 @@ export default class DefaultBase extends Vue implements ControlInterface { ...@@ -768,7 +768,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
if (!this.formValidateStatus()) { if (!this.formValidateStatus()) {
return; return;
} }
this.$emit('load', this.data); this.$emit('search', this.data);
} }
/** /**
......
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
ref='multipleTable' :data="items" :show-header="!isHideHeader"> ref='multipleTable' :data="items" :show-header="!isHideHeader">
<template slot="empty"> <template slot="empty">
无数据 无数据
<span class="quick-toolbar">
</span>
</template> </template>
<template v-if="!isSingleSelect"> <template v-if="!isSingleSelect">
<el-table-column align="center" type='selection' :width="checkboxColWidth"></el-table-column> <el-table-column align="center" type='selection' :width="checkboxColWidth"></el-table-column>
...@@ -119,7 +121,7 @@ ...@@ -119,7 +121,7 @@
</div> </div>
</poptip> </poptip>
</span> </span>
<span class="batch-toolbar"> <span v-if="selections.length > 0" class="batch-toolbar">
</span> </span>
<span class="page-button"><i-button icon="md-refresh" :title="$t('app.gridpage.refresh')" @click="pageRefresh()"></i-button></span>&nbsp; <span class="page-button"><i-button icon="md-refresh" :title="$t('app.gridpage.refresh')" @click="pageRefresh()"></i-button></span>&nbsp;
<span> <span>
...@@ -693,7 +695,9 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -693,7 +695,9 @@ export default class MainBase extends Vue implements ControlInterface {
const parentdata: any = {}; const parentdata: any = {};
this.$emit('beforeload', parentdata); this.$emit('beforeload', parentdata);
Object.assign(arg, parentdata); Object.assign(arg, parentdata);
Object.assign(arg,{viewparams:this.viewparams}); let tempViewParams:any = parentdata.viewparams?parentdata.viewparams:{};
Object.assign(tempViewParams,JSON.parse(JSON.stringify(this.viewparams)));
Object.assign(arg,{viewparams:tempViewParams});
const post: Promise<any> = this.service.search(this.fetchAction,JSON.parse(JSON.stringify(this.context)), arg, this.showBusyIndicator); const post: Promise<any> = this.service.search(this.fetchAction,JSON.parse(JSON.stringify(this.context)), arg, this.showBusyIndicator);
post.then((response: any) => { post.then((response: any) => {
if (!response.status || response.status !== 200) { if (!response.status || response.status !== 200) {
......
...@@ -29,6 +29,14 @@ ...@@ -29,6 +29,14 @@
display: inline; display: inline;
} }
.el-table { .el-table {
.quick-toolbar{
display: inline-block;
button{
background: #ebf3fb;
color: #2575ca;
border: 0;
}
}
.el-tooltip{ .el-tooltip{
.ivu-form-item{ .ivu-form-item{
margin-bottom: unset !important; margin-bottom: unset !important;
...@@ -51,13 +59,24 @@ ...@@ -51,13 +59,24 @@
position: absolute; position: absolute;
left: 0; left: 0;
} }
.batch-toolbar{
position: absolute;
left: 105px;
>.toolbar-container{
button {
font-size: 16px;
min-width: 32px;
height: 32px;
margin-right: 4px;
margin-top: 0;
margin-bottom: 0;
}
}
}
} }
.el-table__body-wrapper{ .el-table__body-wrapper{
height: calc(100% - 45px) !important; height: calc(100% - 45px) !important;
} }
.el-table__empty-block{
height: auto !important;
}
} }
.ivu-modal-content{ .ivu-modal-content{
.footer{ .footer{
...@@ -68,4 +87,5 @@ ...@@ -68,4 +87,5 @@
} }
// this is less // this is less
...@@ -806,7 +806,7 @@ export default class DefaultBase extends Vue implements ControlInterface { ...@@ -806,7 +806,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
if (!this.formValidateStatus()) { if (!this.formValidateStatus()) {
return; return;
} }
this.$emit('load', this.data); this.$emit('search', this.data);
} }
/** /**
...@@ -818,7 +818,7 @@ export default class DefaultBase extends Vue implements ControlInterface { ...@@ -818,7 +818,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
if (!this.formValidateStatus()) { if (!this.formValidateStatus()) {
return; return;
} }
this.$emit('load', this.data); this.$emit('search', this.data);
} }
/** /**
......
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
ref='multipleTable' :data="items" :show-header="!isHideHeader"> ref='multipleTable' :data="items" :show-header="!isHideHeader">
<template slot="empty"> <template slot="empty">
无数据 无数据
<span class="quick-toolbar">
</span>
</template> </template>
<template v-if="!isSingleSelect"> <template v-if="!isSingleSelect">
<el-table-column align="center" type='selection' :width="checkboxColWidth"></el-table-column> <el-table-column align="center" type='selection' :width="checkboxColWidth"></el-table-column>
...@@ -96,7 +98,7 @@ ...@@ -96,7 +98,7 @@
</div> </div>
</poptip> </poptip>
</span> </span>
<span class="batch-toolbar"> <span v-if="selections.length > 0" class="batch-toolbar">
</span> </span>
<span class="page-button"><i-button icon="md-refresh" :title="$t('app.gridpage.refresh')" @click="pageRefresh()"></i-button></span>&nbsp; <span class="page-button"><i-button icon="md-refresh" :title="$t('app.gridpage.refresh')" @click="pageRefresh()"></i-button></span>&nbsp;
<span> <span>
...@@ -649,7 +651,9 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -649,7 +651,9 @@ export default class MainBase extends Vue implements ControlInterface {
const parentdata: any = {}; const parentdata: any = {};
this.$emit('beforeload', parentdata); this.$emit('beforeload', parentdata);
Object.assign(arg, parentdata); Object.assign(arg, parentdata);
Object.assign(arg,{viewparams:this.viewparams}); let tempViewParams:any = parentdata.viewparams?parentdata.viewparams:{};
Object.assign(tempViewParams,JSON.parse(JSON.stringify(this.viewparams)));
Object.assign(arg,{viewparams:tempViewParams});
const post: Promise<any> = this.service.search(this.fetchAction,JSON.parse(JSON.stringify(this.context)), arg, this.showBusyIndicator); const post: Promise<any> = this.service.search(this.fetchAction,JSON.parse(JSON.stringify(this.context)), arg, this.showBusyIndicator);
post.then((response: any) => { post.then((response: any) => {
if (!response.status || response.status !== 200) { if (!response.status || response.status !== 200) {
......
...@@ -29,6 +29,14 @@ ...@@ -29,6 +29,14 @@
display: inline; display: inline;
} }
.el-table { .el-table {
.quick-toolbar{
display: inline-block;
button{
background: #ebf3fb;
color: #2575ca;
border: 0;
}
}
.el-tooltip{ .el-tooltip{
.ivu-form-item{ .ivu-form-item{
margin-bottom: unset !important; margin-bottom: unset !important;
...@@ -51,13 +59,24 @@ ...@@ -51,13 +59,24 @@
position: absolute; position: absolute;
left: 0; left: 0;
} }
.batch-toolbar{
position: absolute;
left: 105px;
>.toolbar-container{
button {
font-size: 16px;
min-width: 32px;
height: 32px;
margin-right: 4px;
margin-top: 0;
margin-bottom: 0;
}
}
}
} }
.el-table__body-wrapper{ .el-table__body-wrapper{
height: calc(100% - 45px) !important; height: calc(100% - 45px) !important;
} }
.el-table__empty-block{
height: auto !important;
}
} }
.ivu-modal-content{ .ivu-modal-content{
.footer{ .footer{
...@@ -68,4 +87,5 @@ ...@@ -68,4 +87,5 @@
} }
// this is less // this is less
...@@ -37,11 +37,11 @@ ...@@ -37,11 +37,11 @@
git clone -b master $para2 ibzou/ git clone -b master $para2 ibzou/
export NODE_OPTIONS=--max-old-space-size=4096 export NODE_OPTIONS=--max-old-space-size=4096
cd ibzou/ cd ibzou/
mvn clean package -Papi mvn clean package -Pweb
cd ibzou-provider/ibzou-provider-api cd ibzou-app/ibzou-app-web
mvn -Papi docker:build mvn -Pweb docker:build
mvn -Papi docker:push mvn -Pweb docker:push
docker -H $para1 stack deploy --compose-file=src/main/docker/ibzou-provider-api.yaml ibzlab-rt --with-registry-auth docker -H $para1 stack deploy --compose-file=src/main/docker/ibzou-app-web.yaml ibzlab-rt --with-registry-auth
</command> </command>
</hudson.tasks.Shell> </hudson.tasks.Shell>
</builders> </builders>
......
...@@ -9,6 +9,6 @@ CMD echo "The application will start in ${IBZ_SLEEP}s..." && \ ...@@ -9,6 +9,6 @@ CMD echo "The application will start in ${IBZ_SLEEP}s..." && \
sleep ${IBZ_SLEEP} && \ sleep ${IBZ_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibzou-app-web.jar java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibzou-app-web.jar
EXPOSE 8080 EXPOSE 30001
ADD ibzou-app-web.jar /ibzou-app-web.jar ADD ibzou-app-web.jar /ibzou-app-web.jar
...@@ -3,9 +3,11 @@ services: ...@@ -3,9 +3,11 @@ services:
ibzou-app-web: ibzou-app-web:
image: registry.cn-shanghai.aliyuncs.com/ibizsys/ibzou-app-web:latest image: registry.cn-shanghai.aliyuncs.com/ibizsys/ibzou-app-web:latest
ports: ports:
- "8080:8080" - "30001:30001"
networks: networks:
- agent_network - agent_network
environment:
SPRING_CLOUD_NACOS_DISCOVERY_IP: 172.16.180.237
deploy: deploy:
mode: replicated mode: replicated
replicas: 1 replicas: 1
......
server: server:
port: 8080 port: 30001
\ No newline at end of file \ No newline at end of file
server: server:
port: 8080 port: 30001
#zuul网关路由设置 #zuul网关路由设置
zuul: zuul:
......
...@@ -9,6 +9,6 @@ CMD echo "The application will start in ${IBZ_SLEEP}s..." && \ ...@@ -9,6 +9,6 @@ CMD echo "The application will start in ${IBZ_SLEEP}s..." && \
sleep ${IBZ_SLEEP} && \ sleep ${IBZ_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibzou-provider-api.jar java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibzou-provider-api.jar
EXPOSE 40001 EXPOSE 8081
ADD ibzou-provider-api.jar /ibzou-provider-api.jar ADD ibzou-provider-api.jar /ibzou-provider-api.jar
...@@ -3,11 +3,9 @@ services: ...@@ -3,11 +3,9 @@ services:
ibzou-provider-api: ibzou-provider-api:
image: registry.cn-shanghai.aliyuncs.com/ibizsys/ibzou-provider-api:latest image: registry.cn-shanghai.aliyuncs.com/ibizsys/ibzou-provider-api:latest
ports: ports:
- "40001:40001" - "8081:8081"
networks: networks:
- agent_network - agent_network
environment:
SPRING_CLOUD_NACOS_DISCOVERY_IP: 172.16.180.237
deploy: deploy:
mode: replicated mode: replicated
replicas: 1 replicas: 1
......
server: server:
port: 40001 port: 8081
\ No newline at end of file \ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册