Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibztask
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibztask
提交
1410da84
提交
1410da84
编写于
6月 23, 2020
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ibiz4j 部署微服务应用
上级
c05fe708
变更
69
显示空白字符变更
内嵌
并排
正在显示
69 个修改的文件
包含
1233 行增加
和
232 行删除
+1233
-232
CHANGELOG.md
app_web/CHANGELOG.md
+36
-0
package.json
app_web/package.json
+1
-0
view-config.json
app_web/public/assets/json/view-config.json
+2
-2
app-register.ts
app_web/src/app-register.ts
+5
-8
app-breadcrumb.vue
app_web/src/components/app-breadcrumb/app-breadcrumb.vue
+10
-1
app-department-select.vue
...omponents/app-department-select/app-department-select.vue
+2
-1
app-group-picker.vue
app_web/src/components/app-group-picker/app-group-picker.vue
+306
-0
app-group-select.vue
app_web/src/components/app-group-select/app-group-select.vue
+309
-0
app-org-select.vue
app_web/src/components/app-org-select/app-org-select.vue
+2
-0
app-user.less
app_web/src/components/app-user/app-user.less
+3
-0
app-user.vue
app_web/src/components/app-user/app-user.vue
+2
-2
context-menu-drag.vue
...eb/src/components/context-menu-drag/context-menu-drag.vue
+26
-7
input-box.less
app_web/src/components/input-box/input-box.less
+3
-0
input-box.vue
app_web/src/components/input-box/input-box.vue
+21
-2
tab-page-exp.vue
app_web/src/components/tab-page-exp/tab-page-exp.vue
+1
-1
edit-view-engine.ts
app_web/src/engine/view/edit-view-engine.ts
+5
-5
md-view-engine.ts
app_web/src/engine/view/md-view-engine.ts
+7
-5
en-US.ts
app_web/src/locale/lang/en-US.ts
+2
-2
zh-CN.ts
app_web/src/locale/lang/zh-CN.ts
+2
-2
task-index-view-appmenu.ts
...ck/app/task-index-view-appmenu/task-index-view-appmenu.ts
+3
-3
viewconfig.ts
app_web/src/mock/viewconfig/viewconfig.ts
+2
-2
jobs-info-edit-view-base.vue
...ges/task/jobs-info-edit-view/jobs-info-edit-view-base.vue
+37
-6
jobs-info-edit-view.vue
...rc/pages/task/jobs-info-edit-view/jobs-info-edit-view.vue
+3
-0
jobs-info-grid-view-base.vue
...ges/task/jobs-info-grid-view/jobs-info-grid-view-base.vue
+37
-6
jobs-info-grid-view.vue
...rc/pages/task/jobs-info-grid-view/jobs-info-grid-view.vue
+3
-0
jobs-log-edit-view-base.vue
...pages/task/jobs-log-edit-view/jobs-log-edit-view-base.vue
+37
-6
jobs-log-edit-view.vue
.../src/pages/task/jobs-log-edit-view/jobs-log-edit-view.vue
+3
-0
jobs-log-grid-view-base.vue
...pages/task/jobs-log-grid-view/jobs-log-grid-view-base.vue
+37
-6
jobs-log-grid-view.vue
.../src/pages/task/jobs-log-grid-view/jobs-log-grid-view.vue
+3
-0
jobs-registry-edit-view-base.vue
.../jobs-registry-edit-view/jobs-registry-edit-view-base.vue
+37
-6
jobs-registry-edit-view.vue
.../task/jobs-registry-edit-view/jobs-registry-edit-view.vue
+3
-0
jobs-registry-grid-view-base.vue
.../jobs-registry-grid-view/jobs-registry-grid-view-base.vue
+37
-6
jobs-registry-grid-view.vue
.../task/jobs-registry-grid-view/jobs-registry-grid-view.vue
+3
-0
main.ts
app_web/src/pages/task/task-index-view/main.ts
+0
-3
task-index-view-base.vue
...b/src/pages/task/task-index-view/task-index-view-base.vue
+39
-8
task-index-view.vue
app_web/src/pages/task/task-index-view/task-index-view.vue
+3
-0
navdata-service.ts
app_web/src/service/app/navdata-service.ts
+79
-0
jobs-info-service-base.ts
app_web/src/service/jobs-info/jobs-info-service-base.ts
+0
-2
jobs-lock-service-base.ts
app_web/src/service/jobs-lock/jobs-lock-service-base.ts
+0
-2
jobs-log-service-base.ts
app_web/src/service/jobs-log/jobs-log-service-base.ts
+0
-2
jobs-registry-service-base.ts
...b/src/service/jobs-registry/jobs-registry-service-base.ts
+0
-2
default.less
app_web/src/styles/default.less
+1
-1
task-index-view-appmenu-base.vue
.../task-index-view-appmenu/task-index-view-appmenu-base.vue
+11
-13
task-index-view-appmenu-model.ts
.../task-index-view-appmenu/task-index-view-appmenu-model.ts
+6
-6
control-service.ts
app_web/src/widgets/control-service.ts
+3
-3
default-searchform-base.vue
.../jobs-info/default-searchform/default-searchform-base.vue
+2
-1
default-searchform-service.ts
...obs-info/default-searchform/default-searchform-service.ts
+5
-5
main-form-base.vue
app_web/src/widgets/jobs-info/main-form/main-form-base.vue
+11
-1
main-form-service.ts
app_web/src/widgets/jobs-info/main-form/main-form-service.ts
+5
-5
main-form.less
app_web/src/widgets/jobs-info/main-form/main-form.less
+0
-16
main-grid-base.vue
app_web/src/widgets/jobs-info/main-grid/main-grid-base.vue
+3
-1
default-searchform-base.vue
...s/jobs-log/default-searchform/default-searchform-base.vue
+2
-1
default-searchform-service.ts
...jobs-log/default-searchform/default-searchform-service.ts
+5
-5
main-form-base.vue
app_web/src/widgets/jobs-log/main-form/main-form-base.vue
+11
-1
main-form-service.ts
app_web/src/widgets/jobs-log/main-form/main-form-service.ts
+5
-5
main-form.less
app_web/src/widgets/jobs-log/main-form/main-form.less
+0
-16
main-grid-base.vue
app_web/src/widgets/jobs-log/main-grid/main-grid-base.vue
+3
-1
default-searchform-base.vue
...s-registry/default-searchform/default-searchform-base.vue
+2
-1
default-searchform-service.ts
...registry/default-searchform/default-searchform-service.ts
+5
-5
main-form-base.vue
...eb/src/widgets/jobs-registry/main-form/main-form-base.vue
+11
-1
main-form-service.ts
.../src/widgets/jobs-registry/main-form/main-form-service.ts
+5
-5
main-form.less
app_web/src/widgets/jobs-registry/main-form/main-form.less
+0
-16
main-grid-base.vue
...eb/src/widgets/jobs-registry/main-grid/main-grid-base.vue
+3
-1
vue.config.js
app_web/vue.config.js
+1
-2
config.xml
config.xml
+5
-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
+14
-1
Dockerfile
...-provider/ibztask-provider-api/src/main/docker/Dockerfile
+1
-1
ibztask-provider-api.yaml
...sk-provider-api/src/main/docker/ibztask-provider-api.yaml
+1
-14
未找到文件。
app_web/CHANGELOG.md
浏览文件 @
1410da84
## v7.0.0-alpha.11 [2020-6-21]
### Bug修复
修复标题工具栏样式遮挡bug
修复表格行编辑字段格式对齐
修复日历部件初始化压缩成一行问题
修复下拉多选组件最后一项数据无法删除
### 功能新增及优化
#### 模板
新增支持表单、表格新建默认值(当前时间)
新增行编辑浮点数精度格式化
新增首页面包屑导航模式
新增编辑视图第一条记录、上一条记录、下一条记录、最后一条记录界面行为
优化面板和多数据部件数据流向
优化表单在模态打开模式中padding样式
优化嵌入视图中工具栏消息数量提示样式
优化动态导航视图树样式
#### 基础文件
新增行编辑浮点数精度格式化
## v7.0.0-alpha.10 [2020-6-18]
### Bug修复
...
...
app_web/package.json
浏览文件 @
1410da84
...
...
@@ -58,6 +58,7 @@
"@vue/cli-service"
:
"^4.1.0"
,
"@vue/test-utils"
:
"1.0.0-beta.29"
,
"axios-mock-adapter"
:
"^1.17.0"
,
"compression-webpack-plugin"
:
"^4.0.0"
,
"less"
:
"^3.0.4"
,
"less-loader"
:
"^5.0.0"
,
"mockjs"
:
"^1.1.0"
,
...
...
app_web/public/assets/json/view-config.json
浏览文件 @
1410da84
...
...
@@ -24,8 +24,8 @@
"viewtag"
:
"433753123a4269a61a7a13d22cf567de"
},
"taskindexview"
:
{
"title"
:
"
ibizlab-
task"
,
"caption"
:
"ibizlab
-task
"
,
"title"
:
"task"
,
"caption"
:
"ibizlab"
,
"viewtype"
:
"APPINDEXVIEW"
,
"viewmodule"
:
"task"
,
"viewname"
:
"TaskIndexView"
,
...
...
app_web/src/app-register.ts
浏览文件 @
1410da84
...
...
@@ -68,10 +68,7 @@ import AppUploadFileInfo from './components/app-upload-file-info/app-upload-file
import
ContextMenu
from
'./components/context-menu/context-menu'
import
AppColumnFormat
from
'./components/app-column-format/app-column-format.vue'
import
AppQuickGroup
from
'./components/app-quick-group/app-quick-group.vue'
import
AppOrgSelect
from
'./components/app-org-select/app-org-select.vue'
import
AppDepartmentSelect
from
'./components/app-department-select/app-department-select.vue'
import
IBizGroupSelect
from
'./components/ibiz-group-select/ibiz-group-select.vue'
import
IBizGroupPicker
from
'./components/ibiz-group-picker/ibiz-group-picker.vue'
import
AppGroupPicker
from
'./components/app-group-picker/app-group-picker.vue'
import
AppWFApproval
from
'./components/app-wf-approval/app-wf-approval.vue'
import
Breadcrumb
from
'./components/app-breadcrumb/app-breadcrumb.vue'
import
AppTransfer
from
'./components/app-transfer/app-transfer.vue'
...
...
@@ -156,10 +153,10 @@ export const AppComponents = {
v
.
component
(
'context-menu'
,
ContextMenu
);
v
.
component
(
'app-column-format'
,
AppColumnFormat
);
v
.
component
(
'app-quick-group'
,
AppQuickGroup
);
v
.
component
(
'app-org-select'
,
AppOrgSelect
);
v
.
component
(
'app-department-select'
,
AppDepartmentSelect
);
v
.
component
(
'
ibiz-group-select'
,
IBizGroupSelect
);
v
.
component
(
'
ibiz-group-picker'
,
IBizGroupPicker
);
v
.
component
(
'app-org-select'
,
()
=>
import
(
'./components/app-org-select/app-org-select.vue'
)
);
v
.
component
(
'app-department-select'
,
()
=>
import
(
'./components/app-department-select/app-department-select.vue'
)
);
v
.
component
(
'
app-group-select'
,()
=>
import
(
'./components/app-group-select/app-group-select.vue'
)
);
v
.
component
(
'
app-group-picker'
,()
=>
import
(
'./components/app-group-picker/app-group-picker.vue'
)
);
v
.
component
(
'app-wf-approval'
,
AppWFApproval
);
v
.
component
(
'app-breadcrumb'
,
Breadcrumb
);
v
.
component
(
'app-transfer'
,
AppTransfer
);
...
...
app_web/src/components/app-breadcrumb/app-breadcrumb.vue
浏览文件 @
1410da84
...
...
@@ -4,7 +4,7 @@
<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
"
>
<span
v-if=
"isShowSelected(item)
"
>
<dropdown
trigger=
'click'
@
on-click=
"selectNavData($event,item)"
>
<span
class=
"app-breadcrumb-selected"
>
<i
class=
"el-icon-caret-bottom"
></i>
...
...
@@ -195,6 +195,15 @@ export default class Breadcrumb extends Vue {
}
}
/**
* 是否显示下拉列表
*
* @memberof Breadcrumb
*/
public
isShowSelected
(
item
:
any
){
return
item
.
isselected
&&
!
this
.
$util
.
isEmpty
(
item
.
srfkey
);
}
}
</
script
>
...
...
app_web/src/components/app-department-select/app-department-select.vue
浏览文件 @
1410da84
...
...
@@ -6,7 +6,8 @@
<
script
lang=
"ts"
>
import
{
Vue
,
Component
,
Watch
,
Prop
,
Model
}
from
'vue-property-decorator'
;
import
'ibiz-vue-lib/lib/ibiz-vue-lib.css'
;
import
{
IBizSelectTree
}
from
'ibiz-vue-lib'
;
@
Component
({
})
export
default
class
AppDepartmentSelect
extends
Vue
{
...
...
app_web/src/components/app-group-picker/app-group-picker.vue
0 → 100644
浏览文件 @
1410da84
<
template
>
<div
class=
"ibiz-group-picker"
>
<div
class=
"ibiz-group-container"
>
<div
v-if=
"showTree"
class=
"ibiz-group-tree"
>
<ibiz-select-tree
:NodesData=
"treeItems"
v-model=
"treeSelectVal"
:treeOnly=
"true"
:defaultChecked=
"true"
@
select=
"treeSelect"
></ibiz-select-tree>
</div>
<div
class=
"ibiz-group-content"
>
<ibiz-group-card
:data=
"cardItems"
text=
"label"
value=
"id"
groupName=
"group"
:multiple=
"multiple"
:defaultSelect=
"cardSelctVal"
@
select=
"groupSelect"
></ibiz-group-card>
</div>
</div>
<div
class=
"ibiz-group-footer"
>
<el-button
size=
"small"
type=
"primary"
@
click=
"onOK"
>
确认
</el-button>
<el-button
size=
"small"
@
click=
"onCancel"
>
取消
</el-button>
</div>
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
Component
,
Vue
,
Prop
,
Watch
}
from
'vue-property-decorator'
;
import
{
Subject
}
from
'rxjs'
;
import
{
Http
}
from
'../../utils'
;
import
'ibiz-vue-lib/lib/ibiz-vue-lib.css'
;
import
{
IBizSelectTree
}
from
'ibiz-vue-lib'
;
import
{
IBizGroupCard
}
from
'ibiz-vue-lib'
;
@
Component
({})
export
default
class
IBizGroupPicker
extends
Vue
{
/**
* 视图上下文参数
*
* @type {*}
* @memberof IBizGroupPicker
*/
@
Prop
()
viewdata
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof IBizGroupPicker
*/
@
Prop
()
viewparam
:
any
;
/**
* 多选
*
* @type {*}
* @memberof IBizGroupPicker
*/
protected
multiple
:
boolean
=
false
;
/**
* 加载树url
*
* @type {*}
* @memberof IBizGroupPicker
*/
protected
treeurl
:
any
;
/**
* 加载人员url
*
* @type {*}
* @memberof IBizGroupPicker
*/
protected
url
:
any
;
/**
* 树数据集
*
* @type {*}
* @memberof IBizGroupPicker
*/
protected
treeItems
:
any
[]
=
[];
/**
* 分组表数据集
*
* @type {*}
* @memberof IBizGroupPicker
*/
protected
cardItems
:
any
[]
=
[];
/**
* 视图上下文参数对象
*
* @type {*}
* @memberof IBizGroupPicker
*/
protected
viewData
:
any
;
/**
* 视图参数对象
*
* @type {*}
* @memberof IBizGroupPicker
*/
protected
viewParam
:
any
;
/**
* 树选中值
*
* @type {*}
* @memberof IBizGroupPicker
*/
protected
treeSelectVal
:
string
=
''
;
/**
* 分组表选中集合
*
* @type {*}
* @memberof IBizGroupPicker
*/
protected
cardSelctVal
:
any
=
[];
/**
* 数据选中集合
*
* @type {*}
* @memberof IBizGroupPicker
*/
protected
selects
:
any
[]
=
[];
/**
* 是否显示树
*
* @type {*}
* @memberof IBizGroupPicker
*/
get
showTree
()
{
if
(
this
.
viewParam
)
{
return
this
.
viewParam
.
showtree
;
}
}
/**
* 生命周期
*
* @type {*}
* @memberof IBizGroupPicker
*/
public
created
()
{
if
(
!
this
.
viewdata
||
!
this
.
viewparam
)
{
return
;
}
this
.
viewData
=
JSON
.
parse
(
this
.
viewdata
);
this
.
viewParam
=
JSON
.
parse
(
this
.
viewparam
);
this
.
multiple
=
this
.
viewParam
.
multiple
;
this
.
treeurl
=
this
.
viewParam
.
treeurl
;
this
.
url
=
this
.
viewParam
.
url
;
if
(
this
.
viewParam
.
selects
)
{
this
.
viewParam
.
selects
.
forEach
((
select
:
any
)
=>
{
this
.
selects
.
push
(
select
);
this
.
cardSelctVal
.
push
(
select
.
id
)
})
}
this
.
load
();
}
/**
* 加载数据
*
* @type {*}
* @memberof IBizGroupPicker
*/
public
load
()
{
if
(
this
.
showTree
)
{
this
.
loadTree
();
}
else
{
this
.
loadGroupData
(
this
.
viewParam
.
filtervalue
);
}
}
/**
* 加载树数据
*
* @type {*}
* @memberof IBizGroupPicker
*/
public
loadTree
()
{
let
orgid
=
this
.
viewParam
.
filtervalue
;
let
tempTreeUrl
:
string
=
this
.
treeurl
.
replace
(
'${orgid}'
,
orgid
);
let
get
=
Http
.
getInstance
().
get
(
tempTreeUrl
,
true
);
get
.
then
((
response
:
any
)
=>
{
if
(
response
.
status
===
200
)
{
this
.
treeItems
=
response
.
data
;
}
}).
catch
((
error
:
any
)
=>
{
console
.
log
(
error
)
})
}
/**
* 加载分组表数据
*
* @type {*}
* @memberof IBizGroupPicker
*/
public
loadGroupData
(
key
:
string
)
{
let
tempUrl
=
this
.
url
.
replace
(
'${selected-orgid}'
,
key
);
let
get
=
Http
.
getInstance
().
get
(
tempUrl
,
true
);
get
.
then
((
response
:
any
)
=>
{
if
(
response
.
status
===
200
)
{
this
.
cardItems
=
response
.
data
;
}
}).
catch
((
error
:
any
)
=>
{
console
.
log
(
error
)
})
}
/**
* 树选中
*
* @type {*}
* @memberof IBizGroupPicker
*/
public
treeSelect
(
event
:
any
)
{
if
(
!
event
||
JSON
.
parse
(
event
).
length
==
0
)
{
return
;
}
const
items
:
any
=
JSON
.
parse
(
event
);
this
.
loadGroupData
(
items
[
0
].
id
);
}
/**
* 分组表选中
*
* @type {*}
* @memberof IBizGroupPicker
*/
public
groupSelect
(
event
:
any
)
{
if
(
!
event
||
!
event
.
select
)
{
return
;
}
if
(
!
this
.
multiple
)
{
this
.
selects
=
[];
}
if
(
event
.
rselect
)
{
let
index
:
number
=
this
.
selects
.
findIndex
((
item
:
any
)
=>
Object
.
is
(
event
.
rselect
,
item
.
id
));
if
(
index
>=
0
)
{
this
.
selects
.
splice
(
index
,
1
);
}
}
else
{
event
.
select
.
forEach
((
key
:
string
)
=>
{
let
index
:
number
=
this
.
selects
.
findIndex
((
item
:
any
)
=>
Object
.
is
(
key
,
item
.
id
));
if
(
index
>=
0
)
{
return
;
}
let
item
:
any
=
this
.
cardItems
.
find
((
item
:
any
)
=>
Object
.
is
(
key
,
item
.
id
));
if
(
item
)
{
this
.
selects
.
push
(
item
);
}
});
}
}
/**
* 确认
*
* @type {*}
* @memberof IBizGroupPicker
*/
public
onOK
()
{
this
.
$emit
(
'close'
,
this
.
selects
);
}
/**
* 取消
*
* @type {*}
* @memberof IBizGroupPicker
*/
public
onCancel
()
{
this
.
$emit
(
'close'
);
}
}
</
script
>
<
style
lang=
"less"
>
.ibiz-group-picker{
width: 100%;
height: 100%;
.ibiz-group-container {
display: flex;
height: calc(100% - 65px);
.ibiz-group-tree {
min-width: 200px;
border-right: 1px solid #ddd;
padding: 0 34px 0 10px;
overflow: auto;
height: 100%;
}
.ibiz-group-content {
flex-grow: 1;
padding: 0 10px;
overflow: auto;
height: 100%;
}
}
.ibiz-group-footer {
padding: 16px;
text-align: right;
border-top: 1px solid #ddd;
}
}
</
style
>
\ No newline at end of file
app_web/src/components/app-group-select/app-group-select.vue
0 → 100644
浏览文件 @
1410da84
<
template
>
<div
class=
"ibiz-group-select"
>
<div
class=
"ibiz-group-content"
>
<span
v-if=
"!multiple"
>
{{
selectName
}}
</span>
<template
v-else
v-for=
"(select, index) of selects"
>
<div
:key=
"index"
class=
"ibiz-group-item"
>
{{
select
.
label
}}
<i
v-if=
"!disabled"
class=
"el-icon-close"
@
click=
"remove(select)"
></i>
</div>
</
template
>
</div>
<div
v-if=
"!disabled"
class=
"ibiz-group-open"
>
<i
v-if=
"!disabled && !multiple && selects.length > 0"
class=
"el-icon-close"
@
click=
"remove(selects[0])"
></i>
<i
class=
"el-icon-search"
@
click=
"openView"
></i>
</div>
</div>
</template>
<
script
lang=
"ts"
>
import
{
Component
,
Vue
,
Prop
,
Watch
}
from
'vue-property-decorator'
;
import
{
Subject
}
from
'rxjs'
;
@
Component
({})
export
default
class
IBizGroupSelect
extends
Vue
{
/**
* 名称标识
*
* @type {*}
* @memberof IBizGroupSelect
*/
@
Prop
()
name
!
:
string
;
/**
* 树加载地址
*
* @type {*}
* @memberof IBizGroupSelect
*/
@
Prop
()
treeurl
?:
boolean
;
/**
* 数据接口地址
*
* @type {*}
* @memberof IBizGroupSelect
*/
@
Prop
()
url
!
:
string
;
/**
* 多选
*
* @type {*}
* @memberof IBizGroupSelect
*/
@
Prop
({
default
:
false
})
multiple
?:
boolean
;
/**
* 数据对象
*
* @type {*}
* @memberof IBizGroupSelect
*/
@
Prop
()
data
:
any
;
/**
* 过滤属性标识
*
* @type {*}
* @memberof IBizGroupSelect
*/
@
Prop
()
filter
?:
string
;
/**
* 是否启用
*
* @type {*}
* @memberof IBizGroupSelect
*/
@
Prop
()
disabled
?:
boolean
;
/**
* 值
*
* @type {*}
* @memberof IBizGroupSelect
*/
@
Prop
()
value
:
any
;
/**
* 上下文参数
*
* @type {*}
* @memberof IBizGroupSelect
*/
@
Prop
()
context
:
any
;
/**
* 关联属性
*
* @type {*}
* @memberof IBizGroupSelect
*/
@
Prop
()
valueitem
:
any
;
/**
* 填充属性
*
* @type {*}
* @memberof IBizGroupSelect
*/
@
Prop
()
fillmap
:
any
;
/**
* 选中项集合
*
* @type {*}
* @memberof IBizGroupSelect
*/
protected
selects
:
any
[]
=
[];
/**
* 值变化
*
* @type {*}
* @memberof IBizGroupSelect
*/
@
Watch
(
'value'
)
onValueChange
(
newVal
:
any
)
{
this
.
selects
=
[];
if
(
newVal
)
{
let
item
:
any
=
{};
item
.
label
=
newVal
.
split
(
','
);
if
(
this
.
valueitem
)
{
item
.
id
=
this
.
data
[
this
.
valueitem
]
?
this
.
data
[
this
.
valueitem
].
split
(
','
)
:
[];
}
if
(
this
.
fillmap
)
{
for
(
let
key
in
this
.
fillmap
)
{
item
[
this
.
fillmap
[
key
]]
=
this
.
data
[
key
]
?
this
.
data
[
key
].
split
(
','
)
:
[];
}
}
item
.
label
.
forEach
((
val
:
string
,
index
:
number
)
=>
{
let
_item
:
any
=
{};
for
(
let
key
in
item
)
{
_item
[
key
]
=
item
[
key
][
index
]
?
item
[
key
][
index
]
:
null
;
}
this
.
selects
.
push
(
_item
)
})
}
}
/**
* 单选时选中名称
*
* @type {*}
* @memberof IBizGroupSelect
*/
get
selectName
()
{
if
(
this
.
selects
.
length
>
0
)
{
return
this
.
selects
[
0
].
label
;
}
}
/**
* 打开选择视图
*
* @type {*}
* @memberof IBizGroupSelect
*/
public
openView
()
{
const
view
:
any
=
{
viewname
:
'ibiz-group-picker'
,
title
:
'分组选择'
};
const
context
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
));
let
filtervalue
:
string
=
""
;
if
(
this
.
filter
){
if
(
this
.
data
[
this
.
filter
]){
filtervalue
=
this
.
data
[
this
.
filter
];
}
else
if
(
context
[
this
.
filter
]){
filtervalue
=
context
[
this
.
filter
];
}
else
{
filtervalue
=
context
.
srforgid
;
}
}
else
{
filtervalue
=
context
.
srforgid
;
}
const
param
:
any
=
{};
Object
.
assign
(
param
,
{
showtree
:
this
.
treeurl
?
true
:
false
,
url
:
this
.
url
,
treeurl
:
this
.
treeurl
,
filtervalue
:
filtervalue
,
multiple
:
this
.
multiple
,
selects
:
this
.
selects
});
let
container
:
Subject
<
any
>
=
this
.
$appmodal
.
openModal
(
view
,
context
,
param
);
container
.
subscribe
((
result
:
any
)
=>
{
if
(
!
result
||
!
Object
.
is
(
result
.
ret
,
'OK'
))
{
return
;
}
this
.
openViewClose
(
result
);
});
}
/**
* 选择视图关闭
*
* @type {*}
* @memberof IBizGroupSelect
*/
public
openViewClose
(
result
:
any
)
{
this
.
selects
=
[];
if
(
result
.
datas
&&
result
.
datas
.
length
>
0
)
{
this
.
selects
=
result
.
datas
}
this
.
setValue
()
}
/**
* 数据删除
*
* @type {*}
* @memberof IBizGroupSelect
*/
public
remove
(
item
:
any
)
{
this
.
selects
.
splice
(
this
.
selects
.
indexOf
(
item
),
1
);
this
.
setValue
()
}
/**
* 设置值
*
* @type {*}
* @memberof IBizGroupSelect
*/
public
setValue
()
{
let
item
:
any
=
{};
item
[
this
.
name
]
=
null
;
if
(
this
.
valueitem
)
{
item
[
this
.
valueitem
]
=
null
;
}
if
(
this
.
fillmap
)
{
for
(
let
key
in
this
.
fillmap
)
{
item
[
key
]
=
null
;
}
}
if
(
this
.
multiple
)
{
this
.
selects
.
forEach
((
select
:
any
)
=>
{
item
[
this
.
name
]
=
item
[
this
.
name
]
?
`
${
item
[
this
.
name
]}
,
${
select
.
label
}
`
:
select
.
label
;
if
(
this
.
valueitem
)
{
item
[
this
.
valueitem
]
=
item
[
this
.
valueitem
]
?
`
${
item
[
this
.
valueitem
]}
,
${
select
.
id
}
`
:
select
.
id
;
}
if
(
this
.
fillmap
)
{
for
(
let
key
in
this
.
fillmap
)
{
item
[
key
]
=
item
[
key
]
?
`
${
item
[
key
]}
,
${
select
[
this
.
fillmap
[
key
]]}
`
:
select
[
this
.
fillmap
[
key
]];
}
}
});
}
else
{
item
=
this
.
selects
.
length
>
0
?
this
.
selects
[
0
]
:
{};
item
[
this
.
name
]
=
this
.
selects
.
length
>
0
?
this
.
selects
[
0
].
label
:
null
;
if
(
this
.
valueitem
)
{
item
[
this
.
valueitem
]
=
this
.
selects
.
length
>
0
?
this
.
selects
[
0
].
id
:
null
;
}
if
(
this
.
fillmap
)
{
for
(
let
key
in
this
.
fillmap
)
{
item
[
key
]
=
this
.
selects
.
length
>
0
?
this
.
selects
[
0
][
this
.
fillmap
[
key
]]
:
null
;
}
}
}
for
(
let
key
in
item
)
{
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
key
,
value
:
item
[
key
]
});
}
}
}
</
script
>
<
style
lang=
"less"
>
.ibiz-group-select {
width: 100%;
display: flex;
border: 1px solid #DCDFE6;
min-height: 32px;
border-radius: 4px;
.ibiz-group-content {
flex-grow: 1;
padding: 0 16px;
.ibiz-group-item {
display: inline-block;
border: 1px solid #bbb;
line-height: 24px;
border-radius: 5px;
margin-right: 5px;
padding: 0 5px;
}
}
.ibiz-group-open {
display: flex;
text-align: center;
align-items: center;
padding: 0 5px;
}
}
.ibiz-group-select:hover {
border-color: #108cee;
}
</
style
>
\ No newline at end of file
app_web/src/components/app-org-select/app-org-select.vue
浏览文件 @
1410da84
...
...
@@ -6,6 +6,8 @@
<
script
lang =
'ts'
>
import
{
Vue
,
Component
,
Prop
,
Watch
}
from
"vue-property-decorator"
;
import
{
Http
}
from
'@/utils'
;
import
'ibiz-vue-lib/lib/ibiz-vue-lib.css'
;
import
{
IBizSelectTree
}
from
'ibiz-vue-lib'
;
@
Component
({})
export
default
class
AppOrgSelect
extends
Vue
{
...
...
app_web/src/components/app-user/app-user.less
浏览文件 @
1410da84
...
...
@@ -6,3 +6,6 @@
padding: 0 5px;
}
}
.user-dropdownMenu{
margin-top: 9px;
}
\ No newline at end of file
app_web/src/components/app-user/app-user.vue
浏览文件 @
1410da84
<
template
>
<div
class=
'app-header-user'
>
<dropdown
@
on-click=
"userSelect"
:transfer=
"true"
>
<dropdown
transfer-class-name=
"user-dropdownMenu"
@
on-click=
"userSelect"
:transfer=
"true"
>
<div
class=
'user'
>
<span>
{{
user
.
name
?
user
.
name
:
$t
(
'components.appUser.name'
)
}}
</span>
<avatar
:src=
"user.avatar"
/>
</div>
<dropdown-menu
class=
'menu'
slot=
'list'
style=
'font-size: 15px !important;'
>
<dropdown-item
name=
'logout'
style=
'font-size: 15px !important;'
>
<span><i
aria-hidden=
'true'
class=
'
fa fa-cogs
'
style=
'margin-right: 8px;'
></i></span>
<span><i
aria-hidden=
'true'
class=
'
ivu-icon ivu-icon-md-power
'
style=
'margin-right: 8px;'
></i></span>
<span>
{{
$t
(
'components.appUser.logout'
)
}}
</span>
</dropdown-item>
</dropdown-menu>
...
...
app_web/src/components/context-menu-drag/context-menu-drag.vue
浏览文件 @
1410da84
...
...
@@ -2,12 +2,12 @@
<Drawer
class-name=
"sider-drawer"
placement=
"left"
:closable=
"false"
:mask=
"false"
width=
"200"
v-model=
"leftDrawerVisiable"
>
<div
class=
"context-menu-drag"
>
<div
class=
"menu-list"
>
<div
class=
"menu-header"
@
mouseover=
"showMenuDrawer"
@
click=
"rightDrawerVisiable=!rightDrawerVisiable"
>
<div
class=
"menu-header"
@
click=
"rightDrawerVisiable=!rightDrawerVisiable"
>
<div
class=
"menuicon"
>
<Icon
type=
"md-apps"
/>
</div>
<div
class=
"content"
>
<span>
服务
</span>
<span>
全部应用
</span>
</div>
<div
class=
"forward"
>
<Icon
type=
"ios-arrow-forward"
/>
...
...
@@ -16,7 +16,7 @@
<div
style=
"padding:8px 0px;"
class=
"col-6"
>
<draggable
class=
"list-group"
tag=
"ul"
v-model=
"selectlist"
v-bind=
"dragOptionsVal"
@
start=
"drag=true"
@
end=
"drag=false"
:animation=
"250"
handle=
".handle"
ghost-class=
"ghost"
>
<transition-group
type=
"transition"
:name=
"!drag ? 'flip-list' : null"
>
<li
class=
"list-group-item"
v-for=
"(item,index) in selectlist"
:key=
"item.id"
>
<li
@
click=
"skipTo(item)"
class=
"list-group-item"
v-for=
"(item,index) in selectlist"
:key=
"item.id"
>
<el-row>
<el-col
class=
"menuicon"
:span=
"4"
>
<span>
...
...
@@ -30,7 +30,7 @@
<el-col
:span=
"6"
>
<div
class=
"bar"
>
<div>
<Icon
type=
"ios-close"
@
click=
"removeAt(index)"
/>
<Icon
type=
"ios-close"
@
click
.
stop
=
"removeAt(index)"
/>
</div>
<div>
<Icon
type=
"ios-move handle"
/>
...
...
@@ -45,12 +45,12 @@
</div>
<Drawer
class-name=
"menu-drawer"
width=
"60"
:closable=
"true"
:mask=
"false"
placement=
"left"
v-model=
"rightDrawerVisiable"
>
<div
class=
"menuItems"
>
<div
class=
"item"
v-for=
"(item) in list"
:key=
"item.id"
>
<div
@
click=
"skipTo(item)"
class=
"item"
v-for=
"(item) in list"
:key=
"item.id"
>
<span
class=
"title"
>
{{
item
.
label
}}
</span>
<span
v-if=
"isStar(item.id)"
class=
"star"
@
click=
"outStar(item)"
>
<span
v-if=
"isStar(item.id)"
class=
"star"
@
click
.
stop
=
"outStar(item)"
>
<Icon
type=
"ios-star"
/>
</span>
<span
v-else
class=
"star"
@
click=
"onStar(item)"
>
<span
v-else
class=
"star"
@
click
.
stop
=
"onStar(item)"
>
<Icon
type=
"ios-star-outline"
/>
</span>
</div>
...
...
@@ -73,6 +73,8 @@ import { Vue,Component,Provide,Watch,Prop,Model } from "vue-property-decorator";
})
export
default
class
ContextMenuDrag
extends
Vue
{
public
panelShow
:
boolean
=
true
;
/**
* 抽屉菜单状态
*
...
...
@@ -206,6 +208,23 @@ export default class ContextMenuDrag extends Vue {
return
istar
;
}
/**
* 跳转到应用
*
* @returns
* @memberof ContextMenuDrag
*/
public
skipTo
(
item
:
any
){
if
(
item
.
addr
){
let
params
:
any
=
{};
params
.
model
=
this
.
selectlist
;
const
put
:
Promise
<
any
>
=
this
.
entityService
.
updateChooseApp
(
null
,
params
);
window
.
location
.
href
=
item
.
addr
;
}
else
{
this
.
$message
.
info
(
"未找到该应用"
);
}
}
/**
* 加入列表
*
...
...
app_web/src/components/input-box/input-box.less
浏览文件 @
1410da84
...
...
@@ -5,4 +5,7 @@
top: 0;
right: 20px;
}
.ivu-input-number-input{
text-align: right;
}
}
\ No newline at end of file
app_web/src/components/input-box/input-box.vue
浏览文件 @
1410da84
<
template
>
<div
class=
"input-unit"
>
<i-input
<InputNumber
v-if=
"type === 'number'"
:placeholder=
"placeholder"
:size=
"size"
:precision=
"precision"
v-model=
"CurrentVal"
:disabled=
"disabled ? true : false"
></InputNumber>
<i-input
v-else
:placeholder=
"placeholder"
:size=
"size"
:type=
"type"
...
...
@@ -63,6 +70,14 @@ export default class InputBox extends Vue {
*/
@
Prop
()
public
type
?:
string
;
/**
* 精度
*
* @type {number}
* @memberof InputBox
*/
@
Prop
({
default
:
0
})
public
precision
?:
number
;
/**
* 多行文本行数
*
...
...
@@ -77,8 +92,12 @@ export default class InputBox extends Vue {
* @memberof InputBox
*/
get
CurrentVal
()
{
if
(
Object
.
is
(
this
.
type
,
'number'
)
&&
this
.
itemValue
&&
!
isNaN
(
this
.
itemValue
)){
return
Number
(
Number
(
this
.
itemValue
).
toFixed
(
this
.
precision
));
}
else
{
return
this
.
itemValue
;
}
}
/**
* 值变化
...
...
app_web/src/components/tab-page-exp/tab-page-exp.vue
浏览文件 @
1410da84
...
...
@@ -227,7 +227,7 @@ export default class TabPageExp extends Vue {
* @memberof TabPageExp
*/
public
setCurPageCaption
(
caption
:
string
,
title
:
any
,
info
:
string
)
{
if
(
this
.
$route
.
meta
&&
!
Object
.
is
(
this
.
$
route
.
meta
.
caption
,
caption
))
{
if
(
this
.
$route
.
meta
&&
!
Object
.
is
(
this
.
$
t
(
this
.
$route
.
meta
.
caption
)
,
caption
))
{
return
;
}
this
.
$store
.
commit
(
"setCurPageCaption"
,
{
...
...
app_web/src/engine/view/edit-view-engine.ts
浏览文件 @
1410da84
...
...
@@ -103,7 +103,7 @@ export default class EditViewEngine extends ViewEngine {
public
onFormLoad
(
arg
:
any
):
void
{
this
.
view
.
model
.
dataInfo
=
Object
.
is
(
arg
.
srfuf
,
'1'
)
?
(
this
.
majorPSDEField
?
arg
[
this
.
majorPSDEField
]:
arg
.
srfmajortext
)
:
this
.
view
.
$t
(
'app.local.new'
);
this
.
setTabCaption
(
this
.
view
.
model
.
dataInfo
);
this
.
setTabCaption
(
this
.
view
.
model
.
dataInfo
,
Object
.
is
(
arg
.
srfuf
,
'0'
)
);
const
newdata
:
boolean
=
!
Object
.
is
(
arg
.
srfuf
,
'1'
);
this
.
calcToolbarItemState
(
newdata
);
}
...
...
@@ -117,7 +117,7 @@ export default class EditViewEngine extends ViewEngine {
public
onFormSave
(
arg
:
any
):
void
{
this
.
view
.
model
.
dataInfo
=
Object
.
is
(
arg
.
srfuf
,
'1'
)
?
(
this
.
majorPSDEField
?
arg
[
this
.
majorPSDEField
]:
arg
.
srfmajortext
)
:
this
.
view
.
$t
(
'app.local.new'
);
this
.
setTabCaption
(
this
.
view
.
model
.
dataInfo
);
this
.
setTabCaption
(
this
.
view
.
model
.
dataInfo
,
Object
.
is
(
arg
.
srfuf
,
'0'
)
);
const
newdata
:
boolean
=
!
Object
.
is
(
arg
.
srfuf
,
'1'
);
this
.
calcToolbarItemState
(
newdata
);
this
.
view
.
$emit
(
'save'
,
arg
);
...
...
@@ -245,7 +245,7 @@ export default class EditViewEngine extends ViewEngine {
*
* @memberof EditViewEngine
*/
public
setTabCaption
(
info
:
string
):
void
{
public
setTabCaption
(
info
:
string
,
isNew
:
boolean
):
void
{
let
viewdata
:
any
=
this
.
view
.
model
;
let
index
:
number
=
viewdata
.
srfTitle
.
indexOf
(
"-"
);
if
(
viewdata
&&
info
&&
!
Object
.
is
(
info
,
''
))
{
...
...
@@ -253,13 +253,13 @@ export default class EditViewEngine extends ViewEngine {
viewdata
.
srfTitle
=
viewdata
.
srfTitle
.
substr
(
0
,
index
);
}
if
(
this
.
view
.
$tabPageExp
){
this
.
view
.
$tabPageExp
.
setCurPageCaption
(
viewdata
.
srfTitle
,
viewdata
.
srfTitle
,
info
);
this
.
view
.
$tabPageExp
.
setCurPageCaption
(
this
.
view
.
$t
(
viewdata
.
srfTitle
),
this
.
view
.
$t
(
viewdata
.
srfTitle
)
,
info
);
}
if
(
this
.
view
.
$route
){
this
.
view
.
$route
.
meta
.
info
=
info
;
}
this
.
view
.
model
.
srfTitle
=
`
${
this
.
view
.
$t
(
viewdata
.
srfTitle
)}
-
${
viewdata
.
dataInfo
}
`
;
this
.
view
.
initNavData
(
);
this
.
view
.
initNavData
WithRoute
(
null
,
isNew
);
}
}
...
...
app_web/src/engine/view/md-view-engine.ts
浏览文件 @
1410da84
...
...
@@ -373,7 +373,9 @@ export default class MDViewEngine extends ViewEngine {
cacheArray
.
push
({
srfkey
:
item
.
srfkey
,
srfmajortext
:
item
.
srfmajortext
});
})
}
this
.
view
.
initNavData
(
cacheArray
);
this
.
view
.
viewCacheData
=
cacheArray
;
this
.
view
.
initNavDataWithRoute
(
cacheArray
);
this
.
view
.
initNavDataWithTab
(
cacheArray
,
false
);
if
(
this
.
view
)
{
this
.
view
.
$emit
(
'viewload'
,
args
);
}
...
...
@@ -398,11 +400,11 @@ export default class MDViewEngine extends ViewEngine {
}
// 快速分组和快速搜索栏
let
otherQueryParam
:
any
=
{};
if
(
this
.
view
&&
this
.
view
.
qu
ci
kGroupData
){
Object
.
assign
(
otherQueryParam
,
this
.
view
.
qu
ci
kGroupData
);
if
(
this
.
view
&&
this
.
view
.
qu
ic
kGroupData
){
Object
.
assign
(
otherQueryParam
,
this
.
view
.
qu
ic
kGroupData
);
}
if
(
this
.
view
&&
this
.
view
.
qu
ci
kFormData
){
Object
.
assign
(
otherQueryParam
,
this
.
view
.
qu
ci
kFormData
);
if
(
this
.
view
&&
this
.
view
.
qu
ic
kFormData
){
Object
.
assign
(
otherQueryParam
,
this
.
view
.
qu
ic
kFormData
);
}
Object
.
assign
(
arg
,{
viewparams
:
otherQueryParam
});
}
...
...
app_web/src/locale/lang/en-US.ts
浏览文件 @
1410da84
...
...
@@ -51,8 +51,8 @@ export default {
// 非实体视图
views
:
{
taskindexview
:
{
caption
:
"ibizlab
-task
"
,
title
:
"
ibizlab-
task"
,
caption
:
"ibizlab"
,
title
:
"task"
,
},
},
utilview
:{
...
...
app_web/src/locale/lang/zh-CN.ts
浏览文件 @
1410da84
...
...
@@ -51,8 +51,8 @@ export default {
// 非实体视图
views
:
{
taskindexview
:
{
caption
:
"ibizlab
-task
"
,
title
:
"
ibizlab-
task"
,
caption
:
"ibizlab"
,
title
:
"task"
,
},
},
utilview
:{
...
...
app_web/src/mock/app/task-index-view-appmenu/task-index-view-appmenu.ts
浏览文件 @
1410da84
...
...
@@ -25,7 +25,7 @@ mock.onGet('v7/task-index-viewappmenu').reply((config: any) => {
iconcls
:
'fa fa-gear'
,
icon
:
''
,
textcls
:
''
,
appfunctag
:
'
_2
'
,
appfunctag
:
'
Auto1
'
,
resourcetag
:
''
,
},
{
...
...
@@ -43,7 +43,7 @@ mock.onGet('v7/task-index-viewappmenu').reply((config: any) => {
iconcls
:
'fa fa-tasks'
,
icon
:
''
,
textcls
:
''
,
appfunctag
:
'
_4
'
,
appfunctag
:
'
Auto3
'
,
resourcetag
:
''
,
},
{
...
...
@@ -61,7 +61,7 @@ mock.onGet('v7/task-index-viewappmenu').reply((config: any) => {
iconcls
:
'fa fa-align-justify'
,
icon
:
''
,
textcls
:
''
,
appfunctag
:
'
_3
'
,
appfunctag
:
'
Auto2
'
,
resourcetag
:
''
,
},
],
...
...
app_web/src/mock/viewconfig/viewconfig.ts
浏览文件 @
1410da84
...
...
@@ -32,8 +32,8 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewtag"
:
"433753123a4269a61a7a13d22cf567de"
},
"taskindexview"
:
{
"title"
:
"
ibizlab-
task"
,
"caption"
:
"ibizlab
-task
"
,
"title"
:
"task"
,
"caption"
:
"ibizlab"
,
"viewtype"
:
"APPINDEXVIEW"
,
"viewmodule"
:
"task"
,
"viewname"
:
"TaskIndexView"
,
...
...
app_web/src/pages/task/jobs-info-edit-view/jobs-info-edit-view-base.vue
浏览文件 @
1410da84
...
...
@@ -56,7 +56,7 @@
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Inject
}
from
'vue-property-decorator'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
...
...
@@ -125,6 +125,15 @@ export default class JobsInfoEditViewBase extends Vue {
*/
@
Prop
({
default
:
true
})
public
viewDefaultUsage
!
:
boolean
;
/**
* 视图默认使用
*
* @type {string}
* @memberof JobsInfoEditViewBase
*/
@
Inject
(
'navModel'
)
public
navModel
!
:
string
;
/**
* 视图标识
*
...
...
@@ -311,6 +320,14 @@ export default class JobsInfoEditViewBase extends Vue {
*/
public
viewparams
:
any
=
{};
/**
* 视图缓存数据
*
* @type {*}
* @memberof JobsInfoEditViewBase
*/
public
viewCacheData
:
any
;
/**
* 解析视图参数
*
...
...
@@ -357,7 +374,7 @@ export default class JobsInfoEditViewBase extends Vue {
Object
.
assign
(
this
.
context
,{
srfsessionid
:
this
.
$util
.
createUUID
()});
this
.
handleCustomViewData
();
//初始化导航数据
this
.
initNavData
();
this
.
initNavData
WithRoute
();
}
/**
...
...
@@ -437,13 +454,24 @@ export default class JobsInfoEditViewBase extends Vue {
}
/**
* 初始化导航数据
* 初始化导航数据
(路由模式)
*
* @memberof JobsInfoEditViewBase
*/
public
initNavData
(
data
:
any
=
null
){
if
(
this
.
viewDefaultUsage
){
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
});
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
){
if
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
)){
this
.
navDataService
.
addNavData
({
id
:
'jobs-info-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
jobsinfo
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
/**
* 初始化导航数据(分页模式)
*
* @memberof JobsInfoEditViewBase
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
){
if
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
)){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'jobs-info-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
jobsinfo
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
@@ -712,6 +740,9 @@ export default class JobsInfoEditViewBase extends Vue {
}
})
}
if
(
Object
.
is
(
this
.
navModel
,
"tab"
)){
this
.
navDataService
.
removeNavDataByTag
(
this
.
viewtag
);
}
if
(
this
.
serviceStateEvent
)
{
this
.
serviceStateEvent
.
unsubscribe
();
}
...
...
app_web/src/pages/task/jobs-info-edit-view/jobs-info-edit-view.vue
浏览文件 @
1410da84
...
...
@@ -9,6 +9,9 @@ import view_form from '@widgets/jobs-info/main-form/main-form.vue';
},
beforeRouteEnter
:
(
to
:
any
,
from
:
any
,
next
:
any
)
=>
{
next
((
vm
:
any
)
=>
{
if
(
!
Object
.
is
(
vm
.
navModel
,
"route"
)){
vm
.
initNavDataWithTab
(
vm
.
viewCacheData
);
}
vm
.
$store
.
commit
(
'addCurPageViewtag'
,
{
fullPath
:
to
.
fullPath
,
viewtag
:
vm
.
viewtag
});
});
},
...
...
app_web/src/pages/task/jobs-info-grid-view/jobs-info-grid-view-base.vue
浏览文件 @
1410da84
...
...
@@ -115,7 +115,7 @@
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Inject
}
from
'vue-property-decorator'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
...
...
@@ -187,6 +187,15 @@ export default class JobsInfoGridViewBase extends Vue {
*/
@
Prop
({
default
:
true
})
public
viewDefaultUsage
!
:
boolean
;
/**
* 视图默认使用
*
* @type {string}
* @memberof JobsInfoGridViewBase
*/
@
Inject
(
'navModel'
)
public
navModel
!
:
string
;
/**
* 视图标识
*
...
...
@@ -391,6 +400,14 @@ export default class JobsInfoGridViewBase extends Vue {
*/
public
viewparams
:
any
=
{};
/**
* 视图缓存数据
*
* @type {*}
* @memberof JobsInfoGridViewBase
*/
public
viewCacheData
:
any
;
/**
* 解析视图参数
*
...
...
@@ -437,7 +454,7 @@ export default class JobsInfoGridViewBase extends Vue {
Object
.
assign
(
this
.
context
,{
srfsessionid
:
this
.
$util
.
createUUID
()});
this
.
handleCustomViewData
();
//初始化导航数据
this
.
initNavData
();
this
.
initNavData
WithRoute
();
}
/**
...
...
@@ -517,13 +534,24 @@ export default class JobsInfoGridViewBase extends Vue {
}
/**
* 初始化导航数据
* 初始化导航数据
(路由模式)
*
* @memberof JobsInfoGridViewBase
*/
public
initNavData
(
data
:
any
=
null
){
if
(
this
.
viewDefaultUsage
){
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
});
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
){
if
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
)){
this
.
navDataService
.
addNavData
({
id
:
'jobs-info-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
jobsinfo
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
/**
* 初始化导航数据(分页模式)
*
* @memberof JobsInfoGridViewBase
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
){
if
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
)){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'jobs-info-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
jobsinfo
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
@@ -1156,6 +1184,9 @@ export default class JobsInfoGridViewBase extends Vue {
}
})
}
if
(
Object
.
is
(
this
.
navModel
,
"tab"
)){
this
.
navDataService
.
removeNavDataByTag
(
this
.
viewtag
);
}
if
(
this
.
serviceStateEvent
)
{
this
.
serviceStateEvent
.
unsubscribe
();
}
...
...
app_web/src/pages/task/jobs-info-grid-view/jobs-info-grid-view.vue
浏览文件 @
1410da84
...
...
@@ -11,6 +11,9 @@ import view_searchform from '@widgets/jobs-info/default-searchform/default-searc
},
beforeRouteEnter
:
(
to
:
any
,
from
:
any
,
next
:
any
)
=>
{
next
((
vm
:
any
)
=>
{
if
(
!
Object
.
is
(
vm
.
navModel
,
"route"
)){
vm
.
initNavDataWithTab
(
vm
.
viewCacheData
);
}
vm
.
$store
.
commit
(
'addCurPageViewtag'
,
{
fullPath
:
to
.
fullPath
,
viewtag
:
vm
.
viewtag
});
});
},
...
...
app_web/src/pages/task/jobs-log-edit-view/jobs-log-edit-view-base.vue
浏览文件 @
1410da84
...
...
@@ -40,7 +40,7 @@
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Inject
}
from
'vue-property-decorator'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
...
...
@@ -109,6 +109,15 @@ export default class JobsLogEditViewBase extends Vue {
*/
@
Prop
({
default
:
true
})
public
viewDefaultUsage
!
:
boolean
;
/**
* 视图默认使用
*
* @type {string}
* @memberof JobsLogEditViewBase
*/
@
Inject
(
'navModel'
)
public
navModel
!
:
string
;
/**
* 视图标识
*
...
...
@@ -281,6 +290,14 @@ export default class JobsLogEditViewBase extends Vue {
*/
public
viewparams
:
any
=
{};
/**
* 视图缓存数据
*
* @type {*}
* @memberof JobsLogEditViewBase
*/
public
viewCacheData
:
any
;
/**
* 解析视图参数
*
...
...
@@ -327,7 +344,7 @@ export default class JobsLogEditViewBase extends Vue {
Object
.
assign
(
this
.
context
,{
srfsessionid
:
this
.
$util
.
createUUID
()});
this
.
handleCustomViewData
();
//初始化导航数据
this
.
initNavData
();
this
.
initNavData
WithRoute
();
}
/**
...
...
@@ -407,13 +424,24 @@ export default class JobsLogEditViewBase extends Vue {
}
/**
* 初始化导航数据
* 初始化导航数据
(路由模式)
*
* @memberof JobsLogEditViewBase
*/
public
initNavData
(
data
:
any
=
null
){
if
(
this
.
viewDefaultUsage
){
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
});
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
){
if
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
)){
this
.
navDataService
.
addNavData
({
id
:
'jobs-log-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
jobslog
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
/**
* 初始化导航数据(分页模式)
*
* @memberof JobsLogEditViewBase
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
){
if
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
)){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'jobs-log-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
jobslog
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
@@ -565,6 +593,9 @@ export default class JobsLogEditViewBase extends Vue {
}
})
}
if
(
Object
.
is
(
this
.
navModel
,
"tab"
)){
this
.
navDataService
.
removeNavDataByTag
(
this
.
viewtag
);
}
if
(
this
.
serviceStateEvent
)
{
this
.
serviceStateEvent
.
unsubscribe
();
}
...
...
app_web/src/pages/task/jobs-log-edit-view/jobs-log-edit-view.vue
浏览文件 @
1410da84
...
...
@@ -9,6 +9,9 @@ import view_form from '@widgets/jobs-log/main-form/main-form.vue';
},
beforeRouteEnter
:
(
to
:
any
,
from
:
any
,
next
:
any
)
=>
{
next
((
vm
:
any
)
=>
{
if
(
!
Object
.
is
(
vm
.
navModel
,
"route"
)){
vm
.
initNavDataWithTab
(
vm
.
viewCacheData
);
}
vm
.
$store
.
commit
(
'addCurPageViewtag'
,
{
fullPath
:
to
.
fullPath
,
viewtag
:
vm
.
viewtag
});
});
},
...
...
app_web/src/pages/task/jobs-log-grid-view/jobs-log-grid-view-base.vue
浏览文件 @
1410da84
...
...
@@ -64,7 +64,7 @@
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Inject
}
from
'vue-property-decorator'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
...
...
@@ -135,6 +135,15 @@ export default class JobsLogGridViewBase extends Vue {
*/
@
Prop
({
default
:
true
})
public
viewDefaultUsage
!
:
boolean
;
/**
* 视图默认使用
*
* @type {string}
* @memberof JobsLogGridViewBase
*/
@
Inject
(
'navModel'
)
public
navModel
!
:
string
;
/**
* 视图标识
*
...
...
@@ -315,6 +324,14 @@ export default class JobsLogGridViewBase extends Vue {
*/
public
viewparams
:
any
=
{};
/**
* 视图缓存数据
*
* @type {*}
* @memberof JobsLogGridViewBase
*/
public
viewCacheData
:
any
;
/**
* 解析视图参数
*
...
...
@@ -361,7 +378,7 @@ export default class JobsLogGridViewBase extends Vue {
Object
.
assign
(
this
.
context
,{
srfsessionid
:
this
.
$util
.
createUUID
()});
this
.
handleCustomViewData
();
//初始化导航数据
this
.
initNavData
();
this
.
initNavData
WithRoute
();
}
/**
...
...
@@ -441,13 +458,24 @@ export default class JobsLogGridViewBase extends Vue {
}
/**
* 初始化导航数据
* 初始化导航数据
(路由模式)
*
* @memberof JobsLogGridViewBase
*/
public
initNavData
(
data
:
any
=
null
){
if
(
this
.
viewDefaultUsage
){
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
});
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
){
if
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
)){
this
.
navDataService
.
addNavData
({
id
:
'jobs-log-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
jobslog
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
/**
* 初始化导航数据(分页模式)
*
* @memberof JobsLogGridViewBase
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
){
if
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
)){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'jobs-log-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
jobslog
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
@@ -767,6 +795,9 @@ export default class JobsLogGridViewBase extends Vue {
}
})
}
if
(
Object
.
is
(
this
.
navModel
,
"tab"
)){
this
.
navDataService
.
removeNavDataByTag
(
this
.
viewtag
);
}
if
(
this
.
serviceStateEvent
)
{
this
.
serviceStateEvent
.
unsubscribe
();
}
...
...
app_web/src/pages/task/jobs-log-grid-view/jobs-log-grid-view.vue
浏览文件 @
1410da84
...
...
@@ -11,6 +11,9 @@ import view_searchform from '@widgets/jobs-log/default-searchform/default-search
},
beforeRouteEnter
:
(
to
:
any
,
from
:
any
,
next
:
any
)
=>
{
next
((
vm
:
any
)
=>
{
if
(
!
Object
.
is
(
vm
.
navModel
,
"route"
)){
vm
.
initNavDataWithTab
(
vm
.
viewCacheData
);
}
vm
.
$store
.
commit
(
'addCurPageViewtag'
,
{
fullPath
:
to
.
fullPath
,
viewtag
:
vm
.
viewtag
});
});
},
...
...
app_web/src/pages/task/jobs-registry-edit-view/jobs-registry-edit-view-base.vue
浏览文件 @
1410da84
...
...
@@ -56,7 +56,7 @@
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Inject
}
from
'vue-property-decorator'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
...
...
@@ -125,6 +125,15 @@ export default class JobsRegistryEditViewBase extends Vue {
*/
@
Prop
({
default
:
true
})
public
viewDefaultUsage
!
:
boolean
;
/**
* 视图默认使用
*
* @type {string}
* @memberof JobsRegistryEditViewBase
*/
@
Inject
(
'navModel'
)
public
navModel
!
:
string
;
/**
* 视图标识
*
...
...
@@ -311,6 +320,14 @@ export default class JobsRegistryEditViewBase extends Vue {
*/
public
viewparams
:
any
=
{};
/**
* 视图缓存数据
*
* @type {*}
* @memberof JobsRegistryEditViewBase
*/
public
viewCacheData
:
any
;
/**
* 解析视图参数
*
...
...
@@ -357,7 +374,7 @@ export default class JobsRegistryEditViewBase extends Vue {
Object
.
assign
(
this
.
context
,{
srfsessionid
:
this
.
$util
.
createUUID
()});
this
.
handleCustomViewData
();
//初始化导航数据
this
.
initNavData
();
this
.
initNavData
WithRoute
();
}
/**
...
...
@@ -437,13 +454,24 @@ export default class JobsRegistryEditViewBase extends Vue {
}
/**
* 初始化导航数据
* 初始化导航数据
(路由模式)
*
* @memberof JobsRegistryEditViewBase
*/
public
initNavData
(
data
:
any
=
null
){
if
(
this
.
viewDefaultUsage
){
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
});
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
){
if
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
)){
this
.
navDataService
.
addNavData
({
id
:
'jobs-registry-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
jobsregistry
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
/**
* 初始化导航数据(分页模式)
*
* @memberof JobsRegistryEditViewBase
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
){
if
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
)){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'jobs-registry-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
jobsregistry
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
@@ -712,6 +740,9 @@ export default class JobsRegistryEditViewBase extends Vue {
}
})
}
if
(
Object
.
is
(
this
.
navModel
,
"tab"
)){
this
.
navDataService
.
removeNavDataByTag
(
this
.
viewtag
);
}
if
(
this
.
serviceStateEvent
)
{
this
.
serviceStateEvent
.
unsubscribe
();
}
...
...
app_web/src/pages/task/jobs-registry-edit-view/jobs-registry-edit-view.vue
浏览文件 @
1410da84
...
...
@@ -9,6 +9,9 @@ import view_form from '@widgets/jobs-registry/main-form/main-form.vue';
},
beforeRouteEnter
:
(
to
:
any
,
from
:
any
,
next
:
any
)
=>
{
next
((
vm
:
any
)
=>
{
if
(
!
Object
.
is
(
vm
.
navModel
,
"route"
)){
vm
.
initNavDataWithTab
(
vm
.
viewCacheData
);
}
vm
.
$store
.
commit
(
'addCurPageViewtag'
,
{
fullPath
:
to
.
fullPath
,
viewtag
:
vm
.
viewtag
});
});
},
...
...
app_web/src/pages/task/jobs-registry-grid-view/jobs-registry-grid-view-base.vue
浏览文件 @
1410da84
...
...
@@ -94,7 +94,7 @@
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Inject
}
from
'vue-property-decorator'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
...
...
@@ -165,6 +165,15 @@ export default class JobsRegistryGridViewBase extends Vue {
*/
@
Prop
({
default
:
true
})
public
viewDefaultUsage
!
:
boolean
;
/**
* 视图默认使用
*
* @type {string}
* @memberof JobsRegistryGridViewBase
*/
@
Inject
(
'navModel'
)
public
navModel
!
:
string
;
/**
* 视图标识
*
...
...
@@ -363,6 +372,14 @@ export default class JobsRegistryGridViewBase extends Vue {
*/
public
viewparams
:
any
=
{};
/**
* 视图缓存数据
*
* @type {*}
* @memberof JobsRegistryGridViewBase
*/
public
viewCacheData
:
any
;
/**
* 解析视图参数
*
...
...
@@ -409,7 +426,7 @@ export default class JobsRegistryGridViewBase extends Vue {
Object
.
assign
(
this
.
context
,{
srfsessionid
:
this
.
$util
.
createUUID
()});
this
.
handleCustomViewData
();
//初始化导航数据
this
.
initNavData
();
this
.
initNavData
WithRoute
();
}
/**
...
...
@@ -489,13 +506,24 @@ export default class JobsRegistryGridViewBase extends Vue {
}
/**
* 初始化导航数据
* 初始化导航数据
(路由模式)
*
* @memberof JobsRegistryGridViewBase
*/
public
initNavData
(
data
:
any
=
null
){
if
(
this
.
viewDefaultUsage
){
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
});
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
){
if
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
)){
this
.
navDataService
.
addNavData
({
id
:
'jobs-registry-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
jobsregistry
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
/**
* 初始化导航数据(分页模式)
*
* @memberof JobsRegistryGridViewBase
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
){
if
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
)){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'jobs-registry-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
jobsregistry
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
@@ -1089,6 +1117,9 @@ export default class JobsRegistryGridViewBase extends Vue {
}
})
}
if
(
Object
.
is
(
this
.
navModel
,
"tab"
)){
this
.
navDataService
.
removeNavDataByTag
(
this
.
viewtag
);
}
if
(
this
.
serviceStateEvent
)
{
this
.
serviceStateEvent
.
unsubscribe
();
}
...
...
app_web/src/pages/task/jobs-registry-grid-view/jobs-registry-grid-view.vue
浏览文件 @
1410da84
...
...
@@ -11,6 +11,9 @@ import view_searchform from '@widgets/jobs-registry/default-searchform/default-s
},
beforeRouteEnter
:
(
to
:
any
,
from
:
any
,
next
:
any
)
=>
{
next
((
vm
:
any
)
=>
{
if
(
!
Object
.
is
(
vm
.
navModel
,
"route"
)){
vm
.
initNavDataWithTab
(
vm
.
viewCacheData
);
}
vm
.
$store
.
commit
(
'addCurPageViewtag'
,
{
fullPath
:
to
.
fullPath
,
viewtag
:
vm
.
viewtag
});
});
},
...
...
app_web/src/pages/task/task-index-view/main.ts
浏览文件 @
1410da84
...
...
@@ -4,14 +4,12 @@ import VueRouter from 'vue-router';
import
App
from
'@/App.vue'
;
import
ElementUi
from
'element-ui'
;
import
ViewUI
from
'view-design'
;
import
ibizLab
from
'ibiz-vue-lib'
;
import
{
Interceptors
}
from
'@/utils'
;
import
{
Print
}
from
'@/utils/print'
;
import
i18n
from
'@/locale'
import
'element-ui/lib/theme-chalk/index.css'
;
import
'view-design/dist/styles/iview.css'
;
import
'ibiz-vue-lib/lib/ibiz-vue-lib.css'
;
import
'@/styles/default.less'
;
...
...
@@ -33,7 +31,6 @@ Vue.config.errorHandler = function (err: any, vm: any, info: any) {
}
Vue
.
config
.
productionTip
=
false
;
Vue
.
use
(
Print
);
Vue
.
use
(
ibizLab
);
Vue
.
use
(
Vuex
);
Vue
.
use
(
VueRouter
);;
Vue
.
use
(
ElementUi
,
{
...
...
app_web/src/pages/task/task-index-view/task-index-view-base.vue
浏览文件 @
1410da84
...
...
@@ -7,7 +7,7 @@
<div
class=
"sider-top"
>
<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>
<span
v-show=
"!collapseChange"
style=
"
overflow-x: hidden;text-overflow: ellipsis;white-space: nowrap;
display: block;text-align: center;font-weight: 300;font-size: 20px;"
>
{{
$t
(
model
.
srfCaption
)
}}
</span>
</div>
</div>
<view
_appmenu
...
...
@@ -45,7 +45,7 @@
<app-theme
style=
"width:45px;display: flex;justify-content: center;"
></app-theme>
</div>
</header>
<content
:class=
"
{'index_content':true,'index_tab_content':Object.is(navModel,'tab')?true:false,'index_route_content':Object.is(navModel,'route')?true:false}" :style="{'width':this.collapseChange ? 'calc(100vw - 64px)' : 'calc(100vw - 200px)' }">
<content
:class=
"
{'index_content':true,'index_tab_content':Object.is(navModel,'tab')?true:false,'index_route_content':Object.is(navModel,'route')?true:false}" :style="{'width':this.collapseChange ? 'calc(100vw - 64px)' : 'calc(100vw - 200px)' }"
@click="contextMenuDragVisiable=false"
>
<tab-page-exp
v-if=
"Object.is(navModel,'tab')"
></tab-page-exp>
<app-keep-alive
:routerList=
"getRouterList"
>
<router-view
:key=
"getRouterViewKey"
></router-view>
...
...
@@ -59,7 +59,7 @@
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Inject
}
from
'vue-property-decorator'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
...
...
@@ -118,6 +118,7 @@ export default class TaskIndexViewBase extends Vue {
*/
@
Prop
({
default
:
true
})
public
viewDefaultUsage
!
:
boolean
;
/**
* 视图标识
*
...
...
@@ -274,6 +275,14 @@ export default class TaskIndexViewBase extends Vue {
*/
public
viewparams
:
any
=
{};
/**
* 视图缓存数据
*
* @type {*}
* @memberof TaskIndexViewBase
*/
public
viewCacheData
:
any
;
/**
* 解析视图参数
*
...
...
@@ -315,7 +324,7 @@ export default class TaskIndexViewBase extends Vue {
}
this
.
handleCustomViewData
();
//初始化导航数据
this
.
initNavData
();
this
.
initNavData
WithRoute
();
}
/**
...
...
@@ -395,13 +404,24 @@ export default class TaskIndexViewBase extends Vue {
}
/**
* 初始化导航数据
* 初始化导航数据(路由模式)
*
* @memberof TaskIndexViewBase
*/
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
){
if
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
)){
this
.
navDataService
.
addNavData
({
id
:
'task-index-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
null
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
/**
* 初始化导航数据(分页模式)
*
* @memberof TaskIndexViewBase
*/
public
initNavData
(
data
:
any
=
null
){
if
(
this
.
viewDefaultUsage
){
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
}
);
public
initNavData
WithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
){
if
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
)
){
this
.
navDataService
.
addNavData
ByOnly
({
id
:
'task-index-view'
,
tag
:
this
.
viewtag
,
srfkey
:
null
,
title
:
this
.
$t
(
this
.
model
.
srfTitle
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
@@ -511,6 +531,7 @@ export default class TaskIndexViewBase extends Vue {
* @type {string}
* @memberof TaskIndexViewBase
*/
@
Provide
()
public
navModel
:
string
=
"tab"
;
/**
...
...
@@ -521,6 +542,16 @@ export default class TaskIndexViewBase extends Vue {
*/
public
contextMenuDragVisiable
:
boolean
=
false
;
/**
* 初始化之前
*
* @memberof TaskIndexViewBase
*/
public
beforeCreate
(){
let
navDataService
=
NavDataService
.
getInstance
(
this
.
$store
)
navDataService
.
removeAllNavData
();
}
/**
* 当前主题
*
...
...
app_web/src/pages/task/task-index-view/task-index-view.vue
浏览文件 @
1410da84
...
...
@@ -9,6 +9,9 @@ import view_appmenu from '@widgets/app/task-index-view-appmenu/task-index-view-a
},
beforeRouteEnter
:
(
to
:
any
,
from
:
any
,
next
:
any
)
=>
{
next
((
vm
:
any
)
=>
{
if
(
!
Object
.
is
(
vm
.
navModel
,
"route"
)){
vm
.
initNavDataWithTab
(
vm
.
viewCacheData
);
}
vm
.
$store
.
commit
(
'addCurPageViewtag'
,
{
fullPath
:
to
.
fullPath
,
viewtag
:
vm
.
viewtag
});
});
},
...
...
app_web/src/service/app/navdata-service.ts
浏览文件 @
1410da84
...
...
@@ -49,6 +49,13 @@ export interface NavDataElement {
*/
srfkey
:
string
|
null
;
/**
* 视图标识
*
* @memberof NavDataElement
*/
tag
:
string
|
null
;
}
export
interface
ServiceState
{
...
...
@@ -305,4 +312,76 @@ export default class NavDataService {
return
[];
}
}
/**
* 从导航数据栈中直接添加数据
*
* @memberof NavDataService
*/
public
addNavDataByOnly
(
curNavData
:
NavDataElement
,
isOnlyAdd
:
boolean
){
if
(
isOnlyAdd
){
this
.
navDataStack
.
push
(
curNavData
);
}
else
{
if
(
this
.
navDataStack
.
length
>
0
){
let
tempIndex
:
number
=
this
.
navDataStack
.
findIndex
((
element
:
NavDataElement
)
=>
{
return
Object
.
is
(
element
.
tag
,
curNavData
.
tag
);
})
if
(
tempIndex
===
-
1
){
this
.
navDataStack
.
push
(
curNavData
);
}
else
{
this
.
navDataStack
[
tempIndex
]
=
curNavData
;
}
}
else
{
this
.
navDataStack
.
push
(
curNavData
);
}
}
this
.
sessionStore
.
setItem
(
'srfnavdata'
,
JSON
.
stringify
(
this
.
navDataStack
));
return
curNavData
;
}
/**
* 从导航数据栈中直接删除数据
*
* @memberof NavDataService
*/
public
removeNavDataByTag
(
viewtag
:
string
){
if
(
this
.
navDataStack
.
length
>
0
){
let
tempIndex
:
number
=
this
.
navDataStack
.
findIndex
((
element
:
NavDataElement
)
=>
{
return
Object
.
is
(
element
.
tag
,
viewtag
);
})
let
removeNavData
=
this
.
navDataStack
.
splice
(
tempIndex
,
1
);
this
.
sessionStore
.
setItem
(
'srfnavdata'
,
JSON
.
stringify
(
this
.
navDataStack
));
return
removeNavData
;
}
else
{
return
null
;
}
}
/**
* 从导航数据栈中获取指定元素前一个元素
*
* @memberof NavDataService
*/
public
getPreNavDataByTag
(
viewtag
:
string
){
if
(
this
.
navDataStack
.
length
>
0
){
let
tempIndex
:
number
=
this
.
navDataStack
.
findIndex
((
element
:
NavDataElement
)
=>
{
return
Object
.
is
(
element
.
tag
,
viewtag
);
})
return
this
.
navDataStack
[
tempIndex
-
1
]?
this
.
navDataStack
[
tempIndex
-
1
]:
null
;
}
else
{
return
null
;
}
}
/**
* 从导航数据栈中删除所有数据
*
* @memberof NavDataService
*/
public
removeAllNavData
(){
if
(
this
.
navDataStack
.
length
>
0
){
this
.
navDataStack
=
[];
this
.
sessionStore
.
setItem
(
'srfnavdata'
,
JSON
.
stringify
(
this
.
navDataStack
));
}
}
}
\ No newline at end of file
app_web/src/service/jobs-info/jobs-info-service-base.ts
浏览文件 @
1410da84
...
...
@@ -148,7 +148,6 @@ export default class JobsInfoServiceBase extends EntityService {
*/
public
async
Remove
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
return
Http
.
getInstance
().
delete
(
`/jobsinfos/
${
context
.
jobsinfo
}
`
,
isloading
);
}
/**
...
...
@@ -163,7 +162,6 @@ export default class JobsInfoServiceBase extends EntityService {
public
async
Get
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
res
:
any
=
await
Http
.
getInstance
().
get
(
`/jobsinfos/
${
context
.
jobsinfo
}
`
,
isloading
);
return
res
;
}
/**
...
...
app_web/src/service/jobs-lock/jobs-lock-service-base.ts
浏览文件 @
1410da84
...
...
@@ -102,7 +102,6 @@ export default class JobsLockServiceBase extends EntityService {
public
async
Get
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
res
:
any
=
await
Http
.
getInstance
().
get
(
`/jobslocks/
${
context
.
jobslock
}
`
,
isloading
);
return
res
;
}
/**
...
...
@@ -145,7 +144,6 @@ export default class JobsLockServiceBase extends EntityService {
*/
public
async
Remove
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
return
Http
.
getInstance
().
delete
(
`/jobslocks/
${
context
.
jobslock
}
`
,
isloading
);
}
/**
...
...
app_web/src/service/jobs-log/jobs-log-service-base.ts
浏览文件 @
1410da84
...
...
@@ -145,7 +145,6 @@ export default class JobsLogServiceBase extends EntityService {
*/
public
async
Remove
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
return
Http
.
getInstance
().
delete
(
`/jobslogs/
${
context
.
jobslog
}
`
,
isloading
);
}
/**
...
...
@@ -160,7 +159,6 @@ export default class JobsLogServiceBase extends EntityService {
public
async
Get
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
res
:
any
=
await
Http
.
getInstance
().
get
(
`/jobslogs/
${
context
.
jobslog
}
`
,
isloading
);
return
res
;
}
/**
...
...
app_web/src/service/jobs-registry/jobs-registry-service-base.ts
浏览文件 @
1410da84
...
...
@@ -63,7 +63,6 @@ export default class JobsRegistryServiceBase extends EntityService {
public
async
Get
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
res
:
any
=
await
Http
.
getInstance
().
get
(
`/jobsregistries/
${
context
.
jobsregistry
}
`
,
isloading
);
return
res
;
}
/**
...
...
@@ -77,7 +76,6 @@ export default class JobsRegistryServiceBase extends EntityService {
*/
public
async
Remove
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
return
Http
.
getInstance
().
delete
(
`/jobsregistries/
${
context
.
jobsregistry
}
`
,
isloading
);
}
/**
...
...
app_web/src/styles/default.less
浏览文件 @
1410da84
...
...
@@ -106,7 +106,7 @@
flex-shrink: 0;
}
> .toolbar-container{
display: inline-block
;
margin-left: auto
;
display: flex;
flex-wrap: wrap;
align-items: center;
...
...
app_web/src/widgets/app/task-index-view-appmenu/task-index-view-appmenu-base.vue
浏览文件 @
1410da84
...
...
@@ -118,16 +118,16 @@
</template>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
,
Inject
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
TaskIndexViewService
from
'./task-index-view-appmenu-service'
;
import
TaskIndexViewModel
from
'./task-index-view-appmenu-model'
;
import
{
Environment
}
from
'@/environments/environment'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
@
Component
({
...
...
@@ -578,18 +578,16 @@ export default class TaskIndexViewBase extends Vue implements ControlInterface {
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
);
case
'
Auto3
'
:
this
.
click
Auto3
(
item
);
return
;
case
'
_3
'
:
this
.
click
_3
(
item
);
case
'
Auto2
'
:
this
.
click
Auto2
(
item
);
return
;
case
'
_2
'
:
this
.
click
_2
(
item
);
case
'
Auto1
'
:
this
.
click
Auto1
(
item
);
return
;
default
:
console
.
warn
(
'未指定应用功能'
);
...
...
@@ -604,7 +602,7 @@ export default class TaskIndexViewBase extends Vue implements ControlInterface {
* @param {*} [item={}]
* @memberof TaskIndexView
*/
public
click
_4
(
item
:
any
=
{})
{
public
click
Auto3
(
item
:
any
=
{})
{
const
viewparam
:
any
=
{};
Object
.
assign
(
viewparam
,
{});
const
deResParameters
:
any
[]
=
[];
...
...
@@ -627,7 +625,7 @@ export default class TaskIndexViewBase extends Vue implements ControlInterface {
* @param {*} [item={}]
* @memberof TaskIndexView
*/
public
click
_3
(
item
:
any
=
{})
{
public
click
Auto2
(
item
:
any
=
{})
{
const
viewparam
:
any
=
{};
Object
.
assign
(
viewparam
,
{});
const
deResParameters
:
any
[]
=
[];
...
...
@@ -650,7 +648,7 @@ export default class TaskIndexViewBase extends Vue implements ControlInterface {
* @param {*} [item={}]
* @memberof TaskIndexView
*/
public
click
_2
(
item
:
any
=
{})
{
public
click
Auto1
(
item
:
any
=
{})
{
const
viewparam
:
any
=
{};
Object
.
assign
(
viewparam
,
{});
const
deResParameters
:
any
[]
=
[];
...
...
app_web/src/widgets/app/task-index-view-appmenu/task-index-view-appmenu-model.ts
浏览文件 @
1410da84
...
...
@@ -29,7 +29,7 @@ export default class TaskIndexViewModel {
iconcls
:
'fa fa-gear'
,
icon
:
''
,
textcls
:
''
,
appfunctag
:
'
_2
'
,
appfunctag
:
'
Auto1
'
,
resourcetag
:
''
,
authtag
:
'web-TaskIndexView-menuitem3'
,
},
...
...
@@ -48,7 +48,7 @@ export default class TaskIndexViewModel {
iconcls
:
'fa fa-tasks'
,
icon
:
''
,
textcls
:
''
,
appfunctag
:
'
_4
'
,
appfunctag
:
'
Auto3
'
,
resourcetag
:
''
,
authtag
:
'web-TaskIndexView-menuitem1'
,
},
...
...
@@ -67,7 +67,7 @@ export default class TaskIndexViewModel {
iconcls
:
'fa fa-align-justify'
,
icon
:
''
,
textcls
:
''
,
appfunctag
:
'
_3
'
,
appfunctag
:
'
Auto2
'
,
resourcetag
:
''
,
authtag
:
'web-TaskIndexView-menuitem2'
,
},
...
...
@@ -82,7 +82,7 @@ export default class TaskIndexViewModel {
*/
public
funcs
:
any
[]
=
[
{
appfunctag
:
'
_4
'
,
appfunctag
:
'
Auto3
'
,
appfuncyype
:
'APPVIEW'
,
openmode
:
''
,
codename
:
'jobsinfogridview'
,
...
...
@@ -94,7 +94,7 @@ export default class TaskIndexViewModel {
],
},
{
appfunctag
:
'
_3
'
,
appfunctag
:
'
Auto2
'
,
appfuncyype
:
'APPVIEW'
,
openmode
:
''
,
codename
:
'jobsloggridview'
,
...
...
@@ -106,7 +106,7 @@ export default class TaskIndexViewModel {
],
},
{
appfunctag
:
'
_2
'
,
appfunctag
:
'
Auto1
'
,
appfuncyype
:
'APPVIEW'
,
openmode
:
''
,
codename
:
'jobsregistrygridview'
,
...
...
app_web/src/widgets/control-service.ts
浏览文件 @
1410da84
...
...
@@ -99,6 +99,9 @@ export default class ControlService {
}
let
dataItems
:
any
[]
=
model
.
getDataItems
();
let
requestData
:
any
=
{};
if
(
isMerge
&&
(
data
&&
data
.
viewparams
)){
Object
.
assign
(
requestData
,
data
.
viewparams
);
}
dataItems
.
forEach
((
item
:
any
)
=>
{
if
(
item
&&
item
.
dataType
&&
Object
.
is
(
item
.
dataType
,
'FONTKEY'
)){
if
(
item
&&
item
.
prop
&&
item
.
name
){
...
...
@@ -110,9 +113,6 @@ export default class ControlService {
}
}
});
if
(
isMerge
&&
(
data
&&
data
.
viewparams
)){
Object
.
assign
(
requestData
,
data
.
viewparams
);
}
let
tempContext
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
context
));
if
(
tempContext
&&
tempContext
.
srfsessionid
){
tempContext
.
srfsessionkey
=
tempContext
.
srfsessionid
;
...
...
app_web/src/widgets/jobs-info/default-searchform/default-searchform-base.vue
浏览文件 @
1410da84
...
...
@@ -46,11 +46,12 @@
</i-form>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
,
Inject
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
JobsInfoService
from
'@/service/jobs-info/jobs-info-service'
;
import
DefaultService
from
'./default-searchform-service'
;
...
...
app_web/src/widgets/jobs-info/default-searchform/default-searchform-service.ts
浏览文件 @
1410da84
...
...
@@ -130,7 +130,7 @@ export default class DefaultService extends ControlService {
@
Errorlog
public
wfsubmit
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
,
localdata
?:
any
):
Promise
<
any
>
{
data
=
this
.
handleWFData
(
data
,
true
);
context
=
this
.
handleRequestData
(
action
,
context
,
data
).
context
;
context
=
this
.
handleRequestData
(
action
,
context
,
data
,
true
).
context
;
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
...
...
@@ -334,13 +334,16 @@ export default class DefaultService extends ControlService {
* @param data 数据
* @memberof DefaultService
*/
public
handleRequestData
(
action
:
string
,
context
:
any
,
data
:
any
=
{}){
public
handleRequestData
(
action
:
string
,
context
:
any
,
data
:
any
=
{}
,
isMerge
:
boolean
=
false
){
let
mode
:
any
=
this
.
getMode
();
if
(
!
mode
&&
mode
.
getDataItems
instanceof
Function
)
{
return
data
;
}
let
formItemItems
:
any
[]
=
mode
.
getDataItems
();
let
requestData
:
any
=
{};
if
(
isMerge
&&
(
data
&&
data
.
viewparams
)){
Object
.
assign
(
requestData
,
data
.
viewparams
);
}
formItemItems
.
forEach
((
item
:
any
)
=>
{
if
(
item
&&
item
.
dataType
&&
Object
.
is
(
item
.
dataType
,
'FONTKEY'
)){
if
(
item
&&
item
.
prop
){
...
...
@@ -352,9 +355,6 @@ export default class DefaultService extends ControlService {
}
}
});
if
(
data
&&
data
.
viewparams
){
Object
.
assign
(
requestData
,
data
.
viewparams
);
}
let
tempContext
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
context
));
if
(
tempContext
&&
tempContext
.
srfsessionid
){
tempContext
.
srfsessionkey
=
tempContext
.
srfsessionid
;
...
...
app_web/src/widgets/jobs-info/main-form/main-form-base.vue
浏览文件 @
1410da84
...
...
@@ -117,11 +117,12 @@
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
,
Inject
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
JobsInfoService
from
'@/service/jobs-info/jobs-info-service'
;
import
MainService
from
'./main-form-service'
;
...
...
@@ -243,6 +244,15 @@ export default class MainBase extends Vue implements ControlInterface {
}
/**
* 视图默认使用
*
* @type {string}
* @memberof MainBase
*/
@
Inject
(
'navModel'
)
public
navModel
!
:
string
;
/**
* 工作流审批意见控件绑定值
*
...
...
app_web/src/widgets/jobs-info/main-form/main-form-service.ts
浏览文件 @
1410da84
...
...
@@ -130,7 +130,7 @@ export default class MainService extends ControlService {
@
Errorlog
public
wfsubmit
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
,
localdata
?:
any
):
Promise
<
any
>
{
data
=
this
.
handleWFData
(
data
,
true
);
context
=
this
.
handleRequestData
(
action
,
context
,
data
).
context
;
context
=
this
.
handleRequestData
(
action
,
context
,
data
,
true
).
context
;
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
...
...
@@ -339,13 +339,16 @@ export default class MainService extends ControlService {
* @param data 数据
* @memberof MainService
*/
public
handleRequestData
(
action
:
string
,
context
:
any
,
data
:
any
=
{}){
public
handleRequestData
(
action
:
string
,
context
:
any
,
data
:
any
=
{}
,
isMerge
:
boolean
=
false
){
let
mode
:
any
=
this
.
getMode
();
if
(
!
mode
&&
mode
.
getDataItems
instanceof
Function
)
{
return
data
;
}
let
formItemItems
:
any
[]
=
mode
.
getDataItems
();
let
requestData
:
any
=
{};
if
(
isMerge
&&
(
data
&&
data
.
viewparams
)){
Object
.
assign
(
requestData
,
data
.
viewparams
);
}
formItemItems
.
forEach
((
item
:
any
)
=>
{
if
(
item
&&
item
.
dataType
&&
Object
.
is
(
item
.
dataType
,
'FONTKEY'
)){
if
(
item
&&
item
.
prop
){
...
...
@@ -357,9 +360,6 @@ export default class MainService extends ControlService {
}
}
});
if
(
data
&&
data
.
viewparams
){
Object
.
assign
(
requestData
,
data
.
viewparams
);
}
let
tempContext
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
context
));
if
(
tempContext
&&
tempContext
.
srfsessionid
){
tempContext
.
srfsessionkey
=
tempContext
.
srfsessionid
;
...
...
app_web/src/widgets/jobs-info/main-form/main-form.less
浏览文件 @
1410da84
...
...
@@ -6,33 +6,17 @@
}
.app-form {
overflow: auto;
.app-form-group:nth-child(1){
margin-top: 16px;
.app-form-item:nth-child(1){
margin-top: 0;
}
}
.app-form-item:nth-child(1){
margin-top: 16px;
}
> .ivu-row {
> .ivu-tabs {
height: 100%;
display: flex;
flex-direction: column;
> .ivu-tabs-bar {
margin-bottom: 0px;
}
> .ivu-tabs-content {
margin-top: 16px;
flex-grow: 1;
overflow: auto;
> .ivu-tabs-tabpane {
height: 100%;
}
.app-form-group{
margin-top: 0px;
}
}
}
}
...
...
app_web/src/widgets/jobs-info/main-grid/main-grid-base.vue
浏览文件 @
1410da84
...
...
@@ -8,6 +8,7 @@
:height="isEnablePagingBar
&&
items.length > 0 ? 'calc(100% - 50px)' : '100%'"
:highlight-current-row ="isSingleSelect"
:row-class-name="getRowClassName"
:cell-class-name="getCellClassName"
@row-click="rowClick($event)"
@select-all="selectAll($event)"
@select="select($event)"
...
...
@@ -172,11 +173,12 @@
</div>
</template>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
,
Inject
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
JobsInfoService
from
'@/service/jobs-info/jobs-info-service'
;
import
MainService
from
'./main-grid-service'
;
...
...
app_web/src/widgets/jobs-log/default-searchform/default-searchform-base.vue
浏览文件 @
1410da84
...
...
@@ -34,11 +34,12 @@
</i-form>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
,
Inject
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
JobsLogService
from
'@/service/jobs-log/jobs-log-service'
;
import
DefaultService
from
'./default-searchform-service'
;
...
...
app_web/src/widgets/jobs-log/default-searchform/default-searchform-service.ts
浏览文件 @
1410da84
...
...
@@ -130,7 +130,7 @@ export default class DefaultService extends ControlService {
@
Errorlog
public
wfsubmit
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
,
localdata
?:
any
):
Promise
<
any
>
{
data
=
this
.
handleWFData
(
data
,
true
);
context
=
this
.
handleRequestData
(
action
,
context
,
data
).
context
;
context
=
this
.
handleRequestData
(
action
,
context
,
data
,
true
).
context
;
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
...
...
@@ -334,13 +334,16 @@ export default class DefaultService extends ControlService {
* @param data 数据
* @memberof DefaultService
*/
public
handleRequestData
(
action
:
string
,
context
:
any
,
data
:
any
=
{}){
public
handleRequestData
(
action
:
string
,
context
:
any
,
data
:
any
=
{}
,
isMerge
:
boolean
=
false
){
let
mode
:
any
=
this
.
getMode
();
if
(
!
mode
&&
mode
.
getDataItems
instanceof
Function
)
{
return
data
;
}
let
formItemItems
:
any
[]
=
mode
.
getDataItems
();
let
requestData
:
any
=
{};
if
(
isMerge
&&
(
data
&&
data
.
viewparams
)){
Object
.
assign
(
requestData
,
data
.
viewparams
);
}
formItemItems
.
forEach
((
item
:
any
)
=>
{
if
(
item
&&
item
.
dataType
&&
Object
.
is
(
item
.
dataType
,
'FONTKEY'
)){
if
(
item
&&
item
.
prop
){
...
...
@@ -352,9 +355,6 @@ export default class DefaultService extends ControlService {
}
}
});
if
(
data
&&
data
.
viewparams
){
Object
.
assign
(
requestData
,
data
.
viewparams
);
}
let
tempContext
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
context
));
if
(
tempContext
&&
tempContext
.
srfsessionid
){
tempContext
.
srfsessionkey
=
tempContext
.
srfsessionid
;
...
...
app_web/src/widgets/jobs-log/main-form/main-form-base.vue
浏览文件 @
1410da84
...
...
@@ -73,11 +73,12 @@
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
,
Inject
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
JobsLogService
from
'@/service/jobs-log/jobs-log-service'
;
import
MainService
from
'./main-form-service'
;
...
...
@@ -199,6 +200,15 @@ export default class MainBase extends Vue implements ControlInterface {
}
/**
* 视图默认使用
*
* @type {string}
* @memberof MainBase
*/
@
Inject
(
'navModel'
)
public
navModel
!
:
string
;
/**
* 工作流审批意见控件绑定值
*
...
...
app_web/src/widgets/jobs-log/main-form/main-form-service.ts
浏览文件 @
1410da84
...
...
@@ -130,7 +130,7 @@ export default class MainService extends ControlService {
@
Errorlog
public
wfsubmit
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
,
localdata
?:
any
):
Promise
<
any
>
{
data
=
this
.
handleWFData
(
data
,
true
);
context
=
this
.
handleRequestData
(
action
,
context
,
data
).
context
;
context
=
this
.
handleRequestData
(
action
,
context
,
data
,
true
).
context
;
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
...
...
@@ -339,13 +339,16 @@ export default class MainService extends ControlService {
* @param data 数据
* @memberof MainService
*/
public
handleRequestData
(
action
:
string
,
context
:
any
,
data
:
any
=
{}){
public
handleRequestData
(
action
:
string
,
context
:
any
,
data
:
any
=
{}
,
isMerge
:
boolean
=
false
){
let
mode
:
any
=
this
.
getMode
();
if
(
!
mode
&&
mode
.
getDataItems
instanceof
Function
)
{
return
data
;
}
let
formItemItems
:
any
[]
=
mode
.
getDataItems
();
let
requestData
:
any
=
{};
if
(
isMerge
&&
(
data
&&
data
.
viewparams
)){
Object
.
assign
(
requestData
,
data
.
viewparams
);
}
formItemItems
.
forEach
((
item
:
any
)
=>
{
if
(
item
&&
item
.
dataType
&&
Object
.
is
(
item
.
dataType
,
'FONTKEY'
)){
if
(
item
&&
item
.
prop
){
...
...
@@ -357,9 +360,6 @@ export default class MainService extends ControlService {
}
}
});
if
(
data
&&
data
.
viewparams
){
Object
.
assign
(
requestData
,
data
.
viewparams
);
}
let
tempContext
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
context
));
if
(
tempContext
&&
tempContext
.
srfsessionid
){
tempContext
.
srfsessionkey
=
tempContext
.
srfsessionid
;
...
...
app_web/src/widgets/jobs-log/main-form/main-form.less
浏览文件 @
1410da84
...
...
@@ -6,33 +6,17 @@
}
.app-form {
overflow: auto;
.app-form-group:nth-child(1){
margin-top: 16px;
.app-form-item:nth-child(1){
margin-top: 0;
}
}
.app-form-item:nth-child(1){
margin-top: 16px;
}
> .ivu-row {
> .ivu-tabs {
height: 100%;
display: flex;
flex-direction: column;
> .ivu-tabs-bar {
margin-bottom: 0px;
}
> .ivu-tabs-content {
margin-top: 16px;
flex-grow: 1;
overflow: auto;
> .ivu-tabs-tabpane {
height: 100%;
}
.app-form-group{
margin-top: 0px;
}
}
}
}
...
...
app_web/src/widgets/jobs-log/main-grid/main-grid-base.vue
浏览文件 @
1410da84
...
...
@@ -8,6 +8,7 @@
:height="isEnablePagingBar
&&
items.length > 0 ? 'calc(100% - 50px)' : '100%'"
:highlight-current-row ="isSingleSelect"
:row-class-name="getRowClassName"
:cell-class-name="getCellClassName"
@row-click="rowClick($event)"
@select-all="selectAll($event)"
@select="select($event)"
...
...
@@ -158,11 +159,12 @@
</div>
</template>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
,
Inject
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
JobsLogService
from
'@/service/jobs-log/jobs-log-service'
;
import
MainService
from
'./main-grid-service'
;
...
...
app_web/src/widgets/jobs-registry/default-searchform/default-searchform-base.vue
浏览文件 @
1410da84
...
...
@@ -40,11 +40,12 @@
</i-form>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
,
Inject
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
JobsRegistryService
from
'@/service/jobs-registry/jobs-registry-service'
;
import
DefaultService
from
'./default-searchform-service'
;
...
...
app_web/src/widgets/jobs-registry/default-searchform/default-searchform-service.ts
浏览文件 @
1410da84
...
...
@@ -130,7 +130,7 @@ export default class DefaultService extends ControlService {
@
Errorlog
public
wfsubmit
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
,
localdata
?:
any
):
Promise
<
any
>
{
data
=
this
.
handleWFData
(
data
,
true
);
context
=
this
.
handleRequestData
(
action
,
context
,
data
).
context
;
context
=
this
.
handleRequestData
(
action
,
context
,
data
,
true
).
context
;
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
...
...
@@ -334,13 +334,16 @@ export default class DefaultService extends ControlService {
* @param data 数据
* @memberof DefaultService
*/
public
handleRequestData
(
action
:
string
,
context
:
any
,
data
:
any
=
{}){
public
handleRequestData
(
action
:
string
,
context
:
any
,
data
:
any
=
{}
,
isMerge
:
boolean
=
false
){
let
mode
:
any
=
this
.
getMode
();
if
(
!
mode
&&
mode
.
getDataItems
instanceof
Function
)
{
return
data
;
}
let
formItemItems
:
any
[]
=
mode
.
getDataItems
();
let
requestData
:
any
=
{};
if
(
isMerge
&&
(
data
&&
data
.
viewparams
)){
Object
.
assign
(
requestData
,
data
.
viewparams
);
}
formItemItems
.
forEach
((
item
:
any
)
=>
{
if
(
item
&&
item
.
dataType
&&
Object
.
is
(
item
.
dataType
,
'FONTKEY'
)){
if
(
item
&&
item
.
prop
){
...
...
@@ -352,9 +355,6 @@ export default class DefaultService extends ControlService {
}
}
});
if
(
data
&&
data
.
viewparams
){
Object
.
assign
(
requestData
,
data
.
viewparams
);
}
let
tempContext
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
context
));
if
(
tempContext
&&
tempContext
.
srfsessionid
){
tempContext
.
srfsessionkey
=
tempContext
.
srfsessionid
;
...
...
app_web/src/widgets/jobs-registry/main-form/main-form-base.vue
浏览文件 @
1410da84
...
...
@@ -48,11 +48,12 @@
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
,
Inject
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
JobsRegistryService
from
'@/service/jobs-registry/jobs-registry-service'
;
import
MainService
from
'./main-form-service'
;
...
...
@@ -174,6 +175,15 @@ export default class MainBase extends Vue implements ControlInterface {
}
/**
* 视图默认使用
*
* @type {string}
* @memberof MainBase
*/
@
Inject
(
'navModel'
)
public
navModel
!
:
string
;
/**
* 工作流审批意见控件绑定值
*
...
...
app_web/src/widgets/jobs-registry/main-form/main-form-service.ts
浏览文件 @
1410da84
...
...
@@ -130,7 +130,7 @@ export default class MainService extends ControlService {
@
Errorlog
public
wfsubmit
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
,
localdata
?:
any
):
Promise
<
any
>
{
data
=
this
.
handleWFData
(
data
,
true
);
context
=
this
.
handleRequestData
(
action
,
context
,
data
).
context
;
context
=
this
.
handleRequestData
(
action
,
context
,
data
,
true
).
context
;
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
...
...
@@ -339,13 +339,16 @@ export default class MainService extends ControlService {
* @param data 数据
* @memberof MainService
*/
public
handleRequestData
(
action
:
string
,
context
:
any
,
data
:
any
=
{}){
public
handleRequestData
(
action
:
string
,
context
:
any
,
data
:
any
=
{}
,
isMerge
:
boolean
=
false
){
let
mode
:
any
=
this
.
getMode
();
if
(
!
mode
&&
mode
.
getDataItems
instanceof
Function
)
{
return
data
;
}
let
formItemItems
:
any
[]
=
mode
.
getDataItems
();
let
requestData
:
any
=
{};
if
(
isMerge
&&
(
data
&&
data
.
viewparams
)){
Object
.
assign
(
requestData
,
data
.
viewparams
);
}
formItemItems
.
forEach
((
item
:
any
)
=>
{
if
(
item
&&
item
.
dataType
&&
Object
.
is
(
item
.
dataType
,
'FONTKEY'
)){
if
(
item
&&
item
.
prop
){
...
...
@@ -357,9 +360,6 @@ export default class MainService extends ControlService {
}
}
});
if
(
data
&&
data
.
viewparams
){
Object
.
assign
(
requestData
,
data
.
viewparams
);
}
let
tempContext
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
context
));
if
(
tempContext
&&
tempContext
.
srfsessionid
){
tempContext
.
srfsessionkey
=
tempContext
.
srfsessionid
;
...
...
app_web/src/widgets/jobs-registry/main-form/main-form.less
浏览文件 @
1410da84
...
...
@@ -6,33 +6,17 @@
}
.app-form {
overflow: auto;
.app-form-group:nth-child(1){
margin-top: 16px;
.app-form-item:nth-child(1){
margin-top: 0;
}
}
.app-form-item:nth-child(1){
margin-top: 16px;
}
> .ivu-row {
> .ivu-tabs {
height: 100%;
display: flex;
flex-direction: column;
> .ivu-tabs-bar {
margin-bottom: 0px;
}
> .ivu-tabs-content {
margin-top: 16px;
flex-grow: 1;
overflow: auto;
> .ivu-tabs-tabpane {
height: 100%;
}
.app-form-group{
margin-top: 0px;
}
}
}
}
...
...
app_web/src/widgets/jobs-registry/main-grid/main-grid-base.vue
浏览文件 @
1410da84
...
...
@@ -8,6 +8,7 @@
:height="isEnablePagingBar
&&
items.length > 0 ? 'calc(100% - 50px)' : '100%'"
:highlight-current-row ="isSingleSelect"
:row-class-name="getRowClassName"
:cell-class-name="getCellClassName"
@row-click="rowClick($event)"
@select-all="selectAll($event)"
@select="select($event)"
...
...
@@ -112,11 +113,12 @@
</div>
</template>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
,
Inject
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
JobsRegistryService
from
'@/service/jobs-registry/jobs-registry-service'
;
import
MainService
from
'./main-grid-service'
;
...
...
app_web/vue.config.js
浏览文件 @
1410da84
const
path
=
require
(
'path'
);
const
os
=
require
(
'os'
);
function
resolve
(
dir
)
{
return
path
.
join
(
__dirname
,
dir
)
}
...
...
@@ -31,7 +30,7 @@ module.exports = {
filename
:
'index.html'
,
// 当使用 title 选项时,
// template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
title
:
'
ibizlab-
task'
,
title
:
'task'
,
// 在这个页面中包含的块,默认情况下会包含
// 提取出来的通用 chunk 和 vendor chunk。
// chunks: ['chunk-vendors', 'chunk-common', 'index']
...
...
config.xml
浏览文件 @
1410da84
...
...
@@ -37,11 +37,11 @@
git clone -b master $para2 ibztask/
export NODE_OPTIONS=--max-old-space-size=4096
cd ibztask/
mvn clean package -P
api
cd ibztask-
provider/ibztask-provider-api
mvn -P
api
docker:build
mvn -P
api
docker:push
docker -H $para1 stack deploy --compose-file=src/main/docker/ibztask-
provider-api.yaml ibzlab-rt --with-registry-auth
mvn clean package -P
web
cd ibztask-
app/ibztask-app-web
mvn -P
web
docker:build
mvn -P
web
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
浏览文件 @
1410da84
...
...
@@ -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
8080
EXPOSE
30005
ADD
ibztask-app-web.jar /ibztask-app-web.jar
ibztask-app/ibztask-app-web/src/main/docker/ibztask-app-web.yaml
浏览文件 @
1410da84
...
...
@@ -3,9 +3,22 @@ services:
ibztask-app-web
:
image
:
registry.cn-shanghai.aliyuncs.com/ibizsys/ibztask-app-web:latest
ports
:
-
"
8080:8080
"
-
"
30005:30005
"
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-provider/ibztask-provider-api/src/main/docker/Dockerfile
浏览文件 @
1410da84
...
...
@@ -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-provider-api.jar
EXPOSE
40005
EXPOSE
8081
ADD
ibztask-provider-api.jar /ibztask-provider-api.jar
ibztask-provider/ibztask-provider-api/src/main/docker/ibztask-provider-api.yaml
浏览文件 @
1410da84
...
...
@@ -3,22 +3,9 @@ services:
ibztask-provider-api
:
image
:
registry.cn-shanghai.aliyuncs.com/ibizsys/ibztask-provider-api:latest
ports
:
-
"
40005:40005
"
-
"
8081:8081
"
networks
:
-
agent_network
environment
:
-
SPRING_CLOUD_NACOS_DISCOVERY_IP=172.16.180.237
-
SERVER_PORT=40005
-
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
:
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录