Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
iBiz企业中心
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz企业套件
iBiz企业中心
提交
e0f46b3f
提交
e0f46b3f
编写于
6月 22, 2020
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
lab_gzf 发布系统代码
上级
4c6a28ed
变更
17
展开全部
显示空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
3302 行增加
和
107 行删除
+3302
-107
opportunity_en_US.ts
...c/locale/lanres/entities/opportunity/opportunity_en_US.ts
+39
-48
opportunity_zh_CN.ts
...c/locale/lanres/entities/opportunity/opportunity_zh_CN.ts
+39
-48
opportunity-edit-view-base.vue
...ales/opportunity-edit-view/opportunity-edit-view-base.vue
+321
-0
opportunity-edit-view.less
...es/sales/opportunity-edit-view/opportunity-edit-view.less
+8
-0
opportunity-edit-view.vue
...ges/sales/opportunity-edit-view/opportunity-edit-view.vue
+19
-0
opportunity-info-base.vue
...rc/pages/sales/opportunity-info/opportunity-info-base.vue
+34
-0
opportunity-summary-base.vue
...es/sales/opportunity-summary/opportunity-summary-base.vue
+0
-3
page-register.ts
app_CRM/src/pages/ungroup/central/page-register.ts
+1
-0
router.ts
app_CRM/src/pages/ungroup/central/router.ts
+87
-0
state.ts
app_CRM/src/store/modules/view-action/state.ts
+15
-0
opportunity-ui-service-base.ts
.../src/uiservice/opportunity/opportunity-ui-service-base.ts
+53
-0
main-form-base.vue
app_CRM/src/widgets/opportunity/main-form/main-form-base.vue
+2090
-0
main-form-model.ts
app_CRM/src/widgets/opportunity/main-form/main-form-model.ts
+151
-0
main-form-service.ts
...RM/src/widgets/opportunity/main-form/main-form-service.ts
+419
-0
main-form.less
app_CRM/src/widgets/opportunity/main-form/main-form.less
+4
-0
main-form.vue
app_CRM/src/widgets/opportunity/main-form/main-form.vue
+14
-0
h2_table.xml
...esscentral-core/src/main/resources/liquibase/h2_table.xml
+8
-8
未找到文件。
app_CRM/src/locale/lanres/entities/opportunity/opportunity_en_US.ts
浏览文件 @
e0f46b3f
...
...
@@ -210,9 +210,11 @@ export default {
uiactions
:
{
},
},
abstractinfo
_form
:
{
main
_form
:
{
details
:
{
group1
:
"商机基本信息"
,
group1
:
"基本信息"
,
druipart1
:
""
,
grouppanel1
:
"产品明细信息"
,
formpage1
:
"基本信息"
,
srfupdatedate
:
"更新时间"
,
srforikey
:
""
,
...
...
@@ -233,20 +235,20 @@ export default {
currentsituation
:
"当前状况"
,
customerneed
:
"客户需求"
,
proposedsolution
:
"已拟定解决方案"
,
pricelevelname
:
"价目表"
,
parentcontactid
:
"联系人"
,
parentaccountid
:
"帐户"
,
transactioncurrencyid
:
"货币"
,
opportunityid
:
"商机"
,
pricelevelid
:
"价目表"
,
},
uiactions
:
{
},
},
main
_form
:
{
abstractinfo
_form
:
{
details
:
{
group1
:
"
opportunity
基本信息"
,
group1
:
"
商机
基本信息"
,
formpage1
:
"基本信息"
,
group2
:
"操作信息"
,
formpage2
:
"其它"
,
srfupdatedate
:
"更新时间"
,
srforikey
:
""
,
srfkey
:
"商机"
,
...
...
@@ -256,10 +258,19 @@ export default {
srfdeid
:
""
,
srfsourcekey
:
""
,
opportunityname
:
"商机名称"
,
createman
:
"建立人"
,
createdate
:
"建立时间"
,
updateman
:
"更新人"
,
updatedate
:
"更新时间"
,
parentcontactname
:
"联系人"
,
parentaccountname
:
"帐户"
,
purchasetimeframe
:
"购买时间范围"
,
transactioncurrencyname
:
"货币"
,
budgetamount
:
"预算金额"
,
purchaseprocess
:
"采购程序"
,
description
:
"说明"
,
currentsituation
:
"当前状况"
,
customerneed
:
"客户需求"
,
proposedsolution
:
"已拟定解决方案"
,
parentcontactid
:
"联系人"
,
parentaccountid
:
"帐户"
,
transactioncurrencyid
:
"货币"
,
opportunityid
:
"商机"
,
},
uiactions
:
{
...
...
@@ -314,7 +325,25 @@ export default {
tip
:
"Filter"
,
},
},
editviewtoolbar_toolbar
:
{
tbitem1
:
{
caption
:
"Save And Close"
,
tip
:
"Save And Close Window"
,
},
tbitem2
:
{
caption
:
"关闭"
,
tip
:
"关闭"
,
},
},
infotoolbar_toolbar
:
{
tbitem1_openmaineditview
:
{
caption
:
"编辑"
,
tip
:
"编辑"
,
},
tbitem2
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem3
:
{
caption
:
"Save"
,
tip
:
"Save"
,
...
...
@@ -398,42 +427,4 @@ export default {
tip
:
"Filter"
,
},
},
editviewtoolbar_toolbar
:
{
tbitem3
:
{
caption
:
"Save"
,
tip
:
"Save"
,
},
tbitem4
:
{
caption
:
"Save And New"
,
tip
:
"Save And New"
,
},
tbitem5
:
{
caption
:
"Save And Close"
,
tip
:
"Save And Close Window"
,
},
tbitem6
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem7
:
{
caption
:
"Remove And Close"
,
tip
:
"Remove And Close Window"
,
},
tbitem8
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem12
:
{
caption
:
"New"
,
tip
:
"New"
,
},
tbitem13
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem14
:
{
caption
:
"Copy"
,
tip
:
"Copy {0}"
,
},
},
};
\ No newline at end of file
app_CRM/src/locale/lanres/entities/opportunity/opportunity_zh_CN.ts
浏览文件 @
e0f46b3f
...
...
@@ -209,9 +209,11 @@ export default {
uiactions
:
{
},
},
abstractinfo
_form
:
{
main
_form
:
{
details
:
{
group1
:
'商机基本信息'
,
group1
:
'基本信息'
,
druipart1
:
''
,
grouppanel1
:
'产品明细信息'
,
formpage1
:
'基本信息'
,
srfupdatedate
:
'更新时间'
,
srforikey
:
''
,
...
...
@@ -232,20 +234,20 @@ export default {
currentsituation
:
'当前状况'
,
customerneed
:
'客户需求'
,
proposedsolution
:
'已拟定解决方案'
,
pricelevelname
:
'价目表'
,
parentcontactid
:
'联系人'
,
parentaccountid
:
'帐户'
,
transactioncurrencyid
:
'货币'
,
opportunityid
:
'商机'
,
pricelevelid
:
'价目表'
,
},
uiactions
:
{
},
},
main
_form
:
{
abstractinfo
_form
:
{
details
:
{
group1
:
'
opportunity
基本信息'
,
group1
:
'
商机
基本信息'
,
formpage1
:
'基本信息'
,
group2
:
'操作信息'
,
formpage2
:
'其它'
,
srfupdatedate
:
'更新时间'
,
srforikey
:
''
,
srfkey
:
'商机'
,
...
...
@@ -255,10 +257,19 @@ export default {
srfdeid
:
''
,
srfsourcekey
:
''
,
opportunityname
:
'商机名称'
,
createman
:
'建立人'
,
createdate
:
'建立时间'
,
updateman
:
'更新人'
,
updatedate
:
'更新时间'
,
parentcontactname
:
'联系人'
,
parentaccountname
:
'帐户'
,
purchasetimeframe
:
'购买时间范围'
,
transactioncurrencyname
:
'货币'
,
budgetamount
:
'预算金额'
,
purchaseprocess
:
'采购程序'
,
description
:
'说明'
,
currentsituation
:
'当前状况'
,
customerneed
:
'客户需求'
,
proposedsolution
:
'已拟定解决方案'
,
parentcontactid
:
'联系人'
,
parentaccountid
:
'帐户'
,
transactioncurrencyid
:
'货币'
,
opportunityid
:
'商机'
,
},
uiactions
:
{
...
...
@@ -313,7 +324,25 @@ export default {
tip
:
'过滤'
,
},
},
editviewtoolbar_toolbar
:
{
tbitem1
:
{
caption
:
'保存并关闭'
,
tip
:
'保存并关闭'
,
},
tbitem2
:
{
caption
:
'关闭'
,
tip
:
'关闭'
,
},
},
infotoolbar_toolbar
:
{
tbitem1_openmaineditview
:
{
caption
:
'编辑'
,
tip
:
'编辑'
,
},
tbitem2
:
{
caption
:
'-'
,
tip
:
''
,
},
tbitem3
:
{
caption
:
'保存'
,
tip
:
'保存'
,
...
...
@@ -397,42 +426,4 @@ export default {
tip
:
'过滤'
,
},
},
editviewtoolbar_toolbar
:
{
tbitem3
:
{
caption
:
'保存'
,
tip
:
'保存'
,
},
tbitem4
:
{
caption
:
'保存并新建'
,
tip
:
'保存并新建'
,
},
tbitem5
:
{
caption
:
'保存并关闭'
,
tip
:
'保存并关闭'
,
},
tbitem6
:
{
caption
:
'-'
,
tip
:
''
,
},
tbitem7
:
{
caption
:
'删除并关闭'
,
tip
:
'删除并关闭'
,
},
tbitem8
:
{
caption
:
'-'
,
tip
:
''
,
},
tbitem12
:
{
caption
:
'新建'
,
tip
:
'新建'
,
},
tbitem13
:
{
caption
:
'-'
,
tip
:
''
,
},
tbitem14
:
{
caption
:
'拷贝'
,
tip
:
'拷贝'
,
},
},
};
\ No newline at end of file
app_CRM/src/pages/sales/opportunity-edit-view/opportunity-edit-view-base.vue
0 → 100644
浏览文件 @
e0f46b3f
<
template
>
<studio-view-style2
viewName=
"opportunityeditview"
viewTitle=
"商机编辑视图"
class=
'deeditview opportunity-edit-view'
>
<template
slot=
'title'
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srfTitle
)
}}
</span>
</
template
>
<
template
slot=
"toolbar"
>
<view-toolbar
mode=
"STYLE2"
:model=
"toolBarModels"
@
item-click=
"toolbar_click"
/>
</
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-view-style2>
</template>
<
script
lang=
'tsx'
>
import
{
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
Subject
}
from
'rxjs'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
{
VueLifeCycleProcessing
,
EditViewBase
}
from
'@/studio-core'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
EditViewEngine
from
'@engine/view/edit-view-engine'
;
/**
* 商机编辑视图视图基类
*
* @export
* @class OpportunityEditViewBase
* @extends {EditViewBase}
*/
@
Component
({})
@
VueLifeCycleProcessing
()
export
default
class
OpportunityEditViewBase
extends
EditViewBase
{
/**
* 实体服务对象
*
* @type {OpportunityService}
* @memberof OpportunityEditViewBase
*/
protected
appEntityService
:
OpportunityService
=
new
OpportunityService
;
/**
* 计数器服务对象集合
*
* @protected
* @type {Array<*>}
* @memberof OpportunityEditViewBase
*/
protected
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 自定义视图导航上下文集合
*
* @protected
* @type {*}
* @memberof OpportunityEditViewBase
*/
protected
customViewNavContexts
:
any
=
{
};
/**
* 自定义视图导航参数集合
*
* @protected
* @type {*}
* @memberof OpportunityEditViewBase
*/
protected
customViewParams
:
any
=
{
};
/**
* 视图模型数据
*
* @protected
* @type {*}
* @memberof OpportunityEditViewBase
*/
protected
model
:
any
=
{
srfCaption
:
'entities.opportunity.views.editview.caption'
,
srfTitle
:
'entities.opportunity.views.editview.title'
,
srfSubTitle
:
'entities.opportunity.views.editview.subtitle'
,
dataInfo
:
''
}
/**
* 容器模型
*
* @protected
* @type {*}
* @memberof OpportunityEditViewBase
*/
protected
containerModel
:
any
=
{
view_toolbar
:
{
name
:
'toolbar'
,
type
:
'TOOLBAR'
},
view_form
:
{
name
:
'form'
,
type
:
'FORM'
},
};
/**
* 工具栏模型
*
* @type {*}
* @memberof OpportunityEditView
*/
public
toolBarModels
:
any
=
{
tbitem1
:
{
name
:
'tbitem1'
,
caption
:
'保存并关闭'
,
'isShowCaption'
:
true
,
'isShowIcon'
:
true
,
tooltip
:
'保存并关闭'
,
iconcls
:
'fa fa-power-off'
,
icon
:
''
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'SaveAndExit'
,
target
:
''
},
class
:
''
},
tbitem2
:
{
name
:
'tbitem2'
,
caption
:
'关闭'
,
'isShowCaption'
:
true
,
'isShowIcon'
:
true
,
tooltip
:
'关闭'
,
iconcls
:
'fa fa-sign-out'
,
icon
:
''
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'Exit'
,
target
:
''
},
class
:
''
},
};
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof OpportunityEditViewBase
*/
public
engine
:
EditViewEngine
=
new
EditViewEngine
();
/**
* 引擎初始化
*
* @public
* @memberof OpportunityEditViewBase
*/
public
engineInit
():
void
{
this
.
engine
.
init
({
view
:
this
,
form
:
this
.
$refs
.
form
,
p2k
:
'0'
,
keyPSDEField
:
'opportunity'
,
majorPSDEField
:
'opportunityname'
,
isLoadDefault
:
true
,
});
}
/**
* toolbar 部件 click 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityEditViewBase
*/
public
toolbar_click
(
$event
:
any
,
$event2
?:
any
):
void
{
if
(
Object
.
is
(
$event
.
tag
,
'tbitem1'
))
{
this
.
toolbar_tbitem1_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem2'
))
{
this
.
toolbar_tbitem2_click
(
null
,
''
,
$event2
);
}
}
/**
* form 部件 save 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityEditViewBase
*/
public
form_save
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'save'
,
$event
);
}
/**
* form 部件 remove 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityEditViewBase
*/
public
form_remove
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'remove'
,
$event
);
}
/**
* form 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityEditViewBase
*/
public
form_load
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'load'
,
$event
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_tbitem1_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
.
SaveAndExit
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Opportunity"
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_tbitem2_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
.
Exit
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Opportunity"
);
}
/**
* 保存并关闭
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof OpportunityEditViewBase
*/
public
SaveAndExit
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
const
_this
:
any
=
this
;
if
(
xData
&&
xData
.
saveAndExit
instanceof
Function
)
{
xData
.
saveAndExit
().
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
return
;
}
if
(
window
.
parent
){
window
.
parent
.
postMessage
([{
...
response
.
data
}],
'*'
);
}
});
}
else
if
(
_this
.
saveAndExit
&&
_this
.
saveAndExit
instanceof
Function
)
{
_this
.
saveAndExit
().
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
return
;
}
if
(
window
.
parent
){
window
.
parent
.
postMessage
([{
...
response
.
data
}],
'*'
);
}
});
}
}
/**
* 关闭
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof OpportunityEditViewBase
*/
public
Exit
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
this
.
closeView
(
args
);
if
(
window
.
parent
){
window
.
parent
.
postMessage
([{
...
args
}],
'*'
);
}
}
}
</
script
>
<
style
lang=
'less'
>
@import './opportunity-edit-view.less';
</
style
>
\ No newline at end of file
app_CRM/src/pages/sales/opportunity-edit-view/opportunity-edit-view.less
0 → 100644
浏览文件 @
e0f46b3f
// 避免空文件,后台不让空文件过
.opportunity-edit-view {
--opportunity-edit-view: 0;
}
// 视图样式
// this is less
app_CRM/src/pages/sales/opportunity-edit-view/opportunity-edit-view.vue
0 → 100644
浏览文件 @
e0f46b3f
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
OpportunityEditViewBase
from
'./opportunity-edit-view-base.vue'
;
import
view_form
from
'@widgets/opportunity/main-form/main-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
OpportunityEditView
extends
OpportunityEditViewBase
{
}
</
script
>
\ No newline at end of file
app_CRM/src/pages/sales/opportunity-info/opportunity-info-base.vue
浏览文件 @
e0f46b3f
...
...
@@ -109,6 +109,9 @@ export default class OpportunityInfoBase extends TabExpViewBase {
* @memberof OpportunityInfo
*/
public
toolBarModels
:
any
=
{
tbitem1_openmaineditview
:
{
name
:
'tbitem1_openmaineditview'
,
caption
:
'编辑'
,
'isShowCaption'
:
true
,
'isShowIcon'
:
true
,
tooltip
:
'编辑'
,
iconcls
:
'fa fa-edit'
,
icon
:
''
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'OpenMainEditView'
,
target
:
'SINGLEKEY'
},
class
:
''
},
tbitem2
:
{
name
:
'tbitem2'
,
type
:
'SEPERATOR'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
}
},
tbitem3
:
{
name
:
'tbitem3'
,
caption
:
'保存'
,
'isShowCaption'
:
true
,
'isShowIcon'
:
true
,
tooltip
:
'保存'
,
iconcls
:
'fa fa-save'
,
icon
:
''
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'Save'
,
target
:
''
},
class
:
''
},
tbitem5
:
{
name
:
'tbitem5'
,
caption
:
'保存并关闭'
,
'isShowCaption'
:
true
,
'isShowIcon'
:
true
,
tooltip
:
'保存并关闭'
,
iconcls
:
'fa fa-power-off'
,
icon
:
''
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'SaveAndExit'
,
target
:
''
},
class
:
''
},
...
...
@@ -162,6 +165,9 @@ export default class OpportunityInfoBase extends TabExpViewBase {
* @memberof OpportunityInfoBase
*/
public
toolbar_click
(
$event
:
any
,
$event2
?:
any
):
void
{
if
(
Object
.
is
(
$event
.
tag
,
'tbitem1_openmaineditview'
))
{
this
.
toolbar_tbitem1_openmaineditview_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem3'
))
{
this
.
toolbar_tbitem3_click
(
null
,
''
,
$event2
);
}
...
...
@@ -185,6 +191,34 @@ export default class OpportunityInfoBase extends TabExpViewBase {
}
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_tbitem1_openmaineditview_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
=
{};
if
(
_this
.
getDatas
&&
_this
.
getDatas
instanceof
Function
)
{
datas
=
[...
_this
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
const
curUIService
:
OpportunityUIService
=
new
OpportunityUIService
();
curUIService
.
Opportunity_OpenMainEditView
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Opportunity"
);
}
/**
* 逻辑事件
*
...
...
app_CRM/src/pages/sales/opportunity-summary/opportunity-summary-base.vue
浏览文件 @
e0f46b3f
<
template
>
<studio-view-style2
viewName=
"opportunitysummary"
viewTitle=
"商机概览"
class=
'deportalview opportunity-summary'
>
<template
slot=
'title'
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srfTitle
)
}}
</span>
</
template
>
<view
_dashboard
:viewState=
"viewState"
:viewparams=
"viewparams"
...
...
app_CRM/src/pages/ungroup/central/page-register.ts
浏览文件 @
e0f46b3f
...
...
@@ -52,6 +52,7 @@ export const PageComponents = {
Vue
.
component
(
'contact-info-address'
,
()
=>
import
(
'@pages/base/contact-info-address/contact-info-address.vue'
));
Vue
.
component
(
'lead-quick-create'
,
()
=>
import
(
'@pages/sales/lead-quick-create/lead-quick-create.vue'
));
Vue
.
component
(
'price-level-pickup-view'
,
()
=>
import
(
'@pages/product/price-level-pickup-view/price-level-pickup-view.vue'
));
Vue
.
component
(
'opportunity-edit-view'
,
()
=>
import
(
'@pages/sales/opportunity-edit-view/opportunity-edit-view.vue'
));
Vue
.
component
(
'lead-info-contact'
,
()
=>
import
(
'@pages/sales/lead-info-contact/lead-info-contact.vue'
));
Vue
.
component
(
'competitor-grid-view'
,
()
=>
import
(
'@pages/sales/competitor-grid-view/competitor-grid-view.vue'
));
Vue
.
component
(
'account-summary'
,
()
=>
import
(
'@pages/base/account-summary/account-summary.vue'
));
...
...
app_CRM/src/pages/ungroup/central/router.ts
浏览文件 @
e0f46b3f
...
...
@@ -1597,6 +1597,51 @@ const router = new Router({
},
component
:
()
=>
import
(
'@pages/product/price-level-pickup-view/price-level-pickup-view.vue'
),
},
{
path
:
'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/editview/:editview?'
,
meta
:
{
caption
:
'entities.opportunity.views.editview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'editview'
,
parameterName
:
'editview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-edit-view/opportunity-edit-view.vue'
),
},
{
path
:
'contacts/:contact?/opportunities/:opportunity?/editview/:editview?'
,
meta
:
{
caption
:
'entities.opportunity.views.editview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'editview'
,
parameterName
:
'editview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-edit-view/opportunity-edit-view.vue'
),
},
{
path
:
'opportunities/:opportunity?/editview/:editview?'
,
meta
:
{
caption
:
'entities.opportunity.views.editview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'editview'
,
parameterName
:
'editview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-edit-view/opportunity-edit-view.vue'
),
},
{
path
:
'accounts/:account?/contacts/:contact?/leads/:lead?/info_contact/:info_contact?'
,
meta
:
{
...
...
@@ -6188,6 +6233,48 @@ const router = new Router({
},
component
:
()
=>
import
(
'@pages/marketing/campaign-response-quick-create/campaign-response-quick-create.vue'
),
},
{
path
:
'/accounts/:account?/contacts/:contact?/opportunities/:opportunity?/editview/:editview?'
,
meta
:
{
caption
:
'entities.opportunity.views.editview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'editview'
,
parameterName
:
'editview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-edit-view/opportunity-edit-view.vue'
),
},
{
path
:
'/contacts/:contact?/opportunities/:opportunity?/editview/:editview?'
,
meta
:
{
caption
:
'entities.opportunity.views.editview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'editview'
,
parameterName
:
'editview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-edit-view/opportunity-edit-view.vue'
),
},
{
path
:
'/opportunities/:opportunity?/editview/:editview?'
,
meta
:
{
caption
:
'entities.opportunity.views.editview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'editview'
,
parameterName
:
'editview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-edit-view/opportunity-edit-view.vue'
),
},
{
path
:
'/accounts/:account?/contacts/:contact?/leads/:lead?/pickupgridview/:pickupgridview?'
,
meta
:
{
...
...
app_CRM/src/store/modules/view-action/state.ts
浏览文件 @
e0f46b3f
...
...
@@ -768,6 +768,20 @@ export const viewstate: any = {
refviews
:
[
],
},
{
viewtag
:
'7bf35293fd1d9db7816755a74c4d575e'
,
viewmodule
:
'Sales'
,
viewname
:
'OpportunityEditView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'8b806fb12589b2fc17d1bb90f4b5422e'
,
'b6b6215e439e78cdf6959b6f45bd7927'
,
'da3f8c1f20f440f3df54d6c13a8de586'
,
'29bfcd628ab25e297248ff0524d12908'
,
'6c67094479c2f8af7ea1575eee584056'
,
],
},
{
viewtag
:
'7d00f63c306adf3537efeabb3326095d'
,
viewmodule
:
'Sales'
,
...
...
@@ -858,6 +872,7 @@ export const viewstate: any = {
refviews
:
[
'9693fc63348c320c4b0dff17cb9a9f25'
,
'177c00d1674621e8933efe6db68bce0e'
,
'7bf35293fd1d9db7816755a74c4d575e'
,
'78862ad65295f145e7520291f1183604'
,
],
},
...
...
app_CRM/src/uiservice/opportunity/opportunity-ui-service-base.ts
浏览文件 @
e0f46b3f
...
...
@@ -294,6 +294,59 @@ export default class OpportunityUIServiceBase extends UIService {
backend
();
}
/**
* 编辑
*
* @param {any[]} args 当前数据
* @param {any} context 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @param {*} [srfParentDeName] 父实体名称
* @returns {Promise<any>}
*/
public
async
Opportunity_OpenMainEditView
(
args
:
any
[],
context
:
any
=
{}
,
params
:
any
=
{},
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
let
data
:
any
=
{};
let
parentContext
:
any
=
{};
let
parentViewParam
:
any
=
{};
const
_this
:
any
=
actionContext
;
const
_args
:
any
[]
=
Util
.
deepCopy
(
args
);
const
actionTarget
:
string
|
null
=
'SINGLEKEY'
;
Object
.
assign
(
context
,
{
opportunity
:
'%opportunity%'
});
Object
.
assign
(
params
,
{
opportunityid
:
'%opportunity%'
});
Object
.
assign
(
params
,
{
opportunityname
:
'%opportunityname%'
});
if
(
_this
.
context
){
parentContext
=
_this
.
context
;
}
if
(
_this
.
viewparams
){
parentViewParam
=
_this
.
viewparams
;
}
context
=
UIActionTool
.
handleContextParam
(
actionTarget
,
_args
,
parentContext
,
parentViewParam
,
context
);
data
=
UIActionTool
.
handleActionParam
(
actionTarget
,
_args
,
parentContext
,
parentViewParam
,
params
);
context
=
Object
.
assign
({},
actionContext
.
context
,
context
);
let
parentObj
:
any
=
{
srfparentdename
:
srfParentDeName
?
srfParentDeName
:
null
,
srfparentkey
:
srfParentDeName
?
context
[
srfParentDeName
.
toLowerCase
()]:
null
};
Object
.
assign
(
data
,
parentObj
);
Object
.
assign
(
context
,
parentObj
);
let
deResParameters
:
any
[]
=
[];
if
(
context
.
contact
&&
true
){
deResParameters
=
[
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
]
}
const
parameters
:
any
[]
=
[
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'editview'
,
parameterName
:
'editview'
},
];
const
openIndexViewTab
=
(
data
:
any
)
=>
{
const
routePath
=
actionContext
.
$viewTool
.
buildUpRoutePath
(
actionContext
.
$route
,
context
,
deResParameters
,
parameters
,
_args
,
data
);
actionContext
.
$router
.
push
(
routePath
);
return
null
;
}
openIndexViewTab
(
data
);
}
/**
* 获取指定数据的重定向页面
...
...
app_CRM/src/widgets/opportunity/main-form/main-form-base.vue
0 → 100644
浏览文件 @
e0f46b3f
此差异已折叠。
点击以展开。
app_CRM/src/widgets/opportunity/main-form/main-form-model.ts
0 → 100644
浏览文件 @
e0f46b3f
/**
* Main 部件模型
*
* @export
* @class MainModel
*/
export
default
class
MainModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof MainModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'srfwfmemo'
,
prop
:
'srfwfmemo'
,
dataType
:
'TEXT'
,
},
// 前端新增修改标识,新增为"0",修改为"1"或未设值
{
name
:
'srffrontuf'
,
prop
:
'srffrontuf'
,
dataType
:
'TEXT'
,
},
{
name
:
'srfupdatedate'
,
prop
:
'updatedate'
,
dataType
:
'DATETIME'
,
},
{
name
:
'srforikey'
,
},
{
name
:
'srfkey'
,
prop
:
'opportunityid'
,
dataType
:
'GUID'
,
},
{
name
:
'srfmajortext'
,
prop
:
'opportunityname'
,
dataType
:
'TEXT'
,
},
{
name
:
'srftempmode'
,
},
{
name
:
'srfuf'
,
},
{
name
:
'srfdeid'
,
},
{
name
:
'srfsourcekey'
,
},
{
name
:
'opportunityname'
,
prop
:
'opportunityname'
,
dataType
:
'TEXT'
,
},
{
name
:
'parentcontactname'
,
prop
:
'parentcontactname'
,
dataType
:
'PICKUPTEXT'
,
},
{
name
:
'parentaccountname'
,
prop
:
'parentaccountname'
,
dataType
:
'PICKUPTEXT'
,
},
{
name
:
'purchasetimeframe'
,
prop
:
'purchasetimeframe'
,
dataType
:
'SSCODELIST'
,
},
{
name
:
'transactioncurrencyname'
,
prop
:
'transactioncurrencyname'
,
dataType
:
'PICKUPTEXT'
,
},
{
name
:
'budgetamount'
,
prop
:
'budgetamount'
,
dataType
:
'BIGDECIMAL'
,
},
{
name
:
'purchaseprocess'
,
prop
:
'purchaseprocess'
,
dataType
:
'SSCODELIST'
,
},
{
name
:
'description'
,
prop
:
'description'
,
dataType
:
'TEXT'
,
},
{
name
:
'currentsituation'
,
prop
:
'currentsituation'
,
dataType
:
'TEXT'
,
},
{
name
:
'customerneed'
,
prop
:
'customerneed'
,
dataType
:
'TEXT'
,
},
{
name
:
'proposedsolution'
,
prop
:
'proposedsolution'
,
dataType
:
'TEXT'
,
},
{
name
:
'pricelevelname'
,
prop
:
'pricelevelname'
,
dataType
:
'PICKUPTEXT'
,
},
{
name
:
'parentcontactid'
,
prop
:
'parentcontactid'
,
dataType
:
'PICKUP'
,
},
{
name
:
'parentaccountid'
,
prop
:
'parentaccountid'
,
dataType
:
'PICKUP'
,
},
{
name
:
'transactioncurrencyid'
,
prop
:
'transactioncurrencyid'
,
dataType
:
'PICKUP'
,
},
{
name
:
'opportunityid'
,
prop
:
'opportunityid'
,
dataType
:
'GUID'
,
},
{
name
:
'pricelevelid'
,
prop
:
'pricelevelid'
,
dataType
:
'PICKUP'
,
},
{
name
:
'opportunity'
,
prop
:
'opportunityid'
,
dataType
:
'FONTKEY'
,
},
]
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/main-form/main-form-service.ts
0 → 100644
浏览文件 @
e0f46b3f
此差异已折叠。
点击以展开。
app_CRM/src/widgets/opportunity/main-form/main-form.less
0 → 100644
浏览文件 @
e0f46b3f
.form {
--form: 0px;
}
// this is less
app_CRM/src/widgets/opportunity/main-form/main-form.vue
0 → 100644
浏览文件 @
e0f46b3f
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
MainBase
from
'./main-form-base.vue'
;
@
Component
({
components
:
{
}
})
export
default
class
Main
extends
MainBase
{
}
</
script
>
\ No newline at end of file
businesscentral-core/src/main/resources/liquibase/h2_table.xml
浏览文件 @
e0f46b3f
...
...
@@ -10402,7 +10402,7 @@
<!--输出实体[OPPORTUNITY]数据结构 -->
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"tab-opportunity-
81
-121"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"tab-opportunity-
98
-121"
>
<createTable
tableName=
"OPPORTUNITY"
>
<column
name=
"DECISIONMAKER"
remarks=
""
type=
"INT"
>
</column>
...
...
@@ -11621,25 +11621,25 @@
<!--输出实体[RELATIONSHIPS]外键关系 -->
<!--输出实体[CONNECTIONROLE]外键关系 -->
<!--输出实体[OPPORTUNITY]外键关系 -->
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-opportunity-
81
-406"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-opportunity-
98
-406"
>
<addForeignKeyConstraint
baseColumnNames=
"PARENTACCOUNTID"
baseTableName=
"OPPORTUNITY"
constraintName=
"DER1N_OPPORTUNITY__ACCOUNT__PA"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"ACCOUNTID"
referencedTableName=
"ACCOUNT"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-opportunity-
81
-407"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-opportunity-
98
-407"
>
<addForeignKeyConstraint
baseColumnNames=
"CAMPAIGNID"
baseTableName=
"OPPORTUNITY"
constraintName=
"DER1N_OPPORTUNITY__CAMPAIGN__C"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"CAMPAIGNID"
referencedTableName=
"CAMPAIGN"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-opportunity-
81
-408"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-opportunity-
98
-408"
>
<addForeignKeyConstraint
baseColumnNames=
"PARENTCONTACTID"
baseTableName=
"OPPORTUNITY"
constraintName=
"DER1N_OPPORTUNITY__CONTACT__PA"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"CONTACTID"
referencedTableName=
"CONTACT"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-opportunity-
81
-409"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-opportunity-
98
-409"
>
<addForeignKeyConstraint
baseColumnNames=
"ORIGINATINGLEADID"
baseTableName=
"OPPORTUNITY"
constraintName=
"DER1N_OPPORTUNITY__LEAD__ORIGI"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"LEADID"
referencedTableName=
"LEAD"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-opportunity-
81
-410"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-opportunity-
98
-410"
>
<addForeignKeyConstraint
baseColumnNames=
"PRICELEVELID"
baseTableName=
"OPPORTUNITY"
constraintName=
"DER1N_OPPORTUNITY__PRICELEVEL_"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"PRICELEVELID"
referencedTableName=
"PRICELEVEL"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-opportunity-
81
-411"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-opportunity-
98
-411"
>
<addForeignKeyConstraint
baseColumnNames=
"SLAID"
baseTableName=
"OPPORTUNITY"
constraintName=
"DER1N_OPPORTUNITY__SLA__SLAID"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"SLAID"
referencedTableName=
"SLA"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-opportunity-
81
-412"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-opportunity-
98
-412"
>
<addForeignKeyConstraint
baseColumnNames=
"TRANSACTIONCURRENCYID"
baseTableName=
"OPPORTUNITY"
constraintName=
"DER1N_OPPORTUNITY__TRANSACTION"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"TRANSACTIONCURRENCYID"
referencedTableName=
"TRANSACTIONCURRENCY"
validate=
"true"
/>
</changeSet>
<!--输出实体[OPPORTUNITYCOMPETITOR]外键关系 -->
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录