Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
功
功能演示系统
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
示例
功能演示系统
提交
6d68cda5
提交
6d68cda5
编写于
11月 26, 2020
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ShineKOT 发布系统代码 [后台服务,演示应用]
上级
9dd88fda
变更
37
显示空白字符变更
内嵌
并排
正在显示
37 个修改的文件
包含
2135 行增加
和
56 行删除
+2135
-56
view-config.json
app_Web/public/assets/json/view-config.json
+8
-0
en-US.ts
app_Web/src/locale/lang/en-US.ts
+2
-0
zh-CN.ts
app_Web/src/locale/lang/zh-CN.ts
+2
-0
ibizbook_en_US.ts
...Web/src/locale/lanres/entities/ibizbook/ibizbook_en_US.ts
+9
-0
ibizbook_zh_CN.ts
...Web/src/locale/lanres/entities/ibizbook/ibizbook_zh_CN.ts
+9
-0
main-menu-appmenu.ts
app_Web/src/mock/app/main-menu-appmenu/main-menu-appmenu.ts
+38
-0
viewconfig.ts
app_Web/src/mock/viewconfig/viewconfig.ts
+8
-0
ibizbookgantt-view-base.vue
...ges/sample/ibizbookgantt-view/ibizbookgantt-view-base.vue
+619
-0
ibizbookgantt-view.less
...c/pages/sample/ibizbookgantt-view/ibizbookgantt-view.less
+11
-0
ibizbookgantt-view.vue
...rc/pages/sample/ibizbookgantt-view/ibizbookgantt-view.vue
+22
-0
page-register.ts
app_Web/src/pages/sample/index/page-register.ts
+1
-0
router.ts
app_Web/src/pages/sample/index/router.ts
+27
-0
state.ts
app_Web/src/store/modules/view-action/state.ts
+10
-0
ibizbook-ui-service-base.ts
app_Web/src/uiservice/ibizbook/ibizbook-ui-service-base.ts
+1
-0
main-menu-appmenu-base.vue
.../widgets/app/main-menu-appmenu/main-menu-appmenu-base.vue
+26
-0
main-menu-appmenu-model.ts
.../widgets/app/main-menu-appmenu/main-menu-appmenu-model.ts
+40
-0
internal-func-grid-base.vue
...s/ibizbook/internal-func-grid/internal-func-grid-base.vue
+5
-5
main2-grid-base.vue
app_Web/src/widgets/ibizbook/main2-grid/main2-grid-base.vue
+5
-5
main3-grid-base.vue
app_Web/src/widgets/ibizbook/main3-grid/main3-grid-base.vue
+5
-5
main4-grid-base.vue
app_Web/src/widgets/ibizbook/main4-grid/main4-grid-base.vue
+5
-5
main5-grid-base.vue
app_Web/src/widgets/ibizbook/main5-grid/main5-grid-base.vue
+5
-5
new-default-grid-base.vue
...dgets/ibizbook/new-default-grid/new-default-grid-base.vue
+5
-5
row-edit-grid-base.vue
...src/widgets/ibizbook/row-edit-grid/row-edit-grid-base.vue
+5
-5
row-rules-grid-base.vue
...c/widgets/ibizbook/row-rules-grid/row-rules-grid-base.vue
+5
-5
tree-table-treegridex-base.vue
...book/tree-table-treegridex/tree-table-treegridex-base.vue
+5
-5
update-default-grid-base.vue
...ibizbook/update-default-grid/update-default-grid-base.vue
+5
-5
usr-gantt-base.vue
app_Web/src/widgets/ibizbook/usr-gantt/usr-gantt-base.vue
+558
-0
usr-gantt-model.ts
app_Web/src/widgets/ibizbook/usr-gantt/usr-gantt-model.ts
+61
-0
usr-gantt-service.ts
app_Web/src/widgets/ibizbook/usr-gantt/usr-gantt-service.ts
+596
-0
usr-gantt.less
app_Web/src/widgets/ibizbook/usr-gantt/usr-gantt.less
+17
-0
usr-gantt.vue
app_Web/src/widgets/ibizbook/usr-gantt/usr-gantt.vue
+14
-0
main-grid-base.vue
app_Web/src/widgets/ibizorder/main-grid/main-grid-base.vue
+1
-1
uipart-0015-grid-base.vue
...gets/ibizorder/uipart-0015-grid/uipart-0015-grid-base.vue
+1
-1
uipart-0017-grid-base.vue
...gets/ibizorder/uipart-0017-grid/uipart-0017-grid-base.vue
+1
-1
uipart-0018-grid-base.vue
...gets/ibizorder/uipart-0018-grid/uipart-0018-grid-base.vue
+1
-1
h2_table.xml
demo-core/src/main/resources/liquibase/h2_table.xml
+1
-1
systemResource.json
demo-core/src/main/resources/permission/systemResource.json
+1
-1
未找到文件。
app_Web/public/assets/json/view-config.json
浏览文件 @
6d68cda5
...
...
@@ -1103,6 +1103,14 @@
"viewname"
:
"IBIZOrderSGridView2"
,
"viewtag"
:
"e7441fa67d425df343d996c745fb5d6b"
},
"ibizbookganttview"
:
{
"title"
:
"图书甘特视图"
,
"caption"
:
"图书"
,
"viewtype"
:
"DEGANTTVIEW"
,
"viewmodule"
:
"Sample"
,
"viewname"
:
"IBIZBOOKGanttView"
,
"viewtag"
:
"e92ac401e96f4e17763322eca8355c30"
},
"ibizbookusr2dataview"
:
{
"title"
:
"图书数据视图(自动分组)"
,
"caption"
:
"图书"
,
...
...
app_Web/src/locale/lang/en-US.ts
浏览文件 @
6d68cda5
...
...
@@ -235,6 +235,8 @@ export default {
menuitem102
:
"看板内置功能"
,
menuitem104
:
"代码表分组"
,
menuitem105
:
"嵌入视图面板"
,
menuitem111
:
"甘特图"
,
menuitem112
:
"甘特图"
,
menuitem5
:
"视图"
,
menuitem9
:
"列表视图"
,
menuitem19
:
"常规表格视图"
,
...
...
app_Web/src/locale/lang/zh-CN.ts
浏览文件 @
6d68cda5
...
...
@@ -235,6 +235,8 @@ export default {
menuitem102
:
"看板内置功能"
,
menuitem104
:
"代码表分组"
,
menuitem105
:
"嵌入视图面板"
,
menuitem111
:
"甘特图"
,
menuitem112
:
"甘特图"
,
menuitem5
:
"视图"
,
menuitem9
:
"列表视图"
,
menuitem19
:
"常规表格视图"
,
...
...
app_Web/src/locale/lanres/entities/ibizbook/ibizbook_en_US.ts
浏览文件 @
6d68cda5
...
...
@@ -114,6 +114,10 @@ export default {
caption
:
"图书"
,
title
:
"图书表格视图(更新默认值)"
,
},
ganttview
:
{
caption
:
"图书"
,
title
:
"图书甘特视图"
,
},
usr2dataview
:
{
caption
:
"图书"
,
title
:
"图书数据视图(自动分组)"
,
...
...
@@ -406,6 +410,11 @@ export default {
remove
:
"Remove"
,
},
},
usr_gantt
:
{
nodata
:
""
,
uiactions
:
{
},
},
treetable_treegridex
:
{
nodata
:
""
,
uiactions
:
{
...
...
app_Web/src/locale/lanres/entities/ibizbook/ibizbook_zh_CN.ts
浏览文件 @
6d68cda5
...
...
@@ -113,6 +113,10 @@ export default {
caption
:
"图书"
,
title
:
"图书表格视图(更新默认值)"
,
},
ganttview
:
{
caption
:
"图书"
,
title
:
"图书甘特视图"
,
},
usr2dataview
:
{
caption
:
"图书"
,
title
:
"图书数据视图(自动分组)"
,
...
...
@@ -405,6 +409,11 @@ export default {
remove
:
"删除"
,
},
},
usr_gantt
:
{
nodata
:
""
,
uiactions
:
{
},
},
treetable_treegridex
:
{
nodata
:
""
,
uiactions
:
{
...
...
app_Web/src/mock/app/main-menu-appmenu/main-menu-appmenu.ts
浏览文件 @
6d68cda5
...
...
@@ -1325,6 +1325,44 @@ mock.onGet('v7/main-menuappmenu').reply((config: any) => {
resourcetag
:
''
,
},
],
},
{
id
:
'E5EAA3AF-BF88-496E-A1B1-31DAB9A4D309'
,
name
:
'menuitem111'
,
text
:
'甘特图'
,
type
:
'MENUITEM'
,
counterid
:
''
,
tooltip
:
'甘特图'
,
expanded
:
false
,
separator
:
false
,
hidden
:
false
,
hidesidebar
:
false
,
opendefault
:
false
,
iconcls
:
''
,
icon
:
''
,
textcls
:
''
,
appfunctag
:
''
,
resourcetag
:
''
,
items
:
[
{
id
:
'2CEB1C44-7FC8-4C5C-A1F5-98AEF2AA01C9'
,
name
:
'menuitem112'
,
text
:
'甘特图'
,
type
:
'MENUITEM'
,
counterid
:
''
,
tooltip
:
'甘特图'
,
expanded
:
false
,
separator
:
false
,
hidden
:
false
,
hidesidebar
:
false
,
opendefault
:
false
,
iconcls
:
''
,
icon
:
''
,
textcls
:
''
,
appfunctag
:
'AppFunc33'
,
resourcetag
:
''
,
},
],
},
],
},
...
...
app_Web/src/mock/viewconfig/viewconfig.ts
浏览文件 @
6d68cda5
...
...
@@ -1111,6 +1111,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname"
:
"IBIZOrderSGridView2"
,
"viewtag"
:
"e7441fa67d425df343d996c745fb5d6b"
},
"ibizbookganttview"
:
{
"title"
:
"图书甘特视图"
,
"caption"
:
"图书"
,
"viewtype"
:
"DEGANTTVIEW"
,
"viewmodule"
:
"Sample"
,
"viewname"
:
"IBIZBOOKGanttView"
,
"viewtag"
:
"e92ac401e96f4e17763322eca8355c30"
},
"ibizbookusr2dataview"
:
{
"title"
:
"图书数据视图(自动分组)"
,
"caption"
:
"图书"
,
...
...
app_Web/src/pages/sample/ibizbookgantt-view/ibizbookgantt-view-base.vue
0 → 100644
浏览文件 @
6d68cda5
<
template
>
<div
class=
"view-container deganttview ibizbookgantt-view"
>
<app-studioaction
:viewTitle=
"$t(model.srfCaption)"
viewName=
"ibizbookganttview"
></app-studioaction>
<card
class=
'view-card view-no-toolbar'
:disHover=
"true"
:padding=
"0"
:bordered=
"false"
>
<div
slot=
'title'
class=
"header-container"
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srfCaption
)
}}
</span>
</div>
<div
class=
'view-top-messages'
>
</div>
<div
class=
"content-container"
>
<div
class=
'view-body-messages'
>
</div>
<view
_gantt
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:showBusyIndicator=
"true"
name=
"gantt"
ref=
'gantt'
@
closeview=
"closeView($event)"
>
</view
_gantt
>
</div>
<div
class=
'view-bottom-messages'
>
</div>
</card>
</div>
</
template
>
<
script
lang=
'tsx'
>
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'
;
import
IBIZBOOKService
from
'@/service/ibizbook/ibizbook-service'
;
import
IBIZBOOKAuthService
from
'@/authservice/ibizbook/ibizbook-auth-service'
;
import
IBIZBOOKUIService
from
'@/uiservice/ibizbook/ibizbook-ui-service'
;
@
Component
({
components
:
{
},
})
export
default
class
IBIZBOOKGanttViewBase
extends
Vue
{
/**
* 实体服务对象
*
* @type {IBIZBOOKService}
* @memberof IBIZBOOKGanttViewBase
*/
public
appEntityService
:
IBIZBOOKService
=
new
IBIZBOOKService
;
/**
* 实体UI服务对象
*
* @type IBIZBOOKUIService
* @memberof IBIZBOOKGanttViewBase
*/
public
appUIService
:
IBIZBOOKUIService
=
new
IBIZBOOKUIService
(
this
.
$store
);
/**
* 数据变化
*
* @param {*} val
* @returns {*}
* @memberof IBIZBOOKGanttViewBase
*/
@
Emit
()
public
viewDatasChange
(
val
:
any
):
any
{
return
val
;
}
/**
* 传入视图上下文
*
* @type {string}
* @memberof IBIZBOOKGanttViewBase
*/
@
Prop
()
public
viewdata
!
:
string
;
/**
* 传入视图参数
*
* @type {string}
* @memberof IBIZBOOKGanttViewBase
*/
@
Prop
()
public
viewparam
!
:
string
;
/**
* 视图默认使用
*
* @type {boolean}
* @memberof IBIZBOOKGanttViewBase
*/
@
Prop
({
default
:
true
})
public
viewDefaultUsage
!
:
boolean
;
/**
* 视图默认使用
*
* @type {string}
* @memberof IBIZBOOKGanttViewBase
*/
@
Inject
({
from
:
'navModel'
,
default
:
'tab'
})
public
navModel
!
:
string
;
/**
* 视图标识
*
* @type {string}
* @memberof IBIZBOOKGanttViewBase
*/
public
viewtag
:
string
=
'e92ac401e96f4e17763322eca8355c30'
;
/**
* 自定义视图导航上下文集合
*
* @type {*}
* @memberof IBIZBOOKGanttViewBase
*/
public
customViewNavContexts
:
any
=
{
};
/**
* 自定义视图导航参数集合
*
* @type {*}
* @memberof IBIZBOOKGanttViewBase
*/
public
customViewParams
:
any
=
{
};
/**
* 视图模型数据
*
* @type {*}
* @memberof IBIZBOOKGanttViewBase
*/
public
model
:
any
=
{
srfCaption
:
'entities.ibizbook.views.ganttview.caption'
,
srfTitle
:
'entities.ibizbook.views.ganttview.title'
,
srfSubTitle
:
'entities.ibizbook.views.ganttview.subtitle'
,
dataInfo
:
''
}
/**
* 视图参数变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof IBIZBOOKGanttViewBase
*/
@
Watch
(
'viewparam'
,{
immediate
:
true
,
deep
:
true
})
onParamData
(
newVal
:
any
,
oldVal
:
any
)
{
if
(
newVal
){
this
.
viewparams
=
{};
if
(
typeof
newVal
==
'string'
)
{
Object
.
assign
(
this
.
viewparams
,
JSON
.
parse
(
this
.
viewparam
));
}
else
{
this
.
viewparams
=
Util
.
deepCopy
(
this
.
viewparam
);
}
}
}
/**
* 处理应用上下文变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof IBIZBOOKGanttViewBase
*/
@
Watch
(
'viewdata'
)
onViewData
(
newVal
:
any
,
oldVal
:
any
)
{
const
_this
:
any
=
this
;
if
(
!
Object
.
is
(
newVal
,
oldVal
)
&&
_this
.
engine
)
{
this
.
$nextTick
(()
=>
{
_this
.
parseViewParam
();
_this
.
engine
.
load
();
});
}
else
if
(
!
Object
.
is
(
newVal
,
oldVal
)
&&
_this
.
refresh
&&
_this
.
refresh
instanceof
Function
)
{
_this
.
refresh
();
}
}
/**
* 容器模型
*
* @type {*}
* @memberof IBIZBOOKGanttViewBase
*/
public
containerModel
:
any
=
{
view_gantt
:
{
name
:
'gantt'
,
type
:
'GANTT'
},
};
/**
* 视图刷新
*
* @param {*} args
* @memberof IBIZBOOKGanttViewBase
*/
public
refresh
(
args
?:
any
):
void
{
const
refs
:
any
=
this
.
$refs
;
if
(
refs
&&
refs
.
gantt
)
{
refs
.
gantt
.
refresh
();
}
}
/**
* 计数器刷新
*
* @memberof IBIZBOOKGanttViewBase
*/
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 {Subject<{action: string, data: any}>}
* @memberof IBIZBOOKGanttViewBase
*/
public
viewState
:
Subject
<
ViewState
>
=
new
Subject
();
/**
* 引擎初始化
*
* @public
* @memberof IBIZBOOKGanttViewBase
*/
public
engineInit
():
void
{
}
/**
* 应用导航服务
*
* @type {*}
* @memberof IBIZBOOKGanttViewBase
*/
public
navDataService
=
NavDataService
.
getInstance
(
this
.
$store
);
/**
* 导航服务事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof IBIZBOOKGanttViewBase
*/
public
serviceStateEvent
:
Subscription
|
undefined
;
/**
* 门户部件状态对象
*
* @type {*}
* @memberof IBIZBOOKGanttViewBase
*/
@
Prop
()
public
portletState
?:
any
;
/**
* 门户部件状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof IBIZBOOKGanttViewBase
*/
public
portletStateEvent
:
Subscription
|
undefined
;
/**
* 应用上下文
*
* @type {*}
* @memberof IBIZBOOKGanttViewBase
*/
public
context
:
any
=
{};
/**
* 视图参数
*
* @type {*}
* @memberof IBIZBOOKGanttViewBase
*/
public
viewparams
:
any
=
{};
/**
* 视图缓存数据
*
* @type {*}
* @memberof IBIZBOOKGanttViewBase
*/
public
viewCacheData
:
any
;
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof IBIZBOOKGanttViewBase
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 解析视图参数
*
* @public
* @memberof IBIZBOOKGanttViewBase
*/
public
parseViewParam
(
inputvalue
:
any
=
null
):
void
{
for
(
let
key
in
this
.
context
){
delete
this
.
context
[
key
];
}
if
(
this
.
$store
.
getters
.
getAppData
()
&&
this
.
$store
.
getters
.
getAppData
().
context
){
Object
.
assign
(
this
.
context
,
this
.
$store
.
getters
.
getAppData
().
context
);
}
if
(
!
this
.
viewDefaultUsage
&&
this
.
viewdata
&&
!
Object
.
is
(
this
.
viewdata
,
''
))
{
if
(
typeof
this
.
viewdata
==
'string'
)
{
Object
.
assign
(
this
.
context
,
JSON
.
parse
(
this
.
viewdata
));
}
if
(
this
.
context
&&
this
.
context
.
srfparentdename
){
Object
.
assign
(
this
.
viewparams
,{
srfparentdename
:
this
.
context
.
srfparentdename
});
}
if
(
this
.
context
&&
this
.
context
.
srfparentkey
){
Object
.
assign
(
this
.
viewparams
,{
srfparentkey
:
this
.
context
.
srfparentkey
});
}
this
.
handleCustomViewData
();
return
;
}
const
path
=
(
this
.
$route
.
matched
[
this
.
$route
.
matched
.
length
-
1
]).
path
;
const
keys
:
Array
<
any
>
=
[];
const
curReg
=
this
.
$pathToRegExp
.
pathToRegexp
(
path
,
keys
);
const
matchArray
=
curReg
.
exec
(
this
.
$route
.
path
);
let
tempValue
:
Object
=
{};
keys
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
Object
.
defineProperty
(
tempValue
,
item
.
name
,
{
enumerable
:
true
,
value
:
matchArray
[
index
+
1
]
});
});
this
.
$viewTool
.
formatRouteParams
(
tempValue
,
this
.
$route
,
this
.
context
,
this
.
viewparams
);
if
(
inputvalue
){
Object
.
assign
(
this
.
context
,{
'ibizbook'
:
inputvalue
});
}
//初始化视图唯一标识
Object
.
assign
(
this
.
context
,{
srfsessionid
:
this
.
$util
.
createUUID
()});
this
.
handleCustomViewData
();
//初始化导航数据
this
.
initNavDataWithRoute
();
}
/**
* 处理自定义视图数据
*
* @memberof IBIZBOOKGanttViewBase
*/
public
handleCustomViewData
(){
if
(
Object
.
keys
(
this
.
customViewNavContexts
).
length
>
0
){
Object
.
keys
(
this
.
customViewNavContexts
).
forEach
((
item
:
any
)
=>
{
let
tempContext
:
any
=
{};
let
curNavContext
:
any
=
this
.
customViewNavContexts
[
item
];
this
.
handleCustomDataLogic
(
curNavContext
,
tempContext
,
item
);
Object
.
assign
(
this
.
context
,
tempContext
);
})
}
if
(
Object
.
keys
(
this
.
customViewParams
).
length
>
0
){
Object
.
keys
(
this
.
customViewParams
).
forEach
((
item
:
any
)
=>
{
let
tempParam
:
any
=
{};
let
curNavParam
:
any
=
this
.
customViewParams
[
item
];
this
.
handleCustomDataLogic
(
curNavParam
,
tempParam
,
item
);
Object
.
assign
(
this
.
viewparams
,
tempParam
);
})
}
}
/**
* 处理自定义视图数据逻辑
*
* @memberof IBIZBOOKGanttViewBase
*/
public
handleCustomDataLogic
(
curNavData
:
any
,
tempData
:
any
,
item
:
string
){
// 直接值直接赋值
if
(
curNavData
.
isRawValue
){
if
(
Object
.
is
(
curNavData
.
value
,
"null"
)
||
Object
.
is
(
curNavData
.
value
,
""
)){
Object
.
defineProperty
(
tempData
,
item
.
toLowerCase
(),
{
value
:
null
,
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
else
{
Object
.
defineProperty
(
tempData
,
item
.
toLowerCase
(),
{
value
:
curNavData
.
value
,
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
}
else
{
// 先从导航上下文取数,没有再从导航参数(URL)取数,如果导航上下文和导航参数都没有则为null
if
(
this
.
context
[(
curNavData
.
value
).
toLowerCase
()]
!=
null
){
Object
.
defineProperty
(
tempData
,
item
.
toLowerCase
(),
{
value
:
this
.
context
[(
curNavData
.
value
).
toLowerCase
()],
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
else
{
if
(
this
.
viewparams
[(
curNavData
.
value
).
toLowerCase
()]
!=
null
){
Object
.
defineProperty
(
tempData
,
item
.
toLowerCase
(),
{
value
:
this
.
viewparams
[(
curNavData
.
value
).
toLowerCase
()],
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
else
{
Object
.
defineProperty
(
tempData
,
item
.
toLowerCase
(),
{
value
:
null
,
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
}
}
}
/**
* 初始化导航数据(路由模式)
*
* @memberof IBIZBOOKGanttViewBase
*/
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavData
({
id
:
'ibizbookgantt-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
ibizbook
,
title
:
this
.
$t
(
this
.
model
.
srfCaption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
/**
* 初始化导航数据(分页模式)
*
* @memberof IBIZBOOKGanttViewBase
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'ibizbookgantt-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
ibizbook
,
title
:
this
.
$t
(
this
.
model
.
srfCaption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
/**
* Vue声明周期
*
* @memberof IBIZBOOKGanttViewBase
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof IBIZBOOKGanttViewBase
*/
public
afterCreated
(){
let
_this
:
any
=
this
;
const
secondtag
=
_this
.
$util
.
createUUID
();
_this
.
$store
.
commit
(
'viewaction/createdView'
,
{
viewtag
:
_this
.
viewtag
,
secondtag
:
secondtag
});
_this
.
viewtag
=
secondtag
;
_this
.
parseViewParam
();
_this
.
serviceStateEvent
=
_this
.
navDataService
.
serviceState
.
subscribe
(({
action
,
name
,
data
}:{
action
:
string
,
name
:
any
,
data
:
any
})
=>
{
if
(
!
Object
.
is
(
name
,
'ibizbookgantt-view'
)){
return
;
}
if
(
Object
.
is
(
action
,
'viewrefresh'
))
{
_this
.
$nextTick
(()
=>
{
_this
.
parseViewParam
(
data
);
if
(
_this
.
engine
){
_this
.
engine
.
load
();
}
});
}
});
if
(
_this
.
portletState
){
_this
.
portletStateEvent
=
_this
.
portletState
.
subscribe
((
res
:
any
)
=>
{
if
(
!
Object
.
is
(
res
.
name
,
'IBIZBOOKGanttView'
)){
return
;
}
if
(
Object
.
is
(
res
.
action
,
'refresh'
)
&&
_this
.
refresh
&&
_this
.
refresh
instanceof
Function
){
_this
.
refresh
();
}
})
}
}
/**
* 销毁之前
*
* @memberof IBIZBOOKGanttViewBase
*/
public
beforeDestroy
()
{
this
.
$store
.
commit
(
'viewaction/removeView'
,
this
.
viewtag
);
}
/**
* Vue声明周期(组件初始化完毕)
*
* @memberof IBIZBOOKGanttViewBase
*/
public
mounted
()
{
this
.
afterMounted
();
}
/**
* 执行mounted后的逻辑
*
* @memberof IBIZBOOKGanttViewBase
*/
public
afterMounted
(){
const
_this
:
any
=
this
;
_this
.
engineInit
();
if
(
_this
.
loadModel
&&
_this
.
loadModel
instanceof
Function
)
{
_this
.
loadModel
();
}
if
(
this
.
isLoadDefault
){
this
.
viewState
.
next
({
tag
:
'gantt'
,
action
:
'load'
,
data
:
this
.
viewparams
});
}
}
/**
* 关闭视图
*
* @param {any[]} args
* @memberof IBIZBOOKGanttViewBase
*/
public
closeView
(
args
:
any
[]):
void
{
let
_view
:
any
=
this
;
if
(
_view
.
viewdata
)
{
_view
.
$emit
(
'viewdataschange'
,
[
args
]);
_view
.
$emit
(
'close'
,
[
args
]);
}
else
if
(
_view
.
$tabPageExp
)
{
_view
.
$tabPageExp
.
onClose
(
_view
.
$route
.
fullPath
);
}
}
/**
* 销毁视图回调
*
* @memberof IBIZBOOKGanttViewBase
*/
public
destroyed
(){
this
.
afterDestroyed
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof IBIZBOOKGanttViewBase
*/
public
afterDestroyed
(){
if
(
this
.
viewDefaultUsage
){
let
localStoreLength
=
Object
.
keys
(
localStorage
);
if
(
localStoreLength
.
length
>
0
){
localStoreLength
.
forEach
((
item
:
string
)
=>
{
if
(
item
.
startsWith
(
this
.
context
.
srfsessionid
)){
localStorage
.
removeItem
(
item
);
}
})
}
if
(
Object
.
is
(
this
.
navModel
,
"tab"
)){
this
.
navDataService
.
removeNavDataByTag
(
this
.
viewtag
);
}
if
(
this
.
serviceStateEvent
)
{
this
.
serviceStateEvent
.
unsubscribe
();
}
}
// 销毁计数器定时器
if
(
this
.
counterServiceArray
&&
this
.
counterServiceArray
.
length
>
0
){
this
.
counterServiceArray
.
forEach
((
item
:
any
)
=>
{
if
(
item
.
destroyCounter
&&
item
.
destroyCounter
instanceof
Function
){
item
.
destroyCounter
();
}
})
}
if
(
this
.
portletStateEvent
){
this
.
portletStateEvent
.
unsubscribe
();
}
}
/**
* 视图默认加载
*
* @memberof IBIZBOOKGanttViewBase
*/
public
isLoadDefault
:
boolean
=
true
;
}
</
script
>
<
style
lang=
'less'
>
@import './ibizbookgantt-view.less';
</
style
>
\ No newline at end of file
app_Web/src/pages/sample/ibizbookgantt-view/ibizbookgantt-view.less
0 → 100644
浏览文件 @
6d68cda5
.ibizbookgantt-view{
position: relative;
}
.ibizbookgantt-view {
> .view-card > .ivu-card-body > .content-container > .gantt {
overflow: auto;
}
}
app_Web/src/pages/sample/ibizbookgantt-view/ibizbookgantt-view.vue
0 → 100644
浏览文件 @
6d68cda5
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
IBIZBOOKGanttViewBase
from
'./ibizbookgantt-view-base.vue'
;
import
view_gantt
from
'@widgets/ibizbook/usr-gantt/usr-gantt.vue'
;
@
Component
({
components
:
{
view_gantt
,
},
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
});
});
},
})
export
default
class
IBIZBOOKGanttView
extends
IBIZBOOKGanttViewBase
{
}
</
script
>
\ No newline at end of file
app_Web/src/pages/sample/index/page-register.ts
浏览文件 @
6d68cda5
...
...
@@ -105,6 +105,7 @@ export const PageComponents = {
Vue
.
component
(
'ibizsample0002-grid-view'
,
()
=>
import
(
'@pages/sample/ibizsample0002-grid-view/ibizsample0002-grid-view.vue'
));
Vue
.
component
(
'ibizbookinter-func-kan-ban-view'
,
()
=>
import
(
'@pages/sample/ibizbookinter-func-kan-ban-view/ibizbookinter-func-kan-ban-view.vue'
));
Vue
.
component
(
'ibizbookrow-edit-grid-view'
,
()
=>
import
(
'@pages/sample/ibizbookrow-edit-grid-view/ibizbookrow-edit-grid-view.vue'
));
Vue
.
component
(
'ibizbookgantt-view'
,
()
=>
import
(
'@pages/sample/ibizbookgantt-view/ibizbookgantt-view.vue'
));
Vue
.
component
(
'ibizhardware-index-pickup-view'
,
()
=>
import
(
'@pages/sample/ibizhardware-index-pickup-view/ibizhardware-index-pickup-view.vue'
));
Vue
.
component
(
'ibizhardware-grid-view9'
,
()
=>
import
(
'@pages/sample/ibizhardware-grid-view9/ibizhardware-grid-view9.vue'
));
Vue
.
component
(
'ibizorder-sf3-edit-view'
,
()
=>
import
(
'@pages/sample/ibizorder-sf3-edit-view/ibizorder-sf3-edit-view.vue'
));
...
...
app_Web/src/pages/sample/index/router.ts
浏览文件 @
6d68cda5
...
...
@@ -1550,6 +1550,20 @@ const router = new Router({
},
component
:
()
=>
import
(
'@pages/sample/ibizbookrow-edit-grid-view/ibizbookrow-edit-grid-view.vue'
),
},
{
path
:
'ibizbooks/:ibizbook?/ganttview/:ganttview?'
,
meta
:
{
caption
:
'entities.ibizbook.views.ganttview.caption'
,
info
:
''
,
parameters
:
[
{
pathName
:
'index'
,
parameterName
:
'index'
},
{
pathName
:
'ibizbooks'
,
parameterName
:
'ibizbook'
},
{
pathName
:
'ganttview'
,
parameterName
:
'ganttview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sample/ibizbookgantt-view/ibizbookgantt-view.vue'
),
},
{
path
:
'ibizhardwares/:ibizhardware?/indexpickupview/:indexpickupview?'
,
meta
:
{
...
...
@@ -3764,6 +3778,19 @@ const router = new Router({
},
component
:
()
=>
import
(
'@pages/sample/ibizorder-sgrid-view2/ibizorder-sgrid-view2.vue'
),
},
{
path
:
'/ibizbooks/:ibizbook?/ganttview/:ganttview?'
,
meta
:
{
caption
:
'entities.ibizbook.views.ganttview.caption'
,
info
:
''
,
parameters
:
[
{
pathName
:
'ibizbooks'
,
parameterName
:
'ibizbook'
},
{
pathName
:
'ganttview'
,
parameterName
:
'ganttview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sample/ibizbookgantt-view/ibizbookgantt-view.vue'
),
},
{
path
:
'/ibizbooks/:ibizbook?/usr2dataview/:usr2dataview?'
,
meta
:
{
...
...
app_Web/src/store/modules/view-action/state.ts
浏览文件 @
6d68cda5
...
...
@@ -192,6 +192,7 @@ export const viewstate: any = {
'98865bf786ea85b14932dd5e48a74983'
,
'b1591dc4d651536bceb32b60310fd2a5'
,
'19d36909f837de28880553dc9a190922'
,
'e92ac401e96f4e17763322eca8355c30'
,
'bc76c982dd2264463427eb57e9ed3fba'
,
'3ebf0cd640e39a4e7efe30ec1cf32b43'
,
'9f80ed66360fbbb9bc57c575fdd8814f'
,
...
...
@@ -1373,6 +1374,15 @@ export const viewstate: any = {
'f90fa878f2ed0eb4e27353786b10c3f4'
,
],
},
{
viewtag
:
'e92ac401e96f4e17763322eca8355c30'
,
viewmodule
:
'Sample'
,
viewname
:
'IBIZBOOKGanttView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
],
},
{
viewtag
:
'e9b54ef29b192ecd2da05ff9570eb4d5'
,
viewmodule
:
'Sample'
,
...
...
app_Web/src/uiservice/ibizbook/ibizbook-ui-service-base.ts
浏览文件 @
6d68cda5
...
...
@@ -120,6 +120,7 @@ export default class IBIZBOOKUIServiceBase extends UIService {
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'interfunceditview'
,
srfappde
:
'ibizbooks'
,
component
:
'ibizbookinter-func-edit-view'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'usr3dataview'
,
srfappde
:
'ibizbooks'
,
component
:
'ibizbookusr3-data-view'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'updatedefaultgridview'
,
srfappde
:
'ibizbooks'
,
component
:
'ibizbookupdate-default-grid-view'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'ganttview'
,
srfappde
:
'ibizbooks'
,
component
:
'ibizbookgantt-view'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'usr2dataview'
,
srfappde
:
'ibizbooks'
,
component
:
'ibizbookusr2-data-view'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'groupbycodelistlistview'
,
srfappde
:
'ibizbooks'
,
component
:
'ibizbookgroup-by-codelist-list-view'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'calendarview'
,
srfappde
:
'ibizbooks'
,
component
:
'ibizbookcalendar-view'
});
...
...
app_Web/src/widgets/app/main-menu-appmenu/main-menu-appmenu-base.vue
浏览文件 @
6d68cda5
...
...
@@ -518,6 +518,9 @@ export default class MainMenuBase extends Vue implements ControlInterface {
case
'Auto308'
:
this
.
clickAuto308
(
item
);
return
;
case
'AppFunc33'
:
this
.
clickAppFunc33
(
item
);
return
;
case
'Auto81'
:
this
.
clickAuto81
(
item
);
return
;
...
...
@@ -788,6 +791,29 @@ export default class MainMenuBase extends Vue implements ControlInterface {
})
}
/**
* 功能名称
*
* @param {*} [item={}]
* @memberof MainMenu
*/
public
clickAppFunc33
(
item
:
any
=
{})
{
const
viewparam
:
any
=
{};
Object
.
assign
(
viewparam
,
{});
const
deResParameters
:
any
[]
=
[];
const
parameters
:
any
[]
=
[
{
pathName
:
'ibizbooks'
,
parameterName
:
'ibizbook'
},
{
pathName
:
'ganttview'
,
parameterName
:
'ganttview'
},
];
const
path
:
string
=
this
.
$viewTool
.
buildUpRoutePath
(
this
.
$route
,
{},
deResParameters
,
parameters
,
[],
viewparam
);
if
(
Object
.
is
(
this
.
$route
.
fullPath
,
path
)){
return
;
}
this
.
$nextTick
(
function
(){
this
.
$router
.
push
(
path
);
})
}
/**
* 动态必填
*
...
...
app_Web/src/widgets/app/main-menu-appmenu/main-menu-appmenu-model.ts
浏览文件 @
6d68cda5
...
...
@@ -1401,6 +1401,46 @@ export default class MainMenuModel {
authtag
:
'Web-MainMenu-menuitem105'
,
},
],
},
{
id
:
'E5EAA3AF-BF88-496E-A1B1-31DAB9A4D309'
,
name
:
'menuitem111'
,
text
:
'甘特图'
,
type
:
'MENUITEM'
,
counterid
:
''
,
tooltip
:
'甘特图'
,
expanded
:
false
,
separator
:
false
,
hidden
:
false
,
hidesidebar
:
false
,
opendefault
:
false
,
iconcls
:
''
,
icon
:
''
,
textcls
:
''
,
appfunctag
:
''
,
resourcetag
:
''
,
authtag
:
'Web-MainMenu-menuitem111'
,
items
:
[
{
id
:
'2CEB1C44-7FC8-4C5C-A1F5-98AEF2AA01C9'
,
name
:
'menuitem112'
,
text
:
'甘特图'
,
type
:
'MENUITEM'
,
counterid
:
''
,
tooltip
:
'甘特图'
,
expanded
:
false
,
separator
:
false
,
hidden
:
false
,
hidesidebar
:
false
,
opendefault
:
false
,
iconcls
:
''
,
icon
:
''
,
textcls
:
''
,
appfunctag
:
'AppFunc33'
,
resourcetag
:
''
,
authtag
:
'Web-MainMenu-menuitem112'
,
},
],
},
],
},
...
...
app_Web/src/widgets/ibizbook/internal-func-grid/internal-func-grid-base.vue
浏览文件 @
6d68cda5
...
...
@@ -1068,16 +1068,16 @@ export default class InternalFuncBase extends Vue implements ControlInterface {
serviceName
:
'ibizbook'
,
appDeLogicName
:
'图书'
,
importData
:{
"PRICE"
:{
"headername"
:
"图书价格"
,
"isuniqueitem"
:
false
,
"name"
:
"price"
,
"order"
:
1000
},
"BOOKNUMBER"
:{
"headername"
:
"图书数量"
,
"isuniqueitem"
:
false
,
"name"
:
"booknumber"
,
"order"
:
1000
},
"CREATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"建立人"
,
"isuniqueitem"
:
false
,
"name"
:
"createman"
,
"order"
:
1000
},
"CREATEDATE"
:{
"headername"
:
"建立时间"
,
"isuniqueitem"
:
false
,
"name"
:
"createdate"
,
"order"
:
1000
},
"IBIZBOOKNAME"
:{
"headername"
:
"图书名称"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizbookname"
,
"order"
:
1000
},
"PRESS"
:{
"headername"
:
"图书出版社"
,
"isuniqueitem"
:
false
,
"name"
:
"press"
,
"order"
:
1000
},
"UPDATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"更新人"
,
"isuniqueitem"
:
false
,
"name"
:
"updateman"
,
"order"
:
1000
},
"AUTHOR"
:{
"headername"
:
"图书作者"
,
"isuniqueitem"
:
false
,
"name"
:
"author"
,
"order"
:
1000
},
"PRICE"
:{
"headername"
:
"图书价格"
,
"isuniqueitem"
:
false
,
"name"
:
"price"
,
"order"
:
1000
},
"UPDATEDATE"
:{
"headername"
:
"更新时间"
,
"isuniqueitem"
:
false
,
"name"
:
"updatedate"
,
"order"
:
1000
},
"BOOKNUMBER"
:{
"headername"
:
"图书数量"
,
"isuniqueitem"
:
false
,
"name"
:
"booknumber"
,
"order"
:
1000
},
"CREATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"建立人"
,
"isuniqueitem"
:
false
,
"name"
:
"createman"
,
"order"
:
1000
},
"IBIZBOOKID"
:{
"headername"
:
"图书标识"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizbookid"
,
"order"
:
1000
},
"PRESS"
:{
"headername"
:
"图书出版社"
,
"isuniqueitem"
:
false
,
"name"
:
"press"
,
"order"
:
1000
},
"AUTHOR"
:{
"headername"
:
"图书作者"
,
"isuniqueitem"
:
false
,
"name"
:
"author"
,
"order"
:
1000
},
"TYPE"
:{
"headername"
:
"图书类型"
,
"isuniqueitem"
:
false
,
"name"
:
"type"
,
"order"
:
1000
}
}
}
...
...
app_Web/src/widgets/ibizbook/main2-grid/main2-grid-base.vue
浏览文件 @
6d68cda5
...
...
@@ -1079,16 +1079,16 @@ export default class Main2Base extends Vue implements ControlInterface {
serviceName
:
'ibizbook'
,
appDeLogicName
:
'图书'
,
importData
:{
"PRICE"
:{
"headername"
:
"图书价格"
,
"isuniqueitem"
:
false
,
"name"
:
"price"
,
"order"
:
1000
},
"BOOKNUMBER"
:{
"headername"
:
"图书数量"
,
"isuniqueitem"
:
false
,
"name"
:
"booknumber"
,
"order"
:
1000
},
"CREATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"建立人"
,
"isuniqueitem"
:
false
,
"name"
:
"createman"
,
"order"
:
1000
},
"CREATEDATE"
:{
"headername"
:
"建立时间"
,
"isuniqueitem"
:
false
,
"name"
:
"createdate"
,
"order"
:
1000
},
"IBIZBOOKNAME"
:{
"headername"
:
"图书名称"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizbookname"
,
"order"
:
1000
},
"PRESS"
:{
"headername"
:
"图书出版社"
,
"isuniqueitem"
:
false
,
"name"
:
"press"
,
"order"
:
1000
},
"UPDATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"更新人"
,
"isuniqueitem"
:
false
,
"name"
:
"updateman"
,
"order"
:
1000
},
"AUTHOR"
:{
"headername"
:
"图书作者"
,
"isuniqueitem"
:
false
,
"name"
:
"author"
,
"order"
:
1000
},
"PRICE"
:{
"headername"
:
"图书价格"
,
"isuniqueitem"
:
false
,
"name"
:
"price"
,
"order"
:
1000
},
"UPDATEDATE"
:{
"headername"
:
"更新时间"
,
"isuniqueitem"
:
false
,
"name"
:
"updatedate"
,
"order"
:
1000
},
"BOOKNUMBER"
:{
"headername"
:
"图书数量"
,
"isuniqueitem"
:
false
,
"name"
:
"booknumber"
,
"order"
:
1000
},
"CREATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"建立人"
,
"isuniqueitem"
:
false
,
"name"
:
"createman"
,
"order"
:
1000
},
"IBIZBOOKID"
:{
"headername"
:
"图书标识"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizbookid"
,
"order"
:
1000
},
"PRESS"
:{
"headername"
:
"图书出版社"
,
"isuniqueitem"
:
false
,
"name"
:
"press"
,
"order"
:
1000
},
"AUTHOR"
:{
"headername"
:
"图书作者"
,
"isuniqueitem"
:
false
,
"name"
:
"author"
,
"order"
:
1000
},
"TYPE"
:{
"headername"
:
"图书类型"
,
"isuniqueitem"
:
false
,
"name"
:
"type"
,
"order"
:
1000
}
}
}
...
...
app_Web/src/widgets/ibizbook/main3-grid/main3-grid-base.vue
浏览文件 @
6d68cda5
...
...
@@ -1079,16 +1079,16 @@ export default class Main3Base extends Vue implements ControlInterface {
serviceName
:
'ibizbook'
,
appDeLogicName
:
'图书'
,
importData
:{
"PRICE"
:{
"headername"
:
"图书价格"
,
"isuniqueitem"
:
false
,
"name"
:
"price"
,
"order"
:
1000
},
"BOOKNUMBER"
:{
"headername"
:
"图书数量"
,
"isuniqueitem"
:
false
,
"name"
:
"booknumber"
,
"order"
:
1000
},
"CREATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"建立人"
,
"isuniqueitem"
:
false
,
"name"
:
"createman"
,
"order"
:
1000
},
"CREATEDATE"
:{
"headername"
:
"建立时间"
,
"isuniqueitem"
:
false
,
"name"
:
"createdate"
,
"order"
:
1000
},
"IBIZBOOKNAME"
:{
"headername"
:
"图书名称"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizbookname"
,
"order"
:
1000
},
"PRESS"
:{
"headername"
:
"图书出版社"
,
"isuniqueitem"
:
false
,
"name"
:
"press"
,
"order"
:
1000
},
"UPDATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"更新人"
,
"isuniqueitem"
:
false
,
"name"
:
"updateman"
,
"order"
:
1000
},
"AUTHOR"
:{
"headername"
:
"图书作者"
,
"isuniqueitem"
:
false
,
"name"
:
"author"
,
"order"
:
1000
},
"PRICE"
:{
"headername"
:
"图书价格"
,
"isuniqueitem"
:
false
,
"name"
:
"price"
,
"order"
:
1000
},
"UPDATEDATE"
:{
"headername"
:
"更新时间"
,
"isuniqueitem"
:
false
,
"name"
:
"updatedate"
,
"order"
:
1000
},
"BOOKNUMBER"
:{
"headername"
:
"图书数量"
,
"isuniqueitem"
:
false
,
"name"
:
"booknumber"
,
"order"
:
1000
},
"CREATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"建立人"
,
"isuniqueitem"
:
false
,
"name"
:
"createman"
,
"order"
:
1000
},
"IBIZBOOKID"
:{
"headername"
:
"图书标识"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizbookid"
,
"order"
:
1000
},
"PRESS"
:{
"headername"
:
"图书出版社"
,
"isuniqueitem"
:
false
,
"name"
:
"press"
,
"order"
:
1000
},
"AUTHOR"
:{
"headername"
:
"图书作者"
,
"isuniqueitem"
:
false
,
"name"
:
"author"
,
"order"
:
1000
},
"TYPE"
:{
"headername"
:
"图书类型"
,
"isuniqueitem"
:
false
,
"name"
:
"type"
,
"order"
:
1000
}
}
}
...
...
app_Web/src/widgets/ibizbook/main4-grid/main4-grid-base.vue
浏览文件 @
6d68cda5
...
...
@@ -1070,16 +1070,16 @@ export default class Main4Base extends Vue implements ControlInterface {
serviceName
:
'ibizbook'
,
appDeLogicName
:
'图书'
,
importData
:{
"PRICE"
:{
"headername"
:
"图书价格"
,
"isuniqueitem"
:
false
,
"name"
:
"price"
,
"order"
:
1000
},
"BOOKNUMBER"
:{
"headername"
:
"图书数量"
,
"isuniqueitem"
:
false
,
"name"
:
"booknumber"
,
"order"
:
1000
},
"CREATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"建立人"
,
"isuniqueitem"
:
false
,
"name"
:
"createman"
,
"order"
:
1000
},
"CREATEDATE"
:{
"headername"
:
"建立时间"
,
"isuniqueitem"
:
false
,
"name"
:
"createdate"
,
"order"
:
1000
},
"IBIZBOOKNAME"
:{
"headername"
:
"图书名称"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizbookname"
,
"order"
:
1000
},
"PRESS"
:{
"headername"
:
"图书出版社"
,
"isuniqueitem"
:
false
,
"name"
:
"press"
,
"order"
:
1000
},
"UPDATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"更新人"
,
"isuniqueitem"
:
false
,
"name"
:
"updateman"
,
"order"
:
1000
},
"AUTHOR"
:{
"headername"
:
"图书作者"
,
"isuniqueitem"
:
false
,
"name"
:
"author"
,
"order"
:
1000
},
"PRICE"
:{
"headername"
:
"图书价格"
,
"isuniqueitem"
:
false
,
"name"
:
"price"
,
"order"
:
1000
},
"UPDATEDATE"
:{
"headername"
:
"更新时间"
,
"isuniqueitem"
:
false
,
"name"
:
"updatedate"
,
"order"
:
1000
},
"BOOKNUMBER"
:{
"headername"
:
"图书数量"
,
"isuniqueitem"
:
false
,
"name"
:
"booknumber"
,
"order"
:
1000
},
"CREATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"建立人"
,
"isuniqueitem"
:
false
,
"name"
:
"createman"
,
"order"
:
1000
},
"IBIZBOOKID"
:{
"headername"
:
"图书标识"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizbookid"
,
"order"
:
1000
},
"PRESS"
:{
"headername"
:
"图书出版社"
,
"isuniqueitem"
:
false
,
"name"
:
"press"
,
"order"
:
1000
},
"AUTHOR"
:{
"headername"
:
"图书作者"
,
"isuniqueitem"
:
false
,
"name"
:
"author"
,
"order"
:
1000
},
"TYPE"
:{
"headername"
:
"图书类型"
,
"isuniqueitem"
:
false
,
"name"
:
"type"
,
"order"
:
1000
}
}
}
...
...
app_Web/src/widgets/ibizbook/main5-grid/main5-grid-base.vue
浏览文件 @
6d68cda5
...
...
@@ -1086,16 +1086,16 @@ export default class Main5Base extends Vue implements ControlInterface {
serviceName
:
'ibizbook'
,
appDeLogicName
:
'图书'
,
importData
:{
"PRICE"
:{
"headername"
:
"图书价格"
,
"isuniqueitem"
:
false
,
"name"
:
"price"
,
"order"
:
1000
},
"BOOKNUMBER"
:{
"headername"
:
"图书数量"
,
"isuniqueitem"
:
false
,
"name"
:
"booknumber"
,
"order"
:
1000
},
"CREATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"建立人"
,
"isuniqueitem"
:
false
,
"name"
:
"createman"
,
"order"
:
1000
},
"CREATEDATE"
:{
"headername"
:
"建立时间"
,
"isuniqueitem"
:
false
,
"name"
:
"createdate"
,
"order"
:
1000
},
"IBIZBOOKNAME"
:{
"headername"
:
"图书名称"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizbookname"
,
"order"
:
1000
},
"PRESS"
:{
"headername"
:
"图书出版社"
,
"isuniqueitem"
:
false
,
"name"
:
"press"
,
"order"
:
1000
},
"UPDATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"更新人"
,
"isuniqueitem"
:
false
,
"name"
:
"updateman"
,
"order"
:
1000
},
"AUTHOR"
:{
"headername"
:
"图书作者"
,
"isuniqueitem"
:
false
,
"name"
:
"author"
,
"order"
:
1000
},
"PRICE"
:{
"headername"
:
"图书价格"
,
"isuniqueitem"
:
false
,
"name"
:
"price"
,
"order"
:
1000
},
"UPDATEDATE"
:{
"headername"
:
"更新时间"
,
"isuniqueitem"
:
false
,
"name"
:
"updatedate"
,
"order"
:
1000
},
"BOOKNUMBER"
:{
"headername"
:
"图书数量"
,
"isuniqueitem"
:
false
,
"name"
:
"booknumber"
,
"order"
:
1000
},
"CREATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"建立人"
,
"isuniqueitem"
:
false
,
"name"
:
"createman"
,
"order"
:
1000
},
"IBIZBOOKID"
:{
"headername"
:
"图书标识"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizbookid"
,
"order"
:
1000
},
"PRESS"
:{
"headername"
:
"图书出版社"
,
"isuniqueitem"
:
false
,
"name"
:
"press"
,
"order"
:
1000
},
"AUTHOR"
:{
"headername"
:
"图书作者"
,
"isuniqueitem"
:
false
,
"name"
:
"author"
,
"order"
:
1000
},
"TYPE"
:{
"headername"
:
"图书类型"
,
"isuniqueitem"
:
false
,
"name"
:
"type"
,
"order"
:
1000
}
}
}
...
...
app_Web/src/widgets/ibizbook/new-default-grid/new-default-grid-base.vue
浏览文件 @
6d68cda5
...
...
@@ -1206,16 +1206,16 @@ export default class NewDefaultBase extends Vue implements ControlInterface {
serviceName
:
'ibizbook'
,
appDeLogicName
:
'图书'
,
importData
:{
"PRICE"
:{
"headername"
:
"图书价格"
,
"isuniqueitem"
:
false
,
"name"
:
"price"
,
"order"
:
1000
},
"BOOKNUMBER"
:{
"headername"
:
"图书数量"
,
"isuniqueitem"
:
false
,
"name"
:
"booknumber"
,
"order"
:
1000
},
"CREATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"建立人"
,
"isuniqueitem"
:
false
,
"name"
:
"createman"
,
"order"
:
1000
},
"CREATEDATE"
:{
"headername"
:
"建立时间"
,
"isuniqueitem"
:
false
,
"name"
:
"createdate"
,
"order"
:
1000
},
"IBIZBOOKNAME"
:{
"headername"
:
"图书名称"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizbookname"
,
"order"
:
1000
},
"PRESS"
:{
"headername"
:
"图书出版社"
,
"isuniqueitem"
:
false
,
"name"
:
"press"
,
"order"
:
1000
},
"UPDATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"更新人"
,
"isuniqueitem"
:
false
,
"name"
:
"updateman"
,
"order"
:
1000
},
"AUTHOR"
:{
"headername"
:
"图书作者"
,
"isuniqueitem"
:
false
,
"name"
:
"author"
,
"order"
:
1000
},
"PRICE"
:{
"headername"
:
"图书价格"
,
"isuniqueitem"
:
false
,
"name"
:
"price"
,
"order"
:
1000
},
"UPDATEDATE"
:{
"headername"
:
"更新时间"
,
"isuniqueitem"
:
false
,
"name"
:
"updatedate"
,
"order"
:
1000
},
"BOOKNUMBER"
:{
"headername"
:
"图书数量"
,
"isuniqueitem"
:
false
,
"name"
:
"booknumber"
,
"order"
:
1000
},
"CREATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"建立人"
,
"isuniqueitem"
:
false
,
"name"
:
"createman"
,
"order"
:
1000
},
"IBIZBOOKID"
:{
"headername"
:
"图书标识"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizbookid"
,
"order"
:
1000
},
"PRESS"
:{
"headername"
:
"图书出版社"
,
"isuniqueitem"
:
false
,
"name"
:
"press"
,
"order"
:
1000
},
"AUTHOR"
:{
"headername"
:
"图书作者"
,
"isuniqueitem"
:
false
,
"name"
:
"author"
,
"order"
:
1000
},
"TYPE"
:{
"headername"
:
"图书类型"
,
"isuniqueitem"
:
false
,
"name"
:
"type"
,
"order"
:
1000
}
}
}
...
...
app_Web/src/widgets/ibizbook/row-edit-grid/row-edit-grid-base.vue
浏览文件 @
6d68cda5
...
...
@@ -1281,16 +1281,16 @@ export default class RowEditBase extends Vue implements ControlInterface {
serviceName
:
'ibizbook'
,
appDeLogicName
:
'图书'
,
importData
:{
"PRICE"
:{
"headername"
:
"图书价格"
,
"isuniqueitem"
:
false
,
"name"
:
"price"
,
"order"
:
1000
},
"BOOKNUMBER"
:{
"headername"
:
"图书数量"
,
"isuniqueitem"
:
false
,
"name"
:
"booknumber"
,
"order"
:
1000
},
"CREATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"建立人"
,
"isuniqueitem"
:
false
,
"name"
:
"createman"
,
"order"
:
1000
},
"CREATEDATE"
:{
"headername"
:
"建立时间"
,
"isuniqueitem"
:
false
,
"name"
:
"createdate"
,
"order"
:
1000
},
"IBIZBOOKNAME"
:{
"headername"
:
"图书名称"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizbookname"
,
"order"
:
1000
},
"PRESS"
:{
"headername"
:
"图书出版社"
,
"isuniqueitem"
:
false
,
"name"
:
"press"
,
"order"
:
1000
},
"UPDATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"更新人"
,
"isuniqueitem"
:
false
,
"name"
:
"updateman"
,
"order"
:
1000
},
"AUTHOR"
:{
"headername"
:
"图书作者"
,
"isuniqueitem"
:
false
,
"name"
:
"author"
,
"order"
:
1000
},
"PRICE"
:{
"headername"
:
"图书价格"
,
"isuniqueitem"
:
false
,
"name"
:
"price"
,
"order"
:
1000
},
"UPDATEDATE"
:{
"headername"
:
"更新时间"
,
"isuniqueitem"
:
false
,
"name"
:
"updatedate"
,
"order"
:
1000
},
"BOOKNUMBER"
:{
"headername"
:
"图书数量"
,
"isuniqueitem"
:
false
,
"name"
:
"booknumber"
,
"order"
:
1000
},
"CREATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"建立人"
,
"isuniqueitem"
:
false
,
"name"
:
"createman"
,
"order"
:
1000
},
"IBIZBOOKID"
:{
"headername"
:
"图书标识"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizbookid"
,
"order"
:
1000
},
"PRESS"
:{
"headername"
:
"图书出版社"
,
"isuniqueitem"
:
false
,
"name"
:
"press"
,
"order"
:
1000
},
"AUTHOR"
:{
"headername"
:
"图书作者"
,
"isuniqueitem"
:
false
,
"name"
:
"author"
,
"order"
:
1000
},
"TYPE"
:{
"headername"
:
"图书类型"
,
"isuniqueitem"
:
false
,
"name"
:
"type"
,
"order"
:
1000
}
}
}
...
...
app_Web/src/widgets/ibizbook/row-rules-grid/row-rules-grid-base.vue
浏览文件 @
6d68cda5
...
...
@@ -1236,16 +1236,16 @@ export default class RowRulesBase extends Vue implements ControlInterface {
serviceName
:
'ibizbook'
,
appDeLogicName
:
'图书'
,
importData
:{
"PRICE"
:{
"headername"
:
"图书价格"
,
"isuniqueitem"
:
false
,
"name"
:
"price"
,
"order"
:
1000
},
"BOOKNUMBER"
:{
"headername"
:
"图书数量"
,
"isuniqueitem"
:
false
,
"name"
:
"booknumber"
,
"order"
:
1000
},
"CREATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"建立人"
,
"isuniqueitem"
:
false
,
"name"
:
"createman"
,
"order"
:
1000
},
"CREATEDATE"
:{
"headername"
:
"建立时间"
,
"isuniqueitem"
:
false
,
"name"
:
"createdate"
,
"order"
:
1000
},
"IBIZBOOKNAME"
:{
"headername"
:
"图书名称"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizbookname"
,
"order"
:
1000
},
"PRESS"
:{
"headername"
:
"图书出版社"
,
"isuniqueitem"
:
false
,
"name"
:
"press"
,
"order"
:
1000
},
"UPDATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"更新人"
,
"isuniqueitem"
:
false
,
"name"
:
"updateman"
,
"order"
:
1000
},
"AUTHOR"
:{
"headername"
:
"图书作者"
,
"isuniqueitem"
:
false
,
"name"
:
"author"
,
"order"
:
1000
},
"PRICE"
:{
"headername"
:
"图书价格"
,
"isuniqueitem"
:
false
,
"name"
:
"price"
,
"order"
:
1000
},
"UPDATEDATE"
:{
"headername"
:
"更新时间"
,
"isuniqueitem"
:
false
,
"name"
:
"updatedate"
,
"order"
:
1000
},
"BOOKNUMBER"
:{
"headername"
:
"图书数量"
,
"isuniqueitem"
:
false
,
"name"
:
"booknumber"
,
"order"
:
1000
},
"CREATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"建立人"
,
"isuniqueitem"
:
false
,
"name"
:
"createman"
,
"order"
:
1000
},
"IBIZBOOKID"
:{
"headername"
:
"图书标识"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizbookid"
,
"order"
:
1000
},
"PRESS"
:{
"headername"
:
"图书出版社"
,
"isuniqueitem"
:
false
,
"name"
:
"press"
,
"order"
:
1000
},
"AUTHOR"
:{
"headername"
:
"图书作者"
,
"isuniqueitem"
:
false
,
"name"
:
"author"
,
"order"
:
1000
},
"TYPE"
:{
"headername"
:
"图书类型"
,
"isuniqueitem"
:
false
,
"name"
:
"type"
,
"order"
:
1000
}
}
}
...
...
app_Web/src/widgets/ibizbook/tree-table-treegridex/tree-table-treegridex-base.vue
浏览文件 @
6d68cda5
...
...
@@ -15,11 +15,6 @@
<template
slot=
"empty"
>
{{
$t
(
'entities.ibizbook.treetable_treegridex.nodata'
)
}}
</
template
>
<el-table-column
show-overflow-tooltip
prop=
"author"
label=
""
:width=
"50"
:align=
"''"
>
<
template
v-slot=
"{ row }"
>
<span>
{{
getColumnValue
(
row
,
'author'
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop=
"subtext"
label=
""
:width=
"50"
:align=
"''"
>
<
template
v-slot=
"{ row }"
>
<span>
{{
getColumnValue
(
row
,
'subtext'
)
}}
</span>
...
...
@@ -30,6 +25,11 @@
<span>
{{
getColumnValue
(
row
,
'ibizbookname'
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop=
"author"
label=
""
:width=
"50"
:align=
"''"
>
<
template
v-slot=
"{ row }"
>
<span>
{{
getColumnValue
(
row
,
'author'
)
}}
</span>
</
template
>
</el-table-column>
</el-table>
</template>
...
...
app_Web/src/widgets/ibizbook/update-default-grid/update-default-grid-base.vue
浏览文件 @
6d68cda5
...
...
@@ -1206,16 +1206,16 @@ export default class UpdateDefaultBase extends Vue implements ControlInterface {
serviceName
:
'ibizbook'
,
appDeLogicName
:
'图书'
,
importData
:{
"PRICE"
:{
"headername"
:
"图书价格"
,
"isuniqueitem"
:
false
,
"name"
:
"price"
,
"order"
:
1000
},
"BOOKNUMBER"
:{
"headername"
:
"图书数量"
,
"isuniqueitem"
:
false
,
"name"
:
"booknumber"
,
"order"
:
1000
},
"CREATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"建立人"
,
"isuniqueitem"
:
false
,
"name"
:
"createman"
,
"order"
:
1000
},
"CREATEDATE"
:{
"headername"
:
"建立时间"
,
"isuniqueitem"
:
false
,
"name"
:
"createdate"
,
"order"
:
1000
},
"IBIZBOOKNAME"
:{
"headername"
:
"图书名称"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizbookname"
,
"order"
:
1000
},
"PRESS"
:{
"headername"
:
"图书出版社"
,
"isuniqueitem"
:
false
,
"name"
:
"press"
,
"order"
:
1000
},
"UPDATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"更新人"
,
"isuniqueitem"
:
false
,
"name"
:
"updateman"
,
"order"
:
1000
},
"AUTHOR"
:{
"headername"
:
"图书作者"
,
"isuniqueitem"
:
false
,
"name"
:
"author"
,
"order"
:
1000
},
"PRICE"
:{
"headername"
:
"图书价格"
,
"isuniqueitem"
:
false
,
"name"
:
"price"
,
"order"
:
1000
},
"UPDATEDATE"
:{
"headername"
:
"更新时间"
,
"isuniqueitem"
:
false
,
"name"
:
"updatedate"
,
"order"
:
1000
},
"BOOKNUMBER"
:{
"headername"
:
"图书数量"
,
"isuniqueitem"
:
false
,
"name"
:
"booknumber"
,
"order"
:
1000
},
"CREATEMAN"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"SysOperator"
,
"isnumber"
:
false
},
"headername"
:
"建立人"
,
"isuniqueitem"
:
false
,
"name"
:
"createman"
,
"order"
:
1000
},
"IBIZBOOKID"
:{
"headername"
:
"图书标识"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizbookid"
,
"order"
:
1000
},
"PRESS"
:{
"headername"
:
"图书出版社"
,
"isuniqueitem"
:
false
,
"name"
:
"press"
,
"order"
:
1000
},
"AUTHOR"
:{
"headername"
:
"图书作者"
,
"isuniqueitem"
:
false
,
"name"
:
"author"
,
"order"
:
1000
},
"TYPE"
:{
"headername"
:
"图书类型"
,
"isuniqueitem"
:
false
,
"name"
:
"type"
,
"order"
:
1000
}
}
}
...
...
app_Web/src/widgets/ibizbook/usr-gantt/usr-gantt-base.vue
0 → 100644
浏览文件 @
6d68cda5
<
template
>
<div
class=
"app-gantt"
>
<gantt-elastic
v-if=
"tasks.length >0"
:class=
"ganttClass"
:tasks=
"tasks"
:options=
"getOptions(this.locale)"
:dynamic-style=
"dynamicStyle"
@
taskList-item-dblclick=
"taskClick"
@
task-item-expand=
"taskItemExpand"
>
</gantt-elastic>
<div
v-else
class=
"app-data-empty"
>
{{
$t
(
'entities.ibizbook.usr_gantt.nodata'
)
}}
</div>
</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
IBIZBOOKService
from
'@/service/ibizbook/ibizbook-service'
;
import
UsrService
from
'./usr-gantt-service'
;
import
IBIZBOOKUIService
from
'@/uiservice/ibizbook/ibizbook-ui-service'
;
import
GanttElastic
from
"ibiz-gantt-elastic/src/GanttElastic.vue"
;
@
Component
({
components
:
{
GanttElastic
,
}
})
export
default
class
UsrBase
extends
Vue
implements
ControlInterface
{
/**
* 名称
*
* @type {string}
* @memberof UsrBase
*/
@
Prop
()
public
name
?:
string
;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof UsrBase
*/
@
Prop
()
public
viewState
!
:
Subject
<
ViewState
>
;
/**
* 应用上下文
*
* @type {*}
* @memberof UsrBase
*/
@
Prop
()
public
context
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof UsrBase
*/
@
Prop
()
public
viewparams
:
any
;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof UsrBase
*/
public
viewStateEvent
:
Subscription
|
undefined
;
/**
* 获取部件类型
*
* @returns {string}
* @memberof UsrBase
*/
public
getControlType
():
string
{
return
'GANTT'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof UsrBase
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 建构部件服务对象
*
* @type {UsrService}
* @memberof UsrBase
*/
public
service
:
UsrService
=
new
UsrService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {IBIZBOOKService}
* @memberof UsrBase
*/
public
appEntityService
:
IBIZBOOKService
=
new
IBIZBOOKService
({
$store
:
this
.
$store
});
/**
* 转化数据
*
* @param {any} args
* @memberof UsrBase
*/
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 UsrBase
*/
public
closeView
(
args
:
any
):
void
{
let
_this
:
any
=
this
;
_this
.
$emit
(
'closeview'
,
[
args
]);
}
/**
* 计数器刷新
*
* @memberof UsrBase
*/
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
();
}
})
}
}
/**
* 显示处理提示
*
* @type {boolean}
* @memberof UsrBase
*/
@
Prop
({
default
:
true
})
public
showBusyIndicator
?:
boolean
;
/**
* 部件行为--load
*
* @type {string}
* @memberof UsrBase
*/
@
Prop
()
public
loadAction
!
:
string
;
/**
* 部件样式名
*
* @public
* @type {any[]}
* @memberof UsrBase
*/
public
ganttClass
:
string
=
"gantt"
;
/**
* 语言
*
* @public
* @type {string}
* @memberof UsrBase
*/
public
locale
:
string
=
'zh-CN'
;
/**
* 语言资源
*
* @public
* @type {any[]}
* @memberof UsrBase
*/
public
localeZH
:
any
=
{
weekdays
:
[
'星期一'
,
'星期二'
,
'星期三'
,
'星期四'
,
'星期五'
,
'星期六'
,
'星期日'
],
months
:
[
'一月'
,
'二月'
,
'三月'
,
'四月'
,
'五月'
,
'六月'
,
'七月'
,
'八月'
,
'九月'
,
'十月'
,
'十一月'
,
'十二月'
],
Now
:
"现在"
,
"X-Scale"
:
"时间颗粒度"
,
"Display task list"
:
"显示列表"
,
"Before/After"
:
"数据范围"
}
/**
* 配置参数
*
* @public
* @type {any[]}
* @memberof UsrBase
*/
public
options
:
any
=
{
isflex
:
true
,
maxRows
:
1000
,
dataType
:
'treegrid'
,
title
:
{
label
:
""
},
header
:
{
yScole
:
false
,
taskListWidth
:
false
,
},
calendar
:
{
hour
:
{
display
:
false
}
},
chart
:
{
progress
:
{
bar
:
false
},
expander
:
{
display
:
true
},
},
taskList
:
{
expander
:
{
straight
:
false
},
labelField
:
'text'
,
columns
:
[
{
label
:
'作者'
,
value
:
'author'
,
render
:
(
task
:
any
)
=>
{
return
this
.
getColumnValue
(
task
,
'author'
)
},
width
:
50
,
},
{
label
:
'借出日期'
,
value
:
'lendouttime'
,
render
:
(
task
:
any
)
=>
{
return
this
.
getColumnValue
(
task
,
'lendouttime'
)
},
width
:
50
,
},
{
label
:
'归还日期'
,
value
:
'returntime'
,
render
:
(
task
:
any
)
=>
{
return
this
.
getColumnValue
(
task
,
'returntime'
)
},
width
:
50
,
},
{
label
:
'图书名称'
,
value
:
'ibizbookname'
,
render
:
(
task
:
any
)
=>
{
return
this
.
getColumnValue
(
task
,
'ibizbookname'
)
},
width
:
50
,
},
{
label
:
'出版社'
,
value
:
'press'
,
render
:
(
task
:
any
)
=>
{
return
this
.
getColumnValue
(
task
,
'press'
)
},
width
:
50
,
},
]
}
};
/**
* 样式
*
* @public
* @type {any[]}
* @memberof UsrBase
*/
public
dynamicStyle
:
any
=
{};
/**
* 日程事件集合
*
* @public
* @type {any[]}
* @memberof UsrBase
*/
public
tasks
:
any
[]
=
[];
/**
* 应用状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof UsrBase
*/
public
appStateEvent
:
Subscription
|
undefined
;
/**
* 监听语言变化
*
* @public
* @memberof UsrBase
*/
@
Watch
(
'$i18n.locale'
)
public
onLocaleChange
(
newval
:
any
,
val
:
any
)
{
this
.
locale
=
newval
;
}
/**
* 获取列属性值
*
* @public
* @memberof UsrBase
*/
public
getColumnValue
(
task
:
any
,
field
:
string
)
{
if
(
Object
.
is
(
task
.
id
.
split
(
';'
)[
0
],
'ROOT'
))
{
return
task
[
field
];
}
if
(
Object
.
is
(
task
.
id
.
split
(
';'
)[
0
],
'IBIZBOOKMANAGE'
))
{
return
task
[
field
];
}
}
/**
* 获取代码项
*
* @public
* @memberof UsrBase
*/
public
getCodeListItem
(
codelist
:
any
,
val
:
any
)
{
for
(
let
i
=
0
;
i
<
codelist
.
items
.
length
;
i
++
)
{
if
(
Object
.
is
(
codelist
.
items
[
i
].
value
,
val
))
{
return
codelist
.
items
[
i
].
text
;
}
}
return
codelist
.
emptytext
;
}
/**
* 获取部件参数
*
* @returns {any}
* @memberof UsrBase
*/
public
getOptions
()
{
if
(
Object
.
is
(
this
.
locale
,
'zh-CN'
))
{
return
{
locale
:
this
.
localeZH
,
...
this
.
options
};
}
return
this
.
options
;
}
/**
* 搜索获取日程事件
*
* @param {*} $event 日期信息
* @memberof UsrBase
*/
public
load
(
task
:
any
=
{})
{
const
params
:
any
=
{
srfnodeid
:
task
&&
task
.
id
?
task
.
id
:
"#"
,
srfnodefilter
:
''
};
let
tempViewParams
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
));
let
curNode
:
any
=
{};
Util
.
deepObjectMerge
(
curNode
,
task
);
let
tempContext
:
any
=
this
.
computecurNodeContext
(
curNode
);
if
(
curNode
&&
curNode
.
srfparentdename
)
{
Object
.
assign
(
tempContext
,{
srfparentdename
:
curNode
.
srfparentdename
});
Object
.
assign
(
tempViewParams
,{
srfparentdename
:
curNode
.
srfparentdename
});
}
if
(
curNode
&&
curNode
.
srfparentkey
)
{
Object
.
assign
(
tempContext
,{
srfparentkey
:
curNode
.
srfparentkey
});
Object
.
assign
(
tempViewParams
,{
srfparentkey
:
curNode
.
srfparentkey
});
}
Object
.
assign
(
params
,{
viewparams
:
tempViewParams
});
this
.
service
.
getNodes
(
tempContext
,
params
).
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
response
.
info
});
return
;
}
this
.
tasks
=
[...
this
.
tasks
,
...
response
.
data
];
response
.
data
.
forEach
((
item
:
any
)
=>
{
if
(
!
item
.
collapsed
)
{
this
.
load
(
item
);
}
})
this
.
$emit
(
"load"
,
this
.
tasks
);
}).
catch
((
response
:
any
)
=>
{
if
(
response
&&
response
.
status
===
401
)
{
return
;
}
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
response
.
info
});
});
}
/**
* 计算当前节点的上下文
*
* @param {*} curNode 当前节点
* @memberof UsrBase
*/
public
computecurNodeContext
(
curNode
:
any
){
let
tempContext
:
any
=
{};
if
(
curNode
&&
curNode
.
data
&&
curNode
.
data
.
srfappctx
){
tempContext
=
JSON
.
parse
(
JSON
.
stringify
(
curNode
.
data
.
srfappctx
));
}
else
{
tempContext
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
));
}
return
tempContext
;
}
/**
* 节点展开
*
* @param {*} task 当前节点
* @memberof UsrBase
*/
public
taskItemExpand
(
task
:
any
)
{
if
(
!
task
.
collapsed
)
{
let
index
:
number
=
this
.
tasks
.
findIndex
((
item
:
any
)
=>
Object
.
is
(
task
.
id
,
item
.
parentId
));
if
(
index
<
0
)
{
this
.
load
(
task
);
}
}
}
/**
* 刷新
*
* @memberof UsrBase
*/
public
refresh
(
args
?:
any
)
{
this
.
load
();
}
/**
* 选中的数据
*
* @returns {any[]}
* @memberof UsrBase
*/
public
selections
:
any
[]
=
[];
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof UsrBase
*/
public
getDatas
():
any
[]
{
return
this
.
selections
;
}
/**
* 获取单项树
*
* @returns {*}
* @memberof UsrBase
*/
public
getData
():
any
{
return
null
;
}
/**
* vue 生命周期
*
* @returns
* @memberof UsrBase
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof UsrBase
*/
public
afterCreated
()
{
this
.
locale
=
this
.
$i18n
.
locale
;
if
(
AppCenterService
&&
AppCenterService
.
getMessageCenter
()){
this
.
appStateEvent
=
AppCenterService
.
getMessageCenter
().
subscribe
(({
name
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
name
,
"IBIZBOOK"
)){
return
;
}
if
(
Object
.
is
(
action
,
'appRefresh'
)){
this
.
refresh
();
}
})
}
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
if
(
Object
.
is
(
'load'
,
action
))
{
this
.
load
(
data
);
}
});
}
/**
* 点击事件
*
* @returns
* @memberof UsrBase
*/
public
taskClick
({
event
,
data
}:
{
event
:
any
,
data
:
any
})
{
const
_this
:
any
=
this
;
let
key
:
string
=
data
.
id
.
split
(
';'
)[
0
];
if
(
_this
[
key
+
'_opendata'
]
instanceof
Function
)
{
_this
[
key
+
'_opendata'
]([
data
]);
}
}
/**
* vue 生命周期
*
* @memberof UsrBase
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof UsrBase
*/
public
afterDestroy
()
{
if
(
this
.
appStateEvent
){
this
.
appStateEvent
.
unsubscribe
();
}
if
(
this
.
viewStateEvent
){
this
.
viewStateEvent
.
unsubscribe
();
}
}
}
</
script
>
<
style
lang=
'less'
>
@import './usr-gantt.less';
</
style
>
\ No newline at end of file
app_Web/src/widgets/ibizbook/usr-gantt/usr-gantt-model.ts
0 → 100644
浏览文件 @
6d68cda5
/**
* Usr 部件模型
*
* @export
* @class UsrModel
*/
export
default
class
UsrModel
{
/**
* 日历项类型
*
* @returns {any[]}
* @memberof UsrGanttMode
*/
public
itemType
:
string
=
""
;
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof UsrGanttMode
*/
public
getDataItems
():
any
[]
{
let
dataItems
:
any
=
[
// 前端新增修改标识,新增为"0",修改为"1"或未设值
{
name
:
'srffrontuf'
,
prop
:
'srffrontuf'
,
dataType
:
'TEXT'
,
},
{
name
:
'style'
,
},
{
name
:
'textColor'
,
},
{
name
:
'itemType'
,
},
{
name
:
'parentId'
},
{
name
:
'query'
,
prop
:
'query'
,
},
];
switch
(
this
.
itemType
){
case
"IBIZBOOKMANAGE"
:
dataItems
=
[...
dataItems
,
{
name
:
'id'
,
prop
:
'ibizbookid'
},
];
break
;
}
return
dataItems
;
}
}
\ No newline at end of file
app_Web/src/widgets/ibizbook/usr-gantt/usr-gantt-service.ts
0 → 100644
浏览文件 @
6d68cda5
import
{
Http
,
Util
,
Errorlog
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
import
IBIZBOOKService
from
'@/service/ibizbook/ibizbook-service'
;
import
UsrModel
from
'./usr-gantt-model'
;
import
CodeListService
from
"@/codelist/codelist-service"
;
import
i18n
from
'@/locale'
;
/**
* Usr 部件服务对象
*
* @export
* @class UsrService
*/
export
default
class
UsrService
extends
ControlService
{
/**
* 图书服务对象
*
* @type {IBIZBOOKService}
* @memberof UsrService
*/
public
appEntityService
:
IBIZBOOKService
=
new
IBIZBOOKService
({
$store
:
this
.
getStore
()
});
/**
* 设置从数据模式
*
* @type {boolean}
* @memberof UsrService
*/
public
setTempMode
(){
this
.
isTempMode
=
false
;
}
/**
* Creates an instance of UsrService.
*
* @param {*} [opts={}]
* @memberof UsrService
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
this
.
model
=
new
UsrModel
();
}
/**
* 代码表服务对象
*
* @type {CodeListService}
* @memberof UsrService
*/
public
codeListService
:
CodeListService
=
new
CodeListService
({
$store
:
this
.
getStore
()
});
/**
* 节点分隔符号
*
* @public
* @type {string}
* @memberof UsrService
*/
public
TREENODE_SEPARATOR
:
string
=
';'
;
/**
* 默认根节点节点分隔符号
*
* @public
* @type {string}
* @memberof UsrService
*/
public
TREENODE_ROOT
:
string
=
'ROOT'
;
/**
* 埃毕致图书管理节点分隔符号
*
* @public
* @type {string}
* @memberof UsrService
*/
public
TREENODE_IBIZBOOKMANAGE
:
string
=
'IBIZBOOKMANAGE'
;
/**
* 商品类别节点分隔符号
*
* @public
* @type {*}
* @memberof UsrService
*/
public
dataModel
:
any
=
{
ROOT
:
{
},
IBIZBOOKMANAGE
:
{
},
}
/**
* 获取节点数据
*
* @param {string} action
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof UsrService
*/
@
Errorlog
public
async
getNodes
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
{
srfparentkey
,
srfcat
,
srfnodeid
,
srfnodefilter
,
query
}:
{
srfparentkey
:
string
,
srfcat
:
string
,
srfnodeid
:
string
,
srfnodefilter
:
string
,
query
:
string
}
=
data
;
srfnodefilter
=
query
?
query
:
srfnodefilter
;
let
list
:
any
[]
=
[];
let
filter
:
any
=
{};
let
srfotherkey
:
string
=
''
;
if
(
!
srfnodeid
||
Object
.
is
(
srfnodeid
,
'#'
))
{
srfnodeid
=
this
.
TREENODE_ROOT
;
}
else
{
srfotherkey
=
srfnodeid
;
srfnodeid
=
srfnodeid
.
split
(
'_#_'
)[
0
];
}
let
strTreeNodeId
:
string
=
srfnodeid
;
let
strRealNodeId
:
string
=
''
;
let
bRootSelect
:
boolean
=
false
;
let
strNodeType
:
string
|
null
=
null
;
let
strRootSelectNode
:
string
=
''
;
if
(
Object
.
is
(
strTreeNodeId
,
this
.
TREENODE_ROOT
))
{
strNodeType
=
this
.
TREENODE_ROOT
;
if
(
srfparentkey
)
{
strRealNodeId
=
srfparentkey
;
}
}
else
{
let
nPos
=
strTreeNodeId
.
indexOf
(
this
.
TREENODE_SEPARATOR
);
if
(
nPos
===
-
1
)
{
return
Promise
.
reject
({
status
:
500
,
data
:
{
title
:
'失败'
,
message
:
`树节点
${
strTreeNodeId
}
标识无效`
}
});
}
strNodeType
=
strTreeNodeId
.
substring
(
0
,
nPos
);
strRealNodeId
=
strTreeNodeId
.
substring
(
nPos
+
1
);
}
Object
.
assign
(
filter
,
{
srfparentkey
:
srfparentkey
,
srfcat
:
srfcat
,
srfnodefilter
:
srfnodefilter
,
strRealNodeId
:
strRealNodeId
,
srfnodeid
:
srfnodeid
,
srfotherkey
:
srfotherkey
,
strNodeType
:
strNodeType
,
viewparams
:
JSON
.
parse
(
JSON
.
stringify
(
data
)).
viewparams
}
);
// 分解节点标识
let
nodeid
:
string
[]
=
strRealNodeId
.
split
(
this
.
TREENODE_SEPARATOR
);
for
(
let
i
=
0
;
i
<
nodeid
.
length
;
i
++
)
{
switch
(
i
)
{
case
0
:
Object
.
assign
(
filter
,
{
nodeid
:
nodeid
[
0
]
});
break
;
case
1
:
Object
.
assign
(
filter
,
{
nodeid2
:
nodeid
[
1
]
});
break
;
case
2
:
Object
.
assign
(
filter
,
{
nodeid3
:
nodeid
[
2
]
});
break
;
case
3
:
Object
.
assign
(
filter
,
{
nodeid4
:
nodeid
[
3
]
});
break
;
default
:
break
;
}
}
if
(
Object
.
is
(
strNodeType
,
this
.
TREENODE_ROOT
))
{
await
this
.
fillRootNodeChilds
(
context
,
filter
,
list
);
return
Promise
.
resolve
({
status
:
200
,
data
:
list
});
}
if
(
Object
.
is
(
strNodeType
,
this
.
TREENODE_IBIZBOOKMANAGE
))
{
await
this
.
fillIbizbookmanageNodeChilds
(
context
,
filter
,
list
);
return
Promise
.
resolve
({
status
:
200
,
data
:
list
});
}
return
Promise
.
resolve
({
status
:
500
,
data
:
{
title
:
'失败'
,
message
:
`树节点
${
strTreeNodeId
}
标识无效`
}
});
}
/**
* 填充 树视图节点[默认根节点]
*
* @public
* @param {any{}} context
* @param {*} filter
* @param {any[]} list
* @param {*} rsNavContext
* @param {*} rsNavParams
* @param {*} rsParams
* @returns {Promise<any>}
* @memberof UsrService
*/
@
Errorlog
public
fillRootNodes
(
context
:
any
=
{},
filter
:
any
,
list
:
any
[],
rsNavContext
?:
any
,
rsNavParams
?:
any
,
rsParams
?:
any
):
Promise
<
any
>
{
context
=
this
.
handleResNavContext
(
context
,
filter
,
rsNavContext
);
filter
=
this
.
handleResNavParams
(
context
,
filter
,
rsNavParams
,
rsParams
);
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
treeNode
:
any
=
{};
Object
.
assign
(
treeNode
,
{
text
:
'entities.ibizbook.usr_gantt.nodes.root'
});
Object
.
assign
(
treeNode
,
{
isUseLangRes
:
true
});
Object
.
assign
(
treeNode
,{
srfappctx
:
context
});
Object
.
assign
(
treeNode
,
{
srfmajortext
:
treeNode
.
text
});
let
strNodeId
:
string
=
'ROOT'
;
Object
.
assign
(
treeNode
,
{
srfkey
:
'root'
});
strNodeId
+=
this
.
TREENODE_SEPARATOR
;
strNodeId
+=
'root'
;
Object
.
assign
(
treeNode
,
{
id
:
strNodeId
+
'_#_'
+
filter
.
srfnodeid
});
Object
.
assign
(
treeNode
,
{
collapsed
:
true
});
Object
.
assign
(
treeNode
,
{
leaf
:
false
});
Object
.
assign
(
treeNode
,
{
navparams
:
'{}'
});
Object
.
assign
(
treeNode
,
{
nodeid
:
treeNode
.
srfkey
});
Object
.
assign
(
treeNode
,
{
nodeid2
:
filter
.
strRealNodeId
});
if
(
!
Object
.
is
(
filter
.
srfnodeid
,
this
.
TREENODE_ROOT
))
{
Object
.
assign
(
treeNode
,
{
parentId
:
filter
.
srfotherkey
});
}
list
.
push
(
treeNode
);
resolve
(
list
);
});
}
/**
* 填充 树视图节点[默认根节点]子节点
*
* @public
* @param {any{}} context
* @param {*} filter
* @param {any[]} list
* @returns {Promise<any>}
* @memberof UsrService
*/
@
Errorlog
public
async
fillRootNodeChilds
(
context
:
any
=
{},
filter
:
any
,
list
:
any
[]):
Promise
<
any
>
{
if
(
filter
.
srfnodefilter
&&
!
Object
.
is
(
filter
.
srfnodefilter
,
""
))
{
// 填充埃毕致图书管理
let
IbizbookmanageRsNavContext
:
any
=
{};
let
IbizbookmanageRsNavParams
:
any
=
{};
let
IbizbookmanageRsParams
:
any
=
{};
await
this
.
fillIbizbookmanageNodes
(
context
,
filter
,
list
,
IbizbookmanageRsNavContext
,
IbizbookmanageRsNavParams
,
IbizbookmanageRsParams
);
}
else
{
// 填充埃毕致图书管理
let
IbizbookmanageRsNavContext
:
any
=
{};
let
IbizbookmanageRsNavParams
:
any
=
{};
let
IbizbookmanageRsParams
:
any
=
{};
await
this
.
fillIbizbookmanageNodes
(
context
,
filter
,
list
,
IbizbookmanageRsNavContext
,
IbizbookmanageRsNavParams
,
IbizbookmanageRsParams
);
}
}
/**
* 填充 树视图节点[埃毕致图书管理]
*
* @public
* @param {any{}} context
* @param {*} filter
* @param {any[]} list
* @param {*} rsNavContext
* @param {*} rsNavParams
* @param {*} rsParams
* @returns {Promise<any>}
* @memberof UsrService
*/
@
Errorlog
public
fillIbizbookmanageNodes
(
context
:
any
=
{},
filter
:
any
,
list
:
any
[],
rsNavContext
?:
any
,
rsNavParams
?:
any
,
rsParams
?:
any
):
Promise
<
any
>
{
context
=
this
.
handleResNavContext
(
context
,
filter
,
rsNavContext
);
filter
=
this
.
handleResNavParams
(
context
,
filter
,
rsNavParams
,
rsParams
);
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
searchFilter
:
any
=
{};
Object
.
assign
(
searchFilter
,
{
total
:
false
});
let
bFirst
:
boolean
=
true
;
let
records
:
any
[]
=
[];
try
{
this
.
searchIbizbookmanage
(
context
,
searchFilter
,
filter
).
then
((
records
:
any
)
=>
{
if
(
records
&&
records
.
length
>
0
){
records
.
forEach
((
entity
:
any
)
=>
{
let
treeNode
:
any
=
{};
// 整理context
let
strId
:
string
=
entity
.
ibizbookid
;
let
strText
:
string
=
entity
.
ibizbookname
;
Object
.
assign
(
treeNode
,{
srfparentdename
:
'IBIZBOOK'
,
srfparentkey
:
entity
.
ibizbookid
});
let
tempContext
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
context
));
Object
.
assign
(
tempContext
,{
srfparentdename
:
'IBIZBOOK'
,
srfparentkey
:
entity
.
ibizbookid
,
ibizbook
:
strId
})
Object
.
assign
(
treeNode
,{
srfappctx
:
tempContext
});
Object
.
assign
(
treeNode
,{
'ibizbook'
:
strId
});
Object
.
assign
(
treeNode
,
{
srfkey
:
strId
});
Object
.
assign
(
treeNode
,
{
text
:
strText
,
srfmajortext
:
strText
});
let
strNodeId
:
string
=
'IBIZBOOKMANAGE'
;
strNodeId
+=
this
.
TREENODE_SEPARATOR
;
strNodeId
+=
strId
;
Object
.
assign
(
treeNode
,
{
id
:
strNodeId
+
'_#_'
+
filter
.
srfnodeid
});
Object
.
assign
(
treeNode
,
{
collapsed
:
true
});
Object
.
assign
(
treeNode
,
{
leaf
:
true
});
Object
.
assign
(
treeNode
,
{
navparams
:
'{}'
});
Object
.
assign
(
treeNode
,
{
nodeid
:
treeNode
.
srfkey
});
Object
.
assign
(
treeNode
,
{
nodeid2
:
filter
.
strRealNodeId
});
if
(
!
Object
.
is
(
filter
.
srfnodeid
,
this
.
TREENODE_ROOT
))
{
Object
.
assign
(
treeNode
,
{
parentId
:
filter
.
srfotherkey
});
}
for
(
let
key
in
this
.
dataModel
.
IBIZBOOKMANAGE
)
{
let
item
=
this
.
dataModel
.
IBIZBOOKMANAGE
[
key
];
let
propVal
:
any
=
entity
[
item
.
prop
];
try
{
let
def
:
any
=
JSON
.
parse
(
item
.
default
);
propVal
=
propVal
!=
null
?
propVal
:
def
.
value
;
if
(
def
.
hasOwnProperty
(
'bkcolor'
))
{
Object
.
assign
(
treeNode
.
style
,
{
base
:
{
fill
:
def
.
bkcolor
,
stroke
:
def
.
bkcolor
}});
}
if
(
def
.
hasOwnProperty
(
'color'
))
{
Object
.
assign
(
treeNode
.
style
,
{
text
:
{
color
:
def
.
color
}});
}
}
catch
(
e
)
{
propVal
=
propVal
!=
null
?
propVal
:
item
.
default
}
treeNode
[
key
]
=
propVal
}
list
.
push
(
treeNode
);
resolve
(
list
);
bFirst
=
false
;
});
}
else
{
resolve
(
list
);
}
});
}
catch
(
error
)
{
console
.
error
(
error
);
}
});
}
/**
* 获取查询集合
*
* @public
* @param {any{}} context
* @param {*} searchFilter
* @param {*} filter
* @returns {any[]}
* @memberof TestEnetityDatasService
*/
@
Errorlog
public
searchIbizbookmanage
(
context
:
any
=
{},
searchFilter
:
any
,
filter
:
any
):
Promise
<
any
>
{
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
if
(
filter
.
viewparams
){
Object
.
assign
(
searchFilter
,
filter
.
viewparams
);
}
if
(
!
searchFilter
.
page
){
Object
.
assign
(
searchFilter
,{
page
:
0
});
}
if
(
!
searchFilter
.
size
){
Object
.
assign
(
searchFilter
,{
size
:
1000
});
}
if
(
context
&&
context
.
srfparentdename
){
Object
.
assign
(
searchFilter
,{
srfparentdename
:
JSON
.
parse
(
JSON
.
stringify
(
context
)).
srfparentdename
});
}
if
(
context
&&
context
.
srfparentkey
){
Object
.
assign
(
searchFilter
,{
srfparentkey
:
JSON
.
parse
(
JSON
.
stringify
(
context
)).
srfparentkey
});
}
const
_appEntityService
:
any
=
this
.
appEntityService
;
let
list
:
any
[]
=
[];
if
(
_appEntityService
[
'FetchDefault'
]
&&
_appEntityService
[
'FetchDefault'
]
instanceof
Function
)
{
const
response
:
Promise
<
any
>
=
_appEntityService
[
'FetchDefault'
](
context
,
searchFilter
,
false
);
response
.
then
((
response
:
any
)
=>
{
if
(
!
response
.
status
||
response
.
status
!==
200
)
{
resolve
([]);
console
.
log
(
JSON
.
stringify
(
context
));
console
.
error
(
'查询FetchDefault数据集异常!'
);
}
const
data
:
any
=
response
.
data
;
if
(
Object
.
keys
(
data
).
length
>
0
)
{
list
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
resolve
(
list
);
}
else
{
resolve
([]);
}
}).
catch
((
response
:
any
)
=>
{
resolve
([]);
console
.
log
(
JSON
.
stringify
(
context
));
console
.
error
(
'查询FetchDefault数据集异常!'
);
});
}
})
}
/**
* 填充 树视图节点[埃毕致图书管理]子节点
*
* @public
* @param {any{}} context
* @param {*} filter
* @param {any[]} list
* @returns {Promise<any>}
* @memberof UsrService
*/
@
Errorlog
public
async
fillIbizbookmanageNodeChilds
(
context
:
any
=
{},
filter
:
any
,
list
:
any
[]):
Promise
<
any
>
{
if
(
filter
.
srfnodefilter
&&
!
Object
.
is
(
filter
.
srfnodefilter
,
""
))
{
}
else
{
}
}
/**
* 处理代码表返回数据(树状结构)
*
* @param result 返回数组
* @param context 应用上下文
* @param callBack 回调
* @memberof UsrService
*/
public
handleDataSet
(
result
:
Array
<
any
>
,
context
:
any
,
callBack
:
any
){
let
list
:
Array
<
any
>
=
[];
if
(
result
.
length
===
0
){
return
list
;
}
result
.
forEach
((
codeItem
:
any
)
=>
{
if
(
!
codeItem
.
pvalue
){
let
valueField
:
string
=
codeItem
.
value
;
this
.
setChildCodeItems
(
valueField
,
result
,
codeItem
);
list
.
push
(
codeItem
);
}
})
this
.
setNodeData
(
list
,
context
,
callBack
);
return
list
;
}
/**
* 处理非根节点数据
*
* @param result 返回数组
* @param context 应用上下文
* @param callBack 回调
* @memberof UsrService
*/
public
setChildCodeItems
(
pValue
:
string
,
result
:
Array
<
any
>
,
codeItem
:
any
){
result
.
forEach
((
item
:
any
)
=>
{
if
(
item
.
pvalue
==
pValue
){
let
valueField
:
string
=
item
.
value
;
this
.
setChildCodeItems
(
valueField
,
result
,
item
);
if
(
!
codeItem
.
children
){
codeItem
.
children
=
[];
}
codeItem
.
children
.
push
(
item
);
}
})
}
/**
* 设置节点UI数据
*
* @param result 返回数组
* @param context 应用上下文
* @param callBack 回调
* @memberof UsrService
*/
public
setNodeData
(
result
:
Array
<
any
>
,
context
:
any
,
callBack
:
any
){
result
.
forEach
((
item
:
any
)
=>
{
if
(
item
.
children
){
item
.
leaf
=
false
;
this
.
setNodeData
(
item
.
children
,
context
,
callBack
);
}
else
{
item
.
leaf
=
true
;
}
callBack
(
context
,
item
);
})
}
/**
* 处理节点关系导航上下文
*
* @param context 应用上下文
* @param filter 参数
* @param resNavContext 节点关系导航上下文
*
* @memberof UsrService
*/
public
handleResNavContext
(
context
:
any
,
filter
:
any
,
resNavContext
:
any
){
if
(
resNavContext
&&
Object
.
keys
(
resNavContext
).
length
>
0
){
let
tempContextData
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
context
));
let
tempViewParams
:
any
=
{};
if
(
filter
&&
filter
.
viewparams
){
tempViewParams
=
filter
.
viewparams
;
}
Object
.
keys
(
resNavContext
).
forEach
((
item
:
any
)
=>
{
let
curDataObj
:
any
=
resNavContext
[
item
];
this
.
handleCustomDataLogic
(
context
,
tempViewParams
,
curDataObj
,
tempContextData
,
item
);
})
return
tempContextData
;
}
else
{
return
context
;
}
}
/**
* 处理关系导航参数
*
* @param context 应用上下文
* @param filter 参数
* @param resNavParams 节点关系导航参数
* @param resParams 节点关系参数
*
* @memberof UsrService
*/
public
handleResNavParams
(
context
:
any
,
filter
:
any
,
resNavParams
:
any
,
resParams
:
any
){
if
((
resNavParams
&&
Object
.
keys
(
resNavParams
).
length
>
0
)
||
(
resParams
&&
Object
.
keys
(
resParams
).
length
>
0
)){
let
tempViewParamData
:
any
=
{};
let
tempViewParams
:
any
=
{};
if
(
filter
&&
filter
.
viewparams
){
tempViewParams
=
filter
.
viewparams
;
tempViewParamData
=
JSON
.
parse
(
JSON
.
stringify
(
filter
.
viewparams
));
}
if
(
Object
.
keys
(
resNavParams
).
length
>
0
){
Object
.
keys
(
resNavParams
).
forEach
((
item
:
any
)
=>
{
let
curDataObj
:
any
=
resNavParams
[
item
];
this
.
handleCustomDataLogic
(
context
,
tempViewParams
,
curDataObj
,
tempViewParamData
,
item
);
})
}
if
(
Object
.
keys
(
resParams
).
length
>
0
){
Object
.
keys
(
resParams
).
forEach
((
item
:
any
)
=>
{
let
curDataObj
:
any
=
resParams
[
item
];
tempViewParamData
[
item
.
toLowerCase
()]
=
curDataObj
.
value
;
})
}
Object
.
assign
(
filter
,{
viewparams
:
tempViewParamData
});
return
filter
;
}
else
{
return
filter
;
}
}
/**
* 处理自定义节点关系导航数据
*
* @param context 应用上下文
* @param viewparams 参数
* @param curNavData 节点关系导航参数对象
* @param tempData 返回数据
* @param item 节点关系导航参数键值
*
* @memberof UsrService
*/
public
handleCustomDataLogic
(
context
:
any
,
viewparams
:
any
,
curNavData
:
any
,
tempData
:
any
,
item
:
string
){
// 直接值直接赋值
if
(
curNavData
.
isRawValue
){
if
(
Object
.
is
(
curNavData
.
value
,
"null"
)
||
Object
.
is
(
curNavData
.
value
,
""
)){
Object
.
defineProperty
(
tempData
,
item
.
toLowerCase
(),
{
value
:
null
,
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
else
{
Object
.
defineProperty
(
tempData
,
item
.
toLowerCase
(),
{
value
:
curNavData
.
value
,
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
}
else
{
// 先从导航上下文取数,没有再从导航参数(URL)取数,如果导航上下文和导航参数都没有则为null
if
(
context
[(
curNavData
.
value
).
toLowerCase
()]
!=
null
){
Object
.
defineProperty
(
tempData
,
item
.
toLowerCase
(),
{
value
:
context
[(
curNavData
.
value
).
toLowerCase
()],
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
else
{
if
(
viewparams
[(
curNavData
.
value
).
toLowerCase
()]
!=
null
){
Object
.
defineProperty
(
tempData
,
item
.
toLowerCase
(),
{
value
:
viewparams
[(
curNavData
.
value
).
toLowerCase
()],
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
else
{
Object
.
defineProperty
(
tempData
,
item
.
toLowerCase
(),
{
value
:
null
,
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
}
}
}
}
\ No newline at end of file
app_Web/src/widgets/ibizbook/usr-gantt/usr-gantt.less
0 → 100644
浏览文件 @
6d68cda5
.app-gantt{
height: 100%;
.gantt {
height: 100%;
.gantt-elastic__main-view-container {
flex-grow: 1;
}
}
.app-data-empty{
height: 100%;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: center;
}
}
// this is less
app_Web/src/widgets/ibizbook/usr-gantt/usr-gantt.vue
0 → 100644
浏览文件 @
6d68cda5
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
UsrBase
from
'./usr-gantt-base.vue'
;
@
Component
({
components
:
{
}
})
export
default
class
Usr
extends
UsrBase
{
}
</
script
>
\ No newline at end of file
app_Web/src/widgets/ibizorder/main-grid/main-grid-base.vue
浏览文件 @
6d68cda5
...
...
@@ -1070,9 +1070,9 @@ export default class MainBase extends Vue implements ControlInterface {
serviceName
:
'ibizorder'
,
appDeLogicName
:
'订单'
,
importData
:{
"IBIZORDERNAME"
:{
"headername"
:
"订单名称"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizordername"
,
"order"
:
1000
},
"ORDERTYPE"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"ORDERTYPE"
,
"isnumber"
:
false
},
"headername"
:
"订单类型"
,
"isuniqueitem"
:
false
,
"name"
:
"ordertype"
,
"order"
:
1000
},
"ORDERTIME"
:{
"headername"
:
"订单时间"
,
"isuniqueitem"
:
false
,
"name"
:
"ordertime"
,
"order"
:
1000
},
"IBIZORDERNAME"
:{
"headername"
:
"订单名称"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizordername"
,
"order"
:
1000
},
"ORDERUID"
:{
"headername"
:
"订单编号"
,
"isuniqueitem"
:
true
,
"name"
:
"orderuid"
,
"order"
:
1000
}
}
}
...
...
app_Web/src/widgets/ibizorder/uipart-0015-grid/uipart-0015-grid-base.vue
浏览文件 @
6d68cda5
...
...
@@ -1066,9 +1066,9 @@ export default class UIPART_0015Base extends Vue implements ControlInterface {
serviceName
:
'ibizorder'
,
appDeLogicName
:
'订单'
,
importData
:{
"IBIZORDERNAME"
:{
"headername"
:
"订单名称"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizordername"
,
"order"
:
1000
},
"ORDERTYPE"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"ORDERTYPE"
,
"isnumber"
:
false
},
"headername"
:
"订单类型"
,
"isuniqueitem"
:
false
,
"name"
:
"ordertype"
,
"order"
:
1000
},
"ORDERTIME"
:{
"headername"
:
"订单时间"
,
"isuniqueitem"
:
false
,
"name"
:
"ordertime"
,
"order"
:
1000
},
"IBIZORDERNAME"
:{
"headername"
:
"订单名称"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizordername"
,
"order"
:
1000
},
"ORDERUID"
:{
"headername"
:
"订单编号"
,
"isuniqueitem"
:
true
,
"name"
:
"orderuid"
,
"order"
:
1000
}
}
}
...
...
app_Web/src/widgets/ibizorder/uipart-0017-grid/uipart-0017-grid-base.vue
浏览文件 @
6d68cda5
...
...
@@ -1189,9 +1189,9 @@ export default class UIPART_0017Base extends Vue implements ControlInterface {
serviceName
:
'ibizorder'
,
appDeLogicName
:
'订单'
,
importData
:{
"IBIZORDERNAME"
:{
"headername"
:
"订单名称"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizordername"
,
"order"
:
1000
},
"ORDERTYPE"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"ORDERTYPE"
,
"isnumber"
:
false
},
"headername"
:
"订单类型"
,
"isuniqueitem"
:
false
,
"name"
:
"ordertype"
,
"order"
:
1000
},
"ORDERTIME"
:{
"headername"
:
"订单时间"
,
"isuniqueitem"
:
false
,
"name"
:
"ordertime"
,
"order"
:
1000
},
"IBIZORDERNAME"
:{
"headername"
:
"订单名称"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizordername"
,
"order"
:
1000
},
"ORDERUID"
:{
"headername"
:
"订单编号"
,
"isuniqueitem"
:
true
,
"name"
:
"orderuid"
,
"order"
:
1000
}
}
}
...
...
app_Web/src/widgets/ibizorder/uipart-0018-grid/uipart-0018-grid-base.vue
浏览文件 @
6d68cda5
...
...
@@ -1121,9 +1121,9 @@ export default class UIPART_0018Base extends Vue implements ControlInterface {
serviceName
:
'ibizorder'
,
appDeLogicName
:
'订单'
,
importData
:{
"IBIZORDERNAME"
:{
"headername"
:
"订单名称"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizordername"
,
"order"
:
1000
},
"ORDERTYPE"
:{
"codelist"
:{
"type"
:
"DYNAMIC"
,
"tag"
:
"ORDERTYPE"
,
"isnumber"
:
false
},
"headername"
:
"订单类型"
,
"isuniqueitem"
:
false
,
"name"
:
"ordertype"
,
"order"
:
1000
},
"ORDERTIME"
:{
"headername"
:
"订单时间"
,
"isuniqueitem"
:
false
,
"name"
:
"ordertime"
,
"order"
:
1000
},
"IBIZORDERNAME"
:{
"headername"
:
"订单名称"
,
"isuniqueitem"
:
false
,
"name"
:
"ibizordername"
,
"order"
:
1000
},
"ORDERUID"
:{
"headername"
:
"订单编号"
,
"isuniqueitem"
:
true
,
"name"
:
"orderuid"
,
"order"
:
1000
}
}
}
...
...
demo-core/src/main/resources/liquibase/h2_table.xml
浏览文件 @
6d68cda5
...
...
@@ -28,7 +28,7 @@
<!--输出实体[IBIZBOOK]数据结构 -->
<changeSet
author=
"a_LAB01_df847bdfd"
id=
"tab-ibizbook-4
19
-2"
>
<changeSet
author=
"a_LAB01_df847bdfd"
id=
"tab-ibizbook-4
42
-2"
>
<createTable
tableName=
"T_IBIZBOOK"
>
<column
name=
"CREATEMAN"
remarks=
""
type=
"VARCHAR(60)"
>
</column>
...
...
demo-core/src/main/resources/permission/systemResource.json
浏览文件 @
6d68cda5
...
...
@@ -302,7 +302,7 @@
{
"appid"
:
"Web"
,
"appname"
:
"演示应用"
,
"appmenu"
:[{
"menuid"
:
"MainMenu"
,
"menuname"
:
"MainMenu"
,
"menuitem"
:[{
"id"
:
"menuitem1"
,
"name"
:
"工作台"
},{
"id"
:
"menuitem3"
,
"name"
:
"控件"
,
"items"
:[{
"id"
:
"menuitem6"
,
"name"
:
"默认数据类型"
},{
"id"
:
"menuitem7"
,
"name"
:
"默认编辑器类型"
},{
"id"
:
"menuitem15"
,
"name"
:
"基础表单项"
},{
"id"
:
"menuitem72"
,
"name"
:
"扩展编辑器"
}]},{
"id"
:
"menuitem4"
,
"name"
:
"部件"
,
"items"
:[{
"id"
:
"menuitem12"
,
"name"
:
"编辑表单"
,
"items"
:[{
"id"
:
"menuitem107"
,
"name"
:
"内置功能"
},{
"id"
:
"menuitem47"
,
"name"
:
"新建默认值"
},{
"id"
:
"menuitem99"
,
"name"
:
"更新默认值"
},{
"id"
:
"menuitem48"
,
"name"
:
"输入提示"
},{
"id"
:
"menuitem49"
,
"name"
:
"辅助输入"
},{
"id"
:
"menuitem50"
,
"name"
:
"自动填充"
},{
"id"
:
"menuitem51"
,
"name"
:
"超链接"
},{
"id"
:
"menuitem52"
,
"name"
:
"表单值重置"
},{
"id"
:
"menuitem55"
,
"name"
:
"动态显示"
},{
"id"
:
"menuitem53"
,
"name"
:
"动态启用"
},{
"id"
:
"menuitem54"
,
"name"
:
"动态空输入"
},{
"id"
:
"menuitem56"
,
"name"
:
"表单项更新"
},{
"id"
:
"menuitem108"
,
"name"
:
"表单值规则"
}]},{
"id"
:
"menuitem16"
,
"name"
:
"搜索表单"
},{
"id"
:
"menuitem13"
,
"name"
:
"表格"
,
"items"
:[{
"id"
:
"menuitem57"
,
"name"
:
"禁用排序"
},{
"id"
:
"menuitem59"
,
"name"
:
"行操作"
},{
"id"
:
"menuitem58"
,
"name"
:
"行编辑"
},{
"id"
:
"menuitem73"
,
"name"
:
"表格内置功能"
},{
"id"
:
"menuitem74"
,
"name"
:
"表格行编辑"
},{
"id"
:
"menuitem75"
,
"name"
:
"新建默认值"
},{
"id"
:
"menuitem76"
,
"name"
:
"更新默认值"
},{
"id"
:
"menuitem77"
,
"name"
:
"表格值规则"
},{
"id"
:
"menuitem78"
,
"name"
:
"自动分组"
},{
"id"
:
"menuitem80"
,
"name"
:
"代码表分组"
},{
"id"
:
"menuitem81"
,
"name"
:
"当前页聚合"
},{
"id"
:
"menuitem82"
,
"name"
:
"远程聚合"
}]},{
"id"
:
"menuitem83"
,
"name"
:
"列表"
,
"items"
:[{
"id"
:
"menuitem84"
,
"name"
:
"列表内置功能"
},{
"id"
:
"menuitem85"
,
"name"
:
"列表自动分组"
},{
"id"
:
"menuitem86"
,
"name"
:
"代码表分组"
},{
"id"
:
"menuitem91"
,
"name"
:
"列表嵌入面板"
}]},{
"id"
:
"menuitem14"
,
"name"
:
"树视图"
,
"items"
:[{
"id"
:
"menuitem60"
,
"name"
:
"静态节点"
},{
"id"
:
"menuitem61"
,
"name"
:
"动态节点(代码表)"
},{
"id"
:
"menuitem62"
,
"name"
:
"动态节点(实体)"
},{
"id"
:
"menuitem63"
,
"name"
:
"右键操作"
},{
"id"
:
"menuitem64"
,
"name"
:
"动态参数过滤"
},{
"id"
:
"menuitem110"
,
"name"
:
"树表格"
}]},{
"id"
:
"menuitem37"
,
"name"
:
"图表"
,
"items"
:[{
"id"
:
"menuitem38"
,
"name"
:
"柱状图"
},{
"id"
:
"menuitem39"
,
"name"
:
"折线图"
},{
"id"
:
"menuitem40"
,
"name"
:
"饼图"
},{
"id"
:
"menuitem41"
,
"name"
:
"区域图"
},{
"id"
:
"menuitem42"
,
"name"
:
"雷达图"
},{
"id"
:
"menuitem43"
,
"name"
:
"仪表盘"
},{
"id"
:
"menuitem44"
,
"name"
:
"K线图"
}]},{
"id"
:
"menuitem17"
,
"name"
:
"向导"
},{
"id"
:
"menuitem18"
,
"name"
:
"界面行为"
,
"items"
:[{
"id"
:
"menuitem65"
,
"name"
:
"前端界面行为"
},{
"id"
:
"menuitem66"
,
"name"
:
"后台界面行为"
}]},{
"id"
:
"menuitem87"
,
"name"
:
"数据视图"
,
"items"
:[{
"id"
:
"menuitem88"
,
"name"
:
"内置功能"
},{
"id"
:
"menuitem89"
,
"name"
:
"自动分组"
},{
"id"
:
"menuitem90"
,
"name"
:
"代码表分组"
},{
"id"
:
"menuitem94"
,
"name"
:
"项布局面板"
}]},{
"id"
:
"menuitem95"
,
"name"
:
"日历"
,
"items"
:[{
"id"
:
"menuitem96"
,
"name"
:
"内置功能"
},{
"id"
:
"menuitem97"
,
"name"
:
"时间轴样式"
},{
"id"
:
"menuitem109"
,
"name"
:
"项布局面板"
}]},{
"id"
:
"menuitem101"
,
"name"
:
"看板"
,
"items"
:[{
"id"
:
"menuitem102"
,
"name"
:
"看板内置功能"
},{
"id"
:
"menuitem104"
,
"name"
:
"代码表分组"
},{
"id"
:
"menuitem105"
,
"name"
:
"嵌入视图面板"
}]}]},{
"id"
:
"menuitem5"
,
"name"
:
"视图"
,
"items"
:[{
"id"
:
"menuitem9"
,
"name"
:
"列表视图"
,
"items"
:[{
"id"
:
"menuitem19"
,
"name"
:
"常规表格视图"
},{
"id"
:
"menuitem21"
,
"name"
:
"左右表格视图"
},{
"id"
:
"menuitem20"
,
"name"
:
"嵌入表格视图"
}]},{
"id"
:
"menuitem8"
,
"name"
:
"编辑视图"
,
"items"
:[{
"id"
:
"menuitem22"
,
"name"
:
"常规编辑视图"
},{
"id"
:
"menuitem23"
,
"name"
:
"左右编辑视图"
},{
"id"
:
"menuitem24"
,
"name"
:
"分页编辑视图"
},{
"id"
:
"menuitem25"
,
"name"
:
"嵌入编辑视图"
}]},{
"id"
:
"menuitem26"
,
"name"
:
"选择视图"
,
"items"
:[{
"id"
:
"menuitem27"
,
"name"
:
"单选视图"
},{
"id"
:
"menuitem28"
,
"name"
:
"多选视图"
},{
"id"
:
"menuitem29"
,
"name"
:
"树形选择视图"
},{
"id"
:
"menuitem30"
,
"name"
:
"左右单选视图"
},{
"id"
:
"menuitem31"
,
"name"
:
"左右多选视图"
}]},{
"id"
:
"menuitem10"
,
"name"
:
"导航视图"
,
"items"
:[{
"id"
:
"menuitem32"
,
"name"
:
"常规导航视图"
},{
"id"
:
"menuitem33"
,
"name"
:
"分页导航视图"
},{
"id"
:
"menuitem34"
,
"name"
:
"嵌入导航视图"
}]},{
"id"
:
"menuitem11"
,
"name"
:
"其他视图"
,
"items"
:[{
"id"
:
"menuitem35"
,
"name"
:
"图表视图"
},{
"id"
:
"menuitem36"
,
"name"
:
"报表视图"
},{
"id"
:
"menuitem98"
,
"name"
:
"自定义视图"
}]},{
"id"
:
"menuitem79"
,
"name"
:
"表格视图"
}]},{
"id"
:
"menuitem69"
,
"name"
:
"工作流"
},{
"id"
:
"menuitem2"
,
"name"
:
"更多"
,
"items"
:[{
"id"
:
"menuitem46"
,
"name"
:
"数据导出导入"
},{
"id"
:
"menuitem45"
,
"name"
:
"数据打印"
},{
"id"
:
"menuitem67"
,
"name"
:
"索引实体"
},{
"id"
:
"menuitem68"
,
"name"
:
"继承实体"
},{
"id"
:
"menuitem70"
,
"name"
:
"主状态"
},{
"id"
:
"menuitem71"
,
"name"
:
"多表单"
}]},{
"id"
:
"menuitem92"
,
"name"
:
"其他"
,
"items"
:[{
"id"
:
"menuitem93"
,
"name"
:
"示例实体02示例数据补充"
},{
"id"
:
"menuitem100"
,
"name"
:
"订单示例数据补充"
},{
"id"
:
"menuitem103"
,
"name"
:
"产品示例数据补充"
},{
"id"
:
"menuitem106"
,
"name"
:
"示例实体03示例数据补充"
}]}]
}]
"appmenu"
:[{
"menuid"
:
"MainMenu"
,
"menuname"
:
"MainMenu"
,
"menuitem"
:[{
"id"
:
"menuitem1"
,
"name"
:
"工作台"
},{
"id"
:
"menuitem3"
,
"name"
:
"控件"
,
"items"
:[{
"id"
:
"menuitem6"
,
"name"
:
"默认数据类型"
},{
"id"
:
"menuitem7"
,
"name"
:
"默认编辑器类型"
},{
"id"
:
"menuitem15"
,
"name"
:
"基础表单项"
},{
"id"
:
"menuitem72"
,
"name"
:
"扩展编辑器"
}]},{
"id"
:
"menuitem4"
,
"name"
:
"部件"
,
"items"
:[{
"id"
:
"menuitem12"
,
"name"
:
"编辑表单"
,
"items"
:[{
"id"
:
"menuitem107"
,
"name"
:
"内置功能"
},{
"id"
:
"menuitem47"
,
"name"
:
"新建默认值"
},{
"id"
:
"menuitem99"
,
"name"
:
"更新默认值"
},{
"id"
:
"menuitem48"
,
"name"
:
"输入提示"
},{
"id"
:
"menuitem49"
,
"name"
:
"辅助输入"
},{
"id"
:
"menuitem50"
,
"name"
:
"自动填充"
},{
"id"
:
"menuitem51"
,
"name"
:
"超链接"
},{
"id"
:
"menuitem52"
,
"name"
:
"表单值重置"
},{
"id"
:
"menuitem55"
,
"name"
:
"动态显示"
},{
"id"
:
"menuitem53"
,
"name"
:
"动态启用"
},{
"id"
:
"menuitem54"
,
"name"
:
"动态空输入"
},{
"id"
:
"menuitem56"
,
"name"
:
"表单项更新"
},{
"id"
:
"menuitem108"
,
"name"
:
"表单值规则"
}]},{
"id"
:
"menuitem16"
,
"name"
:
"搜索表单"
},{
"id"
:
"menuitem13"
,
"name"
:
"表格"
,
"items"
:[{
"id"
:
"menuitem57"
,
"name"
:
"禁用排序"
},{
"id"
:
"menuitem59"
,
"name"
:
"行操作"
},{
"id"
:
"menuitem58"
,
"name"
:
"行编辑"
},{
"id"
:
"menuitem73"
,
"name"
:
"表格内置功能"
},{
"id"
:
"menuitem74"
,
"name"
:
"表格行编辑"
},{
"id"
:
"menuitem75"
,
"name"
:
"新建默认值"
},{
"id"
:
"menuitem76"
,
"name"
:
"更新默认值"
},{
"id"
:
"menuitem77"
,
"name"
:
"表格值规则"
},{
"id"
:
"menuitem78"
,
"name"
:
"自动分组"
},{
"id"
:
"menuitem80"
,
"name"
:
"代码表分组"
},{
"id"
:
"menuitem81"
,
"name"
:
"当前页聚合"
},{
"id"
:
"menuitem82"
,
"name"
:
"远程聚合"
}]},{
"id"
:
"menuitem83"
,
"name"
:
"列表"
,
"items"
:[{
"id"
:
"menuitem84"
,
"name"
:
"列表内置功能"
},{
"id"
:
"menuitem85"
,
"name"
:
"列表自动分组"
},{
"id"
:
"menuitem86"
,
"name"
:
"代码表分组"
},{
"id"
:
"menuitem91"
,
"name"
:
"列表嵌入面板"
}]},{
"id"
:
"menuitem14"
,
"name"
:
"树视图"
,
"items"
:[{
"id"
:
"menuitem60"
,
"name"
:
"静态节点"
},{
"id"
:
"menuitem61"
,
"name"
:
"动态节点(代码表)"
},{
"id"
:
"menuitem62"
,
"name"
:
"动态节点(实体)"
},{
"id"
:
"menuitem63"
,
"name"
:
"右键操作"
},{
"id"
:
"menuitem64"
,
"name"
:
"动态参数过滤"
},{
"id"
:
"menuitem110"
,
"name"
:
"树表格"
}]},{
"id"
:
"menuitem37"
,
"name"
:
"图表"
,
"items"
:[{
"id"
:
"menuitem38"
,
"name"
:
"柱状图"
},{
"id"
:
"menuitem39"
,
"name"
:
"折线图"
},{
"id"
:
"menuitem40"
,
"name"
:
"饼图"
},{
"id"
:
"menuitem41"
,
"name"
:
"区域图"
},{
"id"
:
"menuitem42"
,
"name"
:
"雷达图"
},{
"id"
:
"menuitem43"
,
"name"
:
"仪表盘"
},{
"id"
:
"menuitem44"
,
"name"
:
"K线图"
}]},{
"id"
:
"menuitem17"
,
"name"
:
"向导"
},{
"id"
:
"menuitem18"
,
"name"
:
"界面行为"
,
"items"
:[{
"id"
:
"menuitem65"
,
"name"
:
"前端界面行为"
},{
"id"
:
"menuitem66"
,
"name"
:
"后台界面行为"
}]},{
"id"
:
"menuitem87"
,
"name"
:
"数据视图"
,
"items"
:[{
"id"
:
"menuitem88"
,
"name"
:
"内置功能"
},{
"id"
:
"menuitem89"
,
"name"
:
"自动分组"
},{
"id"
:
"menuitem90"
,
"name"
:
"代码表分组"
},{
"id"
:
"menuitem94"
,
"name"
:
"项布局面板"
}]},{
"id"
:
"menuitem95"
,
"name"
:
"日历"
,
"items"
:[{
"id"
:
"menuitem96"
,
"name"
:
"内置功能"
},{
"id"
:
"menuitem97"
,
"name"
:
"时间轴样式"
},{
"id"
:
"menuitem109"
,
"name"
:
"项布局面板"
}]},{
"id"
:
"menuitem101"
,
"name"
:
"看板"
,
"items"
:[{
"id"
:
"menuitem102"
,
"name"
:
"看板内置功能"
},{
"id"
:
"menuitem104"
,
"name"
:
"代码表分组"
},{
"id"
:
"menuitem105"
,
"name"
:
"嵌入视图面板"
}]}
,{
"id"
:
"menuitem111"
,
"name"
:
"甘特图"
,
"items"
:[{
"id"
:
"menuitem112"
,
"name"
:
"甘特图"
}]}
]},{
"id"
:
"menuitem5"
,
"name"
:
"视图"
,
"items"
:[{
"id"
:
"menuitem9"
,
"name"
:
"列表视图"
,
"items"
:[{
"id"
:
"menuitem19"
,
"name"
:
"常规表格视图"
},{
"id"
:
"menuitem21"
,
"name"
:
"左右表格视图"
},{
"id"
:
"menuitem20"
,
"name"
:
"嵌入表格视图"
}]},{
"id"
:
"menuitem8"
,
"name"
:
"编辑视图"
,
"items"
:[{
"id"
:
"menuitem22"
,
"name"
:
"常规编辑视图"
},{
"id"
:
"menuitem23"
,
"name"
:
"左右编辑视图"
},{
"id"
:
"menuitem24"
,
"name"
:
"分页编辑视图"
},{
"id"
:
"menuitem25"
,
"name"
:
"嵌入编辑视图"
}]},{
"id"
:
"menuitem26"
,
"name"
:
"选择视图"
,
"items"
:[{
"id"
:
"menuitem27"
,
"name"
:
"单选视图"
},{
"id"
:
"menuitem28"
,
"name"
:
"多选视图"
},{
"id"
:
"menuitem29"
,
"name"
:
"树形选择视图"
},{
"id"
:
"menuitem30"
,
"name"
:
"左右单选视图"
},{
"id"
:
"menuitem31"
,
"name"
:
"左右多选视图"
}]},{
"id"
:
"menuitem10"
,
"name"
:
"导航视图"
,
"items"
:[{
"id"
:
"menuitem32"
,
"name"
:
"常规导航视图"
},{
"id"
:
"menuitem33"
,
"name"
:
"分页导航视图"
},{
"id"
:
"menuitem34"
,
"name"
:
"嵌入导航视图"
}]},{
"id"
:
"menuitem11"
,
"name"
:
"其他视图"
,
"items"
:[{
"id"
:
"menuitem35"
,
"name"
:
"图表视图"
},{
"id"
:
"menuitem36"
,
"name"
:
"报表视图"
},{
"id"
:
"menuitem98"
,
"name"
:
"自定义视图"
}]},{
"id"
:
"menuitem79"
,
"name"
:
"表格视图"
}]},{
"id"
:
"menuitem69"
,
"name"
:
"工作流"
},{
"id"
:
"menuitem2"
,
"name"
:
"更多"
,
"items"
:[{
"id"
:
"menuitem46"
,
"name"
:
"数据导出导入"
},{
"id"
:
"menuitem45"
,
"name"
:
"数据打印"
},{
"id"
:
"menuitem67"
,
"name"
:
"索引实体"
},{
"id"
:
"menuitem68"
,
"name"
:
"继承实体"
},{
"id"
:
"menuitem70"
,
"name"
:
"主状态"
},{
"id"
:
"menuitem71"
,
"name"
:
"多表单"
}]},{
"id"
:
"menuitem92"
,
"name"
:
"其他"
,
"items"
:[{
"id"
:
"menuitem93"
,
"name"
:
"示例实体02示例数据补充"
},{
"id"
:
"menuitem100"
,
"name"
:
"订单示例数据补充"
},{
"id"
:
"menuitem103"
,
"name"
:
"产品示例数据补充"
},{
"id"
:
"menuitem106"
,
"name"
:
"示例实体03示例数据补充"
}]}]
}]
}
]
}
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录