Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
iBiz企业中心
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz企业套件
iBiz企业中心
提交
1335b402
提交
1335b402
编写于
7月 08, 2020
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
lab_gzf 发布系统代码
上级
5fba7f77
变更
48
显示空白字符变更
内嵌
并排
正在显示
48 个修改的文件
包含
5484 行增加
和
117 行删除
+5484
-117
view-config.json
app_CRM/public/assets/json/view-config.json
+10
-0
opportunity_en_US.ts
...c/locale/lanres/entities/opportunity/opportunity_en_US.ts
+27
-2
opportunity_zh_CN.ts
...c/locale/lanres/entities/opportunity/opportunity_zh_CN.ts
+27
-2
viewconfig.ts
app_CRM/src/mock/viewconfig/viewconfig.ts
+8
-0
opportunity-edit-date-panel-view-base.tsx
...date-panel-view/opportunity-edit-date-panel-view-base.tsx
+155
-0
opportunity-edit-date-panel-view.html
...dit-date-panel-view/opportunity-edit-date-panel-view.html
+24
-0
opportunity-edit-date-panel-view.vue
...edit-date-panel-view/opportunity-edit-date-panel-view.vue
+22
-0
opportunity-lost-grid-view-base.tsx
...tunity-lost-grid-view/opportunity-lost-grid-view-base.tsx
+697
-0
opportunity-lost-grid-view.html
...pportunity-lost-grid-view/opportunity-lost-grid-view.html
+49
-0
opportunity-lost-grid-view.vue
...opportunity-lost-grid-view/opportunity-lost-grid-view.vue
+24
-0
opportunity-state-tab-view-base.tsx
...tunity-state-tab-view/opportunity-state-tab-view-base.tsx
+120
-0
opportunity-state-tab-view.html
...pportunity-state-tab-view/opportunity-state-tab-view.html
+10
-0
opportunity-state-tab-view.vue
...opportunity-state-tab-view/opportunity-state-tab-view.vue
+22
-0
opportunity-win-grid-view-base.tsx
...ortunity-win-grid-view/opportunity-win-grid-view-base.tsx
+697
-0
opportunity-win-grid-view.html
.../opportunity-win-grid-view/opportunity-win-grid-view.html
+49
-0
opportunity-win-grid-view.vue
...s/opportunity-win-grid-view/opportunity-win-grid-view.vue
+24
-0
page-register.ts
app_CRM/src/pages/ungroup/central/page-register.ts
+9
-5
router.ts
app_CRM/src/pages/ungroup/central/router.ts
+319
-79
state.ts
app_CRM/src/store/modules/view-action/state.ts
+45
-1
opportunity-ui-service-base.ts
.../src/uiservice/opportunity/opportunity-ui-service-base.ts
+69
-0
central-appmenu-base.tsx
.../src/widgets/app/central-appmenu/central-appmenu-base.tsx
+1
-1
central-appmenu-model.ts
.../src/widgets/app/central-appmenu/central-appmenu-model.ts
+4
-4
data-panel-form-base.tsx
...gets/opportunity/data-panel-form/data-panel-form-base.tsx
+5
-23
edit-date-panel-form-base.tsx
...tunity/edit-date-panel-form/edit-date-panel-form-base.tsx
+130
-0
edit-date-panel-form-model.ts
...tunity/edit-date-panel-form/edit-date-panel-form-model.ts
+91
-0
edit-date-panel-form-service.ts
...nity/edit-date-panel-form/edit-date-panel-form-service.ts
+371
-0
edit-date-panel-form.html
...pportunity/edit-date-panel-form/edit-date-panel-form.html
+52
-0
edit-date-panel-form.vue
...opportunity/edit-date-panel-form/edit-date-panel-form.vue
+22
-0
state-tab-viewtabexppanel-tabexppanel-base.tsx
...abexppanel/state-tab-viewtabexppanel-tabexppanel-base.tsx
+85
-0
state-tab-viewtabexppanel-tabexppanel-model.ts
...abexppanel/state-tab-viewtabexppanel-tabexppanel-model.ts
+355
-0
state-tab-viewtabexppanel-tabexppanel-service.ts
...exppanel/state-tab-viewtabexppanel-tabexppanel-service.ts
+45
-0
state-tab-viewtabexppanel-tabexppanel.html
...el-tabexppanel/state-tab-viewtabexppanel-tabexppanel.html
+76
-0
state-tab-viewtabexppanel-tabexppanel.vue
...nel-tabexppanel/state-tab-viewtabexppanel-tabexppanel.vue
+28
-0
state-tab-viewtabviewpanel-tabviewpanel-base.tsx
...iewpanel/state-tab-viewtabviewpanel-tabviewpanel-base.tsx
+205
-0
state-tab-viewtabviewpanel-tabviewpanel-model.ts
...iewpanel/state-tab-viewtabviewpanel-tabviewpanel-model.ts
+355
-0
state-tab-viewtabviewpanel-tabviewpanel-service.ts
...wpanel/state-tab-viewtabviewpanel-tabviewpanel-service.ts
+11
-0
state-tab-viewtabviewpanel-tabviewpanel.html
...tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel.html
+11
-0
state-tab-viewtabviewpanel-tabviewpanel.vue
...-tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel.vue
+22
-0
state-tab-viewtabviewpanel2-tabviewpanel-base.tsx
...ewpanel/state-tab-viewtabviewpanel2-tabviewpanel-base.tsx
+205
-0
state-tab-viewtabviewpanel2-tabviewpanel-model.ts
...ewpanel/state-tab-viewtabviewpanel2-tabviewpanel-model.ts
+355
-0
state-tab-viewtabviewpanel2-tabviewpanel-service.ts
...panel/state-tab-viewtabviewpanel2-tabviewpanel-service.ts
+11
-0
state-tab-viewtabviewpanel2-tabviewpanel.html
...abviewpanel/state-tab-viewtabviewpanel2-tabviewpanel.html
+11
-0
state-tab-viewtabviewpanel2-tabviewpanel.vue
...tabviewpanel/state-tab-viewtabviewpanel2-tabviewpanel.vue
+22
-0
state-tab-viewtabviewpanel3-tabviewpanel-base.tsx
...ewpanel/state-tab-viewtabviewpanel3-tabviewpanel-base.tsx
+205
-0
state-tab-viewtabviewpanel3-tabviewpanel-model.ts
...ewpanel/state-tab-viewtabviewpanel3-tabviewpanel-model.ts
+355
-0
state-tab-viewtabviewpanel3-tabviewpanel-service.ts
...panel/state-tab-viewtabviewpanel3-tabviewpanel-service.ts
+11
-0
state-tab-viewtabviewpanel3-tabviewpanel.html
...abviewpanel/state-tab-viewtabviewpanel3-tabviewpanel.html
+11
-0
state-tab-viewtabviewpanel3-tabviewpanel.vue
...tabviewpanel/state-tab-viewtabviewpanel3-tabviewpanel.vue
+22
-0
未找到文件。
app_CRM/public/assets/json/view-config.json
浏览文件 @
1335b402
...
@@ -2289,6 +2289,16 @@
...
@@ -2289,6 +2289,16 @@
"viewtag"
:
"da3f8c1f20f440f3df54d6c13a8de586"
,
"viewtag"
:
"da3f8c1f20f440f3df54d6c13a8de586"
,
"memo"
:
"系统自动添加"
"memo"
:
"系统自动添加"
},
},
"opportunityedit_datepanelview"
:
{
"title"
:
"头部信息编辑"
,
"caption"
:
"商机"
,
"viewtype"
:
"DEEDITVIEW"
,
"viewmodule"
:
"Sales"
,
"viewname"
:
"OpportunityEdit_DatePanelView"
,
"viewfilename"
:
"opportunity-edit-date-panel-view"
,
"viewtag"
:
"dd0334d4dac239bca7b007cb50d8b640"
,
"memo"
:
""
},
"pricelevelpickupgridview"
:
{
"pricelevelpickupgridview"
:
{
"title"
:
"价目表选择表格视图"
,
"title"
:
"价目表选择表格视图"
,
"caption"
:
"价目表"
,
"caption"
:
"价目表"
,
...
...
app_CRM/src/locale/lanres/entities/opportunity/opportunity_en_US.ts
浏览文件 @
1335b402
...
@@ -174,6 +174,10 @@ export default {
...
@@ -174,6 +174,10 @@ export default {
caption
:
"商机信息"
,
caption
:
"商机信息"
,
title
:
"商机信息"
,
title
:
"商机信息"
,
},
},
edit_datepanelview
:
{
caption
:
"商机"
,
title
:
"头部信息编辑"
,
},
},
},
quickcreate_form
:
{
quickcreate_form
:
{
details
:
{
details
:
{
...
@@ -267,9 +271,30 @@ export default {
...
@@ -267,9 +271,30 @@ export default {
uiactions
:
{
uiactions
:
{
},
},
},
},
edit_datepanel_form
:
{
details
:
{
group1
:
"商机基本信息"
,
formpage1
:
"基本信息"
,
srfupdatedate
:
"更新时间"
,
srforikey
:
""
,
srfkey
:
"商机"
,
srfmajortext
:
"商机名称"
,
srftempmode
:
""
,
srfuf
:
""
,
srfdeid
:
""
,
srfsourcekey
:
""
,
estimatedclosedate
:
"预计结束日期"
,
estimatedvalue
:
"预计收入"
,
statecode
:
"状态"
,
owneridyominame
:
"负责人"
,
opportunityid
:
"商机"
,
},
uiactions
:
{
},
},
datapanel_form
:
{
datapanel_form
:
{
details
:
{
details
:
{
button1
:
"
刷新
"
,
button1
:
"
编辑头部信息
"
,
grouppanel1
:
"分组面板"
,
grouppanel1
:
"分组面板"
,
group1
:
"商机基本信息"
,
group1
:
"商机基本信息"
,
formpage1
:
"基本信息"
,
formpage1
:
"基本信息"
,
...
@@ -288,7 +313,7 @@ export default {
...
@@ -288,7 +313,7 @@ export default {
opportunityid
:
"商机"
,
opportunityid
:
"商机"
,
},
},
uiactions
:
{
uiactions
:
{
refresh
:
"刷新
"
,
opportunity_openedit_datepanelview
:
"编辑头部信息
"
,
},
},
},
},
productinfo_form
:
{
productinfo_form
:
{
...
...
app_CRM/src/locale/lanres/entities/opportunity/opportunity_zh_CN.ts
浏览文件 @
1335b402
...
@@ -173,6 +173,10 @@ export default {
...
@@ -173,6 +173,10 @@ export default {
caption
:
"商机信息"
,
caption
:
"商机信息"
,
title
:
"商机信息"
,
title
:
"商机信息"
,
},
},
edit_datepanelview
:
{
caption
:
"商机"
,
title
:
"头部信息编辑"
,
},
},
},
quickcreate_form
:
{
quickcreate_form
:
{
details
:
{
details
:
{
...
@@ -266,9 +270,30 @@ export default {
...
@@ -266,9 +270,30 @@ export default {
uiactions
:
{
uiactions
:
{
},
},
},
},
edit_datepanel_form
:
{
details
:
{
group1
:
"商机基本信息"
,
formpage1
:
"基本信息"
,
srfupdatedate
:
"更新时间"
,
srforikey
:
""
,
srfkey
:
"商机"
,
srfmajortext
:
"商机名称"
,
srftempmode
:
""
,
srfuf
:
""
,
srfdeid
:
""
,
srfsourcekey
:
""
,
estimatedclosedate
:
"预计结束日期"
,
estimatedvalue
:
"预计收入"
,
statecode
:
"状态"
,
owneridyominame
:
"负责人"
,
opportunityid
:
"商机"
,
},
uiactions
:
{
},
},
datapanel_form
:
{
datapanel_form
:
{
details
:
{
details
:
{
button1
:
"
刷新
"
,
button1
:
"
编辑头部信息
"
,
grouppanel1
:
"分组面板"
,
grouppanel1
:
"分组面板"
,
group1
:
"商机基本信息"
,
group1
:
"商机基本信息"
,
formpage1
:
"基本信息"
,
formpage1
:
"基本信息"
,
...
@@ -287,7 +312,7 @@ export default {
...
@@ -287,7 +312,7 @@ export default {
opportunityid
:
"商机"
,
opportunityid
:
"商机"
,
},
},
uiactions
:
{
uiactions
:
{
refresh
:
"刷新
"
,
opportunity_openedit_datepanelview
:
"编辑头部信息
"
,
},
},
},
},
productinfo_form
:
{
productinfo_form
:
{
...
...
app_CRM/src/mock/viewconfig/viewconfig.ts
浏览文件 @
1335b402
...
@@ -1839,6 +1839,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
...
@@ -1839,6 +1839,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname"
:
"TransactionCurrencyPickupView"
,
"viewname"
:
"TransactionCurrencyPickupView"
,
"viewtag"
:
"da3f8c1f20f440f3df54d6c13a8de586"
"viewtag"
:
"da3f8c1f20f440f3df54d6c13a8de586"
},
},
"opportunityedit_datepanelview"
:
{
"title"
:
"头部信息编辑"
,
"caption"
:
"商机"
,
"viewtype"
:
"DEEDITVIEW"
,
"viewmodule"
:
"Sales"
,
"viewname"
:
"OpportunityEdit_DatePanelView"
,
"viewtag"
:
"dd0334d4dac239bca7b007cb50d8b640"
},
"pricelevelpickupgridview"
:
{
"pricelevelpickupgridview"
:
{
"title"
:
"价目表选择表格视图"
,
"title"
:
"价目表选择表格视图"
,
"caption"
:
"价目表"
,
"caption"
:
"价目表"
,
...
...
app_CRM/src/pages/sales/opportunity-edit-date-panel-view/opportunity-edit-date-panel-view-base.tsx
0 → 100644
浏览文件 @
1335b402
import
{
Subject
}
from
'rxjs'
;
import
{
EditViewBase
}
from
'@/studio-core'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
EditViewEngine
from
'@engine/view/edit-view-engine'
;
/**
* 头部信息编辑视图基类
*
* @export
* @class OpportunityEdit_DatePanelViewBase
* @extends {EditViewBase}
*/
export
class
OpportunityEdit_DatePanelViewBase
extends
EditViewBase
{
/**
* 视图对应应用实体名称
*
* @protected
* @type {string}
* @memberof OpportunityEdit_DatePanelViewBase
*/
protected
appDeName
:
string
=
'opportunity'
;
/**
* 应用实体主键
*
* @protected
* @type {string}
* @memberof OpportunityEdit_DatePanelViewBase
*/
protected
appDeKey
:
string
=
'opportunityid'
;
/**
* 应用实体主信息
*
* @protected
* @type {string}
* @memberof OpportunityEdit_DatePanelViewBase
*/
protected
appDeMajor
:
string
=
'opportunityname'
;
/**
* 实体服务对象
*
* @type {OpportunityService}
* @memberof OpportunityEdit_DatePanelViewBase
*/
protected
appEntityService
:
OpportunityService
=
new
OpportunityService
;
/**
* 计数器服务对象集合
*
* @protected
* @type {Array<*>}
* @memberof OpportunityEdit_DatePanelViewBase
*/
protected
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 视图模型数据
*
* @protected
* @type {*}
* @memberof OpportunityEdit_DatePanelViewBase
*/
protected
model
:
any
=
{
srfCaption
:
'entities.opportunity.views.edit_datepanelview.caption'
,
srfTitle
:
'entities.opportunity.views.edit_datepanelview.title'
,
srfSubTitle
:
'entities.opportunity.views.edit_datepanelview.subtitle'
,
dataInfo
:
''
}
/**
* 容器模型
*
* @protected
* @type {*}
* @memberof OpportunityEdit_DatePanelViewBase
*/
protected
containerModel
:
any
=
{
view_form
:
{
name
:
'form'
,
type
:
'FORM'
},
};
/**
* 视图唯一标识
*
* @protected
* @type {string}
* @memberof ViewBase
*/
protected
viewtag
:
string
=
'dd0334d4dac239bca7b007cb50d8b640'
;
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof OpportunityEdit_DatePanelViewBase
*/
public
engine
:
EditViewEngine
=
new
EditViewEngine
();
/**
* 引擎初始化
*
* @public
* @memberof OpportunityEdit_DatePanelViewBase
*/
public
engineInit
():
void
{
this
.
engine
.
init
({
view
:
this
,
form
:
this
.
$refs
.
form
,
p2k
:
'0'
,
keyPSDEField
:
'opportunity'
,
majorPSDEField
:
'opportunityname'
,
isLoadDefault
:
true
,
});
}
/**
* form 部件 save 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityEdit_DatePanelViewBase
*/
public
form_save
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'save'
,
$event
);
}
/**
* form 部件 remove 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityEdit_DatePanelViewBase
*/
public
form_remove
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'remove'
,
$event
);
}
/**
* form 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityEdit_DatePanelViewBase
*/
public
form_load
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'load'
,
$event
);
}
}
\ No newline at end of file
app_CRM/src/pages/sales/opportunity-edit-date-panel-view/opportunity-edit-date-panel-view.html
0 → 100644
浏览文件 @
1335b402
<studio-view-style2
viewName=
"opportunityedit_datepanelview"
viewTitle=
"头部信息编辑"
class=
'deeditview opportunity-edit-date-panel-view'
>
<view
_form
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:autosave=
"true"
: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>
\ No newline at end of file
app_CRM/src/pages/sales/opportunity-edit-date-panel-view/opportunity-edit-date-panel-view.vue
0 → 100644
浏览文件 @
1335b402
<
template
src=
"./opportunity-edit-date-panel-view.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { OpportunityEdit_DatePanelViewBase } from './opportunity-edit-date-panel-view-base';
import view_form from '@widgets/opportunity/edit-date-panel-form/edit-date-panel-form.vue';
/**
* 头部信息编辑视图
*
* @export
* @class OpportunityEdit_DatePanelView
* @extends {OpportunityEdit_DatePanelViewBase}
*/
@Component({
components: {
view_form,
}
})
@VueLifeCycleProcessing()
export default class OpportunityEdit_DatePanelView extends OpportunityEdit_DatePanelViewBase { }
</script>
app_CRM/src/pages/sales/opportunity-lost-grid-view/opportunity-lost-grid-view-base.tsx
0 → 100644
浏览文件 @
1335b402
import
{
Subject
}
from
'rxjs'
;
import
{
GridViewBase
}
from
'@/studio-core'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
GridViewEngine
from
'@engine/view/grid-view-engine'
;
import
OpportunityUIService
from
'@/uiservice/opportunity/opportunity-ui-service'
;
import
CodeListService
from
"@service/app/codelist-service"
;
/**
* 商机信息视图基类
*
* @export
* @class OpportunityLostGridViewBase
* @extends {GridViewBase}
*/
export
class
OpportunityLostGridViewBase
extends
GridViewBase
{
/**
* 视图对应应用实体名称
*
* @protected
* @type {string}
* @memberof OpportunityLostGridViewBase
*/
protected
appDeName
:
string
=
'opportunity'
;
/**
* 应用实体主键
*
* @protected
* @type {string}
* @memberof OpportunityLostGridViewBase
*/
protected
appDeKey
:
string
=
'opportunityid'
;
/**
* 应用实体主信息
*
* @protected
* @type {string}
* @memberof OpportunityLostGridViewBase
*/
protected
appDeMajor
:
string
=
'opportunityname'
;
/**
* 实体服务对象
*
* @type {OpportunityService}
* @memberof OpportunityLostGridViewBase
*/
protected
appEntityService
:
OpportunityService
=
new
OpportunityService
;
/**
* 计数器服务对象集合
*
* @protected
* @type {Array<*>}
* @memberof OpportunityLostGridViewBase
*/
protected
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 视图模型数据
*
* @protected
* @type {*}
* @memberof OpportunityLostGridViewBase
*/
protected
model
:
any
=
{
srfCaption
:
'entities.opportunity.views.lostgridview.caption'
,
srfTitle
:
'entities.opportunity.views.lostgridview.title'
,
srfSubTitle
:
'entities.opportunity.views.lostgridview.subtitle'
,
dataInfo
:
''
}
/**
* 容器模型
*
* @protected
* @type {*}
* @memberof OpportunityLostGridViewBase
*/
protected
containerModel
:
any
=
{
view_toolbar
:
{
name
:
'toolbar'
,
type
:
'TOOLBAR'
},
view_grid
:
{
name
:
'grid'
,
type
:
'GRID'
},
view_searchform
:
{
name
:
'searchform'
,
type
:
'SEARCHFORM'
},
};
/**
* 工具栏模型
*
* @type {*}
* @memberof OpportunityLostGridView
*/
public
toolBarModels
:
any
=
{
tbitem1_openquickcreateview
:
{
name
:
'tbitem1_openquickcreateview'
,
caption
:
'新建'
,
'isShowCaption'
:
true
,
'isShowIcon'
:
true
,
tooltip
:
'新建'
,
iconcls
:
'fa fa-user-plus'
,
icon
:
''
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'OpenQuickCreateView'
,
target
:
'NONE'
},
class
:
''
},
tbitem2
:
{
name
:
'tbitem2'
,
type
:
'SEPERATOR'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
}
},
tbitem4
:
{
name
:
'tbitem4'
,
caption
:
'编辑'
,
'isShowCaption'
:
true
,
'isShowIcon'
:
true
,
tooltip
:
'编辑'
,
iconcls
:
'fa fa-edit'
,
icon
:
''
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'Edit'
,
target
:
'SINGLEKEY'
},
class
:
''
},
tbitem6
:
{
name
:
'tbitem6'
,
caption
:
'拷贝'
,
'isShowCaption'
:
true
,
'isShowIcon'
:
true
,
tooltip
:
'拷贝'
,
iconcls
:
'fa fa-copy'
,
icon
:
''
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'Copy'
,
target
:
'SINGLEKEY'
},
class
:
''
},
tbitem7
:
{
name
:
'tbitem7'
,
type
:
'SEPERATOR'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
}
},
tbitem8
:
{
name
:
'tbitem8'
,
caption
:
'删除'
,
'isShowCaption'
:
true
,
'isShowIcon'
:
true
,
tooltip
:
'删除'
,
iconcls
:
'fa fa-remove'
,
icon
:
''
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'Remove'
,
target
:
'MULTIKEY'
},
class
:
''
},
tbitem9
:
{
name
:
'tbitem9'
,
type
:
'SEPERATOR'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
}
},
tbitem13
:
{
name
:
'tbitem13'
,
caption
:
'导出'
,
'isShowCaption'
:
true
,
'isShowIcon'
:
true
,
tooltip
:
'导出'
,
iconcls
:
'fa fa-file-excel-o'
,
icon
:
''
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'ExportExcel'
,
target
:
''
},
MaxRowCount
:
1000
,
class
:
''
},
tbitem10
:
{
name
:
'tbitem10'
,
type
:
'SEPERATOR'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
}
},
tbitem19
:
{
name
:
'tbitem19'
,
caption
:
'过滤'
,
'isShowCaption'
:
true
,
'isShowIcon'
:
true
,
tooltip
:
'过滤'
,
iconcls
:
'fa fa-filter'
,
icon
:
''
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'ToggleFilter'
,
target
:
''
},
class
:
''
},
};
/**
* 视图唯一标识
*
* @protected
* @type {string}
* @memberof ViewBase
*/
protected
viewtag
:
string
=
'd43a25ac94ca7cb20db961aae174ca53'
;
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof OpportunityLostGridViewBase
*/
public
engine
:
GridViewEngine
=
new
GridViewEngine
();
/**
* 引擎初始化
*
* @public
* @memberof OpportunityLostGridViewBase
*/
public
engineInit
():
void
{
this
.
engine
.
init
({
view
:
this
,
opendata
:
(
args
:
any
[],
fullargs
?:
any
[],
params
?:
any
,
$event
?:
any
,
xData
?:
any
)
=>
{
this
.
opendata
(
args
,
fullargs
,
params
,
$event
,
xData
);
},
newdata
:
(
args
:
any
[],
fullargs
?:
any
[],
params
?:
any
,
$event
?:
any
,
xData
?:
any
)
=>
{
this
.
newdata
(
args
,
fullargs
,
params
,
$event
,
xData
);
},
grid
:
this
.
$refs
.
grid
,
searchform
:
this
.
$refs
.
searchform
,
keyPSDEField
:
'opportunity'
,
majorPSDEField
:
'opportunityname'
,
isLoadDefault
:
true
,
});
}
/**
* toolbar 部件 click 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityLostGridViewBase
*/
public
toolbar_click
(
$event
:
any
,
$event2
?:
any
):
void
{
if
(
Object
.
is
(
$event
.
tag
,
'tbitem1_openquickcreateview'
))
{
this
.
toolbar_tbitem1_openquickcreateview_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem4'
))
{
this
.
toolbar_tbitem4_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem6'
))
{
this
.
toolbar_tbitem6_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem8'
))
{
this
.
toolbar_tbitem8_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem13'
))
{
this
.
toolbar_tbitem13_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem11'
))
{
this
.
toolbar_tbitem11_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem19'
))
{
this
.
toolbar_tbitem19_click
(
null
,
''
,
$event2
);
}
}
/**
* grid 部件 selectionchange 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityLostGridViewBase
*/
public
grid_selectionchange
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'selectionchange'
,
$event
);
}
/**
* grid 部件 beforeload 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityLostGridViewBase
*/
public
grid_beforeload
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'beforeload'
,
$event
);
}
/**
* grid 部件 rowdblclick 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityLostGridViewBase
*/
public
grid_rowdblclick
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'rowdblclick'
,
$event
);
}
/**
* grid 部件 remove 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityLostGridViewBase
*/
public
grid_remove
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'remove'
,
$event
);
}
/**
* grid 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityLostGridViewBase
*/
public
grid_load
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'load'
,
$event
);
}
/**
* searchform 部件 save 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityLostGridViewBase
*/
public
searchform_save
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'searchform'
,
'save'
,
$event
);
}
/**
* searchform 部件 search 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityLostGridViewBase
*/
public
searchform_search
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'searchform'
,
'search'
,
$event
);
}
/**
* searchform 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityLostGridViewBase
*/
public
searchform_load
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'searchform'
,
'load'
,
$event
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_tbitem1_openquickcreateview_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
.
grid
;
if
(
xData
.
getDatas
&&
xData
.
getDatas
instanceof
Function
)
{
datas
=
[...
xData
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
const
curUIService
:
OpportunityUIService
=
new
OpportunityUIService
();
curUIService
.
Opportunity_OpenQuickCreateView
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Opportunity"
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_tbitem4_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
.
grid
;
if
(
xData
.
getDatas
&&
xData
.
getDatas
instanceof
Function
)
{
datas
=
[...
xData
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
this
.
Edit
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Opportunity"
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_tbitem6_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
.
grid
;
if
(
xData
.
getDatas
&&
xData
.
getDatas
instanceof
Function
)
{
datas
=
[...
xData
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
this
.
Copy
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Opportunity"
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_tbitem8_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
.
grid
;
if
(
xData
.
getDatas
&&
xData
.
getDatas
instanceof
Function
)
{
datas
=
[...
xData
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
this
.
Remove
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Opportunity"
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_tbitem13_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
.
grid
;
if
(
xData
.
getDatas
&&
xData
.
getDatas
instanceof
Function
)
{
datas
=
[...
xData
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
this
.
ExportExcel
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Opportunity"
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_tbitem11_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
.
grid
;
if
(
xData
.
getDatas
&&
xData
.
getDatas
instanceof
Function
)
{
datas
=
[...
xData
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
this
.
Print
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Opportunity"
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_tbitem19_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
.
grid
;
if
(
xData
.
getDatas
&&
xData
.
getDatas
instanceof
Function
)
{
datas
=
[...
xData
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
this
.
ToggleFilter
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Opportunity"
);
}
/**
* 打开新建数据视图
*
* @param {any[]} args
* @param {*} [params]
* @param {*} [fullargs]
* @param {*} [$event]
* @param {*} [xData]
* @memberof OpportunityLostGridView
*/
public
newdata
(
args
:
any
[],
fullargs
?:
any
[],
params
?:
any
,
$event
?:
any
,
xData
?:
any
)
{
let
localContext
:
any
=
null
;
let
localViewParam
:
any
=
null
;
const
data
:
any
=
{};
if
(
args
[
0
].
srfsourcekey
){
data
.
srfsourcekey
=
args
[
0
].
srfsourcekey
;
}
let
tempContext
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
));
delete
tempContext
.
opportunity
;
if
(
args
.
length
>
0
){
Object
.
assign
(
tempContext
,
args
[
0
]);
}
let
deResParameters
:
any
[]
=
[];
if
(
tempContext
.
account
&&
true
){
deResParameters
=
[
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
]
}
const
parameters
:
any
[]
=
[
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
];
const
_this
:
any
=
this
;
const
openDrawer
=
(
view
:
any
,
data
:
any
)
=>
{
let
container
:
Subject
<
any
>
=
this
.
$appdrawer
.
openDrawer
(
view
,
tempContext
,
data
);
container
.
subscribe
((
result
:
any
)
=>
{
if
(
!
result
||
!
Object
.
is
(
result
.
ret
,
'OK'
))
{
return
;
}
if
(
!
xData
||
!
(
xData
.
refresh
instanceof
Function
))
{
return
;
}
xData
.
refresh
(
result
.
datas
);
});
}
const
view
:
any
=
{
viewname
:
'opportunity-quick-create'
,
height
:
0
,
width
:
0
,
title
:
this
.
$t
(
'entities.opportunity.views.quickcreate.title'
),
placement
:
'DRAWER_RIGHT'
,
};
openDrawer
(
view
,
data
);
}
/**
* 打开编辑数据视图
*
* @param {any[]} args
* @param {*} [params]
* @param {*} [fullargs]
* @param {*} [$event]
* @param {*} [xData]
* @memberof OpportunityLostGridView
*/
public
opendata
(
args
:
any
[],
fullargs
?:
any
[],
params
?:
any
,
$event
?:
any
,
xData
?:
any
)
{
let
localContext
:
any
=
null
;
let
localViewParam
:
any
=
null
;
const
data
:
any
=
{};
let
tempContext
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
));
if
(
args
.
length
>
0
){
Object
.
assign
(
tempContext
,
args
[
0
]);
}
let
deResParameters
:
any
[]
=
[];
if
(
tempContext
.
account
&&
true
){
deResParameters
=
[
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
]
}
const
parameters
:
any
[]
=
[
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'info'
,
parameterName
:
'info'
},
];
const
_this
:
any
=
this
;
const
openIndexViewTab
=
(
data
:
any
)
=>
{
const
routePath
=
this
.
$viewTool
.
buildUpRoutePath
(
this
.
$route
,
tempContext
,
deResParameters
,
parameters
,
args
,
data
);
this
.
$router
.
push
(
routePath
);
}
openIndexViewTab
(
data
);
}
/**
* 编辑
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof OpportunityLostGridViewBase
*/
public
Edit
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
if
(
args
.
length
===
0
)
{
return
;
}
const
_this
:
any
=
this
;
if
(
_this
.
opendata
&&
_this
.
opendata
instanceof
Function
)
{
const
data
:
any
=
{
};
if
(
args
.
length
>
0
)
{
Object
.
assign
(
data
,
{
opportunity
:
args
[
0
].
opportunity
})
}
_this
.
opendata
([{
...
data
}],
params
,
$event
,
xData
);
}
else
{
_this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'opendata 视图处理逻辑不存在,请添加!'
});
}
}
/**
* 拷贝
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof OpportunityLostGridViewBase
*/
public
Copy
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
if
(
args
.
length
===
0
)
{
return
;
}
const
_this
:
any
=
this
;
if
(
_this
.
newdata
&&
_this
.
newdata
instanceof
Function
)
{
const
data
:
any
=
{};
if
(
args
.
length
>
0
)
{
Object
.
assign
(
data
,
{
srfsourcekey
:
args
[
0
].
srfkey
})
actionContext
.
$store
.
commit
(
'addCopyData'
,
{
srfkey
:
args
[
0
].
srfkey
,
copyData
:
args
[
0
]
});
}
_this
.
newdata
([{
...
data
}],[{
...
data
}],
params
,
$event
,
xData
);
}
else
if
(
xData
&&
xData
.
copy
instanceof
Function
)
{
if
(
args
.
length
>
0
)
{
actionContext
.
$store
.
commit
(
'addCopyData'
,
{
srfkey
:
args
[
0
].
srfkey
,
copyData
:
args
[
0
]
});
}
xData
.
copy
(
args
[
0
].
srfkey
);
}
else
{
_this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'opendata 视图处理逻辑不存在,请添加!'
});
}
}
/**
* 删除
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof OpportunityLostGridViewBase
*/
public
Remove
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
const
_this
:
any
=
this
;
if
(
!
xData
||
!
(
xData
.
remove
instanceof
Function
))
{
return
;
}
xData
.
remove
(
args
);
}
/**
* 导出
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof OpportunityLostGridViewBase
*/
public
ExportExcel
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
const
_this
:
any
=
this
;
if
(
!
xData
||
!
(
xData
.
exportExcel
instanceof
Function
)
||
!
$event
)
{
return
;
}
xData
.
exportExcel
(
$event
.
exportparms
);
}
/**
* 打印
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof OpportunityLostGridViewBase
*/
public
Print
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
let
_this
:
any
=
this
;
if
(
!
xData
||
!
(
xData
.
print
instanceof
Function
)
||
!
$event
)
{
return
;
}
xData
.
print
();
}
/**
* 过滤
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof OpportunityLostGridViewBase
*/
public
ToggleFilter
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
const
_this
:
any
=
this
;
if
(
_this
.
hasOwnProperty
(
'isExpandSearchForm'
))
{
_this
.
isExpandSearchForm
=
!
_this
.
isExpandSearchForm
;
}
}
}
\ No newline at end of file
app_CRM/src/pages/sales/opportunity-lost-grid-view/opportunity-lost-grid-view.html
0 → 100644
浏览文件 @
1335b402
<studio-view-style2
viewName=
"opportunitylostgridview"
viewTitle=
"商机信息"
class=
'degridview opportunity-lost-grid-view'
>
<i-input
slot=
"quickSearch"
v-show=
"!isExpandSearchForm"
v-model=
"query"
search
@
on-search=
"onSearch($event)"
/>
<template
slot=
"toolbar"
>
<view-toolbar
mode=
"STYLE2"
:model=
"toolBarModels"
@
item-click=
"toolbar_click($event)"
/>
</template>
<template
slot=
"searchForm"
>
<view
_searchform
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:showBusyIndicator=
"true"
v-show=
"isExpandSearchForm"
loaddraftAction=
"FilterGetDraft"
loadAction=
"FilterGet"
name=
"searchform"
ref=
'searchform'
@
save=
"searchform_save($event)"
@
search=
"searchform_search($event)"
@
load=
"searchform_load($event)"
@
closeview=
"closeView($event)"
>
</view
_searchform
>
</template>
<view
_grid
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:isSingleSelect=
"isGridSingleSelect"
:showBusyIndicator=
"true"
:isOpenEdit=
"false"
:gridRowActiveMode=
"gridRowActiveMode"
@
save=
"onSave"
updateAction=
""
removeAction=
"Remove"
loaddraftAction=
""
loadAction=
""
createAction=
""
fetchAction=
"FetchLost"
:newdata=
"newdata"
:opendata=
"opendata"
name=
"grid"
ref=
'grid'
@
selectionchange=
"grid_selectionchange($event)"
@
beforeload=
"grid_beforeload($event)"
@
rowdblclick=
"grid_rowdblclick($event)"
@
remove=
"grid_remove($event)"
@
load=
"grid_load($event)"
@
closeview=
"closeView($event)"
>
</view
_grid
>
</studio-view-style2>
\ No newline at end of file
app_CRM/src/pages/sales/opportunity-lost-grid-view/opportunity-lost-grid-view.vue
0 → 100644
浏览文件 @
1335b402
<
template
src=
"./opportunity-lost-grid-view.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { OpportunityLostGridViewBase } from './opportunity-lost-grid-view-base';
import view_grid from '@widgets/opportunity/main-grid/main-grid.vue';
import view_searchform from '@widgets/opportunity/default-searchform/default-searchform.vue';
/**
* 商机信息视图
*
* @export
* @class OpportunityLostGridView
* @extends {OpportunityLostGridViewBase}
*/
@Component({
components: {
view_grid,
view_searchform,
}
})
@VueLifeCycleProcessing()
export default class OpportunityLostGridView extends OpportunityLostGridViewBase { }
</script>
app_CRM/src/pages/sales/opportunity-state-tab-view/opportunity-state-tab-view-base.tsx
0 → 100644
浏览文件 @
1335b402
import
{
Subject
}
from
'rxjs'
;
import
{
TabExpViewBase
}
from
'@/studio-core'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
TabExpViewEngine
from
'@engine/view/tab-exp-view-engine'
;
/**
* 商机状态分页视图视图基类
*
* @export
* @class OpportunityStateTabViewBase
* @extends {TabExpViewBase}
*/
export
class
OpportunityStateTabViewBase
extends
TabExpViewBase
{
/**
* 视图对应应用实体名称
*
* @protected
* @type {string}
* @memberof OpportunityStateTabViewBase
*/
protected
appDeName
:
string
=
'opportunity'
;
/**
* 应用实体主键
*
* @protected
* @type {string}
* @memberof OpportunityStateTabViewBase
*/
protected
appDeKey
:
string
=
'opportunityid'
;
/**
* 应用实体主信息
*
* @protected
* @type {string}
* @memberof OpportunityStateTabViewBase
*/
protected
appDeMajor
:
string
=
'opportunityname'
;
/**
* 实体服务对象
*
* @type {OpportunityService}
* @memberof OpportunityStateTabViewBase
*/
protected
appEntityService
:
OpportunityService
=
new
OpportunityService
;
/**
* 计数器服务对象集合
*
* @protected
* @type {Array<*>}
* @memberof OpportunityStateTabViewBase
*/
protected
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 视图模型数据
*
* @protected
* @type {*}
* @memberof OpportunityStateTabViewBase
*/
protected
model
:
any
=
{
srfCaption
:
'entities.opportunity.views.statetabview.caption'
,
srfTitle
:
'entities.opportunity.views.statetabview.title'
,
srfSubTitle
:
'entities.opportunity.views.statetabview.subtitle'
,
dataInfo
:
''
}
/**
* 容器模型
*
* @protected
* @type {*}
* @memberof OpportunityStateTabViewBase
*/
protected
containerModel
:
any
=
{
view_tabexppanel
:
{
name
:
'tabexppanel'
,
type
:
'TABEXPPANEL'
},
};
/**
* 视图唯一标识
*
* @protected
* @type {string}
* @memberof ViewBase
*/
protected
viewtag
:
string
=
'00367e275947880480763049e5c495be'
;
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof OpportunityStateTabViewBase
*/
public
engine
:
TabExpViewEngine
=
new
TabExpViewEngine
();
/**
* 引擎初始化
*
* @public
* @memberof OpportunityStateTabViewBase
*/
public
engineInit
():
void
{
this
.
engine
.
init
({
view
:
this
,
keyPSDEField
:
'opportunity'
,
majorPSDEField
:
'opportunityname'
,
isLoadDefault
:
true
,
});
}
}
\ No newline at end of file
app_CRM/src/pages/sales/opportunity-state-tab-view/opportunity-state-tab-view.html
0 → 100644
浏览文件 @
1335b402
<studio-view-style2
viewName=
"opportunitystatetabview"
viewTitle=
"商机状态分页视图"
class=
'detabexpview opportunity-state-tab-view'
>
<view
_tabexppanel
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
name=
"tabexppanel"
ref=
'tabexppanel'
@
closeview=
"closeView($event)"
>
</view
_tabexppanel
>
</studio-view-style2>
\ No newline at end of file
app_CRM/src/pages/sales/opportunity-state-tab-view/opportunity-state-tab-view.vue
0 → 100644
浏览文件 @
1335b402
<
template
src=
"./opportunity-state-tab-view.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { OpportunityStateTabViewBase } from './opportunity-state-tab-view-base';
import view_tabexppanel from '@widgets/opportunity/state-tab-viewtabexppanel-tabexppanel/state-tab-viewtabexppanel-tabexppanel.vue';
/**
* 商机状态分页视图视图
*
* @export
* @class OpportunityStateTabView
* @extends {OpportunityStateTabViewBase}
*/
@Component({
components: {
view_tabexppanel,
}
})
@VueLifeCycleProcessing()
export default class OpportunityStateTabView extends OpportunityStateTabViewBase { }
</script>
app_CRM/src/pages/sales/opportunity-win-grid-view/opportunity-win-grid-view-base.tsx
0 → 100644
浏览文件 @
1335b402
import
{
Subject
}
from
'rxjs'
;
import
{
GridViewBase
}
from
'@/studio-core'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
GridViewEngine
from
'@engine/view/grid-view-engine'
;
import
OpportunityUIService
from
'@/uiservice/opportunity/opportunity-ui-service'
;
import
CodeListService
from
"@service/app/codelist-service"
;
/**
* 商机信息视图基类
*
* @export
* @class OpportunityWinGridViewBase
* @extends {GridViewBase}
*/
export
class
OpportunityWinGridViewBase
extends
GridViewBase
{
/**
* 视图对应应用实体名称
*
* @protected
* @type {string}
* @memberof OpportunityWinGridViewBase
*/
protected
appDeName
:
string
=
'opportunity'
;
/**
* 应用实体主键
*
* @protected
* @type {string}
* @memberof OpportunityWinGridViewBase
*/
protected
appDeKey
:
string
=
'opportunityid'
;
/**
* 应用实体主信息
*
* @protected
* @type {string}
* @memberof OpportunityWinGridViewBase
*/
protected
appDeMajor
:
string
=
'opportunityname'
;
/**
* 实体服务对象
*
* @type {OpportunityService}
* @memberof OpportunityWinGridViewBase
*/
protected
appEntityService
:
OpportunityService
=
new
OpportunityService
;
/**
* 计数器服务对象集合
*
* @protected
* @type {Array<*>}
* @memberof OpportunityWinGridViewBase
*/
protected
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 视图模型数据
*
* @protected
* @type {*}
* @memberof OpportunityWinGridViewBase
*/
protected
model
:
any
=
{
srfCaption
:
'entities.opportunity.views.wingridview.caption'
,
srfTitle
:
'entities.opportunity.views.wingridview.title'
,
srfSubTitle
:
'entities.opportunity.views.wingridview.subtitle'
,
dataInfo
:
''
}
/**
* 容器模型
*
* @protected
* @type {*}
* @memberof OpportunityWinGridViewBase
*/
protected
containerModel
:
any
=
{
view_toolbar
:
{
name
:
'toolbar'
,
type
:
'TOOLBAR'
},
view_grid
:
{
name
:
'grid'
,
type
:
'GRID'
},
view_searchform
:
{
name
:
'searchform'
,
type
:
'SEARCHFORM'
},
};
/**
* 工具栏模型
*
* @type {*}
* @memberof OpportunityWinGridView
*/
public
toolBarModels
:
any
=
{
tbitem1_openquickcreateview
:
{
name
:
'tbitem1_openquickcreateview'
,
caption
:
'新建'
,
'isShowCaption'
:
true
,
'isShowIcon'
:
true
,
tooltip
:
'新建'
,
iconcls
:
'fa fa-user-plus'
,
icon
:
''
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'OpenQuickCreateView'
,
target
:
'NONE'
},
class
:
''
},
tbitem2
:
{
name
:
'tbitem2'
,
type
:
'SEPERATOR'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
}
},
tbitem4
:
{
name
:
'tbitem4'
,
caption
:
'编辑'
,
'isShowCaption'
:
true
,
'isShowIcon'
:
true
,
tooltip
:
'编辑'
,
iconcls
:
'fa fa-edit'
,
icon
:
''
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'Edit'
,
target
:
'SINGLEKEY'
},
class
:
''
},
tbitem6
:
{
name
:
'tbitem6'
,
caption
:
'拷贝'
,
'isShowCaption'
:
true
,
'isShowIcon'
:
true
,
tooltip
:
'拷贝'
,
iconcls
:
'fa fa-copy'
,
icon
:
''
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'Copy'
,
target
:
'SINGLEKEY'
},
class
:
''
},
tbitem7
:
{
name
:
'tbitem7'
,
type
:
'SEPERATOR'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
}
},
tbitem8
:
{
name
:
'tbitem8'
,
caption
:
'删除'
,
'isShowCaption'
:
true
,
'isShowIcon'
:
true
,
tooltip
:
'删除'
,
iconcls
:
'fa fa-remove'
,
icon
:
''
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'Remove'
,
target
:
'MULTIKEY'
},
class
:
''
},
tbitem9
:
{
name
:
'tbitem9'
,
type
:
'SEPERATOR'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
}
},
tbitem13
:
{
name
:
'tbitem13'
,
caption
:
'导出'
,
'isShowCaption'
:
true
,
'isShowIcon'
:
true
,
tooltip
:
'导出'
,
iconcls
:
'fa fa-file-excel-o'
,
icon
:
''
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'ExportExcel'
,
target
:
''
},
MaxRowCount
:
1000
,
class
:
''
},
tbitem10
:
{
name
:
'tbitem10'
,
type
:
'SEPERATOR'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
}
},
tbitem19
:
{
name
:
'tbitem19'
,
caption
:
'过滤'
,
'isShowCaption'
:
true
,
'isShowIcon'
:
true
,
tooltip
:
'过滤'
,
iconcls
:
'fa fa-filter'
,
icon
:
''
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'ToggleFilter'
,
target
:
''
},
class
:
''
},
};
/**
* 视图唯一标识
*
* @protected
* @type {string}
* @memberof ViewBase
*/
protected
viewtag
:
string
=
'cbd7a448bb018d9efebb4d1495507fa2'
;
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof OpportunityWinGridViewBase
*/
public
engine
:
GridViewEngine
=
new
GridViewEngine
();
/**
* 引擎初始化
*
* @public
* @memberof OpportunityWinGridViewBase
*/
public
engineInit
():
void
{
this
.
engine
.
init
({
view
:
this
,
opendata
:
(
args
:
any
[],
fullargs
?:
any
[],
params
?:
any
,
$event
?:
any
,
xData
?:
any
)
=>
{
this
.
opendata
(
args
,
fullargs
,
params
,
$event
,
xData
);
},
newdata
:
(
args
:
any
[],
fullargs
?:
any
[],
params
?:
any
,
$event
?:
any
,
xData
?:
any
)
=>
{
this
.
newdata
(
args
,
fullargs
,
params
,
$event
,
xData
);
},
grid
:
this
.
$refs
.
grid
,
searchform
:
this
.
$refs
.
searchform
,
keyPSDEField
:
'opportunity'
,
majorPSDEField
:
'opportunityname'
,
isLoadDefault
:
true
,
});
}
/**
* toolbar 部件 click 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityWinGridViewBase
*/
public
toolbar_click
(
$event
:
any
,
$event2
?:
any
):
void
{
if
(
Object
.
is
(
$event
.
tag
,
'tbitem1_openquickcreateview'
))
{
this
.
toolbar_tbitem1_openquickcreateview_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem4'
))
{
this
.
toolbar_tbitem4_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem6'
))
{
this
.
toolbar_tbitem6_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem8'
))
{
this
.
toolbar_tbitem8_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem13'
))
{
this
.
toolbar_tbitem13_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem11'
))
{
this
.
toolbar_tbitem11_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem19'
))
{
this
.
toolbar_tbitem19_click
(
null
,
''
,
$event2
);
}
}
/**
* grid 部件 selectionchange 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityWinGridViewBase
*/
public
grid_selectionchange
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'selectionchange'
,
$event
);
}
/**
* grid 部件 beforeload 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityWinGridViewBase
*/
public
grid_beforeload
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'beforeload'
,
$event
);
}
/**
* grid 部件 rowdblclick 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityWinGridViewBase
*/
public
grid_rowdblclick
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'rowdblclick'
,
$event
);
}
/**
* grid 部件 remove 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityWinGridViewBase
*/
public
grid_remove
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'remove'
,
$event
);
}
/**
* grid 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityWinGridViewBase
*/
public
grid_load
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'load'
,
$event
);
}
/**
* searchform 部件 save 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityWinGridViewBase
*/
public
searchform_save
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'searchform'
,
'save'
,
$event
);
}
/**
* searchform 部件 search 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityWinGridViewBase
*/
public
searchform_search
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'searchform'
,
'search'
,
$event
);
}
/**
* searchform 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityWinGridViewBase
*/
public
searchform_load
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'searchform'
,
'load'
,
$event
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_tbitem1_openquickcreateview_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
.
grid
;
if
(
xData
.
getDatas
&&
xData
.
getDatas
instanceof
Function
)
{
datas
=
[...
xData
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
const
curUIService
:
OpportunityUIService
=
new
OpportunityUIService
();
curUIService
.
Opportunity_OpenQuickCreateView
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Opportunity"
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_tbitem4_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
.
grid
;
if
(
xData
.
getDatas
&&
xData
.
getDatas
instanceof
Function
)
{
datas
=
[...
xData
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
this
.
Edit
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Opportunity"
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_tbitem6_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
.
grid
;
if
(
xData
.
getDatas
&&
xData
.
getDatas
instanceof
Function
)
{
datas
=
[...
xData
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
this
.
Copy
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Opportunity"
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_tbitem8_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
.
grid
;
if
(
xData
.
getDatas
&&
xData
.
getDatas
instanceof
Function
)
{
datas
=
[...
xData
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
this
.
Remove
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Opportunity"
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_tbitem13_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
.
grid
;
if
(
xData
.
getDatas
&&
xData
.
getDatas
instanceof
Function
)
{
datas
=
[...
xData
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
this
.
ExportExcel
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Opportunity"
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_tbitem11_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
.
grid
;
if
(
xData
.
getDatas
&&
xData
.
getDatas
instanceof
Function
)
{
datas
=
[...
xData
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
this
.
Print
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Opportunity"
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_tbitem19_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
.
grid
;
if
(
xData
.
getDatas
&&
xData
.
getDatas
instanceof
Function
)
{
datas
=
[...
xData
.
getDatas
()];
}
if
(
params
){
datas
=
[
params
];
}
// 界面行为
this
.
ToggleFilter
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Opportunity"
);
}
/**
* 打开新建数据视图
*
* @param {any[]} args
* @param {*} [params]
* @param {*} [fullargs]
* @param {*} [$event]
* @param {*} [xData]
* @memberof OpportunityWinGridView
*/
public
newdata
(
args
:
any
[],
fullargs
?:
any
[],
params
?:
any
,
$event
?:
any
,
xData
?:
any
)
{
let
localContext
:
any
=
null
;
let
localViewParam
:
any
=
null
;
const
data
:
any
=
{};
if
(
args
[
0
].
srfsourcekey
){
data
.
srfsourcekey
=
args
[
0
].
srfsourcekey
;
}
let
tempContext
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
));
delete
tempContext
.
opportunity
;
if
(
args
.
length
>
0
){
Object
.
assign
(
tempContext
,
args
[
0
]);
}
let
deResParameters
:
any
[]
=
[];
if
(
tempContext
.
account
&&
true
){
deResParameters
=
[
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
]
}
const
parameters
:
any
[]
=
[
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
];
const
_this
:
any
=
this
;
const
openDrawer
=
(
view
:
any
,
data
:
any
)
=>
{
let
container
:
Subject
<
any
>
=
this
.
$appdrawer
.
openDrawer
(
view
,
tempContext
,
data
);
container
.
subscribe
((
result
:
any
)
=>
{
if
(
!
result
||
!
Object
.
is
(
result
.
ret
,
'OK'
))
{
return
;
}
if
(
!
xData
||
!
(
xData
.
refresh
instanceof
Function
))
{
return
;
}
xData
.
refresh
(
result
.
datas
);
});
}
const
view
:
any
=
{
viewname
:
'opportunity-quick-create'
,
height
:
0
,
width
:
0
,
title
:
this
.
$t
(
'entities.opportunity.views.quickcreate.title'
),
placement
:
'DRAWER_RIGHT'
,
};
openDrawer
(
view
,
data
);
}
/**
* 打开编辑数据视图
*
* @param {any[]} args
* @param {*} [params]
* @param {*} [fullargs]
* @param {*} [$event]
* @param {*} [xData]
* @memberof OpportunityWinGridView
*/
public
opendata
(
args
:
any
[],
fullargs
?:
any
[],
params
?:
any
,
$event
?:
any
,
xData
?:
any
)
{
let
localContext
:
any
=
null
;
let
localViewParam
:
any
=
null
;
const
data
:
any
=
{};
let
tempContext
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
));
if
(
args
.
length
>
0
){
Object
.
assign
(
tempContext
,
args
[
0
]);
}
let
deResParameters
:
any
[]
=
[];
if
(
tempContext
.
account
&&
true
){
deResParameters
=
[
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
]
}
const
parameters
:
any
[]
=
[
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'info'
,
parameterName
:
'info'
},
];
const
_this
:
any
=
this
;
const
openIndexViewTab
=
(
data
:
any
)
=>
{
const
routePath
=
this
.
$viewTool
.
buildUpRoutePath
(
this
.
$route
,
tempContext
,
deResParameters
,
parameters
,
args
,
data
);
this
.
$router
.
push
(
routePath
);
}
openIndexViewTab
(
data
);
}
/**
* 编辑
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof OpportunityWinGridViewBase
*/
public
Edit
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
if
(
args
.
length
===
0
)
{
return
;
}
const
_this
:
any
=
this
;
if
(
_this
.
opendata
&&
_this
.
opendata
instanceof
Function
)
{
const
data
:
any
=
{
};
if
(
args
.
length
>
0
)
{
Object
.
assign
(
data
,
{
opportunity
:
args
[
0
].
opportunity
})
}
_this
.
opendata
([{
...
data
}],
params
,
$event
,
xData
);
}
else
{
_this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'opendata 视图处理逻辑不存在,请添加!'
});
}
}
/**
* 拷贝
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof OpportunityWinGridViewBase
*/
public
Copy
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
if
(
args
.
length
===
0
)
{
return
;
}
const
_this
:
any
=
this
;
if
(
_this
.
newdata
&&
_this
.
newdata
instanceof
Function
)
{
const
data
:
any
=
{};
if
(
args
.
length
>
0
)
{
Object
.
assign
(
data
,
{
srfsourcekey
:
args
[
0
].
srfkey
})
actionContext
.
$store
.
commit
(
'addCopyData'
,
{
srfkey
:
args
[
0
].
srfkey
,
copyData
:
args
[
0
]
});
}
_this
.
newdata
([{
...
data
}],[{
...
data
}],
params
,
$event
,
xData
);
}
else
if
(
xData
&&
xData
.
copy
instanceof
Function
)
{
if
(
args
.
length
>
0
)
{
actionContext
.
$store
.
commit
(
'addCopyData'
,
{
srfkey
:
args
[
0
].
srfkey
,
copyData
:
args
[
0
]
});
}
xData
.
copy
(
args
[
0
].
srfkey
);
}
else
{
_this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'opendata 视图处理逻辑不存在,请添加!'
});
}
}
/**
* 删除
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof OpportunityWinGridViewBase
*/
public
Remove
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
const
_this
:
any
=
this
;
if
(
!
xData
||
!
(
xData
.
remove
instanceof
Function
))
{
return
;
}
xData
.
remove
(
args
);
}
/**
* 导出
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof OpportunityWinGridViewBase
*/
public
ExportExcel
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
const
_this
:
any
=
this
;
if
(
!
xData
||
!
(
xData
.
exportExcel
instanceof
Function
)
||
!
$event
)
{
return
;
}
xData
.
exportExcel
(
$event
.
exportparms
);
}
/**
* 打印
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof OpportunityWinGridViewBase
*/
public
Print
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
let
_this
:
any
=
this
;
if
(
!
xData
||
!
(
xData
.
print
instanceof
Function
)
||
!
$event
)
{
return
;
}
xData
.
print
();
}
/**
* 过滤
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof OpportunityWinGridViewBase
*/
public
ToggleFilter
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
const
_this
:
any
=
this
;
if
(
_this
.
hasOwnProperty
(
'isExpandSearchForm'
))
{
_this
.
isExpandSearchForm
=
!
_this
.
isExpandSearchForm
;
}
}
}
\ No newline at end of file
app_CRM/src/pages/sales/opportunity-win-grid-view/opportunity-win-grid-view.html
0 → 100644
浏览文件 @
1335b402
<studio-view-style2
viewName=
"opportunitywingridview"
viewTitle=
"商机信息"
class=
'degridview opportunity-win-grid-view'
>
<i-input
slot=
"quickSearch"
v-show=
"!isExpandSearchForm"
v-model=
"query"
search
@
on-search=
"onSearch($event)"
/>
<template
slot=
"toolbar"
>
<view-toolbar
mode=
"STYLE2"
:model=
"toolBarModels"
@
item-click=
"toolbar_click($event)"
/>
</template>
<template
slot=
"searchForm"
>
<view
_searchform
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:showBusyIndicator=
"true"
v-show=
"isExpandSearchForm"
loaddraftAction=
"FilterGetDraft"
loadAction=
"FilterGet"
name=
"searchform"
ref=
'searchform'
@
save=
"searchform_save($event)"
@
search=
"searchform_search($event)"
@
load=
"searchform_load($event)"
@
closeview=
"closeView($event)"
>
</view
_searchform
>
</template>
<view
_grid
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:isSingleSelect=
"isGridSingleSelect"
:showBusyIndicator=
"true"
:isOpenEdit=
"false"
:gridRowActiveMode=
"gridRowActiveMode"
@
save=
"onSave"
updateAction=
""
removeAction=
"Remove"
loaddraftAction=
""
loadAction=
""
createAction=
""
fetchAction=
"FetchWin"
:newdata=
"newdata"
:opendata=
"opendata"
name=
"grid"
ref=
'grid'
@
selectionchange=
"grid_selectionchange($event)"
@
beforeload=
"grid_beforeload($event)"
@
rowdblclick=
"grid_rowdblclick($event)"
@
remove=
"grid_remove($event)"
@
load=
"grid_load($event)"
@
closeview=
"closeView($event)"
>
</view
_grid
>
</studio-view-style2>
\ No newline at end of file
app_CRM/src/pages/sales/opportunity-win-grid-view/opportunity-win-grid-view.vue
0 → 100644
浏览文件 @
1335b402
<
template
src=
"./opportunity-win-grid-view.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { OpportunityWinGridViewBase } from './opportunity-win-grid-view-base';
import view_grid from '@widgets/opportunity/main-grid/main-grid.vue';
import view_searchform from '@widgets/opportunity/default-searchform/default-searchform.vue';
/**
* 商机信息视图
*
* @export
* @class OpportunityWinGridView
* @extends {OpportunityWinGridViewBase}
*/
@Component({
components: {
view_grid,
view_searchform,
}
})
@VueLifeCycleProcessing()
export default class OpportunityWinGridView extends OpportunityWinGridViewBase { }
</script>
app_CRM/src/pages/ungroup/central/page-register.ts
浏览文件 @
1335b402
...
@@ -26,13 +26,16 @@ export const PageComponents = {
...
@@ -26,13 +26,16 @@ export const PageComponents = {
Vue
.
component
(
'quote-info'
,
()
=>
import
(
'@pages/sales/quote-info/quote-info.vue'
));
Vue
.
component
(
'quote-info'
,
()
=>
import
(
'@pages/sales/quote-info/quote-info.vue'
));
Vue
.
component
(
'contact-usable-grid-view'
,
()
=>
import
(
'@pages/base/contact-usable-grid-view/contact-usable-grid-view.vue'
));
Vue
.
component
(
'contact-usable-grid-view'
,
()
=>
import
(
'@pages/base/contact-usable-grid-view/contact-usable-grid-view.vue'
));
Vue
.
component
(
'ibiz-list-grid-view'
,
()
=>
import
(
'@pages/marketing/ibiz-list-grid-view/ibiz-list-grid-view.vue'
));
Vue
.
component
(
'ibiz-list-grid-view'
,
()
=>
import
(
'@pages/marketing/ibiz-list-grid-view/ibiz-list-grid-view.vue'
));
Vue
.
component
(
'opportunity-win-grid-view'
,
()
=>
import
(
'@pages/sales/opportunity-win-grid-view/opportunity-win-grid-view.vue'
));
Vue
.
component
(
'discount-type-pickup-view'
,
()
=>
import
(
'@pages/sales/discount-type-pickup-view/discount-type-pickup-view.vue'
));
Vue
.
component
(
'discount-type-pickup-view'
,
()
=>
import
(
'@pages/sales/discount-type-pickup-view/discount-type-pickup-view.vue'
));
Vue
.
component
(
'opportunity-edit-date-panel-view'
,
()
=>
import
(
'@pages/sales/opportunity-edit-date-panel-view/opportunity-edit-date-panel-view.vue'
));
Vue
.
component
(
'ibiz-list-info'
,
()
=>
import
(
'@pages/marketing/ibiz-list-info/ibiz-list-info.vue'
));
Vue
.
component
(
'ibiz-list-info'
,
()
=>
import
(
'@pages/marketing/ibiz-list-info/ibiz-list-info.vue'
));
Vue
.
component
(
'knowledge-article-grid-view'
,
()
=>
import
(
'@pages/base/knowledge-article-grid-view/knowledge-article-grid-view.vue'
));
Vue
.
component
(
'knowledge-article-grid-view'
,
()
=>
import
(
'@pages/base/knowledge-article-grid-view/knowledge-article-grid-view.vue'
));
Vue
.
component
(
'product-quick-create-view'
,
()
=>
import
(
'@pages/product/product-quick-create-view/product-quick-create-view.vue'
));
Vue
.
component
(
'product-quick-create-view'
,
()
=>
import
(
'@pages/product/product-quick-create-view/product-quick-create-view.vue'
));
Vue
.
component
(
'campaign-info-manager'
,
()
=>
import
(
'@pages/marketing/campaign-info-manager/campaign-info-manager.vue'
));
Vue
.
component
(
'campaign-info-manager'
,
()
=>
import
(
'@pages/marketing/campaign-info-manager/campaign-info-manager.vue'
));
Vue
.
component
(
'opportunity-info-abstract'
,
()
=>
import
(
'@pages/sales/opportunity-info-abstract/opportunity-info-abstract.vue'
));
Vue
.
component
(
'opportunity-info-abstract'
,
()
=>
import
(
'@pages/sales/opportunity-info-abstract/opportunity-info-abstract.vue'
));
Vue
.
component
(
'list-contact-edit-view'
,
()
=>
import
(
'@pages/marketing/list-contact-edit-view/list-contact-edit-view.vue'
));
Vue
.
component
(
'list-contact-edit-view'
,
()
=>
import
(
'@pages/marketing/list-contact-edit-view/list-contact-edit-view.vue'
));
Vue
.
component
(
'opportunity-state-tab-view'
,
()
=>
import
(
'@pages/sales/opportunity-state-tab-view/opportunity-state-tab-view.vue'
));
Vue
.
component
(
'campaign-grid-view'
,
()
=>
import
(
'@pages/marketing/campaign-grid-view/campaign-grid-view.vue'
));
Vue
.
component
(
'campaign-grid-view'
,
()
=>
import
(
'@pages/marketing/campaign-grid-view/campaign-grid-view.vue'
));
Vue
.
component
(
'knowledge-article-summary-view'
,
()
=>
import
(
'@pages/base/knowledge-article-summary-view/knowledge-article-summary-view.vue'
));
Vue
.
component
(
'knowledge-article-summary-view'
,
()
=>
import
(
'@pages/base/knowledge-article-summary-view/knowledge-article-summary-view.vue'
));
Vue
.
component
(
'list-lead-by-list'
,
()
=>
import
(
'@pages/marketing/list-lead-by-list/list-lead-by-list.vue'
));
Vue
.
component
(
'list-lead-by-list'
,
()
=>
import
(
'@pages/marketing/list-lead-by-list/list-lead-by-list.vue'
));
...
@@ -54,9 +57,9 @@ export const PageComponents = {
...
@@ -54,9 +57,9 @@ export const PageComponents = {
Vue
.
component
(
'fax-edit-view'
,
()
=>
import
(
'@pages/base/fax-edit-view/fax-edit-view.vue'
));
Vue
.
component
(
'fax-edit-view'
,
()
=>
import
(
'@pages/base/fax-edit-view/fax-edit-view.vue'
));
Vue
.
component
(
'incident-quick-create-view'
,
()
=>
import
(
'@pages/service/incident-quick-create-view/incident-quick-create-view.vue'
));
Vue
.
component
(
'incident-quick-create-view'
,
()
=>
import
(
'@pages/service/incident-quick-create-view/incident-quick-create-view.vue'
));
Vue
.
component
(
'campaign-list-grid-view'
,
()
=>
import
(
'@pages/marketing/campaign-list-grid-view/campaign-list-grid-view.vue'
));
Vue
.
component
(
'campaign-list-grid-view'
,
()
=>
import
(
'@pages/marketing/campaign-list-grid-view/campaign-list-grid-view.vue'
));
Vue
.
component
(
'subject-pickup-view'
,
()
=>
import
(
'@pages/base/subject-pickup-view/subject-pickup-view.vue'
));
Vue
.
component
(
'activity-pointer-edit-view'
,
()
=>
import
(
'@pages/base/activity-pointer-edit-view/activity-pointer-edit-view.vue'
));
Vue
.
component
(
'activity-pointer-edit-view'
,
()
=>
import
(
'@pages/base/activity-pointer-edit-view/activity-pointer-edit-view.vue'
));
Vue
.
component
(
'lead-grid-view'
,
()
=>
import
(
'@pages/sales/lead-grid-view/lead-grid-view.vue'
));
Vue
.
component
(
'lead-grid-view'
,
()
=>
import
(
'@pages/sales/lead-grid-view/lead-grid-view.vue'
));
Vue
.
component
(
'subject-pickup-view'
,
()
=>
import
(
'@pages/base/subject-pickup-view/subject-pickup-view.vue'
));
Vue
.
component
(
'goal-quick-create-view'
,
()
=>
import
(
'@pages/sales/goal-quick-create-view/goal-quick-create-view.vue'
));
Vue
.
component
(
'goal-quick-create-view'
,
()
=>
import
(
'@pages/sales/goal-quick-create-view/goal-quick-create-view.vue'
));
Vue
.
component
(
'sales-literature-grid-view'
,
()
=>
import
(
'@pages/sales/sales-literature-grid-view/sales-literature-grid-view.vue'
));
Vue
.
component
(
'sales-literature-grid-view'
,
()
=>
import
(
'@pages/sales/sales-literature-grid-view/sales-literature-grid-view.vue'
));
Vue
.
component
(
'incident-info-view'
,
()
=>
import
(
'@pages/service/incident-info-view/incident-info-view.vue'
));
Vue
.
component
(
'incident-info-view'
,
()
=>
import
(
'@pages/service/incident-info-view/incident-info-view.vue'
));
...
@@ -82,8 +85,8 @@ export const PageComponents = {
...
@@ -82,8 +85,8 @@ export const PageComponents = {
Vue
.
component
(
'lead-competitor-grid-view'
,
()
=>
import
(
'@pages/sales/lead-competitor-grid-view/lead-competitor-grid-view.vue'
));
Vue
.
component
(
'lead-competitor-grid-view'
,
()
=>
import
(
'@pages/sales/lead-competitor-grid-view/lead-competitor-grid-view.vue'
));
Vue
.
component
(
'campaign-quick-create-view'
,
()
=>
import
(
'@pages/marketing/campaign-quick-create-view/campaign-quick-create-view.vue'
));
Vue
.
component
(
'campaign-quick-create-view'
,
()
=>
import
(
'@pages/marketing/campaign-quick-create-view/campaign-quick-create-view.vue'
));
Vue
.
component
(
'discount-type-pickup-grid-view'
,
()
=>
import
(
'@pages/sales/discount-type-pickup-grid-view/discount-type-pickup-grid-view.vue'
));
Vue
.
component
(
'discount-type-pickup-grid-view'
,
()
=>
import
(
'@pages/sales/discount-type-pickup-grid-view/discount-type-pickup-grid-view.vue'
));
Vue
.
component
(
'lead-excluded-grid-view'
,
()
=>
import
(
'@pages/sales/lead-excluded-grid-view/lead-excluded-grid-view.vue'
));
Vue
.
component
(
'competitor-info'
,
()
=>
import
(
'@pages/sales/competitor-info/competitor-info.vue'
));
Vue
.
component
(
'competitor-info'
,
()
=>
import
(
'@pages/sales/competitor-info/competitor-info.vue'
));
Vue
.
component
(
'lead-excluded-grid-view'
,
()
=>
import
(
'@pages/sales/lead-excluded-grid-view/lead-excluded-grid-view.vue'
));
Vue
.
component
(
'campaign-list-edit-view'
,
()
=>
import
(
'@pages/marketing/campaign-list-edit-view/campaign-list-edit-view.vue'
));
Vue
.
component
(
'campaign-list-edit-view'
,
()
=>
import
(
'@pages/marketing/campaign-list-edit-view/campaign-list-edit-view.vue'
));
Vue
.
component
(
'lead-info'
,
()
=>
import
(
'@pages/sales/lead-info/lead-info.vue'
));
Vue
.
component
(
'lead-info'
,
()
=>
import
(
'@pages/sales/lead-info/lead-info.vue'
));
Vue
.
component
(
'lead-on-grid-view'
,
()
=>
import
(
'@pages/sales/lead-on-grid-view/lead-on-grid-view.vue'
));
Vue
.
component
(
'lead-on-grid-view'
,
()
=>
import
(
'@pages/sales/lead-on-grid-view/lead-on-grid-view.vue'
));
...
@@ -128,6 +131,7 @@ export const PageComponents = {
...
@@ -128,6 +131,7 @@ export const PageComponents = {
Vue
.
component
(
'account-edit-data-panel'
,
()
=>
import
(
'@pages/base/account-edit-data-panel/account-edit-data-panel.vue'
));
Vue
.
component
(
'account-edit-data-panel'
,
()
=>
import
(
'@pages/base/account-edit-data-panel/account-edit-data-panel.vue'
));
Vue
.
component
(
'contact-info-abstract'
,
()
=>
import
(
'@pages/base/contact-info-abstract/contact-info-abstract.vue'
));
Vue
.
component
(
'contact-info-abstract'
,
()
=>
import
(
'@pages/base/contact-info-abstract/contact-info-abstract.vue'
));
Vue
.
component
(
'invoice-detail-edit-view'
,
()
=>
import
(
'@pages/finance/invoice-detail-edit-view/invoice-detail-edit-view.vue'
));
Vue
.
component
(
'invoice-detail-edit-view'
,
()
=>
import
(
'@pages/finance/invoice-detail-edit-view/invoice-detail-edit-view.vue'
));
Vue
.
component
(
'opportunity-lost-grid-view'
,
()
=>
import
(
'@pages/sales/opportunity-lost-grid-view/opportunity-lost-grid-view.vue'
));
Vue
.
component
(
'product-association-edit-view'
,
()
=>
import
(
'@pages/product/product-association-edit-view/product-association-edit-view.vue'
));
Vue
.
component
(
'product-association-edit-view'
,
()
=>
import
(
'@pages/product/product-association-edit-view/product-association-edit-view.vue'
));
Vue
.
component
(
'sales-order-grid-view'
,
()
=>
import
(
'@pages/sales/sales-order-grid-view/sales-order-grid-view.vue'
));
Vue
.
component
(
'sales-order-grid-view'
,
()
=>
import
(
'@pages/sales/sales-order-grid-view/sales-order-grid-view.vue'
));
Vue
.
component
(
'metric-pickup-view'
,
()
=>
import
(
'@pages/base/metric-pickup-view/metric-pickup-view.vue'
));
Vue
.
component
(
'metric-pickup-view'
,
()
=>
import
(
'@pages/base/metric-pickup-view/metric-pickup-view.vue'
));
...
@@ -140,8 +144,8 @@ export const PageComponents = {
...
@@ -140,8 +144,8 @@ export const PageComponents = {
Vue
.
component
(
'sales-literature-item-edit-view'
,
()
=>
import
(
'@pages/sales/sales-literature-item-edit-view/sales-literature-item-edit-view.vue'
));
Vue
.
component
(
'sales-literature-item-edit-view'
,
()
=>
import
(
'@pages/sales/sales-literature-item-edit-view/sales-literature-item-edit-view.vue'
));
Vue
.
component
(
'competitor-grid-view'
,
()
=>
import
(
'@pages/sales/competitor-grid-view/competitor-grid-view.vue'
));
Vue
.
component
(
'competitor-grid-view'
,
()
=>
import
(
'@pages/sales/competitor-grid-view/competitor-grid-view.vue'
));
Vue
.
component
(
'incident-pickup-grid-view'
,
()
=>
import
(
'@pages/service/incident-pickup-grid-view/incident-pickup-grid-view.vue'
));
Vue
.
component
(
'incident-pickup-grid-view'
,
()
=>
import
(
'@pages/service/incident-pickup-grid-view/incident-pickup-grid-view.vue'
));
Vue
.
component
(
'opportunity-product-opp-opp-pro-grid-view'
,
()
=>
import
(
'@pages/sales/opportunity-product-opp-opp-pro-grid-view/opportunity-product-opp-opp-pro-grid-view.vue'
));
Vue
.
component
(
'ibiz-list-quick-create'
,
()
=>
import
(
'@pages/marketing/ibiz-list-quick-create/ibiz-list-quick-create.vue'
));
Vue
.
component
(
'ibiz-list-quick-create'
,
()
=>
import
(
'@pages/marketing/ibiz-list-quick-create/ibiz-list-quick-create.vue'
));
Vue
.
component
(
'opportunity-product-opp-opp-pro-grid-view'
,
()
=>
import
(
'@pages/sales/opportunity-product-opp-opp-pro-grid-view/opportunity-product-opp-opp-pro-grid-view.vue'
));
Vue
.
component
(
'contact-tab-exp-view'
,
()
=>
import
(
'@pages/base/contact-tab-exp-view/contact-tab-exp-view.vue'
));
Vue
.
component
(
'contact-tab-exp-view'
,
()
=>
import
(
'@pages/base/contact-tab-exp-view/contact-tab-exp-view.vue'
));
Vue
.
component
(
'product-association-grid-view'
,
()
=>
import
(
'@pages/product/product-association-grid-view/product-association-grid-view.vue'
));
Vue
.
component
(
'product-association-grid-view'
,
()
=>
import
(
'@pages/product/product-association-grid-view/product-association-grid-view.vue'
));
Vue
.
component
(
'appointment-quick-create'
,
()
=>
import
(
'@pages/base/appointment-quick-create/appointment-quick-create.vue'
));
Vue
.
component
(
'appointment-quick-create'
,
()
=>
import
(
'@pages/base/appointment-quick-create/appointment-quick-create.vue'
));
...
@@ -155,8 +159,8 @@ export const PageComponents = {
...
@@ -155,8 +159,8 @@ export const PageComponents = {
Vue
.
component
(
'quote-option-view'
,
()
=>
import
(
'@pages/sales/quote-option-view/quote-option-view.vue'
));
Vue
.
component
(
'quote-option-view'
,
()
=>
import
(
'@pages/sales/quote-option-view/quote-option-view.vue'
));
Vue
.
component
(
'sales-literature-info-sal-lit-view'
,
()
=>
import
(
'@pages/sales/sales-literature-info-sal-lit-view/sales-literature-info-sal-lit-view.vue'
));
Vue
.
component
(
'sales-literature-info-sal-lit-view'
,
()
=>
import
(
'@pages/sales/sales-literature-info-sal-lit-view/sales-literature-info-sal-lit-view.vue'
));
Vue
.
component
(
'goal-pickup-view'
,
()
=>
import
(
'@pages/sales/goal-pickup-view/goal-pickup-view.vue'
));
Vue
.
component
(
'goal-pickup-view'
,
()
=>
import
(
'@pages/sales/goal-pickup-view/goal-pickup-view.vue'
));
Vue
.
component
(
'campaign-info-campagin'
,
()
=>
import
(
'@pages/marketing/campaign-info-campagin/campaign-info-campagin.vue'
));
Vue
.
component
(
'list-contact-inner'
,
()
=>
import
(
'@pages/marketing/list-contact-inner/list-contact-inner.vue'
));
Vue
.
component
(
'list-contact-inner'
,
()
=>
import
(
'@pages/marketing/list-contact-inner/list-contact-inner.vue'
));
Vue
.
component
(
'campaign-info-campagin'
,
()
=>
import
(
'@pages/marketing/campaign-info-campagin/campaign-info-campagin.vue'
));
Vue
.
component
(
'appointment-edit-view'
,
()
=>
import
(
'@pages/base/appointment-edit-view/appointment-edit-view.vue'
));
Vue
.
component
(
'appointment-edit-view'
,
()
=>
import
(
'@pages/base/appointment-edit-view/appointment-edit-view.vue'
));
Vue
.
component
(
'list-account-edit-view'
,
()
=>
import
(
'@pages/marketing/list-account-edit-view/list-account-edit-view.vue'
));
Vue
.
component
(
'list-account-edit-view'
,
()
=>
import
(
'@pages/marketing/list-account-edit-view/list-account-edit-view.vue'
));
Vue
.
component
(
'entitlement-pickup-grid-view'
,
()
=>
import
(
'@pages/service/entitlement-pickup-grid-view/entitlement-pickup-grid-view.vue'
));
Vue
.
component
(
'entitlement-pickup-grid-view'
,
()
=>
import
(
'@pages/service/entitlement-pickup-grid-view/entitlement-pickup-grid-view.vue'
));
...
@@ -185,8 +189,8 @@ export const PageComponents = {
...
@@ -185,8 +189,8 @@ export const PageComponents = {
Vue
.
component
(
'activity-pointer-by-parent-key'
,
()
=>
import
(
'@pages/base/activity-pointer-by-parent-key/activity-pointer-by-parent-key.vue'
));
Vue
.
component
(
'activity-pointer-by-parent-key'
,
()
=>
import
(
'@pages/base/activity-pointer-by-parent-key/activity-pointer-by-parent-key.vue'
));
Vue
.
component
(
'entitlement-pickup-view'
,
()
=>
import
(
'@pages/service/entitlement-pickup-view/entitlement-pickup-view.vue'
));
Vue
.
component
(
'entitlement-pickup-view'
,
()
=>
import
(
'@pages/service/entitlement-pickup-view/entitlement-pickup-view.vue'
));
Vue
.
component
(
'uom-pickup-view'
,
()
=>
import
(
'@pages/base/uom-pickup-view/uom-pickup-view.vue'
));
Vue
.
component
(
'uom-pickup-view'
,
()
=>
import
(
'@pages/base/uom-pickup-view/uom-pickup-view.vue'
));
Vue
.
component
(
'contact-summary-view'
,
()
=>
import
(
'@pages/base/contact-summary-view/contact-summary-view.vue'
));
Vue
.
component
(
'list-account-inner'
,
()
=>
import
(
'@pages/marketing/list-account-inner/list-account-inner.vue'
));
Vue
.
component
(
'list-account-inner'
,
()
=>
import
(
'@pages/marketing/list-account-inner/list-account-inner.vue'
));
Vue
.
component
(
'contact-summary-view'
,
()
=>
import
(
'@pages/base/contact-summary-view/contact-summary-view.vue'
));
Vue
.
component
(
'product-substitute-grid-view'
,
()
=>
import
(
'@pages/product/product-substitute-grid-view/product-substitute-grid-view.vue'
));
Vue
.
component
(
'product-substitute-grid-view'
,
()
=>
import
(
'@pages/product/product-substitute-grid-view/product-substitute-grid-view.vue'
));
Vue
.
component
(
'task-edit-view'
,
()
=>
import
(
'@pages/base/task-edit-view/task-edit-view.vue'
));
Vue
.
component
(
'task-edit-view'
,
()
=>
import
(
'@pages/base/task-edit-view/task-edit-view.vue'
));
Vue
.
component
(
'competitor-pickup-view'
,
()
=>
import
(
'@pages/sales/competitor-pickup-view/competitor-pickup-view.vue'
));
Vue
.
component
(
'competitor-pickup-view'
,
()
=>
import
(
'@pages/sales/competitor-pickup-view/competitor-pickup-view.vue'
));
...
...
app_CRM/src/pages/ungroup/central/router.ts
浏览文件 @
1335b402
...
@@ -833,6 +833,66 @@ const router = new Router({
...
@@ -833,6 +833,66 @@ const router = new Router({
},
},
component
:
()
=>
import
(
'@pages/marketing/ibiz-list-grid-view/ibiz-list-grid-view.vue'
),
component
:
()
=>
import
(
'@pages/marketing/ibiz-list-grid-view/ibiz-list-grid-view.vue'
),
},
},
{
path
:
'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/wingridview/:wingridview?'
,
meta
:
{
caption
:
'entities.opportunity.views.wingridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'wingridview'
,
parameterName
:
'wingridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-win-grid-view/opportunity-win-grid-view.vue'
),
},
{
path
:
'contacts/:contact?/opportunities/:opportunity?/wingridview/:wingridview?'
,
meta
:
{
caption
:
'entities.opportunity.views.wingridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'wingridview'
,
parameterName
:
'wingridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-win-grid-view/opportunity-win-grid-view.vue'
),
},
{
path
:
'accounts/:account?/opportunities/:opportunity?/wingridview/:wingridview?'
,
meta
:
{
caption
:
'entities.opportunity.views.wingridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'wingridview'
,
parameterName
:
'wingridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-win-grid-view/opportunity-win-grid-view.vue'
),
},
{
path
:
'opportunities/:opportunity?/wingridview/:wingridview?'
,
meta
:
{
caption
:
'entities.opportunity.views.wingridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'wingridview'
,
parameterName
:
'wingridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-win-grid-view/opportunity-win-grid-view.vue'
),
},
{
{
path
:
'discounttypes/:discounttype?/pickupview/:pickupview?'
,
path
:
'discounttypes/:discounttype?/pickupview/:pickupview?'
,
meta
:
{
meta
:
{
...
@@ -847,6 +907,66 @@ const router = new Router({
...
@@ -847,6 +907,66 @@ const router = new Router({
},
},
component
:
()
=>
import
(
'@pages/sales/discount-type-pickup-view/discount-type-pickup-view.vue'
),
component
:
()
=>
import
(
'@pages/sales/discount-type-pickup-view/discount-type-pickup-view.vue'
),
},
},
{
path
:
'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/edit_datepanelview/:edit_datepanelview?'
,
meta
:
{
caption
:
'entities.opportunity.views.edit_datepanelview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'edit_datepanelview'
,
parameterName
:
'edit_datepanelview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-edit-date-panel-view/opportunity-edit-date-panel-view.vue'
),
},
{
path
:
'contacts/:contact?/opportunities/:opportunity?/edit_datepanelview/:edit_datepanelview?'
,
meta
:
{
caption
:
'entities.opportunity.views.edit_datepanelview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'edit_datepanelview'
,
parameterName
:
'edit_datepanelview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-edit-date-panel-view/opportunity-edit-date-panel-view.vue'
),
},
{
path
:
'accounts/:account?/opportunities/:opportunity?/edit_datepanelview/:edit_datepanelview?'
,
meta
:
{
caption
:
'entities.opportunity.views.edit_datepanelview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'edit_datepanelview'
,
parameterName
:
'edit_datepanelview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-edit-date-panel-view/opportunity-edit-date-panel-view.vue'
),
},
{
path
:
'opportunities/:opportunity?/edit_datepanelview/:edit_datepanelview?'
,
meta
:
{
caption
:
'entities.opportunity.views.edit_datepanelview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'edit_datepanelview'
,
parameterName
:
'edit_datepanelview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-edit-date-panel-view/opportunity-edit-date-panel-view.vue'
),
},
{
{
path
:
'ibizlists/:ibizlist?/info/:info?'
,
path
:
'ibizlists/:ibizlist?/info/:info?'
,
meta
:
{
meta
:
{
...
@@ -1023,6 +1143,66 @@ const router = new Router({
...
@@ -1023,6 +1143,66 @@ const router = new Router({
},
},
component
:
()
=>
import
(
'@pages/marketing/list-contact-edit-view/list-contact-edit-view.vue'
),
component
:
()
=>
import
(
'@pages/marketing/list-contact-edit-view/list-contact-edit-view.vue'
),
},
},
{
path
:
'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/statetabview/:statetabview?'
,
meta
:
{
caption
:
'entities.opportunity.views.statetabview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'statetabview'
,
parameterName
:
'statetabview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-state-tab-view/opportunity-state-tab-view.vue'
),
},
{
path
:
'contacts/:contact?/opportunities/:opportunity?/statetabview/:statetabview?'
,
meta
:
{
caption
:
'entities.opportunity.views.statetabview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'statetabview'
,
parameterName
:
'statetabview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-state-tab-view/opportunity-state-tab-view.vue'
),
},
{
path
:
'accounts/:account?/opportunities/:opportunity?/statetabview/:statetabview?'
,
meta
:
{
caption
:
'entities.opportunity.views.statetabview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'statetabview'
,
parameterName
:
'statetabview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-state-tab-view/opportunity-state-tab-view.vue'
),
},
{
path
:
'opportunities/:opportunity?/statetabview/:statetabview?'
,
meta
:
{
caption
:
'entities.opportunity.views.statetabview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'statetabview'
,
parameterName
:
'statetabview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-state-tab-view/opportunity-state-tab-view.vue'
),
},
{
{
path
:
'campaigns/:campaign?/gridview/:gridview?'
,
path
:
'campaigns/:campaign?/gridview/:gridview?'
,
meta
:
{
meta
:
{
...
@@ -1711,6 +1891,20 @@ const router = new Router({
...
@@ -1711,6 +1891,20 @@ const router = new Router({
},
},
component
:
()
=>
import
(
'@pages/marketing/campaign-list-grid-view/campaign-list-grid-view.vue'
),
component
:
()
=>
import
(
'@pages/marketing/campaign-list-grid-view/campaign-list-grid-view.vue'
),
},
},
{
path
:
'subjects/:subject?/pickupview/:pickupview?'
,
meta
:
{
caption
:
'entities.subject.views.pickupview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'subjects'
,
parameterName
:
'subject'
},
{
pathName
:
'pickupview'
,
parameterName
:
'pickupview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/base/subject-pickup-view/subject-pickup-view.vue'
),
},
{
{
path
:
'activitypointers/:activitypointer?/editview/:editview?'
,
path
:
'activitypointers/:activitypointer?/editview/:editview?'
,
meta
:
{
meta
:
{
...
@@ -1800,20 +1994,6 @@ const router = new Router({
...
@@ -1800,20 +1994,6 @@ const router = new Router({
},
},
component
:
()
=>
import
(
'@pages/sales/lead-grid-view/lead-grid-view.vue'
),
component
:
()
=>
import
(
'@pages/sales/lead-grid-view/lead-grid-view.vue'
),
},
},
{
path
:
'subjects/:subject?/pickupview/:pickupview?'
,
meta
:
{
caption
:
'entities.subject.views.pickupview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'subjects'
,
parameterName
:
'subject'
},
{
pathName
:
'pickupview'
,
parameterName
:
'pickupview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/base/subject-pickup-view/subject-pickup-view.vue'
),
},
{
{
path
:
'goals/:goal?/quickcreateview/:quickcreateview?'
,
path
:
'goals/:goal?/quickcreateview/:quickcreateview?'
,
meta
:
{
meta
:
{
...
@@ -2564,6 +2744,20 @@ const router = new Router({
...
@@ -2564,6 +2744,20 @@ const router = new Router({
},
},
component
:
()
=>
import
(
'@pages/marketing/campaign-response-quick-create/campaign-response-quick-create.vue'
),
component
:
()
=>
import
(
'@pages/marketing/campaign-response-quick-create/campaign-response-quick-create.vue'
),
},
},
{
path
:
'competitors/:competitor?/info/:info?'
,
meta
:
{
caption
:
'entities.competitor.views.info.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'competitors'
,
parameterName
:
'competitor'
},
{
pathName
:
'info'
,
parameterName
:
'info'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/competitor-info/competitor-info.vue'
),
},
{
{
path
:
'accounts/:account?/contacts/:contact?/leads/:lead?/excludedgridview/:excludedgridview?'
,
path
:
'accounts/:account?/contacts/:contact?/leads/:lead?/excludedgridview/:excludedgridview?'
,
meta
:
{
meta
:
{
...
@@ -2639,20 +2833,6 @@ const router = new Router({
...
@@ -2639,20 +2833,6 @@ const router = new Router({
},
},
component
:
()
=>
import
(
'@pages/sales/lead-excluded-grid-view/lead-excluded-grid-view.vue'
),
component
:
()
=>
import
(
'@pages/sales/lead-excluded-grid-view/lead-excluded-grid-view.vue'
),
},
},
{
path
:
'competitors/:competitor?/info/:info?'
,
meta
:
{
caption
:
'entities.competitor.views.info.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'competitors'
,
parameterName
:
'competitor'
},
{
pathName
:
'info'
,
parameterName
:
'info'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/competitor-info/competitor-info.vue'
),
},
{
{
path
:
'ibizlists/:ibizlist?/campaignlists/:campaignlist?/editview/:editview?'
,
path
:
'ibizlists/:ibizlist?/campaignlists/:campaignlist?/editview/:editview?'
,
meta
:
{
meta
:
{
...
@@ -4022,6 +4202,66 @@ const router = new Router({
...
@@ -4022,6 +4202,66 @@ const router = new Router({
},
},
component
:
()
=>
import
(
'@pages/finance/invoice-detail-edit-view/invoice-detail-edit-view.vue'
),
component
:
()
=>
import
(
'@pages/finance/invoice-detail-edit-view/invoice-detail-edit-view.vue'
),
},
},
{
path
:
'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/lostgridview/:lostgridview?'
,
meta
:
{
caption
:
'entities.opportunity.views.lostgridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'lostgridview'
,
parameterName
:
'lostgridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-lost-grid-view/opportunity-lost-grid-view.vue'
),
},
{
path
:
'contacts/:contact?/opportunities/:opportunity?/lostgridview/:lostgridview?'
,
meta
:
{
caption
:
'entities.opportunity.views.lostgridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'lostgridview'
,
parameterName
:
'lostgridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-lost-grid-view/opportunity-lost-grid-view.vue'
),
},
{
path
:
'accounts/:account?/opportunities/:opportunity?/lostgridview/:lostgridview?'
,
meta
:
{
caption
:
'entities.opportunity.views.lostgridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'lostgridview'
,
parameterName
:
'lostgridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-lost-grid-view/opportunity-lost-grid-view.vue'
),
},
{
path
:
'opportunities/:opportunity?/lostgridview/:lostgridview?'
,
meta
:
{
caption
:
'entities.opportunity.views.lostgridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'lostgridview'
,
parameterName
:
'lostgridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/opportunity-lost-grid-view/opportunity-lost-grid-view.vue'
),
},
{
{
path
:
'products/:product?/productassociations/:productassociation?/editview/:editview?'
,
path
:
'products/:product?/productassociations/:productassociation?/editview/:editview?'
,
meta
:
{
meta
:
{
...
@@ -4388,6 +4628,20 @@ const router = new Router({
...
@@ -4388,6 +4628,20 @@ const router = new Router({
},
},
component
:
()
=>
import
(
'@pages/service/incident-pickup-grid-view/incident-pickup-grid-view.vue'
),
component
:
()
=>
import
(
'@pages/service/incident-pickup-grid-view/incident-pickup-grid-view.vue'
),
},
},
{
path
:
'ibizlists/:ibizlist?/quickcreate/:quickcreate?'
,
meta
:
{
caption
:
'entities.ibizlist.views.quickcreate.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'ibizlists'
,
parameterName
:
'ibizlist'
},
{
pathName
:
'quickcreate'
,
parameterName
:
'quickcreate'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/marketing/ibiz-list-quick-create/ibiz-list-quick-create.vue'
),
},
{
{
path
:
'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/opportunityproducts/:opportunityproduct?/opp_oppprogridview/:opp_oppprogridview?'
,
path
:
'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/opportunityproducts/:opportunityproduct?/opp_oppprogridview/:opp_oppprogridview?'
,
meta
:
{
meta
:
{
...
@@ -4466,20 +4720,6 @@ const router = new Router({
...
@@ -4466,20 +4720,6 @@ const router = new Router({
},
},
component
:
()
=>
import
(
'@pages/sales/opportunity-product-opp-opp-pro-grid-view/opportunity-product-opp-opp-pro-grid-view.vue'
),
component
:
()
=>
import
(
'@pages/sales/opportunity-product-opp-opp-pro-grid-view/opportunity-product-opp-opp-pro-grid-view.vue'
),
},
},
{
path
:
'ibizlists/:ibizlist?/quickcreate/:quickcreate?'
,
meta
:
{
caption
:
'entities.ibizlist.views.quickcreate.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'ibizlists'
,
parameterName
:
'ibizlist'
},
{
pathName
:
'quickcreate'
,
parameterName
:
'quickcreate'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/marketing/ibiz-list-quick-create/ibiz-list-quick-create.vue'
),
},
{
{
path
:
'accounts/:account?/contacts/:contact?/tabexpview/:tabexpview?'
,
path
:
'accounts/:account?/contacts/:contact?/tabexpview/:tabexpview?'
,
meta
:
{
meta
:
{
...
@@ -4943,20 +5183,6 @@ const router = new Router({
...
@@ -4943,20 +5183,6 @@ const router = new Router({
},
},
component
:
()
=>
import
(
'@pages/base/contact-pickup-view/contact-pickup-view.vue'
),
component
:
()
=>
import
(
'@pages/base/contact-pickup-view/contact-pickup-view.vue'
),
},
},
{
path
:
'campaigns/:campaign?/info_campagin/:info_campagin?'
,
meta
:
{
caption
:
'entities.campaign.views.info_campagin.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'campaigns'
,
parameterName
:
'campaign'
},
{
pathName
:
'info_campagin'
,
parameterName
:
'info_campagin'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/marketing/campaign-info-campagin/campaign-info-campagin.vue'
),
},
{
{
path
:
'accounts/:account?/contacts/:contact?/listcontacts/:listcontact?/inner/:inner?'
,
path
:
'accounts/:account?/contacts/:contact?/listcontacts/:listcontact?/inner/:inner?'
,
meta
:
{
meta
:
{
...
@@ -5017,6 +5243,20 @@ const router = new Router({
...
@@ -5017,6 +5243,20 @@ const router = new Router({
},
},
component
:
()
=>
import
(
'@pages/marketing/list-contact-inner/list-contact-inner.vue'
),
component
:
()
=>
import
(
'@pages/marketing/list-contact-inner/list-contact-inner.vue'
),
},
},
{
path
:
'campaigns/:campaign?/info_campagin/:info_campagin?'
,
meta
:
{
caption
:
'entities.campaign.views.info_campagin.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'campaigns'
,
parameterName
:
'campaign'
},
{
pathName
:
'info_campagin'
,
parameterName
:
'info_campagin'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/marketing/campaign-info-campagin/campaign-info-campagin.vue'
),
},
{
{
path
:
'appointments/:appointment?/editview/:editview?'
,
path
:
'appointments/:appointment?/editview/:editview?'
,
meta
:
{
meta
:
{
...
@@ -5914,42 +6154,42 @@ const router = new Router({
...
@@ -5914,42 +6154,42 @@ const router = new Router({
component
:
()
=>
import
(
'@pages/base/uom-pickup-view/uom-pickup-view.vue'
),
component
:
()
=>
import
(
'@pages/base/uom-pickup-view/uom-pickup-view.vue'
),
},
},
{
{
path
:
'
accounts/:account?/contacts/:contact?/summaryview/:summaryview
?'
,
path
:
'
ibizlists/:ibizlist?/listaccounts/:listaccount?/inner/:inner
?'
,
meta
:
{
meta
:
{
caption
:
'entities.
contact.views.summaryview
.title'
,
caption
:
'entities.
listaccount.views.inner
.title'
,
info
:
''
,
info
:
''
,
parameters
:
[
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'
accounts'
,
parameterName
:
'accoun
t'
},
{
pathName
:
'
ibizlists'
,
parameterName
:
'ibizlis
t'
},
{
pathName
:
'
contacts'
,
parameterName
:
'contac
t'
},
{
pathName
:
'
listaccounts'
,
parameterName
:
'listaccoun
t'
},
{
pathName
:
'
summaryview'
,
parameterName
:
'summaryview
'
},
{
pathName
:
'
inner'
,
parameterName
:
'inner
'
},
],
],
requireAuth
:
true
,
requireAuth
:
true
,
},
},
component
:
()
=>
import
(
'@pages/
base/contact-summary-view/contact-summary-view
.vue'
),
component
:
()
=>
import
(
'@pages/
marketing/list-account-inner/list-account-inner
.vue'
),
},
},
{
{
path
:
'
contacts/:contact?/summaryview/:summaryview
?'
,
path
:
'
accounts/:account?/listaccounts/:listaccount?/inner/:inner
?'
,
meta
:
{
meta
:
{
caption
:
'entities.
contact.views.summaryview
.title'
,
caption
:
'entities.
listaccount.views.inner
.title'
,
info
:
''
,
info
:
''
,
parameters
:
[
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'summaryview'
,
parameterName
:
'summaryview'
},
{
pathName
:
'listaccounts'
,
parameterName
:
'listaccount'
},
{
pathName
:
'inner'
,
parameterName
:
'inner'
},
],
],
requireAuth
:
true
,
requireAuth
:
true
,
},
},
component
:
()
=>
import
(
'@pages/
base/contact-summary-view/contact-summary-view
.vue'
),
component
:
()
=>
import
(
'@pages/
marketing/list-account-inner/list-account-inner
.vue'
),
},
},
{
{
path
:
'
ibizlists/:ibizlist?/
listaccounts/:listaccount?/inner/:inner?'
,
path
:
'listaccounts/:listaccount?/inner/:inner?'
,
meta
:
{
meta
:
{
caption
:
'entities.listaccount.views.inner.title'
,
caption
:
'entities.listaccount.views.inner.title'
,
info
:
''
,
info
:
''
,
parameters
:
[
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'ibizlists'
,
parameterName
:
'ibizlist'
},
{
pathName
:
'listaccounts'
,
parameterName
:
'listaccount'
},
{
pathName
:
'listaccounts'
,
parameterName
:
'listaccount'
},
{
pathName
:
'inner'
,
parameterName
:
'inner'
},
{
pathName
:
'inner'
,
parameterName
:
'inner'
},
],
],
...
@@ -5958,33 +6198,33 @@ const router = new Router({
...
@@ -5958,33 +6198,33 @@ const router = new Router({
component
:
()
=>
import
(
'@pages/marketing/list-account-inner/list-account-inner.vue'
),
component
:
()
=>
import
(
'@pages/marketing/list-account-inner/list-account-inner.vue'
),
},
},
{
{
path
:
'accounts/:account?/
listaccounts/:listaccount?/inner/:inner
?'
,
path
:
'accounts/:account?/
contacts/:contact?/summaryview/:summaryview
?'
,
meta
:
{
meta
:
{
caption
:
'entities.
listaccount.views.inner
.title'
,
caption
:
'entities.
contact.views.summaryview
.title'
,
info
:
''
,
info
:
''
,
parameters
:
[
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'
listaccounts'
,
parameterName
:
'listaccoun
t'
},
{
pathName
:
'
contacts'
,
parameterName
:
'contac
t'
},
{
pathName
:
'
inner'
,
parameterName
:
'inner
'
},
{
pathName
:
'
summaryview'
,
parameterName
:
'summaryview
'
},
],
],
requireAuth
:
true
,
requireAuth
:
true
,
},
},
component
:
()
=>
import
(
'@pages/
marketing/list-account-inner/list-account-inner
.vue'
),
component
:
()
=>
import
(
'@pages/
base/contact-summary-view/contact-summary-view
.vue'
),
},
},
{
{
path
:
'
listaccounts/:listaccount?/inner/:inner
?'
,
path
:
'
contacts/:contact?/summaryview/:summaryview
?'
,
meta
:
{
meta
:
{
caption
:
'entities.
listaccount.views.inner
.title'
,
caption
:
'entities.
contact.views.summaryview
.title'
,
info
:
''
,
info
:
''
,
parameters
:
[
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'
listaccounts'
,
parameterName
:
'listaccoun
t'
},
{
pathName
:
'
contacts'
,
parameterName
:
'contac
t'
},
{
pathName
:
'
inner'
,
parameterName
:
'inner
'
},
{
pathName
:
'
summaryview'
,
parameterName
:
'summaryview
'
},
],
],
requireAuth
:
true
,
requireAuth
:
true
,
},
},
component
:
()
=>
import
(
'@pages/
marketing/list-account-inner/list-account-inner
.vue'
),
component
:
()
=>
import
(
'@pages/
base/contact-summary-view/contact-summary-view
.vue'
),
},
},
{
{
path
:
'products/:product?/productsubstitutes/:productsubstitute?/gridview/:gridview?'
,
path
:
'products/:product?/productsubstitutes/:productsubstitute?/gridview/:gridview?'
,
...
...
app_CRM/src/store/modules/view-action/state.ts
浏览文件 @
1335b402
...
@@ -3,6 +3,18 @@
...
@@ -3,6 +3,18 @@
*/
*/
export
const
viewstate
:
any
=
{
export
const
viewstate
:
any
=
{
appviews
:
[
appviews
:
[
{
viewtag
:
'00367e275947880480763049e5c495be'
,
viewmodule
:
'Sales'
,
viewname
:
'OpportunityStateTabView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'cbd7a448bb018d9efebb4d1495507fa2'
,
'd43a25ac94ca7cb20db961aae174ca53'
,
'5f8f689d5dccc3db6d2b74a24a8b24ef'
,
],
},
{
{
viewtag
:
'00b46653e7146942634692ebe4fb43eb'
,
viewtag
:
'00b46653e7146942634692ebe4fb43eb'
,
viewmodule
:
'Product'
,
viewmodule
:
'Product'
,
...
@@ -1292,7 +1304,6 @@ export const viewstate: any = {
...
@@ -1292,7 +1304,6 @@ export const viewstate: any = {
'24a93674ec4c976c08902a3e95421ca6'
,
'24a93674ec4c976c08902a3e95421ca6'
,
'b38bc0256ecd5be1a58a3c2210a98d05'
,
'b38bc0256ecd5be1a58a3c2210a98d05'
,
'25bf5f8c2ebd1ce2be6d06717ed08a96'
,
'25bf5f8c2ebd1ce2be6d06717ed08a96'
,
'5f8f689d5dccc3db6d2b74a24a8b24ef'
,
'dfc0051ae4813115e03f3d095f8cd7d3'
,
'dfc0051ae4813115e03f3d095f8cd7d3'
,
'3202f3f503424c7a2c549b2c5186dc36'
,
'3202f3f503424c7a2c549b2c5186dc36'
,
'8895fef7ce4f5bdd1cd8f950bd1f8bcc'
,
'8895fef7ce4f5bdd1cd8f950bd1f8bcc'
,
...
@@ -1307,6 +1318,7 @@ export const viewstate: any = {
...
@@ -1307,6 +1318,7 @@ export const viewstate: any = {
'e0aef8c0d1f1ae28f628a0541b118961'
,
'e0aef8c0d1f1ae28f628a0541b118961'
,
'14110058a29397ea9ac7d4e86a3994ca'
,
'14110058a29397ea9ac7d4e86a3994ca'
,
'3a665de6a3970b95fde436c0fea4b1df'
,
'3a665de6a3970b95fde436c0fea4b1df'
,
'00367e275947880480763049e5c495be'
,
],
],
},
},
{
{
...
@@ -1326,6 +1338,7 @@ export const viewstate: any = {
...
@@ -1326,6 +1338,7 @@ export const viewstate: any = {
viewaction
:
''
,
viewaction
:
''
,
viewdatachange
:
false
,
viewdatachange
:
false
,
refviews
:
[
refviews
:
[
'dd0334d4dac239bca7b007cb50d8b640'
,
'177c00d1674621e8933efe6db68bce0e'
,
'177c00d1674621e8933efe6db68bce0e'
,
'7bf35293fd1d9db7816755a74c4d575e'
,
'7bf35293fd1d9db7816755a74c4d575e'
,
'78862ad65295f145e7520291f1183604'
,
'78862ad65295f145e7520291f1183604'
,
...
@@ -1997,6 +2010,17 @@ export const viewstate: any = {
...
@@ -1997,6 +2010,17 @@ export const viewstate: any = {
'9be8eab621377b4bb8432a48a3f3f785'
,
'9be8eab621377b4bb8432a48a3f3f785'
,
],
],
},
},
{
viewtag
:
'cbd7a448bb018d9efebb4d1495507fa2'
,
viewmodule
:
'Sales'
,
viewname
:
'OpportunityWinGridView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'8bfcd7acdd1f36afc1714f1071671f2c'
,
'a243cd62accb02ceba4fb128703128f0'
,
],
},
{
{
viewtag
:
'd138851bb39f6334938bb634467dc3cc'
,
viewtag
:
'd138851bb39f6334938bb634467dc3cc'
,
viewmodule
:
'Service'
,
viewmodule
:
'Service'
,
...
@@ -2036,6 +2060,17 @@ export const viewstate: any = {
...
@@ -2036,6 +2060,17 @@ export const viewstate: any = {
refviews
:
[
refviews
:
[
],
],
},
},
{
viewtag
:
'd43a25ac94ca7cb20db961aae174ca53'
,
viewmodule
:
'Sales'
,
viewname
:
'OpportunityLostGridView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'8bfcd7acdd1f36afc1714f1071671f2c'
,
'a243cd62accb02ceba4fb128703128f0'
,
],
},
{
{
viewtag
:
'd5bc3dd94496dbc1549773a1647ca64d'
,
viewtag
:
'd5bc3dd94496dbc1549773a1647ca64d'
,
viewmodule
:
'Sales'
,
viewmodule
:
'Sales'
,
...
@@ -2070,6 +2105,15 @@ export const viewstate: any = {
...
@@ -2070,6 +2105,15 @@ export const viewstate: any = {
'6d8a2615030eed5779caea69f7f001aa'
,
'6d8a2615030eed5779caea69f7f001aa'
,
],
],
},
},
{
viewtag
:
'dd0334d4dac239bca7b007cb50d8b640'
,
viewmodule
:
'Sales'
,
viewname
:
'OpportunityEdit_DatePanelView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
],
},
{
{
viewtag
:
'dd10cba0f2ded085120f7dc8eccc7c10'
,
viewtag
:
'dd10cba0f2ded085120f7dc8eccc7c10'
,
viewmodule
:
'Product'
,
viewmodule
:
'Product'
,
...
...
app_CRM/src/uiservice/opportunity/opportunity-ui-service-base.ts
浏览文件 @
1335b402
...
@@ -94,6 +94,7 @@ export default class OpportunityUIServiceBase extends UIService {
...
@@ -94,6 +94,7 @@ export default class OpportunityUIServiceBase extends UIService {
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'info_product'
,
srfappde
:
'opportunities'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'info_product'
,
srfappde
:
'opportunities'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'wingridview'
,
srfappde
:
'opportunities'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'wingridview'
,
srfappde
:
'opportunities'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'lostgridview'
,
srfappde
:
'opportunities'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'lostgridview'
,
srfappde
:
'opportunities'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'edit_datepanelview'
,
srfappde
:
'opportunities'
});
}
}
/**
/**
...
@@ -172,6 +173,74 @@ export default class OpportunityUIServiceBase extends UIService {
...
@@ -172,6 +173,74 @@ export default class OpportunityUIServiceBase extends UIService {
backend
();
backend
();
}
}
/**
* 编辑头部信息
*
* @param {any[]} args 当前数据
* @param {any} context 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @param {*} [srfParentDeName] 父实体名称
* @returns {Promise<any>}
*/
public
async
Opportunity_OpenEdit_DatePanelView
(
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
.
account
&&
true
){
deResParameters
=
[
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
]
}
const
parameters
:
any
[]
=
[
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
];
const
openPopOver
=
(
view
:
any
,
data
:
any
)
=>
{
let
container
:
Subject
<
any
>
=
actionContext
.
$apppopover
.
openPop
(
$event
,
view
,
context
,
data
);
container
.
subscribe
((
result
:
any
)
=>
{
if
(
!
result
||
!
Object
.
is
(
result
.
ret
,
'OK'
))
{
return
;
}
const
_this
:
any
=
actionContext
;
if
(
window
.
opener
){
window
.
opener
.
postMessage
({
status
:
'OK'
,
identification
:
'WF'
},
Environment
.
uniteAddress
);
window
.
close
();
}
return
result
.
datas
;
});
}
const
view
:
any
=
{
viewname
:
'opportunity-edit-date-panel-view'
,
height
:
300
,
width
:
300
,
title
:
actionContext
.
$t
(
'entities.opportunity.views.edit_datepanelview.title'
),
placement
:
'POPOVER'
,
};
openPopOver
(
view
,
data
);
}
/**
/**
* 新建
* 新建
*
*
...
...
app_CRM/src/widgets/app/central-appmenu/central-appmenu-base.tsx
浏览文件 @
1335b402
...
@@ -376,7 +376,7 @@ export class CentralBase extends Vue {
...
@@ -376,7 +376,7 @@ export class CentralBase extends Vue {
const
deResParameters
:
any
[]
=
[];
const
deResParameters
:
any
[]
=
[];
const
parameters
:
any
[]
=
[
const
parameters
:
any
[]
=
[
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'
gridview'
,
parameterName
:
'grid
view'
},
{
pathName
:
'
statetabview'
,
parameterName
:
'statetab
view'
},
];
];
const
path
:
string
=
this
.
$viewTool
.
buildUpRoutePath
(
this
.
$route
,
{},
deResParameters
,
parameters
,
[],
viewparam
);
const
path
:
string
=
this
.
$viewTool
.
buildUpRoutePath
(
this
.
$route
,
{},
deResParameters
,
parameters
,
[],
viewparam
);
if
(
Object
.
is
(
this
.
$route
.
fullPath
,
path
)){
if
(
Object
.
is
(
this
.
$route
.
fullPath
,
path
)){
...
...
app_CRM/src/widgets/app/central-appmenu/central-appmenu-model.ts
浏览文件 @
1335b402
...
@@ -393,7 +393,7 @@ export default class CentralModel {
...
@@ -393,7 +393,7 @@ export default class CentralModel {
textcls
:
''
,
textcls
:
''
,
appfunctag
:
'Auto10'
,
appfunctag
:
'Auto10'
,
appfuncyype
:
'APPVIEW'
,
appfuncyype
:
'APPVIEW'
,
viewname
:
'opportunity-
grid
-view'
,
viewname
:
'opportunity-
state-tab
-view'
,
resourcetag
:
''
,
resourcetag
:
''
,
}
}
,
,
...
@@ -1003,12 +1003,12 @@ export default class CentralModel {
...
@@ -1003,12 +1003,12 @@ export default class CentralModel {
appfunctag
:
'Auto10'
,
appfunctag
:
'Auto10'
,
appfuncyype
:
'APPVIEW'
,
appfuncyype
:
'APPVIEW'
,
openmode
:
''
,
openmode
:
''
,
codename
:
'opportunity
grid
view'
,
codename
:
'opportunity
statetab
view'
,
deResParameters
:
[],
deResParameters
:
[],
routepath
:
'/central/:central?/opportunities/:opportunity?/
gridview/:grid
view?'
,
routepath
:
'/central/:central?/opportunities/:opportunity?/
statetabview/:statetab
view?'
,
parameters
:
[
parameters
:
[
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'
gridview'
,
parameterName
:
'grid
view'
},
{
pathName
:
'
statetabview'
,
parameterName
:
'statetab
view'
},
],
],
},
},
{
{
...
...
app_CRM/src/widgets/opportunity/data-panel-form/data-panel-form-base.tsx
浏览文件 @
1335b402
...
@@ -3,6 +3,7 @@ import { Subject, Subscription } from 'rxjs';
...
@@ -3,6 +3,7 @@ import { Subject, Subscription } from 'rxjs';
import
{
Watch
,
EditFormControlBase
}
from
'@/studio-core'
;
import
{
Watch
,
EditFormControlBase
}
from
'@/studio-core'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
DataPanelService
from
'./data-panel-form-service'
;
import
DataPanelService
from
'./data-panel-form-service'
;
import
OpportunityUIService
from
'@/uiservice/opportunity/opportunity-ui-service'
;
import
{
FormButtonModel
,
FormPageModel
,
FormItemModel
,
FormDRUIPartModel
,
FormPartModel
,
FormGroupPanelModel
,
FormIFrameModel
,
FormRowItemModel
,
FormTabPageModel
,
FormTabPanelModel
,
FormUserControlModel
}
from
'@/model/form-detail'
;
import
{
FormButtonModel
,
FormPageModel
,
FormItemModel
,
FormDRUIPartModel
,
FormPartModel
,
FormGroupPanelModel
,
FormIFrameModel
,
FormRowItemModel
,
FormTabPageModel
,
FormTabPanelModel
,
FormUserControlModel
}
from
'@/model/form-detail'
;
...
@@ -73,27 +74,8 @@ export class DataPanelEditFormBase extends EditFormControlBase {
...
@@ -73,27 +74,8 @@ export class DataPanelEditFormBase extends EditFormControlBase {
datas
=
[
params
];
datas
=
[
params
];
}
}
// 界面行为
// 界面行为
this
.
Refresh
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Opportunity"
);
const
curUIService
:
OpportunityUIService
=
new
OpportunityUIService
();
}
curUIService
.
Opportunity_OpenEdit_DatePanelView
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Opportunity"
);
/**
* 刷新
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof OpportunityInfoBase
*/
public
Refresh
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
const
_this
:
any
=
this
;
if
(
xData
&&
xData
.
refresh
&&
xData
.
refresh
instanceof
Function
)
{
xData
.
refresh
(
args
);
}
else
if
(
_this
.
refresh
&&
_this
.
refresh
instanceof
Function
)
{
_this
.
refresh
(
args
);
}
}
}
/**
/**
...
@@ -135,7 +117,7 @@ export class DataPanelEditFormBase extends EditFormControlBase {
...
@@ -135,7 +117,7 @@ export class DataPanelEditFormBase extends EditFormControlBase {
* @memberof DataPanelEditFormBase
* @memberof DataPanelEditFormBase
*/
*/
public
detailsModel
:
any
=
{
public
detailsModel
:
any
=
{
button1
:
new
FormButtonModel
({
caption
:
'
刷新'
,
detailType
:
'BUTTON'
,
name
:
'button1'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
uiaction
:
{
type
:
'DEUIACTION'
,
tag
:
'Refresh
'
,
actiontarget
:
'SINGLEKEY'
}
}),
button1
:
new
FormButtonModel
({
caption
:
'
编辑头部信息'
,
detailType
:
'BUTTON'
,
name
:
'button1'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
uiaction
:
{
type
:
'DEUIACTION'
,
tag
:
'OpenEdit_DatePanelView
'
,
actiontarget
:
'SINGLEKEY'
}
}),
grouppanel1
:
new
FormGroupPanelModel
({
caption
:
'分组面板'
,
detailType
:
'GROUPPANEL'
,
name
:
'grouppanel1'
,
visible
:
true
,
isShowCaption
:
false
,
form
:
this
,
uiActionGroup
:
{
caption
:
''
,
langbase
:
'entities.opportunity.datapanel_form'
,
extractMode
:
'ITEM'
,
details
:
[]
}
}),
grouppanel1
:
new
FormGroupPanelModel
({
caption
:
'分组面板'
,
detailType
:
'GROUPPANEL'
,
name
:
'grouppanel1'
,
visible
:
true
,
isShowCaption
:
false
,
form
:
this
,
uiActionGroup
:
{
caption
:
''
,
langbase
:
'entities.opportunity.datapanel_form'
,
extractMode
:
'ITEM'
,
details
:
[]
}
}),
...
@@ -172,7 +154,7 @@ export class DataPanelEditFormBase extends EditFormControlBase {
...
@@ -172,7 +154,7 @@ export class DataPanelEditFormBase extends EditFormControlBase {
};
};
/**
/**
* 表单
刷新
事件
* 表单
编辑头部信息
事件
*
*
* @memberof @memberof DataPanelEditFormBase
* @memberof @memberof DataPanelEditFormBase
*/
*/
...
...
app_CRM/src/widgets/opportunity/edit-date-panel-form/edit-date-panel-form-base.tsx
0 → 100644
浏览文件 @
1335b402
import
{
Prop
,
Provide
,
Emit
,
Model
}
from
'vue-property-decorator'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
Watch
,
EditFormControlBase
}
from
'@/studio-core'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
Edit_DatePanelService
from
'./edit-date-panel-form-service'
;
import
{
FormButtonModel
,
FormPageModel
,
FormItemModel
,
FormDRUIPartModel
,
FormPartModel
,
FormGroupPanelModel
,
FormIFrameModel
,
FormRowItemModel
,
FormTabPageModel
,
FormTabPanelModel
,
FormUserControlModel
}
from
'@/model/form-detail'
;
/**
* form部件基类
*
* @export
* @class EditFormControlBase
* @extends {Edit_DatePanelEditFormBase}
*/
export
class
Edit_DatePanelEditFormBase
extends
EditFormControlBase
{
/**
* 获取部件类型
*
* @protected
* @type {string}
* @memberof Edit_DatePanelEditFormBase
*/
protected
controlType
:
string
=
'FORM'
;
/**
* 建构部件服务对象
*
* @type {Edit_DatePanelService}
* @memberof Edit_DatePanelEditFormBase
*/
public
service
:
Edit_DatePanelService
=
new
Edit_DatePanelService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {OpportunityService}
* @memberof Edit_DatePanelEditFormBase
*/
public
appEntityService
:
OpportunityService
=
new
OpportunityService
({
$store
:
this
.
$store
});
/**
* 应用实体名称
*
* @protected
* @type {string}
* @memberof Edit_DatePanelEditFormBase
*/
protected
appDeName
:
string
=
'opportunity'
;
/**
* 表单数据对象
*
* @type {*}
* @memberof Edit_DatePanelEditFormBase
*/
public
data
:
any
=
{
srfupdatedate
:
null
,
srforikey
:
null
,
srfkey
:
null
,
srfmajortext
:
null
,
srftempmode
:
null
,
srfuf
:
null
,
srfdeid
:
null
,
srfsourcekey
:
null
,
estimatedclosedate
:
null
,
estimatedvalue
:
null
,
statecode
:
null
,
owneridyominame
:
null
,
opportunityid
:
null
,
opportunity
:
null
,
};
/**
* 属性值规则
*
* @type {*}
* @memberof Edit_DatePanelEditFormBase
*/
public
rules
:
any
=
{
statecode
:
[
{
required
:
true
,
type
:
'number'
,
message
:
'状态 值不能为空'
,
trigger
:
'change'
},
{
required
:
true
,
type
:
'number'
,
message
:
'状态 值不能为空'
,
trigger
:
'blur'
},
],
owneridyominame
:
[
{
required
:
true
,
type
:
'string'
,
message
:
'负责人 值不能为空'
,
trigger
:
'change'
},
{
required
:
true
,
type
:
'string'
,
message
:
'负责人 值不能为空'
,
trigger
:
'blur'
},
],
}
/**
* 详情模型集合
*
* @type {*}
* @memberof Edit_DatePanelEditFormBase
*/
public
detailsModel
:
any
=
{
group1
:
new
FormGroupPanelModel
({
caption
:
'商机基本信息'
,
detailType
:
'GROUPPANEL'
,
name
:
'group1'
,
visible
:
true
,
isShowCaption
:
false
,
form
:
this
,
uiActionGroup
:
{
caption
:
''
,
langbase
:
'entities.opportunity.edit_datepanel_form'
,
extractMode
:
'ITEM'
,
details
:
[]
}
}),
formpage1
:
new
FormPageModel
({
caption
:
'基本信息'
,
detailType
:
'FORMPAGE'
,
name
:
'formpage1'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
}),
srfupdatedate
:
new
FormItemModel
({
caption
:
'更新时间'
,
detailType
:
'FORMITEM'
,
name
:
'srfupdatedate'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
0
}),
srforikey
:
new
FormItemModel
({
caption
:
''
,
detailType
:
'FORMITEM'
,
name
:
'srforikey'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
srfkey
:
new
FormItemModel
({
caption
:
'商机'
,
detailType
:
'FORMITEM'
,
name
:
'srfkey'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
srfmajortext
:
new
FormItemModel
({
caption
:
'商机名称'
,
detailType
:
'FORMITEM'
,
name
:
'srfmajortext'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
srftempmode
:
new
FormItemModel
({
caption
:
''
,
detailType
:
'FORMITEM'
,
name
:
'srftempmode'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
srfuf
:
new
FormItemModel
({
caption
:
''
,
detailType
:
'FORMITEM'
,
name
:
'srfuf'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
srfdeid
:
new
FormItemModel
({
caption
:
''
,
detailType
:
'FORMITEM'
,
name
:
'srfdeid'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
srfsourcekey
:
new
FormItemModel
({
caption
:
''
,
detailType
:
'FORMITEM'
,
name
:
'srfsourcekey'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
estimatedclosedate
:
new
FormItemModel
({
caption
:
'预计结束日期'
,
detailType
:
'FORMITEM'
,
name
:
'estimatedclosedate'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
estimatedvalue
:
new
FormItemModel
({
caption
:
'预计收入'
,
detailType
:
'FORMITEM'
,
name
:
'estimatedvalue'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
statecode
:
new
FormItemModel
({
caption
:
'状态'
,
detailType
:
'FORMITEM'
,
name
:
'statecode'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
owneridyominame
:
new
FormItemModel
({
caption
:
'负责人'
,
detailType
:
'FORMITEM'
,
name
:
'owneridyominame'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
opportunityid
:
new
FormItemModel
({
caption
:
'商机'
,
detailType
:
'FORMITEM'
,
name
:
'opportunityid'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
};
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/edit-date-panel-form/edit-date-panel-form-model.ts
0 → 100644
浏览文件 @
1335b402
/**
* Edit_DatePanel 部件模型
*
* @export
* @class Edit_DatePanelModel
*/
export
default
class
Edit_DatePanelModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof Edit_DatePanelModel
*/
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
:
'estimatedclosedate'
,
prop
:
'estimatedclosedate'
,
dataType
:
'DATETIME'
,
},
{
name
:
'estimatedvalue'
,
prop
:
'estimatedvalue'
,
dataType
:
'BIGDECIMAL'
,
},
{
name
:
'statecode'
,
prop
:
'statecode'
,
dataType
:
'NSCODELIST'
,
},
{
name
:
'owneridyominame'
,
prop
:
'owneridyominame'
,
dataType
:
'TEXT'
,
},
{
name
:
'opportunityid'
,
prop
:
'opportunityid'
,
dataType
:
'GUID'
,
},
{
name
:
'opportunity'
,
prop
:
'opportunityid'
,
dataType
:
'FONTKEY'
,
},
]
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/edit-date-panel-form/edit-date-panel-form-service.ts
0 → 100644
浏览文件 @
1335b402
import
{
Http
,
Util
,
Errorlog
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
Edit_DatePanelModel
from
'./edit-date-panel-form-model'
;
/**
* Edit_DatePanel 部件服务对象
*
* @export
* @class Edit_DatePanelService
*/
export
default
class
Edit_DatePanelService
extends
ControlService
{
/**
* 商机服务对象
*
* @type {OpportunityService}
* @memberof Edit_DatePanelService
*/
public
appEntityService
:
OpportunityService
=
new
OpportunityService
({
$store
:
this
.
getStore
()
});
/**
* 设置从数据模式
*
* @type {boolean}
* @memberof Edit_DatePanelService
*/
public
setTempMode
(){
this
.
isTempMode
=
false
;
}
/**
* Creates an instance of Edit_DatePanelService.
*
* @param {*} [opts={}]
* @memberof Edit_DatePanelService
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
this
.
model
=
new
Edit_DatePanelModel
();
}
/**
* 处理数据
*
* @private
* @param {Promise<any>} promise
* @returns {Promise<any>}
* @memberof Edit_DatePanelService
*/
private
doItems
(
promise
:
Promise
<
any
>
,
deKeyField
:
string
,
deName
:
string
):
Promise
<
any
>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
promise
.
then
((
response
:
any
)
=>
{
if
(
response
&&
response
.
status
===
200
)
{
const
data
=
response
.
data
;
data
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
item
[
deName
]
=
item
[
deKeyField
];
data
[
index
]
=
item
;
});
resolve
(
data
);
}
else
{
reject
([])
}
}).
catch
((
response
:
any
)
=>
{
reject
([])
});
});
}
/**
* 获取跨实体数据集合
*
* @param {string} serviceName 服务名称
* @param {string} interfaceName 接口名称
* @param {*} data
* @param {boolean} [isloading]
* @returns {Promise<any[]>}
* @memberof Edit_DatePanelService
*/
@
Errorlog
public
getItems
(
serviceName
:
string
,
interfaceName
:
string
,
context
:
any
=
{},
data
:
any
,
isloading
?:
boolean
):
Promise
<
any
[]
>
{
return
Promise
.
reject
([])
}
/**
* 启动工作流
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @param {*} [localdata]
* @returns {Promise<any>}
* @memberof Edit_DatePanelService
*/
@
Errorlog
public
wfstart
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
,
localdata
?:
any
):
Promise
<
any
>
{
data
=
this
.
handleWFData
(
data
);
context
=
this
.
handleRequestData
(
action
,
context
,
data
).
context
;
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
if
(
_appEntityService
[
action
]
&&
_appEntityService
[
action
]
instanceof
Function
)
{
result
=
_appEntityService
[
action
](
context
,
data
,
isloading
,
localdata
);
}
else
{
result
=
this
.
appEntityService
.
WFStart
(
context
,
data
,
isloading
,
localdata
);
}
result
.
then
((
response
)
=>
{
this
.
handleResponse
(
action
,
response
);
resolve
(
response
);
}).
catch
(
response
=>
{
reject
(
response
);
});
});
}
/**
* 提交工作流
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @param {*} [localdata]
* @returns {Promise<any>}
* @memberof Edit_DatePanelService
*/
@
Errorlog
public
wfsubmit
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
,
localdata
?:
any
):
Promise
<
any
>
{
data
=
this
.
handleWFData
(
data
,
true
);
context
=
this
.
handleRequestData
(
action
,
context
,
data
,
true
).
context
;
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
if
(
_appEntityService
[
action
]
&&
_appEntityService
[
action
]
instanceof
Function
)
{
result
=
_appEntityService
[
action
](
context
,
data
,
isloading
,
localdata
);
}
else
{
result
=
this
.
appEntityService
.
WFSubmit
(
context
,
data
,
isloading
,
localdata
);
}
result
.
then
((
response
)
=>
{
this
.
handleResponse
(
action
,
response
);
resolve
(
response
);
}).
catch
(
response
=>
{
reject
(
response
);
});
});
}
/**
* 添加数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof Edit_DatePanelService
*/
@
Errorlog
public
add
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
const
{
data
:
Data
,
context
:
Context
}
=
this
.
handleRequestData
(
action
,
context
,
data
);
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
if
(
_appEntityService
[
action
]
&&
_appEntityService
[
action
]
instanceof
Function
)
{
result
=
_appEntityService
[
action
](
Context
,
Data
,
isloading
);
}
else
{
result
=
this
.
appEntityService
.
Create
(
Context
,
Data
,
isloading
);
}
result
.
then
((
response
)
=>
{
this
.
handleResponse
(
action
,
response
);
resolve
(
response
);
}).
catch
(
response
=>
{
reject
(
response
);
});
});
}
/**
* 删除数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof Edit_DatePanelService
*/
@
Errorlog
public
delete
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
const
{
data
:
Data
,
context
:
Context
}
=
this
.
handleRequestData
(
action
,
context
,
data
);
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
if
(
_appEntityService
[
action
]
&&
_appEntityService
[
action
]
instanceof
Function
)
{
result
=
_appEntityService
[
action
](
Context
,
Data
,
isloading
);
}
else
{
result
=
this
.
appEntityService
.
Remove
(
Context
,
Data
,
isloading
);
}
result
.
then
((
response
)
=>
{
resolve
(
response
);
}).
catch
(
response
=>
{
reject
(
response
);
});
});
}
/**
* 修改数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof Edit_DatePanelService
*/
@
Errorlog
public
update
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
const
{
data
:
Data
,
context
:
Context
}
=
this
.
handleRequestData
(
action
,
context
,
data
);
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
if
(
_appEntityService
[
action
]
&&
_appEntityService
[
action
]
instanceof
Function
)
{
result
=
_appEntityService
[
action
](
Context
,
Data
,
isloading
);
}
else
{
result
=
this
.
appEntityService
.
Update
(
Context
,
Data
,
isloading
);
}
result
.
then
((
response
)
=>
{
this
.
handleResponse
(
action
,
response
);
resolve
(
response
);
}).
catch
(
response
=>
{
reject
(
response
);
});
});
}
/**
* 查询数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof Edit_DatePanelService
*/
@
Errorlog
public
get
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
const
{
data
:
Data
,
context
:
Context
}
=
this
.
handleRequestData
(
action
,
context
,
data
);
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
if
(
_appEntityService
[
action
]
&&
_appEntityService
[
action
]
instanceof
Function
)
{
result
=
_appEntityService
[
action
](
Context
,
Data
,
isloading
);
}
else
{
result
=
this
.
appEntityService
.
Get
(
Context
,
Data
,
isloading
);
}
result
.
then
((
response
)
=>
{
this
.
handleResponse
(
action
,
response
);
resolve
(
response
);
}).
catch
(
response
=>
{
reject
(
response
);
});
});
}
/**
* 加载草稿
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof Edit_DatePanelService
*/
@
Errorlog
public
loadDraft
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
const
{
data
:
Data
,
context
:
Context
}
=
this
.
handleRequestData
(
action
,
context
,
data
);
//仿真主键数据
const
PrimaryKey
=
Util
.
createUUID
();
Data
.
opportunityid
=
PrimaryKey
;
Data
.
opportunity
=
PrimaryKey
;
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
if
(
_appEntityService
[
action
]
&&
_appEntityService
[
action
]
instanceof
Function
)
{
result
=
_appEntityService
[
action
](
Context
,
Data
,
isloading
);
}
else
{
result
=
this
.
appEntityService
.
GetDraft
(
Context
,
Data
,
isloading
);
}
result
.
then
((
response
)
=>
{
response
.
data
.
opportunityid
=
PrimaryKey
;
this
.
handleResponse
(
action
,
response
,
true
);
resolve
(
response
);
}).
catch
(
response
=>
{
reject
(
response
);
});
});
}
/**
* 前台逻辑
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof Edit_DatePanelService
*/
@
Errorlog
public
frontLogic
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
const
{
data
:
Data
,
context
:
Context
}
=
this
.
handleRequestData
(
action
,
context
,
data
);
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
result
:
Promise
<
any
>
;
const
_appEntityService
:
any
=
this
.
appEntityService
;
if
(
_appEntityService
[
action
]
&&
_appEntityService
[
action
]
instanceof
Function
)
{
result
=
_appEntityService
[
action
](
Context
,
Data
,
isloading
);
}
else
{
return
Promise
.
reject
({
status
:
500
,
data
:
{
title
:
'失败'
,
message
:
'系统异常'
}
});
}
result
.
then
((
response
)
=>
{
this
.
handleResponse
(
action
,
response
,
true
);
resolve
(
response
);
}).
catch
(
response
=>
{
reject
(
response
);
});
})
}
/**
* 处理请求数据
*
* @param action 行为
* @param data 数据
* @memberof Edit_DatePanelService
*/
public
handleRequestData
(
action
:
string
,
context
:
any
,
data
:
any
=
{},
isMerge
:
boolean
=
false
){
let
mode
:
any
=
this
.
getMode
();
if
(
!
mode
&&
mode
.
getDataItems
instanceof
Function
)
{
return
data
;
}
let
formItemItems
:
any
[]
=
mode
.
getDataItems
();
let
requestData
:
any
=
{};
if
(
isMerge
&&
(
data
&&
data
.
viewparams
)){
Object
.
assign
(
requestData
,
data
.
viewparams
);
}
formItemItems
.
forEach
((
item
:
any
)
=>
{
if
(
item
&&
item
.
dataType
&&
Object
.
is
(
item
.
dataType
,
'FONTKEY'
)){
if
(
item
&&
item
.
prop
){
requestData
[
item
.
prop
]
=
context
[
item
.
name
];
}
}
else
{
if
(
item
&&
item
.
prop
){
requestData
[
item
.
prop
]
=
data
[
item
.
name
];
}
}
});
let
tempContext
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
context
));
if
(
tempContext
&&
tempContext
.
srfsessionid
){
tempContext
.
srfsessionkey
=
tempContext
.
srfsessionid
;
delete
tempContext
.
srfsessionid
;
}
return
{
context
:
tempContext
,
data
:
requestData
};
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/edit-date-panel-form/edit-date-panel-form.html
0 → 100644
浏览文件 @
1335b402
<i-form
:model=
"this.data"
class=
'app-form'
ref=
'form'
id=
'opportunity_edit_datepanel'
style=
""
>
<input
style=
"display:none;"
/>
<row
>
<i-col
v-show=
"detailsModel.group1.visible"
:style=
"{}"
:lg=
"{ span: 24, offset: 0 }"
>
<app-form-group
layoutType=
"TABLE_24COL"
titleStyle=
""
class=
''
:uiActionGroup=
"detailsModel.group1.uiActionGroup"
@
groupuiactionclick=
"groupUIActionClick($event)"
:caption=
"$t('entities.opportunity.edit_datepanel_form.details.group1')"
:isShowCaption=
"false"
uiStyle=
"DEFAULT"
:titleBarCloseMode=
"0"
:isInfoGroupMode=
"false"
>
<row>
<i-col
v-show=
"detailsModel.estimatedclosedate.visible"
:style=
"{}"
:lg=
"{ span: 24, offset: 0 }"
>
<app-form-item
name=
'estimatedclosedate'
:itemRules=
"this.rules.estimatedclosedate"
class=
''
:caption=
"$t('entities.opportunity.edit_datepanel_form.details.estimatedclosedate')"
uiStyle=
"DEFAULT"
:labelWidth=
"130"
:isShowCaption=
"true"
:error=
"detailsModel.estimatedclosedate.error"
:isEmptyCaption=
"false"
labelPos=
"TOP"
>
<date-picker
type=
"datetime"
:transfer=
"true"
format=
"yyyy-MM-dd HH:mm:ss"
placeholder=
"请选择时间..."
:value=
"data.estimatedclosedate"
:disabled=
"detailsModel.estimatedclosedate.disabled"
style=
"min-width: 150px; width:160px;"
@
on-change=
"(val1, val2) => { this.data.estimatedclosedate = val1 }"
></date-picker>
</app-form-item>
</i-col>
<i-col
v-show=
"detailsModel.estimatedvalue.visible"
:style=
"{}"
:lg=
"{ span: 24, offset: 0 }"
>
<app-form-item
name=
'estimatedvalue'
:itemRules=
"this.rules.estimatedvalue"
class=
''
:caption=
"$t('entities.opportunity.edit_datepanel_form.details.estimatedvalue')"
uiStyle=
"DEFAULT"
:labelWidth=
"130"
:isShowCaption=
"true"
:error=
"detailsModel.estimatedvalue.error"
:isEmptyCaption=
"false"
labelPos=
"TOP"
>
<input-box
v-model=
"data.estimatedvalue"
@
enter=
"onEnter($event)"
unit=
""
:disabled=
"detailsModel.estimatedvalue.disabled"
type=
'number'
style=
""
></input-box>
</app-form-item>
</i-col>
<i-col
v-show=
"detailsModel.statecode.visible"
:style=
"{}"
:lg=
"{ span: 24, offset: 0 }"
>
<app-form-item
name=
'statecode'
:itemRules=
"this.rules.statecode"
class=
''
:caption=
"$t('entities.opportunity.edit_datepanel_form.details.statecode')"
uiStyle=
"DEFAULT"
:labelWidth=
"130"
:isShowCaption=
"true"
:error=
"detailsModel.statecode.error"
:isEmptyCaption=
"false"
labelPos=
"TOP"
>
<dropdown-list
v-model=
"data.statecode"
:data=
"data"
:context=
"context"
:viewparams=
"viewparams"
:localContext =
'{ }'
:localParam =
'{ }'
:disabled=
"detailsModel.statecode.disabled"
tag=
'Opportunity__StateCode'
codelistType=
'STATIC'
placeholder=
'请选择...'
style=
""
>
</dropdown-list>
</app-form-item>
</i-col>
<i-col
v-show=
"detailsModel.owneridyominame.visible"
:style=
"{}"
:lg=
"{ span: 24, offset: 0 }"
>
<app-form-item
name=
'owneridyominame'
:itemRules=
"this.rules.owneridyominame"
class=
''
:caption=
"$t('entities.opportunity.edit_datepanel_form.details.owneridyominame')"
uiStyle=
"DEFAULT"
:labelWidth=
"130"
:isShowCaption=
"true"
:error=
"detailsModel.owneridyominame.error"
:isEmptyCaption=
"false"
labelPos=
"TOP"
>
<input-box
v-model=
"data.owneridyominame"
@
enter=
"onEnter($event)"
unit=
""
:disabled=
"detailsModel.owneridyominame.disabled"
type=
'text'
style=
""
></input-box>
</app-form-item>
</i-col>
</row>
</app-form-group>
</i-col>
</row>
</i-form>
\ No newline at end of file
app_CRM/src/widgets/opportunity/edit-date-panel-form/edit-date-panel-form.vue
0 → 100644
浏览文件 @
1335b402
<
template
src=
"./edit-date-panel-form.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { Edit_DatePanelEditFormBase } from './edit-date-panel-form-base';
/**
* form部件
*
* @export
* @class Edit_DatePanelEditForm
* @extends {Edit_DatePanelEditFormBase}
*/
@Component({
components: {
}
})
@VueLifeCycleProcessing()
export default class Edit_DatePanelEditForm extends Edit_DatePanelEditFormBase { }
</script>
app_CRM/src/widgets/opportunity/state-tab-viewtabexppanel-tabexppanel/state-tab-viewtabexppanel-tabexppanel-base.tsx
0 → 100644
浏览文件 @
1335b402
import
{
Prop
,
Provide
,
Emit
,
Model
}
from
'vue-property-decorator'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
Watch
,
TabExpPanelControlBase
}
from
'@/studio-core'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
StateTabViewtabexppanelService
from
'./state-tab-viewtabexppanel-tabexppanel-service'
;
/**
* tabexppanel部件基类
*
* @export
* @class TabExpPanelControlBase
* @extends {StateTabViewtabexppanelTabexppanelBase}
*/
export
class
StateTabViewtabexppanelTabexppanelBase
extends
TabExpPanelControlBase
{
/**
* 获取部件类型
*
* @protected
* @type {string}
* @memberof StateTabViewtabexppanelTabexppanelBase
*/
protected
controlType
:
string
=
'TABEXPPANEL'
;
/**
* 建构部件服务对象
*
* @type {StateTabViewtabexppanelService}
* @memberof StateTabViewtabexppanelTabexppanelBase
*/
public
service
:
StateTabViewtabexppanelService
=
new
StateTabViewtabexppanelService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {OpportunityService}
* @memberof StateTabViewtabexppanelTabexppanelBase
*/
public
appEntityService
:
OpportunityService
=
new
OpportunityService
({
$store
:
this
.
$store
});
/**
* 应用实体名称
*
* @protected
* @type {string}
* @memberof StateTabViewtabexppanelTabexppanelBase
*/
protected
appDeName
:
string
=
'opportunity'
;
/**
* 是否初始化
*
* @protected
* @returns {any}
* @memberof StateTabViewtabexppanel
*/
protected
isInit
:
any
=
{
tabviewpanel
:
true
,
tabviewpanel2
:
false
,
tabviewpanel3
:
false
,
}
/**
* 被激活的分页面板
*
* @protected
* @type {string}
* @memberof StateTabViewtabexppanel
*/
protected
activatedTabViewPanel
:
string
=
'tabviewpanel'
;
/**
* 组件创建完毕
*
* @protected
* @memberof StateTabViewtabexppanel
*/
protected
ctrlCreated
():
void
{
//设置分页导航srfparentdename和srfparentkey
if
(
this
.
context
.
opportunity
)
{
Object
.
assign
(
this
.
context
,
{
srfparentdename
:
'Opportunity'
,
srfparentkey
:
this
.
context
.
opportunity
});
}
super
.
ctrlCreated
();
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabexppanel-tabexppanel/state-tab-viewtabexppanel-tabexppanel-model.ts
0 → 100644
浏览文件 @
1335b402
/**
* StateTabViewtabexppanel 部件模型
*
* @export
* @class StateTabViewtabexppanelModel
*/
export
default
class
StateTabViewtabexppanelModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof StateTabViewtabexppanelModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'decisionmaker'
,
},
{
name
:
'totallineitemamount'
,
},
{
name
:
'processid'
,
},
{
name
:
'discountpercentage'
,
},
{
name
:
'pricingerrorcode'
,
},
{
name
:
'totalamount'
,
},
{
name
:
'totaltax_base'
,
},
{
name
:
'totaltax'
,
},
{
name
:
'updateman'
,
},
{
name
:
'estimatedvalue_base'
,
},
{
name
:
'presentfinalproposal'
,
},
{
name
:
'developproposal'
,
},
{
name
:
'opportunityratingcode'
,
},
{
name
:
'totalamount_base'
,
},
{
name
:
'totalamountlessfreight'
,
},
{
name
:
'description'
,
},
{
name
:
'identifycompetitors'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'sendthankyounote'
,
},
{
name
:
'totaldiscountamount_base'
,
},
{
name
:
'totallineitemdiscountamount'
,
},
{
name
:
'purchaseprocess'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'captureproposalfeedback'
,
},
{
name
:
'finaldecisiondate'
,
},
{
name
:
'stepid'
,
},
{
name
:
'resolvefeedback'
,
},
{
name
:
'budgetamount_base'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'pursuitdecision'
,
},
{
name
:
'revenuesystemcalculated'
,
},
{
name
:
'scheduleproposalmeeting'
,
},
{
name
:
'closeprobability'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'presentproposal'
,
},
{
name
:
'schedulefollowup_prospect'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'actualclosedate'
,
},
{
name
:
'confirminterest'
,
},
{
name
:
'customerid'
,
},
{
name
:
'salesstage'
,
},
{
name
:
'opportunity'
,
prop
:
'opportunityid'
,
},
{
name
:
'onholdtime'
,
},
{
name
:
'qualificationcomments'
,
},
{
name
:
'accountidyominame'
,
},
{
name
:
'schedulefollowup_qualify'
,
},
{
name
:
'participatesinworkflow'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'stepname'
,
},
{
name
:
'customerneed'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'completeinternalreview'
,
},
{
name
:
'evaluatefit'
,
},
{
name
:
'salesstagecode'
,
},
{
name
:
'identifypursuitteam'
,
},
{
name
:
'contactidyominame'
,
},
{
name
:
'initialcommunication'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'freightamount_base'
,
},
{
name
:
'teamsfollowed'
,
},
{
name
:
'proposedsolution'
,
},
{
name
:
'filedebrief'
,
},
{
name
:
'budgetamount'
,
},
{
name
:
'budgetstatus'
,
},
{
name
:
'discountamount_base'
,
},
{
name
:
'completefinalproposal'
,
},
{
name
:
'discountamount'
,
},
{
name
:
'customeridyominame'
,
},
{
name
:
'need'
,
},
{
name
:
'stageid'
,
},
{
name
:
'freightamount'
,
},
{
name
:
'actualvalue'
,
},
{
name
:
'ibizprivate'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'createdate'
,
},
{
name
:
'prioritycode'
,
},
{
name
:
'totallineitemamount_base'
,
},
{
name
:
'estimatedclosedate'
,
},
{
name
:
'currentsituation'
,
},
{
name
:
'actualvalue_base'
,
},
{
name
:
'customerpainpoints'
,
},
{
name
:
'totaldiscountamount'
,
},
{
name
:
'opportunityname'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'identifycustomercontacts'
,
},
{
name
:
'timeline'
,
},
{
name
:
'lastonholdtime'
,
},
{
name
:
'totalamountlessfreight_base'
,
},
{
name
:
'estimatedvalue'
,
},
{
name
:
'emailaddress'
,
},
{
name
:
'statecode'
,
},
{
name
:
'purchasetimeframe'
,
},
{
name
:
'createman'
,
},
{
name
:
'quotecomments'
,
},
{
name
:
'customeridtype'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'slaname'
,
},
{
name
:
'parentcontactid'
,
},
{
name
:
'campaignid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'parentaccountid'
,
},
{
name
:
'pricelevelid'
,
},
{
name
:
'originatingleadid'
,
},
{
name
:
'slaid'
,
},
{
name
:
'originatingleadname'
,
},
{
name
:
'parentaccountname'
,
},
{
name
:
'campaignname'
,
},
{
name
:
'parentcontactname'
,
},
{
name
:
'transactioncurrencyname'
,
},
{
name
:
'pricelevelname'
,
},
]
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabexppanel-tabexppanel/state-tab-viewtabexppanel-tabexppanel-service.ts
0 → 100644
浏览文件 @
1335b402
import
{
Http
,
Util
,
Errorlog
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
StateTabViewtabexppanelModel
from
'./state-tab-viewtabexppanel-tabexppanel-model'
;
/**
* StateTabViewtabexppanel 部件服务对象
*
* @export
* @class StateTabViewtabexppanelService
*/
export
default
class
StateTabViewtabexppanelService
extends
ControlService
{
/**
* 商机服务对象
*
* @type {OpportunityService}
* @memberof StateTabViewtabexppanelService
*/
public
appEntityService
:
OpportunityService
=
new
OpportunityService
({
$store
:
this
.
getStore
()
});
/**
* 设置从数据模式
*
* @type {boolean}
* @memberof StateTabViewtabexppanelService
*/
public
setTempMode
(){
this
.
isTempMode
=
false
;
}
/**
* Creates an instance of StateTabViewtabexppanelService.
*
* @param {*} [opts={}]
* @memberof StateTabViewtabexppanelService
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
this
.
model
=
new
StateTabViewtabexppanelModel
();
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabexppanel-tabexppanel/state-tab-viewtabexppanel-tabexppanel.html
0 → 100644
浏览文件 @
1335b402
<div
class=
'tabviewpanel'
>
<tabs
:value=
"activatedTabViewPanel"
:animated=
"false"
class=
'tabexppanel'
name=
'statetabviewtabexppanel'
@
on-click=
"tabPanelClick($event)"
>
<tab-pane
:index=
"0"
name=
'tabviewpanel'
tab=
'statetabviewtabexppanel'
class=
''
:label=
"(h) =>{
return h('div', [
h('span', '全部商机'),
h('Badge', {
props: {
count: undefined,
type: 'primary'
}
})
])
}"
>
<view
_tabviewpanel
:viewState=
"viewState"
:viewparams=
"JSON.parse(JSON.stringify(viewparams))"
:context=
"JSON.parse(JSON.stringify(context))"
v-if=
"isInit.tabviewpanel"
name=
"tabviewpanel"
ref=
'tabviewpanel'
:expActive=
"activatedTabViewPanel === 'tabviewpanel'"
@
viewpanelDatasChange =
"tabViewPanelDatasChange"
@
closeview=
"closeView($event)"
>
</view
_tabviewpanel
>
</tab-pane>
<tab-pane
:index=
"1"
name=
'tabviewpanel2'
tab=
'statetabviewtabexppanel'
class=
''
:label=
"(h) =>{
return h('div', [
h('span', '赢单商机'),
h('Badge', {
props: {
count: undefined,
type: 'primary'
}
})
])
}"
>
<view
_tabviewpanel2
:viewState=
"viewState"
:viewparams=
"JSON.parse(JSON.stringify(viewparams))"
:context=
"JSON.parse(JSON.stringify(context))"
v-if=
"isInit.tabviewpanel2"
name=
"tabviewpanel2"
ref=
'tabviewpanel2'
:expActive=
"activatedTabViewPanel === 'tabviewpanel2'"
@
viewpanelDatasChange =
"tabViewPanelDatasChange"
@
closeview=
"closeView($event)"
>
</view
_tabviewpanel2
>
</tab-pane>
<tab-pane
:index=
"2"
name=
'tabviewpanel3'
tab=
'statetabviewtabexppanel'
class=
''
:label=
"(h) =>{
return h('div', [
h('span', '丢单商机'),
h('Badge', {
props: {
count: undefined,
type: 'primary'
}
})
])
}"
>
<view
_tabviewpanel3
:viewState=
"viewState"
:viewparams=
"JSON.parse(JSON.stringify(viewparams))"
:context=
"JSON.parse(JSON.stringify(context))"
v-if=
"isInit.tabviewpanel3"
name=
"tabviewpanel3"
ref=
'tabviewpanel3'
:expActive=
"activatedTabViewPanel === 'tabviewpanel3'"
@
viewpanelDatasChange =
"tabViewPanelDatasChange"
@
closeview=
"closeView($event)"
>
</view
_tabviewpanel3
>
</tab-pane>
</tabs>
</div>
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabexppanel-tabexppanel/state-tab-viewtabexppanel-tabexppanel.vue
0 → 100644
浏览文件 @
1335b402
<
template
src=
"./state-tab-viewtabexppanel-tabexppanel.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { StateTabViewtabexppanelTabexppanelBase } from './state-tab-viewtabexppanel-tabexppanel-base';
import view_tabviewpanel from '@widgets/opportunity/state-tab-viewtabviewpanel-tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel.vue';
import view_tabviewpanel2 from '@widgets/opportunity/state-tab-viewtabviewpanel2-tabviewpanel/state-tab-viewtabviewpanel2-tabviewpanel.vue';
import view_tabviewpanel3 from '@widgets/opportunity/state-tab-viewtabviewpanel3-tabviewpanel/state-tab-viewtabviewpanel3-tabviewpanel.vue';
/**
* tabexppanel部件
*
* @export
* @class StateTabViewtabexppanelTabexppanel
* @extends {StateTabViewtabexppanelTabexppanelBase}
*/
@Component({
components: {
view_tabviewpanel,
view_tabviewpanel2,
view_tabviewpanel3,
}
})
@VueLifeCycleProcessing()
export default class StateTabViewtabexppanelTabexppanel extends StateTabViewtabexppanelTabexppanelBase { }
</script>
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel-tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel-base.tsx
0 → 100644
浏览文件 @
1335b402
import
{
Prop
,
Provide
,
Emit
,
Model
}
from
'vue-property-decorator'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
Watch
,
MainControlBase
}
from
'@/studio-core'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
StateTabViewtabviewpanelService
from
'./state-tab-viewtabviewpanel-tabviewpanel-service'
;
/**
* tabviewpanel部件基类
*
* @export
* @class MainControlBase
* @extends {StateTabViewtabviewpanelTabviewpanelBase}
*/
export
class
StateTabViewtabviewpanelTabviewpanelBase
extends
MainControlBase
{
/**
* 获取部件类型
*
* @protected
* @type {string}
* @memberof StateTabViewtabviewpanelTabviewpanelBase
*/
protected
controlType
:
string
=
'TABVIEWPANEL'
;
/**
* 建构部件服务对象
*
* @type {StateTabViewtabviewpanelService}
* @memberof StateTabViewtabviewpanelTabviewpanelBase
*/
public
service
:
StateTabViewtabviewpanelService
=
new
StateTabViewtabviewpanelService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {OpportunityService}
* @memberof StateTabViewtabviewpanelTabviewpanelBase
*/
public
appEntityService
:
OpportunityService
=
new
OpportunityService
({
$store
:
this
.
$store
});
/**
* 应用实体名称
*
* @protected
* @type {string}
* @memberof StateTabViewtabviewpanelTabviewpanelBase
*/
protected
appDeName
:
string
=
'opportunity'
;
/**
* 导航模式下项是否激活
*
* @type {*}
* @memberof StateTabViewtabviewpanel
*/
@
Prop
()
public
expActive
!
:
any
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof StateTabViewtabviewpanel
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof StateTabViewtabviewpanel
*/
public
getData
():
any
{
return
null
;
}
/**
* 是否被激活
*
* @type {boolean}
* @memberof StateTabViewtabviewpanel
*/
public
isActivied
:
boolean
=
true
;
/**
* 局部上下文
*
* @type {*}
* @memberof StateTabViewtabviewpanel
*/
public
localContext
:
any
=
null
;
/**
* 局部视图参数
*
* @type {*}
* @memberof StateTabViewtabviewpanel
*/
public
localViewParam
:
any
=
null
;
/**
* 传入上下文
*
* @type {string}
* @memberof TabExpViewtabviewpanel
*/
public
viewdata
:
string
=
JSON
.
stringify
(
this
.
context
);
/**
* 传入视图参数
*
* @type {string}
* @memberof PickupViewpickupviewpanel
*/
public
viewparam
:
string
=
JSON
.
stringify
(
this
.
viewparams
);
/**
* 视图面板过滤项
*
* @type {string}
* @memberof StateTabViewtabviewpanel
*/
public
navfilter
:
string
=
""
;
/**
* vue 生命周期
*
* @returns
* @memberof StateTabViewtabviewpanel
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof StateTabViewtabviewpanel
*/
public
afterCreated
(){
this
.
initNavParam
();
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
this
.
$forceUpdate
();
this
.
initNavParam
();
});
}
}
/**
* 初始化导航参数
*
* @memberof StateTabViewtabviewpanel
*/
public
initNavParam
(){
if
(
!
Object
.
is
(
this
.
navfilter
,
""
)){
Object
.
assign
(
this
.
viewparams
,{[
this
.
navfilter
]:
this
.
context
[
'majorentity'
]})
}
if
(
this
.
localContext
&&
Object
.
keys
(
this
.
localContext
).
length
>
0
){
let
_context
:
any
=
this
.
$util
.
computedNavData
({},
this
.
context
,
this
.
viewparams
,
this
.
localContext
);
Object
.
assign
(
this
.
context
,
_context
);
}
if
(
this
.
localViewParam
&&
Object
.
keys
(
this
.
localViewParam
).
length
>
0
){
let
_param
:
any
=
this
.
$util
.
computedNavData
({},
this
.
context
,
this
.
viewparams
,
this
.
localViewParam
);
Object
.
assign
(
this
.
viewparams
,
_param
);
}
this
.
viewdata
=
JSON
.
stringify
(
this
.
context
);
this
.
viewparam
=
JSON
.
stringify
(
this
.
viewparams
);
}
/**
* 视图数据变化
*
* @memberof StateTabViewtabviewpanel
*/
public
viewDatasChange
(
$event
:
any
){
this
.
$emit
(
'viewpanelDatasChange'
,
$event
);
}
/**
* vue 生命周期
*
* @memberof StateTabViewtabviewpanel
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof StateTabViewtabviewpanel
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel-tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel-model.ts
0 → 100644
浏览文件 @
1335b402
/**
* StateTabViewtabviewpanel 部件模型
*
* @export
* @class StateTabViewtabviewpanelModel
*/
export
default
class
StateTabViewtabviewpanelModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof StateTabViewtabviewpanelModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'decisionmaker'
,
},
{
name
:
'totallineitemamount'
,
},
{
name
:
'processid'
,
},
{
name
:
'discountpercentage'
,
},
{
name
:
'pricingerrorcode'
,
},
{
name
:
'totalamount'
,
},
{
name
:
'totaltax_base'
,
},
{
name
:
'totaltax'
,
},
{
name
:
'updateman'
,
},
{
name
:
'estimatedvalue_base'
,
},
{
name
:
'presentfinalproposal'
,
},
{
name
:
'developproposal'
,
},
{
name
:
'opportunityratingcode'
,
},
{
name
:
'totalamount_base'
,
},
{
name
:
'totalamountlessfreight'
,
},
{
name
:
'description'
,
},
{
name
:
'identifycompetitors'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'sendthankyounote'
,
},
{
name
:
'totaldiscountamount_base'
,
},
{
name
:
'totallineitemdiscountamount'
,
},
{
name
:
'purchaseprocess'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'captureproposalfeedback'
,
},
{
name
:
'finaldecisiondate'
,
},
{
name
:
'stepid'
,
},
{
name
:
'resolvefeedback'
,
},
{
name
:
'budgetamount_base'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'pursuitdecision'
,
},
{
name
:
'revenuesystemcalculated'
,
},
{
name
:
'scheduleproposalmeeting'
,
},
{
name
:
'closeprobability'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'presentproposal'
,
},
{
name
:
'schedulefollowup_prospect'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'actualclosedate'
,
},
{
name
:
'confirminterest'
,
},
{
name
:
'customerid'
,
},
{
name
:
'salesstage'
,
},
{
name
:
'opportunity'
,
prop
:
'opportunityid'
,
},
{
name
:
'onholdtime'
,
},
{
name
:
'qualificationcomments'
,
},
{
name
:
'accountidyominame'
,
},
{
name
:
'schedulefollowup_qualify'
,
},
{
name
:
'participatesinworkflow'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'stepname'
,
},
{
name
:
'customerneed'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'completeinternalreview'
,
},
{
name
:
'evaluatefit'
,
},
{
name
:
'salesstagecode'
,
},
{
name
:
'identifypursuitteam'
,
},
{
name
:
'contactidyominame'
,
},
{
name
:
'initialcommunication'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'freightamount_base'
,
},
{
name
:
'teamsfollowed'
,
},
{
name
:
'proposedsolution'
,
},
{
name
:
'filedebrief'
,
},
{
name
:
'budgetamount'
,
},
{
name
:
'budgetstatus'
,
},
{
name
:
'discountamount_base'
,
},
{
name
:
'completefinalproposal'
,
},
{
name
:
'discountamount'
,
},
{
name
:
'customeridyominame'
,
},
{
name
:
'need'
,
},
{
name
:
'stageid'
,
},
{
name
:
'freightamount'
,
},
{
name
:
'actualvalue'
,
},
{
name
:
'ibizprivate'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'createdate'
,
},
{
name
:
'prioritycode'
,
},
{
name
:
'totallineitemamount_base'
,
},
{
name
:
'estimatedclosedate'
,
},
{
name
:
'currentsituation'
,
},
{
name
:
'actualvalue_base'
,
},
{
name
:
'customerpainpoints'
,
},
{
name
:
'totaldiscountamount'
,
},
{
name
:
'opportunityname'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'identifycustomercontacts'
,
},
{
name
:
'timeline'
,
},
{
name
:
'lastonholdtime'
,
},
{
name
:
'totalamountlessfreight_base'
,
},
{
name
:
'estimatedvalue'
,
},
{
name
:
'emailaddress'
,
},
{
name
:
'statecode'
,
},
{
name
:
'purchasetimeframe'
,
},
{
name
:
'createman'
,
},
{
name
:
'quotecomments'
,
},
{
name
:
'customeridtype'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'slaname'
,
},
{
name
:
'parentcontactid'
,
},
{
name
:
'campaignid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'parentaccountid'
,
},
{
name
:
'pricelevelid'
,
},
{
name
:
'originatingleadid'
,
},
{
name
:
'slaid'
,
},
{
name
:
'originatingleadname'
,
},
{
name
:
'parentaccountname'
,
},
{
name
:
'campaignname'
,
},
{
name
:
'parentcontactname'
,
},
{
name
:
'transactioncurrencyname'
,
},
{
name
:
'pricelevelname'
,
},
]
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel-tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel-service.ts
0 → 100644
浏览文件 @
1335b402
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* StateTabViewtabviewpanel 部件服务对象
*
* @export
* @class StateTabViewtabviewpanelService
*/
export
default
class
StateTabViewtabviewpanelService
extends
ControlService
{
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel-tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel.html
0 → 100644
浏览文件 @
1335b402
<div
class=
'tabviewpanel'
v-if=
'isActivied'
>
<opportunity-grid-view
class=
'viewcontainer2'
:viewdata=
"viewdata"
:viewparam=
"viewparam"
@
viewload=
"viewDatasChange($event)"
:viewDefaultUsage=
"false"
:viewUsage=
"7"
:expActive=
"expActive"
/>
</div>
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel-tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel.vue
0 → 100644
浏览文件 @
1335b402
<
template
src=
"./state-tab-viewtabviewpanel-tabviewpanel.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { StateTabViewtabviewpanelTabviewpanelBase } from './state-tab-viewtabviewpanel-tabviewpanel-base';
/**
* tabviewpanel部件
*
* @export
* @class StateTabViewtabviewpanelTabviewpanel
* @extends {StateTabViewtabviewpanelTabviewpanelBase}
*/
@Component({
components: {
}
})
@VueLifeCycleProcessing()
export default class StateTabViewtabviewpanelTabviewpanel extends StateTabViewtabviewpanelTabviewpanelBase { }
</script>
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel2-tabviewpanel/state-tab-viewtabviewpanel2-tabviewpanel-base.tsx
0 → 100644
浏览文件 @
1335b402
import
{
Prop
,
Provide
,
Emit
,
Model
}
from
'vue-property-decorator'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
Watch
,
MainControlBase
}
from
'@/studio-core'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
StateTabViewtabviewpanel2Service
from
'./state-tab-viewtabviewpanel2-tabviewpanel-service'
;
/**
* tabviewpanel2部件基类
*
* @export
* @class MainControlBase
* @extends {StateTabViewtabviewpanel2TabviewpanelBase}
*/
export
class
StateTabViewtabviewpanel2TabviewpanelBase
extends
MainControlBase
{
/**
* 获取部件类型
*
* @protected
* @type {string}
* @memberof StateTabViewtabviewpanel2TabviewpanelBase
*/
protected
controlType
:
string
=
'TABVIEWPANEL'
;
/**
* 建构部件服务对象
*
* @type {StateTabViewtabviewpanel2Service}
* @memberof StateTabViewtabviewpanel2TabviewpanelBase
*/
public
service
:
StateTabViewtabviewpanel2Service
=
new
StateTabViewtabviewpanel2Service
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {OpportunityService}
* @memberof StateTabViewtabviewpanel2TabviewpanelBase
*/
public
appEntityService
:
OpportunityService
=
new
OpportunityService
({
$store
:
this
.
$store
});
/**
* 应用实体名称
*
* @protected
* @type {string}
* @memberof StateTabViewtabviewpanel2TabviewpanelBase
*/
protected
appDeName
:
string
=
'opportunity'
;
/**
* 导航模式下项是否激活
*
* @type {*}
* @memberof StateTabViewtabviewpanel2
*/
@
Prop
()
public
expActive
!
:
any
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof StateTabViewtabviewpanel2
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof StateTabViewtabviewpanel2
*/
public
getData
():
any
{
return
null
;
}
/**
* 是否被激活
*
* @type {boolean}
* @memberof StateTabViewtabviewpanel2
*/
public
isActivied
:
boolean
=
true
;
/**
* 局部上下文
*
* @type {*}
* @memberof StateTabViewtabviewpanel2
*/
public
localContext
:
any
=
null
;
/**
* 局部视图参数
*
* @type {*}
* @memberof StateTabViewtabviewpanel2
*/
public
localViewParam
:
any
=
null
;
/**
* 传入上下文
*
* @type {string}
* @memberof TabExpViewtabviewpanel
*/
public
viewdata
:
string
=
JSON
.
stringify
(
this
.
context
);
/**
* 传入视图参数
*
* @type {string}
* @memberof PickupViewpickupviewpanel
*/
public
viewparam
:
string
=
JSON
.
stringify
(
this
.
viewparams
);
/**
* 视图面板过滤项
*
* @type {string}
* @memberof StateTabViewtabviewpanel2
*/
public
navfilter
:
string
=
""
;
/**
* vue 生命周期
*
* @returns
* @memberof StateTabViewtabviewpanel2
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof StateTabViewtabviewpanel2
*/
public
afterCreated
(){
this
.
initNavParam
();
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
this
.
$forceUpdate
();
this
.
initNavParam
();
});
}
}
/**
* 初始化导航参数
*
* @memberof StateTabViewtabviewpanel2
*/
public
initNavParam
(){
if
(
!
Object
.
is
(
this
.
navfilter
,
""
)){
Object
.
assign
(
this
.
viewparams
,{[
this
.
navfilter
]:
this
.
context
[
'majorentity'
]})
}
if
(
this
.
localContext
&&
Object
.
keys
(
this
.
localContext
).
length
>
0
){
let
_context
:
any
=
this
.
$util
.
computedNavData
({},
this
.
context
,
this
.
viewparams
,
this
.
localContext
);
Object
.
assign
(
this
.
context
,
_context
);
}
if
(
this
.
localViewParam
&&
Object
.
keys
(
this
.
localViewParam
).
length
>
0
){
let
_param
:
any
=
this
.
$util
.
computedNavData
({},
this
.
context
,
this
.
viewparams
,
this
.
localViewParam
);
Object
.
assign
(
this
.
viewparams
,
_param
);
}
this
.
viewdata
=
JSON
.
stringify
(
this
.
context
);
this
.
viewparam
=
JSON
.
stringify
(
this
.
viewparams
);
}
/**
* 视图数据变化
*
* @memberof StateTabViewtabviewpanel2
*/
public
viewDatasChange
(
$event
:
any
){
this
.
$emit
(
'viewpanelDatasChange'
,
$event
);
}
/**
* vue 生命周期
*
* @memberof StateTabViewtabviewpanel2
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof StateTabViewtabviewpanel2
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel2-tabviewpanel/state-tab-viewtabviewpanel2-tabviewpanel-model.ts
0 → 100644
浏览文件 @
1335b402
/**
* StateTabViewtabviewpanel2 部件模型
*
* @export
* @class StateTabViewtabviewpanel2Model
*/
export
default
class
StateTabViewtabviewpanel2Model
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof StateTabViewtabviewpanel2Model
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'decisionmaker'
,
},
{
name
:
'totallineitemamount'
,
},
{
name
:
'processid'
,
},
{
name
:
'discountpercentage'
,
},
{
name
:
'pricingerrorcode'
,
},
{
name
:
'totalamount'
,
},
{
name
:
'totaltax_base'
,
},
{
name
:
'totaltax'
,
},
{
name
:
'updateman'
,
},
{
name
:
'estimatedvalue_base'
,
},
{
name
:
'presentfinalproposal'
,
},
{
name
:
'developproposal'
,
},
{
name
:
'opportunityratingcode'
,
},
{
name
:
'totalamount_base'
,
},
{
name
:
'totalamountlessfreight'
,
},
{
name
:
'description'
,
},
{
name
:
'identifycompetitors'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'sendthankyounote'
,
},
{
name
:
'totaldiscountamount_base'
,
},
{
name
:
'totallineitemdiscountamount'
,
},
{
name
:
'purchaseprocess'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'captureproposalfeedback'
,
},
{
name
:
'finaldecisiondate'
,
},
{
name
:
'stepid'
,
},
{
name
:
'resolvefeedback'
,
},
{
name
:
'budgetamount_base'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'pursuitdecision'
,
},
{
name
:
'revenuesystemcalculated'
,
},
{
name
:
'scheduleproposalmeeting'
,
},
{
name
:
'closeprobability'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'presentproposal'
,
},
{
name
:
'schedulefollowup_prospect'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'actualclosedate'
,
},
{
name
:
'confirminterest'
,
},
{
name
:
'customerid'
,
},
{
name
:
'salesstage'
,
},
{
name
:
'opportunity'
,
prop
:
'opportunityid'
,
},
{
name
:
'onholdtime'
,
},
{
name
:
'qualificationcomments'
,
},
{
name
:
'accountidyominame'
,
},
{
name
:
'schedulefollowup_qualify'
,
},
{
name
:
'participatesinworkflow'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'stepname'
,
},
{
name
:
'customerneed'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'completeinternalreview'
,
},
{
name
:
'evaluatefit'
,
},
{
name
:
'salesstagecode'
,
},
{
name
:
'identifypursuitteam'
,
},
{
name
:
'contactidyominame'
,
},
{
name
:
'initialcommunication'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'freightamount_base'
,
},
{
name
:
'teamsfollowed'
,
},
{
name
:
'proposedsolution'
,
},
{
name
:
'filedebrief'
,
},
{
name
:
'budgetamount'
,
},
{
name
:
'budgetstatus'
,
},
{
name
:
'discountamount_base'
,
},
{
name
:
'completefinalproposal'
,
},
{
name
:
'discountamount'
,
},
{
name
:
'customeridyominame'
,
},
{
name
:
'need'
,
},
{
name
:
'stageid'
,
},
{
name
:
'freightamount'
,
},
{
name
:
'actualvalue'
,
},
{
name
:
'ibizprivate'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'createdate'
,
},
{
name
:
'prioritycode'
,
},
{
name
:
'totallineitemamount_base'
,
},
{
name
:
'estimatedclosedate'
,
},
{
name
:
'currentsituation'
,
},
{
name
:
'actualvalue_base'
,
},
{
name
:
'customerpainpoints'
,
},
{
name
:
'totaldiscountamount'
,
},
{
name
:
'opportunityname'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'identifycustomercontacts'
,
},
{
name
:
'timeline'
,
},
{
name
:
'lastonholdtime'
,
},
{
name
:
'totalamountlessfreight_base'
,
},
{
name
:
'estimatedvalue'
,
},
{
name
:
'emailaddress'
,
},
{
name
:
'statecode'
,
},
{
name
:
'purchasetimeframe'
,
},
{
name
:
'createman'
,
},
{
name
:
'quotecomments'
,
},
{
name
:
'customeridtype'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'slaname'
,
},
{
name
:
'parentcontactid'
,
},
{
name
:
'campaignid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'parentaccountid'
,
},
{
name
:
'pricelevelid'
,
},
{
name
:
'originatingleadid'
,
},
{
name
:
'slaid'
,
},
{
name
:
'originatingleadname'
,
},
{
name
:
'parentaccountname'
,
},
{
name
:
'campaignname'
,
},
{
name
:
'parentcontactname'
,
},
{
name
:
'transactioncurrencyname'
,
},
{
name
:
'pricelevelname'
,
},
]
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel2-tabviewpanel/state-tab-viewtabviewpanel2-tabviewpanel-service.ts
0 → 100644
浏览文件 @
1335b402
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* StateTabViewtabviewpanel2 部件服务对象
*
* @export
* @class StateTabViewtabviewpanel2Service
*/
export
default
class
StateTabViewtabviewpanel2Service
extends
ControlService
{
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel2-tabviewpanel/state-tab-viewtabviewpanel2-tabviewpanel.html
0 → 100644
浏览文件 @
1335b402
<div
class=
'tabviewpanel'
v-if=
'isActivied'
>
<opportunity-win-grid-view
class=
'viewcontainer2'
:viewdata=
"viewdata"
:viewparam=
"viewparam"
@
viewload=
"viewDatasChange($event)"
:viewDefaultUsage=
"false"
:viewUsage=
"7"
:expActive=
"expActive"
/>
</div>
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel2-tabviewpanel/state-tab-viewtabviewpanel2-tabviewpanel.vue
0 → 100644
浏览文件 @
1335b402
<
template
src=
"./state-tab-viewtabviewpanel2-tabviewpanel.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { StateTabViewtabviewpanel2TabviewpanelBase } from './state-tab-viewtabviewpanel2-tabviewpanel-base';
/**
* tabviewpanel2部件
*
* @export
* @class StateTabViewtabviewpanel2Tabviewpanel
* @extends {StateTabViewtabviewpanel2TabviewpanelBase}
*/
@Component({
components: {
}
})
@VueLifeCycleProcessing()
export default class StateTabViewtabviewpanel2Tabviewpanel extends StateTabViewtabviewpanel2TabviewpanelBase { }
</script>
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel3-tabviewpanel/state-tab-viewtabviewpanel3-tabviewpanel-base.tsx
0 → 100644
浏览文件 @
1335b402
import
{
Prop
,
Provide
,
Emit
,
Model
}
from
'vue-property-decorator'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
Watch
,
MainControlBase
}
from
'@/studio-core'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
StateTabViewtabviewpanel3Service
from
'./state-tab-viewtabviewpanel3-tabviewpanel-service'
;
/**
* tabviewpanel3部件基类
*
* @export
* @class MainControlBase
* @extends {StateTabViewtabviewpanel3TabviewpanelBase}
*/
export
class
StateTabViewtabviewpanel3TabviewpanelBase
extends
MainControlBase
{
/**
* 获取部件类型
*
* @protected
* @type {string}
* @memberof StateTabViewtabviewpanel3TabviewpanelBase
*/
protected
controlType
:
string
=
'TABVIEWPANEL'
;
/**
* 建构部件服务对象
*
* @type {StateTabViewtabviewpanel3Service}
* @memberof StateTabViewtabviewpanel3TabviewpanelBase
*/
public
service
:
StateTabViewtabviewpanel3Service
=
new
StateTabViewtabviewpanel3Service
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {OpportunityService}
* @memberof StateTabViewtabviewpanel3TabviewpanelBase
*/
public
appEntityService
:
OpportunityService
=
new
OpportunityService
({
$store
:
this
.
$store
});
/**
* 应用实体名称
*
* @protected
* @type {string}
* @memberof StateTabViewtabviewpanel3TabviewpanelBase
*/
protected
appDeName
:
string
=
'opportunity'
;
/**
* 导航模式下项是否激活
*
* @type {*}
* @memberof StateTabViewtabviewpanel3
*/
@
Prop
()
public
expActive
!
:
any
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof StateTabViewtabviewpanel3
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof StateTabViewtabviewpanel3
*/
public
getData
():
any
{
return
null
;
}
/**
* 是否被激活
*
* @type {boolean}
* @memberof StateTabViewtabviewpanel3
*/
public
isActivied
:
boolean
=
true
;
/**
* 局部上下文
*
* @type {*}
* @memberof StateTabViewtabviewpanel3
*/
public
localContext
:
any
=
null
;
/**
* 局部视图参数
*
* @type {*}
* @memberof StateTabViewtabviewpanel3
*/
public
localViewParam
:
any
=
null
;
/**
* 传入上下文
*
* @type {string}
* @memberof TabExpViewtabviewpanel
*/
public
viewdata
:
string
=
JSON
.
stringify
(
this
.
context
);
/**
* 传入视图参数
*
* @type {string}
* @memberof PickupViewpickupviewpanel
*/
public
viewparam
:
string
=
JSON
.
stringify
(
this
.
viewparams
);
/**
* 视图面板过滤项
*
* @type {string}
* @memberof StateTabViewtabviewpanel3
*/
public
navfilter
:
string
=
""
;
/**
* vue 生命周期
*
* @returns
* @memberof StateTabViewtabviewpanel3
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof StateTabViewtabviewpanel3
*/
public
afterCreated
(){
this
.
initNavParam
();
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
this
.
$forceUpdate
();
this
.
initNavParam
();
});
}
}
/**
* 初始化导航参数
*
* @memberof StateTabViewtabviewpanel3
*/
public
initNavParam
(){
if
(
!
Object
.
is
(
this
.
navfilter
,
""
)){
Object
.
assign
(
this
.
viewparams
,{[
this
.
navfilter
]:
this
.
context
[
'majorentity'
]})
}
if
(
this
.
localContext
&&
Object
.
keys
(
this
.
localContext
).
length
>
0
){
let
_context
:
any
=
this
.
$util
.
computedNavData
({},
this
.
context
,
this
.
viewparams
,
this
.
localContext
);
Object
.
assign
(
this
.
context
,
_context
);
}
if
(
this
.
localViewParam
&&
Object
.
keys
(
this
.
localViewParam
).
length
>
0
){
let
_param
:
any
=
this
.
$util
.
computedNavData
({},
this
.
context
,
this
.
viewparams
,
this
.
localViewParam
);
Object
.
assign
(
this
.
viewparams
,
_param
);
}
this
.
viewdata
=
JSON
.
stringify
(
this
.
context
);
this
.
viewparam
=
JSON
.
stringify
(
this
.
viewparams
);
}
/**
* 视图数据变化
*
* @memberof StateTabViewtabviewpanel3
*/
public
viewDatasChange
(
$event
:
any
){
this
.
$emit
(
'viewpanelDatasChange'
,
$event
);
}
/**
* vue 生命周期
*
* @memberof StateTabViewtabviewpanel3
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof StateTabViewtabviewpanel3
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel3-tabviewpanel/state-tab-viewtabviewpanel3-tabviewpanel-model.ts
0 → 100644
浏览文件 @
1335b402
/**
* StateTabViewtabviewpanel3 部件模型
*
* @export
* @class StateTabViewtabviewpanel3Model
*/
export
default
class
StateTabViewtabviewpanel3Model
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof StateTabViewtabviewpanel3Model
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'decisionmaker'
,
},
{
name
:
'totallineitemamount'
,
},
{
name
:
'processid'
,
},
{
name
:
'discountpercentage'
,
},
{
name
:
'pricingerrorcode'
,
},
{
name
:
'totalamount'
,
},
{
name
:
'totaltax_base'
,
},
{
name
:
'totaltax'
,
},
{
name
:
'updateman'
,
},
{
name
:
'estimatedvalue_base'
,
},
{
name
:
'presentfinalproposal'
,
},
{
name
:
'developproposal'
,
},
{
name
:
'opportunityratingcode'
,
},
{
name
:
'totalamount_base'
,
},
{
name
:
'totalamountlessfreight'
,
},
{
name
:
'description'
,
},
{
name
:
'identifycompetitors'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'sendthankyounote'
,
},
{
name
:
'totaldiscountamount_base'
,
},
{
name
:
'totallineitemdiscountamount'
,
},
{
name
:
'purchaseprocess'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'captureproposalfeedback'
,
},
{
name
:
'finaldecisiondate'
,
},
{
name
:
'stepid'
,
},
{
name
:
'resolvefeedback'
,
},
{
name
:
'budgetamount_base'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'pursuitdecision'
,
},
{
name
:
'revenuesystemcalculated'
,
},
{
name
:
'scheduleproposalmeeting'
,
},
{
name
:
'closeprobability'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'presentproposal'
,
},
{
name
:
'schedulefollowup_prospect'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'actualclosedate'
,
},
{
name
:
'confirminterest'
,
},
{
name
:
'customerid'
,
},
{
name
:
'salesstage'
,
},
{
name
:
'opportunity'
,
prop
:
'opportunityid'
,
},
{
name
:
'onholdtime'
,
},
{
name
:
'qualificationcomments'
,
},
{
name
:
'accountidyominame'
,
},
{
name
:
'schedulefollowup_qualify'
,
},
{
name
:
'participatesinworkflow'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'stepname'
,
},
{
name
:
'customerneed'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'completeinternalreview'
,
},
{
name
:
'evaluatefit'
,
},
{
name
:
'salesstagecode'
,
},
{
name
:
'identifypursuitteam'
,
},
{
name
:
'contactidyominame'
,
},
{
name
:
'initialcommunication'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'freightamount_base'
,
},
{
name
:
'teamsfollowed'
,
},
{
name
:
'proposedsolution'
,
},
{
name
:
'filedebrief'
,
},
{
name
:
'budgetamount'
,
},
{
name
:
'budgetstatus'
,
},
{
name
:
'discountamount_base'
,
},
{
name
:
'completefinalproposal'
,
},
{
name
:
'discountamount'
,
},
{
name
:
'customeridyominame'
,
},
{
name
:
'need'
,
},
{
name
:
'stageid'
,
},
{
name
:
'freightamount'
,
},
{
name
:
'actualvalue'
,
},
{
name
:
'ibizprivate'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'createdate'
,
},
{
name
:
'prioritycode'
,
},
{
name
:
'totallineitemamount_base'
,
},
{
name
:
'estimatedclosedate'
,
},
{
name
:
'currentsituation'
,
},
{
name
:
'actualvalue_base'
,
},
{
name
:
'customerpainpoints'
,
},
{
name
:
'totaldiscountamount'
,
},
{
name
:
'opportunityname'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'identifycustomercontacts'
,
},
{
name
:
'timeline'
,
},
{
name
:
'lastonholdtime'
,
},
{
name
:
'totalamountlessfreight_base'
,
},
{
name
:
'estimatedvalue'
,
},
{
name
:
'emailaddress'
,
},
{
name
:
'statecode'
,
},
{
name
:
'purchasetimeframe'
,
},
{
name
:
'createman'
,
},
{
name
:
'quotecomments'
,
},
{
name
:
'customeridtype'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'slaname'
,
},
{
name
:
'parentcontactid'
,
},
{
name
:
'campaignid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'parentaccountid'
,
},
{
name
:
'pricelevelid'
,
},
{
name
:
'originatingleadid'
,
},
{
name
:
'slaid'
,
},
{
name
:
'originatingleadname'
,
},
{
name
:
'parentaccountname'
,
},
{
name
:
'campaignname'
,
},
{
name
:
'parentcontactname'
,
},
{
name
:
'transactioncurrencyname'
,
},
{
name
:
'pricelevelname'
,
},
]
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel3-tabviewpanel/state-tab-viewtabviewpanel3-tabviewpanel-service.ts
0 → 100644
浏览文件 @
1335b402
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* StateTabViewtabviewpanel3 部件服务对象
*
* @export
* @class StateTabViewtabviewpanel3Service
*/
export
default
class
StateTabViewtabviewpanel3Service
extends
ControlService
{
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel3-tabviewpanel/state-tab-viewtabviewpanel3-tabviewpanel.html
0 → 100644
浏览文件 @
1335b402
<div
class=
'tabviewpanel'
v-if=
'isActivied'
>
<opportunity-lost-grid-view
class=
'viewcontainer2'
:viewdata=
"viewdata"
:viewparam=
"viewparam"
@
viewload=
"viewDatasChange($event)"
:viewDefaultUsage=
"false"
:viewUsage=
"7"
:expActive=
"expActive"
/>
</div>
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel3-tabviewpanel/state-tab-viewtabviewpanel3-tabviewpanel.vue
0 → 100644
浏览文件 @
1335b402
<
template
src=
"./state-tab-viewtabviewpanel3-tabviewpanel.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { StateTabViewtabviewpanel3TabviewpanelBase } from './state-tab-viewtabviewpanel3-tabviewpanel-base';
/**
* tabviewpanel3部件
*
* @export
* @class StateTabViewtabviewpanel3Tabviewpanel
* @extends {StateTabViewtabviewpanel3TabviewpanelBase}
*/
@Component({
components: {
}
})
@VueLifeCycleProcessing()
export default class StateTabViewtabviewpanel3Tabviewpanel extends StateTabViewtabviewpanel3TabviewpanelBase { }
</script>
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录