提交 a367d980 编写于 作者: sq3536's avatar sq3536

Merge remote-tracking branch 'origin/master'

<template>
<el-breadcrumb class="app-breadcrumb" separator="/">
<transition-group name="breadcrumb">
<el-breadcrumb-item v-for="(item, index) in breadcrumbs" :key="item.id">
<span v-if="index === breadcrumbs.length-1" class="no-redirect">{{ item.title }}
<span v-if="item.isselected === true">
<dropdown trigger='click' @on-click="selectNavData($event,item)">
<span class="app-breadcrumb-selected">
<i class="el-icon-caret-bottom"></i>
</span>
<dropdown-menu slot='list'>
<dropdown-item v-for="(dataitem) in getPreNavData(item)" :name="dataitem.srfkey" :key="dataitem.srfkey">
<span :class="{'curselected':isCurSelected(item,dataitem)}">{{dataitem.srfmajortext}}</span>
</dropdown-item>
</dropdown-menu>
</dropdown>
<template v-if="Object.is(this.navModel,'route')">
<el-breadcrumb-item v-for="(item, index) in breadcrumbs" :key="item.id">
<span v-if="index === breadcrumbs.length-1" class="no-redirect">{{ item.title }}
<span v-if="item.isselected === true">
<dropdown trigger='click' @on-click="selectNavData($event,item)">
<span class="app-breadcrumb-selected">
<i class="el-icon-caret-bottom"></i>
</span>
<dropdown-menu slot='list'>
<dropdown-item v-for="(dataitem) in getPreNavData(item)" :name="dataitem.srfkey" :key="dataitem.srfkey">
<span :class="{'curselected':isCurSelected(item,dataitem)}">{{dataitem.srfmajortext}}</span>
</dropdown-item>
</dropdown-menu>
</dropdown>
</span>
</span>
</span>
<a v-else @click.prevent="handleLink(item)">{{ item.title }}</a>
</el-breadcrumb-item>
<a v-else @click.prevent="handleLink(item)">{{ item.title }}</a>
</el-breadcrumb-item>
</template>
<template v-if="!Object.is(this.navModel,'route')">
<el-breadcrumb-item v-for="(item, index) in breadcrumbs" :key="item.path">
<span v-if="index === breadcrumbs.length-1" class="no-redirect" >{{ $t(item.meta.caption)}}</span>
<a v-else @click.prevent="handleLink(item)" >{{ $t(item.meta.caption) }}</a>
</el-breadcrumb-item>
</template>
</transition-group>
</el-breadcrumb>
</template>
......@@ -54,6 +62,24 @@ export default class Breadcrumb extends Vue {
*/
@Prop() public indexViewTag!: string;
/**
* 导航模式
*
* @memberof Breadcrumb
*/
@Prop({default:'tab'}) public navModel?:string;
/**
* 监听路由
*
* @memberof Breadcrumb
*/
@Watch('$route')
private onRouteChange(route: Route) {
this.getBreadcrumb()
}
/**
* 导航服务事件
*
......@@ -70,11 +96,13 @@ export default class Breadcrumb extends Vue {
*/
created() {
this.getBreadcrumb();
this.serviceStateEvent = this.navDataService.serviceState.subscribe(({ action,name, data }:{ action:string,name:any,data:any }) => {
if (Object.is(action, 'datarefresh')) {
this.getBreadcrumb();
}
});
if(Object.is(this.navModel,"route")){
this.serviceStateEvent = this.navDataService.serviceState.subscribe(({ action,name, data }:{ action:string,name:any,data:any }) => {
if (Object.is(action, 'datarefresh')) {
this.getBreadcrumb();
}
});
}
}
/**
......@@ -83,8 +111,14 @@ export default class Breadcrumb extends Vue {
* @memberof Breadcrumb
*/
private getBreadcrumb() {
this.breadcrumbs = this.navDataService.getNavData();
this.$forceUpdate();
if(Object.is(this.navModel,"route")){
this.breadcrumbs = this.navDataService.getNavData();
this.$forceUpdate();
}else{
this.breadcrumbs = this.$route.matched.filter((item) => {
return item.meta && item.meta.caption
})
}
}
/**
......@@ -112,16 +146,31 @@ export default class Breadcrumb extends Vue {
* @memberof Breadcrumb
*/
private handleLink(item: any) {
// 首页
if(Object.is(item.id,this.indexViewTag)){
this.$router.push((window.sessionStorage.getItem(Environment.AppName))as string);
if(Object.is(this.navModel,"route")){
// 首页
if(Object.is(item.id,this.indexViewTag)){
this.$router.push((window.sessionStorage.getItem(Environment.AppName))as string);
}else{
// 非首页
this.$router.push(item.path).catch(err => {
console.warn(err);
});
}
this.navDataService.removeNavData(item.id);
}else{
// 非首页
this.$router.push(item.path).catch(err => {
console.warn(err);
});
if(item && item.meta && item.meta.viewType && Object.is(item.meta.viewType,"APPINDEX")){
let path: string | null = window.sessionStorage.getItem(Environment.AppName);
if (path) {
this.$router.push({ path: path });
} else {
this.$router.push("/");
}
}else{
this.$router.push(item).catch(err => {
console.warn(err);
});
}
}
this.navDataService.removeNavData(item.id);
}
/**
......
......@@ -34,7 +34,7 @@
<div class="page-logo">
<i v-show="!collapseChange" class="ivu-icon el-icon-s-fold" @click="handleClick"></i>
<i v-show="collapseChange" class="ivu-icon el-icon-s-unfold" @click="handleClick"></i>
<app-breadcrumb v-if="Object.is(navModel,'route')" indexViewTag="task-index-view"></app-breadcrumb>
<app-breadcrumb :navModel="navModel" indexViewTag="task-index-view"></app-breadcrumb>
</div>
</div>
<div class="header-right" style="display: flex;align-items: center;justify-content: space-between;">
......@@ -511,7 +511,7 @@ export default class TaskIndexViewBase extends Vue {
* @type {string}
* @memberof TaskIndexViewBase
*/
public navModel:string = "route";
public navModel:string = "tab";
/**
* 抽屉状态
......
......@@ -228,6 +228,24 @@ export default class NavDataService {
}
}
/**
* 从导航数据栈中删除指定数据上层数据(不清除页面缓存)
*
* @memberof NavDataService
*/
public removeNavDataWithoutCache(id:string){
if(this.navDataStack.length >0){
let tempIndex:number = this.navDataStack.findIndex((element:NavDataElement) =>{
return Object.is(element.id,id);
})
let removeNavData = this.navDataStack.splice(tempIndex+1);
this.sessionStore.setItem('srfnavdata',JSON.stringify(this.navDataStack));
return removeNavData;
}else{
return null;
}
}
/**
* 从导航数据栈中获取指定数据
*
......
......@@ -576,7 +576,11 @@ export default class TaskIndexViewBase extends Vue implements ControlInterface {
public click(item: any) {
if (item) {
let navDataService = NavDataService.getInstance(this.$store);
navDataService.removeNavData(this.viewtag);
if(Object.is(this.navModel,"route")){
navDataService.removeNavData(this.viewtag);
}else{
navDataService.removeNavDataWithoutCache(this.viewtag);
}
switch (item.appfunctag) {
case '_4':
this.click_4(item);
......@@ -609,7 +613,7 @@ export default class TaskIndexViewBase extends Vue implements ControlInterface {
{ pathName: 'gridview', parameterName: 'gridview' },
];
const path: string = this.$viewTool.buildUpRoutePath(this.$route, {}, deResParameters, parameters, [], viewparam);
if(Object.is(this.$route.path,path)){
if(Object.is(this.$route.fullPath,path)){
return;
}
this.$nextTick(function(){
......@@ -632,7 +636,7 @@ export default class TaskIndexViewBase extends Vue implements ControlInterface {
{ pathName: 'gridview', parameterName: 'gridview' },
];
const path: string = this.$viewTool.buildUpRoutePath(this.$route, {}, deResParameters, parameters, [], viewparam);
if(Object.is(this.$route.path,path)){
if(Object.is(this.$route.fullPath,path)){
return;
}
this.$nextTick(function(){
......@@ -655,7 +659,7 @@ export default class TaskIndexViewBase extends Vue implements ControlInterface {
{ pathName: 'gridview', parameterName: 'gridview' },
];
const path: string = this.$viewTool.buildUpRoutePath(this.$route, {}, deResParameters, parameters, [], viewparam);
if(Object.is(this.$route.path,path)){
if(Object.is(this.$route.fullPath,path)){
return;
}
this.$nextTick(function(){
......
......@@ -93,13 +93,15 @@
</i-col>
<i-col v-show="detailsModel.create_time.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='create_time' :itemRules="this.rules.create_time" class='' :caption="$t('entities.jobsinfo.main_form.details.create_time')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.create_time.error" :isEmptyCaption="false" labelPos="LEFT">
<date-picker type="datetime" :transfer="true" format="yyyy-MM-dd HH:mm:ss" placeholder="请选择时间..." :value="data.create_time" :disabled="detailsModel.create_time.disabled" style="min-width: 150px; width:160px;" @on-change="(val1, val2) => { this.data.create_time = val1 }"></date-picker>
<app-span name='create_time' :value="data.create_time" :data="data" :context="context" :viewparams="viewparams" :localContext ='{ }' :localParam ='{ }' style=""></app-span>
</app-form-item>
</i-col>
<i-col v-show="detailsModel.update_time.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='update_time' :itemRules="this.rules.update_time" class='' :caption="$t('entities.jobsinfo.main_form.details.update_time')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.update_time.error" :isEmptyCaption="false" labelPos="LEFT">
<date-picker type="datetime" :transfer="true" format="yyyy-MM-dd HH:mm:ss" placeholder="请选择时间..." :value="data.update_time" :disabled="detailsModel.update_time.disabled" style="min-width: 150px; width:160px;" @on-change="(val1, val2) => { this.data.update_time = val1 }"></date-picker>
<app-span name='update_time' :value="data.update_time" :data="data" :context="context" :viewparams="viewparams" :localContext ='{ }' :localParam ='{ }' style=""></app-span>
</app-form-item>
</i-col>
......@@ -587,8 +589,8 @@ export default class MainBase extends Vue implements ControlInterface {
create_time: [
{ type: 'string', message: '创建时间 值必须为字符串类型', trigger: 'change' },
{ type: 'string', message: '创建时间 值必须为字符串类型', trigger: 'blur' },
{ required: true, type: 'string', message: '创建时间 值不能为空', trigger: 'change' },
{ required: true, type: 'string', message: '创建时间 值不能为空', trigger: 'blur' },
{ required: false, type: 'string', message: '创建时间 值不能为空', trigger: 'change' },
{ required: false, type: 'string', message: '创建时间 值不能为空', trigger: 'blur' },
],
update_time: [
{ type: 'string', message: '更新时间 值必须为字符串类型', trigger: 'change' },
......
......@@ -46,6 +46,12 @@
margin-bottom: unset !important;
}
}
.el-table__body td{
padding:0;
}
.app-form-item{
margin-top: 20px;
}
}
.grid-pagination {
height: 50px;
......
......@@ -20,8 +20,7 @@
</i-col>
<i-col v-show="detailsModel.param.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='param' :itemRules="this.rules.param" class='' :caption="$t('entities.jobslog.main_form.details.param')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.param.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box v-model="data.param" :autoSize="{minRows: 10}" :disabled="detailsModel.param.disabled" type='textarea' style="height:200px;" ></input-box>
<input-box v-model="data.param" :disabled="detailsModel.param.disabled" type='textarea' style="" ></input-box>
</app-form-item>
</i-col>
......@@ -45,8 +44,7 @@
</i-col>
<i-col v-show="detailsModel.trigger_msg.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='trigger_msg' :itemRules="this.rules.trigger_msg" class='' :caption="$t('entities.jobslog.main_form.details.trigger_msg')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.trigger_msg.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box v-model="data.trigger_msg" :autoSize="{minRows: 10}" :disabled="detailsModel.trigger_msg.disabled" type='textarea' style="height:200px;" ></input-box>
<input-box v-model="data.trigger_msg" :disabled="detailsModel.trigger_msg.disabled" type='textarea' style="" ></input-box>
</app-form-item>
</i-col>
......@@ -58,7 +56,8 @@
</i-col>
<i-col v-show="detailsModel.create_time.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='create_time' :itemRules="this.rules.create_time" class='' :caption="$t('entities.jobslog.main_form.details.create_time')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.create_time.error" :isEmptyCaption="false" labelPos="LEFT">
<date-picker type="datetime" :transfer="true" format="yyyy-MM-dd HH:mm:ss" placeholder="请选择时间..." :value="data.create_time" :disabled="detailsModel.create_time.disabled" style="min-width: 150px; width:160px;" @on-change="(val1, val2) => { this.data.create_time = val1 }"></date-picker>
<app-span name='create_time' :value="data.create_time" :data="data" :context="context" :viewparams="viewparams" :localContext ='{ }' :localParam ='{ }' style=""></app-span>
</app-form-item>
</i-col>
......@@ -517,8 +516,8 @@ export default class MainBase extends Vue implements ControlInterface {
create_time: [
{ type: 'string', message: '创建时间 值必须为字符串类型', trigger: 'change' },
{ type: 'string', message: '创建时间 值必须为字符串类型', trigger: 'blur' },
{ required: true, type: 'string', message: '创建时间 值不能为空', trigger: 'change' },
{ required: true, type: 'string', message: '创建时间 值不能为空', trigger: 'blur' },
{ required: false, type: 'string', message: '创建时间 值不能为空', trigger: 'change' },
{ required: false, type: 'string', message: '创建时间 值不能为空', trigger: 'blur' },
],
id: [
{ type: 'string', message: '主键ID 值必须为字符串类型', trigger: 'change' },
......
......@@ -46,6 +46,12 @@
margin-bottom: unset !important;
}
}
.el-table__body td{
padding:0;
}
.app-form-item{
margin-top: 20px;
}
}
.grid-pagination {
height: 50px;
......
......@@ -46,6 +46,12 @@
margin-bottom: unset !important;
}
}
.el-table__body td{
padding:0;
}
.app-form-item{
margin-top: 20px;
}
}
.grid-pagination {
height: 50px;
......
......@@ -37,11 +37,6 @@
git clone -b master $para2 ibztask/
export NODE_OPTIONS=--max-old-space-size=4096
cd ibztask/
mvn clean package -Pweb
cd ibztask-app/ibztask-app-web
mvn -Pweb docker:build
mvn -Pweb docker:push
docker -H $para1 stack deploy --compose-file=src/main/docker/ibztask-app-web.yaml ibzlab-rt --with-registry-auth
</command>
</hudson.tasks.Shell>
</builders>
......
......@@ -9,6 +9,6 @@ CMD echo "The application will start in ${IBIZ_SLEEP}s..." && \
sleep ${IBIZ_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibztask-app-web.jar
EXPOSE 30005
EXPOSE 8080
ADD ibztask-app-web.jar /ibztask-app-web.jar
......@@ -3,22 +3,9 @@ services:
ibztask-app-web:
image: registry.cn-shanghai.aliyuncs.com/ibizsys/ibztask-app-web:latest
ports:
- "30005:30005"
- "8080:8080"
networks:
- agent_network
environment:
- SPRING_CLOUD_NACOS_DISCOVERY_IP=172.16.180.237
- SERVER_PORT=30005
- SPRING_CLOUD_NACOS_DISCOVERY_SERVER-ADDR=172.16.102.211:8848
- SPRING_REDIS_HOST=172.16.100.243
- SPRING_REDIS_PORT=6379
- SPRING_REDIS_DATABASE=0
- SPRING_DATASOURCE_USERNAME=a_A_5d9d78509
- SPRING_DATASOURCE_PASSWORD=@6dEfb3@
- SPRING_DATASOURCE_URL=jdbc:mysql://172.16.180.232:3306/a_A_5d9d78509?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true
- SPRING_DATASOURCE_DRIVER-CLASS-NAME=com.mysql.jdbc.Driver
- SPRING_DATASOURCE_DEFAULTSCHEMA=a_A_5d9d78509
- NACOS=172.16.102.211:8848
deploy:
resources:
limits:
......
......@@ -50,8 +50,8 @@ public class JobsInfoServiceImpl extends ServiceImpl<JobsInfoMapper, JobsInfo> i
@Override
@Transactional
public JobsInfo start(JobsInfo et) {
et.set("Status","0");
et.set("Last_time","0");
et.set("Status","0");
update(et);
return et;
}
......
......@@ -4,7 +4,7 @@
<!--输出实体[JOBS_INFO]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-jobs_info-100-1">
<changeSet author="a_A_5d9d78509" id="tab-jobs_info-103-1">
<createTable tableName="JOBS_INFO">
<column name="ID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_JOBS_INFO_ID"/>
......@@ -76,7 +76,7 @@
<!--输出实体[JOBS_LOG]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-jobs_log-57-4">
<changeSet author="a_A_5d9d78509" id="tab-jobs_log-59-4">
<createTable tableName="JOBS_LOG">
<column name="ID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_JOBS_LOG_ID"/>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册