Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibztask
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibztask
提交
faa224a0
提交
faa224a0
编写于
6月 19, 2020
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ibiz4j 发布系统代码
上级
a09caa95
变更
14
显示空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
143 行增加
和
71 行删除
+143
-71
app-breadcrumb.vue
app_web/src/components/app-breadcrumb/app-breadcrumb.vue
+80
-31
task-index-view-base.vue
...b/src/pages/task/task-index-view/task-index-view-base.vue
+2
-2
navdata-service.ts
app_web/src/service/app/navdata-service.ts
+18
-0
task-index-view-appmenu-base.vue
.../task-index-view-appmenu/task-index-view-appmenu-base.vue
+8
-4
main-form-base.vue
app_web/src/widgets/jobs-info/main-form/main-form-base.vue
+6
-4
main-grid.less
app_web/src/widgets/jobs-info/main-grid/main-grid.less
+6
-0
main-form-base.vue
app_web/src/widgets/jobs-log/main-form/main-form-base.vue
+6
-7
main-grid.less
app_web/src/widgets/jobs-log/main-grid/main-grid.less
+6
-0
main-grid.less
app_web/src/widgets/jobs-registry/main-grid/main-grid.less
+6
-0
config.xml
config.xml
+0
-5
Dockerfile
ibztask-app/ibztask-app-web/src/main/docker/Dockerfile
+1
-1
ibztask-app-web.yaml
...-app/ibztask-app-web/src/main/docker/ibztask-app-web.yaml
+1
-14
JobsInfoServiceImpl.java
...n/ibizlab/core/task/service/impl/JobsInfoServiceImpl.java
+1
-1
h2_table.xml
ibztask-core/src/main/resources/liquibase/h2_table.xml
+2
-2
未找到文件。
app_web/src/components/app-breadcrumb/app-breadcrumb.vue
浏览文件 @
faa224a0
<
template
>
<el-breadcrumb
class=
"app-breadcrumb"
separator=
"/"
>
<transition-group
name=
"breadcrumb"
>
<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"
>
...
...
@@ -18,6 +19,13 @@
</span>
<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,12 +96,14 @@ export default class Breadcrumb extends Vue {
*/
created
()
{
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
()
{
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,6 +146,7 @@ export default class Breadcrumb extends Vue {
* @memberof Breadcrumb
*/
private
handleLink
(
item
:
any
)
{
if
(
Object
.
is
(
this
.
navModel
,
"route"
)){
// 首页
if
(
Object
.
is
(
item
.
id
,
this
.
indexViewTag
)){
this
.
$router
.
push
((
window
.
sessionStorage
.
getItem
(
Environment
.
AppName
))
as
string
);
...
...
@@ -122,6 +157,20 @@ export default class Breadcrumb extends Vue {
});
}
this
.
navDataService
.
removeNavData
(
item
.
id
);
}
else
{
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
);
});
}
}
}
/**
...
...
app_web/src/pages/task/task-index-view/task-index-view-base.vue
浏览文件 @
faa224a0
...
...
@@ -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
"
;
/**
* 抽屉状态
...
...
app_web/src/service/app/navdata-service.ts
浏览文件 @
faa224a0
...
...
@@ -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
;
}
}
/**
* 从导航数据栈中获取指定数据
*
...
...
app_web/src/widgets/app/task-index-view-appmenu/task-index-view-appmenu-base.vue
浏览文件 @
faa224a0
...
...
@@ -576,7 +576,11 @@ export default class TaskIndexViewBase extends Vue implements ControlInterface {
public
click
(
item
:
any
)
{
if
(
item
)
{
let
navDataService
=
NavDataService
.
getInstance
(
this
.
$store
);
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
.
p
ath
,
path
)){
if
(
Object
.
is
(
this
.
$route
.
fullP
ath
,
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
.
p
ath
,
path
)){
if
(
Object
.
is
(
this
.
$route
.
fullP
ath
,
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
.
p
ath
,
path
)){
if
(
Object
.
is
(
this
.
$route
.
fullP
ath
,
path
)){
return
;
}
this
.
$nextTick
(
function
(){
...
...
app_web/src/widgets/jobs-info/main-form/main-form-base.vue
浏览文件 @
faa224a0
...
...
@@ -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
:
tru
e
,
type
:
'string'
,
message
:
'创建时间 值不能为空'
,
trigger
:
'change'
},
{
required
:
tru
e
,
type
:
'string'
,
message
:
'创建时间 值不能为空'
,
trigger
:
'blur'
},
{
required
:
fals
e
,
type
:
'string'
,
message
:
'创建时间 值不能为空'
,
trigger
:
'change'
},
{
required
:
fals
e
,
type
:
'string'
,
message
:
'创建时间 值不能为空'
,
trigger
:
'blur'
},
],
update_time
:
[
{
type
:
'string'
,
message
:
'更新时间 值必须为字符串类型'
,
trigger
:
'change'
},
...
...
app_web/src/widgets/jobs-info/main-grid/main-grid.less
浏览文件 @
faa224a0
...
...
@@ -46,6 +46,12 @@
margin-bottom: unset !important;
}
}
.el-table__body td{
padding:0;
}
.app-form-item{
margin-top: 20px;
}
}
.grid-pagination {
height: 50px;
...
...
app_web/src/widgets/jobs-log/main-form/main-form-base.vue
浏览文件 @
faa224a0
...
...
@@ -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
:
tru
e
,
type
:
'string'
,
message
:
'创建时间 值不能为空'
,
trigger
:
'change'
},
{
required
:
tru
e
,
type
:
'string'
,
message
:
'创建时间 值不能为空'
,
trigger
:
'blur'
},
{
required
:
fals
e
,
type
:
'string'
,
message
:
'创建时间 值不能为空'
,
trigger
:
'change'
},
{
required
:
fals
e
,
type
:
'string'
,
message
:
'创建时间 值不能为空'
,
trigger
:
'blur'
},
],
id
:
[
{
type
:
'string'
,
message
:
'主键ID 值必须为字符串类型'
,
trigger
:
'change'
},
...
...
app_web/src/widgets/jobs-log/main-grid/main-grid.less
浏览文件 @
faa224a0
...
...
@@ -46,6 +46,12 @@
margin-bottom: unset !important;
}
}
.el-table__body td{
padding:0;
}
.app-form-item{
margin-top: 20px;
}
}
.grid-pagination {
height: 50px;
...
...
app_web/src/widgets/jobs-registry/main-grid/main-grid.less
浏览文件 @
faa224a0
...
...
@@ -46,6 +46,12 @@
margin-bottom: unset !important;
}
}
.el-table__body td{
padding:0;
}
.app-form-item{
margin-top: 20px;
}
}
.grid-pagination {
height: 50px;
...
...
config.xml
浏览文件 @
faa224a0
...
...
@@ -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>
...
...
ibztask-app/ibztask-app-web/src/main/docker/Dockerfile
浏览文件 @
faa224a0
...
...
@@ -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
ibztask-app/ibztask-app-web/src/main/docker/ibztask-app-web.yaml
浏览文件 @
faa224a0
...
...
@@ -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
:
...
...
ibztask-core/src/main/java/cn/ibizlab/core/task/service/impl/JobsInfoServiceImpl.java
浏览文件 @
faa224a0
...
...
@@ -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
;
}
...
...
ibztask-core/src/main/resources/liquibase/h2_table.xml
浏览文件 @
faa224a0
...
...
@@ -4,7 +4,7 @@
<!--输出实体[JOBS_INFO]数据结构 -->
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-jobs_info-10
0
-1"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-jobs_info-10
3
-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-5
7
-4"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-jobs_log-5
9
-4"
>
<createTable
tableName=
"JOBS_LOG"
>
<column
name=
"ID"
remarks=
""
type=
"VARCHAR(100)"
>
<constraints
primaryKey=
"true"
primaryKeyName=
"PK_JOBS_LOG_ID"
/>
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录