Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
T
TrainSys
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
苏州培训方案
TrainSys
提交
309709f9
提交
309709f9
编写于
9月 22, 2022
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
lxm1993 发布系统代码 [TrainSys,网页端]
上级
08c77efe
变更
13
隐藏空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
1047 行增加
和
18 行删除
+1047
-18
app-content-bottom-exp.tsx
...-layout/app-content-bottom-exp/app-content-bottom-exp.tsx
+211
-0
app-content-left-exp.tsx
...yle2-layout/app-content-left-exp/app-content-left-exp.tsx
+232
-0
app-content-left-nav-menu.tsx
...t/app-content-left-nav-menu/app-content-left-nav-menu.tsx
+307
-0
app-style2-content.tsx
...p-style2-layout/app-style2-content/app-style2-content.tsx
+143
-0
app-style2-footer.tsx
...app-style2-layout/app-style2-footer/app-style2-footer.tsx
+74
-0
app-style2-header.tsx
...app-style2-layout/app-style2-header/app-style2-header.tsx
+32
-0
app-style2-layout.tsx
...app-style2-layout/app-style2-layout/app-style2-layout.tsx
+29
-0
components-register.ts
...b/packages/ibiz-vue/src/components/components-register.ts
+7
-7
app-style2-default-layout.tsx
...t/app-style2-default-layout/app-style2-default-layout.tsx
+1
-1
app-style2-indexview-layout.tsx
...p-style2-indexview-layout/app-style2-indexview-layout.tsx
+5
-6
app-style2-indexview.tsx
.../components/view/app-style2-view/app-style2-indexview.tsx
+4
-4
BXDGridView.json
...zlab/trainsys/PSSYSAPPS/Web/PSAPPDEVIEWS/BXDGridView.json
+1
-0
PSSYSAPP.json
...ces/model/cn/ibizlab/trainsys/PSSYSAPPS/Web/PSSYSAPP.json
+1
-0
未找到文件。
app_Web/packages/ibiz-vue/src/components/common/app-style2-layout/app-content-bottom-exp/app-content-bottom-exp.tsx
0 → 100644
浏览文件 @
309709f9
import
{
Vue
,
Component
,
Prop
}
from
'vue-property-decorator'
;
import
{
UIStateService
}
from
'../../../../app-service'
;
import
{
LogUtil
}
from
'ibiz-core'
;
/**
* 应用内容区底部导航区
*
* @export
* @class AppContentBottomExp
* @extends {Vue}
*/
@
Component
({})
export
class
AppContentBottomExp
extends
Vue
{
/**
* UI状态服务
*
* @protected
* @type {UIStateService}
* @memberof AppContentBottomExp
*/
protected
uiState
:
UIStateService
=
new
UIStateService
();
/**
* 部件名称
*
* @type {string}
* @memberof AppContentBottomExp
*/
@
Prop
()
public
ctrlName
!
:
string
;
/**
* 菜单部件服务
*
* @memberof AppContentBottomExp
*/
@
Prop
()
protected
service
!
:
any
;
/**
* 传入数据
*
* @type {any[]}
* @memberof AppContentBottomExp
*/
@
Prop
({
default
:
()
=>
[]
})
public
items
!
:
any
[];
/**
* 模型服务对象
*
* @memberof AppStyle2DefaultLayout
*/
@
Prop
()
public
modelService
!
:
any
;
/**
* 菜单数据
*
* @memberof AppContentBottomExp
*/
protected
menus
:
any
[]
=
[];
/**
* 当前激活项下标
*
* @protected
* @type {number}
* @memberof AppContentBottomExp
*/
protected
activeIndex
:
number
=
-
1
;
/**
* 当前激活项
*
* @protected
* @type {*}
* @memberof AppContentBottomExp
*/
protected
activeItem
:
any
;
/**
* 组件创建完毕
*
* @memberof AppContentBottomExp
*/
public
async
created
(){
const
i
:
number
=
this
.
uiState
.
layoutState
.
bottomExpActiveIndex
;
await
this
.
replenishData
(
this
.
items
);
if
(
this
.
menus
.
length
>=
i
+
1
)
{
this
.
itemClick
(
this
.
menus
[
i
],
i
);
}
}
/**
* 填充数据
*
* @memberof AppContentBottomExp
*/
protected
async
replenishData
(
items
:
any
[]){
this
.
menus
=
[];
let
menus
=
[...
items
];
if
(
menus
&&
menus
.
length
>
0
){
for
(
let
i
=
0
;
i
<
menus
.
length
;
i
++
){
if
(
menus
[
i
].
getPSAppFunc
)
{
const
appFuncs
:
Array
<
any
>
=
this
.
service
.
getAllFuncs
();
const
appFunc
=
appFuncs
.
find
((
element
:
any
)
=>
{
return
element
.
appfunctag
===
menus
[
i
].
getPSAppFunc
.
codeName
;
});
if
(
appFunc
&&
Object
.
is
(
appFunc
.
appFuncType
,
'APPVIEW'
))
{
if
(
appFunc
.
getPSAppView
){
await
appFunc
.
getPSAppView
.
fill
();
Object
.
assign
(
menus
[
i
],
{
viewname
:
'app-view-shell'
,
viewModelData
:
appFunc
.
getPSAppView
});
}
}
}
}
}
this
.
menus
=
menus
;
}
/**
* 激活分页
*
* @protected
* @param {string} name
* @memberof AppContentBottomExp
*/
protected
activeTab
(
name
:
string
):
void
{
try
{
const
item
:
any
=
this
.
menus
[
parseInt
(
name
)];
this
.
itemClick
(
item
,
parseInt
(
name
));
}
catch
(
error
)
{
LogUtil
.
warn
(
error
);
}
}
/**
* 菜单项点击
*
* @protected
* @param {*} item
* @param {number} index
* @memberof AppContentBottomExp
*/
protected
itemClick
(
item
:
any
,
index
:
number
):
void
{
this
.
uiState
.
layoutState
.
bottomExpActiveIndex
=
index
;
this
.
activeIndex
=
index
;
this
.
activeItem
=
item
;
this
.
activeItem
.
isActivated
=
true
;
}
/**
* 绘制标题
*
* @protected
* @param {*} h
* @param {*} item
* @returns {*}
* @memberof AppContentBottomExp
*/
protected
renderTitle
(
h
:
any
,
item
:
any
):
any
{
return
(
<
div
title=
{
this
.
$tl
(
item
.
tooltipTag
,
item
.
tooltip
)
}
class=
"tab-exp-title"
>
<
menu
-
icon
item=
{
item
}
/>
{
this
.
$tl
(
item
.
captionTag
,
item
.
caption
)
}
</
div
>
);
}
/**
* 绘制内容
*
* @returns {*}
* @memberof AppContentBottomExp
*/
public
render
():
any
{
return
(
<
div
class=
"app-content-bottom-exp"
>
<
tabs
size=
"small"
animated=
{
false
}
value=
{
this
.
activeIndex
.
toString
()
}
on
-
on
-
click=
{
(
name
:
string
)
=>
this
.
activeTab
(
name
)
}
>
{
this
.
menus
.
map
((
item
:
any
,
i
:
number
)
=>
{
if
(
item
.
hidden
)
{
return
;
}
return
(
<
tabPane
label=
{
(
h
:
any
)
=>
this
.
renderTitle
(
h
,
item
)
}
name=
{
i
.
toString
()
}
>
{
item
.
isActivated
?
(
<
div
key=
{
i
}
class=
"tab-exp-item-content"
>
{
this
.
$createElement
(
item
.
viewname
,{
class
:
"view-container"
,
props
:
{
staticProps
:
{
viewDefaultUsage
:
false
,
viewModelData
:
item
.
viewModelData
}
},
})
}
</
div
>
)
:
null
}
</
tabPane
>
);
})
}
</
tabs
>
</
div
>
);
}
}
app_Web/packages/ibiz-vue/src/components/common/app-style2-layout/app-content-left-exp/app-content-left-exp.tsx
0 → 100644
浏览文件 @
309709f9
import
{
Vue
,
Component
,
Prop
,
Emit
}
from
'vue-property-decorator'
;
import
{
VNode
}
from
'vue'
;
import
{
UIStateService
}
from
'../../../../app-service'
;
/**
* 应用左侧导航
*
* @export
* @class AppContentLeftExp
* @extends {Vue}
*/
@
Component
({})
export
class
AppContentLeftExp
extends
Vue
{
/**
* UI状态服务
*
* @protected
* @type {UIStateService}
* @memberof AppContentLeftExp
*/
protected
uiState
:
UIStateService
=
new
UIStateService
();
/**
* 部件名称
*
* @type {string}
* @memberof AppContentLeftExp
*/
@
Prop
()
public
ctrlName
!
:
string
;
/**
* 传入数据
*
* @protected
* @type {any[]}
* @memberof AppContentLeftExp
*/
@
Prop
({
default
:
()
=>
[]
})
protected
items
!
:
any
[];
/**
* 模型服务对象
*
* @memberof AppStyle2DefaultLayout
*/
@
Prop
()
public
modelService
!
:
any
;
/**
* 菜单部件服务
*
* @memberof AppContentLeftExp
*/
@
Prop
()
protected
service
!
:
any
;
/**
* 当前激活项下标
*
* @protected
* @type {number}
* @memberof AppContentLeftExp
*/
protected
activeIndex
:
number
=
-
1
;
/**
* 菜单数据
*
* @memberof AppContentLeftExp
*/
protected
menus
:
any
[]
=
[];
/**
* 当前激活项
*
* @protected
* @type {*}
* @memberof AppContentLeftExp
*/
protected
activeItem
:
any
;
/**
* 组件创建完毕
*
* @protected
* @memberof AppContentLeftExp
*/
protected
async
created
()
{
const
i
:
number
=
this
.
uiState
.
layoutState
.
leftExpActiveIndex
;
await
this
.
replenishData
(
this
.
items
);
if
(
this
.
menus
.
length
>=
i
+
1
)
{
this
.
changeActiveItem
(
this
.
menus
[
i
],
i
);
}
}
/**
* 填充数据
*
* @memberof AppContentLeftExp
*/
protected
async
replenishData
(
items
:
any
[])
{
this
.
menus
=
[];
let
menus
=
[...
items
];
if
(
menus
&&
menus
.
length
>
0
)
{
for
(
let
i
=
0
;
i
<
menus
.
length
;
i
++
)
{
if
(
menus
[
i
].
getPSAppFunc
)
{
const
appFuncs
:
Array
<
any
>
=
this
.
service
.
getAllFuncs
();
const
appFunc
=
appFuncs
.
find
((
element
:
any
)
=>
{
return
element
.
appfunctag
===
menus
[
i
].
getPSAppFunc
.
codeName
;
});
if
(
appFunc
&&
Object
.
is
(
appFunc
.
appFuncType
,
'APPVIEW'
))
{
if
(
appFunc
.
getPSAppView
){
await
appFunc
.
getPSAppView
.
fill
();
Object
.
assign
(
menus
[
i
],
{
viewname
:
'app-view-shell'
,
viewModelData
:
appFunc
.
getPSAppView
});
}
}
}
}
}
this
.
menus
=
menus
;
}
/**
* 菜单项点击
*
* @protected
* @param {*} item
* @param {number} index
* @memberof AppContentLeftExp
*/
protected
itemClick
(
item
:
any
,
index
:
number
):
void
{
if
(
this
.
activeIndex
===
index
)
{
this
.
uiState
.
leftExpContentShowChange
();
}
else
{
this
.
uiState
.
leftExpContentShowChange
(
true
);
this
.
changeActiveItem
(
item
,
index
);
}
}
/**
* 当前激活菜单切换时抛出事件
*
* @param {*} item
* @memberof AppContentLeftExp
*/
@
Emit
(
'active-item-change'
)
public
activeItemChange
(
item
:
any
):
any
{
}
/**
* 改变激活项
*
* @protected
* @param {*} item
* @param {number} index
* @memberof AppContentLeftExp
*/
protected
changeActiveItem
(
item
:
any
,
index
:
number
):
void
{
this
.
uiState
.
layoutState
.
leftExpActiveIndex
=
index
;
this
.
activeIndex
=
index
;
this
.
activeItem
=
item
;
this
.
activeItem
.
isActivated
=
true
;
this
.
activeItemChange
(
item
);
}
/**
* 绘制内容
*
* @returns {VNode}
* @memberof AppContentLeftExp
*/
public
render
():
VNode
{
return
(
<
div
class=
"app-content-left-exp"
>
<
div
class=
"exp-actions"
>
{
this
.
menus
.
map
((
item
:
any
,
index
:
number
)
=>
{
this
.
handleMenuItemLocale
(
item
);
if
(
item
.
hidden
)
{
return
;
}
return
(
<
div
title=
{
this
.
$tl
(
item
.
tooltipTag
,
item
.
tooltip
)
}
on
-
click=
{
()
=>
this
.
itemClick
(
item
,
index
)
}
class=
{
{
'action-item'
:
true
,
active
:
this
.
activeIndex
===
index
}
}
>
<
div
class=
"active-item-indicator"
/>
<
menu
-
icon
item=
{
item
}
/>
</
div
>
);
})
}
</
div
>
<
div
class=
"exp-content"
>
{
this
.
menus
.
map
((
item
:
any
,
index
:
number
)
=>
{
if
(
!
item
.
isActivated
||
item
.
hidden
)
{
return
;
}
return
(
<
div
v
-
show=
{
this
.
activeIndex
===
index
}
key=
{
index
}
class=
"exp-item"
>
{
this
.
$createElement
(
item
.
viewname
,
{
class
:
"view-container"
,
props
:
{
staticProps
:
{
viewDefaultUsage
:
false
,
viewModelData
:
item
.
viewModelData
}
},
})
}
</
div
>
);
})
}
</
div
>
</
div
>
);
}
/**
* 计算菜单项多语言资源
*
* @returns {*}
* @memberof AppContentLeftExp
*/
public
handleMenuItemLocale
(
item
:
any
)
{
if
(
!
item
.
localetag
)
{
return
;
}
let
localeContent
:
any
=
this
.
$t
(
item
.
localetag
);
if
(
localeContent
)
{
item
.
text
=
localeContent
;
item
.
tooltip
=
localeContent
;
}
}
}
app_Web/packages/ibiz-vue/src/components/common/app-style2-layout/app-content-left-nav-menu/app-content-left-nav-menu.tsx
0 → 100644
浏览文件 @
309709f9
import
{
Vue
,
Component
,
Prop
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
UIStateService
}
from
'../../../../app-service'
;
/**
* 左侧导航菜单
*
* @export
* @class AppContentLeftNavMenu
* @extends {Vue}
*/
@
Component
({})
export
class
AppContentLeftNavMenu
extends
Vue
{
/**
* UI状态服务
*
* @protected
* @type {UIStateService}
* @memberof AppContentLeftNavMenu
*/
protected
uiState
:
UIStateService
=
new
UIStateService
();
/**
* 当前激活项
*
* @protected
* @type {*}
* @memberof AppContentLeftNavMenu
*/
protected
activeItem
:
any
=
{};
/**
* 菜单Map表
*
* @protected
* @type {Map<string, any>}
* @memberof AppContentLeftNavMenu
*/
protected
menuMap
:
Map
<
string
,
any
>
=
new
Map
();
/**
* 部件名称
*
* @type {string}
* @memberof AppContentLeftNavMenu
*/
@
Prop
()
public
ctrlName
!
:
string
;
/**
* 菜单数据
*
* @type {any[]}
* @memberof AppContentLeftNavMenu
*/
@
Prop
({
default
:
()
=>
[]
})
public
menus
!
:
any
[];
/**
* 模型服务对象
*
* @memberof AppStyle2DefaultLayout
*/
@
Prop
()
public
modelService
!
:
any
;
/**
* 监控菜单数据变更
*
* @memberof AppContentLeftNavMenu
*/
@
Watch
(
'menus'
,
{
immediate
:
true
})
public
watchMenus
():
void
{
this
.
fillMenuMap
(
this
.
menus
);
}
/**
* 菜单项点击
*
* @param {*} item
* @returns {*}
* @memberof AppContentLeftNavMenu
*/
@
Emit
(
'menu-click'
)
public
menuClick
(
item
:
any
):
any
{}
/**
* 底部绘制实例
*
* @memberof AppContentLeftNavMenu
*/
public
footerRenderItem
!
:
any
;
/**
* 组件创建完毕
*
* @memberof AppContentLeftNavMenu
*/
public
created
():
void
{
if
(
this
.
$route
&&
this
.
$route
.
matched
.
length
===
1
)
{
this
.
openDefault
();
}
this
.
footerRenderItem
=
this
.
$footerRenderService
.
registerLeftItem
((
h
:
any
)
=>
{
return
(
<
icon
title=
{
this
.
uiState
.
layoutState
.
leftNavMenuCollapse
?
this
.
$t
(
'components.content.open'
)
:
this
.
$t
(
'components.content.close'
)
}
type=
"md-menu"
style=
"font-size: 20px;vertical-align: -3px;"
on
-
click=
{
()
=>
this
.
uiState
.
leftNavMenuCollapseChange
()
}
/>
);
},
0
);
}
/**
* 组件销毁
*
* @memberof AppContentLeftNavMenu
*/
public
destroyed
():
void
{
this
.
footerRenderItem
?.
remove
();
}
/**
* 打开默认菜单
*
* @protected
* @memberof AppContentLeftNavMenu
*/
protected
openDefault
():
void
{
let
menu
:
any
;
for
(
const
[
key
,
item
]
of
this
.
menuMap
)
{
if
(
item
.
openDefault
===
true
)
{
menu
=
item
;
break
;
}
}
if
(
menu
)
{
this
.
itemClick
(
menu
);
}
}
/**
* 菜单项点击
*
* @protected
* @param {*} item
* @memberof AppContentLeftExp
*/
protected
itemClick
(
item
:
any
):
void
{
const
styleMode
:
any
=
this
.
$uiState
.
layoutState
.
styleMode
;
if
((
Object
.
is
(
styleMode
,
'DEFAULT'
)
&&
item
.
name
!==
this
.
activeItem
.
name
)
||
Object
.
is
(
styleMode
,
'STYLE2'
))
{
this
.
changeActiveItem
(
item
);
this
.
menuClick
(
item
);
}
}
/**
* 改变激活项
*
* @protected
* @param {*} item
* @memberof AppContentLeftExp
*/
protected
changeActiveItem
(
item
:
any
):
void
{
this
.
activeItem
=
item
;
this
.
activeItem
.
isActivated
=
true
;
}
/**
* 菜单项选中
*
* @protected
* @param {string} name
* @memberof AppContentLeftNavMenu
*/
protected
select
(
name
:
string
):
void
{
const
item
=
this
.
menuMap
.
get
(
name
);
if
(
item
)
{
this
.
itemClick
(
item
);
}
}
/**
* 填充菜单Map表
*
* @protected
* @param {any[]} menus
* @returns {*}
* @memberof AppContentLeftNavMenu
*/
protected
fillMenuMap
(
menus
:
any
[]):
any
{
menus
.
forEach
((
item
:
any
)
=>
{
this
.
menuMap
.
set
(
item
.
name
,
item
);
if
(
item
.
getPSAppMenuItems
)
{
this
.
fillMenuMap
(
item
.
getPSAppMenuItems
);
}
});
}
/**
* 展开菜单项
*
* @protected
* @param {string} name
* @memberof AppContentLeftNavMenu
*/
protected
open
(
name
:
string
):
void
{
const
i
:
number
=
this
.
uiState
.
layoutState
.
leftNavOpenedMenus
.
findIndex
((
str
:
any
)
=>
Object
.
is
(
str
,
name
));
if
(
i
===
-
1
)
{
this
.
uiState
.
layoutState
.
leftNavOpenedMenus
.
push
(
name
);
}
}
/**
* 收起菜单项
*
* @protected
* @param {string} name
* @memberof AppContentLeftNavMenu
*/
protected
close
(
name
:
string
):
void
{
const
i
:
number
=
this
.
uiState
.
layoutState
.
leftNavOpenedMenus
.
findIndex
((
str
:
any
)
=>
Object
.
is
(
str
,
name
));
if
(
i
!==
-
1
)
{
this
.
uiState
.
layoutState
.
leftNavOpenedMenus
.
splice
(
i
,
1
);
this
.
$forceUpdate
();
}
}
/**
* 绘制子菜单
*
* @protected
* @param {*} item
* @returns {*}
* @memberof AppContentLeftNavMenu
*/
protected
renderGroup
(
item
:
any
):
any
{
return
(
<
el
-
submenu
index=
{
item
.
name
}
>
<
template
slot=
"title"
>
<
menu
-
icon
item=
{
item
}
/>
<
span
slot=
"title"
>
{
this
.
$tl
(
item
.
captionTag
,
item
.
caption
)
}
</
span
>
</
template
>
{
this
.
renderItems
(
item
.
getPSAppMenuItems
)
}
</
el
-
submenu
>
);
}
/**
* 绘制菜单项
*
* @protected
* @param {*} item
* @returns {*}
* @memberof AppContentLeftNavMenu
*/
protected
renderItem
(
item
:
any
):
any
{
return
(
<
el
-
menu
-
item
index=
{
item
.
name
}
>
<
menu
-
icon
item=
{
item
}
/>
<
span
slot=
"title"
>
{
this
.
$tl
(
item
.
captionTag
,
item
.
caption
)
}
</
span
>
</
el
-
menu
-
item
>
);
}
/**
* 绘制菜单
*
* @protected
* @param {any[]} items
* @returns {*}
* @memberof AppContentLeftNavMenu
*/
protected
renderItems
(
items
:
any
[]):
any
{
return
items
.
map
((
item
:
any
)
=>
{
if
(
item
.
hidden
)
{
return
;
}
if
(
item
.
getPSAppMenuItems
)
{
return
this
.
renderGroup
(
item
);
}
return
this
.
renderItem
(
item
);
});
}
/**
* 绘制内容
*
* @returns {*}
* @memberof AppContentLeftNavMenu
*/
public
render
():
any
{
return
(
<
div
class=
"app-content-lef-nav-menu"
>
<
el
-
menu
default
-
active=
{
this
.
activeItem
.
name
}
default
-
openeds=
{
this
.
uiState
.
layoutState
.
leftNavOpenedMenus
}
collapse=
{
this
.
uiState
.
layoutState
.
leftNavMenuCollapse
}
on
-
select=
{
(
i
:
any
)
=>
this
.
select
(
i
)
}
on
-
open=
{
(
i
:
any
)
=>
this
.
open
(
i
)
}
on
-
close=
{
(
i
:
any
)
=>
this
.
close
(
i
)
}
>
{
this
.
renderItems
(
this
.
menus
)
}
</
el
-
menu
>
</
div
>
);
}
}
app_Web/packages/ibiz-vue/src/components/common/app-style2-layout/app-style2-content/app-style2-content.tsx
0 → 100644
浏览文件 @
309709f9
import
{
Vue
,
Component
}
from
'vue-property-decorator'
;
import
{
on
}
from
'../../../../utils'
;
import
{
VNode
}
from
'vue'
;
/**
* 应用头部
*
* @export
* @class AppStyle2Content
* @extends {Vue}
*/
@
Component
({})
export
class
AppStyle2Content
extends
Vue
{
/**
* Creates an instance of AppStyle2Content.
* @memberof AppStyle2Content
*/
constructor
()
{
super
();
on
(
window
,
'keydown'
,
(
e
:
KeyboardEvent
)
=>
{
if
(
e
.
ctrlKey
&&
e
.
keyCode
===
192
)
{
this
.
changeBottom
();
}
});
}
/**
* 组件创建完毕
*
* @protected
* @memberof AppStyle2Content
*/
protected
created
():
void
{
if
(
this
.
$slots
.
bottom
)
{
this
.
$footerRenderService
.
registerRightItem
(()
=>
{
return
(
<
div
title=
{
this
.
$t
(
'components.content.title'
)
}
class=
"action-item"
on
-
click=
{
()
=>
this
.
changeBottom
()
}
>
<
svg
t=
"1562669728550"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p
-
id=
"1118"
width=
"18"
height=
"18"
class=
"icon"
>
<
path
d=
"M170.666667 170.666667h682.666666a85.333333 85.333333 0 0 1 85.333334 85.333333v512a85.333333 85.333333 0 0 1-85.333334 85.333333H170.666667a85.333333 85.333333 0 0 1-85.333334-85.333333V256a85.333333 85.333333 0 0 1 85.333334-85.333333z m0 85.333333v512h682.666666V256H170.666667z m341.333333 341.333333h256v85.333334h-256v-85.333334z m-43.306667-103.637333L317.866667 644.565333l-60.330667-60.373333 90.453333-90.453333-90.453333-90.538667L317.866667 342.869333l150.826666 150.826667z"
p
-
id=
"1119"
></
path
>
</
svg
>
</
div
>
);
},
0
);
}
}
/**
* 内容区底部区域,显示变更
*
* @protected
* @param {boolean} [judge]
* @memberof AppStyle2Content
*/
protected
changeBottom
(
judge
?:
boolean
):
void
{
if
(
judge
!==
undefined
)
{
this
.
$uiState
.
changeLayoutState
({
contentBottomShow
:
judge
,
});
}
else
{
this
.
$uiState
.
changeLayoutState
({
contentBottomShow
:
!
this
.
$uiState
.
layoutState
.
contentBottomShow
,
});
}
}
/**
* 绘制内容
*
* @protected
* @param {boolean} isSlot
* @returns {*}
* @memberof AppStyle2Content
*/
protected
renderContent
(
isSlot
:
boolean
):
any
{
return
(
<
div
slot=
{
isSlot
?
'right'
:
null
}
class=
{
{
'app-style2-content__right'
:
true
,
'is-hidden'
:
!
this
.
$uiState
.
layoutState
.
contentBottomShow
||
!
this
.
$slots
.
bottom
,
}
}
>
<
split
mode=
"vertical"
v
-
model=
{
this
.
$uiState
.
layoutState
.
contentVerticalSplit
}
max=
{
0.1
}
>
<
div
slot=
"top"
class=
"app-style2-content__right__top"
>
{
this
.
$slots
.
default
}
</
div
>
{
this
.
$slots
.
bottom
?
(
<
div
slot=
"bottom"
class=
"app-style2-content__right__bottom"
>
<
div
class=
"bottom__icon"
on
-
click=
{
()
=>
this
.
changeBottom
(
false
)
}
>
<
icon
type=
"ios-arrow-down"
/>
</
div
>
{
this
.
$slots
.
bottom
}
</
div
>
)
:
null
}
</
split
>
</
div
>
);
}
/**
* 绘制内容
*
* @returns {VNode}
* @memberof AppStyle2Content
*/
public
render
()
{
if
(
this
.
$uiState
.
layoutState
.
styleMode
===
'STYLE2'
)
{
return
[<
div
class=
"app-style2-content__left"
>
{
this
.
$slots
.
left
}
</
div
>,
this
.
renderContent
(
false
)];
}
else
{
return
this
.
$slots
.
left
?
(
<
split
class=
{
{
'app-style2-content__split'
:
true
,
'is-hidden'
:
!
this
.
$uiState
.
layoutState
.
leftExpContentShow
}
}
v
-
model=
{
this
.
$uiState
.
layoutState
.
contentHorizontalSplit
}
min=
{
0.1
}
max=
{
0.5
}
>
<
div
slot=
"left"
>
{
this
.
$slots
.
left
}
</
div
>
{
this
.
renderContent
(
true
)
}
</
split
>
)
:
(
this
.
renderContent
(
false
)
);
}
}
}
\ No newline at end of file
app_Web/packages/ibiz-vue/src/components/common/app-style2-layout/app-style2-footer/app-style2-footer.tsx
0 → 100644
浏览文件 @
309709f9
import
{
Vue
,
Component
}
from
'vue-property-decorator'
;
import
{
VNode
,
CreateElement
}
from
'vue'
;
import
{
FooterItemsService
}
from
'../../../../app-service'
;
import
{
Subscription
}
from
'rxjs'
;
/**
* 应用头部
*
* @export
* @class AppStyle2Footer
* @extends {Vue}
*/
@
Component
({})
export
class
AppStyle2Footer
extends
Vue
{
/**
* 底部项绘制服务
*
* @private
* @memberof AppStyle2Footer
*/
private
footerItemsService
=
new
FooterItemsService
();
/**
* @description 组件事件
* @type {(Subscription | undefined)}
* @memberof AppStyle2Footer
*/
public
footerEvent
:
Subscription
|
undefined
;
/**
* 组件创建完毕
*
* @memberof AppStyle2Footer
*/
public
created
():
void
{
this
.
footerEvent
=
this
.
footerItemsService
.
tickTrigger
().
subscribe
(()
=>
{
this
.
$nextTick
();
});
}
public
destroyed
()
{
if
(
this
.
footerEvent
)
{
this
.
footerEvent
.
unsubscribe
();
}
}
/**
* 绘制内容
*
* @returns {VNode}
* @memberof AppStyle2Footer
*/
public
render
(
h
:
CreateElement
):
VNode
{
return
(
<
div
class=
"app-style2-footer"
>
<
div
class=
"app-style2-footer__left"
>
{
this
.
footerItemsService
.
leftItemsRenders
.
map
((
item
)
=>
{
return
<
div
class=
"item"
>
{
item
(
h
)
}
</
div
>;
})
}
</
div
>
<
div
class=
"app-style2-footer__content"
>
{
this
.
footerItemsService
.
centerItemsRenders
.
map
((
item
)
=>
{
return
<
div
class=
"item"
>
{
item
(
h
)
}
</
div
>;
})
}
</
div
>
<
div
class=
"app-style2-footer__right"
>
{
this
.
footerItemsService
.
rightItemsRenders
.
map
((
item
)
=>
{
return
<
div
class=
"item"
>
{
item
(
h
)
}
</
div
>;
})
}
</
div
>
</
div
>
);
}
}
app_Web/packages/ibiz-vue/src/components/common/app-style2-layout/app-style2-header/app-style2-header.tsx
0 → 100644
浏览文件 @
309709f9
import
{
Vue
,
Component
}
from
'vue-property-decorator'
;
import
{
VNode
}
from
'vue'
;
/**
* 应用头部
*
* @export
* @class AppStyle2Header
* @extends {Vue}
*/
@
Component
({})
export
class
AppStyle2Header
extends
Vue
{
/**
* 绘制内容
*
* @returns {VNode}
* @memberof AppStyle2Header
*/
public
render
(
h
:
any
):
VNode
{
return
(
<
div
class=
"app-style2-header"
>
<
div
class=
"app-style2-header__left"
>
{
this
.
$slots
.
left
}
{
Object
.
is
(
this
.
$uiState
.
layoutState
.
styleMode
,
'STYLE2'
)
?
(
<
app
-
breadcrumb
></
app
-
breadcrumb
>
)
:
null
}
</
div
>
<
div
class=
"app-style2-header__right"
>
{
this
.
$slots
.
right
}
</
div
>
</
div
>
);
}
}
app_Web/packages/ibiz-vue/src/components/common/app-style2-layout/app-style2-layout/app-style2-layout.tsx
0 → 100644
浏览文件 @
309709f9
import
{
Vue
,
Component
}
from
'vue-property-decorator'
;
import
{
VNode
}
from
'vue'
;
/**
* 应用布局容器
*
* @export
* @class AppStyle2Layout
* @extends {Vue}
*/
@
Component
({})
export
class
AppStyle2Layout
extends
Vue
{
/**
* 绘制内容
*
* @returns {VNode}
* @memberof AppStyle2Layout
*/
public
render
():
VNode
{
return
(
<
div
class=
'app-style2-layout'
>
<
div
class=
"app-style2-header"
>
{
this
.
$slots
.
header
}
</
div
>
<
div
class=
"app-style2-content"
>
{
this
.
$slots
.
default
}
</
div
>
<
div
class=
"app-style2-footer"
>
{
this
.
$slots
.
footer
}
</
div
>
</
div
>
);
}
}
app_Web/packages/ibiz-vue/src/components/components-register.ts
浏览文件 @
309709f9
...
...
@@ -97,14 +97,14 @@ import AppColorSpan from './common/app-color-span/app-color-span.vue';
import
AppColorPicker
from
'./common/app-color-picker/app-color-picker.vue'
;
import
AppPortalDesign
from
'./common/app-portal-design/app-portal-design.vue'
;
import
AppNotSupportedEditor
from
'./common/app-not-supported-editor/app-not-supported-editor.vue'
;
import
{
AppStyle2Layout
}
from
'./common/layout/app-style2-layout/app-style2-layout'
;
import
{
AppStyle2Header
}
from
'./common/layout/app-style2-header/app-style2-header'
;
import
{
AppStyle2Layout
}
from
'./common/
app-style2-
layout/app-style2-layout/app-style2-layout'
;
import
{
AppStyle2Header
}
from
'./common/
app-style2-
layout/app-style2-header/app-style2-header'
;
import
{
AppHeaderRightMenus
}
from
'./common/app-header-right-menus/app-header-right-menus'
;
import
{
AppStyle2Content
}
from
'./common/layout/app-style2-content/app-style2-content'
;
import
{
AppContentLeftExp
}
from
'./common/layout/app-content-left-exp/app-content-left-exp'
;
import
{
AppContentLeftNavMenu
}
from
'./common/layout/app-content-left-nav-menu/app-content-left-nav-menu'
;
import
{
AppContentBottomExp
}
from
'./common/layout/app-content-bottom-exp/app-content-bottom-exp'
;
import
{
AppStyle2Footer
}
from
'./common/layout/app-style2-footer/app-style2-footer'
;
import
{
AppStyle2Content
}
from
'./common/
app-style2-
layout/app-style2-content/app-style2-content'
;
import
{
AppContentLeftExp
}
from
'./common/
app-style2-
layout/app-content-left-exp/app-content-left-exp'
;
import
{
AppContentLeftNavMenu
}
from
'./common/
app-style2-
layout/app-content-left-nav-menu/app-content-left-nav-menu'
;
import
{
AppContentBottomExp
}
from
'./common/
app-style2-
layout/app-content-bottom-exp/app-content-bottom-exp'
;
import
{
AppStyle2Footer
}
from
'./common/
app-style2-
layout/app-style2-footer/app-style2-footer'
;
import
TabPageExpStyle2
from
'./common/tab-page-exp-style2/tab-page-exp-style2.vue'
;
import
FilterTree
from
'./common/filter-tree/filter-tree.vue'
;
import
DropdownListHidden
from
'./common/dropdown-list-hidden/dropdown-list-hidden.vue'
...
...
app_Web/packages/ibiz-vue/src/components/layout/app-style2-layout/app-style2-default-layout/app-style2-default-layout.tsx
浏览文件 @
309709f9
...
...
@@ -88,7 +88,7 @@ export class AppStyle2DefaultLayout extends Vue {
this
.
renderOptions
=
{};
const
{
viewType
,
viewStyle
,
codeName
}
=
this
.
viewInstance
;
const
viewClassNames
:
any
=
{
'view-container'
:
true
'view-
style2-
container'
:
true
};
if
(
viewType
)
{
Object
.
assign
(
viewClassNames
,
{
[
viewType
?.
toLowerCase
()]:
true
});
...
...
app_Web/packages/ibiz-vue/src/components/layout/app-style2-layout/app-style2-indexview-layout/app-style2-indexview-layout.tsx
浏览文件 @
309709f9
...
...
@@ -153,7 +153,7 @@ export class AppStyle2IndexViewLayout extends AppStyle2DefaultLayout {
<
app
-
style2
-
header
>
<
template
slot=
"left"
>
<
div
class=
"app-style2-header__left__caption"
>
{
t
his
.
viewInstance
.
enableAppSwitch
?
<
span
class=
"caption__icon"
on
-
click=
{
()
=>
this
.
contextMenuDragVisiable
=
!
this
.
contextMenuDragVisiable
}
><
icon
type=
"md-menu"
/>
</
span
>
:
null
}
{
t
rue
?
<
span
class=
"caption__icon"
on
-
click=
{
()
=>
this
.
contextMenuDragVisiable
=
!
this
.
contextMenuDragVisiable
}
><
icon
type=
"md-menu"
/>
</
span
>
:
null
}
{
this
.
showCaption
?
this
.
model
.
srfCaption
:
null
}
</
div
>
</
template
>
...
...
@@ -163,11 +163,10 @@ export class AppStyle2IndexViewLayout extends AppStyle2DefaultLayout {
<
app
-
lang
title=
{
this
.
model
.
srfTitle
||
this
.
model
.
srfCaption
}
></
app
-
lang
>
{
<
app
-
orgsector
/>
}
{
<
app
-
user
viewStyle=
{
this
.
viewInstance
.
viewStyle
}
/>
}
{
/* {<app-custom-theme viewStyle={this.viewInstance.viewStyle}></app-custom-theme>} */
}
</
template
>
</
app
-
style2
-
header
>
{
this
.
$slots
.
default
}
{
t
his
.
viewInstance
.
enableAppSwitch
?
<
context
-
menu
-
drag
viewStyle=
{
this
.
viewInstance
.
viewStyle
}
contextMenuDragVisiable=
{
this
.
contextMenuDragVisiable
}
></
context
-
menu
-
drag
>
:
null
}
{
t
rue
?
<
context
-
menu
-
drag
viewStyle=
{
this
.
viewInstance
.
viewStyle
}
contextMenuDragVisiable=
{
this
.
contextMenuDragVisiable
}
></
context
-
menu
-
drag
>
:
null
}
</
template
>
<
app
-
style2
-
content
>
{
leftContent
?
...
...
@@ -175,14 +174,14 @@ export class AppStyle2IndexViewLayout extends AppStyle2DefaultLayout {
{
leftContent
}
</
template
>
:
null
}
{
styleMode
===
'DEFAULT'
?
this
.
$slots
.
tabPageExp
:
null
}
<
div
class=
"app-style2-content"
on
-
click=
{
()
=>
this
.
contextMenuDragVisiable
=
false
}
>
<
div
class=
"app-style2-content
__body
"
on
-
click=
{
()
=>
this
.
contextMenuDragVisiable
=
false
}
>
<
app
-
keep
-
alive
routerList=
{
this
.
routerList
}
>
<
router
-
view
key=
{
this
.
routerViewKey
}
></
router
-
view
>
</
app
-
keep
-
alive
>
</
div
>
{
this
.
$slots
.
bo
o
tomExp
?
{
this
.
$slots
.
bo
t
tomExp
?
<
template
slot=
"bottom"
>
{
this
.
$slots
.
bo
o
tomExp
}
{
this
.
$slots
.
bo
t
tomExp
}
</
template
>
:
null
}
</
app
-
style2
-
content
>
<
template
slot=
"footer"
>
...
...
app_Web/packages/ibiz-vue/src/components/view/app-style2-view/app-style2-indexview.tsx
浏览文件 @
309709f9
...
...
@@ -336,12 +336,12 @@ export class AppStyle2IndexView extends AppIndexViewBase {
*
* @memberof AppStyle2IndexView
*/
public
renderBo
o
tomExp
(){
public
renderBo
t
tomExp
(){
return
(
this
.
bottom_exp
?.
getPSAppMenuItems
?
<
app
-
content
-
bottom
-
exp
slot=
"bo
o
tomExp"
ref=
"bo
o
tomExp"
slot=
"bo
t
tomExp"
ref=
"bo
t
tomExp"
service=
{
this
.
service
}
ctrlName=
{
this
.
menuInstance
?.
codeName
?.
toLowerCase
()
}
modelService=
{
this
.
modelService
}
...
...
@@ -378,7 +378,7 @@ export class AppStyle2IndexView extends AppIndexViewBase {
this.renderHeaderMenus(),
this.renderTabPageExp(),
this.renderMainContent(),
this.renderBo
o
tomExp(),
this.renderBo
t
tomExp(),
]);
}
...
...
trainsys-core/src/main/resources/model/cn/ibizlab/trainsys/PSSYSAPPS/Web/PSAPPDEVIEWS/BXDGridView.json
浏览文件 @
309709f9
...
...
@@ -1275,6 +1275,7 @@
"enableQuickSearch"
:
true
,
"enableRowEdit"
:
false
,
"enableSearch"
:
true
,
"loadDefault"
:
false
,
"rowEditDefault"
:
false
,
"modelid"
:
"8d77cd231589f99e58c37b2201aa3160"
,
"modeltype"
:
"PSAPPDEVIEW"
...
...
trainsys-core/src/main/resources/model/cn/ibizlab/trainsys/PSSYSAPPS/Web/PSSYSAPP.json
浏览文件 @
309709f9
...
...
@@ -9948,6 +9948,7 @@
"enableQuickSearch"
:
true
,
"enableRowEdit"
:
false
,
"enableSearch"
:
true
,
"loadDefault"
:
false
,
"rowEditDefault"
:
false
,
"modelid"
:
"8d77cd231589f99e58c37b2201aa3160"
,
"modeltype"
:
"PSAPPDEVIEW"
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录