Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
功
功能演示系统
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
示例
功能演示系统
提交
9270c85e
提交
9270c85e
编写于
12月 07, 2022
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
tony001 发布系统代码 [后台服务,演示应用]
上级
885d58df
变更
12
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
161 行增加
和
85 行删除
+161
-85
default-searchform-base.vue
...zappeditor/default-searchform/default-searchform-base.vue
+2
-2
lnternal-func-list-list-base.vue
.../lnternal-func-list-list/lnternal-func-list-list-base.vue
+20
-20
plugin-grid-base.vue
...Web/src/widgets/ibizbook/plugin-grid/plugin-grid-base.vue
+65
-2
usr1207735605-form-base.vue
...s/ibizbook/usr1207735605-form/usr1207735605-form-base.vue
+3
-1
main-grid-base.vue
...src/widgets/ibizorder-detail/main-grid/main-grid-base.vue
+6
-6
main-grid-model.ts
...src/widgets/ibizorder-detail/main-grid/main-grid-model.ts
+1
-0
Usr.json
...SSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK/PSGANTTS/Usr.json
+12
-12
TreeTable.json
.../PSAPPDATAENTITIES/IBIZBOOK/PSTREEGRIDICES/TreeTable.json
+12
-12
IBIZBOOKGanttView.json
...temodel/PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKGanttView.json
+12
-12
IBIZBOOKTreeGridExView.json
...el/PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKTreeGridExView.json
+12
-12
PSSYSAPP.json
.../resources/static/remotemodel/PSSYSAPPS/Web/PSSYSAPP.json
+8
-3
PSSYSAPP.simple.json
...ces/static/remotemodel/PSSYSAPPS/Web/PSSYSAPP.simple.json
+8
-3
未找到文件。
app_Web/src/widgets/ibizappeditor/default-searchform/default-searchform-base.vue
浏览文件 @
9270c85e
...
...
@@ -639,7 +639,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public
load
(
opt
:
any
=
{}):
void
{
if
(
!
this
.
loadAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZAPPEDITOR
Grid
View'
+
(
this
.
$t
(
'app.searchForm.notConfig.loadAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZAPPEDITOR
List
View'
+
(
this
.
$t
(
'app.searchForm.notConfig.loadAction'
)
as
string
)
});
return
;
}
const
arg
:
any
=
{
...
opt
};
...
...
@@ -675,7 +675,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public
async
loadDraft
(
opt
:
any
=
{},
mode
?:
string
):
Promise
<
any
>
{
if
(
!
this
.
loaddraftAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZAPPEDITOR
Grid
View'
+
(
this
.
$t
(
'app.searchForm.notConfig.loaddraftAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZAPPEDITOR
List
View'
+
(
this
.
$t
(
'app.searchForm.notConfig.loaddraftAction'
)
as
string
)
});
return
;
}
const
arg
:
any
=
{
...
opt
}
;
...
...
app_Web/src/widgets/ibizbook/lnternal-func-list-list/lnternal-func-list-list-base.vue
浏览文件 @
9270c85e
...
...
@@ -46,11 +46,11 @@
<span
class=
"quick-toolbar"
>
<div
class=
'toolbar-container'
>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"
usr4listview_layoutlist_quicktoolbarModels.deuiaction1.visabled"
:disabled=
"usr4listview_layout
list_quicktoolbarModels.deuiaction1.disabled"
class=
''
v-button-loading:i-button
@
click=
"list_quicktoolbar_click({ tag: 'deuiaction1' }, $event)"
>
<i-button
v-show=
"
listviewlist_quicktoolbarModels.deuiaction1.visabled"
:disabled=
"listview
list_quicktoolbarModels.deuiaction1.disabled"
class=
''
v-button-loading:i-button
@
click=
"list_quicktoolbar_click({ tag: 'deuiaction1' }, $event)"
>
<i
class=
'fa fa-file-text-o'
></i>
<span
class=
'caption'
>
{{$t('entities.ibizbook.
usr4listview_layout
list_quicktoolbar_toolbar.deuiaction1.caption')}}
</span>
<span
class=
'caption'
>
{{$t('entities.ibizbook.
listview
list_quicktoolbar_toolbar.deuiaction1.caption')}}
</span>
</i-button>
<div
slot=
'content'
>
{{$t('entities.ibizbook.
usr4listview_layout
list_quicktoolbar_toolbar.deuiaction1.tip')}}
</div>
<div
slot=
'content'
>
{{$t('entities.ibizbook.
listview
list_quicktoolbar_toolbar.deuiaction1.tip')}}
</div>
</tooltip>
</div>
</span>
...
...
@@ -61,18 +61,18 @@
<span
class=
"batch-toolbar"
>
<div
class=
'toolbar-container'
>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"
usr4listview_layoutlist_batchtoolbarModels.deuiaction1.visabled"
:disabled=
"usr4listview_layout
list_batchtoolbarModels.deuiaction1.disabled"
class=
''
v-button-loading:i-button
@
click=
"list_batchtoolbar_click({ tag: 'deuiaction1' }, $event)"
>
<i-button
v-show=
"
listviewlist_batchtoolbarModels.deuiaction1.visabled"
:disabled=
"listview
list_batchtoolbarModels.deuiaction1.disabled"
class=
''
v-button-loading:i-button
@
click=
"list_batchtoolbar_click({ tag: 'deuiaction1' }, $event)"
>
<i
class=
'fa fa-edit'
></i>
<span
class=
'caption'
>
{{$t('entities.ibizbook.
usr4listview_layout
list_batchtoolbar_toolbar.deuiaction1.caption')}}
</span>
<span
class=
'caption'
>
{{$t('entities.ibizbook.
listview
list_batchtoolbar_toolbar.deuiaction1.caption')}}
</span>
</i-button>
<div
slot=
'content'
>
{{$t('entities.ibizbook.
usr4listview_layout
list_batchtoolbar_toolbar.deuiaction1.tip')}}
</div>
<div
slot=
'content'
>
{{$t('entities.ibizbook.
listview
list_batchtoolbar_toolbar.deuiaction1.tip')}}
</div>
</tooltip>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"
usr4listview_layoutlist_batchtoolbarModels.deuiaction2.visabled"
:disabled=
"usr4listview_layout
list_batchtoolbarModels.deuiaction2.disabled"
class=
''
v-button-loading:i-button
@
click=
"list_batchtoolbar_click({ tag: 'deuiaction2' }, $event)"
>
<i-button
v-show=
"
listviewlist_batchtoolbarModels.deuiaction2.visabled"
:disabled=
"listview
list_batchtoolbarModels.deuiaction2.disabled"
class=
''
v-button-loading:i-button
@
click=
"list_batchtoolbar_click({ tag: 'deuiaction2' }, $event)"
>
<i
class=
'fa fa-remove'
></i>
<span
class=
'caption'
>
{{$t('entities.ibizbook.
usr4listview_layout
list_batchtoolbar_toolbar.deuiaction2.caption')}}
</span>
<span
class=
'caption'
>
{{$t('entities.ibizbook.
listview
list_batchtoolbar_toolbar.deuiaction2.caption')}}
</span>
</i-button>
<div
slot=
'content'
>
{{$t('entities.ibizbook.
usr4listview_layout
list_batchtoolbar_toolbar.deuiaction2.tip')}}
</div>
<div
slot=
'content'
>
{{$t('entities.ibizbook.
listview
list_batchtoolbar_toolbar.deuiaction2.tip')}}
</div>
</tooltip>
</div>
</span>
...
...
@@ -382,7 +382,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof IBIZBOOK
Usr4ListView_layout
Base
* @memberof IBIZBOOK
ListView
Base
*/
public
New
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
const
_this
:
any
=
this
;
...
...
@@ -402,7 +402,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof IBIZBOOK
Usr4ListView_layout
Base
* @memberof IBIZBOOK
ListView
Base
*/
public
Edit
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
if
(
args
.
length
===
0
)
{
...
...
@@ -428,7 +428,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof IBIZBOOK
Usr4ListView_layout
Base
* @memberof IBIZBOOK
ListView
Base
*/
public
Remove
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
const
_this
:
any
=
this
;
...
...
@@ -624,9 +624,9 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac
* 工具栏模型
*
* @type {*}
* @memberof IBIZBOOK
Usr4ListView_layout
* @memberof IBIZBOOK
ListView
*/
public
usr4listview_layout
list_quicktoolbarModels
:
any
=
{
public
listview
list_quicktoolbarModels
:
any
=
{
deuiaction1
:
{
name
:
'deuiaction1'
,
actiontarget
:
'NONE'
,
caption
:
'新建'
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
noprivdisplaymode
:
2
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'New'
,
target
:
''
}
},
};
...
...
@@ -636,9 +636,9 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac
* 工具栏模型
*
* @type {*}
* @memberof IBIZBOOK
Usr4ListView_layout
* @memberof IBIZBOOK
ListView
*/
public
usr4listview_layout
list_batchtoolbarModels
:
any
=
{
public
listview
list_batchtoolbarModels
:
any
=
{
deuiaction1
:
{
name
:
'deuiaction1'
,
actiontarget
:
'NONE'
,
caption
:
'编辑'
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
noprivdisplaymode
:
2
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'Edit'
,
target
:
'SINGLEKEY'
}
},
deuiaction2
:
{
name
:
'deuiaction2'
,
actiontarget
:
'NONE'
,
caption
:
'删除'
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
noprivdisplaymode
:
2
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'Remove'
,
target
:
'MULTIKEY'
}
},
...
...
@@ -861,7 +861,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac
*/
public
async
load
(
opt
:
any
=
{}):
Promise
<
any
>
{
if
(
!
this
.
fetchAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOK
Usr4ListView_layout
'
+
(
this
.
$t
(
'app.list.notConfig.fetchAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOK
ListView
'
+
(
this
.
$t
(
'app.list.notConfig.fetchAction'
)
as
string
)
});
return
;
}
const
arg
:
any
=
{...
opt
};
...
...
@@ -991,7 +991,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac
*/
public
async
remove
(
datas
:
any
[]):
Promise
<
any
>
{
if
(
!
this
.
removeAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOK
Usr4ListView_layout
'
+
(
this
.
$t
(
'app.list.notConfig.removeAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOK
ListView
'
+
(
this
.
$t
(
'app.list.notConfig.removeAction'
)
as
string
)
});
return
;
}
if
(
datas
.
length
===
0
)
{
...
...
@@ -1096,7 +1096,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac
try
{
if
(
Object
.
is
(
item
.
rowDataState
,
'create'
)){
if
(
!
this
.
createAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOK
Usr4ListView_layout
'
+
(
this
.
$t
(
'app.list.notConfig.createAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOK
ListView
'
+
(
this
.
$t
(
'app.list.notConfig.createAction'
)
as
string
)
});
}
else
{
Object
.
assign
(
item
,{
viewparams
:
this
.
viewparams
});
let
response
=
await
this
.
service
.
add
(
this
.
createAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
item
,
this
.
showBusyIndicator
);
...
...
@@ -1104,7 +1104,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac
}
}
else
if
(
Object
.
is
(
item
.
rowDataState
,
'update'
)){
if
(
!
this
.
updateAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.warning'
)
as
string
),
desc
:
'IBIZBOOK
Usr4ListView_layout
'
+
(
this
.
$t
(
'app.list.notConfig.updateAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.warning'
)
as
string
),
desc
:
'IBIZBOOK
ListView
'
+
(
this
.
$t
(
'app.list.notConfig.updateAction'
)
as
string
)
});
}
else
{
Object
.
assign
(
item
,{
viewparams
:
this
.
viewparams
});
if
(
item
.
ibizbook
){
...
...
app_Web/src/widgets/ibizbook/plugin-grid/plugin-grid-base.vue
浏览文件 @
9270c85e
<
template
>
<div>
红色表格头
</div>
<div
:class=
"classNames"
:id=
"controlID"
style=
""
>
<a-form
class=
"control-content"
>
<AppGrid
:columns=
"model.columns"
:items=
"store.data"
:singleSelect=
"singleSelect"
:selections=
"store.selections"
:showHeader=
"model.showHeader"
:current=
"store.curPage"
:limit=
"store.limit"
:totalRecord=
"store.totalRecord"
:context=
"store.context"
:viewParams=
"store.viewParams"
:enableRowEdit=
"model.enableRowEdit"
:paging=
"model.paging"
@
row-click=
"handleRowClick"
@
row-db-click=
"handleRowDbClick"
@
selection-change=
"handleSelectionChange"
@
sort-change=
"(field: string, dir: '' | 'asc' | 'desc') => handleSortChange(controller, field, dir)"
@
page-change=
"(currentPage: number) => handlePageChange(controller, currentPage)"
@
page-size-change=
"(pageSize: number) => handlePageSizeChange(controller, pageSize)"
@
action-click=
"(logic: any, data: IParam, event: MouseEvent) => handleActionClick(controller, logic as IViewLogicInput, data, event)"
>
</AppGrid>
</a-form>
</div>
</
template
>
// 基于 @CONTROL/表格/CONTROL-BASE.vue.ftl 生成
<
script
lang=
'tsx'
>
...
...
@@ -192,7 +217,45 @@ export default class PluginBase extends Vue implements ControlInterface {
}
import
{
AppGrid
}
from
"@components/widgets/grid"
;
import
{
IContext
,
IParam
,
IViewLogicInput
}
from
"@/core"
;
import
{
GridActionType
,
ICtrlDataAction
,
IGridAbility
,
IGridControllerParams
,
IGridStore
,
GridController
,
ILoadingHelper
,
LoadingHelper
,
createUUID
,
IViewCtx
}
from
"@/core"
;
import
{
handlePageChange
,
handlePageSizeChange
,
handleSortChange
,
handleComponentAction
}
from
'@/hooks/use-ctrl'
;
import
{
useNavParamsBind
,
useEventBind
,
handleActionClick
,
getCtrlClassNames
}
from
'@/hooks/use-ctrl'
;
import
GridService
from
"@/core/modules/ctrl-service/grid-service"
;
interface
Props
{
name
?:
string
;
context
:
IContext
;
viewParams
:
IParam
;
localContext
?:
IParam
,
localViewParams
?:
IParam
,
closeView
?:
Function
;
pLoadingHelper
?:
ILoadingHelper
;
pViewCtx
?:
IViewCtx
;
openView
?:
Function
;
newView
?:
Function
;
actions
:
ICtrlDataAction
;
singleSelect
?:
boolean
;
selectFirstDefault
?:
boolean
;
rowActiveMode
?:
0
|
1
|
2
;
defaultEnableRowEdit
?:
boolean
;
controller
:
GridController
}
const
props
=
withDefaults
(
defineProps
<
Props
>
(),
{
singleSelect
:
false
,
rowActiveMode
:
2
});
const
model
:
IParam
=
props
.
controller
.
getModel
();
const
store
=
props
.
controller
.
getStore
();
const
classNames
=
computed
(()
=>
{
const
names
=
getCtrlClassNames
(
model
,
props
);
Object
.
assign
(
names
,
{
"app-control-grid--no-paging-bar"
:
model
.
enablePagingBar
,
"red-grid-header"
:
true
});
return
names
;
});
/**
* 代码表服务对象
...
...
app_Web/src/widgets/ibizbook/usr1207735605-form/usr1207735605-form-base.vue
浏览文件 @
9270c85e
<
template
>
<div>
iframe
</div>
<div
class=
"form-iframe"
>
<iframe
width=
"100%"
height=
"100%"
src=
"https://www.baidu.com//"
/>
</div>
</
template
>
// 基于 @CONTROL/表单/CONTROL-BASE.vue.ftl 生成
<
script
lang=
'tsx'
>
...
...
app_Web/src/widgets/ibizorder-detail/main-grid/main-grid-base.vue
浏览文件 @
9270c85e
...
...
@@ -964,7 +964,7 @@ export default class MainBase extends Vue implements ControlInterface {
if
(
!
this
.
fetchAction
)
{
this
.
$Notice
.
error
({
title
:
this
.
$t
(
"app.commonWords.wrong"
)
as
string
,
desc
:
"IBIZOrderDetail
GridView9
"
+
(
this
.
$t
(
"app.gridpage.notConfig.fetchAction"
)
as
string
),
desc
:
"IBIZOrderDetail
SGridView
"
+
(
this
.
$t
(
"app.gridpage.notConfig.fetchAction"
)
as
string
),
});
return
;
}
...
...
@@ -1093,7 +1093,7 @@ export default class MainBase extends Vue implements ControlInterface {
if
(
!
this
.
removeAction
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderDetail
GridView9
'
+
(
this
.
$t
(
'app.gridpage.notConfig.removeAction'
)
as
string
)
desc
:
'IBIZOrderDetail
SGridView
'
+
(
this
.
$t
(
'app.gridpage.notConfig.removeAction'
)
as
string
)
});
return
;
}
...
...
@@ -1207,7 +1207,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public
addBatch
(
arg
:
any
=
{}):
void
{
if
(
!
this
.
fetchAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderDetail
GridView9
'
+
(
this
.
$t
(
'app.gridpage.notConfig.fetchAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderDetail
SGridView
'
+
(
this
.
$t
(
'app.gridpage.notConfig.fetchAction'
)
as
string
)
});
return
;
}
if
(
!
arg
){
...
...
@@ -2101,7 +2101,7 @@ export default class MainBase extends Vue implements ControlInterface {
try
{
if
(
Object
.
is
(
item
.
rowDataState
,
'create'
))
{
if
(
!
this
.
createAction
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderDetail
GridView9
'
+
(
this
.
$t
(
'app.gridpage.notConfig.createAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderDetail
SGridView
'
+
(
this
.
$t
(
'app.gridpage.notConfig.createAction'
)
as
string
)
});
}
else
{
Object
.
assign
(
item
,
{
viewparams
:
this
.
viewparams
});
const
tempContext
=
Util
.
deepCopy
(
this
.
context
);
...
...
@@ -2110,7 +2110,7 @@ export default class MainBase extends Vue implements ControlInterface {
}
}
else
if
(
Object
.
is
(
item
.
rowDataState
,
'update'
)){
if
(
!
this
.
updateAction
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderDetail
GridView9
'
+
(
this
.
$t
(
'app.gridpage.notConfig.updateAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderDetail
SGridView
'
+
(
this
.
$t
(
'app.gridpage.notConfig.updateAction'
)
as
string
)
});
}
else
{
Object
.
assign
(
item
,
{
viewparams
:
this
.
viewparams
});
const
tempContext
=
Util
.
deepCopy
(
this
.
context
);
...
...
@@ -2186,7 +2186,7 @@ export default class MainBase extends Vue implements ControlInterface {
if
(
!
this
.
loaddraftAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrderDetail
GridView9
'
+
(
this
.
$t
(
'app.gridpage.notConfig.loaddraftAction'
)
as
string
)
desc
:
'IBIZOrderDetail
SGridView
'
+
(
this
.
$t
(
'app.gridpage.notConfig.loaddraftAction'
)
as
string
)
});
return
;
}
...
...
app_Web/src/widgets/ibizorder-detail/main-grid/main-grid-model.ts
浏览文件 @
9270c85e
...
...
@@ -97,6 +97,7 @@ export default class MainModel {
name
:
'ibizorderdetail'
,
prop
:
'ibizorderdetailid'
,
},
{
name
:
'size'
,
prop
:
'size'
,
...
...
demo-boot/src/main/resources/static/remotemodel/PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK/PSGANTTS/Usr.json
浏览文件 @
9270c85e
...
...
@@ -12,18 +12,6 @@
"path"
:
"PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
},
"getPSDETreeColumns"
:
[
{
"caption"
:
"作者"
,
"codeName"
:
"author"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
"dataItemName"
:
"author"
,
"mOSFilePath"
:
"psdetreecols/author"
,
"name"
:
"author"
,
"rTMOSFilePath"
:
"psdetreecols/author"
,
"width"
:
200
,
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
"enableSort"
:
false
},
{
"caption"
:
"图书名称"
,
"codeName"
:
"ibizbookname"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
...
...
@@ -59,6 +47,18 @@
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
"enableSort"
:
false
},
{
"caption"
:
"作者"
,
"codeName"
:
"author"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
"dataItemName"
:
"author"
,
"mOSFilePath"
:
"psdetreecols/author"
,
"name"
:
"author"
,
"rTMOSFilePath"
:
"psdetreecols/author"
,
"width"
:
200
,
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
"enableSort"
:
false
},
{
"caption"
:
"借出日期"
,
"codeName"
:
"lendouttime"
,
...
...
demo-boot/src/main/resources/static/remotemodel/PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK/PSTREEGRIDICES/TreeTable.json
浏览文件 @
9270c85e
...
...
@@ -20,6 +20,18 @@
}
}
],
"getPSDETreeColumns"
:
[
{
"caption"
:
"作者"
,
"codeName"
:
"author"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
"dataItemName"
:
"author"
,
"mOSFilePath"
:
"psdetreecols/author"
,
"name"
:
"author"
,
"rTMOSFilePath"
:
"psdetreecols/author"
,
"width"
:
50
,
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
"enableSort"
:
false
},
{
"caption"
:
"图书名称"
,
"codeName"
:
"ibizbookname"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
...
...
@@ -43,18 +55,6 @@
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
"enableSort"
:
false
},
{
"caption"
:
"作者"
,
"codeName"
:
"author"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
"dataItemName"
:
"author"
,
"mOSFilePath"
:
"psdetreecols/author"
,
"name"
:
"author"
,
"rTMOSFilePath"
:
"psdetreecols/author"
,
"width"
:
50
,
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
"enableSort"
:
false
}
],
"getPSDETreeNodeRSs"
:
[
{
"getChildPSDETreeNode"
:
{
...
...
demo-boot/src/main/resources/static/remotemodel/PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKGanttView.json
浏览文件 @
9270c85e
...
...
@@ -42,18 +42,6 @@
"id"
:
"GANTT"
},
"getPSDETreeColumns"
:
[
{
"caption"
:
"作者"
,
"codeName"
:
"author"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
"dataItemName"
:
"author"
,
"mOSFilePath"
:
"psdetreecols/author"
,
"name"
:
"author"
,
"rTMOSFilePath"
:
"psdetreecols/author"
,
"width"
:
200
,
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
"enableSort"
:
false
},
{
"caption"
:
"图书名称"
,
"codeName"
:
"ibizbookname"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
...
...
@@ -89,6 +77,18 @@
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
"enableSort"
:
false
},
{
"caption"
:
"作者"
,
"codeName"
:
"author"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
"dataItemName"
:
"author"
,
"mOSFilePath"
:
"psdetreecols/author"
,
"name"
:
"author"
,
"rTMOSFilePath"
:
"psdetreecols/author"
,
"width"
:
200
,
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
"enableSort"
:
false
},
{
"caption"
:
"借出日期"
,
"codeName"
:
"lendouttime"
,
...
...
demo-boot/src/main/resources/static/remotemodel/PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKTreeGridExView.json
浏览文件 @
9270c85e
...
...
@@ -88,6 +88,18 @@
"id"
:
"TREEGRIDEX"
},
"getPSDETreeColumns"
:
[
{
"caption"
:
"作者"
,
"codeName"
:
"author"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
"dataItemName"
:
"author"
,
"mOSFilePath"
:
"psdetreecols/author"
,
"name"
:
"author"
,
"rTMOSFilePath"
:
"psdetreecols/author"
,
"width"
:
50
,
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
"enableSort"
:
false
},
{
"caption"
:
"图书名称"
,
"codeName"
:
"ibizbookname"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
...
...
@@ -111,18 +123,6 @@
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
"enableSort"
:
false
},
{
"caption"
:
"作者"
,
"codeName"
:
"author"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
"dataItemName"
:
"author"
,
"mOSFilePath"
:
"psdetreecols/author"
,
"name"
:
"author"
,
"rTMOSFilePath"
:
"psdetreecols/author"
,
"width"
:
50
,
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
"enableSort"
:
false
}
],
"getPSDETreeNodeRSs"
:
[
{
"getChildPSDETreeNode"
:
{
...
...
demo-boot/src/main/resources/static/remotemodel/PSSYSAPPS/Web/PSSYSAPP.json
浏览文件 @
9270c85e
...
...
@@ -5569,7 +5569,9 @@
"pluginType" : "GRID_RENDER",
"refMode" : "CONTROL",
"refTag" : "GRID",
"templCode" : "<div>红色表格头</div>"
"templCode" : "<div :class=\"classNames\" :id=\"controlID\" style=\"\" >\r\n <a-form class=\"control-content\">\r\n <AppGrid\r\n :columns=\"model.columns\"\r\n :items=\"store.data\"\r\n :singleSelect=\"singleSelect\"\r\n :selections=\"store.selections\"\r\n :showHeader=\"model.showHeader\"\r\n :current=\"store.curPage\"\r\n :limit=\"store.limit\"\r\n :totalRecord=\"store.totalRecord\"\r\n :context=\"store.context\"\r\n :viewParams=\"store.viewParams\"\r\n :enableRowEdit=\"model.enableRowEdit\"\r\n :paging=\"model.paging\"\r\n @row-click=\"handleRowClick\"\r\n @row-db-click=\"handleRowDbClick\"\r\n @selection-change=\"handleSelectionChange\"\r\n @sort-change=\"(field: string, dir: '' | 'asc' | 'desc') => handleSortChange(controller, field, dir)\"\r\n @page-change=\"(currentPage: number) => handlePageChange(controller, currentPage)\"\r\n @page-size-change=\"(pageSize: number) => handlePageSizeChange(controller, pageSize)\"\r\n @action-click=\"(logic: any, data: IParam, event: MouseEvent) => handleActionClick(controller, logic as IViewLogicInput, data, event)\"\r\n >\r\n </AppGrid>\r\n </a-form>\r\n </div>",
"templCode2" : "import { AppGrid } from \"@components/widgets/grid\";\r\nimport { IContext, IParam, IViewLogicInput } from \"@/core\";\r\nimport { GridActionType, ICtrlDataAction, IGridAbility, IGridControllerParams, IGridStore, GridController, ILoadingHelper, LoadingHelper, createUUID, IViewCtx } from \"@/core\";\r\nimport { handlePageChange, handlePageSizeChange, handleSortChange, handleComponentAction } from '@/hooks/use-ctrl';\r\nimport { useNavParamsBind, useEventBind, handleActionClick, getCtrlClassNames } from '@/hooks/use-ctrl';\r\nimport GridService from \"@/core/modules/ctrl-service/grid-service\";\r\ninterface Props {\r\n name?: string;\r\n context: IContext;\r\n viewParams: IParam;\r\n localContext?: IParam,\r\n localViewParams?: IParam,\r\n closeView?: Function;\r\n pLoadingHelper?: ILoadingHelper;\r\n pViewCtx?: IViewCtx;\r\n openView?: Function;\r\n newView?: Function;\r\n actions: ICtrlDataAction;\r\n singleSelect?: boolean;\r\n selectFirstDefault?: boolean;\r\n rowActiveMode?: 0 | 1 | 2;\r\n defaultEnableRowEdit?: boolean;\r\n controller: GridController\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n singleSelect: false,\r\n rowActiveMode: 2\r\n});\r\nconst model: IParam = props.controller.getModel();\r\nconst store = props.controller.getStore();\r\nconst classNames = computed(() => {\r\n const names = getCtrlClassNames(model, props);\r\n Object.assign(names, {\r\n \"app-control-grid--no-paging-bar\": model.enablePagingBar,\r\n \"red-grid-header\": true\r\n });\r\n return names;\r\n});",
"templCode3" : ".red-grid-header {\r\n .ant-table-container .ant-table-header {\r\n .ant-table-cell {\r\n background-color: red;\r\n }\r\n }\r\n}"
}, {
"name" : "编辑器数量",
"getPSSysPFPlugin" : {
...
...
@@ -5637,7 +5639,8 @@
"pluginType" : "CUSTOM",
"refMode" : "CONTROL",
"refTag" : "FORM",
"templCode" : "<div>iframe</div>"
"templCode" : "<div class=\"form-iframe\">\r\n <iframe width=\"100%\" height=\"100%\" src=\"https://www.baidu.com//\" />\r\n </div>",
"templCode3" : ".form-iframe {\r\n height: 100%;\r\n width: 100%;\r\n iframe {\r\n border: 0;\r\n }\r\n}"
}, {
"name" : "表单测试插件",
"getPSSysPFPlugin" : {
...
...
@@ -5725,7 +5728,9 @@
"pluginType" : "VIEW_CUSTOM",
"refMode" : "APPVIEW",
"refTag" : "DEPICKUPVIEW",
"templCode" : "<div>选择视图插件</div>"
"templCode" : "<AppViewLayout :class=\"classNames\">\r\n <template #default>\r\n <UsrPickupView_pluginpickupviewpanelPickupViewPanel\r\n :openView=\"store.openView\"\r\n :newView=\"store.newView\"\r\n :singleSelect='true'\r\n name=\"pickupviewpanel\"\r\n :context=\"store.context\"\r\n :viewParams=\"store.viewParams\"\r\n :closeView=\"store.closeView\"\r\n :pLoadingHelper=\"store.loadingHelper\"\r\n :pViewCtx=\"store.viewCtx\"\r\n @ctrl-init=\"(name:string, ability:any) => { handleCtrlInit(controller, name, ability) }\"\r\n @ctrl-action=\"(name:string, action:any, data:any) => { handleCtrlAction(controller, name, action, data) }\"\r\n @ctrl-destroy=\"(name:string, data:any) => { handleCtrlDestroy(controller, name, data) }\"/>\r\n </template>\r\n <template #viewFooter>\r\n <div class=\"view-footer__buttons\">\r\n <AppButton type=\"primary\" :disabled=\"store.selections.length === 0\" @click=\"handlePickupViewButtonAction(controller, 'confirm')\">确认</AppButton>\r\n <AppButton @click=\"handlePickupViewButtonAction(controller, 'cancel')\">取消</AppButton>\r\n </div>\r\n </template>\r\n </AppViewLayout>",
"templCode2" : "import { AppViewLayout } from \"@components/layout/view-layout\";\r\nimport UsrPickupView_pluginpickupviewpanelPickupViewPanel from '@widgets/ibizbook/usr-pickup-view-pluginpickupviewpanel-pickup-view-panel/usr-pickup-view-pluginpickupviewpanel-pickup-view-panel.vue';\r\nimport { \r\n useNavParamsBind, \r\n useEventBind, \r\n getViewClassNames, \r\n handlePickupViewButtonAction, \r\n handleCtrlAction, \r\n handleCtrlInit, \r\n handleCtrlDestroy,\r\n} from \"@/hooks/use-view\";\r\nimport { PickupViewActionType, PickupViewController, IPickupViewAbility, IPickupViewControllerParams, IPickupViewStore, IPickupViewController, IParam, IContext, ILoadingHelper, IEvent } from \"@/core\";\r\ninterface Props {\r\n name?: string,\r\n noViewCaption?: boolean,\r\n openType?: 'ROUTE' | 'EMBED' | 'MODAL',\r\n context?: IContext,\r\n viewParams?: IParam,\r\n pLoadingHelper?: ILoadingHelper,\r\n isLoadDefault?: boolean,\r\n controller: IPickupViewController<IPickupViewStore, IPickupViewAbility>\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n noViewCaption: false,\r\n openType: 'ROUTE',\r\n isLoadDefault: true,\r\n});\r\nconst model: IParam = props.controller.getModel();\r\nconst store: IPickupViewStore = props.controller.getStore();\r\nconst classNames = computed(() => {\r\n const classNames = getViewClassNames(model, props);\r\n Object.assign(classNames, {\"picker-view-custom\": true});\r\n return classNames;\r\n});",
"templCode3" : ".picker-view-custom {\r\n .view-footer__buttons {\r\n text-align: left;\r\n }\r\n}"
}, {
"name" : "选项操作视图按钮左对齐",
"getPSSysPFPlugin" : {
demo-boot/src/main/resources/static/remotemodel/PSSYSAPPS/Web/PSSYSAPP.simple.json
浏览文件 @
9270c85e
...
...
@@ -216,7 +216,9 @@
"pluginType"
:
"GRID_RENDER"
,
"refMode"
:
"CONTROL"
,
"refTag"
:
"GRID"
,
"templCode"
:
"<div>红色表格头</div>"
"templCode"
:
"<div :class=
\"
classNames
\"
:id=
\"
controlID
\"
style=
\"\"
>
\r\n
<a-form class=
\"
control-content
\"
>
\r\n
<AppGrid
\r\n
:columns=
\"
model.columns
\"\r\n
:items=
\"
store.data
\"\r\n
:singleSelect=
\"
singleSelect
\"\r\n
:selections=
\"
store.selections
\"\r\n
:showHeader=
\"
model.showHeader
\"\r\n
:current=
\"
store.curPage
\"\r\n
:limit=
\"
store.limit
\"\r\n
:totalRecord=
\"
store.totalRecord
\"\r\n
:context=
\"
store.context
\"\r\n
:viewParams=
\"
store.viewParams
\"\r\n
:enableRowEdit=
\"
model.enableRowEdit
\"\r\n
:paging=
\"
model.paging
\"\r\n
@row-click=
\"
handleRowClick
\"\r\n
@row-db-click=
\"
handleRowDbClick
\"\r\n
@selection-change=
\"
handleSelectionChange
\"\r\n
@sort-change=
\"
(field: string, dir: '' | 'asc' | 'desc') => handleSortChange(controller, field, dir)
\"\r\n
@page-change=
\"
(currentPage: number) => handlePageChange(controller, currentPage)
\"\r\n
@page-size-change=
\"
(pageSize: number) => handlePageSizeChange(controller, pageSize)
\"\r\n
@action-click=
\"
(logic: any, data: IParam, event: MouseEvent) => handleActionClick(controller, logic as IViewLogicInput, data, event)
\"\r\n
>
\r\n
</AppGrid>
\r\n
</a-form>
\r\n
</div>"
,
"templCode2"
:
"import { AppGrid } from
\"
@components/widgets/grid
\"
;
\r\n
import { IContext, IParam, IViewLogicInput } from
\"
@/core
\"
;
\r\n
import { GridActionType, ICtrlDataAction, IGridAbility, IGridControllerParams, IGridStore, GridController, ILoadingHelper, LoadingHelper, createUUID, IViewCtx } from
\"
@/core
\"
;
\r\n
import { handlePageChange, handlePageSizeChange, handleSortChange, handleComponentAction } from '@/hooks/use-ctrl';
\r\n
import { useNavParamsBind, useEventBind, handleActionClick, getCtrlClassNames } from '@/hooks/use-ctrl';
\r\n
import GridService from
\"
@/core/modules/ctrl-service/grid-service
\"
;
\r\n
interface Props {
\r\n
name?: string;
\r\n
context: IContext;
\r\n
viewParams: IParam;
\r\n
localContext?: IParam,
\r\n
localViewParams?: IParam,
\r\n
closeView?: Function;
\r\n
pLoadingHelper?: ILoadingHelper;
\r\n
pViewCtx?: IViewCtx;
\r\n
openView?: Function;
\r\n
newView?: Function;
\r\n
actions: ICtrlDataAction;
\r\n
singleSelect?: boolean;
\r\n
selectFirstDefault?: boolean;
\r\n
rowActiveMode?: 0 | 1 | 2;
\r\n
defaultEnableRowEdit?: boolean;
\r\n
controller: GridController
\r\n
}
\r\n\r\n
const props = withDefaults(defineProps<Props>(), {
\r\n
singleSelect: false,
\r\n
rowActiveMode: 2
\r\n
});
\r\n
const model: IParam = props.controller.getModel();
\r\n
const store = props.controller.getStore();
\r\n
const classNames = computed(() => {
\r\n
const names = getCtrlClassNames(model, props);
\r\n
Object.assign(names, {
\r\n
\"
app-control-grid--no-paging-bar
\"
: model.enablePagingBar,
\r\n
\"
red-grid-header
\"
: true
\r\n
});
\r\n
return names;
\r\n
});"
,
"templCode3"
:
".red-grid-header {
\r\n
.ant-table-container .ant-table-header {
\r\n
.ant-table-cell {
\r\n
background-color: red;
\r\n
}
\r\n
}
\r\n
}"
},
{
"name"
:
"编辑器数量"
,
"getPSSysPFPlugin"
:
{
...
...
@@ -284,7 +286,8 @@
"pluginType"
:
"CUSTOM"
,
"refMode"
:
"CONTROL"
,
"refTag"
:
"FORM"
,
"templCode"
:
"<div>iframe</div>"
"templCode"
:
"<div class=
\"
form-iframe
\"
>
\r\n
<iframe width=
\"
100%
\"
height=
\"
100%
\"
src=
\"
https://www.baidu.com//
\"
/>
\r\n
</div>"
,
"templCode3"
:
".form-iframe {
\r\n
height: 100%;
\r\n
width: 100%;
\r\n
iframe {
\r\n
border: 0;
\r\n
}
\r\n
}"
},
{
"name"
:
"表单测试插件"
,
"getPSSysPFPlugin"
:
{
...
...
@@ -372,7 +375,9 @@
"pluginType"
:
"VIEW_CUSTOM"
,
"refMode"
:
"APPVIEW"
,
"refTag"
:
"DEPICKUPVIEW"
,
"templCode"
:
"<div>选择视图插件</div>"
"templCode"
:
"<AppViewLayout :class=
\"
classNames
\"
>
\r\n
<template #default>
\r\n
<UsrPickupView_pluginpickupviewpanelPickupViewPanel
\r\n
:openView=
\"
store.openView
\"\r\n
:newView=
\"
store.newView
\"\r\n
:singleSelect='true'
\r\n
name=
\"
pickupviewpanel
\"\r\n
:context=
\"
store.context
\"\r\n
:viewParams=
\"
store.viewParams
\"\r\n
:closeView=
\"
store.closeView
\"\r\n
:pLoadingHelper=
\"
store.loadingHelper
\"\r\n
:pViewCtx=
\"
store.viewCtx
\"\r\n
@ctrl-init=
\"
(name:string, ability:any) => { handleCtrlInit(controller, name, ability) }
\"\r\n
@ctrl-action=
\"
(name:string, action:any, data:any) => { handleCtrlAction(controller, name, action, data) }
\"\r\n
@ctrl-destroy=
\"
(name:string, data:any) => { handleCtrlDestroy(controller, name, data) }
\"
/>
\r\n
</template>
\r\n
<template #viewFooter>
\r\n
<div class=
\"
view-footer__buttons
\"
>
\r\n
<AppButton type=
\"
primary
\"
:disabled=
\"
store.selections.length === 0
\"
@click=
\"
handlePickupViewButtonAction(controller, 'confirm')
\"
>确认</AppButton>
\r\n
<AppButton @click=
\"
handlePickupViewButtonAction(controller, 'cancel')
\"
>取消</AppButton>
\r\n
</div>
\r\n
</template>
\r\n
</AppViewLayout>"
,
"templCode2"
:
"import { AppViewLayout } from
\"
@components/layout/view-layout
\"
;
\r\n
import UsrPickupView_pluginpickupviewpanelPickupViewPanel from '@widgets/ibizbook/usr-pickup-view-pluginpickupviewpanel-pickup-view-panel/usr-pickup-view-pluginpickupviewpanel-pickup-view-panel.vue';
\r\n
import {
\r\n
useNavParamsBind,
\r\n
useEventBind,
\r\n
getViewClassNames,
\r\n
handlePickupViewButtonAction,
\r\n
handleCtrlAction,
\r\n
handleCtrlInit,
\r\n
handleCtrlDestroy,
\r\n
} from
\"
@/hooks/use-view
\"
;
\r\n
import { PickupViewActionType, PickupViewController, IPickupViewAbility, IPickupViewControllerParams, IPickupViewStore, IPickupViewController, IParam, IContext, ILoadingHelper, IEvent } from
\"
@/core
\"
;
\r\n
interface Props {
\r\n
name?: string,
\r\n
noViewCaption?: boolean,
\r\n
openType?: 'ROUTE' | 'EMBED' | 'MODAL',
\r\n
context?: IContext,
\r\n
viewParams?: IParam,
\r\n
pLoadingHelper?: ILoadingHelper,
\r\n
isLoadDefault?: boolean,
\r\n
controller: IPickupViewController<IPickupViewStore, IPickupViewAbility>
\r\n
}
\r\n\r\n
const props = withDefaults(defineProps<Props>(), {
\r\n
noViewCaption: false,
\r\n
openType: 'ROUTE',
\r\n
isLoadDefault: true,
\r\n
});
\r\n
const model: IParam = props.controller.getModel();
\r\n
const store: IPickupViewStore = props.controller.getStore();
\r\n
const classNames = computed(() => {
\r\n
const classNames = getViewClassNames(model, props);
\r\n
Object.assign(classNames, {
\"
picker-view-custom
\"
: true});
\r\n
return classNames;
\r\n
});"
,
"templCode3"
:
".picker-view-custom {
\r\n
.view-footer__buttons {
\r\n
text-align: left;
\r\n
}
\r\n
}"
},
{
"name"
:
"选项操作视图按钮左对齐"
,
"getPSSysPFPlugin"
:
{
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录