Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
功
功能演示系统
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
示例
功能演示系统
提交
60f6a7eb
提交
60f6a7eb
编写于
4年前
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ShineKOT 发布系统代码 [后台服务,演示应用]
上级
83d8a20d
变更
2
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
367 行增加
和
16 行删除
+367
-16
app-portal-view-db-dashboard-base.vue
...l-view-db-dashboard/app-portal-view-db-dashboard-base.vue
+367
-4
app-portal-view-db-dashboard.vue
...portal-view-db-dashboard/app-portal-view-db-dashboard.vue
+0
-12
未找到文件。
app_Web/src/widgets/app/app-portal-view-db-dashboard/app-portal-view-db-dashboard-base.vue
浏览文件 @
60f6a7eb
!!!!模版产生代码错误:----
FTL stack trace ("~" means nesting-related):
- Failed at: #if view.getViewStyle??
&&
view.getVi... [in template "TEMPLCODE_en_US" at line 44, column 11]
----
\ No newline at end of file
<
template
>
<div
class=
'dashboard'
>
<row
v-if=
"isEnableCustomized"
>
<app-build
@
handleClick=
"handleClick"
></app-build>
</row>
<row
v-if=
"!isHasCustomized"
>
</row>
<row
v-if=
"isHasCustomized"
style=
"width: 100%;min-height: calc(100% - 40px);"
>
<div
class=
"portlet-container"
style=
"position: relative;width:100%;"
>
<template
v-for=
"(item, index) of modelDta"
>
<div
:key=
"index"
:style=
"
{zIndex: 10, position: 'absolute', height: item.h*layoutRowH + 'px', width: `calc(100% / ${layoutColNum} * ${item.w})`,top: item.y*layoutRowH + 'px', left: `calc(100% / ${layoutColNum} * ${item.x})`}">
<component
:key=
"$util.createUUID()"
:is=
"item.componentName"
:name=
"item.portletCodeName"
:context=
"JSON.parse(JSON.stringify(context))"
:viewDefaultUsage=
"false"
:isAdaptiveSize=
"true"
:viewState=
"viewState"
></component>
</div>
</
template
>
</div>
</row>
</div>
</template>
<
script
lang=
'tsx'
>
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
,
ViewTool
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
AppCenterService
from
"@service/app/app-center-service"
;
import
AppPortalView_dbService
from
'./app-portal-view-db-dashboard-service'
;
import
UtilService
from
'@/utilservice/util-service'
;
@
Component
({
components
:
{
}
})
export
default
class
AppPortalView_dbBase
extends
Vue
implements
ControlInterface
{
/**
* 名称
*
* @type {string}
* @memberof AppPortalView_dbBase
*/
@
Prop
()
public
name
?:
string
;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof AppPortalView_dbBase
*/
@
Prop
()
public
viewState
!
:
Subject
<
ViewState
>
;
/**
* 应用上下文
*
* @type {*}
* @memberof AppPortalView_dbBase
*/
@
Prop
()
public
context
!
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof AppPortalView_dbBase
*/
@
Prop
()
public
viewparams
!
:
any
;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof AppPortalView_dbBase
*/
public
viewStateEvent
:
Subscription
|
undefined
;
/**
* 获取部件类型
*
* @returns {string}
* @memberof AppPortalView_dbBase
*/
public
getControlType
():
string
{
return
'DASHBOARD'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof AppPortalView_dbBase
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 建构部件服务对象
*
* @type {AppPortalView_dbService}
* @memberof AppPortalView_dbBase
*/
public
service
:
AppPortalView_dbService
=
new
AppPortalView_dbService
({
$store
:
this
.
$store
});
/**
* 关闭视图
*
* @param {any} args
* @memberof AppPortalView_dbBase
*/
public
closeView
(
args
:
any
):
void
{
let
_this
:
any
=
this
;
_this
.
$emit
(
'closeview'
,
[
args
]);
}
/**
* 计数器刷新
*
* @memberof AppPortalView_dbBase
*/
public
counterRefresh
(){
const
_this
:
any
=
this
;
if
(
_this
.
counterServiceArray
&&
_this
.
counterServiceArray
.
length
>
0
){
_this
.
counterServiceArray
.
forEach
((
item
:
any
)
=>
{
if
(
item
.
refreshData
&&
item
.
refreshData
instanceof
Function
){
item
.
refreshData
();
}
})
}
}
/**
* 是否支持看板定制
*
* @public
* @type {(boolean)}
* @memberof AppPortalView_dbBase
*/
@
Prop
()
public
isEnableCustomized
!
:
boolean
;
/**
* 是否已有看板定制
*
* @public
* @type {(boolean)}
* @memberof AppPortalView_dbBase
*/
public
isHasCustomized
:
boolean
=
false
;
/**
* 模型数据
*
* @public
* @type {(*)}
* @memberof AppPortalView_dbBase
*/
public
modelDta
:
any
;
/**
* modleId
*
* @type {string}
* @memberof AppPortalView_dbBase
*/
public
modelId
:
string
=
"dashboard_app_appportalview_db"
;
/**
* 建构功能服务对象
*
* @type {UtilService}
* @memberof AppPortalView_dbBase
*/
public
utilService
:
UtilService
=
new
UtilService
();
/**
* 功能服务名称
*
* @type {string}
* @memberof AppPortalView_dbBase
*/
public
utilServiceName
:
string
=
""
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof AppPortalView_dbBase
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof AppPortalView_dbBase
*/
public
getData
():
any
{
return
{};
}
/**
* vue 生命周期
*
* @memberof AppPortalView_dbBase
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof AppPortalView_dbBase
*/
public
afterCreated
(){
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
if
(
Object
.
is
(
'load'
,
action
))
{
this
.
loadModel
();
}
});
}
}
/**
* 动态设计水平列数
*
* @memberof AppPortalView_dbBase
*/
public
layoutColNum
:
number
=
12
;
/**
* 动态设计单元格高度,80px
*
* @memberof AppPortalView_dbBase
*/
public
layoutRowH
:
number
=
80
;
/**
* 通知状态
*
* @memberof AppPortalView_dbBase
*/
public
notifyState
(){
this
.
$nextTick
(()
=>
{
if
(
this
.
isHasCustomized
)
{
if
(
this
.
modelDta
&&
this
.
modelDta
.
length
>
0
)
{
this
.
modelDta
.
forEach
((
item
:
any
)
=>
{
this
.
viewState
.
next
({
tag
:
item
.
portletCodeName
,
action
:
"load"
,
data
:
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
))
});
});
}
}
else
{
if
(
this
.
viewState
)
{
const
refs
:
any
=
this
.
$refs
;
Object
.
keys
(
refs
).
forEach
((
name
:
string
)
=>
{
this
.
viewState
.
next
({
tag
:
name
,
action
:
"load"
,
data
:
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
))
});
});
}
}
})
}
/**
* 加载布局与数据模型
*
* @memberof AppPortalView_dbBase
*/
public
loadModel
(){
if
(
this
.
isEnableCustomized
){
this
.
utilService
.
getService
(
this
.
utilServiceName
).
then
((
service
:
any
)
=>
{
service
.
loadModelData
(
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),{
modelid
:
this
.
modelId
,
utilServiceName
:
this
.
utilServiceName
}).
then
((
res
:
any
)
=>
{
if
(
res
&&
res
.
status
==
200
){
const
data
:
any
=
res
.
data
;
if
(
data
&&
data
.
length
>
0
){
this
.
isHasCustomized
=
true
;
this
.
modelDta
=
data
;
this
.
$forceUpdate
();
}
else
{
this
.
isHasCustomized
=
false
;
}
this
.
notifyState
();
}
else
{
console
.
error
(
"加载面板模型异常"
);
this
.
isHasCustomized
=
false
;
this
.
notifyState
();
}
}).
catch
((
error
:
any
)
=>
{
console
.
error
(
"加载面板模型异常"
);
console
.
error
(
error
);
this
.
isHasCustomized
=
false
;
this
.
notifyState
();
});
})
}
else
{
this
.
notifyState
();
}
}
/**
* 处理私人定制按钮
*
* @memberof AppPortalView_dbBase
*/
public
handleClick
(){
const
view
:
any
=
{
viewname
:
'app-portal-design'
,
title
:
(
this
.
$t
(
'app.dashBoard.handleClick.title'
)),
width
:
1600
,
placement
:
'DRAWER_RIGHT'
}
const
viewparam
:
any
=
{
modelid
:
this
.
modelId
,
utilServiceName
:
this
.
utilServiceName
,
appdeName
:
'app'
}
const
appdrawer
=
this
.
$appdrawer
.
openDrawer
(
view
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
viewparam
);
appdrawer
.
subscribe
((
result
:
any
)
=>
{
if
(
Object
.
is
(
result
.
ret
,
'OK'
)){
this
.
loadModel
();
}
});
}
/**
* vue 生命周期
*
* @memberof AppPortalView_dbBase
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof AppPortalView_dbBase
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
}
</
script
>
<
style
lang=
'less'
>
@import './app-portal-view-db-dashboard.less';
</
style
>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app_Web/src/widgets/app/app-portal-view-db-dashboard/app-portal-view-db-dashboard.vue
浏览文件 @
60f6a7eb
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
AppPortalView_dbBase
from
'./app-portal-view-db-dashboard-base.vue'
;
import
view_db_rawitem1
from
'@widgets/app/db-rawitem1-portlet/db-rawitem1-portlet.vue'
;
import
view_db_rawitem6
from
'@widgets/app/db-rawitem6-portlet/db-rawitem6-portlet.vue'
;
import
view_db_rawitem4
from
'@widgets/app/db-rawitem4-portlet/db-rawitem4-portlet.vue'
;
import
view_db_rawitem5
from
'@widgets/app/db-rawitem5-portlet/db-rawitem5-portlet.vue'
;
import
view_db_rawitem2
from
'@widgets/app/db-rawitem2-portlet/db-rawitem2-portlet.vue'
;
import
view_db_rawitem3
from
'@widgets/app/db-rawitem3-portlet/db-rawitem3-portlet.vue'
;
@
Component
({
components
:
{
view_db_rawitem1
,
view_db_rawitem6
,
view_db_rawitem4
,
view_db_rawitem5
,
view_db_rawitem2
,
view_db_rawitem3
,
}
})
...
...
This diff is collapsed.
Click to expand it.
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录