Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
iBiz企业中心
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz企业套件
iBiz企业中心
提交
1335b402
提交
1335b402
编写于
4年前
作者:
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"
:
"价目表"
,
...
...
This diff is collapsed.
Click to expand it.
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
:
{
...
...
This diff is collapsed.
Click to expand it.
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
:
{
...
...
This diff is collapsed.
Click to expand it.
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"
:
"价目表"
,
...
...
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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>
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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>
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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>
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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>
This diff is collapsed.
Click to expand it.
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'
));
...
...
This diff is collapsed.
Click to expand it.
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?'
,
...
...
This diff is collapsed.
Click to expand it.
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'
,
...
...
This diff is collapsed.
Click to expand it.
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
);
}
/**
/**
* 新建
* 新建
*
*
...
...
This diff is collapsed.
Click to expand it.
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
)){
...
...
This diff is collapsed.
Click to expand it.
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'
},
],
],
},
},
{
{
...
...
This diff is collapsed.
Click to expand it.
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
*/
*/
...
...
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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>
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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>
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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>
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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>
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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>
This diff is collapsed.
Click to expand it.
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录