Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
功
功能演示系统
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
示例
功能演示系统
提交
0c0eb1d2
提交
0c0eb1d2
编写于
12月 07, 2020
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
kuaikuai 发布系统代码 [后台服务,演示应用]
上级
dcb687e0
变更
6
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
517 行增加
和
1 行删除
+517
-1
custom-calendar-calendar.vue
...ook/custom-calendar-calendar/custom-calendar-calendar.vue
+1
-1
timelineitemlayoutpanel-panel-base.vue
...mlayoutpanel-panel/timelineitemlayoutpanel-panel-base.vue
+445
-0
timelineitemlayoutpanel-panel-model.ts
...mlayoutpanel-panel/timelineitemlayoutpanel-panel-model.ts
+19
-0
timelineitemlayoutpanel-panel-service.ts
...ayoutpanel-panel/timelineitemlayoutpanel-panel-service.ts
+11
-0
timelineitemlayoutpanel-panel.less
...eitemlayoutpanel-panel/timelineitemlayoutpanel-panel.less
+27
-0
timelineitemlayoutpanel-panel.vue
...neitemlayoutpanel-panel/timelineitemlayoutpanel-panel.vue
+14
-0
未找到文件。
app_Web/src/widgets/ibizbook/custom-calendar-calendar/custom-calendar-calendar.vue
浏览文件 @
0c0eb1d2
...
...
@@ -2,7 +2,7 @@
import
{
Component
}
from
'vue-property-decorator'
;
import
CustomCalendarBase
from
'./custom-calendar-calendar-base.vue'
;
import
layout_itemlayoutpanel
from
'@widgets/ibizbook/
itemlayoutpanel-panel/
itemlayoutpanel-panel.vue'
;
import
layout_itemlayoutpanel
from
'@widgets/ibizbook/
timelineitemlayoutpanel-panel/timeline
itemlayoutpanel-panel.vue'
;
@
Component
({
components
:
{
...
...
app_Web/src/widgets/ibizbook/timelineitemlayoutpanel-panel/timelineitemlayoutpanel-panel-base.vue
0 → 100644
浏览文件 @
0c0eb1d2
<
template
>
<row
class=
"app-layoutpanel "
style=
"width:100%;height:100%;"
>
<i-col
v-show=
"detailsModel.container1.visible"
:md=
"
{ span: 24, offset: 0 }" class="app-layoutpanel-container" style="width:;height:100%;">
<app-calendar-itemlayoutpanel
:inputData=
"inputData"
></app-calendar-itemlayoutpanel>
</i-col>
</row>
</
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
IBIZBOOKService
from
'@/service/ibizbook/ibizbook-service'
;
import
TIMELINEITEMLAYOUTPANELService
from
'./timelineitemlayoutpanel-panel-service'
;
import
IBIZBOOKUIService
from
'@/uiservice/ibizbook/ibizbook-ui-service'
;
import
{
PanelDetailModel
,
PanelRawitemModel
,
PanelTabPanelModel
,
PanelTabPageModel
,
PanelFieldModel
,
PanelContainerModel
,
PanelControlModel
,
PanelUserControlModel
,
PanelButtonModel
}
from
'@/model/panel-detail'
;
import
TIMELINEITEMLAYOUTPANELModel
from
'./timelineitemlayoutpanel-panel-model'
;
import
CodeListService
from
"@/codelist/codelist-service"
;
import
UIService
from
'@/uiservice/ui-service'
;
@
Component
({
components
:
{
}
})
export
default
class
TIMELINEITEMLAYOUTPANELBase
extends
Vue
implements
ControlInterface
{
/**
* 名称
*
* @type {string}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
@
Prop
()
public
name
?:
string
;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
@
Prop
()
public
viewState
!
:
Subject
<
ViewState
>
;
/**
* 应用上下文
*
* @type {*}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
@
Prop
()
public
context
!
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
@
Prop
()
public
viewparams
!
:
any
;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
viewStateEvent
:
Subscription
|
undefined
;
/**
* 获取部件类型
*
* @returns {string}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
getControlType
():
string
{
return
'PANEL'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 建构部件服务对象
*
* @type {TIMELINEITEMLAYOUTPANELService}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
service
:
TIMELINEITEMLAYOUTPANELService
=
new
TIMELINEITEMLAYOUTPANELService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {IBIZBOOKService}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
appEntityService
:
IBIZBOOKService
=
new
IBIZBOOKService
({
$store
:
this
.
$store
});
/**
* 转化数据
*
* @param {any} args
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
transformData
(
args
:
any
)
{
let
_this
:
any
=
this
;
if
(
_this
.
service
&&
_this
.
service
.
handleRequestData
instanceof
Function
&&
_this
.
service
.
handleRequestData
(
'transform'
,
_this
.
context
,
args
)){
return
_this
.
service
.
handleRequestData
(
'transform'
,
_this
.
context
,
args
)[
'data'
];
}
}
/**
* 关闭视图
*
* @param {any} args
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
closeView
(
args
:
any
):
void
{
let
_this
:
any
=
this
;
_this
.
$emit
(
'closeview'
,
[
args
]);
}
/**
* 计数器刷新
*
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
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
();
}
})
}
}
/**
* 接口实现
*
* @returns {any[]}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
getDatas
():
any
[]
{
if
(
!
this
.
panelData
)
{
return
[];
}
return
[
this
.
panelData
];
}
/**
* 接口实现
*
* @returns {*}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
getData
()
{
return
this
.
panelData
;
}
/**
* 父级部件引用
*
* @type {*}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
@
Prop
()
public
parentRef
?:
any
;
/**
* 面板数据对象
*
* @type {*}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
@
Prop
()
public
inputData
?:
any
;
/**
* 操作栏模型数据
*
* @type {*}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
@
Prop
()
public
actionModel
?:
any
;
/**
* UI数据对象
*
* @type {*}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
data
:
any
=
{};
/**
* 面板数据对象
*
* @type {*}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
panelData
:
any
=
null
;
/**
* 数据模型对象
*
* @type {TIMELINEITEMLAYOUTPANELModel}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
dataModel
:
TIMELINEITEMLAYOUTPANELModel
=
new
TIMELINEITEMLAYOUTPANELModel
();
/**
* 代码表服务对象
*
* @type {CodeListService}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
codeListService
:
CodeListService
=
new
CodeListService
({
$store
:
this
.
$store
});
/**
* 界面UI服务对象
*
* @type {IBIZBOOKUIService}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
appUIService
:
IBIZBOOKUIService
=
new
IBIZBOOKUIService
(
this
.
$store
);
/**
* 详情模型集合
*
* @type {*}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
detailsModel
:
any
=
{
container1
:
new
PanelContainerModel
({
caption
:
''
,
itemType
:
'CONTAINER'
,
visible
:
true
,
disabled
:
false
,
name
:
'container1'
,
panel
:
this
})
,
};
/**
* 值规则对象
*
* @type {*}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
rules
:
any
=
{
};
/**
* 监听数据对象
*
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
@
Watch
(
'inputData'
,{
immediate
:
true
,
deep
:
true
})
public
onInputDataChange
(
newVal
:
any
,
oldVal
:
any
){
if
(
newVal
){
this
.
computedUIData
(
newVal
);
this
.
panelData
=
Util
.
deepCopy
(
newVal
);
this
.
computeButtonState
(
newVal
);
this
.
panelLogic
({
name
:
''
,
newVal
:
null
,
oldVal
:
null
});
this
.
$forceUpdate
();
}
}
/**
* 计算UI展示数据
*
* @param codelistArray 代码表模型数组
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
computedUIData
(
newVal
:
any
){
if
((
this
.
dataModel
.
getDataItems
instanceof
Function
)
&&
this
.
dataModel
.
getDataItems
().
length
>
0
){
this
.
dataModel
.
getDataItems
().
forEach
((
item
:
any
)
=>
{
this
.
data
[
item
.
name
]
=
newVal
[
item
.
prop
];
})
}
}
/**
* 计算面板按钮权限状态
*
* @param {*} [data] 传入数据
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
computeButtonState
(
data
:
any
){
// 若为项布局面板,存在parentRef
if
(
this
.
parentRef
){
let
targetData
:
any
=
this
.
parentRef
.
transformData
(
data
);
if
(
this
.
detailsModel
&&
Object
.
keys
(
this
.
detailsModel
).
length
>
0
){
Object
.
keys
(
this
.
detailsModel
).
forEach
((
name
:
any
)
=>
{
if
(
this
.
detailsModel
[
name
]
&&
this
.
detailsModel
[
name
].
uiaction
&&
this
.
detailsModel
[
name
].
uiaction
.
dataaccaction
&&
Object
.
is
(
this
.
detailsModel
[
name
].
itemType
,
"BUTTON"
)){
this
.
detailsModel
[
name
].
isPower
=
true
;
let
tempUIAction
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
detailsModel
[
name
].
uiaction
));
let
result
:
any
[]
=
ViewTool
.
calcActionItemAuthState
(
targetData
,[
tempUIAction
],
this
.
appUIService
?
this
.
appUIService
:
null
);
this
.
detailsModel
[
name
].
visible
=
tempUIAction
.
visabled
;
this
.
detailsModel
[
name
].
disabled
=
tempUIAction
.
disabled
;
this
.
detailsModel
[
name
].
isPower
=
result
[
0
]
===
1
?
true
:
false
;
}
})
}
}
}
/**
* 界面行为
*
* @param {*} row
* @param {*} tag
* @param {*} $event
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
uiAction
(
row
:
any
,
tag
:
any
,
$event
:
any
)
{
}
/**
* 打开编辑数据视图
*
* @type {any}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
opendata
(
args
:
any
[],
fullargs
?:
any
[],
params
?:
any
,
$event
?:
any
,
xData
?:
any
){
if
(
this
.
parentRef
.
opendata
&&
this
.
parentRef
.
opendata
instanceof
Function
)
{
this
.
parentRef
.
opendata
(
args
,
fullargs
,
params
,
$event
,
xData
);
}
}
/**
* 打开新建数据视图
*
* @type {any}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
newdata
(
args
:
any
[],
fullargs
?:
any
[],
params
?:
any
,
$event
?:
any
,
xData
?:
any
)
{
if
(
this
.
parentRef
.
newdata
&&
this
.
parentRef
.
newdata
instanceof
Function
)
{
this
.
parentRef
.
newdata
(
args
,
fullargs
,
params
,
$event
,
xData
);
}
}
/**
* 删除
*
* @param {any[]} datas
* @returns {Promise<any>}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
async
remove
(
datas
:
any
[]):
Promise
<
any
>
{
if
(
this
.
parentRef
.
remove
&&
this
.
parentRef
.
remove
instanceof
Function
)
{
return
this
.
parentRef
.
remove
(
datas
);
}
}
/**
* 刷新
*
* @param {*} [args={}]
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
refresh
(
args
:
any
=
{})
{
if
(
this
.
parentRef
.
refresh
&&
this
.
parentRef
.
refresh
instanceof
Function
)
{
this
.
parentRef
.
refresh
(
args
);
}
}
/**
* 设置变更面板编辑项的值
*
* @param data 面板数据
* @param {{ name: string, value: any }} $event
* @returns {void}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
onPanelItemValueChange
(
data
:
any
,
$event
:
{
name
:
string
,
value
:
any
}):
void
{
if
(
!
$event
)
{
return
;
}
if
(
!
$event
.
name
||
Object
.
is
(
$event
.
name
,
''
)
||
!
data
.
hasOwnProperty
(
$event
.
name
))
{
return
;
}
data
[
$event
.
name
]
=
$event
.
value
;
this
.
panelEditItemChange
(
data
,
$event
.
name
,
$event
.
value
);
}
/**
* 面板编辑项值变化后续操作
*
* @public
* @param data 面板数据
* @param property 编辑项名
* @param value 编辑项值
* @returns {void}
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
panelEditItemChange
(
data
:
any
,
property
:
string
,
value
:
any
){
// 面板数据变化事件
if
((
this
.
dataModel
.
getDataItems
instanceof
Function
)
&&
this
.
dataModel
.
getDataItems
().
length
>
0
){
let
modelitem
=
this
.
dataModel
.
getDataItems
().
find
((
item
:
any
)
=>
{
return
item
.
name
===
property
;
})
if
(
modelitem
){
this
.
$emit
(
'panelDataChange'
,{[
modelitem
.
prop
]:
value
});
}
}
}
/**
* 分页切换事件
*
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
handleTabPanelClick
(
name
:
string
,
$event
:
any
){
this
.
detailsModel
[
name
].
clickPage
(
$event
.
name
);
}
/**
* 面板逻辑
*
* @public
* @param {{ name: string, newVal: any, oldVal: any }} { name, newVal, oldVal }
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public
panelLogic
({
name
,
newVal
,
oldVal
}:
{
name
:
string
,
newVal
:
any
,
oldVal
:
any
}):
void
{
}
}
</
script
>
<
style
lang=
'less'
>
@import './timelineitemlayoutpanel-panel.less';
</
style
>
app_Web/src/widgets/ibizbook/timelineitemlayoutpanel-panel/timelineitemlayoutpanel-panel-model.ts
0 → 100644
浏览文件 @
0c0eb1d2
/**
* TIMELINEITEMLAYOUTPANEL 部件模型
*
* @export
* @class TIMELINEITEMLAYOUTPANELModel
*/
export
default
class
TIMELINEITEMLAYOUTPANELModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof TIMELINEITEMLAYOUTPANELModel
*/
public
getDataItems
():
any
[]
{
return
[
]
}
}
\ No newline at end of file
app_Web/src/widgets/ibizbook/timelineitemlayoutpanel-panel/timelineitemlayoutpanel-panel-service.ts
0 → 100644
浏览文件 @
0c0eb1d2
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* TIMELINEITEMLAYOUTPANEL 部件服务对象
*
* @export
* @class TIMELINEITEMLAYOUTPANELService
*/
export
default
class
TIMELINEITEMLAYOUTPANELService
extends
ControlService
{
}
\ No newline at end of file
app_Web/src/widgets/ibizbook/timelineitemlayoutpanel-panel/timelineitemlayoutpanel-panel.less
0 → 100644
浏览文件 @
0c0eb1d2
// this is less
.app-layoutpanel {
height: 100%;
.app-layoutpanel-container {
padding: 6px;
}
.app-layoutpanel-tabpanel{
>.el-tabs {
>.el-.el-tabs__header{
margin: 0 0 10px;
}
.app-layoutpanel-tabpage{
padding: 6px;
}
}
}
.app-layoutpanel-button,.app-layoutpanel-conctrl,.app-layoutpanel-ctrlpos,.app-layoutpanel-field,.app-layoutpanel-rowitem,.app-layoutpanel-usercontrol{
padding: 6px;
}
.item-field{
padding: 0 4px;
display: flex;
>.item-field-label{
padding: 0 8px;
}
}
}
\ No newline at end of file
app_Web/src/widgets/ibizbook/timelineitemlayoutpanel-panel/timelineitemlayoutpanel-panel.vue
0 → 100644
浏览文件 @
0c0eb1d2
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
TIMELINEITEMLAYOUTPANELBase
from
'./timelineitemlayoutpanel-panel-base.vue'
;
@
Component
({
components
:
{
}
})
export
default
class
TIMELINEITEMLAYOUTPANEL
extends
TIMELINEITEMLAYOUTPANELBase
{
}
</
script
>
\ No newline at end of file
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录