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

ibiz4j 部署微服务应用 [ibz-lite,应用]

上级 614107f0
......@@ -108,43 +108,43 @@
#### 基础文件
修复图表视图、图表部件视图获取快速分组和搜索栏参数及样式 [cc9ec9d8](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/cc9ec9d88483c7f14ccd519897778635b9385b14)
修复图表视图、图表部件视图获取快速分组和搜索栏参数及样式 [cc9ec9d8](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/cc9ec9d88483c7f14ccd519897778635b9385b14)
修复工具栏按钮异常问题 [f66edc45](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/f66edc45e909ec0d1fbb47861c8ea336819ce0aa)
修复工具栏按钮异常问题 [f66edc45](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/f66edc45e909ec0d1fbb47861c8ea336819ce0aa)
修复修复下拉列表框不加载数据异常 [503581d7](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/503581d771cbb628a5cfb170bb10e68808cbaf5b)
修复修复下拉列表框不加载数据异常 [503581d7](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/503581d771cbb628a5cfb170bb10e68808cbaf5b)
修复关系界面内嵌视图出现不加载的情况 [c1d6db61](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/c1d6db6130ff6a5768f9d982e75949cde86307f0)
修复关系界面内嵌视图出现不加载的情况 [c1d6db61](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/c1d6db6130ff6a5768f9d982e75949cde86307f0)
新增部件服务增加根据后台标识获取前台数据标识名称能力 [a07d7088](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/a07d70887e5044f415a29d92f136ef910231a2dd)
新增部件服务增加根据后台标识获取前台数据标识名称能力 [a07d7088](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/a07d70887e5044f415a29d92f136ef910231a2dd)
新增图标绘制组件 [3a160350](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/3a1603502740cde5ee12051bd2ee3c76abe2b554)[9653dd15](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/9653dd15cdef7b97ce0c022d78c6236d3bf9d8fe)
新增图标绘制组件 [3a160350](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/3a1603502740cde5ee12051bd2ee3c76abe2b554)[9653dd15](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/9653dd15cdef7b97ce0c022d78c6236d3bf9d8fe)
新增响应头错误状态汇总 [3cb2a17f](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/3cb2a17f78d262efab0914a3d025de29e36d5641)
新增响应头错误状态汇总 [3cb2a17f](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/3cb2a17f78d262efab0914a3d025de29e36d5641)
新增透视表表格插件 [dbebc115](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/dbebc115cfa9d90cca2518db27646c935fc5c11c)
新增透视表表格插件 [dbebc115](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/dbebc115cfa9d90cca2518db27646c935fc5c11c)
新增代码表获取代码表项能力 [06c53dca](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/06c53dca2963165c8593cf2b7f2ba6f9e0f13f0c)[f856c55f](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/f856c55f6983bfab490848dfefed0a8ca29bac9b)
新增代码表获取代码表项能力 [06c53dca](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/06c53dca2963165c8593cf2b7f2ba6f9e0f13f0c)[f856c55f](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/f856c55f6983bfab490848dfefed0a8ca29bac9b)
新增实体地图视图引擎 [5ccb40ba](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/5ccb40ba780548f7758e0cf4027fb8a16affc56d)
新增实体地图视图引擎 [5ccb40ba](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/5ccb40ba780548f7758e0cf4027fb8a16affc56d)
新增实体地图视图(部件视图)引擎 [da07aede](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/da07aede9151f474740da1cabcaa10e8bc1b3749)
新增实体地图视图(部件视图)引擎 [da07aede](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/da07aede9151f474740da1cabcaa10e8bc1b3749)
新增地图定位组件 [b76bf4ba](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/b76bf4ba09630d477e1a75637a76b39974b8ff2f)[19c862e7](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/19c862e71eabdf4e10a56118ea32c3f23793e68b)[1683f20e](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/1683f20e070d0f2a1c738929ca4eb018d61eaea0)
新增地图定位组件 [b76bf4ba](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/b76bf4ba09630d477e1a75637a76b39974b8ff2f)[19c862e7](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/19c862e71eabdf4e10a56118ea32c3f23793e68b)[1683f20e](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/1683f20e070d0f2a1c738929ca4eb018d61eaea0)
优化数据选择下拉时清空旧数据 [a42584a4](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/a42584a4235a0beb0d155b47890e5e685d9eb5ac)
优化数据选择下拉时清空旧数据 [a42584a4](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/a42584a4235a0beb0d155b47890e5e685d9eb5ac)
优化视图消息样式 [22406733](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/22406733fecb566929770e688e5d06fa7b6ed5d1)
优化视图消息样式 [22406733](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/22406733fecb566929770e688e5d06fa7b6ed5d1)
优化代码表组件增加图片识别 [853d4ad4](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/853d4ad406a35cfb013dbc18188aeb45d148b8b6)[bc879205](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/bc879205eb35dba743974a9af189de0292dd4979)
优化代码表组件增加图片识别 [853d4ad4](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/853d4ad406a35cfb013dbc18188aeb45d148b8b6)[bc879205](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/bc879205eb35dba743974a9af189de0292dd4979)
优化工作流动态编辑视图加载逻辑 [19760cf6](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/19760cf6f32f9bb47aa75ffe13ca5db8639cc250)
优化工作流动态编辑视图加载逻辑 [19760cf6](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/19760cf6f32f9bb47aa75ffe13ca5db8639cc250)
优化引用avue.min.js的文件路径 [e4a9d11d](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/e4a9d11db906cc8e18a0f290cb66fd2c3fc277a1)
优化引用avue.min.js的文件路径 [e4a9d11d](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/e4a9d11db906cc8e18a0f290cb66fd2c3fc277a1)
优化评分器编辑器支持代码表逻辑 [28721171](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/28721171ffa8d5adae6d9b567838041e320c5767)[453c1e6c](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/453c1e6c79b31a49d189c40a4537a60fa0dd0023)
优化评分器编辑器支持代码表逻辑 [28721171](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/28721171ffa8d5adae6d9b567838041e320c5767)[453c1e6c](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/453c1e6c79b31a49d189c40a4537a60fa0dd0023)
优化表单项label长度过长显示异常和支持label显示html [fc754a29](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/fc754a294d553d70d4e634df940069012a16a7e1)[ed804eb6](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7/commit/ed804eb6b5bccab109b92edd5419310363bc0b68)
优化表单项label长度过长显示异常和支持label显示html [fc754a29](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/fc754a294d553d70d4e634df940069012a16a7e1)[ed804eb6](http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7res/commit/ed804eb6b5bccab109b92edd5419310363bc0b68)
## v7.0.0-alpha.21 [2020-10-31]
......
......@@ -101,6 +101,9 @@ import AppImageRomate from './components/app-image-romate/app-image-romate.vue'
import { MenuIcon } from './components/menu-icon/menu-icon'
import AppVuePivottable from './components/app-vue-pivottable/app-vue-pivottable.vue';
import AppMapPosition from './components/app-map-position/app-map-position.vue';
import AppSortBar from './components/app-sort-bar/app-sort-bar.vue';
import AppAfterTime from './components/app-after-time/app-after-time.vue';
import AppInputIp from './components/app-input-ip/app-input-ip.vue';
// 全局挂载UI实体服务注册中心
window['uiServiceRegister'] = uiServiceRegister;
......@@ -217,5 +220,8 @@ export const AppComponents = {
v.component('menu-icon', MenuIcon);
v.component('app-vue-pivottable', AppVuePivottable);
v.component('app-map-position', AppMapPosition);
v.component('app-sort-bar', AppSortBar);
v.component('app-after-time', AppAfterTime);
v.component('app-input-ip', AppInputIp);
},
};
\ No newline at end of file
<template>
<div class="app-after-time">
<span v-if="diffTime =='minutes'">{{curvalue}}{{$t('components.appAfterTime.minutesAgo')}}</span>
<span v-if="diffTime =='hours'">{{curvalue}}{{$t('components.appAfterTime.hoursAgo')}}</span>
<span v-if="diffTime =='days'">{{curvalue}}{{$t('components.appAfterTime.dayAgo')}}</span>
<span v-if="diffTime =='mouth'">{{curvalue}}{{$t('components.appAfterTime.monthsAgo')}}</span>
<span v-if="diffTime =='years'">{{curvalue}}{{$t('components.appAfterTime.yearsAgo')}}</span>
<span v-if="!diffTime">&nbsp;</span>
</div>
</template>
<script lang="ts">
import { Vue, Component, Prop, Emit, Watch, Model } from 'vue-property-decorator';
import { Subject, Subscription } from 'rxjs';
@Component({})
export default class AppAfterTime extends Vue {
/**
* 属性项名称
*
* @type {string}
* @memberof AppAfterTime
*/
@Prop() public name!: string;
/**
* 应用上下文
*
* @type {any}
* @memberof AppAfterTime
*/
@Prop() context: any;
/**
* 视图参数
*
* @type {any}
* @memberof AppAfterTime
*/
@Prop() viewparam: any;
/**
* 表单状态对象
*
* @type {Subject<any>}
* @memberof AppAfterTime
*/
@Prop() public formState?:Subject<any>;
/**
* 表单绑定数据
*
* @type {any}
* @memberof AppAfterTime
*/
@Model('change') public value:any;
/**
* 当前值
*
* @type {any}
* @memberof AppAfterTime
*/
public curvalue: string = '';
/**
* 毫秒差
*
* @type {any}
* @memberof AppAfterTime
*/
public diffTime:any='';
/**
* 值变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof AppAfterTime
*/
@Watch('value')
public onValueChange(newVal: any, oldVal: any) {
this.transTime();
}
/**
* Vue声明周期(处理组件的输入属性)
*
* @memberof AppAfterTime
*/
public created(){
if(this.formState){
this.formState.subscribe(({type,data})=>{
if(Object.is('load',type)){
this.transTime();
}
})
}
this.transTime();
}
/**
* 处理时间
*
* @memberof AppAfterTime
*/
public transTime(){
if(this.value){
let oldTime = new Date(this.value).getTime();
let nowTime = new Date().getTime();
let diffTime = nowTime - oldTime;
if(diffTime < 3600000){
this.curvalue = Math.ceil(diffTime/60000)+'';
this.diffTime = 'minutes';
}else if(diffTime < 86400000){
this.curvalue = Math.ceil(diffTime/3600000)+'';
this.diffTime = 'hours';
}else if(diffTime < 2592000000){
this.curvalue = Math.floor(diffTime/86400000)+'';
this.diffTime = 'days';
}else if(diffTime < 31104000000){
this.curvalue = Math.floor(diffTime/2592000000)+'';
this.diffTime = 'mounth';
}else{
this.curvalue = Math.floor(diffTime/31104000000)+'';
this.diffTime = 'years';
}
}
}
}
</script>
<style>
.app-after-time{
margin-left: 6px;
}
</style>
\ No newline at end of file
input{
border-radius: 4px;
border:1px solid #888;
padding: 2px 10px;
width: 20%;
}
<template>
<div class="app-inpu-ip">
<input
type="text"
v-model="firstIp"
maxlength="3" />.
<input
type="text"
v-model="secIp"
maxlength="3" />.
<input
type="text"
maxlength="3"
v-model="thirdIp" />.
<input
type="text"
maxlength="3"
v-model="forIp" />
</div>
</template>
<script lang='ts'>
import { Component, Vue, Prop, Model, Watch } from 'vue-property-decorator';
import { Subject,Subscription } from 'rxjs';
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
@Component({
})
export default class AppInputIp extends Vue {
/**
* 应用上下文
*
* @type {any}
* @memberof AppInputIp
*/
@Prop() context: any;
/**
* 视图参数
*
* @type {any}
* @memberof AppInputIp
*/
@Prop() viewparam: any;
/**
* 表单状态对象
*
* @type {Subject<any>}
* @memberof AppInputIp
*/
@Prop() public formState!: Subject<any>;
/**表单数据绑定
*
* @type {string}
* @memberof AppInputIp
*/
@Model('change') public ipdata!: string;
/**
* 获取当前值
*
* @type {string}
* @memberof AppInputIp
*/
public CurValue: any[] = [];
/**
* 第一段ip
*
* @type {any}
* @memberof AppInputIp
*/
public firstIp: any = '';
/**
* 第二段ip
*
* @type {any}
* @memberof AppInputIp
*/
public secIp: any = '';
/**
* 第三段ip
*
* @type {any}
*/
public thirdIp: any = '';
/**
* 第四段ip
*
* @type {any}
* @memberof AppInputIp
*/
public forIp: any = '';
/**
* Vue声明周期(处理组件的输入属性)
*
* @memberof AppInputIp
*/
public created(){
if(this.formState){
this.formState.subscribe(({type,data})=>{
if(Object.is('load',type)){
this.loadData();
}
})
}
this.loadData();
}
/**
* 加载数据
*
* @memberof AppInputIp
*/
public loadData(){
if(this.ipdata){
let iparr:Array<any> = this.ipdata.split('.');
this.CurValue = iparr;
this.firstIp = this.CurValue[0];
this.secIp = this.CurValue[1];
this.thirdIp = this.CurValue[2];
this.forIp = this.CurValue[3];
}
}
/**
* 监听每段ip变化
*
* @memberof AppInputIp
*/
@Watch('firstIp')
public FirstIpChange(newVal:any,oldVal:any){
this.checkIpVal(newVal,oldVal,'firstIp',0);
}
@Watch('secIp')
public SecIpChange(newVal:any,oldVal:any){
this.checkIpVal(newVal,oldVal,'secIp',1);
}
@Watch('thirdIp')
public ThirdIpChange(newVal:any,oldVal:any){
this.checkIpVal(newVal,oldVal,'thirdIp',2);
}
@Watch('forIp')
public ForIpChange(newVal:any,oldVal:any){
this.checkIpVal(newVal,oldVal,'forIp',3);
}
/**
* 验证格式
*
* @memberof AppInputIp
*/
public checkIpVal(newVal:any,oldVal:any,flag:any,index:number){
if(newVal === '') return
let val = newVal;
let reg = /^(([0-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5]))))$/g;
if(reg.test(val)){
this.CurValue[index] = val;
}else{
if(flag){
let that:any = this;
that[flag] = oldVal;
this.CurValue[index] = oldVal;
}
}
if(this.firstIp && this.secIp && this.thirdIp && this.forIp){
this.$emit('change',this.firstIp+'.'+this.secIp+'.'+this.thirdIp+'.'+this.forIp);
}
}
}
</script>
<style lang='less'>
@import './app-input-ip.less';
</style>
.app-sort-bar{
padding: 6px 8px;
.ivu-row-flex.page-sort-bar{
width: 100%;
height: 30px;
position: relative;
.ivu-col{
border-radius: 2px;
user-select: none;
text-align: center;
margin: 0px 16px;
display: flex;
align-items: flex-end;
padding-bottom: 4px;
background-color: #FFF;
border: 1px solid #CCC;
margin-left: -1px;
.sort-field-text{
margin-left: 7px;
}
.caret-wrapper{
width: 15px;
display: inline-block;
position: relative;
top: 4px;
padding-bottom: 2px;
.ivu-icon{
display: block;
line-height: 0.5;
color: #c5c8ce;
}
}
}
// 悬浮样式
.ivu-col:hover{
border:1px solid #82bff7;
position:relative;
z-index:2;
.sort-field-text{
color: #82bff7;
}
}
// 选中样式
.sort-ascending, .sort-descending{
border:1px solid #82bff7;
position:relative;
z-index:2;
.sort-field-text{
color:#82bff7;
font-weight: 800;
}
}
.sort-ascending .caret-wrapper .ivu-icon.ivu-icon-md-arrow-dropup,
.sort-descending .caret-wrapper .ivu-icon.ivu-icon-md-arrow-dropdown{
color: #82bff7;
}
.issort {
position: absolute;
cursor: pointer;
top: 4px;
right: 10px;
}
}
}
.open-bar {
background-color: #EEF2F5;
}
\ No newline at end of file
<template>
<div :class="['app-sort-bar', isSort ? 'open-bar' : '']">
<row v-if="sortModel && sortModel.length>0" class="page-sort-bar" :gutter="10" type="flex" justify="start" style="margin:0px;">
<template v-for="(item, index) in sortModel">
<i-col v-show="isSort" :key="index" :class="getSortClass(item)">
<div @click="sortItemClick(item)">
<span class="sort-field-text" >{{$t('entities.'+ entityName +'.fields.' + item)}}</span>
<span class="caret-wrapper">
<Icon type="md-arrow-dropup" />
<Icon type="md-arrow-dropdown" />
</span>
</div>
</i-col>
</template>
<div class="issort" @click="handleSort">
<Icon v-if="isSort" type="ios-funnel-outline" />
<Icon v-else type="ios-funnel" />
{{ $t('components.appSortBar.title') }}
</div>
</row>
</div>
</template>
<script lang='ts'>
import { Component, Vue, Prop, Model, Watch } from "vue-property-decorator";
@Component({})
export default class AppSortBar extends Vue {
@Prop() public sortModel!: any[];
@Prop() public sortField!: any;
@Prop() public sortDir!: any;
@Prop() public entityName!: string;
public isSort: boolean = false;
public getSortClass(name: any) {
if(this.sortField !== name || this.sortDir === ''){
return '';
}else if(this.sortDir === 'asc'){
return 'sort-ascending'
}else if(this.sortDir === 'desc'){
return 'sort-descending'
}
}
public sortItemClick(name: string) {
console.log(name);
this.$emit('clickSort', name);
}
public handleSort() {
this.isSort = !this.isSort;
}
}
</script>
<style lang="less">
@import './app-sort-bar.less';
</style>
\ No newline at end of file
......@@ -4,12 +4,12 @@
<template v-if="!ifEmpty">
<template v-for="(item, index) in items">
<div class="codelist-item" :key="index">
<span v-if="index != 0">{{ textSeparator }}</span>
<i v-if="item.iconcls" :class="item.iconcls"></i>
<img v-if="item.icon" :src="getIcon(item.icon)" />
<span :class="item.class" :style="{ color: item.color }">
{{ isUseLangres ? $t(item.text) : item.text }}
</span>
<span v-if="index != items.length-1">{{ textSeparator }}</span>
</div>
</template>
</template>
......@@ -338,6 +338,7 @@ export default class CodeList extends Vue {
<style lang='less'>
.codelist {
display: flex;
white-space: nowrap;
text-overflow: ellipsis;
word-break: break-all;
......@@ -346,6 +347,7 @@ export default class CodeList extends Vue {
display: flex;
align-items: center;
max-height: 32px;
padding: 0px 3px;
> img{
max-height: 32px;
width: auto;
......
.menu-icon {
padding-right: 6px;
}
\ No newline at end of file
......@@ -29,10 +29,10 @@ export class MenuIcon extends Vue {
public render(): any {
if (this.item) {
if (this.item.iconcls) {
return <i class={this.item.iconcls} />
return <i class={[this.item.iconcls, 'menu-icon']} />
}
if (this.item.icon) {
return <img src={this.item.icon} />
return <img class="menu-icon" src={this.item.icon} />
}
}
return <span />
......
......@@ -379,5 +379,15 @@ export default {
appMapPosition: {
submit: 'Submit',
title: 'Please select address'
}
},
appSortBar: {
title: 'Sort'
},
appAfterTime:{
minutesAgo: 'minutes ago',
hoursAgo: 'hours ago',
dayAgo: 'days ago',
monthsAgo: 'months ago',
yearsAgo: 'years ago'
}
};
\ No newline at end of file
......@@ -380,5 +380,15 @@ export default {
appMapPosition: {
submit: '确认',
title: '请选择地址'
}
},
appSortBar: {
title: '排序'
},
appAfterTime:{
minutesAgo: '分钟前',
hoursAgo: '小时前',
dayAgo: '天前',
monthsAgo: '月前',
yearsAgo: '年前'
}
};
\ No newline at end of file
......@@ -9,7 +9,7 @@
</div>
<div class='content-container'>
<div style='margin-bottom: 6px;'>
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;' placeholder="大屏标题" />
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;padding-left: 24px' placeholder="大屏标题" />
<div class='pull-right'>
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
......
......@@ -9,7 +9,7 @@
</div>
<div class='content-container'>
<div style='margin-bottom: 6px;'>
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;' placeholder="名称" />
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;padding-left: 24px' placeholder="名称" />
<div class='pull-right'>
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
......
......@@ -9,7 +9,7 @@
</div>
<div class='content-container'>
<div style='margin-bottom: 6px;'>
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;' placeholder="应用名" />
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;padding-left: 24px' placeholder="应用名" />
<div class='pull-right'>
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
......
......@@ -9,7 +9,7 @@
</div>
<div class='content-container'>
<div style='margin-bottom: 6px;'>
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;' placeholder="名称" />
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;padding-left: 24px' placeholder="名称" />
<div class='pull-right'>
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
......
......@@ -9,7 +9,7 @@
</div>
<div class='content-container'>
<div style='margin-bottom: 6px;'>
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;' placeholder="配置类型" />
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;padding-left: 24px' placeholder="配置类型" />
<div class='pull-right'>
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
......
......@@ -9,7 +9,7 @@
<app-alert-group position='TOP' :context="context" :viewparam="viewparams" infoGroup='VMGroup' viewname='dstdatasourcegridview'></app-alert-group> </div>
<div class='content-container'>
<div style='margin-bottom: 6px;'>
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;' placeholder="数据源名称" />
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;padding-left: 24px' placeholder="数据源名称" />
<div class='pull-right'>
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
......
......@@ -9,7 +9,7 @@
</div>
<div class='content-container'>
<div style='margin-bottom: 6px;'>
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;' placeholder="名称" />
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;padding-left: 24px' placeholder="名称" />
<div class='pull-right'>
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
......
......@@ -9,7 +9,7 @@
</div>
<div class='content-container'>
<div style='margin-bottom: 6px;'>
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;' placeholder="路径名称" />
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;padding-left: 24px' placeholder="路径名称" />
<div class='pull-right'>
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
......
......@@ -9,7 +9,7 @@
</div>
<div class='content-container'>
<div style='margin-bottom: 6px;'>
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;' placeholder="名称" />
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;padding-left: 24px' placeholder="名称" />
<div class='pull-right'>
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
......
......@@ -6,7 +6,7 @@
</div>
<div class='content-container'>
<div style='margin-bottom: 6px;'>
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;' placeholder="名称" />
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;padding-left: 24px' placeholder="名称" />
<div class='pull-right'>
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
......
......@@ -9,7 +9,7 @@
</div>
<div class='content-container'>
<div style='margin-bottom: 6px;'>
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;' placeholder="实体名" />
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;padding-left: 24px' placeholder="实体名" />
<div class='pull-right'>
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
......
......@@ -6,7 +6,7 @@
</div>
<div class='content-container'>
<div style='margin-bottom: 6px;'>
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;' placeholder="属性名称,属性逻辑名,属性全路径名称,显示名称" />
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;padding-left: 24px' placeholder="属性名称,属性逻辑名,属性全路径名称,显示名称" />
<div class='pull-right'>
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
......
......@@ -9,7 +9,7 @@
</div>
<div class='content-container'>
<div style='margin-bottom: 6px;'>
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;' placeholder="名称" />
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;padding-left: 24px' placeholder="名称" />
<div class='pull-right'>
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
......
......@@ -6,7 +6,7 @@
</div>
<div class='content-container'>
<div style='margin-bottom: 6px;'>
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;' placeholder="关系名称" />
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;padding-left: 24px' placeholder="关系名称" />
<div class='pull-right'>
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
......
......@@ -6,6 +6,7 @@
}
.app-form {
overflow: auto;
padding: 6px;
> .ivu-row {
> .ivu-tabs {
height: 100%;
......
......@@ -6,6 +6,7 @@
}
.app-form {
overflow: auto;
padding: 6px;
> .ivu-row {
> .ivu-tabs {
height: 100%;
......
......@@ -6,6 +6,7 @@
}
.app-form {
overflow: auto;
padding: 6px;
> .ivu-row {
> .ivu-tabs {
height: 100%;
......
......@@ -6,6 +6,7 @@
}
.app-form {
overflow: auto;
padding: 6px;
> .ivu-row {
> .ivu-tabs {
height: 100%;
......
......@@ -6,6 +6,7 @@
}
.app-form {
overflow: auto;
padding: 6px;
> .ivu-row {
> .ivu-tabs {
height: 100%;
......
......@@ -6,6 +6,7 @@
}
.app-form {
overflow: auto;
padding: 6px;
> .ivu-row {
> .ivu-tabs {
height: 100%;
......
......@@ -6,6 +6,7 @@
}
.app-form {
overflow: auto;
padding: 6px;
> .ivu-row {
> .ivu-tabs {
height: 100%;
......
......@@ -6,6 +6,7 @@
}
.app-form {
overflow: auto;
padding: 6px;
> .ivu-row {
> .ivu-tabs {
height: 100%;
......
......@@ -6,6 +6,7 @@
}
.app-form {
overflow: auto;
padding: 6px;
> .ivu-row {
> .ivu-tabs {
height: 100%;
......
......@@ -6,6 +6,7 @@
}
.app-form {
overflow: auto;
padding: 6px;
> .ivu-row {
> .ivu-tabs {
height: 100%;
......
......@@ -6,6 +6,7 @@
}
.app-form {
overflow: auto;
padding: 6px;
> .ivu-row {
> .ivu-tabs {
height: 100%;
......
......@@ -6,6 +6,7 @@
}
.app-form {
overflow: auto;
padding: 6px;
> .ivu-row {
> .ivu-tabs {
height: 100%;
......
......@@ -34,7 +34,7 @@
</i-col>
<i-col v-show="detailsModel.modelcfg.visible" :style="{}" :sm="{ span: 24, offset: 0 }" :md="{ span: 24, offset: 0 }" :lg="{ span: 24, offset: 0 }" :xl="{ span: 24, offset: 0 }">
<app-form-json v-model="data.modelcfg" :formState="formState" :data="data" :disabled="detailsModel.modelcfg.disabled"></app-form-json>
<app-form-json v-model="data.modelcfg" :formState="formState" :data="data" :disabled="detailsModel.modelcfg.disabled" :schema='{$ref:"#/definitions/model",definitions:{model:{title:"模型",headerTemplate:"{{ self.dataModelName }}",type:"object",format:"grid",properties:{dataModelName:{title:"模型名",type:"string",options:{grid_columns:4,},propertyOrder:1,},objectProperties:{title:"对象参数集合",type:"array",format:"tabs",uniqueItems:true,items:{title:"对象",headerTemplate:"{{ self.propertyName }}",type:"object",properties:{propertyName:{title:"对象",type:"string",options:{grid_columns:4,},propertyOrder:1,},system:{title:"系统",type:"string",options:{grid_columns:4,},propertyOrder:2,},propertyEntity:{title:"结构实体",type:"string",options:{grid_columns:4,},propertyOrder:3,},propertyMappings:{title:"对象关系映射",type:"array",format:"table",uniqueItems:true,items:{title:"映射",type:"object",properties:{selfPropertyColumn:{title:"列",type:"string",options:{grid_columns:4,},propertyOrder:1,},joinPropertyName:{title:"关联对象",type:"string",options:{grid_columns:4,},propertyOrder:2,},joinPropertyColumn:{title:"关联列",type:"string",options:{grid_columns:4,},propertyOrder:3,},},},propertyOrder:4,},},},propertyOrder:2,},nestedDataModels:{title:"嵌套子模型集合",type:"array",format:"tabs",uniqueItems:true,items:{title:"子模型",$ref:"#/definitions/model",},propertyOrder:3,},layerMappings:{title:"模型上下级映射",type:"array",format:"table",uniqueItems:true,items:{title:"映射",type:"object",properties:{selfPropertyColumn:{title:"列",type:"string",options:{grid_columns:4,},propertyOrder:1,},parentPropertyColumn:{title:"父模型列",type:"string",options:{grid_columns:4,},propertyOrder:2,},},},propertyOrder:4,},},},},}'></app-form-json>
</i-col>
......
......@@ -6,6 +6,7 @@
}
.app-form {
overflow: auto;
padding: 6px;
> .ivu-row {
> .ivu-tabs {
height: 100%;
......
......@@ -6,6 +6,7 @@
}
.app-form {
overflow: auto;
padding: 6px;
> .ivu-row {
> .ivu-tabs {
height: 100%;
......
......@@ -37,11 +37,11 @@
git clone -b master $para2 ibzlite/
export NODE_OPTIONS=--max-old-space-size=4096
cd ibzlite/
mvn clean package -Papi
cd ibzlite-provider/ibzlite-provider-api
mvn -Papi docker:build
mvn -Papi docker:push
docker -H $para1 stack deploy --compose-file=src/main/docker/ibzlite-provider-api.yaml ibzlab-rt --with-registry-auth
mvn clean package -Pweb
cd ibzlite-app/ibzlite-app-web
mvn -Pweb docker:build
mvn -Pweb docker:push
docker -H $para1 stack deploy --compose-file=src/main/docker/ibzlite-app-web.yaml ibzlab-rt --with-registry-auth
</command>
</hudson.tasks.Shell>
</builders>
......
......@@ -12,6 +12,6 @@ CMD echo "The application will start in ${IBIZ_SLEEP}s..." && \
sleep ${IBIZ_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibzlite-app-web.jar
EXPOSE 8080
EXPOSE 30010
ADD ibzlite-app-web.jar /ibzlite-app-web.jar
......@@ -3,9 +3,23 @@ services:
ibzlite-app-web:
image: registry.cn-shanghai.aliyuncs.com/ibizsys/ibzlite-app-web:latest
ports:
- "8080:8080"
- "30010:30010"
networks:
- agent_network
environment:
- SPRING_CLOUD_NACOS_DISCOVERY_IP=172.16.180.237
- SERVER_PORT=30010
- SPRING_CLOUD_NACOS_DISCOVERY_SERVER-ADDR=172.16.100.243: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.100.243:8848
- SPRING_CLOUD_NACOS_DISCOVERY_GROUP=ibizdev
deploy:
resources:
limits:
......
......@@ -12,6 +12,6 @@ CMD echo "The application will start in ${IBIZ_SLEEP}s..." && \
sleep ${IBIZ_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibzlite-provider-api.jar
EXPOSE 40010
EXPOSE 8081
ADD ibzlite-provider-api.jar /ibzlite-provider-api.jar
......@@ -3,23 +3,9 @@ services:
ibzlite-provider-api:
image: registry.cn-shanghai.aliyuncs.com/ibizsys/ibzlite-provider-api:latest
ports:
- "40010:40010"
- "8081:8081"
networks:
- agent_network
environment:
- SPRING_CLOUD_NACOS_DISCOVERY_IP=172.16.180.237
- SERVER_PORT=40010
- SPRING_CLOUD_NACOS_DISCOVERY_SERVER-ADDR=172.16.100.243: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.100.243:8848
- SPRING_CLOUD_NACOS_DISCOVERY_GROUP=ibizdev
deploy:
resources:
limits:
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册