Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibztask
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibztask
提交
54a496cb
提交
54a496cb
编写于
6月 19, 2020
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ibiz4j 发布系统代码
上级
5bbdf4fe
变更
34
展开全部
隐藏空白字符变更
内嵌
并排
正在显示
34 个修改的文件
包含
900 行增加
和
388 行删除
+900
-388
CHANGELOG.md
app_web/CHANGELOG.md
+36
-0
app-breadcrumb.less
app_web/src/components/app-breadcrumb/app-breadcrumb.less
+7
-0
app-breadcrumb.vue
app_web/src/components/app-breadcrumb/app-breadcrumb.vue
+48
-13
context-menu-drag.less
...b/src/components/context-menu-drag/context-menu-drag.less
+129
-0
context-menu-drag.vue
...eb/src/components/context-menu-drag/context-menu-drag.vue
+132
-218
edit-view-engine.ts
app_web/src/engine/view/edit-view-engine.ts
+5
-1
jobs-info-edit-view-base.vue
...ges/task/jobs-info-edit-view/jobs-info-edit-view-base.vue
+55
-29
jobs-info-grid-view-base.vue
...ges/task/jobs-info-grid-view/jobs-info-grid-view-base.vue
+38
-9
jobs-log-edit-view-base.vue
...pages/task/jobs-log-edit-view/jobs-log-edit-view-base.vue
+38
-9
jobs-log-grid-view-base.vue
...pages/task/jobs-log-grid-view/jobs-log-grid-view-base.vue
+38
-9
jobs-registry-edit-view-base.vue
.../jobs-registry-edit-view/jobs-registry-edit-view-base.vue
+55
-29
jobs-registry-grid-view-base.vue
.../jobs-registry-grid-view/jobs-registry-grid-view-base.vue
+38
-9
task-index-view-base.vue
...b/src/pages/task/task-index-view/task-index-view-base.vue
+34
-11
task-index-view.less
app_web/src/pages/task/task-index-view/task-index-view.less
+11
-1
navdata-service.ts
app_web/src/service/app/navdata-service.ts
+15
-1
entity-service.ts
app_web/src/service/entity-service.ts
+22
-0
default.less
app_web/src/styles/default.less
+16
-5
blue.theme.less
app_web/src/theme/blue.theme.less
+6
-1
dark-blue.theme.less
app_web/src/theme/dark-blue.theme.less
+5
-0
default.theme.less
app_web/src/theme/default.theme.less
+7
-4
task-index-view-appmenu-base.vue
.../task-index-view-appmenu/task-index-view-appmenu-base.vue
+20
-7
main-form-base.vue
app_web/src/widgets/jobs-info/main-form/main-form-base.vue
+2
-2
main-form-base.vue
app_web/src/widgets/jobs-log/main-form/main-form-base.vue
+2
-2
main-form-base.vue
...eb/src/widgets/jobs-registry/main-form/main-form-base.vue
+2
-2
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
application-web-prod.yml
...ztask-app-web/src/main/resources/application-web-prod.yml
+4
-0
logback-spring.xml
...app/ibztask-app-web/src/main/resources/logback-spring.xml
+41
-0
logback-spring.xml
ibztask-boot/src/main/resources/logback-spring.xml
+41
-0
JobsInfoServiceImpl.java
...n/ibizlab/core/task/service/impl/JobsInfoServiceImpl.java
+3
-3
h2_table.xml
ibztask-core/src/main/resources/liquibase/h2_table.xml
+3
-3
application-api-prod.yml
...-provider-api/src/main/resources/application-api-prod.yml
+4
-0
logback-spring.xml
...bztask-provider-api/src/main/resources/logback-spring.xml
+41
-0
未找到文件。
app_web/CHANGELOG.md
浏览文件 @
54a496cb
## v7.0.0-alpha.10 [2020-6-18]
### Bug修复
分页导航视图页面刷新bug
表单项更新,实体行为调用不到bug
关系界面子界面保存不触发父界面保存
表单样式调整
### 功能新增及优化
#### 模板
表格操作列只显示图标时显示tooltip
门户部件高度为0时自适应
面板和多数据部件数据流向
列表,数据视图保存功能
门户部件标题界面行为tooltip
新增面包屑、应用切换器组件
#### 基础文件
formitem样式调整,label适配位置
表格行编辑切换,app-picker不显示
文件上传下载参数格式处理
## v7.0.0-alpha.9 [2020-6-11]
### Bug修复
...
...
app_web/src/components/app-breadcrumb/app-breadcrumb.less
浏览文件 @
54a496cb
...
...
@@ -13,5 +13,12 @@
.no-redirect {
color: #97a8be;
cursor: text;
.curselected{
color: #2196F3;
font-weight: bold;
}
.app-breadcrumb-selected{
cursor: pointer;
}
}
}
\ No newline at end of file
app_web/src/components/app-breadcrumb/app-breadcrumb.vue
浏览文件 @
54a496cb
...
...
@@ -2,7 +2,20 @@
<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>
<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>
<a
v-else
@
click
.
prevent=
"handleLink(item)"
>
{{
item
.
title
}}
</a>
</el-breadcrumb-item>
</transition-group>
...
...
@@ -12,6 +25,7 @@
<
script
lang=
"ts"
>
import
{
Component
,
Vue
,
Watch
,
Prop
}
from
'vue-property-decorator'
import
{
RouteRecord
,
Route
}
from
'vue-router'
import
{
Environment
}
from
"@/environments/environment"
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
{
Subscription
}
from
'rxjs'
;
...
...
@@ -40,13 +54,6 @@ export default class Breadcrumb extends Vue {
*/
@
Prop
()
public
indexViewTag
!
:
string
;
/**
* 首页路径
*
* @memberof Breadcrumb
*/
@
Prop
()
public
indexViewPath
!
:
string
;
/**
* 导航服务事件
*
...
...
@@ -63,8 +70,8 @@ export default class Breadcrumb extends Vue {
*/
created
()
{
this
.
getBreadcrumb
();
this
.
serviceStateEvent
=
this
.
navDataService
.
serviceState
.
subscribe
(({
action
,
data
})
=>
{
if
(
Object
.
is
(
action
,
'refresh'
))
{
this
.
serviceStateEvent
=
this
.
navDataService
.
serviceState
.
subscribe
(({
action
,
name
,
data
}:{
action
:
string
,
name
:
any
,
data
:
any
})
=>
{
if
(
Object
.
is
(
action
,
'
data
refresh'
))
{
this
.
getBreadcrumb
();
}
});
...
...
@@ -80,6 +87,25 @@ export default class Breadcrumb extends Vue {
this
.
$forceUpdate
();
}
/**
* 获取面包屑指定元素前一条数据
*
* @memberof Breadcrumb
*/
private
getPreNavData
(
item
:
any
){
let
preNavData
:
any
=
this
.
navDataService
.
getPreNavDataById
(
item
.
id
);
return
preNavData
.
data
;
}
/**
* 判断是否为当前选中项
*
* @memberof Breadcrumb
*/
private
isCurSelected
(
item
:
any
,
singleItem
:
any
){
return
item
.
srfkey
===
singleItem
.
srfkey
;
}
/**
* 面包屑点击行为
*
...
...
@@ -88,9 +114,7 @@ export default class Breadcrumb extends Vue {
private
handleLink
(
item
:
any
)
{
// 首页
if
(
Object
.
is
(
item
.
id
,
this
.
indexViewTag
)){
if
(
this
.
$route
.
matched
&&
this
.
$route
.
matched
.
length
>
0
){
this
.
$router
.
push
(
`/
${
this
.
indexViewPath
}
`
);
}
this
.
$router
.
push
((
window
.
sessionStorage
.
getItem
(
Environment
.
AppName
))
as
string
);
}
else
{
// 非首页
this
.
$router
.
push
(
item
.
path
).
catch
(
err
=>
{
...
...
@@ -100,6 +124,17 @@ export default class Breadcrumb extends Vue {
this
.
navDataService
.
removeNavData
(
item
.
id
);
}
/**
* 切换导航行为
*
* @memberof Breadcrumb
*/
private
selectNavData
(
$event
:
any
,
item
:
any
){
let
preNavData
:
any
=
this
.
getPreNavData
(
item
);
let
curSrfkey
:
any
=
$event
;
this
.
navDataService
.
serviceState
.
next
({
action
:
'viewrefresh'
,
name
:
item
.
id
,
data
:
curSrfkey
});
}
/**
* 组件销毁
*
...
...
app_web/src/components/context-menu-drag/context-menu-drag.less
0 → 100644
浏览文件 @
54a496cb
.menu-drawer {
.ivu-drawer-left {
left: 201px !important;
}
.ivu-drawer {
top: 64px !important;
}
.ivu-drawer-body {
padding: 32px !important;
.menuItems {
display: flex;
flex-wrap: wrap;
> .item {
margin: 0px 10px;
width: calc(33.333% - 20px);
padding: 0px 15px;
font-size: 13px;
transition: all 0.3s;
display: flex;
justify-content: space-between;
height: 32px;
align-items: center;
.star {
display: flex;
height: 100%;
width: 30px;
font-size: 15px;
align-items: center;
justify-content: center;
.ivu-icon-ios-star-outline{
display: none;
}
}
}
> .item:hover {
background-color: #eaeaea;
cursor: pointer;
.ivu-icon-ios-star-outline{
display: inline;
}
}
}
}
}
.sider-drawer {
.ivu-drawer {
background-color: #ffffff !important;
}
.ivu-drawer-body {
padding: 0px !important;
}
.ivu-drawer {
top: 64px !important;
}
.context-menu-drag {
display: flex;
.flip-list-move {
transition: transform 0.3s;
}
.menu-list {
width: 100%;
height: 100%;
.menu-header {
cursor: pointer;
border-bottom: 1px solid rgb(222, 222, 222);
height: 48px;
line-height: 48px;
display: flex;
align-items: center;
.menuicon {
display: inline-block;
width: 50px;
font-size: 16px;
text-align: center;
font-size: 22px;
}
.content {
display: inline-block;
text-overflow: ellipsis;
white-space: nowrap;
flex: 1 1 0%;
overflow: hidden;
font-size: 13px;
}
.forward {
margin: 0px 8px 0px 4px;
color: rgb(222, 222, 222);
font-size: 15px;
}
}
.list-group-item {
transition: background 1s;
-webkit-transition: background 1s;
.menuicon {
text-align: center;
}
.el-row {
height: 100%;
display: flex;
align-items: center;
padding: 0px 5px;
}
height: 40px;
cursor: pointer;
position: relative;
display: block;
margin-bottom: -1px;
transition: background-color 0.5s;
transition-timing-function: ease-in-out;
.handle {
cursor: move;
}
.bar {
display: flex;
.ivu-icon-ios-close {
cursor: pointer;
font-size: 25px;
}
}
}
.list-group-item:hover {
background-color: #f5f5f5;
.ivu-icon-ios-star-outline{
display: inline;
}
}
}
}
}
\ No newline at end of file
app_web/src/components/context-menu-drag/context-menu-drag.vue
浏览文件 @
54a496cb
此差异已折叠。
点击以展开。
app_web/src/engine/view/edit-view-engine.ts
浏览文件 @
54a496cb
...
...
@@ -247,7 +247,11 @@ export default class EditViewEngine extends ViewEngine {
*/
public
setTabCaption
(
info
:
string
):
void
{
let
viewdata
:
any
=
this
.
view
.
model
;
if
(
viewdata
&&
info
&&
!
Object
.
is
(
info
,
''
)
&&
(
viewdata
.
srfTitle
.
indexOf
(
"-"
)
===
-
1
))
{
let
index
:
number
=
viewdata
.
srfTitle
.
indexOf
(
"-"
);
if
(
viewdata
&&
info
&&
!
Object
.
is
(
info
,
''
))
{
if
(
index
!==
-
1
){
viewdata
.
srfTitle
=
viewdata
.
srfTitle
.
substr
(
0
,
index
);
}
if
(
this
.
view
.
$tabPageExp
){
this
.
view
.
$tabPageExp
.
setCurPageCaption
(
viewdata
.
srfTitle
,
viewdata
.
srfTitle
,
info
);
}
...
...
app_web/src/pages/task/jobs-info-edit-view/jobs-info-edit-view-base.vue
浏览文件 @
54a496cb
...
...
@@ -3,29 +3,26 @@
<app-studioaction
:viewTitle=
"$t(model.srfTitle)"
viewName=
"jobsinfoeditview"
></app-studioaction>
<card
class=
'view-card '
:disHover=
"true"
:bordered=
"false"
>
<
p
slot=
'title'
>
<
div
slot=
'title'
class=
"header-container"
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srfTitle
)
}}
</span>
</p>
<div
slot=
"extra"
>
<div
class=
'toolbar-container'
>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem3.visabled"
:disabled=
"toolBarModels.tbitem3.disabled"
class=
''
@
click=
"toolbar_click(
{ tag: 'tbitem3' }, $event)">
<i
class=
'fa fa-save'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.jobsinfo.editviewtoolbar_toolbar.tbitem3.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.jobsinfo.editviewtoolbar_toolbar.tbitem3.tip'
)
}}
</div>
</tooltip>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.deuiaction1.visabled"
:disabled=
"toolBarModels.deuiaction1.disabled"
class=
''
@
click=
"toolbar_click(
{ tag: 'deuiaction1' }, $event)">
<i
class=
'fa fa-sign-out'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.jobsinfo.editviewtoolbar_toolbar.deuiaction1.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.jobsinfo.editviewtoolbar_toolbar.deuiaction1.tip'
)
}}
</div>
</tooltip>
</div>
</div>
<div
class=
'toolbar-container'
>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem3.visabled"
:disabled=
"toolBarModels.tbitem3.disabled"
class=
''
@
click=
"toolbar_click(
{ tag: 'tbitem3' }, $event)">
<i
class=
'fa fa-save'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.jobsinfo.editviewtoolbar_toolbar.tbitem3.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.jobsinfo.editviewtoolbar_toolbar.tbitem3.tip'
)
}}
</div>
</tooltip>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.deuiaction1.visabled"
:disabled=
"toolBarModels.deuiaction1.disabled"
class=
''
@
click=
"toolbar_click(
{ tag: 'deuiaction1' }, $event)">
<i
class=
'fa fa-sign-out'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.jobsinfo.editviewtoolbar_toolbar.deuiaction1.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.jobsinfo.editviewtoolbar_toolbar.deuiaction1.tip'
)
}}
</div>
</tooltip>
</div>
</div>
<div
class=
"content-container"
>
<div
class=
'view-top-messages'
>
</div>
...
...
@@ -62,7 +59,7 @@
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
{
Subject
}
from
'rxjs'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
JobsInfoService
from
'@/service/jobs-info/jobs-info-service'
;
import
EditViewEngine
from
'@engine/view/edit-view-engine'
;
...
...
@@ -289,6 +286,15 @@ export default class JobsInfoEditViewBase extends Vue {
*/
public
navDataService
=
NavDataService
.
getInstance
(
this
.
$store
);
/**
* 导航服务事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof JobsInfoEditViewBase
*/
public
serviceStateEvent
:
Subscription
|
undefined
;
/**
* 应用上下文
*
...
...
@@ -311,7 +317,7 @@ export default class JobsInfoEditViewBase extends Vue {
* @public
* @memberof JobsInfoEditViewBase
*/
public
parseViewParam
():
void
{
public
parseViewParam
(
inputvalue
:
any
=
null
):
void
{
for
(
let
key
in
this
.
context
){
delete
this
.
context
[
key
];
}
...
...
@@ -341,6 +347,9 @@ export default class JobsInfoEditViewBase extends Vue {
});
});
this
.
$viewTool
.
formatRouteParams
(
tempValue
,
this
.
$route
,
this
.
context
,
this
.
viewparams
);
if
(
inputvalue
){
Object
.
assign
(
this
.
context
,{
'jobsinfo'
:
inputvalue
});
}
if
(
this
.
$store
.
getters
.
getAppData
()
&&
this
.
$store
.
getters
.
getAppData
().
context
){
Object
.
assign
(
this
.
context
,
this
.
$store
.
getters
.
getAppData
().
context
);
}
...
...
@@ -434,7 +443,7 @@ export default class JobsInfoEditViewBase extends Vue {
*/
public
initNavData
(
data
:
any
=
null
){
if
(
this
.
viewDefaultUsage
){
this
.
navDataService
.
addNavData
({
id
:
'jobs-info-edit-view'
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'jobs-info-edit-view'
,
srfkey
:
this
.
context
.
jobsinfo
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -454,10 +463,24 @@ export default class JobsInfoEditViewBase extends Vue {
* @memberof JobsInfoEditViewBase
*/
public
afterCreated
(){
const
secondtag
=
this
.
$util
.
createUUID
();
this
.
$store
.
commit
(
'viewaction/createdView'
,
{
viewtag
:
this
.
viewtag
,
secondtag
:
secondtag
});
this
.
viewtag
=
secondtag
;
this
.
parseViewParam
();
let
_this
:
any
=
this
;
const
secondtag
=
_this
.
$util
.
createUUID
();
_this
.
$store
.
commit
(
'viewaction/createdView'
,
{
viewtag
:
_this
.
viewtag
,
secondtag
:
secondtag
});
_this
.
viewtag
=
secondtag
;
_this
.
parseViewParam
();
_this
.
serviceStateEvent
=
_this
.
navDataService
.
serviceState
.
subscribe
(({
action
,
name
,
data
}:{
action
:
string
,
name
:
any
,
data
:
any
})
=>
{
if
(
!
Object
.
is
(
name
,
'jobs-info-edit-view'
)){
return
;
}
if
(
Object
.
is
(
action
,
'viewrefresh'
))
{
_this
.
$nextTick
(()
=>
{
_this
.
parseViewParam
(
data
);
if
(
_this
.
engine
){
_this
.
engine
.
load
();
}
});
}
});
}
...
...
@@ -689,6 +712,9 @@ export default class JobsInfoEditViewBase extends Vue {
}
})
}
if
(
this
.
serviceStateEvent
)
{
this
.
serviceStateEvent
.
unsubscribe
();
}
}
}
...
...
app_web/src/pages/task/jobs-info-grid-view/jobs-info-grid-view-base.vue
浏览文件 @
54a496cb
...
...
@@ -2,9 +2,9 @@
<div
class=
'view-container degridview jobs-info-grid-view'
>
<app-studioaction
:viewTitle=
"$t(model.srfTitle)"
viewName=
"jobsinfogridview"
></app-studioaction>
<card
class=
'view-card '
:dis-hover=
"true"
:bordered=
"false"
>
<
p
slot=
'title'
>
<
div
slot=
'title'
class=
"header-container"
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srfTitle
)
}}
</span>
</
p
>
</
div
>
<div
class=
'content-container'
>
<div
class=
'view-top-messages'
>
</div>
...
...
@@ -118,7 +118,7 @@
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
{
Subject
}
from
'rxjs'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
JobsInfoService
from
'@/service/jobs-info/jobs-info-service'
;
import
GridViewEngine
from
'@engine/view/grid-view-engine'
;
...
...
@@ -366,6 +366,15 @@ export default class JobsInfoGridViewBase extends Vue {
*/
public
navDataService
=
NavDataService
.
getInstance
(
this
.
$store
);
/**
* 导航服务事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof JobsInfoGridViewBase
*/
public
serviceStateEvent
:
Subscription
|
undefined
;
/**
* 应用上下文
*
...
...
@@ -388,7 +397,7 @@ export default class JobsInfoGridViewBase extends Vue {
* @public
* @memberof JobsInfoGridViewBase
*/
public
parseViewParam
():
void
{
public
parseViewParam
(
inputvalue
:
any
=
null
):
void
{
for
(
let
key
in
this
.
context
){
delete
this
.
context
[
key
];
}
...
...
@@ -418,6 +427,9 @@ export default class JobsInfoGridViewBase extends Vue {
});
});
this
.
$viewTool
.
formatRouteParams
(
tempValue
,
this
.
$route
,
this
.
context
,
this
.
viewparams
);
if
(
inputvalue
){
Object
.
assign
(
this
.
context
,{
'jobsinfo'
:
inputvalue
});
}
if
(
this
.
$store
.
getters
.
getAppData
()
&&
this
.
$store
.
getters
.
getAppData
().
context
){
Object
.
assign
(
this
.
context
,
this
.
$store
.
getters
.
getAppData
().
context
);
}
...
...
@@ -511,7 +523,7 @@ export default class JobsInfoGridViewBase extends Vue {
*/
public
initNavData
(
data
:
any
=
null
){
if
(
this
.
viewDefaultUsage
){
this
.
navDataService
.
addNavData
({
id
:
'jobs-info-grid-view'
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'jobs-info-grid-view'
,
srfkey
:
this
.
context
.
jobsinfo
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -531,10 +543,24 @@ export default class JobsInfoGridViewBase extends Vue {
* @memberof JobsInfoGridViewBase
*/
public
afterCreated
(){
const
secondtag
=
this
.
$util
.
createUUID
();
this
.
$store
.
commit
(
'viewaction/createdView'
,
{
viewtag
:
this
.
viewtag
,
secondtag
:
secondtag
});
this
.
viewtag
=
secondtag
;
this
.
parseViewParam
();
let
_this
:
any
=
this
;
const
secondtag
=
_this
.
$util
.
createUUID
();
_this
.
$store
.
commit
(
'viewaction/createdView'
,
{
viewtag
:
_this
.
viewtag
,
secondtag
:
secondtag
});
_this
.
viewtag
=
secondtag
;
_this
.
parseViewParam
();
_this
.
serviceStateEvent
=
_this
.
navDataService
.
serviceState
.
subscribe
(({
action
,
name
,
data
}:{
action
:
string
,
name
:
any
,
data
:
any
})
=>
{
if
(
!
Object
.
is
(
name
,
'jobs-info-grid-view'
)){
return
;
}
if
(
Object
.
is
(
action
,
'viewrefresh'
))
{
_this
.
$nextTick
(()
=>
{
_this
.
parseViewParam
(
data
);
if
(
_this
.
engine
){
_this
.
engine
.
load
();
}
});
}
});
if
(
this
.
formDruipart
){
this
.
formDruipart
.
subscribe
((
res
:
any
)
=>
{
if
(
Object
.
is
(
res
.
action
,
'save'
)){
...
...
@@ -1130,6 +1156,9 @@ export default class JobsInfoGridViewBase extends Vue {
}
})
}
if
(
this
.
serviceStateEvent
)
{
this
.
serviceStateEvent
.
unsubscribe
();
}
}
}
...
...
app_web/src/pages/task/jobs-log-edit-view/jobs-log-edit-view-base.vue
浏览文件 @
54a496cb
...
...
@@ -3,9 +3,9 @@
<app-studioaction
:viewTitle=
"$t(model.srfTitle)"
viewName=
"jobslogeditview"
></app-studioaction>
<card
class=
'view-card view-no-toolbar'
:disHover=
"true"
:bordered=
"false"
>
<
p
slot=
'title'
>
<
div
slot=
'title'
class=
"header-container"
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srfTitle
)
}}
</span>
</
p
>
</
div
>
<div
class=
"content-container"
>
<div
class=
'view-top-messages'
>
...
...
@@ -43,7 +43,7 @@
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
{
Subject
}
from
'rxjs'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
JobsLogService
from
'@/service/jobs-log/jobs-log-service'
;
import
EditViewEngine
from
'@engine/view/edit-view-engine'
;
...
...
@@ -256,6 +256,15 @@ export default class JobsLogEditViewBase extends Vue {
*/
public
navDataService
=
NavDataService
.
getInstance
(
this
.
$store
);
/**
* 导航服务事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof JobsLogEditViewBase
*/
public
serviceStateEvent
:
Subscription
|
undefined
;
/**
* 应用上下文
*
...
...
@@ -278,7 +287,7 @@ export default class JobsLogEditViewBase extends Vue {
* @public
* @memberof JobsLogEditViewBase
*/
public
parseViewParam
():
void
{
public
parseViewParam
(
inputvalue
:
any
=
null
):
void
{
for
(
let
key
in
this
.
context
){
delete
this
.
context
[
key
];
}
...
...
@@ -308,6 +317,9 @@ export default class JobsLogEditViewBase extends Vue {
});
});
this
.
$viewTool
.
formatRouteParams
(
tempValue
,
this
.
$route
,
this
.
context
,
this
.
viewparams
);
if
(
inputvalue
){
Object
.
assign
(
this
.
context
,{
'jobslog'
:
inputvalue
});
}
if
(
this
.
$store
.
getters
.
getAppData
()
&&
this
.
$store
.
getters
.
getAppData
().
context
){
Object
.
assign
(
this
.
context
,
this
.
$store
.
getters
.
getAppData
().
context
);
}
...
...
@@ -401,7 +413,7 @@ export default class JobsLogEditViewBase extends Vue {
*/
public
initNavData
(
data
:
any
=
null
){
if
(
this
.
viewDefaultUsage
){
this
.
navDataService
.
addNavData
({
id
:
'jobs-log-edit-view'
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'jobs-log-edit-view'
,
srfkey
:
this
.
context
.
jobslog
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -421,10 +433,24 @@ export default class JobsLogEditViewBase extends Vue {
* @memberof JobsLogEditViewBase
*/
public
afterCreated
(){
const
secondtag
=
this
.
$util
.
createUUID
();
this
.
$store
.
commit
(
'viewaction/createdView'
,
{
viewtag
:
this
.
viewtag
,
secondtag
:
secondtag
});
this
.
viewtag
=
secondtag
;
this
.
parseViewParam
();
let
_this
:
any
=
this
;
const
secondtag
=
_this
.
$util
.
createUUID
();
_this
.
$store
.
commit
(
'viewaction/createdView'
,
{
viewtag
:
_this
.
viewtag
,
secondtag
:
secondtag
});
_this
.
viewtag
=
secondtag
;
_this
.
parseViewParam
();
_this
.
serviceStateEvent
=
_this
.
navDataService
.
serviceState
.
subscribe
(({
action
,
name
,
data
}:{
action
:
string
,
name
:
any
,
data
:
any
})
=>
{
if
(
!
Object
.
is
(
name
,
'jobs-log-edit-view'
)){
return
;
}
if
(
Object
.
is
(
action
,
'viewrefresh'
))
{
_this
.
$nextTick
(()
=>
{
_this
.
parseViewParam
(
data
);
if
(
_this
.
engine
){
_this
.
engine
.
load
();
}
});
}
});
}
...
...
@@ -539,6 +565,9 @@ export default class JobsLogEditViewBase extends Vue {
}
})
}
if
(
this
.
serviceStateEvent
)
{
this
.
serviceStateEvent
.
unsubscribe
();
}
}
}
...
...
app_web/src/pages/task/jobs-log-grid-view/jobs-log-grid-view-base.vue
浏览文件 @
54a496cb
...
...
@@ -2,9 +2,9 @@
<div
class=
'view-container degridview jobs-log-grid-view'
>
<app-studioaction
:viewTitle=
"$t(model.srfTitle)"
viewName=
"jobsloggridview"
></app-studioaction>
<card
class=
'view-card '
:dis-hover=
"true"
:bordered=
"false"
>
<
p
slot=
'title'
>
<
div
slot=
'title'
class=
"header-container"
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srfTitle
)
}}
</span>
</
p
>
</
div
>
<div
class=
'content-container'
>
<div
class=
'view-top-messages'
>
</div>
...
...
@@ -67,7 +67,7 @@
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
{
Subject
}
from
'rxjs'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
JobsLogService
from
'@/service/jobs-log/jobs-log-service'
;
import
GridViewEngine
from
'@engine/view/grid-view-engine'
;
...
...
@@ -290,6 +290,15 @@ export default class JobsLogGridViewBase extends Vue {
*/
public
navDataService
=
NavDataService
.
getInstance
(
this
.
$store
);
/**
* 导航服务事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof JobsLogGridViewBase
*/
public
serviceStateEvent
:
Subscription
|
undefined
;
/**
* 应用上下文
*
...
...
@@ -312,7 +321,7 @@ export default class JobsLogGridViewBase extends Vue {
* @public
* @memberof JobsLogGridViewBase
*/
public
parseViewParam
():
void
{
public
parseViewParam
(
inputvalue
:
any
=
null
):
void
{
for
(
let
key
in
this
.
context
){
delete
this
.
context
[
key
];
}
...
...
@@ -342,6 +351,9 @@ export default class JobsLogGridViewBase extends Vue {
});
});
this
.
$viewTool
.
formatRouteParams
(
tempValue
,
this
.
$route
,
this
.
context
,
this
.
viewparams
);
if
(
inputvalue
){
Object
.
assign
(
this
.
context
,{
'jobslog'
:
inputvalue
});
}
if
(
this
.
$store
.
getters
.
getAppData
()
&&
this
.
$store
.
getters
.
getAppData
().
context
){
Object
.
assign
(
this
.
context
,
this
.
$store
.
getters
.
getAppData
().
context
);
}
...
...
@@ -435,7 +447,7 @@ export default class JobsLogGridViewBase extends Vue {
*/
public
initNavData
(
data
:
any
=
null
){
if
(
this
.
viewDefaultUsage
){
this
.
navDataService
.
addNavData
({
id
:
'jobs-log-grid-view'
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'jobs-log-grid-view'
,
srfkey
:
this
.
context
.
jobslog
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -455,10 +467,24 @@ export default class JobsLogGridViewBase extends Vue {
* @memberof JobsLogGridViewBase
*/
public
afterCreated
(){
const
secondtag
=
this
.
$util
.
createUUID
();
this
.
$store
.
commit
(
'viewaction/createdView'
,
{
viewtag
:
this
.
viewtag
,
secondtag
:
secondtag
});
this
.
viewtag
=
secondtag
;
this
.
parseViewParam
();
let
_this
:
any
=
this
;
const
secondtag
=
_this
.
$util
.
createUUID
();
_this
.
$store
.
commit
(
'viewaction/createdView'
,
{
viewtag
:
_this
.
viewtag
,
secondtag
:
secondtag
});
_this
.
viewtag
=
secondtag
;
_this
.
parseViewParam
();
_this
.
serviceStateEvent
=
_this
.
navDataService
.
serviceState
.
subscribe
(({
action
,
name
,
data
}:{
action
:
string
,
name
:
any
,
data
:
any
})
=>
{
if
(
!
Object
.
is
(
name
,
'jobs-log-grid-view'
)){
return
;
}
if
(
Object
.
is
(
action
,
'viewrefresh'
))
{
_this
.
$nextTick
(()
=>
{
_this
.
parseViewParam
(
data
);
if
(
_this
.
engine
){
_this
.
engine
.
load
();
}
});
}
});
if
(
this
.
formDruipart
){
this
.
formDruipart
.
subscribe
((
res
:
any
)
=>
{
if
(
Object
.
is
(
res
.
action
,
'save'
)){
...
...
@@ -741,6 +767,9 @@ export default class JobsLogGridViewBase extends Vue {
}
})
}
if
(
this
.
serviceStateEvent
)
{
this
.
serviceStateEvent
.
unsubscribe
();
}
}
}
...
...
app_web/src/pages/task/jobs-registry-edit-view/jobs-registry-edit-view-base.vue
浏览文件 @
54a496cb
...
...
@@ -3,29 +3,26 @@
<app-studioaction
:viewTitle=
"$t(model.srfTitle)"
viewName=
"jobsregistryeditview"
></app-studioaction>
<card
class=
'view-card '
:disHover=
"true"
:bordered=
"false"
>
<
p
slot=
'title'
>
<
div
slot=
'title'
class=
"header-container"
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srfTitle
)
}}
</span>
</p>
<div
slot=
"extra"
>
<div
class=
'toolbar-container'
>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem3.visabled"
:disabled=
"toolBarModels.tbitem3.disabled"
class=
''
@
click=
"toolbar_click(
{ tag: 'tbitem3' }, $event)">
<i
class=
'fa fa-save'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.jobsregistry.editviewtoolbar_toolbar.tbitem3.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.jobsregistry.editviewtoolbar_toolbar.tbitem3.tip'
)
}}
</div>
</tooltip>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.deuiaction1.visabled"
:disabled=
"toolBarModels.deuiaction1.disabled"
class=
''
@
click=
"toolbar_click(
{ tag: 'deuiaction1' }, $event)">
<i
class=
'fa fa-sign-out'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.jobsregistry.editviewtoolbar_toolbar.deuiaction1.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.jobsregistry.editviewtoolbar_toolbar.deuiaction1.tip'
)
}}
</div>
</tooltip>
</div>
</div>
<div
class=
'toolbar-container'
>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem3.visabled"
:disabled=
"toolBarModels.tbitem3.disabled"
class=
''
@
click=
"toolbar_click(
{ tag: 'tbitem3' }, $event)">
<i
class=
'fa fa-save'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.jobsregistry.editviewtoolbar_toolbar.tbitem3.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.jobsregistry.editviewtoolbar_toolbar.tbitem3.tip'
)
}}
</div>
</tooltip>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.deuiaction1.visabled"
:disabled=
"toolBarModels.deuiaction1.disabled"
class=
''
@
click=
"toolbar_click(
{ tag: 'deuiaction1' }, $event)">
<i
class=
'fa fa-sign-out'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.jobsregistry.editviewtoolbar_toolbar.deuiaction1.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.jobsregistry.editviewtoolbar_toolbar.deuiaction1.tip'
)
}}
</div>
</tooltip>
</div>
</div>
<div
class=
"content-container"
>
<div
class=
'view-top-messages'
>
</div>
...
...
@@ -62,7 +59,7 @@
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
{
Subject
}
from
'rxjs'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
JobsRegistryService
from
'@/service/jobs-registry/jobs-registry-service'
;
import
EditViewEngine
from
'@engine/view/edit-view-engine'
;
...
...
@@ -289,6 +286,15 @@ export default class JobsRegistryEditViewBase extends Vue {
*/
public
navDataService
=
NavDataService
.
getInstance
(
this
.
$store
);
/**
* 导航服务事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof JobsRegistryEditViewBase
*/
public
serviceStateEvent
:
Subscription
|
undefined
;
/**
* 应用上下文
*
...
...
@@ -311,7 +317,7 @@ export default class JobsRegistryEditViewBase extends Vue {
* @public
* @memberof JobsRegistryEditViewBase
*/
public
parseViewParam
():
void
{
public
parseViewParam
(
inputvalue
:
any
=
null
):
void
{
for
(
let
key
in
this
.
context
){
delete
this
.
context
[
key
];
}
...
...
@@ -341,6 +347,9 @@ export default class JobsRegistryEditViewBase extends Vue {
});
});
this
.
$viewTool
.
formatRouteParams
(
tempValue
,
this
.
$route
,
this
.
context
,
this
.
viewparams
);
if
(
inputvalue
){
Object
.
assign
(
this
.
context
,{
'jobsregistry'
:
inputvalue
});
}
if
(
this
.
$store
.
getters
.
getAppData
()
&&
this
.
$store
.
getters
.
getAppData
().
context
){
Object
.
assign
(
this
.
context
,
this
.
$store
.
getters
.
getAppData
().
context
);
}
...
...
@@ -434,7 +443,7 @@ export default class JobsRegistryEditViewBase extends Vue {
*/
public
initNavData
(
data
:
any
=
null
){
if
(
this
.
viewDefaultUsage
){
this
.
navDataService
.
addNavData
({
id
:
'jobs-registry-edit-view'
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'jobs-registry-edit-view'
,
srfkey
:
this
.
context
.
jobsregistry
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -454,10 +463,24 @@ export default class JobsRegistryEditViewBase extends Vue {
* @memberof JobsRegistryEditViewBase
*/
public
afterCreated
(){
const
secondtag
=
this
.
$util
.
createUUID
();
this
.
$store
.
commit
(
'viewaction/createdView'
,
{
viewtag
:
this
.
viewtag
,
secondtag
:
secondtag
});
this
.
viewtag
=
secondtag
;
this
.
parseViewParam
();
let
_this
:
any
=
this
;
const
secondtag
=
_this
.
$util
.
createUUID
();
_this
.
$store
.
commit
(
'viewaction/createdView'
,
{
viewtag
:
_this
.
viewtag
,
secondtag
:
secondtag
});
_this
.
viewtag
=
secondtag
;
_this
.
parseViewParam
();
_this
.
serviceStateEvent
=
_this
.
navDataService
.
serviceState
.
subscribe
(({
action
,
name
,
data
}:{
action
:
string
,
name
:
any
,
data
:
any
})
=>
{
if
(
!
Object
.
is
(
name
,
'jobs-registry-edit-view'
)){
return
;
}
if
(
Object
.
is
(
action
,
'viewrefresh'
))
{
_this
.
$nextTick
(()
=>
{
_this
.
parseViewParam
(
data
);
if
(
_this
.
engine
){
_this
.
engine
.
load
();
}
});
}
});
}
...
...
@@ -689,6 +712,9 @@ export default class JobsRegistryEditViewBase extends Vue {
}
})
}
if
(
this
.
serviceStateEvent
)
{
this
.
serviceStateEvent
.
unsubscribe
();
}
}
}
...
...
app_web/src/pages/task/jobs-registry-grid-view/jobs-registry-grid-view-base.vue
浏览文件 @
54a496cb
...
...
@@ -2,9 +2,9 @@
<div
class=
'view-container degridview jobs-registry-grid-view'
>
<app-studioaction
:viewTitle=
"$t(model.srfTitle)"
viewName=
"jobsregistrygridview"
></app-studioaction>
<card
class=
'view-card '
:dis-hover=
"true"
:bordered=
"false"
>
<
p
slot=
'title'
>
<
div
slot=
'title'
class=
"header-container"
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srfTitle
)
}}
</span>
</
p
>
</
div
>
<div
class=
'content-container'
>
<div
class=
'view-top-messages'
>
</div>
...
...
@@ -97,7 +97,7 @@
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
{
Subject
}
from
'rxjs'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
JobsRegistryService
from
'@/service/jobs-registry/jobs-registry-service'
;
import
GridViewEngine
from
'@engine/view/grid-view-engine'
;
...
...
@@ -338,6 +338,15 @@ export default class JobsRegistryGridViewBase extends Vue {
*/
public
navDataService
=
NavDataService
.
getInstance
(
this
.
$store
);
/**
* 导航服务事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof JobsRegistryGridViewBase
*/
public
serviceStateEvent
:
Subscription
|
undefined
;
/**
* 应用上下文
*
...
...
@@ -360,7 +369,7 @@ export default class JobsRegistryGridViewBase extends Vue {
* @public
* @memberof JobsRegistryGridViewBase
*/
public
parseViewParam
():
void
{
public
parseViewParam
(
inputvalue
:
any
=
null
):
void
{
for
(
let
key
in
this
.
context
){
delete
this
.
context
[
key
];
}
...
...
@@ -390,6 +399,9 @@ export default class JobsRegistryGridViewBase extends Vue {
});
});
this
.
$viewTool
.
formatRouteParams
(
tempValue
,
this
.
$route
,
this
.
context
,
this
.
viewparams
);
if
(
inputvalue
){
Object
.
assign
(
this
.
context
,{
'jobsregistry'
:
inputvalue
});
}
if
(
this
.
$store
.
getters
.
getAppData
()
&&
this
.
$store
.
getters
.
getAppData
().
context
){
Object
.
assign
(
this
.
context
,
this
.
$store
.
getters
.
getAppData
().
context
);
}
...
...
@@ -483,7 +495,7 @@ export default class JobsRegistryGridViewBase extends Vue {
*/
public
initNavData
(
data
:
any
=
null
){
if
(
this
.
viewDefaultUsage
){
this
.
navDataService
.
addNavData
({
id
:
'jobs-registry-grid-view'
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'jobs-registry-grid-view'
,
srfkey
:
this
.
context
.
jobsregistry
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -503,10 +515,24 @@ export default class JobsRegistryGridViewBase extends Vue {
* @memberof JobsRegistryGridViewBase
*/
public
afterCreated
(){
const
secondtag
=
this
.
$util
.
createUUID
();
this
.
$store
.
commit
(
'viewaction/createdView'
,
{
viewtag
:
this
.
viewtag
,
secondtag
:
secondtag
});
this
.
viewtag
=
secondtag
;
this
.
parseViewParam
();
let
_this
:
any
=
this
;
const
secondtag
=
_this
.
$util
.
createUUID
();
_this
.
$store
.
commit
(
'viewaction/createdView'
,
{
viewtag
:
_this
.
viewtag
,
secondtag
:
secondtag
});
_this
.
viewtag
=
secondtag
;
_this
.
parseViewParam
();
_this
.
serviceStateEvent
=
_this
.
navDataService
.
serviceState
.
subscribe
(({
action
,
name
,
data
}:{
action
:
string
,
name
:
any
,
data
:
any
})
=>
{
if
(
!
Object
.
is
(
name
,
'jobs-registry-grid-view'
)){
return
;
}
if
(
Object
.
is
(
action
,
'viewrefresh'
))
{
_this
.
$nextTick
(()
=>
{
_this
.
parseViewParam
(
data
);
if
(
_this
.
engine
){
_this
.
engine
.
load
();
}
});
}
});
if
(
this
.
formDruipart
){
this
.
formDruipart
.
subscribe
((
res
:
any
)
=>
{
if
(
Object
.
is
(
res
.
action
,
'save'
)){
...
...
@@ -1063,6 +1089,9 @@ export default class JobsRegistryGridViewBase extends Vue {
}
})
}
if
(
this
.
serviceStateEvent
)
{
this
.
serviceStateEvent
.
unsubscribe
();
}
}
}
...
...
app_web/src/pages/task/task-index-view/task-index-view-base.vue
浏览文件 @
54a496cb
...
...
@@ -5,8 +5,8 @@
<layout>
<sider
:width=
"collapseChange ? 64 : 200"
hide-trigger
v-model=
"collapseChange"
>
<div
class=
"sider-top"
>
<div
class=
"page-logo"
@
click=
"contextMenuDragVisiable=!contextMenuDragVisiable"
>
<
img
v-show=
"collapseChange"
src=
"../../../assets/img/logo.png"
height=
"16"
/
>
<div
class=
"page-logo"
>
<
span
class=
"menuicon"
@
click=
"contextMenuDragVisiable=!contextMenuDragVisiable"
><Icon
type=
"md-menu"
/></span
>
<span
v-show=
"!collapseChange"
style=
"display: block;text-align: center;font-weight: 300;font-size: 20px;"
>
{{
$t
(
model
.
srfCaption
)
}}
</span>
</div>
</div>
...
...
@@ -31,10 +31,10 @@
<layout>
<header
class=
"index_header"
>
<div
class=
"header-left"
>
<div
class=
"page-logo"
v-if=
"Object.is(navModel,'route')"
>
<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
indexViewTag=
"task-index-view"
indexViewPath=
"taskindex
view"
></app-breadcrumb>
<app-breadcrumb
v-if=
"Object.is(navModel,'route')"
indexViewTag=
"task-index-
view"
></app-breadcrumb>
</div>
</div>
<div
class=
"header-right"
style=
"display: flex;align-items: center;justify-content: space-between;"
>
...
...
@@ -62,7 +62,7 @@
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
{
Subject
}
from
'rxjs'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
...
...
@@ -249,6 +249,15 @@ export default class TaskIndexViewBase extends Vue {
*/
public
navDataService
=
NavDataService
.
getInstance
(
this
.
$store
);
/**
* 导航服务事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof TaskIndexViewBase
*/
public
serviceStateEvent
:
Subscription
|
undefined
;
/**
* 应用上下文
*
...
...
@@ -271,7 +280,7 @@ export default class TaskIndexViewBase extends Vue {
* @public
* @memberof TaskIndexViewBase
*/
public
parseViewParam
():
void
{
public
parseViewParam
(
inputvalue
:
any
=
null
):
void
{
for
(
let
key
in
this
.
context
){
delete
this
.
context
[
key
];
}
...
...
@@ -392,7 +401,7 @@ export default class TaskIndexViewBase extends Vue {
*/
public
initNavData
(
data
:
any
=
null
){
if
(
this
.
viewDefaultUsage
){
this
.
navDataService
.
addNavData
({
id
:
'task-index-view'
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'task-index-view'
,
srfkey
:
null
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -412,10 +421,24 @@ export default class TaskIndexViewBase extends Vue {
* @memberof TaskIndexViewBase
*/
public
afterCreated
(){
const
secondtag
=
this
.
$util
.
createUUID
();
this
.
$store
.
commit
(
'viewaction/createdView'
,
{
viewtag
:
this
.
viewtag
,
secondtag
:
secondtag
});
this
.
viewtag
=
secondtag
;
this
.
parseViewParam
();
let
_this
:
any
=
this
;
const
secondtag
=
_this
.
$util
.
createUUID
();
_this
.
$store
.
commit
(
'viewaction/createdView'
,
{
viewtag
:
_this
.
viewtag
,
secondtag
:
secondtag
});
_this
.
viewtag
=
secondtag
;
_this
.
parseViewParam
();
_this
.
serviceStateEvent
=
_this
.
navDataService
.
serviceState
.
subscribe
(({
action
,
name
,
data
}:{
action
:
string
,
name
:
any
,
data
:
any
})
=>
{
if
(
!
Object
.
is
(
name
,
'task-index-view'
)){
return
;
}
if
(
Object
.
is
(
action
,
'viewrefresh'
))
{
_this
.
$nextTick
(()
=>
{
_this
.
parseViewParam
(
data
);
if
(
_this
.
engine
){
_this
.
engine
.
load
();
}
});
}
});
}
...
...
app_web/src/pages/task/task-index-view/task-index-view.less
浏览文件 @
54a496cb
...
...
@@ -76,7 +76,6 @@
}
}
.ivu-layout .ivu-layout-sider .ivu-layout-sider-children .sider-top{
padding: 4px;
margin-top: -2px;
line-height: 58px;
text-align: center;
...
...
@@ -84,11 +83,22 @@
cursor: pointer;
}
.sider-top{
padding: 0px;
margin-bottom: 1px;
height:65px;
box-shadow: 0 1px 2px 0 rgba(0,0,0,.15);
> .page-logo{
display: flex;
align-items: center;
height: 100%;
>.menuicon{
display: block;
text-align: center;
font-weight: 300;
font-size: 28px;
width:64px;
height:100%;
}
}
}
}
...
...
app_web/src/service/app/navdata-service.ts
浏览文件 @
54a496cb
...
...
@@ -42,6 +42,13 @@ export interface NavDataElement {
*/
path
:
string
;
/**
* 元素主键
*
* @memberof NavDataElement
*/
srfkey
:
string
|
null
;
}
export
interface
ServiceState
{
...
...
@@ -53,6 +60,13 @@ export interface ServiceState {
*/
action
:
string
;
/**
* 名称
*
* @memberof ServiceState
*/
name
:
any
;
/**
* 数据
*
...
...
@@ -170,7 +184,7 @@ export default class NavDataService {
this
.
sessionStore
.
setItem
(
'srfnavdata'
,
JSON
.
stringify
(
this
.
navDataStack
));
return
curNavData
;
}
this
.
serviceState
.
next
({
action
:
'
refresh'
,
data
:
this
.
navDataStack
});
this
.
serviceState
.
next
({
action
:
'
datarefresh'
,
name
:
null
,
data
:
this
.
navDataStack
});
}
/**
...
...
app_web/src/service/entity-service.ts
浏览文件 @
54a496cb
...
...
@@ -909,4 +909,26 @@ export default class EntityService {
return
Http
.
getInstance
().
post
(
`/
${
this
.
APPDENAME
}
/
${
data
[
this
.
APPDEKEY
]}
/testuserexistworklist`
,
requestData
,
isloading
);
}
/**
* 获取所有应用数据
*
* @param context
* @param data
* @param isloading
*/
public
async
getAllApp
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
return
Http
.
getInstance
().
get
(
`uaa/access-center/app-switcher/default`
,
data
,
isloading
);
}
/**
* 更新已选择的应用
*
* @param context
* @param data
* @param isloading
*/
public
async
updateChooseApp
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
return
Http
.
getInstance
().
put
(
`uaa/access-center/app-switcher/default`
,
data
,
isloading
);
}
}
\ No newline at end of file
app_web/src/styles/default.less
浏览文件 @
54a496cb
...
...
@@ -87,18 +87,29 @@
// display: flex;
// flex-direction: column;
> .ivu-card-head{
height: 50
px;
min-height: 42
px;
border-color: rgb(221, 221, 221);
border-style: solid;
border-width: 0px 0px 1px;
margin: 0px 0px 11px;
padding: 6px 0px;
> p{
height: 50px;
padding: 6px 0px 2px;
> .header-container{
min-height: 42px;
display: flex;
flex-wrap: nowrap;
align-items: flex-start;
justify-content: space-between;
> .caption-info{
line-height:
50
px;
line-height:
42
px;
font-size: 18px;
color: #1890ff;
flex-shrink: 0;
}
> .toolbar-container{
display: inline-block;
display: flex;
flex-wrap: wrap;
align-items: center;
}
}
}
...
...
app_web/src/theme/blue.theme.less
浏览文件 @
54a496cb
...
...
@@ -11,7 +11,12 @@
background-color: #4276a4;
.sider-top {
color: hsla(0,0%,100%,.8);
background: #2d5f8b;
background-color: #4276a4;
>.page-logo{
>.menuicon:hover{
background-color: #2d5f8b;
}
}
}
}
}
...
...
app_web/src/theme/dark-blue.theme.less
浏览文件 @
54a496cb
...
...
@@ -11,6 +11,11 @@
.sider-top {
color: hsla(0,0%,100%,.8);
background-color: #20222A;
>.page-logo{
>.menuicon:hover{
background-color:#060708;
}
}
}
}
}
...
...
app_web/src/theme/default.theme.less
浏览文件 @
54a496cb
...
...
@@ -9,10 +9,13 @@
> .ivu-layout-sider {
background-color: #f6f6f6;
.sider-top {
background-color: #e8eaec;
.ivu-icon {
color: #aaaaaa;
}
background-color: #f6f6f6;
>.page-logo{
>.menuicon:hover{
background-color: #fff;
color:#000;
}
}
}
}
}
...
...
app_web/src/widgets/app/task-index-view-appmenu/task-index-view-appmenu-base.vue
浏览文件 @
54a496cb
...
...
@@ -575,10 +575,8 @@ export default class TaskIndexViewBase extends Vue implements ControlInterface {
*/
public
click
(
item
:
any
)
{
if
(
item
)
{
if
(
Object
.
is
(
this
.
navModel
,
"route"
)){
let
navDataService
=
NavDataService
.
getInstance
(
this
.
$store
);
navDataService
.
removeNavData
(
this
.
viewtag
);
}
let
navDataService
=
NavDataService
.
getInstance
(
this
.
$store
);
navDataService
.
removeNavData
(
this
.
viewtag
);
switch
(
item
.
appfunctag
)
{
case
'_4'
:
this
.
click_4
(
item
);
...
...
@@ -611,7 +609,12 @@ export default class TaskIndexViewBase extends Vue implements ControlInterface {
{
pathName
:
'gridview'
,
parameterName
:
'gridview'
},
];
const
path
:
string
=
this
.
$viewTool
.
buildUpRoutePath
(
this
.
$route
,
{},
deResParameters
,
parameters
,
[],
viewparam
);
this
.
$router
.
push
(
path
);
if
(
Object
.
is
(
this
.
$route
.
path
,
path
)){
return
;
}
this
.
$nextTick
(
function
(){
this
.
$router
.
push
(
path
);
})
}
/**
...
...
@@ -629,7 +632,12 @@ export default class TaskIndexViewBase extends Vue implements ControlInterface {
{
pathName
:
'gridview'
,
parameterName
:
'gridview'
},
];
const
path
:
string
=
this
.
$viewTool
.
buildUpRoutePath
(
this
.
$route
,
{},
deResParameters
,
parameters
,
[],
viewparam
);
this
.
$router
.
push
(
path
);
if
(
Object
.
is
(
this
.
$route
.
path
,
path
)){
return
;
}
this
.
$nextTick
(
function
(){
this
.
$router
.
push
(
path
);
})
}
/**
...
...
@@ -647,7 +655,12 @@ export default class TaskIndexViewBase extends Vue implements ControlInterface {
{
pathName
:
'gridview'
,
parameterName
:
'gridview'
},
];
const
path
:
string
=
this
.
$viewTool
.
buildUpRoutePath
(
this
.
$route
,
{},
deResParameters
,
parameters
,
[],
viewparam
);
this
.
$router
.
push
(
path
);
if
(
Object
.
is
(
this
.
$route
.
path
,
path
)){
return
;
}
this
.
$nextTick
(
function
(){
this
.
$router
.
push
(
path
);
})
}
/**
...
...
app_web/src/widgets/jobs-info/main-form/main-form-base.vue
浏览文件 @
54a496cb
...
...
@@ -4,7 +4,7 @@
<row
>
<i-col
v-show=
"detailsModel.group1.visible"
:style=
"
{}" :lg="{ span: 24, offset: 0 }">
<app-form-group
layoutType=
"TABLE_24COL"
titleStyle=
""
class=
''
:uiActionGroup=
"detailsModel.group1.uiActionGroup"
@
groupuiactionclick=
"groupUIActionClick($event)"
:caption=
"$t('entities.jobsinfo.main_form.details.group1')"
:isShowCaption=
"
tru
e"
uiStyle=
"DEFAULT"
:titleBarCloseMode=
"0"
:isInfoGroupMode=
"false"
>
<app-form-group
layoutType=
"TABLE_24COL"
titleStyle=
""
class=
''
:uiActionGroup=
"detailsModel.group1.uiActionGroup"
@
groupuiactionclick=
"groupUIActionClick($event)"
:caption=
"$t('entities.jobsinfo.main_form.details.group1')"
:isShowCaption=
"
fals
e"
uiStyle=
"DEFAULT"
:titleBarCloseMode=
"0"
:isInfoGroupMode=
"false"
>
<row>
<i-col
v-show=
"detailsModel.id.visible"
:style=
"
{}" :lg="{ span: 24, offset: 0 }">
<app-form-item
name=
'id'
:itemRules=
"this.rules.id"
class=
''
:caption=
"$t('entities.jobsinfo.main_form.details.id')"
uiStyle=
"DEFAULT"
:labelWidth=
"130"
:isShowCaption=
"true"
:error=
"detailsModel.id.error"
:isEmptyCaption=
"false"
labelPos=
"LEFT"
>
...
...
@@ -617,7 +617,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @memberof Main
*/
public
detailsModel
:
any
=
{
group1
:
new
FormGroupPanelModel
({
caption
:
'任务信息基本信息'
,
detailType
:
'GROUPPANEL'
,
name
:
'group1'
,
visible
:
true
,
isShowCaption
:
tru
e
,
form
:
this
,
uiActionGroup
:
{
caption
:
''
,
langbase
:
'entities.jobsinfo.main_form'
,
extractMode
:
'ITEM'
,
details
:
[]
}
})
group1
:
new
FormGroupPanelModel
({
caption
:
'任务信息基本信息'
,
detailType
:
'GROUPPANEL'
,
name
:
'group1'
,
visible
:
true
,
isShowCaption
:
fals
e
,
form
:
this
,
uiActionGroup
:
{
caption
:
''
,
langbase
:
'entities.jobsinfo.main_form'
,
extractMode
:
'ITEM'
,
details
:
[]
}
})
,
formpage1
:
new
FormPageModel
({
caption
:
'基本信息'
,
detailType
:
'FORMPAGE'
,
name
:
'formpage1'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
})
,
...
...
app_web/src/widgets/jobs-log/main-form/main-form-base.vue
浏览文件 @
54a496cb
...
...
@@ -4,7 +4,7 @@
<row
>
<i-col
v-show=
"detailsModel.group1.visible"
:style=
"
{}" :lg="{ span: 24, offset: 0 }">
<app-form-group
layoutType=
"TABLE_24COL"
titleStyle=
""
class=
''
:uiActionGroup=
"detailsModel.group1.uiActionGroup"
@
groupuiactionclick=
"groupUIActionClick($event)"
:caption=
"$t('entities.jobslog.main_form.details.group1')"
:isShowCaption=
"
tru
e"
uiStyle=
"DEFAULT"
:titleBarCloseMode=
"0"
:isInfoGroupMode=
"false"
>
<app-form-group
layoutType=
"TABLE_24COL"
titleStyle=
""
class=
''
:uiActionGroup=
"detailsModel.group1.uiActionGroup"
@
groupuiactionclick=
"groupUIActionClick($event)"
:caption=
"$t('entities.jobslog.main_form.details.group1')"
:isShowCaption=
"
fals
e"
uiStyle=
"DEFAULT"
:titleBarCloseMode=
"0"
:isInfoGroupMode=
"false"
>
<row>
<i-col
v-show=
"detailsModel.id.visible"
:style=
"
{}" :lg="{ span: 24, offset: 0 }">
<app-form-item
name=
'id'
:itemRules=
"this.rules.id"
class=
''
:caption=
"$t('entities.jobslog.main_form.details.id')"
uiStyle=
"DEFAULT"
:labelWidth=
"130"
:isShowCaption=
"true"
:error=
"detailsModel.id.error"
:isEmptyCaption=
"false"
labelPos=
"LEFT"
>
...
...
@@ -541,7 +541,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @memberof Main
*/
public
detailsModel
:
any
=
{
group1
:
new
FormGroupPanelModel
({
caption
:
'任务调度日志基本信息'
,
detailType
:
'GROUPPANEL'
,
name
:
'group1'
,
visible
:
true
,
isShowCaption
:
tru
e
,
form
:
this
,
uiActionGroup
:
{
caption
:
''
,
langbase
:
'entities.jobslog.main_form'
,
extractMode
:
'ITEM'
,
details
:
[]
}
})
group1
:
new
FormGroupPanelModel
({
caption
:
'任务调度日志基本信息'
,
detailType
:
'GROUPPANEL'
,
name
:
'group1'
,
visible
:
true
,
isShowCaption
:
fals
e
,
form
:
this
,
uiActionGroup
:
{
caption
:
''
,
langbase
:
'entities.jobslog.main_form'
,
extractMode
:
'ITEM'
,
details
:
[]
}
})
,
formpage1
:
new
FormPageModel
({
caption
:
'基本信息'
,
detailType
:
'FORMPAGE'
,
name
:
'formpage1'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
})
,
...
...
app_web/src/widgets/jobs-registry/main-form/main-form-base.vue
浏览文件 @
54a496cb
...
...
@@ -4,7 +4,7 @@
<row
>
<i-col
v-show=
"detailsModel.group1.visible"
:style=
"
{}" :lg="{ span: 24, offset: 0 }">
<app-form-group
layoutType=
"TABLE_24COL"
titleStyle=
""
class=
''
:uiActionGroup=
"detailsModel.group1.uiActionGroup"
@
groupuiactionclick=
"groupUIActionClick($event)"
:caption=
"$t('entities.jobsregistry.main_form.details.group1')"
:isShowCaption=
"
tru
e"
uiStyle=
"DEFAULT"
:titleBarCloseMode=
"0"
:isInfoGroupMode=
"false"
>
<app-form-group
layoutType=
"TABLE_24COL"
titleStyle=
""
class=
''
:uiActionGroup=
"detailsModel.group1.uiActionGroup"
@
groupuiactionclick=
"groupUIActionClick($event)"
:caption=
"$t('entities.jobsregistry.main_form.details.group1')"
:isShowCaption=
"
fals
e"
uiStyle=
"DEFAULT"
:titleBarCloseMode=
"0"
:isInfoGroupMode=
"false"
>
<row>
<i-col
v-show=
"detailsModel.id.visible"
:style=
"
{}" :lg="{ span: 24, offset: 0 }">
<app-form-item
name=
'id'
:itemRules=
"this.rules.id"
class=
''
:caption=
"$t('entities.jobsregistry.main_form.details.id')"
uiStyle=
"DEFAULT"
:labelWidth=
"130"
:isShowCaption=
"true"
:error=
"detailsModel.id.error"
:isEmptyCaption=
"false"
labelPos=
"LEFT"
>
...
...
@@ -473,7 +473,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @memberof Main
*/
public
detailsModel
:
any
=
{
group1
:
new
FormGroupPanelModel
({
caption
:
'任务注册信息基本信息'
,
detailType
:
'GROUPPANEL'
,
name
:
'group1'
,
visible
:
true
,
isShowCaption
:
tru
e
,
form
:
this
,
uiActionGroup
:
{
caption
:
''
,
langbase
:
'entities.jobsregistry.main_form'
,
extractMode
:
'ITEM'
,
details
:
[]
}
})
group1
:
new
FormGroupPanelModel
({
caption
:
'任务注册信息基本信息'
,
detailType
:
'GROUPPANEL'
,
name
:
'group1'
,
visible
:
true
,
isShowCaption
:
fals
e
,
form
:
this
,
uiActionGroup
:
{
caption
:
''
,
langbase
:
'entities.jobsregistry.main_form'
,
extractMode
:
'ITEM'
,
details
:
[]
}
})
,
formpage1
:
new
FormPageModel
({
caption
:
'基本信息'
,
detailType
:
'FORMPAGE'
,
name
:
'formpage1'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
})
,
...
...
config.xml
浏览文件 @
54a496cb
...
...
@@ -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
浏览文件 @
54a496cb
...
...
@@ -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
浏览文件 @
54a496cb
...
...
@@ -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-app/ibztask-app-web/src/main/resources/application-web-prod.yml
浏览文件 @
54a496cb
server
:
port
:
30005
#Log配置
logging
:
level
:
cn.ibizlab
:
info
#zuul网关路由设置
zuul
:
routes
:
...
...
ibztask-app/ibztask-app-web/src/main/resources/logback-spring.xml
0 → 100644
浏览文件 @
54a496cb
<?xml version="1.0" encoding="UTF-8"?>
<configuration
debug=
"false"
>
<property
name=
"LOG_PATH"
value=
"logs"
/>
<property
name=
"LOG_PATTERN"
value=
"%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %-40.40logger{39} : %msg%n"
/>
<!-- 彩色日志 -->
<!-- 彩色日志依赖的渲染类 -->
<conversionRule
conversionWord=
"clr"
converterClass=
"org.springframework.boot.logging.logback.ColorConverter"
/>
<conversionRule
conversionWord=
"wex"
converterClass=
"org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"
/>
<conversionRule
conversionWord=
"wEx"
converterClass=
"org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"
/>
<!-- 彩色日志格式 -->
<property
name=
"LOG_PATTERN2"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr([${LOG_LEVEL_PATTERN:-%5p}]) %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<!-- 控制台输出 -->
<appender
name=
"Console"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<pattern>
${LOG_PATTERN}
</pattern>
</encoder>
</appender>
<!-- 按照每天生成日志文件 -->
<appender
name=
"file"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!--日志文件输出的文件名-->
<FileNamePattern>
${LOG_PATH}/ibztask-web.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>
30
</MaxHistory>
</rollingPolicy>
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<pattern>
${LOG_PATTERN}
</pattern>
</encoder>
<!--日志文件最大的大小-->
<triggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"
>
<MaxFileSize>
100MB
</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- 日志输出级别 -->
<root
level=
"INFO"
>
<appender-ref
ref=
"Console"
/>
<appender-ref
ref=
"file"
/>
</root>
</configuration>
ibztask-boot/src/main/resources/logback-spring.xml
0 → 100644
浏览文件 @
54a496cb
<?xml version="1.0" encoding="UTF-8"?>
<configuration
debug=
"false"
>
<property
name=
"LOG_PATH"
value=
"logs"
/>
<property
name=
"LOG_PATTERN"
value=
"%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %-40.40logger{39} : %msg%n"
/>
<!-- 彩色日志 -->
<!-- 彩色日志依赖的渲染类 -->
<conversionRule
conversionWord=
"clr"
converterClass=
"org.springframework.boot.logging.logback.ColorConverter"
/>
<conversionRule
conversionWord=
"wex"
converterClass=
"org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"
/>
<conversionRule
conversionWord=
"wEx"
converterClass=
"org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"
/>
<!-- 彩色日志格式 -->
<property
name=
"LOG_PATTERN2"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr([${LOG_LEVEL_PATTERN:-%5p}]) %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<!-- 控制台输出 -->
<appender
name=
"Console"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<pattern>
${LOG_PATTERN}
</pattern>
</encoder>
</appender>
<!-- 按照每天生成日志文件 -->
<appender
name=
"file"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!--日志文件输出的文件名-->
<FileNamePattern>
${LOG_PATH}/ibztask.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>
30
</MaxHistory>
</rollingPolicy>
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<pattern>
${LOG_PATTERN}
</pattern>
</encoder>
<!--日志文件最大的大小-->
<triggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"
>
<MaxFileSize>
100MB
</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- 日志输出级别 -->
<root
level=
"INFO"
>
<appender-ref
ref=
"Console"
/>
<appender-ref
ref=
"file"
/>
</root>
</configuration>
ibztask-core/src/main/java/cn/ibizlab/core/task/service/impl/JobsInfoServiceImpl.java
浏览文件 @
54a496cb
...
...
@@ -50,9 +50,9 @@ public class JobsInfoServiceImpl extends ServiceImpl<JobsInfoMapper, JobsInfo> i
@Override
@Transactional
public
JobsInfo
start
(
JobsInfo
et
)
{
et
.
set
(
"Id"
,
null
);
et
.
set
(
"Status"
,
"1"
);
et
.
set
(
"Last_time"
,
"0"
);
update
(
et
);
return
et
;
}
@Override
...
...
@@ -158,10 +158,10 @@ public class JobsInfoServiceImpl extends ServiceImpl<JobsInfoMapper, JobsInfo> i
@Override
@Transactional
public
JobsInfo
stop
(
JobsInfo
et
)
{
et
.
set
(
"
Id"
,
null
);
et
.
set
(
"
Next_time"
,
"0"
);
et
.
set
(
"Last_time"
,
"0"
);
et
.
set
(
"Status"
,
"0"
);
et
.
set
(
"Next_time"
,
"0"
);
update
(
et
);
return
et
;
}
...
...
ibztask-core/src/main/resources/liquibase/h2_table.xml
浏览文件 @
54a496cb
...
...
@@ -4,7 +4,7 @@
<!--输出实体[JOBS_INFO]数据结构 -->
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-jobs_info-
79
-1"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-jobs_info-
80
-1"
>
<createTable
tableName=
"JOBS_INFO"
>
<column
name=
"ID"
remarks=
""
type=
"BIGINT"
>
<constraints
primaryKey=
"true"
primaryKeyName=
"PK_JOBS_INFO_ID"
/>
...
...
@@ -42,7 +42,7 @@
<!--输出实体[JOBS_REGISTRY]数据结构 -->
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-jobs_registry-3
0
-2"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-jobs_registry-3
1
-2"
>
<createTable
tableName=
"JOBS_REGISTRY"
>
<column
name=
"ID"
remarks=
""
type=
"BIGINT"
>
<constraints
primaryKey=
"true"
primaryKeyName=
"PK_JOBS_REGISTRY_ID"
/>
...
...
@@ -76,7 +76,7 @@
<!--输出实体[JOBS_LOG]数据结构 -->
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-jobs_log-4
6
-4"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-jobs_log-4
8
-4"
>
<createTable
tableName=
"JOBS_LOG"
>
<column
name=
"ID"
remarks=
""
type=
"BIGINT"
>
<constraints
primaryKey=
"true"
primaryKeyName=
"PK_JOBS_LOG_ID"
/>
...
...
ibztask-provider/ibztask-provider-api/src/main/resources/application-api-prod.yml
浏览文件 @
54a496cb
server
:
port
:
40005
#Log配置
logging
:
level
:
cn.ibizlab
:
info
\ No newline at end of file
ibztask-provider/ibztask-provider-api/src/main/resources/logback-spring.xml
0 → 100644
浏览文件 @
54a496cb
<?xml version="1.0" encoding="UTF-8"?>
<configuration
debug=
"false"
>
<property
name=
"LOG_PATH"
value=
"logs"
/>
<property
name=
"LOG_PATTERN"
value=
"%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %-40.40logger{39} : %msg%n"
/>
<!-- 彩色日志 -->
<!-- 彩色日志依赖的渲染类 -->
<conversionRule
conversionWord=
"clr"
converterClass=
"org.springframework.boot.logging.logback.ColorConverter"
/>
<conversionRule
conversionWord=
"wex"
converterClass=
"org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"
/>
<conversionRule
conversionWord=
"wEx"
converterClass=
"org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"
/>
<!-- 彩色日志格式 -->
<property
name=
"LOG_PATTERN2"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr([${LOG_LEVEL_PATTERN:-%5p}]) %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<!-- 控制台输出 -->
<appender
name=
"Console"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<pattern>
${LOG_PATTERN}
</pattern>
</encoder>
</appender>
<!-- 按照每天生成日志文件 -->
<appender
name=
"file"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!--日志文件输出的文件名-->
<FileNamePattern>
${LOG_PATH}/ibztask-api.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>
30
</MaxHistory>
</rollingPolicy>
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<pattern>
${LOG_PATTERN}
</pattern>
</encoder>
<!--日志文件最大的大小-->
<triggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"
>
<MaxFileSize>
100MB
</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- 日志输出级别 -->
<root
level=
"INFO"
>
<appender-ref
ref=
"Console"
/>
<appender-ref
ref=
"file"
/>
</root>
</configuration>
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录