Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
iBiz企业中心
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz企业套件
iBiz企业中心
提交
1ac621ba
提交
1ac621ba
编写于
6月 17, 2020
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
xignzi006 发布系统代码
上级
fb87d4d7
变更
90
显示空白字符变更
内嵌
并排
正在显示
90 个修改的文件
包含
10622 行增加
和
74 行删除
+10622
-74
view-config.json
app_BusinessCentral/public/assets/json/view-config.json
+6
-6
contact_en_US.ts
...ntral/src/locale/lanres/entities/contact/contact_en_US.ts
+3
-3
contact_zh_CN.ts
...ntral/src/locale/lanres/entities/contact/contact_zh_CN.ts
+3
-3
viewconfig.ts
app_BusinessCentral/src/mock/viewconfig/viewconfig.ts
+4
-4
contact-dashboard-view9-base.vue
.../contact-dashboard-view9/contact-dashboard-view9-base.vue
+504
-0
contact-dashboard-view9.less
...base/contact-dashboard-view9/contact-dashboard-view9.less
+6
-0
contact-dashboard-view9.vue
.../base/contact-dashboard-view9/contact-dashboard-view9.vue
+19
-0
contact-info-abstract-base.vue
...base/contact-info-abstract/contact-info-abstract-base.vue
+665
-0
contact-info-abstract.less
...ges/base/contact-info-abstract/contact-info-abstract.less
+8
-0
contact-info-abstract.vue
...ages/base/contact-info-abstract/contact-info-abstract.vue
+19
-0
contact-info-detail-base.vue
...ges/base/contact-info-detail/contact-info-detail-base.vue
+536
-0
contact-info-detail.less
...c/pages/base/contact-info-detail/contact-info-detail.less
+6
-0
contact-info-detail.vue
...rc/pages/base/contact-info-detail/contact-info-detail.vue
+19
-0
page-register.ts
...usinessCentral/src/pages/ungroup/central/page-register.ts
+3
-2
router.ts
app_BusinessCentral/src/pages/ungroup/central/router.ts
+43
-16
state.ts
app_BusinessCentral/src/store/modules/view-action/state.ts
+13
-3
contact-ui-service-base.ts
...sCentral/src/uiservice/contact/contact-ui-service-base.ts
+2
-2
summary-dashboard.vue
...c/widgets/account/summary-dashboard/summary-dashboard.vue
+6
-6
view-account-info-portlet-base.vue
...w-account-info-portlet/view-account-info-portlet-base.vue
+286
-0
view-account-info-portlet-model.ts
...w-account-info-portlet/view-account-info-portlet-model.ts
+508
-0
view-account-info-portlet-service.ts
...account-info-portlet/view-account-info-portlet-service.ts
+11
-0
view-account-info-portlet.less
.../view-account-info-portlet/view-account-info-portlet.less
+4
-0
view-account-info-portlet.vue
...t/view-account-info-portlet/view-account-info-portlet.vue
+15
-0
view-address-portlet-base.vue
...ccount/view-address-portlet/view-address-portlet-base.vue
+286
-0
view-address-portlet-model.ts
...ccount/view-address-portlet/view-address-portlet-model.ts
+508
-0
view-address-portlet-service.ts
...ount/view-address-portlet/view-address-portlet-service.ts
+11
-0
view-address-portlet.less
...ts/account/view-address-portlet/view-address-portlet.less
+4
-0
view-address-portlet.vue
...ets/account/view-address-portlet/view-address-portlet.vue
+15
-0
view-contact-setting-portlet-base.vue
...act-setting-portlet/view-contact-setting-portlet-base.vue
+241
-0
view-contact-setting-portlet-model.ts
...act-setting-portlet/view-contact-setting-portlet-model.ts
+508
-0
view-contact-setting-portlet-service.ts
...t-setting-portlet/view-contact-setting-portlet-service.ts
+11
-0
view-contact-setting-portlet.less
...contact-setting-portlet/view-contact-setting-portlet.less
+4
-0
view-contact-setting-portlet.vue
...-contact-setting-portlet/view-contact-setting-portlet.vue
+15
-0
view-distribution-portlet-base.vue
...w-distribution-portlet/view-distribution-portlet-base.vue
+241
-0
view-distribution-portlet-model.ts
...w-distribution-portlet/view-distribution-portlet-model.ts
+508
-0
view-distribution-portlet-service.ts
...distribution-portlet/view-distribution-portlet-service.ts
+11
-0
view-distribution-portlet.less
.../view-distribution-portlet/view-distribution-portlet.less
+4
-0
view-distribution-portlet.vue
...t/view-distribution-portlet/view-distribution-portlet.vue
+15
-0
view-introduction-portlet-base.vue
...w-introduction-portlet/view-introduction-portlet-base.vue
+241
-0
view-introduction-portlet-model.ts
...w-introduction-portlet/view-introduction-portlet-model.ts
+508
-0
view-introduction-portlet-service.ts
...introduction-portlet/view-introduction-portlet-service.ts
+11
-0
view-introduction-portlet.less
.../view-introduction-portlet/view-introduction-portlet.less
+4
-0
view-introduction-portlet.vue
...t/view-introduction-portlet/view-introduction-portlet.vue
+15
-0
list-by-parent-key-portlet-base.vue
...by-parent-key-portlet/list-by-parent-key-portlet-base.vue
+407
-0
list-by-parent-key-portlet-model.ts
...by-parent-key-portlet/list-by-parent-key-portlet-model.ts
+181
-0
list-by-parent-key-portlet-service.ts
...-parent-key-portlet/list-by-parent-key-portlet-service.ts
+11
-0
list-by-parent-key-portlet.less
...ist-by-parent-key-portlet/list-by-parent-key-portlet.less
+4
-0
list-by-parent-key-portlet.vue
...list-by-parent-key-portlet/list-by-parent-key-portlet.vue
+17
-0
head-summary-dashboard.vue
...ampaign/head-summary-dashboard/head-summary-dashboard.vue
+2
-2
summary-dashboard.vue
.../widgets/campaign/summary-dashboard/summary-dashboard.vue
+3
-3
view-campagin-portlet-base.vue
...aign/view-campagin-portlet/view-campagin-portlet-base.vue
+241
-0
view-campagin-portlet-model.ts
...aign/view-campagin-portlet/view-campagin-portlet-model.ts
+169
-0
view-campagin-portlet-service.ts
...gn/view-campagin-portlet/view-campagin-portlet-service.ts
+11
-0
view-campagin-portlet.less
...campaign/view-campagin-portlet/view-campagin-portlet.less
+4
-0
view-campagin-portlet.vue
.../campaign/view-campagin-portlet/view-campagin-portlet.vue
+15
-0
view-head-portlet-base.vue
...ets/campaign/view-head-portlet/view-head-portlet-base.vue
+235
-0
view-head-portlet-model.ts
...ets/campaign/view-head-portlet/view-head-portlet-model.ts
+169
-0
view-head-portlet-service.ts
...s/campaign/view-head-portlet/view-head-portlet-service.ts
+11
-0
view-head-portlet.less
...widgets/campaign/view-head-portlet/view-head-portlet.less
+4
-0
view-head-portlet.vue
.../widgets/campaign/view-head-portlet/view-head-portlet.vue
+15
-0
view-info-portlet-base.vue
...ets/campaign/view-info-portlet/view-info-portlet-base.vue
+235
-0
view-info-portlet-model.ts
...ets/campaign/view-info-portlet/view-info-portlet-model.ts
+169
-0
view-info-portlet-service.ts
...s/campaign/view-info-portlet/view-info-portlet-service.ts
+11
-0
view-info-portlet.less
...widgets/campaign/view-info-portlet/view-info-portlet.less
+4
-0
view-info-portlet.vue
.../widgets/campaign/view-info-portlet/view-info-portlet.vue
+15
-0
view-manager-portlet-base.vue
...mpaign/view-manager-portlet/view-manager-portlet-base.vue
+241
-0
view-manager-portlet-model.ts
...mpaign/view-manager-portlet/view-manager-portlet-model.ts
+169
-0
view-manager-portlet-service.ts
...aign/view-manager-portlet/view-manager-portlet-service.ts
+11
-0
view-manager-portlet.less
...s/campaign/view-manager-portlet/view-manager-portlet.less
+4
-0
view-manager-portlet.vue
...ts/campaign/view-manager-portlet/view-manager-portlet.vue
+15
-0
view-schedule-portlet-base.vue
...aign/view-schedule-portlet/view-schedule-portlet-base.vue
+241
-0
view-schedule-portlet-model.ts
...aign/view-schedule-portlet/view-schedule-portlet-model.ts
+169
-0
view-schedule-portlet-service.ts
...gn/view-schedule-portlet/view-schedule-portlet-service.ts
+11
-0
view-schedule-portlet.less
...campaign/view-schedule-portlet/view-schedule-portlet.less
+4
-0
view-schedule-portlet.vue
.../campaign/view-schedule-portlet/view-schedule-portlet.vue
+15
-0
abstract-info-form-base.vue
...ts/contact/abstract-info-form/abstract-info-form-base.vue
+5
-5
con-abs-dashboard-base.vue
...gets/contact/con-abs-dashboard/con-abs-dashboard-base.vue
+389
-0
con-abs-dashboard-model.ts
...gets/contact/con-abs-dashboard/con-abs-dashboard-model.ts
+622
-0
con-abs-dashboard-service.ts
...ts/contact/con-abs-dashboard/con-abs-dashboard-service.ts
+11
-0
con-abs-dashboard.less
.../widgets/contact/con-abs-dashboard/con-abs-dashboard.less
+4
-0
con-abs-dashboard.vue
...c/widgets/contact/con-abs-dashboard/con-abs-dashboard.vue
+16
-0
detail-info-form-base.vue
...idgets/contact/detail-info-form/detail-info-form-base.vue
+5
-5
tab-exp-viewtabviewpanel-tabviewpanel-base.vue
...bviewpanel/tab-exp-viewtabviewpanel-tabviewpanel-base.vue
+2
-2
tab-exp-viewtabviewpanel2-tabviewpanel-base.vue
...viewpanel/tab-exp-viewtabviewpanel2-tabviewpanel-base.vue
+2
-2
view-con-abs-portlet-base.vue
...ontact/view-con-abs-portlet/view-con-abs-portlet-base.vue
+241
-0
view-con-abs-portlet-model.ts
...ontact/view-con-abs-portlet/view-con-abs-portlet-model.ts
+622
-0
view-con-abs-portlet-service.ts
...tact/view-con-abs-portlet/view-con-abs-portlet-service.ts
+11
-0
view-con-abs-portlet.less
...ts/contact/view-con-abs-portlet/view-con-abs-portlet.less
+4
-0
view-con-abs-portlet.vue
...ets/contact/view-con-abs-portlet/view-con-abs-portlet.vue
+15
-0
h2_table.xml
...esscentral-core/src/main/resources/liquibase/h2_table.xml
+10
-10
未找到文件。
app_BusinessCentral/public/assets/json/view-config.json
浏览文件 @
1ac621ba
...
...
@@ -309,13 +309,13 @@
"viewtag"
:
"5f8f689d5dccc3db6d2b74a24a8b24ef"
,
"memo"
:
""
},
"contact
detailinfoeditview9
"
:
{
"contact
info_detail
"
:
{
"title"
:
"联系人编辑视图"
,
"caption"
:
"联系人"
,
"viewtype"
:
"DEEDITVIEW9"
,
"viewmodule"
:
"Base"
,
"viewname"
:
"Contact
DetailInfoEditView9
"
,
"viewfilename"
:
"contact-
detail-info-edit-view9
"
,
"viewname"
:
"Contact
Info_Detail
"
,
"viewfilename"
:
"contact-
info-detail
"
,
"viewtag"
:
"60093dd36f07238d7a7e72e9ed372942"
,
"memo"
:
""
},
...
...
@@ -489,13 +489,13 @@
"viewtag"
:
"9224b0b14d2d99014e051f8035ba5cbf"
,
"memo"
:
"系统自动添加"
},
"contact
abstracteditview9
"
:
{
"contact
info_abstract
"
:
{
"title"
:
"联系人编辑视图"
,
"caption"
:
"联系人"
,
"viewtype"
:
"DEEDITVIEW9"
,
"viewmodule"
:
"Base"
,
"viewname"
:
"Contact
AbstractEditView9
"
,
"viewfilename"
:
"contact-
abstract-edit-view9
"
,
"viewname"
:
"Contact
Info_Abstract
"
,
"viewfilename"
:
"contact-
info-abstract
"
,
"viewtag"
:
"928f354b1e67a8b855b7f19f485299b0"
,
"memo"
:
""
},
...
...
app_BusinessCentral/src/locale/lanres/entities/contact/contact_en_US.ts
浏览文件 @
1ac621ba
...
...
@@ -215,7 +215,7 @@ export default {
caption
:
"联系人"
,
title
:
'联系人数据看板视图'
,
},
detailinfoeditview9
:
{
info_detail
:
{
caption
:
"联系人"
,
title
:
'联系人编辑视图'
,
},
...
...
@@ -227,7 +227,7 @@ export default {
caption
:
"联系人列表"
,
title
:
'联系人列表'
,
},
abstracteditview9
:
{
info_abstract
:
{
caption
:
"联系人"
,
title
:
'联系人编辑视图'
,
},
...
...
@@ -480,7 +480,7 @@ export default {
tip
:
"Filter"
,
},
},
abstracteditview9
toolbar_toolbar
:
{
info_abstract
toolbar_toolbar
:
{
deuiaction2
:
{
caption
:
"编辑"
,
tip
:
"编辑"
,
...
...
app_BusinessCentral/src/locale/lanres/entities/contact/contact_zh_CN.ts
浏览文件 @
1ac621ba
...
...
@@ -214,7 +214,7 @@ export default {
caption
:
'联系人'
,
title
:
'联系人数据看板视图'
,
},
detailinfoeditview9
:
{
info_detail
:
{
caption
:
'联系人'
,
title
:
'联系人编辑视图'
,
},
...
...
@@ -226,7 +226,7 @@ export default {
caption
:
'联系人列表'
,
title
:
'联系人列表'
,
},
abstracteditview9
:
{
info_abstract
:
{
caption
:
'联系人'
,
title
:
'联系人编辑视图'
,
},
...
...
@@ -479,7 +479,7 @@ export default {
tip
:
'过滤'
,
},
},
abstracteditview9
toolbar_toolbar
:
{
info_abstract
toolbar_toolbar
:
{
deuiaction2
:
{
caption
:
'编辑'
,
tip
:
'编辑'
,
...
...
app_BusinessCentral/src/mock/viewconfig/viewconfig.ts
浏览文件 @
1ac621ba
...
...
@@ -255,12 +255,12 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname"
:
"OpportunityGridView"
,
"viewtag"
:
"5f8f689d5dccc3db6d2b74a24a8b24ef"
},
"contact
detailinfoeditview9
"
:
{
"contact
info_detail
"
:
{
"title"
:
"联系人编辑视图"
,
"caption"
:
"联系人"
,
"viewtype"
:
"DEEDITVIEW9"
,
"viewmodule"
:
"Base"
,
"viewname"
:
"Contact
DetailInfoEditView9
"
,
"viewname"
:
"Contact
Info_Detail
"
,
"viewtag"
:
"60093dd36f07238d7a7e72e9ed372942"
},
"goalgridview"
:
{
...
...
@@ -399,12 +399,12 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname"
:
"ContactByAccount"
,
"viewtag"
:
"9224b0b14d2d99014e051f8035ba5cbf"
},
"contact
abstracteditview9
"
:
{
"contact
info_abstract
"
:
{
"title"
:
"联系人编辑视图"
,
"caption"
:
"联系人"
,
"viewtype"
:
"DEEDITVIEW9"
,
"viewmodule"
:
"Base"
,
"viewname"
:
"Contact
AbstractEditView9
"
,
"viewname"
:
"Contact
Info_Abstract
"
,
"viewtag"
:
"928f354b1e67a8b855b7f19f485299b0"
},
"serviceappointmenteditview"
:
{
...
...
app_BusinessCentral/src/pages/base/contact-dashboard-view9/contact-dashboard-view9-base.vue
0 → 100644
浏览文件 @
1ac621ba
<
template
>
<studio-embed-view
viewName=
"contactdashboardview9"
viewTitle=
"联系人数据看板视图"
class=
'deportalview9 contact-dashboard-view9'
>
<view
_dashboard
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"JSON.parse(JSON.stringify(context))"
:isEnableCustomized =
"false"
name=
"dashboard"
ref=
'dashboard'
@
load=
"dashboard_load($event)"
@
closeview=
"closeView($event)"
>
</view
_dashboard
>
</studio-embed-view>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
{
Subject
}
from
'rxjs'
;
import
ContactService
from
'@/service/contact/contact-service'
;
import
PortalView9Engine
from
'@engine/view/portal-view9-engine'
;
@
Component
({
components
:
{
},
})
export
default
class
ContactDashboardView9Base
extends
Vue
{
/**
* 实体服务对象
*
* @type {ContactService}
* @memberof ContactDashboardView9Base
*/
public
appEntityService
:
ContactService
=
new
ContactService
;
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof ContactDashboardView9Base
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 数据变化
*
* @param {*} val
* @returns {*}
* @memberof ContactDashboardView9Base
*/
@
Emit
()
public
viewDatasChange
(
val
:
any
):
any
{
return
val
;
}
/**
* 传入视图上下文
*
* @type {string}
* @memberof ContactDashboardView9Base
*/
@
Prop
()
public
viewdata
!
:
string
;
/**
* 传入视图参数
*
* @type {string}
* @memberof ContactDashboardView9Base
*/
@
Prop
()
public
viewparam
!
:
string
;
/**
* 视图默认使用
*
* @type {boolean}
* @memberof ContactDashboardView9Base
*/
@
Prop
({
default
:
true
})
public
viewDefaultUsage
!
:
boolean
;
/**
* 视图标识
*
* @type {string}
* @memberof ContactDashboardView9Base
*/
public
viewtag
:
string
=
'5f858bcdc7f62dbe7c0b05a5e3924240'
;
/**
* 自定义视图导航上下文集合
*
* @type {*}
* @memberof ContactDashboardView9Base
*/
public
customViewNavContexts
:
any
=
{
};
/**
* 自定义视图导航参数集合
*
* @type {*}
* @memberof ContactDashboardView9Base
*/
public
customViewParams
:
any
=
{
};
/**
* 视图模型数据
*
* @type {*}
* @memberof ContactDashboardView9Base
*/
public
model
:
any
=
{
srfCaption
:
'entities.contact.views.dashboardview9.caption'
,
srfTitle
:
'entities.contact.views.dashboardview9.title'
,
srfSubTitle
:
'entities.contact.views.dashboardview9.subtitle'
,
dataInfo
:
''
}
/**
* 视图参数变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof ContactDashboardView9Base
*/
@
Watch
(
'viewparam'
,{
immediate
:
true
,
deep
:
true
})
onParamData
(
newVal
:
any
,
oldVal
:
any
)
{
if
(
newVal
){
for
(
let
key
in
this
.
viewparams
){
delete
this
.
viewparams
[
key
];
}
Object
.
assign
(
this
.
viewparams
,
JSON
.
parse
(
this
.
viewparam
));
}
}
/**
* 处理应用上下文变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof ContactDashboardView9Base
*/
@
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
();
});
}
}
/**
* 容器模型
*
* @type {*}
* @memberof ContactDashboardView9Base
*/
public
containerModel
:
any
=
{
view_dashboard
:
{
name
:
'dashboard'
,
type
:
'DASHBOARD'
},
};
/**
* 计数器刷新
*
* @memberof ContactDashboardView9Base
*/
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 ContactDashboardView9Base
*/
public
viewState
:
Subject
<
ViewState
>
=
new
Subject
();
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof ContactDashboardView9Base
*/
public
engine
:
PortalView9Engine
=
new
PortalView9Engine
();
/**
* 引擎初始化
*
* @public
* @memberof ContactDashboardView9Base
*/
public
engineInit
():
void
{
this
.
engine
.
init
({
view
:
this
,
dashboard
:
this
.
$refs
.
dashboard
,
keyPSDEField
:
'contact'
,
majorPSDEField
:
'fullname'
,
isLoadDefault
:
true
,
});
}
/**
* 应用上下文
*
* @type {*}
* @memberof ContactDashboardView9Base
*/
public
context
:
any
=
{};
/**
* 视图参数
*
* @type {*}
* @memberof ContactDashboardView9Base
*/
public
viewparams
:
any
=
{};
/**
* 解析视图参数
*
* @public
* @memberof ContactDashboardView9Base
*/
public
parseViewParam
():
void
{
for
(
let
key
in
this
.
context
){
delete
this
.
context
[
key
];
}
if
(
!
this
.
viewDefaultUsage
&&
this
.
viewdata
&&
!
Object
.
is
(
this
.
viewdata
,
''
))
{
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
});
}
if
(
this
.
$store
.
getters
.
getAppData
()
&&
this
.
$store
.
getters
.
getAppData
().
context
){
Object
.
assign
(
this
.
context
,
this
.
$store
.
getters
.
getAppData
().
context
);
}
this
.
handleCustomViewData
();
this
.
$forceUpdate
();
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
(
this
.
$store
.
getters
.
getAppData
()
&&
this
.
$store
.
getters
.
getAppData
().
context
){
Object
.
assign
(
this
.
context
,
this
.
$store
.
getters
.
getAppData
().
context
);
}
//初始化视图唯一标识
Object
.
assign
(
this
.
context
,{
srfsessionid
:
this
.
$util
.
createUUID
()});
this
.
handleCustomViewData
();
}
/**
* 处理自定义视图数据
*
* @memberof ContactDashboardView9Base
*/
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 ContactDashboardView9Base
*/
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
()]){
Object
.
defineProperty
(
tempData
,
item
.
toLowerCase
(),
{
value
:
this
.
context
[(
curNavData
.
value
).
toLowerCase
()],
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
else
{
if
(
this
.
viewparams
[(
curNavData
.
value
).
toLowerCase
()]){
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
});
}
}
}
}
/**
* Vue声明周期
*
* @memberof ContactDashboardView9Base
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof ContactDashboardView9Base
*/
public
afterCreated
(){
const
secondtag
=
this
.
$util
.
createUUID
();
this
.
$store
.
commit
(
'viewaction/createdView'
,
{
viewtag
:
this
.
viewtag
,
secondtag
:
secondtag
});
this
.
viewtag
=
secondtag
;
this
.
parseViewParam
();
if
(
this
.
formDruipart
){
this
.
formDruipart
.
subscribe
((
res
:
any
)
=>
{
if
(
Object
.
is
(
res
.
action
,
'load'
)){
const
_this
:
any
=
this
;
_this
.
engine
.
load
(
res
.
data
,
true
);
}
});
}
}
/**
* 销毁之前
*
* @memberof ContactDashboardView9Base
*/
public
beforeDestroy
()
{
this
.
$store
.
commit
(
'viewaction/removeView'
,
this
.
viewtag
);
}
/**
* Vue声明周期(组件初始化完毕)
*
* @memberof ContactDashboardView9Base
*/
public
mounted
()
{
this
.
afterMounted
();
}
/**
* 执行mounted后的逻辑
*
* @memberof ContactDashboardView9Base
*/
public
afterMounted
(){
const
_this
:
any
=
this
;
_this
.
engineInit
();
if
(
_this
.
loadModel
&&
_this
.
loadModel
instanceof
Function
)
{
_this
.
loadModel
();
}
}
/**
* dashboard 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactDashboardView9Base
*/
public
dashboard_load
(
$event
:
any
,
$event2
?:
any
)
{
this
.
engine
.
onCtrlEvent
(
'dashboard'
,
'load'
,
$event
);
}
/**
* 关闭视图
*
* @param {any[]} args
* @memberof ContactDashboardView9Base
*/
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 ContactDashboardView9Base
*/
public
destroyed
(){
this
.
afterDestroyed
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof ContactDashboardView9Base
*/
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
);
}
})
}
}
}
/**
* 是否嵌入关系界面
*
* @type {boolean}
* @memberof ContactDashboardView9Base
*/
@
Prop
({
default
:
false
})
public
isformDruipart
?:
boolean
;
/**
* 界面关系通讯对象
*
* @type {Subject<ViewState>}
* @memberof ContactDashboardView9Base
*/
@
Prop
()
public
formDruipart
!
:
Subject
<
ViewState
>
;
}
</
script
>
<
style
lang=
'less'
>
@import './contact-dashboard-view9.less';
</
style
>
\ No newline at end of file
app_BusinessCentral/src/pages/base/contact-dashboard-view9/contact-dashboard-view9.less
0 → 100644
浏览文件 @
1ac621ba
// 避免空文件,后台不让空文件过
.contact-dashboard-view9 {
--contact-dashboard-view9: 0;
}
app_BusinessCentral/src/pages/base/contact-dashboard-view9/contact-dashboard-view9.vue
0 → 100644
浏览文件 @
1ac621ba
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
ContactDashboardView9Base
from
'./contact-dashboard-view9-base.vue'
;
import
view_dashboard
from
'@widgets/contact/con-abs-dashboard/con-abs-dashboard.vue'
;
@
Component
({
components
:
{
view_dashboard
,
},
beforeRouteEnter
:
(
to
:
any
,
from
:
any
,
next
:
any
)
=>
{
next
((
vm
:
any
)
=>
{
vm
.
$store
.
commit
(
'addCurPageViewtag'
,
{
route
:
to
,
viewtag
:
vm
.
viewtag
});
});
},
})
export
default
class
ContactDashboardView9
extends
ContactDashboardView9Base
{
}
</
script
>
\ No newline at end of file
app_BusinessCentral/src/pages/base/contact-info-abstract/contact-info-abstract-base.vue
0 → 100644
浏览文件 @
1ac621ba
<
template
>
<studio-embed-view
viewName=
"contactinfo_abstract"
viewTitle=
"联系人编辑视图"
class=
'deeditview9 contact-info-abstract'
>
<template
slot=
"toolbar"
>
<div
class=
'toolbar-container'
>
<i-button
:title=
"$t('entities.contact.info_abstracttoolbar_toolbar.deuiaction2.tip')"
v-show=
"toolBarModels.deuiaction2.visabled"
:disabled=
"toolBarModels.deuiaction2.disabled"
class=
''
@
click=
"toolbar_click(
{ tag: 'deuiaction2' }, $event)">
<i
class=
'fa fa-edit'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.contact.info_abstracttoolbar_toolbar.deuiaction2.caption'
)
}}
</span>
</i-button>
</div>
</
template
>
<view
_form
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:autosave=
"false"
:viewtag=
"viewtag"
:showBusyIndicator=
"true"
updateAction=
"Update"
removeAction=
"Remove"
loaddraftAction=
"GetDraft"
loadAction=
"Get"
createAction=
"Create"
WFSubmitAction=
""
WFStartAction=
""
style=
''
name=
"form"
ref=
'form'
@
save=
"form_save($event)"
@
remove=
"form_remove($event)"
@
load=
"form_load($event)"
@
closeview=
"closeView($event)"
>
</view
_form
>
</studio-embed-view>
</template>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
{
Subject
}
from
'rxjs'
;
import
ContactService
from
'@/service/contact/contact-service'
;
import
EditView9Engine
from
'@engine/view/edit-view9-engine'
;
@
Component
({
components
:
{
},
})
export
default
class
ContactInfo_AbstractBase
extends
Vue
{
/**
* 实体服务对象
*
* @type {ContactService}
* @memberof ContactInfo_AbstractBase
*/
public
appEntityService
:
ContactService
=
new
ContactService
;
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof ContactInfo_AbstractBase
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 数据变化
*
* @param {*} val
* @returns {*}
* @memberof ContactInfo_AbstractBase
*/
@
Emit
()
public
viewDatasChange
(
val
:
any
):
any
{
return
val
;
}
/**
* 传入视图上下文
*
* @type {string}
* @memberof ContactInfo_AbstractBase
*/
@
Prop
()
public
viewdata
!
:
string
;
/**
* 传入视图参数
*
* @type {string}
* @memberof ContactInfo_AbstractBase
*/
@
Prop
()
public
viewparam
!
:
string
;
/**
* 视图默认使用
*
* @type {boolean}
* @memberof ContactInfo_AbstractBase
*/
@
Prop
({
default
:
true
})
public
viewDefaultUsage
!
:
boolean
;
/**
* 视图标识
*
* @type {string}
* @memberof ContactInfo_AbstractBase
*/
public
viewtag
:
string
=
'928f354b1e67a8b855b7f19f485299b0'
;
/**
* 自定义视图导航上下文集合
*
* @type {*}
* @memberof ContactInfo_AbstractBase
*/
public
customViewNavContexts
:
any
=
{
};
/**
* 自定义视图导航参数集合
*
* @type {*}
* @memberof ContactInfo_AbstractBase
*/
public
customViewParams
:
any
=
{
};
/**
* 视图模型数据
*
* @type {*}
* @memberof ContactInfo_AbstractBase
*/
public
model
:
any
=
{
srfCaption
:
'entities.contact.views.info_abstract.caption'
,
srfTitle
:
'entities.contact.views.info_abstract.title'
,
srfSubTitle
:
'entities.contact.views.info_abstract.subtitle'
,
dataInfo
:
''
}
/**
* 视图参数变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof ContactInfo_AbstractBase
*/
@
Watch
(
'viewparam'
,{
immediate
:
true
,
deep
:
true
})
onParamData
(
newVal
:
any
,
oldVal
:
any
)
{
if
(
newVal
){
for
(
let
key
in
this
.
viewparams
){
delete
this
.
viewparams
[
key
];
}
Object
.
assign
(
this
.
viewparams
,
JSON
.
parse
(
this
.
viewparam
));
}
}
/**
* 处理应用上下文变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof ContactInfo_AbstractBase
*/
@
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
();
});
}
}
/**
* 容器模型
*
* @type {*}
* @memberof ContactInfo_AbstractBase
*/
public
containerModel
:
any
=
{
view_toolbar
:
{
name
:
'toolbar'
,
type
:
'TOOLBAR'
},
view_form
:
{
name
:
'form'
,
type
:
'FORM'
},
};
/**
* 计数器刷新
*
* @memberof ContactInfo_AbstractBase
*/
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 ContactInfo_AbstractBase
*/
public
viewState
:
Subject
<
ViewState
>
=
new
Subject
();
/**
* 工具栏模型
*
* @type {*}
* @memberof ContactInfo_Abstract
*/
public
toolBarModels
:
any
=
{
deuiaction2
:
{
name
:
'deuiaction2'
,
caption
:
'编辑'
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'OpenEditMode'
,
target
:
'SINGLEKEY'
}
},
};
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof ContactInfo_AbstractBase
*/
public
engine
:
EditView9Engine
=
new
EditView9Engine
();
/**
* 引擎初始化
*
* @public
* @memberof ContactInfo_AbstractBase
*/
public
engineInit
():
void
{
this
.
engine
.
init
({
view
:
this
,
form
:
this
.
$refs
.
form
,
p2k
:
'0'
,
keyPSDEField
:
'contact'
,
majorPSDEField
:
'fullname'
,
isLoadDefault
:
true
,
});
}
/**
* 应用上下文
*
* @type {*}
* @memberof ContactInfo_AbstractBase
*/
public
context
:
any
=
{};
/**
* 视图参数
*
* @type {*}
* @memberof ContactInfo_AbstractBase
*/
public
viewparams
:
any
=
{};
/**
* 解析视图参数
*
* @public
* @memberof ContactInfo_AbstractBase
*/
public
parseViewParam
():
void
{
for
(
let
key
in
this
.
context
){
delete
this
.
context
[
key
];
}
if
(
!
this
.
viewDefaultUsage
&&
this
.
viewdata
&&
!
Object
.
is
(
this
.
viewdata
,
''
))
{
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
});
}
if
(
this
.
$store
.
getters
.
getAppData
()
&&
this
.
$store
.
getters
.
getAppData
().
context
){
Object
.
assign
(
this
.
context
,
this
.
$store
.
getters
.
getAppData
().
context
);
}
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
(
this
.
$store
.
getters
.
getAppData
()
&&
this
.
$store
.
getters
.
getAppData
().
context
){
Object
.
assign
(
this
.
context
,
this
.
$store
.
getters
.
getAppData
().
context
);
}
//初始化视图唯一标识
Object
.
assign
(
this
.
context
,{
srfsessionid
:
this
.
$util
.
createUUID
()});
this
.
handleCustomViewData
();
}
/**
* 处理自定义视图数据
*
* @memberof ContactInfo_AbstractBase
*/
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 ContactInfo_AbstractBase
*/
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
()]){
Object
.
defineProperty
(
tempData
,
item
.
toLowerCase
(),
{
value
:
this
.
context
[(
curNavData
.
value
).
toLowerCase
()],
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
else
{
if
(
this
.
viewparams
[(
curNavData
.
value
).
toLowerCase
()]){
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
});
}
}
}
}
/**
* Vue声明周期
*
* @memberof ContactInfo_AbstractBase
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof ContactInfo_AbstractBase
*/
public
afterCreated
(){
const
secondtag
=
this
.
$util
.
createUUID
();
this
.
$store
.
commit
(
'viewaction/createdView'
,
{
viewtag
:
this
.
viewtag
,
secondtag
:
secondtag
});
this
.
viewtag
=
secondtag
;
this
.
parseViewParam
();
}
/**
* 销毁之前
*
* @memberof ContactInfo_AbstractBase
*/
public
beforeDestroy
()
{
this
.
$store
.
commit
(
'viewaction/removeView'
,
this
.
viewtag
);
}
/**
* Vue声明周期(组件初始化完毕)
*
* @memberof ContactInfo_AbstractBase
*/
public
mounted
()
{
this
.
afterMounted
();
}
/**
* 执行mounted后的逻辑
*
* @memberof ContactInfo_AbstractBase
*/
public
afterMounted
(){
const
_this
:
any
=
this
;
_this
.
engineInit
();
if
(
_this
.
loadModel
&&
_this
.
loadModel
instanceof
Function
)
{
_this
.
loadModel
();
}
if
(
this
.
panelState
){
this
.
panelState
.
subscribe
((
res
:
any
)
=>
{
if
(
Object
.
is
(
res
.
tag
,
'meditviewpanel'
)){
if
(
Object
.
is
(
res
.
action
,
'save'
)){
this
.
viewState
.
next
({
tag
:
'form'
,
action
:
'save'
,
data
:
res
.
data
});
}
if
(
Object
.
is
(
res
.
action
,
'remove'
)){
this
.
viewState
.
next
({
tag
:
'form'
,
action
:
'remove'
,
data
:
res
.
data
});
}
}
});
}
}
/**
* toolbar 部件 click 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactInfo_AbstractBase
*/
public
toolbar_click
(
$event
:
any
,
$event2
?:
any
)
{
if
(
Object
.
is
(
$event
.
tag
,
'deuiaction2'
))
{
this
.
toolbar_deuiaction2_click
(
null
,
''
,
$event2
);
}
}
/**
* form 部件 save 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactInfo_AbstractBase
*/
public
form_save
(
$event
:
any
,
$event2
?:
any
)
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'save'
,
$event
);
}
/**
* form 部件 remove 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactInfo_AbstractBase
*/
public
form_remove
(
$event
:
any
,
$event2
?:
any
)
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'remove'
,
$event
);
}
/**
* form 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactInfo_AbstractBase
*/
public
form_load
(
$event
:
any
,
$event2
?:
any
)
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'load'
,
$event
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_deuiaction2_click
(
params
:
any
=
{},
tag
?:
any
,
$event
?:
any
)
{
// 参数
// 取数
let
datas
:
any
[]
=
[];
let
xData
:
any
=
null
;
// _this 指向容器对象
const
_this
:
any
=
this
;
let
paramJO
:
any
=
{};
let
contextJO
:
any
=
{};
xData
=
this
.
$refs
.
form
;
if
(
xData
.
getDatas
&&
xData
.
getDatas
instanceof
Function
)
{
datas
=
[...
xData
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
this
.
OpenEditMode
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Contact"
);
}
/**
* 编辑
*
* @param {any[]} args 当前数据
* @param {any} context 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @param {*} [srfParentDeName] 父实体名称
* @returns {Promise<any>}
*/
public
async
OpenEditMode
(
args
:
any
[],
context
:
any
=
{}
,
params
:
any
=
{},
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
xData
=
$event
;
$event
=
params
;
params
=
context
;
let
context2
:
any
=
{};
let
data
:
any
=
{};
let
parentContext
:
any
=
{};
let
parentViewParam
:
any
=
{};
const
_args
:
any
[]
=
this
.
$util
.
deepCopy
(
args
);
const
_this
:
any
=
this
;
const
actionTarget
:
string
|
null
=
'SINGLEKEY'
;
Object
.
assign
(
context2
,
{
res_partner
:
'%id%'
});
Object
.
assign
(
params
,
{
id
:
'%id%'
});
Object
.
assign
(
params
,
{
name
:
'%name%'
})
if
(
actionContext
.
context
){
parentContext
=
actionContext
.
context
;
}
if
(
actionContext
.
viewparams
){
parentViewParam
=
actionContext
.
viewparams
;
}
context
=
UIActionTool
.
handleContextParam
(
actionTarget
,
_args
,
parentContext
,
parentViewParam
,
context
);
data
=
UIActionTool
.
handleActionParam
(
actionTarget
,
_args
,
parentContext
,
parentViewParam
,
params
);
Object
.
assign
(
context
,
this
.
context
,
context
);
if
(
context
&&
context
.
srfsessionid
){
context
.
srfsessionkey
=
context
.
srfsessionid
;
delete
context
.
srfsessionid
;
}
const
parameters
:
any
[]
=
[
{
pathName
:
'res_partners'
,
parameterName
:
'res_partner'
},
];
const
openDrawer
=
(
view
:
any
,
data
:
any
)
=>
{
let
container
:
Subject
<
any
>
=
this
.
$appdrawer
.
openDrawer
(
view
,
context
,
data
);
container
.
subscribe
((
result
:
any
)
=>
{
if
(
!
result
||
!
Object
.
is
(
result
.
ret
,
'OK'
))
{
return
;
}
const
_this
:
any
=
this
;
if
(
xData
&&
xData
.
refresh
&&
xData
.
refresh
instanceof
Function
)
{
xData
.
refresh
(
args
);
}
return
result
.
datas
;
});
}
const
view
:
any
=
{
viewname
:
'contact-info-abstract-edit-mode'
,
height
:
0
,
width
:
0
,
title
:
'联系人编辑视图'
,
placement
:
'DRAWER_TOP'
,
};
openDrawer
(
view
,
data
);
}
/**
* 关闭视图
*
* @param {any[]} args
* @memberof ContactInfo_AbstractBase
*/
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 ContactInfo_AbstractBase
*/
public
destroyed
(){
this
.
afterDestroyed
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof ContactInfo_AbstractBase
*/
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
);
}
})
}
}
}
/**
* meditview9状态下发变量
*
* @memberof IBZSAM02MobEditView
*/
@
Prop
()
public
panelState
?:
Subject
<
ViewState
>
;
}
</
script
>
<
style
lang=
'less'
>
@import './contact-info-abstract.less';
</
style
>
\ No newline at end of file
app_BusinessCentral/src/pages/base/contact-info-abstract/contact-info-abstract.less
0 → 100644
浏览文件 @
1ac621ba
// 避免空文件,后台不让空文件过
.contact-info-abstract {
--contact-info-abstract: 0;
}
// 视图样式
// this is less
app_BusinessCentral/src/pages/base/contact-info-abstract/contact-info-abstract.vue
0 → 100644
浏览文件 @
1ac621ba
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
ContactInfo_AbstractBase
from
'./contact-info-abstract-base.vue'
;
import
view_form
from
'@widgets/contact/abstract-info-form/abstract-info-form.vue'
;
@
Component
({
components
:
{
view_form
,
},
beforeRouteEnter
:
(
to
:
any
,
from
:
any
,
next
:
any
)
=>
{
next
((
vm
:
any
)
=>
{
vm
.
$store
.
commit
(
'addCurPageViewtag'
,
{
route
:
to
,
viewtag
:
vm
.
viewtag
});
});
},
})
export
default
class
ContactInfo_Abstract
extends
ContactInfo_AbstractBase
{
}
</
script
>
\ No newline at end of file
app_BusinessCentral/src/pages/base/contact-info-detail/contact-info-detail-base.vue
0 → 100644
浏览文件 @
1ac621ba
<
template
>
<studio-embed-view
viewName=
"contactinfo_detail"
viewTitle=
"联系人编辑视图"
class=
'deeditview9 contact-info-detail'
>
<view
_form
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:autosave=
"false"
:viewtag=
"viewtag"
:showBusyIndicator=
"true"
updateAction=
"Update"
removeAction=
"Remove"
loaddraftAction=
"GetDraft"
loadAction=
"Get"
createAction=
"Create"
WFSubmitAction=
""
WFStartAction=
""
style=
''
name=
"form"
ref=
'form'
@
save=
"form_save($event)"
@
remove=
"form_remove($event)"
@
load=
"form_load($event)"
@
closeview=
"closeView($event)"
>
</view
_form
>
</studio-embed-view>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
{
Subject
}
from
'rxjs'
;
import
ContactService
from
'@/service/contact/contact-service'
;
import
EditView9Engine
from
'@engine/view/edit-view9-engine'
;
@
Component
({
components
:
{
},
})
export
default
class
ContactInfo_DetailBase
extends
Vue
{
/**
* 实体服务对象
*
* @type {ContactService}
* @memberof ContactInfo_DetailBase
*/
public
appEntityService
:
ContactService
=
new
ContactService
;
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof ContactInfo_DetailBase
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 数据变化
*
* @param {*} val
* @returns {*}
* @memberof ContactInfo_DetailBase
*/
@
Emit
()
public
viewDatasChange
(
val
:
any
):
any
{
return
val
;
}
/**
* 传入视图上下文
*
* @type {string}
* @memberof ContactInfo_DetailBase
*/
@
Prop
()
public
viewdata
!
:
string
;
/**
* 传入视图参数
*
* @type {string}
* @memberof ContactInfo_DetailBase
*/
@
Prop
()
public
viewparam
!
:
string
;
/**
* 视图默认使用
*
* @type {boolean}
* @memberof ContactInfo_DetailBase
*/
@
Prop
({
default
:
true
})
public
viewDefaultUsage
!
:
boolean
;
/**
* 视图标识
*
* @type {string}
* @memberof ContactInfo_DetailBase
*/
public
viewtag
:
string
=
'60093dd36f07238d7a7e72e9ed372942'
;
/**
* 自定义视图导航上下文集合
*
* @type {*}
* @memberof ContactInfo_DetailBase
*/
public
customViewNavContexts
:
any
=
{
};
/**
* 自定义视图导航参数集合
*
* @type {*}
* @memberof ContactInfo_DetailBase
*/
public
customViewParams
:
any
=
{
};
/**
* 视图模型数据
*
* @type {*}
* @memberof ContactInfo_DetailBase
*/
public
model
:
any
=
{
srfCaption
:
'entities.contact.views.info_detail.caption'
,
srfTitle
:
'entities.contact.views.info_detail.title'
,
srfSubTitle
:
'entities.contact.views.info_detail.subtitle'
,
dataInfo
:
''
}
/**
* 视图参数变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof ContactInfo_DetailBase
*/
@
Watch
(
'viewparam'
,{
immediate
:
true
,
deep
:
true
})
onParamData
(
newVal
:
any
,
oldVal
:
any
)
{
if
(
newVal
){
for
(
let
key
in
this
.
viewparams
){
delete
this
.
viewparams
[
key
];
}
Object
.
assign
(
this
.
viewparams
,
JSON
.
parse
(
this
.
viewparam
));
}
}
/**
* 处理应用上下文变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof ContactInfo_DetailBase
*/
@
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
();
});
}
}
/**
* 容器模型
*
* @type {*}
* @memberof ContactInfo_DetailBase
*/
public
containerModel
:
any
=
{
view_form
:
{
name
:
'form'
,
type
:
'FORM'
},
};
/**
* 计数器刷新
*
* @memberof ContactInfo_DetailBase
*/
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 ContactInfo_DetailBase
*/
public
viewState
:
Subject
<
ViewState
>
=
new
Subject
();
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof ContactInfo_DetailBase
*/
public
engine
:
EditView9Engine
=
new
EditView9Engine
();
/**
* 引擎初始化
*
* @public
* @memberof ContactInfo_DetailBase
*/
public
engineInit
():
void
{
this
.
engine
.
init
({
view
:
this
,
form
:
this
.
$refs
.
form
,
p2k
:
'0'
,
keyPSDEField
:
'contact'
,
majorPSDEField
:
'fullname'
,
isLoadDefault
:
true
,
});
}
/**
* 应用上下文
*
* @type {*}
* @memberof ContactInfo_DetailBase
*/
public
context
:
any
=
{};
/**
* 视图参数
*
* @type {*}
* @memberof ContactInfo_DetailBase
*/
public
viewparams
:
any
=
{};
/**
* 解析视图参数
*
* @public
* @memberof ContactInfo_DetailBase
*/
public
parseViewParam
():
void
{
for
(
let
key
in
this
.
context
){
delete
this
.
context
[
key
];
}
if
(
!
this
.
viewDefaultUsage
&&
this
.
viewdata
&&
!
Object
.
is
(
this
.
viewdata
,
''
))
{
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
});
}
if
(
this
.
$store
.
getters
.
getAppData
()
&&
this
.
$store
.
getters
.
getAppData
().
context
){
Object
.
assign
(
this
.
context
,
this
.
$store
.
getters
.
getAppData
().
context
);
}
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
(
this
.
$store
.
getters
.
getAppData
()
&&
this
.
$store
.
getters
.
getAppData
().
context
){
Object
.
assign
(
this
.
context
,
this
.
$store
.
getters
.
getAppData
().
context
);
}
//初始化视图唯一标识
Object
.
assign
(
this
.
context
,{
srfsessionid
:
this
.
$util
.
createUUID
()});
this
.
handleCustomViewData
();
}
/**
* 处理自定义视图数据
*
* @memberof ContactInfo_DetailBase
*/
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 ContactInfo_DetailBase
*/
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
()]){
Object
.
defineProperty
(
tempData
,
item
.
toLowerCase
(),
{
value
:
this
.
context
[(
curNavData
.
value
).
toLowerCase
()],
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
else
{
if
(
this
.
viewparams
[(
curNavData
.
value
).
toLowerCase
()]){
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
});
}
}
}
}
/**
* Vue声明周期
*
* @memberof ContactInfo_DetailBase
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof ContactInfo_DetailBase
*/
public
afterCreated
(){
const
secondtag
=
this
.
$util
.
createUUID
();
this
.
$store
.
commit
(
'viewaction/createdView'
,
{
viewtag
:
this
.
viewtag
,
secondtag
:
secondtag
});
this
.
viewtag
=
secondtag
;
this
.
parseViewParam
();
}
/**
* 销毁之前
*
* @memberof ContactInfo_DetailBase
*/
public
beforeDestroy
()
{
this
.
$store
.
commit
(
'viewaction/removeView'
,
this
.
viewtag
);
}
/**
* Vue声明周期(组件初始化完毕)
*
* @memberof ContactInfo_DetailBase
*/
public
mounted
()
{
this
.
afterMounted
();
}
/**
* 执行mounted后的逻辑
*
* @memberof ContactInfo_DetailBase
*/
public
afterMounted
(){
const
_this
:
any
=
this
;
_this
.
engineInit
();
if
(
_this
.
loadModel
&&
_this
.
loadModel
instanceof
Function
)
{
_this
.
loadModel
();
}
if
(
this
.
panelState
){
this
.
panelState
.
subscribe
((
res
:
any
)
=>
{
if
(
Object
.
is
(
res
.
tag
,
'meditviewpanel'
)){
if
(
Object
.
is
(
res
.
action
,
'save'
)){
this
.
viewState
.
next
({
tag
:
'form'
,
action
:
'save'
,
data
:
res
.
data
});
}
if
(
Object
.
is
(
res
.
action
,
'remove'
)){
this
.
viewState
.
next
({
tag
:
'form'
,
action
:
'remove'
,
data
:
res
.
data
});
}
}
});
}
}
/**
* form 部件 save 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactInfo_DetailBase
*/
public
form_save
(
$event
:
any
,
$event2
?:
any
)
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'save'
,
$event
);
}
/**
* form 部件 remove 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactInfo_DetailBase
*/
public
form_remove
(
$event
:
any
,
$event2
?:
any
)
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'remove'
,
$event
);
}
/**
* form 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactInfo_DetailBase
*/
public
form_load
(
$event
:
any
,
$event2
?:
any
)
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'load'
,
$event
);
}
/**
* 关闭视图
*
* @param {any[]} args
* @memberof ContactInfo_DetailBase
*/
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 ContactInfo_DetailBase
*/
public
destroyed
(){
this
.
afterDestroyed
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof ContactInfo_DetailBase
*/
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
);
}
})
}
}
}
/**
* meditview9状态下发变量
*
* @memberof IBZSAM02MobEditView
*/
@
Prop
()
public
panelState
?:
Subject
<
ViewState
>
;
}
</
script
>
<
style
lang=
'less'
>
@import './contact-info-detail.less';
</
style
>
\ No newline at end of file
app_BusinessCentral/src/pages/base/contact-info-detail/contact-info-detail.less
0 → 100644
浏览文件 @
1ac621ba
// 避免空文件,后台不让空文件过
.contact-info-detail {
--contact-info-detail: 0;
}
app_BusinessCentral/src/pages/base/contact-info-detail/contact-info-detail.vue
0 → 100644
浏览文件 @
1ac621ba
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
ContactInfo_DetailBase
from
'./contact-info-detail-base.vue'
;
import
view_form
from
'@widgets/contact/detail-info-form/detail-info-form.vue'
;
@
Component
({
components
:
{
view_form
,
},
beforeRouteEnter
:
(
to
:
any
,
from
:
any
,
next
:
any
)
=>
{
next
((
vm
:
any
)
=>
{
vm
.
$store
.
commit
(
'addCurPageViewtag'
,
{
route
:
to
,
viewtag
:
vm
.
viewtag
});
});
},
})
export
default
class
ContactInfo_Detail
extends
ContactInfo_DetailBase
{
}
</
script
>
\ No newline at end of file
app_BusinessCentral/src/pages/ungroup/central/page-register.ts
浏览文件 @
1ac621ba
...
...
@@ -19,6 +19,7 @@ export const PageComponents = {
Vue
.
component
(
'quote-grid-view'
,
()
=>
import
(
'@pages/sales/quote-grid-view/quote-grid-view.vue'
));
Vue
.
component
(
'account-info-account'
,
()
=>
import
(
'@pages/base/account-info-account/account-info-account.vue'
));
Vue
.
component
(
'invoice-edit-view'
,
()
=>
import
(
'@pages/finance/invoice-edit-view/invoice-edit-view.vue'
));
Vue
.
component
(
'contact-dashboard-view9'
,
()
=>
import
(
'@pages/base/contact-dashboard-view9/contact-dashboard-view9.vue'
));
Vue
.
component
(
'campaign-info-schedule'
,
()
=>
import
(
'@pages/marketing/campaign-info-schedule/campaign-info-schedule.vue'
));
Vue
.
component
(
'account-info-contact-setting'
,
()
=>
import
(
'@pages/base/account-info-contact-setting/account-info-contact-setting.vue'
));
Vue
.
component
(
'campaign-edit-view'
,
()
=>
import
(
'@pages/marketing/campaign-edit-view/campaign-edit-view.vue'
));
...
...
@@ -67,9 +68,9 @@ export const PageComponents = {
Vue
.
component
(
'incident-grid-view'
,
()
=>
import
(
'@pages/service/incident-grid-view/incident-grid-view.vue'
));
Vue
.
component
(
'account-summary'
,
()
=>
import
(
'@pages/base/account-summary/account-summary.vue'
));
Vue
.
component
(
'campaign-summary-head'
,
()
=>
import
(
'@pages/marketing/campaign-summary-head/campaign-summary-head.vue'
));
Vue
.
component
(
'contact-
detail-info-edit-view9'
,
()
=>
import
(
'@pages/base/contact-detail-info-edit-view9/contact-detail-info-edit-view9
.vue'
));
Vue
.
component
(
'contact-
info-detail'
,
()
=>
import
(
'@pages/base/contact-info-detail/contact-info-detail
.vue'
));
Vue
.
component
(
'account-edit-account-info'
,
()
=>
import
(
'@pages/base/account-edit-account-info/account-edit-account-info.vue'
));
Vue
.
component
(
'contact-
abstract-edit-view9'
,
()
=>
import
(
'@pages/base/contact-abstract-edit-view9/contact-abstract-edit-view9
.vue'
));
Vue
.
component
(
'contact-
info-abstract'
,
()
=>
import
(
'@pages/base/contact-info-abstract/contact-info-abstract
.vue'
));
Vue
.
component
(
'campaign-summary'
,
()
=>
import
(
'@pages/marketing/campaign-summary/campaign-summary.vue'
));
Vue
.
component
(
'contact-pickup-view'
,
()
=>
import
(
'@pages/base/contact-pickup-view/contact-pickup-view.vue'
));
Vue
.
component
(
'account-edit-address'
,
()
=>
import
(
'@pages/base/account-edit-address/account-edit-address.vue'
));
...
...
app_BusinessCentral/src/pages/ungroup/central/router.ts
浏览文件 @
1ac621ba
...
...
@@ -134,18 +134,18 @@ const router = new Router({
component
:
()
=>
import
(
'@pages/base/account-edit-view/account-edit-view.vue'
),
},
{
path
:
'contacts/:contact?/
abstracteditview9/:abstracteditview9
?'
,
path
:
'contacts/:contact?/
info_abstract/:info_abstract
?'
,
meta
:
{
caption
:
'entities.contact.views.
abstracteditview9
.title'
,
caption
:
'entities.contact.views.
info_abstract
.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'
abstracteditview9'
,
parameterName
:
'abstracteditview9
'
},
{
pathName
:
'
info_abstract'
,
parameterName
:
'info_abstract
'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/base/contact-
abstract-edit-view9/contact-abstract-edit-view9
.vue'
),
component
:
()
=>
import
(
'@pages/base/contact-
info-abstract/contact-info-abstract
.vue'
),
},
{
path
:
'faxes/:fax?/editview/:editview?'
,
...
...
@@ -343,6 +343,20 @@ const router = new Router({
},
component
:
()
=>
import
(
'@pages/finance/invoice-edit-view/invoice-edit-view.vue'
),
},
{
path
:
'contacts/:contact?/dashboardview9/:dashboardview9?'
,
meta
:
{
caption
:
'entities.contact.views.dashboardview9.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'dashboardview9'
,
parameterName
:
'dashboardview9'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/base/contact-dashboard-view9/contact-dashboard-view9.vue'
),
},
{
path
:
'campaigns/:campaign?/info_schedule/:info_schedule?'
,
meta
:
{
...
...
@@ -470,18 +484,18 @@ const router = new Router({
component
:
()
=>
import
(
'@pages/base/account-info-address/account-info-address.vue'
),
},
{
path
:
'contacts/:contact?/
detailinfoeditview9/:detailinfoeditview9
?'
,
path
:
'contacts/:contact?/
info_detail/:info_detail
?'
,
meta
:
{
caption
:
'entities.contact.views.
detailinfoeditview9
.title'
,
caption
:
'entities.contact.views.
info_detail
.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'
detailinfoeditview9'
,
parameterName
:
'detailinfoeditview9
'
},
{
pathName
:
'
info_detail'
,
parameterName
:
'info_detail
'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/base/contact-
detail-info-edit-view9/contact-detail-info-edit-view9
.vue'
),
component
:
()
=>
import
(
'@pages/base/contact-
info-detail/contact-info-detail
.vue'
),
},
{
path
:
'appointments/:appointment?/editview/:editview?'
,
...
...
@@ -1440,6 +1454,19 @@ const router = new Router({
},
component
:
()
=>
import
(
'@pages/base/account-grid-view/account-grid-view.vue'
),
},
{
path
:
'/contacts/:contact?/dashboardview9/:dashboardview9?'
,
meta
:
{
caption
:
'entities.contact.views.dashboardview9.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'dashboardview9'
,
parameterName
:
'dashboardview9'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/base/contact-dashboard-view9/contact-dashboard-view9.vue'
),
},
{
path
:
'/opportunities/:opportunity?/gridview/:gridview?'
,
meta
:
{
...
...
@@ -1454,17 +1481,17 @@ const router = new Router({
component
:
()
=>
import
(
'@pages/sales/opportunity-grid-view/opportunity-grid-view.vue'
),
},
{
path
:
'/contacts/:contact?/
detailinfoeditview9/:detailinfoeditview9
?'
,
path
:
'/contacts/:contact?/
info_detail/:info_detail
?'
,
meta
:
{
caption
:
'entities.contact.views.
detailinfoeditview9
.title'
,
caption
:
'entities.contact.views.
info_detail
.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'
detailinfoeditview9'
,
parameterName
:
'detailinfoeditview9
'
},
{
pathName
:
'
info_detail'
,
parameterName
:
'info_detail
'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/base/contact-
detail-info-edit-view9/contact-detail-info-edit-view9
.vue'
),
component
:
()
=>
import
(
'@pages/base/contact-
info-detail/contact-info-detail
.vue'
),
},
{
path
:
'/goals/:goal?/gridview/:gridview?'
,
...
...
@@ -1661,17 +1688,17 @@ const router = new Router({
component
:
()
=>
import
(
'@pages/base/contact-by-account/contact-by-account.vue'
),
},
{
path
:
'/contacts/:contact?/
abstracteditview9/:abstracteditview9
?'
,
path
:
'/contacts/:contact?/
info_abstract/:info_abstract
?'
,
meta
:
{
caption
:
'entities.contact.views.
abstracteditview9
.title'
,
caption
:
'entities.contact.views.
info_abstract
.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'
abstracteditview9'
,
parameterName
:
'abstracteditview9
'
},
{
pathName
:
'
info_abstract'
,
parameterName
:
'info_abstract
'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/base/contact-
abstract-edit-view9/contact-abstract-edit-view9
.vue'
),
component
:
()
=>
import
(
'@pages/base/contact-
info-abstract/contact-info-abstract
.vue'
),
},
{
path
:
'/serviceappointments/:serviceappointment?/editview/:editview?'
,
...
...
app_BusinessCentral/src/store/modules/view-action/state.ts
浏览文件 @
1ac621ba
...
...
@@ -285,6 +285,16 @@ export const viewstate: any = {
'6e18ac74e5685439110f9b4e534ee005'
,
],
},
{
viewtag
:
'5f858bcdc7f62dbe7c0b05a5e3924240'
,
viewmodule
:
'Base'
,
viewname
:
'ContactDashboardView9'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'928f354b1e67a8b855b7f19f485299b0'
,
],
},
{
viewtag
:
'5f8f689d5dccc3db6d2b74a24a8b24ef'
,
viewmodule
:
'Sales'
,
...
...
@@ -298,7 +308,7 @@ export const viewstate: any = {
{
viewtag
:
'60093dd36f07238d7a7e72e9ed372942'
,
viewmodule
:
'Base'
,
viewname
:
'Contact
DetailInfoEditView9
'
,
viewname
:
'Contact
Info_Detail
'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
...
...
@@ -476,7 +486,7 @@ export const viewstate: any = {
{
viewtag
:
'928f354b1e67a8b855b7f19f485299b0'
,
viewmodule
:
'Base'
,
viewname
:
'Contact
AbstractEditView9
'
,
viewname
:
'Contact
Info_Abstract
'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
...
...
@@ -790,7 +800,7 @@ export const viewstate: any = {
viewdatachange
:
false
,
refviews
:
[
'60093dd36f07238d7a7e72e9ed372942'
,
'
928f354b1e67a8b855b7f19f485299b
0'
,
'
5f858bcdc7f62dbe7c0b05a5e392424
0'
,
],
},
],
...
...
app_BusinessCentral/src/uiservice/contact/contact-ui-service-base.ts
浏览文件 @
1ac621ba
...
...
@@ -82,10 +82,10 @@ export default class ContactUIServiceBase extends UIService {
this
.
allViewMap
.
set
(
'MDATAVIEW:'
,{
viewname
:
'gridview'
,
srfappde
:
'contacts'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'abstracteditview9_editmode'
,
srfappde
:
'contacts'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'dashboardview9'
,
srfappde
:
'contacts'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'
detailinfoeditview9
'
,
srfappde
:
'contacts'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'
info_detail
'
,
srfappde
:
'contacts'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'pickupgridview'
,
srfappde
:
'contacts'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'byaccount'
,
srfappde
:
'contacts'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'
abstracteditview9
'
,
srfappde
:
'contacts'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'
info_abstract
'
,
srfappde
:
'contacts'
});
this
.
allViewMap
.
set
(
'EDITVIEW:'
,{
viewname
:
'editview'
,
srfappde
:
'contacts'
});
this
.
allViewMap
.
set
(
'PICKUPVIEW:'
,{
viewname
:
'pickupview'
,
srfappde
:
'contacts'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'optionview'
,
srfappde
:
'contacts'
});
...
...
app_BusinessCentral/src/widgets/account/summary-dashboard/summary-dashboard.vue
浏览文件 @
1ac621ba
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
SummaryBase
from
'./summary-dashboard-base.vue'
;
import
view_dashboard_sysportlet8
from
'@widgets/activity-pointer/
pt-by-parent-key-portlet/p
t-by-parent-key-portlet.vue'
;
import
view_dashboard_sysportlet4
from
'@widgets/account/
pt-contact-setting-portlet/pt
-contact-setting-portlet.vue'
;
import
view_dashboard_sysportlet5
from
'@widgets/account/
pt-distribution-portlet/pt
-distribution-portlet.vue'
;
import
view_dashboard_sysportlet2
from
'@widgets/account/
pt-address-portlet/pt
-address-portlet.vue'
;
import
view_dashboard_sysportlet3
from
'@widgets/account/
pt-introduction-portlet/pt
-introduction-portlet.vue'
;
import
view_dashboard_sysportlet1
from
'@widgets/account/
pt-account-info-portlet/pt
-account-info-portlet.vue'
;
import
view_dashboard_sysportlet8
from
'@widgets/activity-pointer/
list-by-parent-key-portlet/lis
t-by-parent-key-portlet.vue'
;
import
view_dashboard_sysportlet4
from
'@widgets/account/
view-contact-setting-portlet/view
-contact-setting-portlet.vue'
;
import
view_dashboard_sysportlet5
from
'@widgets/account/
view-distribution-portlet/view
-distribution-portlet.vue'
;
import
view_dashboard_sysportlet2
from
'@widgets/account/
view-address-portlet/view
-address-portlet.vue'
;
import
view_dashboard_sysportlet3
from
'@widgets/account/
view-introduction-portlet/view
-introduction-portlet.vue'
;
import
view_dashboard_sysportlet1
from
'@widgets/account/
view-account-info-portlet/view
-account-info-portlet.vue'
;
@
Component
({
...
...
app_BusinessCentral/src/widgets/account/view-account-info-portlet/view-account-info-portlet-base.vue
0 → 100644
浏览文件 @
1ac621ba
<
template
>
<div
class=
'portlet view-account-info '
:style=
"
{'height': 'auto',}">
<p
class=
'portlet-title'
>
<span>
账户信息
</span>
<span
class=
"portlet-action"
>
<a
@
click=
"uiAction('uc040f39', $event)"
>
<span>
编辑
</span>
</a>
</span>
</p>
<div
class=
"portlet-with-title"
>
<account-info-account
:viewdata=
"JSON.stringify(context)"
:viewDefaultUsage=
"false"
></account-info-account>
</div>
</div>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
AccountService
from
'@/service/account/account-service'
;
import
View_AccountInfoService
from
'./view-account-info-portlet-service'
;
import
AccountUIService
from
'@/uiservice/account/account-ui-service'
;
import
{
Environment
}
from
'@/environments/environment'
;
@
Component
({
components
:
{
}
})
export
default
class
AccountView_AccountInfoBase
extends
Vue
implements
ControlInterface
{
/**
* 名称
*
* @type {string}
* @memberof View_AccountInfo
*/
@
Prop
()
public
name
?:
string
;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_AccountInfo
*/
@
Prop
()
public
viewState
!
:
Subject
<
ViewState
>
;
/**
* 应用上下文
*
* @type {*}
* @memberof View_AccountInfo
*/
@
Prop
()
public
context
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof View_AccountInfo
*/
@
Prop
()
public
viewparams
:
any
;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_AccountInfo
*/
public
viewStateEvent
:
Subscription
|
undefined
;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_AccountInfo
*/
public
getControlType
():
string
{
return
'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_AccountInfo
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 建构部件服务对象
*
* @type {View_AccountInfoService}
* @memberof View_AccountInfo
*/
public
service
:
View_AccountInfoService
=
new
View_AccountInfoService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {AccountService}
* @memberof View_AccountInfo
*/
public
appEntityService
:
AccountService
=
new
AccountService
({
$store
:
this
.
$store
});
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
dashboard_sysportlet1_uc040f39_click
(
params
:
any
=
{},
tag
?:
any
,
$event
?:
any
)
{
// 取数
let
datas
:
any
[]
=
[];
let
xData
:
any
=
null
;
// _this 指向容器对象
const
_this
:
any
=
this
;
let
paramJO
:
any
=
{};
let
contextJO
:
any
=
{};
xData
=
this
;
if
(
_this
.
getDatas
&&
_this
.
getDatas
instanceof
Function
)
{
datas
=
[...
_this
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
const
curUIService
:
AccountUIService
=
new
AccountUIService
();
curUIService
.
Account_Edit_AccountInfo
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Account"
);
}
/**
* 关闭视图
*
* @param {any} args
* @memberof View_AccountInfo
*/
public
closeView
(
args
:
any
):
void
{
let
_this
:
any
=
this
;
_this
.
$emit
(
'closeview'
,
[
args
]);
}
/**
* 计数器刷新
*
* @memberof View_AccountInfo
*/
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 {number}
* @memberof View_AccountInfo
*/
@
Prop
()
public
height
?:
number
;
/**
* 宽度
*
* @type {number}
* @memberof View_AccountInfo
*/
@
Prop
()
public
width
?:
number
;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_AccountInfoBase
*/
@
Prop
({
default
:
false
})
public
isAdaptiveSize
!
:
boolean
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_AccountInfoBase
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_AccountInfoBase
*/
public
getData
():
any
{
return
{};
}
/**
* vue 生命周期
*
* @memberof View_AccountInfoBase
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof View_AccountInfoBase
*/
public
afterCreated
(){
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
const
refs
:
any
=
this
.
$refs
;
Object
.
keys
(
refs
).
forEach
((
_name
:
string
)
=>
{
this
.
viewState
.
next
({
tag
:
_name
,
action
:
action
,
data
:
data
});
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_AccountInfoBase
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_AccountInfoBase
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
/**
* 执行界面行为
*
* @memberof View_AccountInfoBase
*/
public
uiAction
(
tag
:
string
,
event
:
any
){
if
(
Object
.
is
(
tag
,
'uc040f39'
)){
this
.
dashboard_sysportlet1_uc040f39_click
(
null
,
tag
,
event
);
}
}
}
</
script
>
<
style
lang=
'less'
>
@import './view-account-info-portlet.less';
</
style
>
app_BusinessCentral/src/widgets/account/view-account-info-portlet/view-account-info-portlet-model.ts
0 → 100644
浏览文件 @
1ac621ba
/**
* View_AccountInfo 部件模型
*
* @export
* @class View_AccountInfoModel
*/
export
default
class
View_AccountInfoModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_AccountInfoModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'address1_primarycontactname'
,
},
{
name
:
'openrevenue_date'
,
},
{
name
:
'address2_utcoffset'
,
},
{
name
:
'fax'
,
},
{
name
:
'address1_composite'
,
},
{
name
:
'entityimage'
,
},
{
name
:
'emailaddress1'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'address1_stateorprovince'
,
},
{
name
:
'openrevenue'
,
},
{
name
:
'address1_upszone'
,
},
{
name
:
'followemail'
,
},
{
name
:
'marketingonly'
,
},
{
name
:
'numberofemployees'
,
},
{
name
:
'telephone1'
,
},
{
name
:
'aging60'
,
},
{
name
:
'sharesoutstanding'
,
},
{
name
:
'address2_freighttermscode'
,
},
{
name
:
'entityimage_timestamp'
,
},
{
name
:
'revenue_base'
,
},
{
name
:
'accountratingcode'
,
},
{
name
:
'donotbulkemail'
,
},
{
name
:
'aging30'
,
},
{
name
:
'donotbulkpostalmail'
,
},
{
name
:
'creditlimit_base'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'customertypecode'
,
},
{
name
:
'address2_longitude'
,
},
{
name
:
'accountname'
,
},
{
name
:
'participatesinworkflow'
,
},
{
name
:
'preferredcontactmethodcode'
,
},
{
name
:
'preferredappointmentdaycode'
,
},
{
name
:
'marketcap'
,
},
{
name
:
'address2_telephone1'
,
},
{
name
:
'businesstypecode'
,
},
{
name
:
'entityimageid'
,
},
{
name
:
'address2_city'
,
},
{
name
:
'ownershipcode'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'accountnumber'
,
},
{
name
:
'address1_telephone2'
,
},
{
name
:
'address1_line1'
,
},
{
name
:
'donotphone'
,
},
{
name
:
'address1_telephone3'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'address2_line2'
,
},
{
name
:
'address2_telephone3'
,
},
{
name
:
'address1_telephone1'
,
},
{
name
:
'address1_fax'
,
},
{
name
:
'address1_freighttermscode'
,
},
{
name
:
'description'
,
},
{
name
:
'merged'
,
},
{
name
:
'address1_shippingmethodcode'
,
},
{
name
:
'address1_name'
,
},
{
name
:
'aging30_base'
,
},
{
name
:
'address2_telephone2'
,
},
{
name
:
'account'
,
prop
:
'accountid'
,
},
{
name
:
'primarytwitterid'
,
},
{
name
:
'tickersymbol'
,
},
{
name
:
'stockexchange'
,
},
{
name
:
'address2_stateorprovince'
,
},
{
name
:
'ftpsiteurl'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'websiteurl'
,
},
{
name
:
'donotpostalmail'
,
},
{
name
:
'address1_city'
,
},
{
name
:
'address2_fax'
,
},
{
name
:
'aging90_base'
,
},
{
name
:
'opendeals_date'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'shippingmethodcode'
,
},
{
name
:
'address1_line2'
,
},
{
name
:
'openrevenue_base'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'preferredsystemuseridyominame'
,
},
{
name
:
'address2_line3'
,
},
{
name
:
'address1_postalcode'
,
},
{
name
:
'address2_latitude'
,
},
{
name
:
'ibizprivate'
,
},
{
name
:
'territorycode'
,
},
{
name
:
'teamsfollowed'
,
},
{
name
:
'yominame'
,
},
{
name
:
'address1_latitude'
,
},
{
name
:
'telephone3'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'address2_country'
,
},
{
name
:
'masteraccountidyominame'
,
},
{
name
:
'industrycode'
,
},
{
name
:
'lastonholdtime'
,
},
{
name
:
'address2_addressid'
,
},
{
name
:
'onholdtime'
,
},
{
name
:
'accountclassificationcode'
,
},
{
name
:
'address1_country'
,
},
{
name
:
'address1_addresstypecode'
,
},
{
name
:
'statecode'
,
},
{
name
:
'address2_addresstypecode'
,
},
{
name
:
'accountcategorycode'
,
},
{
name
:
'emailaddress2'
,
},
{
name
:
'address2_shippingmethodcode'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'primarysatoriid'
,
},
{
name
:
'customersizecode'
,
},
{
name
:
'opendeals'
,
},
{
name
:
'donotsendmm'
,
},
{
name
:
'processid'
,
},
{
name
:
'paymenttermscode'
,
},
{
name
:
'sic'
,
},
{
name
:
'address2_primarycontactname'
,
},
{
name
:
'address1_utcoffset'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'lastusedincampaign'
,
},
{
name
:
'aging60_base'
,
},
{
name
:
'donotfax'
,
},
{
name
:
'updateman'
,
},
{
name
:
'openrevenue_state'
,
},
{
name
:
'opendeals_state'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'address1_longitude'
,
},
{
name
:
'aging90'
,
},
{
name
:
'entityimage_url'
,
},
{
name
:
'creditlimit'
,
},
{
name
:
'preferredsystemuserid'
,
},
{
name
:
'revenue'
,
},
{
name
:
'address1_county'
,
},
{
name
:
'address1_line3'
,
},
{
name
:
'stageid'
,
},
{
name
:
'donotemail'
,
},
{
name
:
'address2_postalcode'
,
},
{
name
:
'preferredappointmenttimecode'
,
},
{
name
:
'address2_upszone'
,
},
{
name
:
'createdate'
,
},
{
name
:
'address2_county'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'address2_composite'
,
},
{
name
:
'address2_name'
,
},
{
name
:
'address2_line1'
,
},
{
name
:
'marketcap_base'
,
},
{
name
:
'emailaddress3'
,
},
{
name
:
'telephone2'
,
},
{
name
:
'createman'
,
},
{
name
:
'address1_postofficebox'
,
},
{
name
:
'creditonhold'
,
},
{
name
:
'address1_addressid'
,
},
{
name
:
'address2_postofficebox'
,
},
{
name
:
'slaname'
,
},
{
name
:
'originatingleadid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'defaultpricelevelid'
,
},
{
name
:
'parentaccountid'
,
},
{
name
:
'preferredequipmentid'
,
},
{
name
:
'territoryid'
,
},
{
name
:
'primarycontactid'
,
},
{
name
:
'slaid'
,
},
{
name
:
'preferredserviceid'
,
},
{
name
:
'originatingleadname'
,
},
{
name
:
'defaultpricelevelname'
,
},
{
name
:
'territoryname'
,
},
{
name
:
'parentaccountname'
,
},
{
name
:
'preferredequipmentname'
,
},
{
name
:
'preferredservicename'
,
},
{
name
:
'primarycontactname'
,
},
{
name
:
'transactioncurrencyname'
,
},
]
}
}
app_BusinessCentral/src/widgets/account/view-account-info-portlet/view-account-info-portlet-service.ts
0 → 100644
浏览文件 @
1ac621ba
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* View_AccountInfo 部件服务对象
*
* @export
* @class View_AccountInfoService
*/
export
default
class
View_AccountInfoService
extends
ControlService
{
}
app_BusinessCentral/src/widgets/account/view-account-info-portlet/view-account-info-portlet.less
0 → 100644
浏览文件 @
1ac621ba
.portlet {
--portlet: 0px;
}
// this is less
app_BusinessCentral/src/widgets/account/view-account-info-portlet/view-account-info-portlet.vue
0 → 100644
浏览文件 @
1ac621ba
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
AccountView_AccountInfoBase
from
'./view-account-info-portlet-base.vue'
;
@
Component
({
components
:
{
}
})
export
default
class
AccountView_AccountInfo
extends
AccountView_AccountInfoBase
{
}
</
script
>
app_BusinessCentral/src/widgets/account/view-address-portlet/view-address-portlet-base.vue
0 → 100644
浏览文件 @
1ac621ba
<
template
>
<div
class=
'portlet view-address '
:style=
"
{'height': 'auto',}">
<p
class=
'portlet-title'
>
<span>
地址信息
</span>
<span
class=
"portlet-action"
>
<a
@
click=
"uiAction('u2ccbfc9', $event)"
>
<span>
编辑
</span>
</a>
</span>
</p>
<div
class=
"portlet-with-title"
>
<account-info-address
:viewdata=
"JSON.stringify(context)"
:viewDefaultUsage=
"false"
></account-info-address>
</div>
</div>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
AccountService
from
'@/service/account/account-service'
;
import
View_AddressService
from
'./view-address-portlet-service'
;
import
AccountUIService
from
'@/uiservice/account/account-ui-service'
;
import
{
Environment
}
from
'@/environments/environment'
;
@
Component
({
components
:
{
}
})
export
default
class
AccountView_AddressBase
extends
Vue
implements
ControlInterface
{
/**
* 名称
*
* @type {string}
* @memberof View_Address
*/
@
Prop
()
public
name
?:
string
;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_Address
*/
@
Prop
()
public
viewState
!
:
Subject
<
ViewState
>
;
/**
* 应用上下文
*
* @type {*}
* @memberof View_Address
*/
@
Prop
()
public
context
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof View_Address
*/
@
Prop
()
public
viewparams
:
any
;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_Address
*/
public
viewStateEvent
:
Subscription
|
undefined
;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_Address
*/
public
getControlType
():
string
{
return
'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_Address
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 建构部件服务对象
*
* @type {View_AddressService}
* @memberof View_Address
*/
public
service
:
View_AddressService
=
new
View_AddressService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {AccountService}
* @memberof View_Address
*/
public
appEntityService
:
AccountService
=
new
AccountService
({
$store
:
this
.
$store
});
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
dashboard_sysportlet2_u2ccbfc9_click
(
params
:
any
=
{},
tag
?:
any
,
$event
?:
any
)
{
// 取数
let
datas
:
any
[]
=
[];
let
xData
:
any
=
null
;
// _this 指向容器对象
const
_this
:
any
=
this
;
let
paramJO
:
any
=
{};
let
contextJO
:
any
=
{};
xData
=
this
;
if
(
_this
.
getDatas
&&
_this
.
getDatas
instanceof
Function
)
{
datas
=
[...
_this
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
const
curUIService
:
AccountUIService
=
new
AccountUIService
();
curUIService
.
Account_Edit_Address
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Account"
);
}
/**
* 关闭视图
*
* @param {any} args
* @memberof View_Address
*/
public
closeView
(
args
:
any
):
void
{
let
_this
:
any
=
this
;
_this
.
$emit
(
'closeview'
,
[
args
]);
}
/**
* 计数器刷新
*
* @memberof View_Address
*/
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 {number}
* @memberof View_Address
*/
@
Prop
()
public
height
?:
number
;
/**
* 宽度
*
* @type {number}
* @memberof View_Address
*/
@
Prop
()
public
width
?:
number
;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_AddressBase
*/
@
Prop
({
default
:
false
})
public
isAdaptiveSize
!
:
boolean
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_AddressBase
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_AddressBase
*/
public
getData
():
any
{
return
{};
}
/**
* vue 生命周期
*
* @memberof View_AddressBase
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof View_AddressBase
*/
public
afterCreated
(){
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
const
refs
:
any
=
this
.
$refs
;
Object
.
keys
(
refs
).
forEach
((
_name
:
string
)
=>
{
this
.
viewState
.
next
({
tag
:
_name
,
action
:
action
,
data
:
data
});
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_AddressBase
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_AddressBase
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
/**
* 执行界面行为
*
* @memberof View_AddressBase
*/
public
uiAction
(
tag
:
string
,
event
:
any
){
if
(
Object
.
is
(
tag
,
'u2ccbfc9'
)){
this
.
dashboard_sysportlet2_u2ccbfc9_click
(
null
,
tag
,
event
);
}
}
}
</
script
>
<
style
lang=
'less'
>
@import './view-address-portlet.less';
</
style
>
app_BusinessCentral/src/widgets/account/view-address-portlet/view-address-portlet-model.ts
0 → 100644
浏览文件 @
1ac621ba
/**
* View_Address 部件模型
*
* @export
* @class View_AddressModel
*/
export
default
class
View_AddressModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_AddressModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'address1_primarycontactname'
,
},
{
name
:
'openrevenue_date'
,
},
{
name
:
'address2_utcoffset'
,
},
{
name
:
'fax'
,
},
{
name
:
'address1_composite'
,
},
{
name
:
'entityimage'
,
},
{
name
:
'emailaddress1'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'address1_stateorprovince'
,
},
{
name
:
'openrevenue'
,
},
{
name
:
'address1_upszone'
,
},
{
name
:
'followemail'
,
},
{
name
:
'marketingonly'
,
},
{
name
:
'numberofemployees'
,
},
{
name
:
'telephone1'
,
},
{
name
:
'aging60'
,
},
{
name
:
'sharesoutstanding'
,
},
{
name
:
'address2_freighttermscode'
,
},
{
name
:
'entityimage_timestamp'
,
},
{
name
:
'revenue_base'
,
},
{
name
:
'accountratingcode'
,
},
{
name
:
'donotbulkemail'
,
},
{
name
:
'aging30'
,
},
{
name
:
'donotbulkpostalmail'
,
},
{
name
:
'creditlimit_base'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'customertypecode'
,
},
{
name
:
'address2_longitude'
,
},
{
name
:
'accountname'
,
},
{
name
:
'participatesinworkflow'
,
},
{
name
:
'preferredcontactmethodcode'
,
},
{
name
:
'preferredappointmentdaycode'
,
},
{
name
:
'marketcap'
,
},
{
name
:
'address2_telephone1'
,
},
{
name
:
'businesstypecode'
,
},
{
name
:
'entityimageid'
,
},
{
name
:
'address2_city'
,
},
{
name
:
'ownershipcode'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'accountnumber'
,
},
{
name
:
'address1_telephone2'
,
},
{
name
:
'address1_line1'
,
},
{
name
:
'donotphone'
,
},
{
name
:
'address1_telephone3'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'address2_line2'
,
},
{
name
:
'address2_telephone3'
,
},
{
name
:
'address1_telephone1'
,
},
{
name
:
'address1_fax'
,
},
{
name
:
'address1_freighttermscode'
,
},
{
name
:
'description'
,
},
{
name
:
'merged'
,
},
{
name
:
'address1_shippingmethodcode'
,
},
{
name
:
'address1_name'
,
},
{
name
:
'aging30_base'
,
},
{
name
:
'address2_telephone2'
,
},
{
name
:
'account'
,
prop
:
'accountid'
,
},
{
name
:
'primarytwitterid'
,
},
{
name
:
'tickersymbol'
,
},
{
name
:
'stockexchange'
,
},
{
name
:
'address2_stateorprovince'
,
},
{
name
:
'ftpsiteurl'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'websiteurl'
,
},
{
name
:
'donotpostalmail'
,
},
{
name
:
'address1_city'
,
},
{
name
:
'address2_fax'
,
},
{
name
:
'aging90_base'
,
},
{
name
:
'opendeals_date'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'shippingmethodcode'
,
},
{
name
:
'address1_line2'
,
},
{
name
:
'openrevenue_base'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'preferredsystemuseridyominame'
,
},
{
name
:
'address2_line3'
,
},
{
name
:
'address1_postalcode'
,
},
{
name
:
'address2_latitude'
,
},
{
name
:
'ibizprivate'
,
},
{
name
:
'territorycode'
,
},
{
name
:
'teamsfollowed'
,
},
{
name
:
'yominame'
,
},
{
name
:
'address1_latitude'
,
},
{
name
:
'telephone3'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'address2_country'
,
},
{
name
:
'masteraccountidyominame'
,
},
{
name
:
'industrycode'
,
},
{
name
:
'lastonholdtime'
,
},
{
name
:
'address2_addressid'
,
},
{
name
:
'onholdtime'
,
},
{
name
:
'accountclassificationcode'
,
},
{
name
:
'address1_country'
,
},
{
name
:
'address1_addresstypecode'
,
},
{
name
:
'statecode'
,
},
{
name
:
'address2_addresstypecode'
,
},
{
name
:
'accountcategorycode'
,
},
{
name
:
'emailaddress2'
,
},
{
name
:
'address2_shippingmethodcode'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'primarysatoriid'
,
},
{
name
:
'customersizecode'
,
},
{
name
:
'opendeals'
,
},
{
name
:
'donotsendmm'
,
},
{
name
:
'processid'
,
},
{
name
:
'paymenttermscode'
,
},
{
name
:
'sic'
,
},
{
name
:
'address2_primarycontactname'
,
},
{
name
:
'address1_utcoffset'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'lastusedincampaign'
,
},
{
name
:
'aging60_base'
,
},
{
name
:
'donotfax'
,
},
{
name
:
'updateman'
,
},
{
name
:
'openrevenue_state'
,
},
{
name
:
'opendeals_state'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'address1_longitude'
,
},
{
name
:
'aging90'
,
},
{
name
:
'entityimage_url'
,
},
{
name
:
'creditlimit'
,
},
{
name
:
'preferredsystemuserid'
,
},
{
name
:
'revenue'
,
},
{
name
:
'address1_county'
,
},
{
name
:
'address1_line3'
,
},
{
name
:
'stageid'
,
},
{
name
:
'donotemail'
,
},
{
name
:
'address2_postalcode'
,
},
{
name
:
'preferredappointmenttimecode'
,
},
{
name
:
'address2_upszone'
,
},
{
name
:
'createdate'
,
},
{
name
:
'address2_county'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'address2_composite'
,
},
{
name
:
'address2_name'
,
},
{
name
:
'address2_line1'
,
},
{
name
:
'marketcap_base'
,
},
{
name
:
'emailaddress3'
,
},
{
name
:
'telephone2'
,
},
{
name
:
'createman'
,
},
{
name
:
'address1_postofficebox'
,
},
{
name
:
'creditonhold'
,
},
{
name
:
'address1_addressid'
,
},
{
name
:
'address2_postofficebox'
,
},
{
name
:
'slaname'
,
},
{
name
:
'originatingleadid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'defaultpricelevelid'
,
},
{
name
:
'parentaccountid'
,
},
{
name
:
'preferredequipmentid'
,
},
{
name
:
'territoryid'
,
},
{
name
:
'primarycontactid'
,
},
{
name
:
'slaid'
,
},
{
name
:
'preferredserviceid'
,
},
{
name
:
'originatingleadname'
,
},
{
name
:
'defaultpricelevelname'
,
},
{
name
:
'territoryname'
,
},
{
name
:
'parentaccountname'
,
},
{
name
:
'preferredequipmentname'
,
},
{
name
:
'preferredservicename'
,
},
{
name
:
'primarycontactname'
,
},
{
name
:
'transactioncurrencyname'
,
},
]
}
}
app_BusinessCentral/src/widgets/account/view-address-portlet/view-address-portlet-service.ts
0 → 100644
浏览文件 @
1ac621ba
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* View_Address 部件服务对象
*
* @export
* @class View_AddressService
*/
export
default
class
View_AddressService
extends
ControlService
{
}
app_BusinessCentral/src/widgets/account/view-address-portlet/view-address-portlet.less
0 → 100644
浏览文件 @
1ac621ba
.portlet {
--portlet: 0px;
}
// this is less
app_BusinessCentral/src/widgets/account/view-address-portlet/view-address-portlet.vue
0 → 100644
浏览文件 @
1ac621ba
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
AccountView_AddressBase
from
'./view-address-portlet-base.vue'
;
@
Component
({
components
:
{
}
})
export
default
class
AccountView_Address
extends
AccountView_AddressBase
{
}
</
script
>
app_BusinessCentral/src/widgets/account/view-contact-setting-portlet/view-contact-setting-portlet-base.vue
0 → 100644
浏览文件 @
1ac621ba
<
template
>
<div
class=
'portlet view-contact-setting '
:style=
"
{'height': 'auto',}">
<p
class=
'portlet-title'
>
<span>
联系人选项
</span>
</p>
<div
class=
"portlet-with-title"
>
<account-info-contact-setting
:viewdata=
"JSON.stringify(context)"
:viewDefaultUsage=
"false"
></account-info-contact-setting>
</div>
</div>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
AccountService
from
'@/service/account/account-service'
;
import
View_ContactSettingService
from
'./view-contact-setting-portlet-service'
;
import
{
Environment
}
from
'@/environments/environment'
;
@
Component
({
components
:
{
}
})
export
default
class
AccountView_ContactSettingBase
extends
Vue
implements
ControlInterface
{
/**
* 名称
*
* @type {string}
* @memberof View_ContactSetting
*/
@
Prop
()
public
name
?:
string
;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_ContactSetting
*/
@
Prop
()
public
viewState
!
:
Subject
<
ViewState
>
;
/**
* 应用上下文
*
* @type {*}
* @memberof View_ContactSetting
*/
@
Prop
()
public
context
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof View_ContactSetting
*/
@
Prop
()
public
viewparams
:
any
;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_ContactSetting
*/
public
viewStateEvent
:
Subscription
|
undefined
;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_ContactSetting
*/
public
getControlType
():
string
{
return
'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_ContactSetting
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 建构部件服务对象
*
* @type {View_ContactSettingService}
* @memberof View_ContactSetting
*/
public
service
:
View_ContactSettingService
=
new
View_ContactSettingService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {AccountService}
* @memberof View_ContactSetting
*/
public
appEntityService
:
AccountService
=
new
AccountService
({
$store
:
this
.
$store
});
/**
* 关闭视图
*
* @param {any} args
* @memberof View_ContactSetting
*/
public
closeView
(
args
:
any
):
void
{
let
_this
:
any
=
this
;
_this
.
$emit
(
'closeview'
,
[
args
]);
}
/**
* 计数器刷新
*
* @memberof View_ContactSetting
*/
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 {number}
* @memberof View_ContactSetting
*/
@
Prop
()
public
height
?:
number
;
/**
* 宽度
*
* @type {number}
* @memberof View_ContactSetting
*/
@
Prop
()
public
width
?:
number
;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_ContactSettingBase
*/
@
Prop
({
default
:
false
})
public
isAdaptiveSize
!
:
boolean
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_ContactSettingBase
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_ContactSettingBase
*/
public
getData
():
any
{
return
{};
}
/**
* vue 生命周期
*
* @memberof View_ContactSettingBase
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof View_ContactSettingBase
*/
public
afterCreated
(){
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
const
refs
:
any
=
this
.
$refs
;
Object
.
keys
(
refs
).
forEach
((
_name
:
string
)
=>
{
this
.
viewState
.
next
({
tag
:
_name
,
action
:
action
,
data
:
data
});
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_ContactSettingBase
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_ContactSettingBase
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
}
</
script
>
<
style
lang=
'less'
>
@import './view-contact-setting-portlet.less';
</
style
>
app_BusinessCentral/src/widgets/account/view-contact-setting-portlet/view-contact-setting-portlet-model.ts
0 → 100644
浏览文件 @
1ac621ba
/**
* View_ContactSetting 部件模型
*
* @export
* @class View_ContactSettingModel
*/
export
default
class
View_ContactSettingModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_ContactSettingModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'address1_primarycontactname'
,
},
{
name
:
'openrevenue_date'
,
},
{
name
:
'address2_utcoffset'
,
},
{
name
:
'fax'
,
},
{
name
:
'address1_composite'
,
},
{
name
:
'entityimage'
,
},
{
name
:
'emailaddress1'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'address1_stateorprovince'
,
},
{
name
:
'openrevenue'
,
},
{
name
:
'address1_upszone'
,
},
{
name
:
'followemail'
,
},
{
name
:
'marketingonly'
,
},
{
name
:
'numberofemployees'
,
},
{
name
:
'telephone1'
,
},
{
name
:
'aging60'
,
},
{
name
:
'sharesoutstanding'
,
},
{
name
:
'address2_freighttermscode'
,
},
{
name
:
'entityimage_timestamp'
,
},
{
name
:
'revenue_base'
,
},
{
name
:
'accountratingcode'
,
},
{
name
:
'donotbulkemail'
,
},
{
name
:
'aging30'
,
},
{
name
:
'donotbulkpostalmail'
,
},
{
name
:
'creditlimit_base'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'customertypecode'
,
},
{
name
:
'address2_longitude'
,
},
{
name
:
'accountname'
,
},
{
name
:
'participatesinworkflow'
,
},
{
name
:
'preferredcontactmethodcode'
,
},
{
name
:
'preferredappointmentdaycode'
,
},
{
name
:
'marketcap'
,
},
{
name
:
'address2_telephone1'
,
},
{
name
:
'businesstypecode'
,
},
{
name
:
'entityimageid'
,
},
{
name
:
'address2_city'
,
},
{
name
:
'ownershipcode'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'accountnumber'
,
},
{
name
:
'address1_telephone2'
,
},
{
name
:
'address1_line1'
,
},
{
name
:
'donotphone'
,
},
{
name
:
'address1_telephone3'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'address2_line2'
,
},
{
name
:
'address2_telephone3'
,
},
{
name
:
'address1_telephone1'
,
},
{
name
:
'address1_fax'
,
},
{
name
:
'address1_freighttermscode'
,
},
{
name
:
'description'
,
},
{
name
:
'merged'
,
},
{
name
:
'address1_shippingmethodcode'
,
},
{
name
:
'address1_name'
,
},
{
name
:
'aging30_base'
,
},
{
name
:
'address2_telephone2'
,
},
{
name
:
'account'
,
prop
:
'accountid'
,
},
{
name
:
'primarytwitterid'
,
},
{
name
:
'tickersymbol'
,
},
{
name
:
'stockexchange'
,
},
{
name
:
'address2_stateorprovince'
,
},
{
name
:
'ftpsiteurl'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'websiteurl'
,
},
{
name
:
'donotpostalmail'
,
},
{
name
:
'address1_city'
,
},
{
name
:
'address2_fax'
,
},
{
name
:
'aging90_base'
,
},
{
name
:
'opendeals_date'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'shippingmethodcode'
,
},
{
name
:
'address1_line2'
,
},
{
name
:
'openrevenue_base'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'preferredsystemuseridyominame'
,
},
{
name
:
'address2_line3'
,
},
{
name
:
'address1_postalcode'
,
},
{
name
:
'address2_latitude'
,
},
{
name
:
'ibizprivate'
,
},
{
name
:
'territorycode'
,
},
{
name
:
'teamsfollowed'
,
},
{
name
:
'yominame'
,
},
{
name
:
'address1_latitude'
,
},
{
name
:
'telephone3'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'address2_country'
,
},
{
name
:
'masteraccountidyominame'
,
},
{
name
:
'industrycode'
,
},
{
name
:
'lastonholdtime'
,
},
{
name
:
'address2_addressid'
,
},
{
name
:
'onholdtime'
,
},
{
name
:
'accountclassificationcode'
,
},
{
name
:
'address1_country'
,
},
{
name
:
'address1_addresstypecode'
,
},
{
name
:
'statecode'
,
},
{
name
:
'address2_addresstypecode'
,
},
{
name
:
'accountcategorycode'
,
},
{
name
:
'emailaddress2'
,
},
{
name
:
'address2_shippingmethodcode'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'primarysatoriid'
,
},
{
name
:
'customersizecode'
,
},
{
name
:
'opendeals'
,
},
{
name
:
'donotsendmm'
,
},
{
name
:
'processid'
,
},
{
name
:
'paymenttermscode'
,
},
{
name
:
'sic'
,
},
{
name
:
'address2_primarycontactname'
,
},
{
name
:
'address1_utcoffset'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'lastusedincampaign'
,
},
{
name
:
'aging60_base'
,
},
{
name
:
'donotfax'
,
},
{
name
:
'updateman'
,
},
{
name
:
'openrevenue_state'
,
},
{
name
:
'opendeals_state'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'address1_longitude'
,
},
{
name
:
'aging90'
,
},
{
name
:
'entityimage_url'
,
},
{
name
:
'creditlimit'
,
},
{
name
:
'preferredsystemuserid'
,
},
{
name
:
'revenue'
,
},
{
name
:
'address1_county'
,
},
{
name
:
'address1_line3'
,
},
{
name
:
'stageid'
,
},
{
name
:
'donotemail'
,
},
{
name
:
'address2_postalcode'
,
},
{
name
:
'preferredappointmenttimecode'
,
},
{
name
:
'address2_upszone'
,
},
{
name
:
'createdate'
,
},
{
name
:
'address2_county'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'address2_composite'
,
},
{
name
:
'address2_name'
,
},
{
name
:
'address2_line1'
,
},
{
name
:
'marketcap_base'
,
},
{
name
:
'emailaddress3'
,
},
{
name
:
'telephone2'
,
},
{
name
:
'createman'
,
},
{
name
:
'address1_postofficebox'
,
},
{
name
:
'creditonhold'
,
},
{
name
:
'address1_addressid'
,
},
{
name
:
'address2_postofficebox'
,
},
{
name
:
'slaname'
,
},
{
name
:
'originatingleadid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'defaultpricelevelid'
,
},
{
name
:
'parentaccountid'
,
},
{
name
:
'preferredequipmentid'
,
},
{
name
:
'territoryid'
,
},
{
name
:
'primarycontactid'
,
},
{
name
:
'slaid'
,
},
{
name
:
'preferredserviceid'
,
},
{
name
:
'originatingleadname'
,
},
{
name
:
'defaultpricelevelname'
,
},
{
name
:
'territoryname'
,
},
{
name
:
'parentaccountname'
,
},
{
name
:
'preferredequipmentname'
,
},
{
name
:
'preferredservicename'
,
},
{
name
:
'primarycontactname'
,
},
{
name
:
'transactioncurrencyname'
,
},
]
}
}
app_BusinessCentral/src/widgets/account/view-contact-setting-portlet/view-contact-setting-portlet-service.ts
0 → 100644
浏览文件 @
1ac621ba
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* View_ContactSetting 部件服务对象
*
* @export
* @class View_ContactSettingService
*/
export
default
class
View_ContactSettingService
extends
ControlService
{
}
app_BusinessCentral/src/widgets/account/view-contact-setting-portlet/view-contact-setting-portlet.less
0 → 100644
浏览文件 @
1ac621ba
.portlet {
--portlet: 0px;
}
// this is less
app_BusinessCentral/src/widgets/account/view-contact-setting-portlet/view-contact-setting-portlet.vue
0 → 100644
浏览文件 @
1ac621ba
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
AccountView_ContactSettingBase
from
'./view-contact-setting-portlet-base.vue'
;
@
Component
({
components
:
{
}
})
export
default
class
AccountView_ContactSetting
extends
AccountView_ContactSettingBase
{
}
</
script
>
app_BusinessCentral/src/widgets/account/view-distribution-portlet/view-distribution-portlet-base.vue
0 → 100644
浏览文件 @
1ac621ba
<
template
>
<div
class=
'portlet view-distribution '
:style=
"
{'height': 'auto',}">
<p
class=
'portlet-title'
>
<span>
配送
</span>
</p>
<div
class=
"portlet-with-title"
>
<account-info-distribution
:viewdata=
"JSON.stringify(context)"
:viewDefaultUsage=
"false"
></account-info-distribution>
</div>
</div>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
AccountService
from
'@/service/account/account-service'
;
import
View_DistributionService
from
'./view-distribution-portlet-service'
;
import
{
Environment
}
from
'@/environments/environment'
;
@
Component
({
components
:
{
}
})
export
default
class
AccountView_DistributionBase
extends
Vue
implements
ControlInterface
{
/**
* 名称
*
* @type {string}
* @memberof View_Distribution
*/
@
Prop
()
public
name
?:
string
;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_Distribution
*/
@
Prop
()
public
viewState
!
:
Subject
<
ViewState
>
;
/**
* 应用上下文
*
* @type {*}
* @memberof View_Distribution
*/
@
Prop
()
public
context
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof View_Distribution
*/
@
Prop
()
public
viewparams
:
any
;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_Distribution
*/
public
viewStateEvent
:
Subscription
|
undefined
;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_Distribution
*/
public
getControlType
():
string
{
return
'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_Distribution
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 建构部件服务对象
*
* @type {View_DistributionService}
* @memberof View_Distribution
*/
public
service
:
View_DistributionService
=
new
View_DistributionService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {AccountService}
* @memberof View_Distribution
*/
public
appEntityService
:
AccountService
=
new
AccountService
({
$store
:
this
.
$store
});
/**
* 关闭视图
*
* @param {any} args
* @memberof View_Distribution
*/
public
closeView
(
args
:
any
):
void
{
let
_this
:
any
=
this
;
_this
.
$emit
(
'closeview'
,
[
args
]);
}
/**
* 计数器刷新
*
* @memberof View_Distribution
*/
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 {number}
* @memberof View_Distribution
*/
@
Prop
()
public
height
?:
number
;
/**
* 宽度
*
* @type {number}
* @memberof View_Distribution
*/
@
Prop
()
public
width
?:
number
;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_DistributionBase
*/
@
Prop
({
default
:
false
})
public
isAdaptiveSize
!
:
boolean
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_DistributionBase
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_DistributionBase
*/
public
getData
():
any
{
return
{};
}
/**
* vue 生命周期
*
* @memberof View_DistributionBase
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof View_DistributionBase
*/
public
afterCreated
(){
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
const
refs
:
any
=
this
.
$refs
;
Object
.
keys
(
refs
).
forEach
((
_name
:
string
)
=>
{
this
.
viewState
.
next
({
tag
:
_name
,
action
:
action
,
data
:
data
});
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_DistributionBase
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_DistributionBase
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
}
</
script
>
<
style
lang=
'less'
>
@import './view-distribution-portlet.less';
</
style
>
app_BusinessCentral/src/widgets/account/view-distribution-portlet/view-distribution-portlet-model.ts
0 → 100644
浏览文件 @
1ac621ba
/**
* View_Distribution 部件模型
*
* @export
* @class View_DistributionModel
*/
export
default
class
View_DistributionModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_DistributionModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'address1_primarycontactname'
,
},
{
name
:
'openrevenue_date'
,
},
{
name
:
'address2_utcoffset'
,
},
{
name
:
'fax'
,
},
{
name
:
'address1_composite'
,
},
{
name
:
'entityimage'
,
},
{
name
:
'emailaddress1'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'address1_stateorprovince'
,
},
{
name
:
'openrevenue'
,
},
{
name
:
'address1_upszone'
,
},
{
name
:
'followemail'
,
},
{
name
:
'marketingonly'
,
},
{
name
:
'numberofemployees'
,
},
{
name
:
'telephone1'
,
},
{
name
:
'aging60'
,
},
{
name
:
'sharesoutstanding'
,
},
{
name
:
'address2_freighttermscode'
,
},
{
name
:
'entityimage_timestamp'
,
},
{
name
:
'revenue_base'
,
},
{
name
:
'accountratingcode'
,
},
{
name
:
'donotbulkemail'
,
},
{
name
:
'aging30'
,
},
{
name
:
'donotbulkpostalmail'
,
},
{
name
:
'creditlimit_base'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'customertypecode'
,
},
{
name
:
'address2_longitude'
,
},
{
name
:
'accountname'
,
},
{
name
:
'participatesinworkflow'
,
},
{
name
:
'preferredcontactmethodcode'
,
},
{
name
:
'preferredappointmentdaycode'
,
},
{
name
:
'marketcap'
,
},
{
name
:
'address2_telephone1'
,
},
{
name
:
'businesstypecode'
,
},
{
name
:
'entityimageid'
,
},
{
name
:
'address2_city'
,
},
{
name
:
'ownershipcode'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'accountnumber'
,
},
{
name
:
'address1_telephone2'
,
},
{
name
:
'address1_line1'
,
},
{
name
:
'donotphone'
,
},
{
name
:
'address1_telephone3'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'address2_line2'
,
},
{
name
:
'address2_telephone3'
,
},
{
name
:
'address1_telephone1'
,
},
{
name
:
'address1_fax'
,
},
{
name
:
'address1_freighttermscode'
,
},
{
name
:
'description'
,
},
{
name
:
'merged'
,
},
{
name
:
'address1_shippingmethodcode'
,
},
{
name
:
'address1_name'
,
},
{
name
:
'aging30_base'
,
},
{
name
:
'address2_telephone2'
,
},
{
name
:
'account'
,
prop
:
'accountid'
,
},
{
name
:
'primarytwitterid'
,
},
{
name
:
'tickersymbol'
,
},
{
name
:
'stockexchange'
,
},
{
name
:
'address2_stateorprovince'
,
},
{
name
:
'ftpsiteurl'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'websiteurl'
,
},
{
name
:
'donotpostalmail'
,
},
{
name
:
'address1_city'
,
},
{
name
:
'address2_fax'
,
},
{
name
:
'aging90_base'
,
},
{
name
:
'opendeals_date'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'shippingmethodcode'
,
},
{
name
:
'address1_line2'
,
},
{
name
:
'openrevenue_base'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'preferredsystemuseridyominame'
,
},
{
name
:
'address2_line3'
,
},
{
name
:
'address1_postalcode'
,
},
{
name
:
'address2_latitude'
,
},
{
name
:
'ibizprivate'
,
},
{
name
:
'territorycode'
,
},
{
name
:
'teamsfollowed'
,
},
{
name
:
'yominame'
,
},
{
name
:
'address1_latitude'
,
},
{
name
:
'telephone3'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'address2_country'
,
},
{
name
:
'masteraccountidyominame'
,
},
{
name
:
'industrycode'
,
},
{
name
:
'lastonholdtime'
,
},
{
name
:
'address2_addressid'
,
},
{
name
:
'onholdtime'
,
},
{
name
:
'accountclassificationcode'
,
},
{
name
:
'address1_country'
,
},
{
name
:
'address1_addresstypecode'
,
},
{
name
:
'statecode'
,
},
{
name
:
'address2_addresstypecode'
,
},
{
name
:
'accountcategorycode'
,
},
{
name
:
'emailaddress2'
,
},
{
name
:
'address2_shippingmethodcode'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'primarysatoriid'
,
},
{
name
:
'customersizecode'
,
},
{
name
:
'opendeals'
,
},
{
name
:
'donotsendmm'
,
},
{
name
:
'processid'
,
},
{
name
:
'paymenttermscode'
,
},
{
name
:
'sic'
,
},
{
name
:
'address2_primarycontactname'
,
},
{
name
:
'address1_utcoffset'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'lastusedincampaign'
,
},
{
name
:
'aging60_base'
,
},
{
name
:
'donotfax'
,
},
{
name
:
'updateman'
,
},
{
name
:
'openrevenue_state'
,
},
{
name
:
'opendeals_state'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'address1_longitude'
,
},
{
name
:
'aging90'
,
},
{
name
:
'entityimage_url'
,
},
{
name
:
'creditlimit'
,
},
{
name
:
'preferredsystemuserid'
,
},
{
name
:
'revenue'
,
},
{
name
:
'address1_county'
,
},
{
name
:
'address1_line3'
,
},
{
name
:
'stageid'
,
},
{
name
:
'donotemail'
,
},
{
name
:
'address2_postalcode'
,
},
{
name
:
'preferredappointmenttimecode'
,
},
{
name
:
'address2_upszone'
,
},
{
name
:
'createdate'
,
},
{
name
:
'address2_county'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'address2_composite'
,
},
{
name
:
'address2_name'
,
},
{
name
:
'address2_line1'
,
},
{
name
:
'marketcap_base'
,
},
{
name
:
'emailaddress3'
,
},
{
name
:
'telephone2'
,
},
{
name
:
'createman'
,
},
{
name
:
'address1_postofficebox'
,
},
{
name
:
'creditonhold'
,
},
{
name
:
'address1_addressid'
,
},
{
name
:
'address2_postofficebox'
,
},
{
name
:
'slaname'
,
},
{
name
:
'originatingleadid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'defaultpricelevelid'
,
},
{
name
:
'parentaccountid'
,
},
{
name
:
'preferredequipmentid'
,
},
{
name
:
'territoryid'
,
},
{
name
:
'primarycontactid'
,
},
{
name
:
'slaid'
,
},
{
name
:
'preferredserviceid'
,
},
{
name
:
'originatingleadname'
,
},
{
name
:
'defaultpricelevelname'
,
},
{
name
:
'territoryname'
,
},
{
name
:
'parentaccountname'
,
},
{
name
:
'preferredequipmentname'
,
},
{
name
:
'preferredservicename'
,
},
{
name
:
'primarycontactname'
,
},
{
name
:
'transactioncurrencyname'
,
},
]
}
}
app_BusinessCentral/src/widgets/account/view-distribution-portlet/view-distribution-portlet-service.ts
0 → 100644
浏览文件 @
1ac621ba
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* View_Distribution 部件服务对象
*
* @export
* @class View_DistributionService
*/
export
default
class
View_DistributionService
extends
ControlService
{
}
app_BusinessCentral/src/widgets/account/view-distribution-portlet/view-distribution-portlet.less
0 → 100644
浏览文件 @
1ac621ba
.portlet {
--portlet: 0px;
}
// this is less
app_BusinessCentral/src/widgets/account/view-distribution-portlet/view-distribution-portlet.vue
0 → 100644
浏览文件 @
1ac621ba
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
AccountView_DistributionBase
from
'./view-distribution-portlet-base.vue'
;
@
Component
({
components
:
{
}
})
export
default
class
AccountView_Distribution
extends
AccountView_DistributionBase
{
}
</
script
>
app_BusinessCentral/src/widgets/account/view-introduction-portlet/view-introduction-portlet-base.vue
0 → 100644
浏览文件 @
1ac621ba
<
template
>
<div
class=
'portlet view-introduction '
:style=
"
{'height': 'auto',}">
<p
class=
'portlet-title'
>
<span>
简介
</span>
</p>
<div
class=
"portlet-with-title"
>
<account-info-introduction
:viewdata=
"JSON.stringify(context)"
:viewDefaultUsage=
"false"
></account-info-introduction>
</div>
</div>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
AccountService
from
'@/service/account/account-service'
;
import
View_IntroductionService
from
'./view-introduction-portlet-service'
;
import
{
Environment
}
from
'@/environments/environment'
;
@
Component
({
components
:
{
}
})
export
default
class
AccountView_IntroductionBase
extends
Vue
implements
ControlInterface
{
/**
* 名称
*
* @type {string}
* @memberof View_Introduction
*/
@
Prop
()
public
name
?:
string
;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_Introduction
*/
@
Prop
()
public
viewState
!
:
Subject
<
ViewState
>
;
/**
* 应用上下文
*
* @type {*}
* @memberof View_Introduction
*/
@
Prop
()
public
context
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof View_Introduction
*/
@
Prop
()
public
viewparams
:
any
;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_Introduction
*/
public
viewStateEvent
:
Subscription
|
undefined
;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_Introduction
*/
public
getControlType
():
string
{
return
'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_Introduction
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 建构部件服务对象
*
* @type {View_IntroductionService}
* @memberof View_Introduction
*/
public
service
:
View_IntroductionService
=
new
View_IntroductionService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {AccountService}
* @memberof View_Introduction
*/
public
appEntityService
:
AccountService
=
new
AccountService
({
$store
:
this
.
$store
});
/**
* 关闭视图
*
* @param {any} args
* @memberof View_Introduction
*/
public
closeView
(
args
:
any
):
void
{
let
_this
:
any
=
this
;
_this
.
$emit
(
'closeview'
,
[
args
]);
}
/**
* 计数器刷新
*
* @memberof View_Introduction
*/
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 {number}
* @memberof View_Introduction
*/
@
Prop
()
public
height
?:
number
;
/**
* 宽度
*
* @type {number}
* @memberof View_Introduction
*/
@
Prop
()
public
width
?:
number
;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_IntroductionBase
*/
@
Prop
({
default
:
false
})
public
isAdaptiveSize
!
:
boolean
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_IntroductionBase
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_IntroductionBase
*/
public
getData
():
any
{
return
{};
}
/**
* vue 生命周期
*
* @memberof View_IntroductionBase
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof View_IntroductionBase
*/
public
afterCreated
(){
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
const
refs
:
any
=
this
.
$refs
;
Object
.
keys
(
refs
).
forEach
((
_name
:
string
)
=>
{
this
.
viewState
.
next
({
tag
:
_name
,
action
:
action
,
data
:
data
});
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_IntroductionBase
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_IntroductionBase
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
}
</
script
>
<
style
lang=
'less'
>
@import './view-introduction-portlet.less';
</
style
>
app_BusinessCentral/src/widgets/account/view-introduction-portlet/view-introduction-portlet-model.ts
0 → 100644
浏览文件 @
1ac621ba
/**
* View_Introduction 部件模型
*
* @export
* @class View_IntroductionModel
*/
export
default
class
View_IntroductionModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_IntroductionModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'address1_primarycontactname'
,
},
{
name
:
'openrevenue_date'
,
},
{
name
:
'address2_utcoffset'
,
},
{
name
:
'fax'
,
},
{
name
:
'address1_composite'
,
},
{
name
:
'entityimage'
,
},
{
name
:
'emailaddress1'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'address1_stateorprovince'
,
},
{
name
:
'openrevenue'
,
},
{
name
:
'address1_upszone'
,
},
{
name
:
'followemail'
,
},
{
name
:
'marketingonly'
,
},
{
name
:
'numberofemployees'
,
},
{
name
:
'telephone1'
,
},
{
name
:
'aging60'
,
},
{
name
:
'sharesoutstanding'
,
},
{
name
:
'address2_freighttermscode'
,
},
{
name
:
'entityimage_timestamp'
,
},
{
name
:
'revenue_base'
,
},
{
name
:
'accountratingcode'
,
},
{
name
:
'donotbulkemail'
,
},
{
name
:
'aging30'
,
},
{
name
:
'donotbulkpostalmail'
,
},
{
name
:
'creditlimit_base'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'customertypecode'
,
},
{
name
:
'address2_longitude'
,
},
{
name
:
'accountname'
,
},
{
name
:
'participatesinworkflow'
,
},
{
name
:
'preferredcontactmethodcode'
,
},
{
name
:
'preferredappointmentdaycode'
,
},
{
name
:
'marketcap'
,
},
{
name
:
'address2_telephone1'
,
},
{
name
:
'businesstypecode'
,
},
{
name
:
'entityimageid'
,
},
{
name
:
'address2_city'
,
},
{
name
:
'ownershipcode'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'accountnumber'
,
},
{
name
:
'address1_telephone2'
,
},
{
name
:
'address1_line1'
,
},
{
name
:
'donotphone'
,
},
{
name
:
'address1_telephone3'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'address2_line2'
,
},
{
name
:
'address2_telephone3'
,
},
{
name
:
'address1_telephone1'
,
},
{
name
:
'address1_fax'
,
},
{
name
:
'address1_freighttermscode'
,
},
{
name
:
'description'
,
},
{
name
:
'merged'
,
},
{
name
:
'address1_shippingmethodcode'
,
},
{
name
:
'address1_name'
,
},
{
name
:
'aging30_base'
,
},
{
name
:
'address2_telephone2'
,
},
{
name
:
'account'
,
prop
:
'accountid'
,
},
{
name
:
'primarytwitterid'
,
},
{
name
:
'tickersymbol'
,
},
{
name
:
'stockexchange'
,
},
{
name
:
'address2_stateorprovince'
,
},
{
name
:
'ftpsiteurl'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'websiteurl'
,
},
{
name
:
'donotpostalmail'
,
},
{
name
:
'address1_city'
,
},
{
name
:
'address2_fax'
,
},
{
name
:
'aging90_base'
,
},
{
name
:
'opendeals_date'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'shippingmethodcode'
,
},
{
name
:
'address1_line2'
,
},
{
name
:
'openrevenue_base'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'preferredsystemuseridyominame'
,
},
{
name
:
'address2_line3'
,
},
{
name
:
'address1_postalcode'
,
},
{
name
:
'address2_latitude'
,
},
{
name
:
'ibizprivate'
,
},
{
name
:
'territorycode'
,
},
{
name
:
'teamsfollowed'
,
},
{
name
:
'yominame'
,
},
{
name
:
'address1_latitude'
,
},
{
name
:
'telephone3'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'address2_country'
,
},
{
name
:
'masteraccountidyominame'
,
},
{
name
:
'industrycode'
,
},
{
name
:
'lastonholdtime'
,
},
{
name
:
'address2_addressid'
,
},
{
name
:
'onholdtime'
,
},
{
name
:
'accountclassificationcode'
,
},
{
name
:
'address1_country'
,
},
{
name
:
'address1_addresstypecode'
,
},
{
name
:
'statecode'
,
},
{
name
:
'address2_addresstypecode'
,
},
{
name
:
'accountcategorycode'
,
},
{
name
:
'emailaddress2'
,
},
{
name
:
'address2_shippingmethodcode'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'primarysatoriid'
,
},
{
name
:
'customersizecode'
,
},
{
name
:
'opendeals'
,
},
{
name
:
'donotsendmm'
,
},
{
name
:
'processid'
,
},
{
name
:
'paymenttermscode'
,
},
{
name
:
'sic'
,
},
{
name
:
'address2_primarycontactname'
,
},
{
name
:
'address1_utcoffset'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'lastusedincampaign'
,
},
{
name
:
'aging60_base'
,
},
{
name
:
'donotfax'
,
},
{
name
:
'updateman'
,
},
{
name
:
'openrevenue_state'
,
},
{
name
:
'opendeals_state'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'address1_longitude'
,
},
{
name
:
'aging90'
,
},
{
name
:
'entityimage_url'
,
},
{
name
:
'creditlimit'
,
},
{
name
:
'preferredsystemuserid'
,
},
{
name
:
'revenue'
,
},
{
name
:
'address1_county'
,
},
{
name
:
'address1_line3'
,
},
{
name
:
'stageid'
,
},
{
name
:
'donotemail'
,
},
{
name
:
'address2_postalcode'
,
},
{
name
:
'preferredappointmenttimecode'
,
},
{
name
:
'address2_upszone'
,
},
{
name
:
'createdate'
,
},
{
name
:
'address2_county'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'address2_composite'
,
},
{
name
:
'address2_name'
,
},
{
name
:
'address2_line1'
,
},
{
name
:
'marketcap_base'
,
},
{
name
:
'emailaddress3'
,
},
{
name
:
'telephone2'
,
},
{
name
:
'createman'
,
},
{
name
:
'address1_postofficebox'
,
},
{
name
:
'creditonhold'
,
},
{
name
:
'address1_addressid'
,
},
{
name
:
'address2_postofficebox'
,
},
{
name
:
'slaname'
,
},
{
name
:
'originatingleadid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'defaultpricelevelid'
,
},
{
name
:
'parentaccountid'
,
},
{
name
:
'preferredequipmentid'
,
},
{
name
:
'territoryid'
,
},
{
name
:
'primarycontactid'
,
},
{
name
:
'slaid'
,
},
{
name
:
'preferredserviceid'
,
},
{
name
:
'originatingleadname'
,
},
{
name
:
'defaultpricelevelname'
,
},
{
name
:
'territoryname'
,
},
{
name
:
'parentaccountname'
,
},
{
name
:
'preferredequipmentname'
,
},
{
name
:
'preferredservicename'
,
},
{
name
:
'primarycontactname'
,
},
{
name
:
'transactioncurrencyname'
,
},
]
}
}
app_BusinessCentral/src/widgets/account/view-introduction-portlet/view-introduction-portlet-service.ts
0 → 100644
浏览文件 @
1ac621ba
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* View_Introduction 部件服务对象
*
* @export
* @class View_IntroductionService
*/
export
default
class
View_IntroductionService
extends
ControlService
{
}
app_BusinessCentral/src/widgets/account/view-introduction-portlet/view-introduction-portlet.less
0 → 100644
浏览文件 @
1ac621ba
.portlet {
--portlet: 0px;
}
// this is less
app_BusinessCentral/src/widgets/account/view-introduction-portlet/view-introduction-portlet.vue
0 → 100644
浏览文件 @
1ac621ba
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
AccountView_IntroductionBase
from
'./view-introduction-portlet-base.vue'
;
@
Component
({
components
:
{
}
})
export
default
class
AccountView_Introduction
extends
AccountView_IntroductionBase
{
}
</
script
>
app_BusinessCentral/src/widgets/activity-pointer/list-by-parent-key-portlet/list-by-parent-key-portlet-base.vue
0 → 100644
浏览文件 @
1ac621ba
<
template
>
<div
class=
'portlet list-by-parent-key '
:style=
"
{'height': isAdaptiveSize ? 'calc(100% - 16px)' : (height > 0 ? height+'px' :'300px'),}">
<p
class=
'portlet-title'
>
<span>
日程安排
</span>
<span
class=
"portlet-action"
>
<a
@
click=
"uiAction('u222531e', $event)"
>
<span>
任务
</span>
</a>
<a
@
click=
"uiAction('ue577d64', $event)"
>
<span>
电子邮件
</span>
</a>
<a
@
click=
"uiAction('u654c060', $event)"
>
<span>
约会
</span>
</a>
<a
@
click=
"uiAction('u7019ad0', $event)"
>
<span>
电话联络
</span>
</a>
</span>
</p>
<div
class=
"portlet-with-title"
>
<!-- 测试 -->
<view
_dashboard_sysportlet8_list
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
createAction=
"Create"
removeAction=
"Remove"
updateAction=
"Update"
fetchAction=
"FetchByParentKey"
:showBusyIndicator=
"true"
name=
"dashboard_sysportlet8_list"
ref=
'dashboard_sysportlet8_list'
@
closeview=
"closeView($event)"
>
</view
_dashboard_sysportlet8_list
>
</div>
</div>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
ActivityPointerService
from
'@/service/activity-pointer/activity-pointer-service'
;
import
List_ByParentKeyService
from
'./list-by-parent-key-portlet-service'
;
import
TaskUIService
from
'@/uiservice/task/task-ui-service'
;
import
EmailUIService
from
'@/uiservice/email/email-ui-service'
;
import
AppointmentUIService
from
'@/uiservice/appointment/appointment-ui-service'
;
import
PhoneCallUIService
from
'@/uiservice/phone-call/phone-call-ui-service'
;
import
{
Environment
}
from
'@/environments/environment'
;
@
Component
({
components
:
{
}
})
export
default
class
ActivityPointerList_ByParentKeyBase
extends
Vue
implements
ControlInterface
{
/**
* 名称
*
* @type {string}
* @memberof List_ByParentKey
*/
@
Prop
()
public
name
?:
string
;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof List_ByParentKey
*/
@
Prop
()
public
viewState
!
:
Subject
<
ViewState
>
;
/**
* 应用上下文
*
* @type {*}
* @memberof List_ByParentKey
*/
@
Prop
()
public
context
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof List_ByParentKey
*/
@
Prop
()
public
viewparams
:
any
;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof List_ByParentKey
*/
public
viewStateEvent
:
Subscription
|
undefined
;
/**
* 获取部件类型
*
* @returns {string}
* @memberof List_ByParentKey
*/
public
getControlType
():
string
{
return
'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof List_ByParentKey
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 建构部件服务对象
*
* @type {List_ByParentKeyService}
* @memberof List_ByParentKey
*/
public
service
:
List_ByParentKeyService
=
new
List_ByParentKeyService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {ActivityPointerService}
* @memberof List_ByParentKey
*/
public
appEntityService
:
ActivityPointerService
=
new
ActivityPointerService
({
$store
:
this
.
$store
});
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
dashboard_sysportlet8_u222531e_click
(
params
:
any
=
{},
tag
?:
any
,
$event
?:
any
)
{
// 取数
let
datas
:
any
[]
=
[];
let
xData
:
any
=
null
;
// _this 指向容器对象
const
_this
:
any
=
this
;
let
paramJO
:
any
=
{};
let
contextJO
:
any
=
{};
xData
=
this
;
if
(
_this
.
getDatas
&&
_this
.
getDatas
instanceof
Function
)
{
datas
=
[...
_this
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
const
curUIService
:
TaskUIService
=
new
TaskUIService
();
curUIService
.
Task_Create
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"ActivityPointer"
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
dashboard_sysportlet8_ue577d64_click
(
params
:
any
=
{},
tag
?:
any
,
$event
?:
any
)
{
// 取数
let
datas
:
any
[]
=
[];
let
xData
:
any
=
null
;
// _this 指向容器对象
const
_this
:
any
=
this
;
let
paramJO
:
any
=
{};
let
contextJO
:
any
=
{};
xData
=
this
;
if
(
_this
.
getDatas
&&
_this
.
getDatas
instanceof
Function
)
{
datas
=
[...
_this
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
const
curUIService
:
EmailUIService
=
new
EmailUIService
();
curUIService
.
Email_Create
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"ActivityPointer"
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
dashboard_sysportlet8_u654c060_click
(
params
:
any
=
{},
tag
?:
any
,
$event
?:
any
)
{
// 取数
let
datas
:
any
[]
=
[];
let
xData
:
any
=
null
;
// _this 指向容器对象
const
_this
:
any
=
this
;
let
paramJO
:
any
=
{};
let
contextJO
:
any
=
{};
xData
=
this
;
if
(
_this
.
getDatas
&&
_this
.
getDatas
instanceof
Function
)
{
datas
=
[...
_this
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
const
curUIService
:
AppointmentUIService
=
new
AppointmentUIService
();
curUIService
.
Appointment_Create
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"ActivityPointer"
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
dashboard_sysportlet8_u7019ad0_click
(
params
:
any
=
{},
tag
?:
any
,
$event
?:
any
)
{
// 取数
let
datas
:
any
[]
=
[];
let
xData
:
any
=
null
;
// _this 指向容器对象
const
_this
:
any
=
this
;
let
paramJO
:
any
=
{};
let
contextJO
:
any
=
{};
xData
=
this
;
if
(
_this
.
getDatas
&&
_this
.
getDatas
instanceof
Function
)
{
datas
=
[...
_this
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
const
curUIService
:
PhoneCallUIService
=
new
PhoneCallUIService
();
curUIService
.
PhoneCall_Create
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"ActivityPointer"
);
}
/**
* 关闭视图
*
* @param {any} args
* @memberof List_ByParentKey
*/
public
closeView
(
args
:
any
):
void
{
let
_this
:
any
=
this
;
_this
.
$emit
(
'closeview'
,
[
args
]);
}
/**
* 计数器刷新
*
* @memberof List_ByParentKey
*/
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 {number}
* @memberof List_ByParentKey
*/
@
Prop
()
public
height
?:
number
;
/**
* 宽度
*
* @type {number}
* @memberof List_ByParentKey
*/
@
Prop
()
public
width
?:
number
;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof List_ByParentKeyBase
*/
@
Prop
({
default
:
false
})
public
isAdaptiveSize
!
:
boolean
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof List_ByParentKeyBase
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof List_ByParentKeyBase
*/
public
getData
():
any
{
return
{};
}
/**
* vue 生命周期
*
* @memberof List_ByParentKeyBase
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof List_ByParentKeyBase
*/
public
afterCreated
(){
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
const
refs
:
any
=
this
.
$refs
;
Object
.
keys
(
refs
).
forEach
((
_name
:
string
)
=>
{
this
.
viewState
.
next
({
tag
:
_name
,
action
:
action
,
data
:
data
});
});
});
}
}
/**
* vue 生命周期
*
* @memberof List_ByParentKeyBase
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof List_ByParentKeyBase
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
/**
* 执行界面行为
*
* @memberof List_ByParentKeyBase
*/
public
uiAction
(
tag
:
string
,
event
:
any
){
if
(
Object
.
is
(
tag
,
'u222531e'
)){
this
.
dashboard_sysportlet8_u222531e_click
(
null
,
tag
,
event
);
}
if
(
Object
.
is
(
tag
,
'ue577d64'
)){
this
.
dashboard_sysportlet8_ue577d64_click
(
null
,
tag
,
event
);
}
if
(
Object
.
is
(
tag
,
'u654c060'
)){
this
.
dashboard_sysportlet8_u654c060_click
(
null
,
tag
,
event
);
}
if
(
Object
.
is
(
tag
,
'u7019ad0'
)){
this
.
dashboard_sysportlet8_u7019ad0_click
(
null
,
tag
,
event
);
}
}
}
</
script
>
<
style
lang=
'less'
>
@import './list-by-parent-key-portlet.less';
</
style
>
app_BusinessCentral/src/widgets/activity-pointer/list-by-parent-key-portlet/list-by-parent-key-portlet-model.ts
0 → 100644
浏览文件 @
1ac621ba
/**
* List_ByParentKey 部件模型
*
* @export
* @class List_ByParentKeyModel
*/
export
default
class
List_ByParentKeyModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof List_ByParentKeyModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'seriesid'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'deliveryprioritycode'
,
},
{
name
:
'onholdtime'
,
},
{
name
:
'workflowcreated'
,
},
{
name
:
'senton'
,
},
{
name
:
'lastonholdtime'
,
},
{
name
:
'actualdurationminutes'
,
},
{
name
:
'regardingobjectid'
,
},
{
name
:
'deliverylastattemptedon'
,
},
{
name
:
'mapiprivate'
,
},
{
name
:
'actualend'
,
},
{
name
:
'description'
,
},
{
name
:
'prioritycode'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'billed'
,
},
{
name
:
'regularactivity'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'createman'
,
},
{
name
:
'scheduleddurationminutes'
,
},
{
name
:
'activityadditionalparams'
,
},
{
name
:
'activitypointer'
,
prop
:
'activityid'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'stageid'
,
},
{
name
:
'leftvoicemail'
,
},
{
name
:
'scheduledend'
,
},
{
name
:
'exchangeitemid'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'scheduledstart'
,
},
{
name
:
'instancetypecode'
,
},
{
name
:
'regardingobjectidyominame'
,
},
{
name
:
'regardingobjecttypecode'
,
},
{
name
:
'sortdate'
,
},
{
name
:
'createdate'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'community'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'processid'
,
},
{
name
:
'slaname'
,
},
{
name
:
'subject'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'allparties'
,
},
{
name
:
'updateman'
,
},
{
name
:
'exchangeweblink'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'actualstart'
,
},
{
name
:
'activitytypecode'
,
},
{
name
:
'regardingobjectidname'
,
},
{
name
:
'statecode'
,
},
{
name
:
'serviceid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'slaid'
,
},
]
}
}
app_BusinessCentral/src/widgets/activity-pointer/list-by-parent-key-portlet/list-by-parent-key-portlet-service.ts
0 → 100644
浏览文件 @
1ac621ba
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* List_ByParentKey 部件服务对象
*
* @export
* @class List_ByParentKeyService
*/
export
default
class
List_ByParentKeyService
extends
ControlService
{
}
app_BusinessCentral/src/widgets/activity-pointer/list-by-parent-key-portlet/list-by-parent-key-portlet.less
0 → 100644
浏览文件 @
1ac621ba
.portlet {
--portlet: 0px;
}
// this is less
app_BusinessCentral/src/widgets/activity-pointer/list-by-parent-key-portlet/list-by-parent-key-portlet.vue
0 → 100644
浏览文件 @
1ac621ba
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
ActivityPointerList_ByParentKeyBase
from
'./list-by-parent-key-portlet-base.vue'
;
import
view_dashboard_sysportlet8_list
from
'@widgets/activity-pointer/by-parent-key-list/by-parent-key-list.vue'
;
@
Component
({
components
:
{
view_dashboard_sysportlet8_list
,
}
})
export
default
class
ActivityPointerList_ByParentKey
extends
ActivityPointerList_ByParentKeyBase
{
}
</
script
>
app_BusinessCentral/src/widgets/campaign/head-summary-dashboard/head-summary-dashboard.vue
浏览文件 @
1ac621ba
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
Head_SummaryBase
from
'./head-summary-dashboard-base.vue'
;
import
view_dashboard_sysportlet2
from
'@widgets/campaign/
pt-info-portlet/pt
-info-portlet.vue'
;
import
view_dashboard_sysportlet1
from
'@widgets/campaign/
pt-info-head-portlet/pt-info
-head-portlet.vue'
;
import
view_dashboard_sysportlet2
from
'@widgets/campaign/
view-info-portlet/view
-info-portlet.vue'
;
import
view_dashboard_sysportlet1
from
'@widgets/campaign/
view-head-portlet/view
-head-portlet.vue'
;
@
Component
({
...
...
app_BusinessCentral/src/widgets/campaign/summary-dashboard/summary-dashboard.vue
浏览文件 @
1ac621ba
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
SummaryBase
from
'./summary-dashboard-base.vue'
;
import
view_dashboard_sysportlet2
from
'@widgets/campaign/
pt-info-schedule-portlet/pt-info
-schedule-portlet.vue'
;
import
view_dashboard_sysportlet3
from
'@widgets/campaign/
pt-info-manager-portlet/pt-info
-manager-portlet.vue'
;
import
view_dashboard_sysportlet1
from
'@widgets/campaign/
pt-info-campagin-portlet/pt-info
-campagin-portlet.vue'
;
import
view_dashboard_sysportlet2
from
'@widgets/campaign/
view-schedule-portlet/view
-schedule-portlet.vue'
;
import
view_dashboard_sysportlet3
from
'@widgets/campaign/
view-manager-portlet/view
-manager-portlet.vue'
;
import
view_dashboard_sysportlet1
from
'@widgets/campaign/
view-campagin-portlet/view
-campagin-portlet.vue'
;
@
Component
({
...
...
app_BusinessCentral/src/widgets/campaign/view-campagin-portlet/view-campagin-portlet-base.vue
0 → 100644
浏览文件 @
1ac621ba
<
template
>
<div
class=
'portlet view-campagin '
:style=
"
{'height': 'auto',}">
<p
class=
'portlet-title'
>
<span>
信息_活动信息
</span>
</p>
<div
class=
"portlet-with-title"
>
<campaign-info-campagin
:viewdata=
"JSON.stringify(context)"
:viewDefaultUsage=
"false"
></campaign-info-campagin>
</div>
</div>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
CampaignService
from
'@/service/campaign/campaign-service'
;
import
View_CampaginService
from
'./view-campagin-portlet-service'
;
import
{
Environment
}
from
'@/environments/environment'
;
@
Component
({
components
:
{
}
})
export
default
class
CampaignView_CampaginBase
extends
Vue
implements
ControlInterface
{
/**
* 名称
*
* @type {string}
* @memberof View_Campagin
*/
@
Prop
()
public
name
?:
string
;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_Campagin
*/
@
Prop
()
public
viewState
!
:
Subject
<
ViewState
>
;
/**
* 应用上下文
*
* @type {*}
* @memberof View_Campagin
*/
@
Prop
()
public
context
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof View_Campagin
*/
@
Prop
()
public
viewparams
:
any
;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_Campagin
*/
public
viewStateEvent
:
Subscription
|
undefined
;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_Campagin
*/
public
getControlType
():
string
{
return
'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_Campagin
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 建构部件服务对象
*
* @type {View_CampaginService}
* @memberof View_Campagin
*/
public
service
:
View_CampaginService
=
new
View_CampaginService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {CampaignService}
* @memberof View_Campagin
*/
public
appEntityService
:
CampaignService
=
new
CampaignService
({
$store
:
this
.
$store
});
/**
* 关闭视图
*
* @param {any} args
* @memberof View_Campagin
*/
public
closeView
(
args
:
any
):
void
{
let
_this
:
any
=
this
;
_this
.
$emit
(
'closeview'
,
[
args
]);
}
/**
* 计数器刷新
*
* @memberof View_Campagin
*/
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 {number}
* @memberof View_Campagin
*/
@
Prop
()
public
height
?:
number
;
/**
* 宽度
*
* @type {number}
* @memberof View_Campagin
*/
@
Prop
()
public
width
?:
number
;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_CampaginBase
*/
@
Prop
({
default
:
false
})
public
isAdaptiveSize
!
:
boolean
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_CampaginBase
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_CampaginBase
*/
public
getData
():
any
{
return
{};
}
/**
* vue 生命周期
*
* @memberof View_CampaginBase
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof View_CampaginBase
*/
public
afterCreated
(){
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
const
refs
:
any
=
this
.
$refs
;
Object
.
keys
(
refs
).
forEach
((
_name
:
string
)
=>
{
this
.
viewState
.
next
({
tag
:
_name
,
action
:
action
,
data
:
data
});
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_CampaginBase
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_CampaginBase
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
}
</
script
>
<
style
lang=
'less'
>
@import './view-campagin-portlet.less';
</
style
>
app_BusinessCentral/src/widgets/campaign/view-campagin-portlet/view-campagin-portlet-model.ts
0 → 100644
浏览文件 @
1ac621ba
/**
* View_Campagin 部件模型
*
* @export
* @class View_CampaginModel
*/
export
default
class
View_CampaginModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_CampaginModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'expectedresponse'
,
},
{
name
:
'typecode'
,
},
{
name
:
'budgetedcost'
,
},
{
name
:
'createdate'
,
},
{
name
:
'totalactualcost'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'othercost'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'campaignname'
,
},
{
name
:
'entityimage_url'
,
},
{
name
:
'statecode'
,
},
{
name
:
'template'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'campaign'
,
prop
:
'campaignid'
,
},
{
name
:
'createman'
,
},
{
name
:
'objective'
,
},
{
name
:
'budgetedcost_base'
,
},
{
name
:
'updateman'
,
},
{
name
:
'expectedrevenue_base'
,
},
{
name
:
'entityimage_timestamp'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'othercost_base'
,
},
{
name
:
'proposedend'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'entityimage'
,
},
{
name
:
'codename'
,
},
{
name
:
'description'
,
},
{
name
:
'actualend'
,
},
{
name
:
'expectedrevenue'
,
},
{
name
:
'pricelistname'
,
},
{
name
:
'entityimageid'
,
},
{
name
:
'processid'
,
},
{
name
:
'actualstart'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'message'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'stageid'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'proposedstart'
,
},
{
name
:
'totalactualcost_base'
,
},
{
name
:
'emailaddress'
,
},
{
name
:
'promotioncodename'
,
},
{
name
:
'pricelistid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'currencyname'
,
},
]
}
}
app_BusinessCentral/src/widgets/campaign/view-campagin-portlet/view-campagin-portlet-service.ts
0 → 100644
浏览文件 @
1ac621ba
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* View_Campagin 部件服务对象
*
* @export
* @class View_CampaginService
*/
export
default
class
View_CampaginService
extends
ControlService
{
}
app_BusinessCentral/src/widgets/campaign/view-campagin-portlet/view-campagin-portlet.less
0 → 100644
浏览文件 @
1ac621ba
.portlet {
--portlet: 0px;
}
// this is less
app_BusinessCentral/src/widgets/campaign/view-campagin-portlet/view-campagin-portlet.vue
0 → 100644
浏览文件 @
1ac621ba
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
CampaignView_CampaginBase
from
'./view-campagin-portlet-base.vue'
;
@
Component
({
components
:
{
}
})
export
default
class
CampaignView_Campagin
extends
CampaignView_CampaginBase
{
}
</
script
>
app_BusinessCentral/src/widgets/campaign/view-head-portlet/view-head-portlet-base.vue
0 → 100644
浏览文件 @
1ac621ba
<
template
>
<div
class=
'portlet view-head '
:style=
"
{'height': 'auto',}">
<div
class=
"portlet-without-title"
>
<campaign-info-head
:viewdata=
"JSON.stringify(context)"
:viewDefaultUsage=
"false"
></campaign-info-head>
</div>
</div>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
CampaignService
from
'@/service/campaign/campaign-service'
;
import
View_HeadService
from
'./view-head-portlet-service'
;
import
{
Environment
}
from
'@/environments/environment'
;
@
Component
({
components
:
{
}
})
export
default
class
CampaignView_HeadBase
extends
Vue
implements
ControlInterface
{
/**
* 名称
*
* @type {string}
* @memberof View_Head
*/
@
Prop
()
public
name
?:
string
;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_Head
*/
@
Prop
()
public
viewState
!
:
Subject
<
ViewState
>
;
/**
* 应用上下文
*
* @type {*}
* @memberof View_Head
*/
@
Prop
()
public
context
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof View_Head
*/
@
Prop
()
public
viewparams
:
any
;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_Head
*/
public
viewStateEvent
:
Subscription
|
undefined
;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_Head
*/
public
getControlType
():
string
{
return
'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_Head
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 建构部件服务对象
*
* @type {View_HeadService}
* @memberof View_Head
*/
public
service
:
View_HeadService
=
new
View_HeadService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {CampaignService}
* @memberof View_Head
*/
public
appEntityService
:
CampaignService
=
new
CampaignService
({
$store
:
this
.
$store
});
/**
* 关闭视图
*
* @param {any} args
* @memberof View_Head
*/
public
closeView
(
args
:
any
):
void
{
let
_this
:
any
=
this
;
_this
.
$emit
(
'closeview'
,
[
args
]);
}
/**
* 计数器刷新
*
* @memberof View_Head
*/
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 {number}
* @memberof View_Head
*/
@
Prop
()
public
height
?:
number
;
/**
* 宽度
*
* @type {number}
* @memberof View_Head
*/
@
Prop
()
public
width
?:
number
;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_HeadBase
*/
@
Prop
({
default
:
false
})
public
isAdaptiveSize
!
:
boolean
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_HeadBase
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_HeadBase
*/
public
getData
():
any
{
return
{};
}
/**
* vue 生命周期
*
* @memberof View_HeadBase
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof View_HeadBase
*/
public
afterCreated
(){
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
const
refs
:
any
=
this
.
$refs
;
Object
.
keys
(
refs
).
forEach
((
_name
:
string
)
=>
{
this
.
viewState
.
next
({
tag
:
_name
,
action
:
action
,
data
:
data
});
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_HeadBase
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_HeadBase
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
}
</
script
>
<
style
lang=
'less'
>
@import './view-head-portlet.less';
</
style
>
app_BusinessCentral/src/widgets/campaign/view-head-portlet/view-head-portlet-model.ts
0 → 100644
浏览文件 @
1ac621ba
/**
* View_Head 部件模型
*
* @export
* @class View_HeadModel
*/
export
default
class
View_HeadModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_HeadModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'expectedresponse'
,
},
{
name
:
'typecode'
,
},
{
name
:
'budgetedcost'
,
},
{
name
:
'createdate'
,
},
{
name
:
'totalactualcost'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'othercost'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'campaignname'
,
},
{
name
:
'entityimage_url'
,
},
{
name
:
'statecode'
,
},
{
name
:
'template'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'campaign'
,
prop
:
'campaignid'
,
},
{
name
:
'createman'
,
},
{
name
:
'objective'
,
},
{
name
:
'budgetedcost_base'
,
},
{
name
:
'updateman'
,
},
{
name
:
'expectedrevenue_base'
,
},
{
name
:
'entityimage_timestamp'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'othercost_base'
,
},
{
name
:
'proposedend'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'entityimage'
,
},
{
name
:
'codename'
,
},
{
name
:
'description'
,
},
{
name
:
'actualend'
,
},
{
name
:
'expectedrevenue'
,
},
{
name
:
'pricelistname'
,
},
{
name
:
'entityimageid'
,
},
{
name
:
'processid'
,
},
{
name
:
'actualstart'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'message'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'stageid'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'proposedstart'
,
},
{
name
:
'totalactualcost_base'
,
},
{
name
:
'emailaddress'
,
},
{
name
:
'promotioncodename'
,
},
{
name
:
'pricelistid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'currencyname'
,
},
]
}
}
app_BusinessCentral/src/widgets/campaign/view-head-portlet/view-head-portlet-service.ts
0 → 100644
浏览文件 @
1ac621ba
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* View_Head 部件服务对象
*
* @export
* @class View_HeadService
*/
export
default
class
View_HeadService
extends
ControlService
{
}
app_BusinessCentral/src/widgets/campaign/view-head-portlet/view-head-portlet.less
0 → 100644
浏览文件 @
1ac621ba
.portlet {
--portlet: 0px;
}
// this is less
app_BusinessCentral/src/widgets/campaign/view-head-portlet/view-head-portlet.vue
0 → 100644
浏览文件 @
1ac621ba
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
CampaignView_HeadBase
from
'./view-head-portlet-base.vue'
;
@
Component
({
components
:
{
}
})
export
default
class
CampaignView_Head
extends
CampaignView_HeadBase
{
}
</
script
>
app_BusinessCentral/src/widgets/campaign/view-info-portlet/view-info-portlet-base.vue
0 → 100644
浏览文件 @
1ac621ba
<
template
>
<div
class=
'portlet view-info '
:style=
"
{'height': 'auto',}">
<div
class=
"portlet-without-title"
>
<campaign-info
:viewdata=
"JSON.stringify(context)"
:viewDefaultUsage=
"false"
></campaign-info>
</div>
</div>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
CampaignService
from
'@/service/campaign/campaign-service'
;
import
View_InfoService
from
'./view-info-portlet-service'
;
import
{
Environment
}
from
'@/environments/environment'
;
@
Component
({
components
:
{
}
})
export
default
class
CampaignView_InfoBase
extends
Vue
implements
ControlInterface
{
/**
* 名称
*
* @type {string}
* @memberof View_Info
*/
@
Prop
()
public
name
?:
string
;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_Info
*/
@
Prop
()
public
viewState
!
:
Subject
<
ViewState
>
;
/**
* 应用上下文
*
* @type {*}
* @memberof View_Info
*/
@
Prop
()
public
context
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof View_Info
*/
@
Prop
()
public
viewparams
:
any
;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_Info
*/
public
viewStateEvent
:
Subscription
|
undefined
;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_Info
*/
public
getControlType
():
string
{
return
'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_Info
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 建构部件服务对象
*
* @type {View_InfoService}
* @memberof View_Info
*/
public
service
:
View_InfoService
=
new
View_InfoService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {CampaignService}
* @memberof View_Info
*/
public
appEntityService
:
CampaignService
=
new
CampaignService
({
$store
:
this
.
$store
});
/**
* 关闭视图
*
* @param {any} args
* @memberof View_Info
*/
public
closeView
(
args
:
any
):
void
{
let
_this
:
any
=
this
;
_this
.
$emit
(
'closeview'
,
[
args
]);
}
/**
* 计数器刷新
*
* @memberof View_Info
*/
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 {number}
* @memberof View_Info
*/
@
Prop
()
public
height
?:
number
;
/**
* 宽度
*
* @type {number}
* @memberof View_Info
*/
@
Prop
()
public
width
?:
number
;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_InfoBase
*/
@
Prop
({
default
:
false
})
public
isAdaptiveSize
!
:
boolean
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_InfoBase
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_InfoBase
*/
public
getData
():
any
{
return
{};
}
/**
* vue 生命周期
*
* @memberof View_InfoBase
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof View_InfoBase
*/
public
afterCreated
(){
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
const
refs
:
any
=
this
.
$refs
;
Object
.
keys
(
refs
).
forEach
((
_name
:
string
)
=>
{
this
.
viewState
.
next
({
tag
:
_name
,
action
:
action
,
data
:
data
});
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_InfoBase
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_InfoBase
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
}
</
script
>
<
style
lang=
'less'
>
@import './view-info-portlet.less';
</
style
>
app_BusinessCentral/src/widgets/campaign/view-info-portlet/view-info-portlet-model.ts
0 → 100644
浏览文件 @
1ac621ba
/**
* View_Info 部件模型
*
* @export
* @class View_InfoModel
*/
export
default
class
View_InfoModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_InfoModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'expectedresponse'
,
},
{
name
:
'typecode'
,
},
{
name
:
'budgetedcost'
,
},
{
name
:
'createdate'
,
},
{
name
:
'totalactualcost'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'othercost'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'campaignname'
,
},
{
name
:
'entityimage_url'
,
},
{
name
:
'statecode'
,
},
{
name
:
'template'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'campaign'
,
prop
:
'campaignid'
,
},
{
name
:
'createman'
,
},
{
name
:
'objective'
,
},
{
name
:
'budgetedcost_base'
,
},
{
name
:
'updateman'
,
},
{
name
:
'expectedrevenue_base'
,
},
{
name
:
'entityimage_timestamp'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'othercost_base'
,
},
{
name
:
'proposedend'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'entityimage'
,
},
{
name
:
'codename'
,
},
{
name
:
'description'
,
},
{
name
:
'actualend'
,
},
{
name
:
'expectedrevenue'
,
},
{
name
:
'pricelistname'
,
},
{
name
:
'entityimageid'
,
},
{
name
:
'processid'
,
},
{
name
:
'actualstart'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'message'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'stageid'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'proposedstart'
,
},
{
name
:
'totalactualcost_base'
,
},
{
name
:
'emailaddress'
,
},
{
name
:
'promotioncodename'
,
},
{
name
:
'pricelistid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'currencyname'
,
},
]
}
}
app_BusinessCentral/src/widgets/campaign/view-info-portlet/view-info-portlet-service.ts
0 → 100644
浏览文件 @
1ac621ba
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* View_Info 部件服务对象
*
* @export
* @class View_InfoService
*/
export
default
class
View_InfoService
extends
ControlService
{
}
app_BusinessCentral/src/widgets/campaign/view-info-portlet/view-info-portlet.less
0 → 100644
浏览文件 @
1ac621ba
.portlet {
--portlet: 0px;
}
// this is less
app_BusinessCentral/src/widgets/campaign/view-info-portlet/view-info-portlet.vue
0 → 100644
浏览文件 @
1ac621ba
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
CampaignView_InfoBase
from
'./view-info-portlet-base.vue'
;
@
Component
({
components
:
{
}
})
export
default
class
CampaignView_Info
extends
CampaignView_InfoBase
{
}
</
script
>
app_BusinessCentral/src/widgets/campaign/view-manager-portlet/view-manager-portlet-base.vue
0 → 100644
浏览文件 @
1ac621ba
<
template
>
<div
class=
'portlet view-manager '
:style=
"
{'height': 'auto',}">
<p
class=
'portlet-title'
>
<span>
管理信息
</span>
</p>
<div
class=
"portlet-with-title"
>
<campaign-info-manager
:viewdata=
"JSON.stringify(context)"
:viewDefaultUsage=
"false"
></campaign-info-manager>
</div>
</div>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
CampaignService
from
'@/service/campaign/campaign-service'
;
import
View_ManagerService
from
'./view-manager-portlet-service'
;
import
{
Environment
}
from
'@/environments/environment'
;
@
Component
({
components
:
{
}
})
export
default
class
CampaignView_ManagerBase
extends
Vue
implements
ControlInterface
{
/**
* 名称
*
* @type {string}
* @memberof View_Manager
*/
@
Prop
()
public
name
?:
string
;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_Manager
*/
@
Prop
()
public
viewState
!
:
Subject
<
ViewState
>
;
/**
* 应用上下文
*
* @type {*}
* @memberof View_Manager
*/
@
Prop
()
public
context
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof View_Manager
*/
@
Prop
()
public
viewparams
:
any
;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_Manager
*/
public
viewStateEvent
:
Subscription
|
undefined
;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_Manager
*/
public
getControlType
():
string
{
return
'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_Manager
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 建构部件服务对象
*
* @type {View_ManagerService}
* @memberof View_Manager
*/
public
service
:
View_ManagerService
=
new
View_ManagerService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {CampaignService}
* @memberof View_Manager
*/
public
appEntityService
:
CampaignService
=
new
CampaignService
({
$store
:
this
.
$store
});
/**
* 关闭视图
*
* @param {any} args
* @memberof View_Manager
*/
public
closeView
(
args
:
any
):
void
{
let
_this
:
any
=
this
;
_this
.
$emit
(
'closeview'
,
[
args
]);
}
/**
* 计数器刷新
*
* @memberof View_Manager
*/
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 {number}
* @memberof View_Manager
*/
@
Prop
()
public
height
?:
number
;
/**
* 宽度
*
* @type {number}
* @memberof View_Manager
*/
@
Prop
()
public
width
?:
number
;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_ManagerBase
*/
@
Prop
({
default
:
false
})
public
isAdaptiveSize
!
:
boolean
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_ManagerBase
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_ManagerBase
*/
public
getData
():
any
{
return
{};
}
/**
* vue 生命周期
*
* @memberof View_ManagerBase
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof View_ManagerBase
*/
public
afterCreated
(){
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
const
refs
:
any
=
this
.
$refs
;
Object
.
keys
(
refs
).
forEach
((
_name
:
string
)
=>
{
this
.
viewState
.
next
({
tag
:
_name
,
action
:
action
,
data
:
data
});
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_ManagerBase
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_ManagerBase
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
}
</
script
>
<
style
lang=
'less'
>
@import './view-manager-portlet.less';
</
style
>
app_BusinessCentral/src/widgets/campaign/view-manager-portlet/view-manager-portlet-model.ts
0 → 100644
浏览文件 @
1ac621ba
/**
* View_Manager 部件模型
*
* @export
* @class View_ManagerModel
*/
export
default
class
View_ManagerModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_ManagerModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'expectedresponse'
,
},
{
name
:
'typecode'
,
},
{
name
:
'budgetedcost'
,
},
{
name
:
'createdate'
,
},
{
name
:
'totalactualcost'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'othercost'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'campaignname'
,
},
{
name
:
'entityimage_url'
,
},
{
name
:
'statecode'
,
},
{
name
:
'template'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'campaign'
,
prop
:
'campaignid'
,
},
{
name
:
'createman'
,
},
{
name
:
'objective'
,
},
{
name
:
'budgetedcost_base'
,
},
{
name
:
'updateman'
,
},
{
name
:
'expectedrevenue_base'
,
},
{
name
:
'entityimage_timestamp'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'othercost_base'
,
},
{
name
:
'proposedend'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'entityimage'
,
},
{
name
:
'codename'
,
},
{
name
:
'description'
,
},
{
name
:
'actualend'
,
},
{
name
:
'expectedrevenue'
,
},
{
name
:
'pricelistname'
,
},
{
name
:
'entityimageid'
,
},
{
name
:
'processid'
,
},
{
name
:
'actualstart'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'message'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'stageid'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'proposedstart'
,
},
{
name
:
'totalactualcost_base'
,
},
{
name
:
'emailaddress'
,
},
{
name
:
'promotioncodename'
,
},
{
name
:
'pricelistid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'currencyname'
,
},
]
}
}
app_BusinessCentral/src/widgets/campaign/view-manager-portlet/view-manager-portlet-service.ts
0 → 100644
浏览文件 @
1ac621ba
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* View_Manager 部件服务对象
*
* @export
* @class View_ManagerService
*/
export
default
class
View_ManagerService
extends
ControlService
{
}
app_BusinessCentral/src/widgets/campaign/view-manager-portlet/view-manager-portlet.less
0 → 100644
浏览文件 @
1ac621ba
.portlet {
--portlet: 0px;
}
// this is less
app_BusinessCentral/src/widgets/campaign/view-manager-portlet/view-manager-portlet.vue
0 → 100644
浏览文件 @
1ac621ba
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
CampaignView_ManagerBase
from
'./view-manager-portlet-base.vue'
;
@
Component
({
components
:
{
}
})
export
default
class
CampaignView_Manager
extends
CampaignView_ManagerBase
{
}
</
script
>
app_BusinessCentral/src/widgets/campaign/view-schedule-portlet/view-schedule-portlet-base.vue
0 → 100644
浏览文件 @
1ac621ba
<
template
>
<div
class=
'portlet view-schedule '
:style=
"
{'height': 'auto',}">
<p
class=
'portlet-title'
>
<span>
信息_日程安排
</span>
</p>
<div
class=
"portlet-with-title"
>
<campaign-info-schedule
:viewdata=
"JSON.stringify(context)"
:viewDefaultUsage=
"false"
></campaign-info-schedule>
</div>
</div>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
CampaignService
from
'@/service/campaign/campaign-service'
;
import
View_ScheduleService
from
'./view-schedule-portlet-service'
;
import
{
Environment
}
from
'@/environments/environment'
;
@
Component
({
components
:
{
}
})
export
default
class
CampaignView_ScheduleBase
extends
Vue
implements
ControlInterface
{
/**
* 名称
*
* @type {string}
* @memberof View_Schedule
*/
@
Prop
()
public
name
?:
string
;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_Schedule
*/
@
Prop
()
public
viewState
!
:
Subject
<
ViewState
>
;
/**
* 应用上下文
*
* @type {*}
* @memberof View_Schedule
*/
@
Prop
()
public
context
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof View_Schedule
*/
@
Prop
()
public
viewparams
:
any
;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_Schedule
*/
public
viewStateEvent
:
Subscription
|
undefined
;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_Schedule
*/
public
getControlType
():
string
{
return
'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_Schedule
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 建构部件服务对象
*
* @type {View_ScheduleService}
* @memberof View_Schedule
*/
public
service
:
View_ScheduleService
=
new
View_ScheduleService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {CampaignService}
* @memberof View_Schedule
*/
public
appEntityService
:
CampaignService
=
new
CampaignService
({
$store
:
this
.
$store
});
/**
* 关闭视图
*
* @param {any} args
* @memberof View_Schedule
*/
public
closeView
(
args
:
any
):
void
{
let
_this
:
any
=
this
;
_this
.
$emit
(
'closeview'
,
[
args
]);
}
/**
* 计数器刷新
*
* @memberof View_Schedule
*/
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 {number}
* @memberof View_Schedule
*/
@
Prop
()
public
height
?:
number
;
/**
* 宽度
*
* @type {number}
* @memberof View_Schedule
*/
@
Prop
()
public
width
?:
number
;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_ScheduleBase
*/
@
Prop
({
default
:
false
})
public
isAdaptiveSize
!
:
boolean
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_ScheduleBase
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_ScheduleBase
*/
public
getData
():
any
{
return
{};
}
/**
* vue 生命周期
*
* @memberof View_ScheduleBase
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof View_ScheduleBase
*/
public
afterCreated
(){
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
const
refs
:
any
=
this
.
$refs
;
Object
.
keys
(
refs
).
forEach
((
_name
:
string
)
=>
{
this
.
viewState
.
next
({
tag
:
_name
,
action
:
action
,
data
:
data
});
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_ScheduleBase
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_ScheduleBase
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
}
</
script
>
<
style
lang=
'less'
>
@import './view-schedule-portlet.less';
</
style
>
app_BusinessCentral/src/widgets/campaign/view-schedule-portlet/view-schedule-portlet-model.ts
0 → 100644
浏览文件 @
1ac621ba
/**
* View_Schedule 部件模型
*
* @export
* @class View_ScheduleModel
*/
export
default
class
View_ScheduleModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_ScheduleModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'expectedresponse'
,
},
{
name
:
'typecode'
,
},
{
name
:
'budgetedcost'
,
},
{
name
:
'createdate'
,
},
{
name
:
'totalactualcost'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'othercost'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'campaignname'
,
},
{
name
:
'entityimage_url'
,
},
{
name
:
'statecode'
,
},
{
name
:
'template'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'campaign'
,
prop
:
'campaignid'
,
},
{
name
:
'createman'
,
},
{
name
:
'objective'
,
},
{
name
:
'budgetedcost_base'
,
},
{
name
:
'updateman'
,
},
{
name
:
'expectedrevenue_base'
,
},
{
name
:
'entityimage_timestamp'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'othercost_base'
,
},
{
name
:
'proposedend'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'entityimage'
,
},
{
name
:
'codename'
,
},
{
name
:
'description'
,
},
{
name
:
'actualend'
,
},
{
name
:
'expectedrevenue'
,
},
{
name
:
'pricelistname'
,
},
{
name
:
'entityimageid'
,
},
{
name
:
'processid'
,
},
{
name
:
'actualstart'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'message'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'stageid'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'proposedstart'
,
},
{
name
:
'totalactualcost_base'
,
},
{
name
:
'emailaddress'
,
},
{
name
:
'promotioncodename'
,
},
{
name
:
'pricelistid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'currencyname'
,
},
]
}
}
app_BusinessCentral/src/widgets/campaign/view-schedule-portlet/view-schedule-portlet-service.ts
0 → 100644
浏览文件 @
1ac621ba
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* View_Schedule 部件服务对象
*
* @export
* @class View_ScheduleService
*/
export
default
class
View_ScheduleService
extends
ControlService
{
}
app_BusinessCentral/src/widgets/campaign/view-schedule-portlet/view-schedule-portlet.less
0 → 100644
浏览文件 @
1ac621ba
.portlet {
--portlet: 0px;
}
// this is less
app_BusinessCentral/src/widgets/campaign/view-schedule-portlet/view-schedule-portlet.vue
0 → 100644
浏览文件 @
1ac621ba
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
CampaignView_ScheduleBase
from
'./view-schedule-portlet-base.vue'
;
@
Component
({
components
:
{
}
})
export
default
class
CampaignView_Schedule
extends
CampaignView_ScheduleBase
{
}
</
script
>
app_BusinessCentral/src/widgets/contact/abstract-info-form/abstract-info-form-base.vue
浏览文件 @
1ac621ba
...
...
@@ -1305,7 +1305,7 @@ export default class AbstractInfoBase extends Vue implements ControlInterface {
*/
public
load
(
opt
:
any
=
{}):
void
{
if
(
!
this
.
loadAction
){
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'Contact
AbstractEditView9
视图表单loadAction参数未配置'
});
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'Contact
Info_Abstract
视图表单loadAction参数未配置'
});
return
;
}
const
arg
:
any
=
{
...
opt
};
...
...
@@ -1340,7 +1340,7 @@ export default class AbstractInfoBase extends Vue implements ControlInterface {
*/
public
loadDraft
(
opt
:
any
=
{}):
void
{
if
(
!
this
.
loaddraftAction
){
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'Contact
AbstractEditView9
视图表单loaddraftAction参数未配置'
});
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'Contact
Info_Abstract
视图表单loaddraftAction参数未配置'
});
return
;
}
const
arg
:
any
=
{
...
opt
}
;
...
...
@@ -1402,7 +1402,7 @@ export default class AbstractInfoBase extends Vue implements ControlInterface {
const
action
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)
?
this
.
updateAction
:
this
.
createAction
;
if
(
!
action
){
let
actionName
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)?
"updateAction"
:
"createAction"
;
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'Contact
AbstractEditView9
视图表单'
+
actionName
+
'参数未配置'
});
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'Contact
Info_Abstract
视图表单'
+
actionName
+
'参数未配置'
});
return
;
}
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
...
...
@@ -1466,7 +1466,7 @@ export default class AbstractInfoBase extends Vue implements ControlInterface {
const
action
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)
?
this
.
updateAction
:
this
.
createAction
;
if
(
!
action
){
let
actionName
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)?
"updateAction"
:
"createAction"
;
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'Contact
AbstractEditView9
视图表单'
+
actionName
+
'参数未配置'
});
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'Contact
Info_Abstract
视图表单'
+
actionName
+
'参数未配置'
});
return
;
}
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
...
...
@@ -1516,7 +1516,7 @@ export default class AbstractInfoBase extends Vue implements ControlInterface {
public
remove
(
opt
:
Array
<
any
>
=
[],
showResultInfo
?:
boolean
):
Promise
<
any
>
{
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
if
(
!
this
.
removeAction
){
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'Contact
AbstractEditView9
视图表单removeAction参数未配置'
});
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'Contact
Info_Abstract
视图表单removeAction参数未配置'
});
return
;
}
const
arg
:
any
=
opt
[
0
];
...
...
app_BusinessCentral/src/widgets/contact/con-abs-dashboard/con-abs-dashboard-base.vue
0 → 100644
浏览文件 @
1ac621ba
<
template
>
<div
class=
'dashboard'
>
<row
v-if=
"isEnableCustomized"
>
<app-build
@
handleClick=
"handleClick"
></app-build>
</row>
<row
v-if=
"!isHasCustomized"
>
<i-col
:md=
"
{ span: 24, offset: 0 }">
<card
class=
"portlet-card"
:bordered=
"false"
dis-hover
:padding=
"0"
>
<span>
<view
_dashboard_sysportlet1
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:height=
"300"
name=
"dashboard_sysportlet1"
ref=
'dashboard_sysportlet1'
@
closeview=
"closeView($event)"
>
</view
_dashboard_sysportlet1
>
</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
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
ContactService
from
'@/service/contact/contact-service'
;
import
ConAbsService
from
'./con-abs-dashboard-service'
;
import
UtilService
from
'@/utilservice/util-service'
;
@
Component
({
components
:
{
}
})
export
default
class
ConAbsBase
extends
Vue
implements
ControlInterface
{
/**
* 名称
*
* @type {string}
* @memberof ConAbs
*/
@
Prop
()
public
name
?:
string
;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof ConAbs
*/
@
Prop
()
public
viewState
!
:
Subject
<
ViewState
>
;
/**
* 应用上下文
*
* @type {*}
* @memberof ConAbs
*/
@
Prop
()
public
context
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof ConAbs
*/
@
Prop
()
public
viewparams
:
any
;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof ConAbs
*/
public
viewStateEvent
:
Subscription
|
undefined
;
/**
* 获取部件类型
*
* @returns {string}
* @memberof ConAbs
*/
public
getControlType
():
string
{
return
'DASHBOARD'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof ConAbs
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 建构部件服务对象
*
* @type {ConAbsService}
* @memberof ConAbs
*/
public
service
:
ConAbsService
=
new
ConAbsService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {ContactService}
* @memberof ConAbs
*/
public
appEntityService
:
ContactService
=
new
ContactService
({
$store
:
this
.
$store
});
/**
* 关闭视图
*
* @param {any} args
* @memberof ConAbs
*/
public
closeView
(
args
:
any
):
void
{
let
_this
:
any
=
this
;
_this
.
$emit
(
'closeview'
,
[
args
]);
}
/**
* 计数器刷新
*
* @memberof ConAbs
*/
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 ConAbs
*/
@
Prop
()
public
isEnableCustomized
!
:
boolean
;
/**
* 是否已有看板定制
*
* @public
* @type {(boolean)}
* @memberof ConAbs
*/
public
isHasCustomized
:
boolean
=
false
;
/**
* 模型数据
*
* @public
* @type {(*)}
* @memberof ConAbs
*/
public
modelDta
:
any
;
/**
* modleId
*
* @type {string}
* @memberof ConAbs
*/
public
modelId
:
string
=
"dashboard_contact_conabs"
;
/**
* 建构功能服务对象
*
* @type {UtilService}
* @memberof ConAbs
*/
public
utilService
:
UtilService
=
new
UtilService
();
/**
* 功能服务名称
*
* @type {string}
* @memberof ConAbs
*/
public
utilServiceName
:
string
=
""
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof ConAbs
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof ConAbs
*/
public
getData
():
any
{
return
{};
}
/**
* vue 生命周期
*
* @memberof ConAbs
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof ConAbs
*/
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 ConAbs
*/
public
layoutColNum
:
number
=
12
;
/**
* 动态设计单元格高度,80px
*
* @memberof ConAbs
*/
public
layoutRowH
:
number
=
80
;
/**
* 通知状态
*
* @memberof ConAbs
*/
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 ConAbs
*/
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 ConAbs
*/
public
handleClick
(){
const
view
:
any
=
{
viewname
:
'app-portal-design'
,
title
:
'面板设计'
,
width
:
1600
,
placement
:
'DRAWER_RIGHT'
}
const
viewparam
:
any
=
{
modelid
:
this
.
modelId
,
utilServiceName
:
this
.
utilServiceName
,
appdeName
:
'Contact'
}
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 ConAbs
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof ConAbs
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
}
</
script
>
<
style
lang=
'less'
>
@import './con-abs-dashboard.less';
</
style
>
\ No newline at end of file
app_BusinessCentral/src/widgets/contact/con-abs-dashboard/con-abs-dashboard-model.ts
0 → 100644
浏览文件 @
1ac621ba
/**
* ConAbs 部件模型
*
* @export
* @class ConAbsModel
*/
export
default
class
ConAbsModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof ConAbsModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'address1_freighttermscode'
,
},
{
name
:
'address3_city'
,
},
{
name
:
'department'
,
},
{
name
:
'parentcustomeridtype'
,
},
{
name
:
'address1_stateorprovince'
,
},
{
name
:
'aging90_base'
,
},
{
name
:
'accountidyominame'
,
},
{
name
:
'donotbulkpostalmail'
,
},
{
name
:
'managername'
,
},
{
name
:
'donotpostalmail'
,
},
{
name
:
'spousesname'
,
},
{
name
:
'familystatuscode'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'address3_composite'
,
},
{
name
:
'address3_shippingmethodcode'
,
},
{
name
:
'lastname'
,
},
{
name
:
'lastonholdtime'
,
},
{
name
:
'educationcode'
,
},
{
name
:
'address2_line1'
,
},
{
name
:
'birthdate'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'haschildrencode'
,
},
{
name
:
'company'
,
},
{
name
:
'address2_fax'
,
},
{
name
:
'assistantphone'
,
},
{
name
:
'callback'
,
},
{
name
:
'paymenttermscode'
,
},
{
name
:
'address2_telephone1'
,
},
{
name
:
'marketingonly'
,
},
{
name
:
'address2_utcoffset'
,
},
{
name
:
'address2_shippingmethodcode'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'employeeid'
,
},
{
name
:
'creditlimit_base'
,
},
{
name
:
'followemail'
,
},
{
name
:
'address3_postalcode'
,
},
{
name
:
'merged'
,
},
{
name
:
'jobtitle'
,
},
{
name
:
'address1_telephone1'
,
},
{
name
:
'customersizecode'
,
},
{
name
:
'address3_addresstypecode'
,
},
{
name
:
'pager'
,
},
{
name
:
'assistantname'
,
},
{
name
:
'address1_composite'
,
},
{
name
:
'address1_line1'
,
},
{
name
:
'yomimiddlename'
,
},
{
name
:
'address1_telephone3'
,
},
{
name
:
'telephone2'
,
},
{
name
:
'address2_addressid'
,
},
{
name
:
'parentcontactidyominame'
,
},
{
name
:
'leadsourcecode'
,
},
{
name
:
'statecode'
,
},
{
name
:
'address2_freighttermscode'
,
},
{
name
:
'emailaddress1'
,
},
{
name
:
'entityimage_timestamp'
,
},
{
name
:
'address3_line1'
,
},
{
name
:
'salutation'
,
},
{
name
:
'address1_line3'
,
},
{
name
:
'address3_primarycontactname'
,
},
{
name
:
'ibizprivate'
,
},
{
name
:
'donotfax'
,
},
{
name
:
'createdate'
,
},
{
name
:
'preferredsystemuseridyominame'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'address3_stateorprovince'
,
},
{
name
:
'address3_line3'
,
},
{
name
:
'creditlimit'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'parentcustomerid'
,
},
{
name
:
'childrensnames'
,
},
{
name
:
'address1_addresstypecode'
,
},
{
name
:
'accountrolecode'
,
},
{
name
:
'donotphone'
,
},
{
name
:
'managerphone'
,
},
{
name
:
'creditonhold'
,
},
{
name
:
'updateman'
,
},
{
name
:
'address2_postalcode'
,
},
{
name
:
'address1_line2'
,
},
{
name
:
'nickname'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'yomifullname'
,
},
{
name
:
'entityimage'
,
},
{
name
:
'shippingmethodcode'
,
},
{
name
:
'customertypecode'
,
},
{
name
:
'address2_county'
,
},
{
name
:
'aging90'
,
},
{
name
:
'address2_stateorprovince'
,
},
{
name
:
'address3_utcoffset'
,
},
{
name
:
'fullname'
,
},
{
name
:
'participatesinworkflow'
,
},
{
name
:
'websiteurl'
,
},
{
name
:
'description'
,
},
{
name
:
'address3_telephone1'
,
},
{
name
:
'address2_upszone'
,
},
{
name
:
'address3_county'
,
},
{
name
:
'entityimage_url'
,
},
{
name
:
'address3_upszone'
,
},
{
name
:
'address1_name'
,
},
{
name
:
'mastercontactidyominame'
,
},
{
name
:
'autocreate'
,
},
{
name
:
'backofficecustomer'
,
},
{
name
:
'address2_longitude'
,
},
{
name
:
'address1_fax'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'address1_city'
,
},
{
name
:
'entityimageid'
,
},
{
name
:
'address1_telephone2'
,
},
{
name
:
'address2_composite'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'gendercode'
,
},
{
name
:
'annualincome'
,
},
{
name
:
'subscriptionid'
,
},
{
name
:
'territorycode'
,
},
{
name
:
'firstname'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'address3_country'
,
},
{
name
:
'yomilastname'
,
},
{
name
:
'donotbulkemail'
,
},
{
name
:
'address3_telephone2'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'externaluseridentifier'
,
},
{
name
:
'teamsfollowed'
,
},
{
name
:
'donotemail'
,
},
{
name
:
'anniversary'
,
},
{
name
:
'preferredappointmentdaycode'
,
},
{
name
:
'middlename'
,
},
{
name
:
'emailaddress3'
,
},
{
name
:
'address2_telephone2'
,
},
{
name
:
'fax'
,
},
{
name
:
'mobilephone'
,
},
{
name
:
'home2'
,
},
{
name
:
'createman'
,
},
{
name
:
'onholdtime'
,
},
{
name
:
'preferredappointmenttimecode'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'governmentid'
,
},
{
name
:
'address3_telephone3'
,
},
{
name
:
'business2'
,
},
{
name
:
'preferredsystemuserid'
,
},
{
name
:
'address1_upszone'
,
},
{
name
:
'aging60'
,
},
{
name
:
'yomifirstname'
,
},
{
name
:
'address3_postofficebox'
,
},
{
name
:
'address2_city'
,
},
{
name
:
'processid'
,
},
{
name
:
'annualincome_base'
,
},
{
name
:
'address3_addressid'
,
},
{
name
:
'parentcustomeridyominame'
,
},
{
name
:
'contact'
,
prop
:
'contactid'
,
},
{
name
:
'aging60_base'
,
},
{
name
:
'address3_latitude'
,
},
{
name
:
'telephone3'
,
},
{
name
:
'address1_primarycontactname'
,
},
{
name
:
'address3_fax'
,
},
{
name
:
'preferredcontactmethodcode'
,
},
{
name
:
'address1_utcoffset'
,
},
{
name
:
'donotsendmm'
,
},
{
name
:
'address2_telephone3'
,
},
{
name
:
'address2_country'
,
},
{
name
:
'aging30'
,
},
{
name
:
'address2_postofficebox'
,
},
{
name
:
'telephone1'
,
},
{
name
:
'address3_longitude'
,
},
{
name
:
'lastusedincampaign'
,
},
{
name
:
'ftpsiteurl'
,
},
{
name
:
'aging30_base'
,
},
{
name
:
'address2_name'
,
},
{
name
:
'suffix'
,
},
{
name
:
'address1_county'
,
},
{
name
:
'address2_addresstypecode'
,
},
{
name
:
'address1_longitude'
,
},
{
name
:
'address3_line2'
,
},
{
name
:
'address1_addressid'
,
},
{
name
:
'address2_line3'
,
},
{
name
:
'address2_latitude'
,
},
{
name
:
'address2_line2'
,
},
{
name
:
'address1_shippingmethodcode'
,
},
{
name
:
'address3_freighttermscode'
,
},
{
name
:
'address1_postofficebox'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'address3_name'
,
},
{
name
:
'address1_latitude'
,
},
{
name
:
'numberofchildren'
,
},
{
name
:
'address2_primarycontactname'
,
},
{
name
:
'address1_postalcode'
,
},
{
name
:
'stageid'
,
},
{
name
:
'address1_country'
,
},
{
name
:
'emailaddress2'
,
},
{
name
:
'slaname'
,
},
{
name
:
'defaultpricelevelid'
,
},
{
name
:
'preferredequipmentid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'slaid'
,
},
{
name
:
'originatingleadid'
,
},
{
name
:
'preferredserviceid'
,
},
{
name
:
'defaultpricelevelname'
,
},
{
name
:
'originatingleadname'
,
},
{
name
:
'transactioncurrencyname'
,
},
{
name
:
'preferredservicename'
,
},
{
name
:
'preferredequipmentname'
,
},
]
}
}
\ No newline at end of file
app_BusinessCentral/src/widgets/contact/con-abs-dashboard/con-abs-dashboard-service.ts
0 → 100644
浏览文件 @
1ac621ba
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* ConAbs 部件服务对象
*
* @export
* @class ConAbsService
*/
export
default
class
ConAbsService
extends
ControlService
{
}
\ No newline at end of file
app_BusinessCentral/src/widgets/contact/con-abs-dashboard/con-abs-dashboard.less
0 → 100644
浏览文件 @
1ac621ba
.dashboard {
--dashboard: 0px;
}
// this is less
app_BusinessCentral/src/widgets/contact/con-abs-dashboard/con-abs-dashboard.vue
0 → 100644
浏览文件 @
1ac621ba
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
ConAbsBase
from
'./con-abs-dashboard-base.vue'
;
import
view_dashboard_sysportlet1
from
'@widgets/contact/view-con-abs-portlet/view-con-abs-portlet.vue'
;
@
Component
({
components
:
{
view_dashboard_sysportlet1
,
}
})
export
default
class
ConAbs
extends
ConAbsBase
{
}
</
script
>
\ No newline at end of file
app_BusinessCentral/src/widgets/contact/detail-info-form/detail-info-form-base.vue
浏览文件 @
1ac621ba
...
...
@@ -1385,7 +1385,7 @@ export default class DetailInfoBase extends Vue implements ControlInterface {
*/
public
load
(
opt
:
any
=
{}):
void
{
if
(
!
this
.
loadAction
){
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'Contact
DetailInfoEditView9
视图表单loadAction参数未配置'
});
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'Contact
Info_Detail
视图表单loadAction参数未配置'
});
return
;
}
const
arg
:
any
=
{
...
opt
};
...
...
@@ -1420,7 +1420,7 @@ export default class DetailInfoBase extends Vue implements ControlInterface {
*/
public
loadDraft
(
opt
:
any
=
{}):
void
{
if
(
!
this
.
loaddraftAction
){
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'Contact
DetailInfoEditView9
视图表单loaddraftAction参数未配置'
});
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'Contact
Info_Detail
视图表单loaddraftAction参数未配置'
});
return
;
}
const
arg
:
any
=
{
...
opt
}
;
...
...
@@ -1482,7 +1482,7 @@ export default class DetailInfoBase extends Vue implements ControlInterface {
const
action
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)
?
this
.
updateAction
:
this
.
createAction
;
if
(
!
action
){
let
actionName
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)?
"updateAction"
:
"createAction"
;
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'Contact
DetailInfoEditView9
视图表单'
+
actionName
+
'参数未配置'
});
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'Contact
Info_Detail
视图表单'
+
actionName
+
'参数未配置'
});
return
;
}
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
...
...
@@ -1546,7 +1546,7 @@ export default class DetailInfoBase extends Vue implements ControlInterface {
const
action
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)
?
this
.
updateAction
:
this
.
createAction
;
if
(
!
action
){
let
actionName
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)?
"updateAction"
:
"createAction"
;
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'Contact
DetailInfoEditView9
视图表单'
+
actionName
+
'参数未配置'
});
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'Contact
Info_Detail
视图表单'
+
actionName
+
'参数未配置'
});
return
;
}
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
...
...
@@ -1596,7 +1596,7 @@ export default class DetailInfoBase extends Vue implements ControlInterface {
public
remove
(
opt
:
Array
<
any
>
=
[],
showResultInfo
?:
boolean
):
Promise
<
any
>
{
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
if
(
!
this
.
removeAction
){
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'Contact
DetailInfoEditView9
视图表单removeAction参数未配置'
});
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'Contact
Info_Detail
视图表单removeAction参数未配置'
});
return
;
}
const
arg
:
any
=
opt
[
0
];
...
...
app_BusinessCentral/src/widgets/contact/tab-exp-viewtabviewpanel-tabviewpanel/tab-exp-viewtabviewpanel-tabviewpanel-base.vue
浏览文件 @
1ac621ba
<
template
>
<div
class=
'tabviewpanel'
style=
"height:100%;"
v-if =
'isActivied'
>
<contact-
abstract-edit
-view9
<contact-
dashboard
-view9
class=
'viewcontainer2'
:viewdata=
"viewdata"
:viewparam=
"viewparam"
@
viewload=
"viewDatasChange($event)"
:viewDefaultUsage=
"false"
>
</contact-
abstract-edit
-view9>
</contact-
dashboard
-view9>
</div>
</
template
>
<
script
lang=
'tsx'
>
...
...
app_BusinessCentral/src/widgets/contact/tab-exp-viewtabviewpanel2-tabviewpanel/tab-exp-viewtabviewpanel2-tabviewpanel-base.vue
浏览文件 @
1ac621ba
<
template
>
<div
class=
'tabviewpanel'
style=
"height:100%;"
v-if =
'isActivied'
>
<contact-
detail-info-edit-view9
<contact-
info-detail
class=
'viewcontainer2'
:viewdata=
"viewdata"
:viewparam=
"viewparam"
@
viewload=
"viewDatasChange($event)"
:viewDefaultUsage=
"false"
>
</contact-
detail-info-edit-view9
>
</contact-
info-detail
>
</div>
</
template
>
<
script
lang=
'tsx'
>
...
...
app_BusinessCentral/src/widgets/contact/view-con-abs-portlet/view-con-abs-portlet-base.vue
0 → 100644
浏览文件 @
1ac621ba
<
template
>
<div
class=
'portlet view-con-abs '
:style=
"
{'height': isAdaptiveSize ? 'calc(100% - 16px)' : (height > 0 ? height+'px' :'300px'),}">
<p
class=
'portlet-title'
>
<span>
联系人信息
</span>
</p>
<div
class=
"portlet-with-title"
>
<contact-info-abstract
:viewdata=
"JSON.stringify(context)"
:viewDefaultUsage=
"false"
></contact-info-abstract>
</div>
</div>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
{
CreateElement
}
from
'vue'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
ControlInterface
}
from
'@/interface/control'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
ContactService
from
'@/service/contact/contact-service'
;
import
View_ConAbsService
from
'./view-con-abs-portlet-service'
;
import
{
Environment
}
from
'@/environments/environment'
;
@
Component
({
components
:
{
}
})
export
default
class
ContactView_ConAbsBase
extends
Vue
implements
ControlInterface
{
/**
* 名称
*
* @type {string}
* @memberof View_ConAbs
*/
@
Prop
()
public
name
?:
string
;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_ConAbs
*/
@
Prop
()
public
viewState
!
:
Subject
<
ViewState
>
;
/**
* 应用上下文
*
* @type {*}
* @memberof View_ConAbs
*/
@
Prop
()
public
context
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof View_ConAbs
*/
@
Prop
()
public
viewparams
:
any
;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_ConAbs
*/
public
viewStateEvent
:
Subscription
|
undefined
;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_ConAbs
*/
public
getControlType
():
string
{
return
'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_ConAbs
*/
public
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 建构部件服务对象
*
* @type {View_ConAbsService}
* @memberof View_ConAbs
*/
public
service
:
View_ConAbsService
=
new
View_ConAbsService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {ContactService}
* @memberof View_ConAbs
*/
public
appEntityService
:
ContactService
=
new
ContactService
({
$store
:
this
.
$store
});
/**
* 关闭视图
*
* @param {any} args
* @memberof View_ConAbs
*/
public
closeView
(
args
:
any
):
void
{
let
_this
:
any
=
this
;
_this
.
$emit
(
'closeview'
,
[
args
]);
}
/**
* 计数器刷新
*
* @memberof View_ConAbs
*/
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 {number}
* @memberof View_ConAbs
*/
@
Prop
()
public
height
?:
number
;
/**
* 宽度
*
* @type {number}
* @memberof View_ConAbs
*/
@
Prop
()
public
width
?:
number
;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_ConAbsBase
*/
@
Prop
({
default
:
false
})
public
isAdaptiveSize
!
:
boolean
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_ConAbsBase
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_ConAbsBase
*/
public
getData
():
any
{
return
{};
}
/**
* vue 生命周期
*
* @memberof View_ConAbsBase
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof View_ConAbsBase
*/
public
afterCreated
(){
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
const
refs
:
any
=
this
.
$refs
;
Object
.
keys
(
refs
).
forEach
((
_name
:
string
)
=>
{
this
.
viewState
.
next
({
tag
:
_name
,
action
:
action
,
data
:
data
});
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_ConAbsBase
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_ConAbsBase
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
}
</
script
>
<
style
lang=
'less'
>
@import './view-con-abs-portlet.less';
</
style
>
app_BusinessCentral/src/widgets/contact/view-con-abs-portlet/view-con-abs-portlet-model.ts
0 → 100644
浏览文件 @
1ac621ba
/**
* View_ConAbs 部件模型
*
* @export
* @class View_ConAbsModel
*/
export
default
class
View_ConAbsModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_ConAbsModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'address1_freighttermscode'
,
},
{
name
:
'address3_city'
,
},
{
name
:
'department'
,
},
{
name
:
'parentcustomeridtype'
,
},
{
name
:
'address1_stateorprovince'
,
},
{
name
:
'aging90_base'
,
},
{
name
:
'accountidyominame'
,
},
{
name
:
'donotbulkpostalmail'
,
},
{
name
:
'managername'
,
},
{
name
:
'donotpostalmail'
,
},
{
name
:
'spousesname'
,
},
{
name
:
'familystatuscode'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'address3_composite'
,
},
{
name
:
'address3_shippingmethodcode'
,
},
{
name
:
'lastname'
,
},
{
name
:
'lastonholdtime'
,
},
{
name
:
'educationcode'
,
},
{
name
:
'address2_line1'
,
},
{
name
:
'birthdate'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'haschildrencode'
,
},
{
name
:
'company'
,
},
{
name
:
'address2_fax'
,
},
{
name
:
'assistantphone'
,
},
{
name
:
'callback'
,
},
{
name
:
'paymenttermscode'
,
},
{
name
:
'address2_telephone1'
,
},
{
name
:
'marketingonly'
,
},
{
name
:
'address2_utcoffset'
,
},
{
name
:
'address2_shippingmethodcode'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'employeeid'
,
},
{
name
:
'creditlimit_base'
,
},
{
name
:
'followemail'
,
},
{
name
:
'address3_postalcode'
,
},
{
name
:
'merged'
,
},
{
name
:
'jobtitle'
,
},
{
name
:
'address1_telephone1'
,
},
{
name
:
'customersizecode'
,
},
{
name
:
'address3_addresstypecode'
,
},
{
name
:
'pager'
,
},
{
name
:
'assistantname'
,
},
{
name
:
'address1_composite'
,
},
{
name
:
'address1_line1'
,
},
{
name
:
'yomimiddlename'
,
},
{
name
:
'address1_telephone3'
,
},
{
name
:
'telephone2'
,
},
{
name
:
'address2_addressid'
,
},
{
name
:
'parentcontactidyominame'
,
},
{
name
:
'leadsourcecode'
,
},
{
name
:
'statecode'
,
},
{
name
:
'address2_freighttermscode'
,
},
{
name
:
'emailaddress1'
,
},
{
name
:
'entityimage_timestamp'
,
},
{
name
:
'address3_line1'
,
},
{
name
:
'salutation'
,
},
{
name
:
'address1_line3'
,
},
{
name
:
'address3_primarycontactname'
,
},
{
name
:
'ibizprivate'
,
},
{
name
:
'donotfax'
,
},
{
name
:
'createdate'
,
},
{
name
:
'preferredsystemuseridyominame'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'address3_stateorprovince'
,
},
{
name
:
'address3_line3'
,
},
{
name
:
'creditlimit'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'parentcustomerid'
,
},
{
name
:
'childrensnames'
,
},
{
name
:
'address1_addresstypecode'
,
},
{
name
:
'accountrolecode'
,
},
{
name
:
'donotphone'
,
},
{
name
:
'managerphone'
,
},
{
name
:
'creditonhold'
,
},
{
name
:
'updateman'
,
},
{
name
:
'address2_postalcode'
,
},
{
name
:
'address1_line2'
,
},
{
name
:
'nickname'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'yomifullname'
,
},
{
name
:
'entityimage'
,
},
{
name
:
'shippingmethodcode'
,
},
{
name
:
'customertypecode'
,
},
{
name
:
'address2_county'
,
},
{
name
:
'aging90'
,
},
{
name
:
'address2_stateorprovince'
,
},
{
name
:
'address3_utcoffset'
,
},
{
name
:
'fullname'
,
},
{
name
:
'participatesinworkflow'
,
},
{
name
:
'websiteurl'
,
},
{
name
:
'description'
,
},
{
name
:
'address3_telephone1'
,
},
{
name
:
'address2_upszone'
,
},
{
name
:
'address3_county'
,
},
{
name
:
'entityimage_url'
,
},
{
name
:
'address3_upszone'
,
},
{
name
:
'address1_name'
,
},
{
name
:
'mastercontactidyominame'
,
},
{
name
:
'autocreate'
,
},
{
name
:
'backofficecustomer'
,
},
{
name
:
'address2_longitude'
,
},
{
name
:
'address1_fax'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'address1_city'
,
},
{
name
:
'entityimageid'
,
},
{
name
:
'address1_telephone2'
,
},
{
name
:
'address2_composite'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'gendercode'
,
},
{
name
:
'annualincome'
,
},
{
name
:
'subscriptionid'
,
},
{
name
:
'territorycode'
,
},
{
name
:
'firstname'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'address3_country'
,
},
{
name
:
'yomilastname'
,
},
{
name
:
'donotbulkemail'
,
},
{
name
:
'address3_telephone2'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'externaluseridentifier'
,
},
{
name
:
'teamsfollowed'
,
},
{
name
:
'donotemail'
,
},
{
name
:
'anniversary'
,
},
{
name
:
'preferredappointmentdaycode'
,
},
{
name
:
'middlename'
,
},
{
name
:
'emailaddress3'
,
},
{
name
:
'address2_telephone2'
,
},
{
name
:
'fax'
,
},
{
name
:
'mobilephone'
,
},
{
name
:
'home2'
,
},
{
name
:
'createman'
,
},
{
name
:
'onholdtime'
,
},
{
name
:
'preferredappointmenttimecode'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'governmentid'
,
},
{
name
:
'address3_telephone3'
,
},
{
name
:
'business2'
,
},
{
name
:
'preferredsystemuserid'
,
},
{
name
:
'address1_upszone'
,
},
{
name
:
'aging60'
,
},
{
name
:
'yomifirstname'
,
},
{
name
:
'address3_postofficebox'
,
},
{
name
:
'address2_city'
,
},
{
name
:
'processid'
,
},
{
name
:
'annualincome_base'
,
},
{
name
:
'address3_addressid'
,
},
{
name
:
'parentcustomeridyominame'
,
},
{
name
:
'contact'
,
prop
:
'contactid'
,
},
{
name
:
'aging60_base'
,
},
{
name
:
'address3_latitude'
,
},
{
name
:
'telephone3'
,
},
{
name
:
'address1_primarycontactname'
,
},
{
name
:
'address3_fax'
,
},
{
name
:
'preferredcontactmethodcode'
,
},
{
name
:
'address1_utcoffset'
,
},
{
name
:
'donotsendmm'
,
},
{
name
:
'address2_telephone3'
,
},
{
name
:
'address2_country'
,
},
{
name
:
'aging30'
,
},
{
name
:
'address2_postofficebox'
,
},
{
name
:
'telephone1'
,
},
{
name
:
'address3_longitude'
,
},
{
name
:
'lastusedincampaign'
,
},
{
name
:
'ftpsiteurl'
,
},
{
name
:
'aging30_base'
,
},
{
name
:
'address2_name'
,
},
{
name
:
'suffix'
,
},
{
name
:
'address1_county'
,
},
{
name
:
'address2_addresstypecode'
,
},
{
name
:
'address1_longitude'
,
},
{
name
:
'address3_line2'
,
},
{
name
:
'address1_addressid'
,
},
{
name
:
'address2_line3'
,
},
{
name
:
'address2_latitude'
,
},
{
name
:
'address2_line2'
,
},
{
name
:
'address1_shippingmethodcode'
,
},
{
name
:
'address3_freighttermscode'
,
},
{
name
:
'address1_postofficebox'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'address3_name'
,
},
{
name
:
'address1_latitude'
,
},
{
name
:
'numberofchildren'
,
},
{
name
:
'address2_primarycontactname'
,
},
{
name
:
'address1_postalcode'
,
},
{
name
:
'stageid'
,
},
{
name
:
'address1_country'
,
},
{
name
:
'emailaddress2'
,
},
{
name
:
'slaname'
,
},
{
name
:
'defaultpricelevelid'
,
},
{
name
:
'preferredequipmentid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'slaid'
,
},
{
name
:
'originatingleadid'
,
},
{
name
:
'preferredserviceid'
,
},
{
name
:
'defaultpricelevelname'
,
},
{
name
:
'originatingleadname'
,
},
{
name
:
'transactioncurrencyname'
,
},
{
name
:
'preferredservicename'
,
},
{
name
:
'preferredequipmentname'
,
},
]
}
}
app_BusinessCentral/src/widgets/contact/view-con-abs-portlet/view-con-abs-portlet-service.ts
0 → 100644
浏览文件 @
1ac621ba
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* View_ConAbs 部件服务对象
*
* @export
* @class View_ConAbsService
*/
export
default
class
View_ConAbsService
extends
ControlService
{
}
app_BusinessCentral/src/widgets/contact/view-con-abs-portlet/view-con-abs-portlet.less
0 → 100644
浏览文件 @
1ac621ba
.portlet {
--portlet: 0px;
}
// this is less
app_BusinessCentral/src/widgets/contact/view-con-abs-portlet/view-con-abs-portlet.vue
0 → 100644
浏览文件 @
1ac621ba
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
ContactView_ConAbsBase
from
'./view-con-abs-portlet-base.vue'
;
@
Component
({
components
:
{
}
})
export
default
class
ContactView_ConAbs
extends
ContactView_ConAbsBase
{
}
</
script
>
businesscentral-core/src/main/resources/liquibase/h2_table.xml
浏览文件 @
1ac621ba
...
...
@@ -3152,7 +3152,7 @@
<!--输出实体[CONTACT]数据结构 -->
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"tab-contact-
78
-42"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"tab-contact-
82
-42"
>
<createTable
tableName=
"CONTACT"
>
<column
name=
"ADDRESS1_FREIGHTTERMSCODE"
remarks=
""
type=
"VARCHAR(30)"
>
</column>
...
...
@@ -7334,7 +7334,7 @@
<!--输出实体[CAMPAIGN]数据结构 -->
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"tab-campaign-7
6
-75"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"tab-campaign-7
8
-75"
>
<createTable
tableName=
"CAMPAIGN"
>
<column
name=
"EXPECTEDRESPONSE"
remarks=
""
type=
"INT"
>
</column>
...
...
@@ -10975,22 +10975,22 @@
<addForeignKeyConstraint
baseColumnNames=
"TRANSACTIONCURRENCYID"
baseTableName=
"MONTHLYFISCALCALENDAR"
constraintName=
"DER1N_MONTHLYFISCALCALENDAR__T"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"TRANSACTIONCURRENCYID"
referencedTableName=
"TRANSACTIONCURRENCY"
validate=
"true"
/>
</changeSet>
<!--输出实体[CONTACT]外键关系 -->
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-contact-
78
-206"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-contact-
82
-206"
>
<addForeignKeyConstraint
baseColumnNames=
"PREFERREDEQUIPMENTID"
baseTableName=
"CONTACT"
constraintName=
"DER1N_CONTACT__EQUIPMENT__PREF"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"EQUIPMENTID"
referencedTableName=
"EQUIPMENT"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-contact-
78
-207"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-contact-
82
-207"
>
<addForeignKeyConstraint
baseColumnNames=
"ORIGINATINGLEADID"
baseTableName=
"CONTACT"
constraintName=
"DER1N_CONTACT__LEAD__ORIGINATI"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"LEADID"
referencedTableName=
"LEAD"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-contact-
78
-208"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-contact-
82
-208"
>
<addForeignKeyConstraint
baseColumnNames=
"DEFAULTPRICELEVELID"
baseTableName=
"CONTACT"
constraintName=
"DER1N_CONTACT__PRICELEVEL__DEF"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"PRICELEVELID"
referencedTableName=
"PRICELEVEL"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-contact-
78
-209"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-contact-
82
-209"
>
<addForeignKeyConstraint
baseColumnNames=
"PREFERREDSERVICEID"
baseTableName=
"CONTACT"
constraintName=
"DER1N_CONTACT__SERVICE__PREFER"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"SERVICEID"
referencedTableName=
"SERVICE"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-contact-
78
-210"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-contact-
82
-210"
>
<addForeignKeyConstraint
baseColumnNames=
"SLAID"
baseTableName=
"CONTACT"
constraintName=
"DER1N_CONTACT__SLA__SLAID"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"SLAID"
referencedTableName=
"SLA"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-contact-
78
-211"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-contact-
82
-211"
>
<addForeignKeyConstraint
baseColumnNames=
"TRANSACTIONCURRENCYID"
baseTableName=
"CONTACT"
constraintName=
"DER1N_CONTACT__TRANSACTIONCURR"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"TRANSACTIONCURRENCYID"
referencedTableName=
"TRANSACTIONCURRENCY"
validate=
"true"
/>
</changeSet>
<!--输出实体[TEAM]外键关系 -->
...
...
@@ -11281,10 +11281,10 @@
<addForeignKeyConstraint
baseColumnNames=
"BASECURRENCYID"
baseTableName=
"ORGANIZATION"
constraintName=
"DER1N_ORGANIZATION__TRANSACTIO"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"TRANSACTIONCURRENCYID"
referencedTableName=
"TRANSACTIONCURRENCY"
validate=
"true"
/>
</changeSet>
<!--输出实体[CAMPAIGN]外键关系 -->
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-campaign-7
6
-311"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-campaign-7
8
-311"
>
<addForeignKeyConstraint
baseColumnNames=
"PRICELISTID"
baseTableName=
"CAMPAIGN"
constraintName=
"DER1N_CAMPAIGN__PRICELEVEL__PR"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"PRICELEVELID"
referencedTableName=
"PRICELEVEL"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-campaign-7
6
-312"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-campaign-7
8
-312"
>
<addForeignKeyConstraint
baseColumnNames=
"TRANSACTIONCURRENCYID"
baseTableName=
"CAMPAIGN"
constraintName=
"DER1N_CAMPAIGN__TRANSACTIONCUR"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"TRANSACTIONCURRENCYID"
referencedTableName=
"TRANSACTIONCURRENCY"
validate=
"true"
/>
</changeSet>
<!--输出实体[BOOKABLERESCHARACTERISTIC]外键关系 -->
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录