Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
功
功能演示系统
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
示例
功能演示系统
提交
164ab58b
提交
164ab58b
编写于
4年前
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Mosher 发布系统代码 [后台服务,演示应用]
上级
3049733e
变更
3
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
23 行增加
和
534 行删除
+23
-534
app-portal-view-db-dashboard-base.vue
...l-view-db-dashboard/app-portal-view-db-dashboard-base.vue
+4
-533
inter-func-form-2-form-base.vue
...ok/inter-func-form-2-form/inter-func-form-2-form-base.vue
+7
-1
inter-func-form-2-form-service.ts
.../inter-func-form-2-form/inter-func-form-2-form-service.ts
+12
-0
未找到文件。
app_Web/src/widgets/app/app-portal-view-db-dashboard/app-portal-view-db-dashboard-base.vue
浏览文件 @
164ab58b
<
template
>
!!!!模版产生代码错误:----
<div
class=
'dashboard'
>
FTL stack trace ("~" means nesting-related):
<row
v-if=
"isEnableCustomized"
>
- Failed at: #if view.getViewStyle??
&&
view.getVi... [in template "TEMPLCODE_en_US" at line 44, column 11]
<app-build
@
handleClick=
"handleClick"
></app-build>
----
</row>
\ No newline at end of file
<row
v-if=
"!isHasCustomized"
>
<i-col
:md=
"
{ span: 24, offset: 0 }">
<card
class=
"portlet-card"
:bordered=
"false"
dis-hover
:padding=
"0"
>
<span>
<div
class=
'portlet-container db-container1 '
:style=
"
{}">
<row>
<i-col
:md=
"
{ span: 24, offset: 0 }" :lg="{ span: 6, offset: 0 }">
<div
class=
"portlet-without-title"
>
<card
class=
"portlet-card"
:bordered=
"false"
dis-hover
:padding=
"0"
>
<span>
<div
class=
'portlet-container db-container2 '
:style=
"
{}">
<row>
<i-col
:md=
"
{ span: 24, offset: 0 }">
<div
class=
"portlet-without-title"
>
<card
class=
"portlet-card custom-card"
:bordered=
"false"
dis-hover
:padding=
"10"
>
<span>
<view
_db_rawitem1
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:height=
"100"
:width=
"0"
name=
"db_rawitem1"
ref=
'db_rawitem1'
@
closeview=
"closeView($event)"
>
</view
_db_rawitem1
>
</span>
</card>
</div>
</i-col>
</row>
</div>
</span>
</card>
</div>
</i-col>
<i-col
:md=
"
{ span: 24, offset: 0 }" :lg="{ span: 6, offset: 0 }">
<div
class=
"portlet-without-title"
>
<card
class=
"portlet-card"
:bordered=
"false"
dis-hover
:padding=
"0"
>
<span>
<div
class=
'portlet-container db-container3 '
:style=
"
{}">
<row>
<i-col
:md=
"
{ span: 24, offset: 0 }">
<div
class=
"portlet-without-title"
>
<card
class=
"portlet-card custom-card"
:bordered=
"false"
dis-hover
:padding=
"10"
>
<span>
<view
_db_rawitem2
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:height=
"100"
:width=
"0"
name=
"db_rawitem2"
ref=
'db_rawitem2'
@
closeview=
"closeView($event)"
>
</view
_db_rawitem2
>
</span>
</card>
</div>
</i-col>
</row>
</div>
</span>
</card>
</div>
</i-col>
<i-col
:md=
"
{ span: 24, offset: 0 }" :lg="{ span: 6, offset: 0 }">
<div
class=
"portlet-without-title"
>
<card
class=
"portlet-card"
:bordered=
"false"
dis-hover
:padding=
"0"
>
<span>
<div
class=
'portlet-container db-container4 '
:style=
"
{}">
<row>
<i-col
:md=
"
{ span: 24, offset: 0 }">
<div
class=
"portlet-without-title"
>
<card
class=
"portlet-card custom-card"
:bordered=
"false"
dis-hover
:padding=
"10"
>
<span>
<view
_db_rawitem3
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:height=
"100"
:width=
"0"
name=
"db_rawitem3"
ref=
'db_rawitem3'
@
closeview=
"closeView($event)"
>
</view
_db_rawitem3
>
</span>
</card>
</div>
</i-col>
</row>
</div>
</span>
</card>
</div>
</i-col>
<i-col
:md=
"
{ span: 24, offset: 0 }" :lg="{ span: 6, offset: 0 }">
<div
class=
"portlet-without-title"
>
<card
class=
"portlet-card"
:bordered=
"false"
dis-hover
:padding=
"0"
>
<span>
<div
class=
'portlet-container db-container5 '
:style=
"
{}">
<row>
<i-col
:md=
"
{ span: 24, offset: 0 }">
<div
class=
"portlet-without-title"
>
<card
class=
"portlet-card custom-card"
:bordered=
"false"
dis-hover
:padding=
"10"
>
<span>
<view
_db_rawitem4
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:height=
"100"
:width=
"0"
name=
"db_rawitem4"
ref=
'db_rawitem4'
@
closeview=
"closeView($event)"
>
</view
_db_rawitem4
>
</span>
</card>
</div>
</i-col>
</row>
</div>
</span>
</card>
</div>
</i-col>
<i-col
:md=
"
{ span: 24, offset: 0 }" :lg="{ span: 12, offset: 0 }">
<div
class=
"portlet-without-title"
>
<card
class=
"portlet-card custom-card"
:bordered=
"false"
dis-hover
:padding=
"10"
>
<span>
<view
_db_rawitem5
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:height=
"400"
:width=
"0"
name=
"db_rawitem5"
ref=
'db_rawitem5'
@
closeview=
"closeView($event)"
>
</view
_db_rawitem5
>
</span>
</card>
</div>
</i-col>
<i-col
:md=
"
{ span: 24, offset: 0 }" :lg="{ span: 12, offset: 0 }">
<div
class=
"portlet-without-title"
>
<card
class=
"portlet-card custom-card"
:bordered=
"false"
dis-hover
:padding=
"10"
>
<span>
<view
_db_rawitem6
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:height=
"400"
:width=
"0"
name=
"db_rawitem6"
ref=
'db_rawitem6'
@
closeview=
"closeView($event)"
>
</view
_db_rawitem6
>
</span>
</card>
</div>
</i-col>
</row>
</div>
</span>
</card>
</i-col>
</row>
<row
v-if=
"isHasCustomized"
style=
"width: 100%;min-height: calc(100% - 40px);"
>
<div
class=
"portlet-container"
style=
"position: relative;width:100%;"
>
<template
v-for=
"(item, index) of modelDta"
>
<div
:key=
"index"
:style=
"
{zIndex: 10, position: 'absolute', height: item.h*layoutRowH + 'px', width: `calc(100% / ${layoutColNum} * ${item.w})`,top: item.y*layoutRowH + 'px', left: `calc(100% / ${layoutColNum} * ${item.x})`}">
<component
:key=
"$util.createUUID()"
:is=
"item.componentName"
:name=
"item.portletCodeName"
:context=
"JSON.parse(JSON.stringify(context))"
:viewDefaultUsage=
"false"
:isAdaptiveSize=
"true"
:viewState=
"viewState"
></component>
</div>
</
template
>
</div>
</row>
</div>
</template>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
,
Inject
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
,
ViewTool
}
from
'@/utils'
;
import
NavDataService
from
'@/service/app/navdata-service'
;
import
AppCenterService
from
"@service/app/app-center-service"
;
import
AppPortalView_dbService
from
'./app-portal-view-db-dashboard-service'
;
import
UtilService
from
'@/utilservice/util-service'
;
@
Component
({
components
:
{
}
})
export
default
class
AppPortalView_dbBase
extends
Vue
implements
ControlInterface
{
/**
* 名称
*
* @type {string}
* @memberof AppPortalView_dbBase
*/
@
Prop
()
public
name
?:
string
;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof AppPortalView_dbBase
*/
@
Prop
()
public
viewState
!
:
Subject
<
ViewState
>
;
/**
* 应用上下文
*
* @type {*}
* @memberof AppPortalView_dbBase
*/
@
Prop
()
public
context
!
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof AppPortalView_dbBase
*/
@
Prop
()
public
viewparams
!
:
any
;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof AppPortalView_dbBase
*/
public
viewStateEvent
:
Subscription
|
undefined
;
/**
* 获取部件类型
*
* @returns {string}
* @memberof AppPortalView_dbBase
*/
public
getControlType
():
string
{
return
'DASHBOARD'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof AppPortalView_dbBase
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 建构部件服务对象
*
* @type {AppPortalView_dbService}
* @memberof AppPortalView_dbBase
*/
public
service
:
AppPortalView_dbService
=
new
AppPortalView_dbService
({
$store
:
this
.
$store
});
/**
* 关闭视图
*
* @param {any} args
* @memberof AppPortalView_dbBase
*/
public
closeView
(
args
:
any
):
void
{
let
_this
:
any
=
this
;
_this
.
$emit
(
'closeview'
,
[
args
]);
}
/**
* 计数器刷新
*
* @memberof AppPortalView_dbBase
*/
public
counterRefresh
(){
const
_this
:
any
=
this
;
if
(
_this
.
counterServiceArray
&&
_this
.
counterServiceArray
.
length
>
0
){
_this
.
counterServiceArray
.
forEach
((
item
:
any
)
=>
{
if
(
item
.
refreshData
&&
item
.
refreshData
instanceof
Function
){
item
.
refreshData
();
}
})
}
}
/**
* 是否支持看板定制
*
* @public
* @type {(boolean)}
* @memberof AppPortalView_dbBase
*/
@
Prop
()
public
isEnableCustomized
!
:
boolean
;
/**
* 是否已有看板定制
*
* @public
* @type {(boolean)}
* @memberof AppPortalView_dbBase
*/
public
isHasCustomized
:
boolean
=
false
;
/**
* 模型数据
*
* @public
* @type {(*)}
* @memberof AppPortalView_dbBase
*/
public
modelDta
:
any
;
/**
* modleId
*
* @type {string}
* @memberof AppPortalView_dbBase
*/
public
modelId
:
string
=
"dashboard_app_appportalview_db"
;
/**
* 建构功能服务对象
*
* @type {UtilService}
* @memberof AppPortalView_dbBase
*/
public
utilService
:
UtilService
=
new
UtilService
();
/**
* 功能服务名称
*
* @type {string}
* @memberof AppPortalView_dbBase
*/
public
utilServiceName
:
string
=
""
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof AppPortalView_dbBase
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof AppPortalView_dbBase
*/
public
getData
():
any
{
return
{};
}
/**
* vue 生命周期
*
* @memberof AppPortalView_dbBase
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof AppPortalView_dbBase
*/
public
afterCreated
(){
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
if
(
Object
.
is
(
'load'
,
action
))
{
this
.
loadModel
();
}
});
}
}
/**
* 动态设计水平列数
*
* @memberof AppPortalView_dbBase
*/
public
layoutColNum
:
number
=
12
;
/**
* 动态设计单元格高度,80px
*
* @memberof AppPortalView_dbBase
*/
public
layoutRowH
:
number
=
80
;
/**
* 通知状态
*
* @memberof AppPortalView_dbBase
*/
public
notifyState
(){
this
.
$nextTick
(()
=>
{
if
(
this
.
isHasCustomized
)
{
if
(
this
.
modelDta
&&
this
.
modelDta
.
length
>
0
)
{
this
.
modelDta
.
forEach
((
item
:
any
)
=>
{
this
.
viewState
.
next
({
tag
:
item
.
portletCodeName
,
action
:
"load"
,
data
:
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
))
});
});
}
}
else
{
if
(
this
.
viewState
)
{
const
refs
:
any
=
this
.
$refs
;
Object
.
keys
(
refs
).
forEach
((
name
:
string
)
=>
{
this
.
viewState
.
next
({
tag
:
name
,
action
:
"load"
,
data
:
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
))
});
});
}
}
})
}
/**
* 加载布局与数据模型
*
* @memberof AppPortalView_dbBase
*/
public
loadModel
(){
if
(
this
.
isEnableCustomized
){
this
.
utilService
.
getService
(
this
.
utilServiceName
).
then
((
service
:
any
)
=>
{
service
.
loadModelData
(
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),{
modelid
:
this
.
modelId
,
utilServiceName
:
this
.
utilServiceName
}).
then
((
res
:
any
)
=>
{
if
(
res
&&
res
.
status
==
200
){
const
data
:
any
=
res
.
data
;
if
(
data
&&
data
.
length
>
0
){
this
.
isHasCustomized
=
true
;
this
.
modelDta
=
data
;
this
.
$forceUpdate
();
}
else
{
this
.
isHasCustomized
=
false
;
}
this
.
notifyState
();
}
else
{
console
.
error
(
"加载面板模型异常"
);
this
.
isHasCustomized
=
false
;
this
.
notifyState
();
}
}).
catch
((
error
:
any
)
=>
{
console
.
error
(
"加载面板模型异常"
);
console
.
error
(
error
);
this
.
isHasCustomized
=
false
;
this
.
notifyState
();
});
})
}
else
{
this
.
notifyState
();
}
}
/**
* 处理私人定制按钮
*
* @memberof AppPortalView_dbBase
*/
public
handleClick
(){
const
view
:
any
=
{
viewname
:
'app-portal-design'
,
title
:
(
this
.
$t
(
'app.dashBoard.handleClick.title'
)),
width
:
1600
,
placement
:
'DRAWER_RIGHT'
}
const
viewparam
:
any
=
{
modelid
:
this
.
modelId
,
utilServiceName
:
this
.
utilServiceName
,
appdeName
:
'app'
}
const
appdrawer
=
this
.
$appdrawer
.
openDrawer
(
view
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
viewparam
);
appdrawer
.
subscribe
((
result
:
any
)
=>
{
if
(
Object
.
is
(
result
.
ret
,
'OK'
)){
this
.
loadModel
();
}
});
}
/**
* vue 生命周期
*
* @memberof AppPortalView_dbBase
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof AppPortalView_dbBase
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
}
</
script
>
<
style
lang=
'less'
>
@import './app-portal-view-db-dashboard.less';
</
style
>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app_Web/src/widgets/ibizbook/inter-func-form-2-form/inter-func-form-2-form-base.vue
浏览文件 @
164ab58b
...
@@ -40,6 +40,8 @@
...
@@ -40,6 +40,8 @@
:localParam ='{ }'
:localParam ='{ }'
:disabled="detailsModel.formitem.disabled"
:disabled="detailsModel.formitem.disabled"
name='formitem'
name='formitem'
deMajorField='ibizcustomername'
deKeyField='ibizcustomer'
valueitem='borrower'
valueitem='borrower'
:value="data.formitem"
:value="data.formitem"
editortype="pickup-no-ac"
editortype="pickup-no-ac"
...
@@ -63,6 +65,8 @@
...
@@ -63,6 +65,8 @@
:localParam ='{ }'
:localParam ='{ }'
:disabled="detailsModel.formitem1.disabled"
:disabled="detailsModel.formitem1.disabled"
name='formitem1'
name='formitem1'
deMajorField='ibizcustomername'
deKeyField='ibizcustomer'
valueitem='borrower'
valueitem='borrower'
:value="data.formitem1"
:value="data.formitem1"
editortype="pickup-no-ac"
editortype="pickup-no-ac"
...
@@ -88,7 +92,9 @@
...
@@ -88,7 +92,9 @@
:localParam ='{ }'
:localParam ='{ }'
:service="service"
:service="service"
valueitem='borrower'
valueitem='borrower'
:acParams="{ }"
deMajorField='ibizcustomername'
deKeyField='ibizcustomer'
:acParams="{ serviceName: 'IBIZCustomerService', interfaceName: 'FetchDefault'}"
:pickupView="{ viewname: 'ibizcustomer-mpickup-view', title: $t('entities.ibizcustomer.views.mpickupview.title'), deResParameters: [], parameters: [{ pathName: 'ibizcustomers', parameterName: 'ibizcustomer' }, { pathName: 'mpickupview', parameterName: 'mpickupview' } ], placement:'' }"
:pickupView="{ viewname: 'ibizcustomer-mpickup-view', title: $t('entities.ibizcustomer.views.mpickupview.title'), deResParameters: [], parameters: [{ pathName: 'ibizcustomers', parameterName: 'ibizcustomer' }, { pathName: 'mpickupview', parameterName: 'mpickupview' } ], placement:'' }"
@formitemvaluechange="onFormItemValueChange"
@formitemvaluechange="onFormItemValueChange"
style="">
style="">
...
...
This diff is collapsed.
Click to expand it.
app_Web/src/widgets/ibizbook/inter-func-form-2-form/inter-func-form-2-form-service.ts
浏览文件 @
164ab58b
...
@@ -2,6 +2,7 @@ import { Http,Util,Errorlog } from '@/utils';
...
@@ -2,6 +2,7 @@ import { Http,Util,Errorlog } from '@/utils';
import
ControlService
from
'@/widgets/control-service'
;
import
ControlService
from
'@/widgets/control-service'
;
import
IBIZBOOKService
from
'@/service/ibizbook/ibizbook-service'
;
import
IBIZBOOKService
from
'@/service/ibizbook/ibizbook-service'
;
import
InterFuncForm_2Model
from
'./inter-func-form-2-form-model'
;
import
InterFuncForm_2Model
from
'./inter-func-form-2-form-model'
;
import
IBIZCustomerService
from
'@/service/ibizcustomer/ibizcustomer-service'
;
/**
/**
...
@@ -41,6 +42,14 @@ export default class InterFuncForm_2Service extends ControlService {
...
@@ -41,6 +42,14 @@ export default class InterFuncForm_2Service extends ControlService {
this
.
model
=
new
InterFuncForm_2Model
();
this
.
model
=
new
InterFuncForm_2Model
();
}
}
/**
* 客户服务对象
*
* @type {IBIZCustomerService}
* @memberof InterFuncForm_2Service
*/
public
ibizcustomerService
:
IBIZCustomerService
=
new
IBIZCustomerService
();
/**
/**
* 远端数据
* 远端数据
*
*
...
@@ -90,6 +99,9 @@ export default class InterFuncForm_2Service extends ControlService {
...
@@ -90,6 +99,9 @@ export default class InterFuncForm_2Service extends ControlService {
public
getItems
(
serviceName
:
string
,
interfaceName
:
string
,
context
:
any
=
{},
data
:
any
,
isloading
?:
boolean
):
Promise
<
any
[]
>
{
public
getItems
(
serviceName
:
string
,
interfaceName
:
string
,
context
:
any
=
{},
data
:
any
,
isloading
?:
boolean
):
Promise
<
any
[]
>
{
data
.
page
=
data
.
page
?
data
.
page
:
0
;
data
.
page
=
data
.
page
?
data
.
page
:
0
;
data
.
size
=
data
.
size
?
data
.
size
:
1000
;
data
.
size
=
data
.
size
?
data
.
size
:
1000
;
if
(
Object
.
is
(
serviceName
,
'IBIZCustomerService'
)
&&
Object
.
is
(
interfaceName
,
'FetchDefault'
))
{
return
this
.
doItems
(
this
.
ibizcustomerService
.
FetchDefault
(
JSON
.
parse
(
JSON
.
stringify
(
context
)),
data
,
isloading
),
'ibizcustomerid'
,
'ibizcustomer'
);
}
return
Promise
.
reject
([])
return
Promise
.
reject
([])
}
}
...
...
This diff is collapsed.
Click to expand it.
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录