Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
iBiz企业中心
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz企业套件
iBiz企业中心
提交
1335b402
提交
1335b402
编写于
7月 08, 2020
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
lab_gzf 发布系统代码
上级
5fba7f77
变更
48
展开全部
隐藏空白字符变更
内嵌
并排
正在显示
48 个修改的文件
包含
5484 行增加
和
117 行删除
+5484
-117
view-config.json
app_CRM/public/assets/json/view-config.json
+10
-0
opportunity_en_US.ts
...c/locale/lanres/entities/opportunity/opportunity_en_US.ts
+27
-2
opportunity_zh_CN.ts
...c/locale/lanres/entities/opportunity/opportunity_zh_CN.ts
+27
-2
viewconfig.ts
app_CRM/src/mock/viewconfig/viewconfig.ts
+8
-0
opportunity-edit-date-panel-view-base.tsx
...date-panel-view/opportunity-edit-date-panel-view-base.tsx
+155
-0
opportunity-edit-date-panel-view.html
...dit-date-panel-view/opportunity-edit-date-panel-view.html
+24
-0
opportunity-edit-date-panel-view.vue
...edit-date-panel-view/opportunity-edit-date-panel-view.vue
+22
-0
opportunity-lost-grid-view-base.tsx
...tunity-lost-grid-view/opportunity-lost-grid-view-base.tsx
+697
-0
opportunity-lost-grid-view.html
...pportunity-lost-grid-view/opportunity-lost-grid-view.html
+49
-0
opportunity-lost-grid-view.vue
...opportunity-lost-grid-view/opportunity-lost-grid-view.vue
+24
-0
opportunity-state-tab-view-base.tsx
...tunity-state-tab-view/opportunity-state-tab-view-base.tsx
+120
-0
opportunity-state-tab-view.html
...pportunity-state-tab-view/opportunity-state-tab-view.html
+10
-0
opportunity-state-tab-view.vue
...opportunity-state-tab-view/opportunity-state-tab-view.vue
+22
-0
opportunity-win-grid-view-base.tsx
...ortunity-win-grid-view/opportunity-win-grid-view-base.tsx
+697
-0
opportunity-win-grid-view.html
.../opportunity-win-grid-view/opportunity-win-grid-view.html
+49
-0
opportunity-win-grid-view.vue
...s/opportunity-win-grid-view/opportunity-win-grid-view.vue
+24
-0
page-register.ts
app_CRM/src/pages/ungroup/central/page-register.ts
+9
-5
router.ts
app_CRM/src/pages/ungroup/central/router.ts
+319
-79
state.ts
app_CRM/src/store/modules/view-action/state.ts
+45
-1
opportunity-ui-service-base.ts
.../src/uiservice/opportunity/opportunity-ui-service-base.ts
+69
-0
central-appmenu-base.tsx
.../src/widgets/app/central-appmenu/central-appmenu-base.tsx
+1
-1
central-appmenu-model.ts
.../src/widgets/app/central-appmenu/central-appmenu-model.ts
+4
-4
data-panel-form-base.tsx
...gets/opportunity/data-panel-form/data-panel-form-base.tsx
+5
-23
edit-date-panel-form-base.tsx
...tunity/edit-date-panel-form/edit-date-panel-form-base.tsx
+130
-0
edit-date-panel-form-model.ts
...tunity/edit-date-panel-form/edit-date-panel-form-model.ts
+91
-0
edit-date-panel-form-service.ts
...nity/edit-date-panel-form/edit-date-panel-form-service.ts
+371
-0
edit-date-panel-form.html
...pportunity/edit-date-panel-form/edit-date-panel-form.html
+52
-0
edit-date-panel-form.vue
...opportunity/edit-date-panel-form/edit-date-panel-form.vue
+22
-0
state-tab-viewtabexppanel-tabexppanel-base.tsx
...abexppanel/state-tab-viewtabexppanel-tabexppanel-base.tsx
+85
-0
state-tab-viewtabexppanel-tabexppanel-model.ts
...abexppanel/state-tab-viewtabexppanel-tabexppanel-model.ts
+355
-0
state-tab-viewtabexppanel-tabexppanel-service.ts
...exppanel/state-tab-viewtabexppanel-tabexppanel-service.ts
+45
-0
state-tab-viewtabexppanel-tabexppanel.html
...el-tabexppanel/state-tab-viewtabexppanel-tabexppanel.html
+76
-0
state-tab-viewtabexppanel-tabexppanel.vue
...nel-tabexppanel/state-tab-viewtabexppanel-tabexppanel.vue
+28
-0
state-tab-viewtabviewpanel-tabviewpanel-base.tsx
...iewpanel/state-tab-viewtabviewpanel-tabviewpanel-base.tsx
+205
-0
state-tab-viewtabviewpanel-tabviewpanel-model.ts
...iewpanel/state-tab-viewtabviewpanel-tabviewpanel-model.ts
+355
-0
state-tab-viewtabviewpanel-tabviewpanel-service.ts
...wpanel/state-tab-viewtabviewpanel-tabviewpanel-service.ts
+11
-0
state-tab-viewtabviewpanel-tabviewpanel.html
...tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel.html
+11
-0
state-tab-viewtabviewpanel-tabviewpanel.vue
...-tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel.vue
+22
-0
state-tab-viewtabviewpanel2-tabviewpanel-base.tsx
...ewpanel/state-tab-viewtabviewpanel2-tabviewpanel-base.tsx
+205
-0
state-tab-viewtabviewpanel2-tabviewpanel-model.ts
...ewpanel/state-tab-viewtabviewpanel2-tabviewpanel-model.ts
+355
-0
state-tab-viewtabviewpanel2-tabviewpanel-service.ts
...panel/state-tab-viewtabviewpanel2-tabviewpanel-service.ts
+11
-0
state-tab-viewtabviewpanel2-tabviewpanel.html
...abviewpanel/state-tab-viewtabviewpanel2-tabviewpanel.html
+11
-0
state-tab-viewtabviewpanel2-tabviewpanel.vue
...tabviewpanel/state-tab-viewtabviewpanel2-tabviewpanel.vue
+22
-0
state-tab-viewtabviewpanel3-tabviewpanel-base.tsx
...ewpanel/state-tab-viewtabviewpanel3-tabviewpanel-base.tsx
+205
-0
state-tab-viewtabviewpanel3-tabviewpanel-model.ts
...ewpanel/state-tab-viewtabviewpanel3-tabviewpanel-model.ts
+355
-0
state-tab-viewtabviewpanel3-tabviewpanel-service.ts
...panel/state-tab-viewtabviewpanel3-tabviewpanel-service.ts
+11
-0
state-tab-viewtabviewpanel3-tabviewpanel.html
...abviewpanel/state-tab-viewtabviewpanel3-tabviewpanel.html
+11
-0
state-tab-viewtabviewpanel3-tabviewpanel.vue
...tabviewpanel/state-tab-viewtabviewpanel3-tabviewpanel.vue
+22
-0
未找到文件。
app_CRM/public/assets/json/view-config.json
浏览文件 @
1335b402
...
...
@@ -2289,6 +2289,16 @@
"viewtag"
:
"da3f8c1f20f440f3df54d6c13a8de586"
,
"memo"
:
"系统自动添加"
},
"opportunityedit_datepanelview"
:
{
"title"
:
"头部信息编辑"
,
"caption"
:
"商机"
,
"viewtype"
:
"DEEDITVIEW"
,
"viewmodule"
:
"Sales"
,
"viewname"
:
"OpportunityEdit_DatePanelView"
,
"viewfilename"
:
"opportunity-edit-date-panel-view"
,
"viewtag"
:
"dd0334d4dac239bca7b007cb50d8b640"
,
"memo"
:
""
},
"pricelevelpickupgridview"
:
{
"title"
:
"价目表选择表格视图"
,
"caption"
:
"价目表"
,
...
...
app_CRM/src/locale/lanres/entities/opportunity/opportunity_en_US.ts
浏览文件 @
1335b402
...
...
@@ -174,6 +174,10 @@ export default {
caption
:
"商机信息"
,
title
:
"商机信息"
,
},
edit_datepanelview
:
{
caption
:
"商机"
,
title
:
"头部信息编辑"
,
},
},
quickcreate_form
:
{
details
:
{
...
...
@@ -267,9 +271,30 @@ export default {
uiactions
:
{
},
},
edit_datepanel_form
:
{
details
:
{
group1
:
"商机基本信息"
,
formpage1
:
"基本信息"
,
srfupdatedate
:
"更新时间"
,
srforikey
:
""
,
srfkey
:
"商机"
,
srfmajortext
:
"商机名称"
,
srftempmode
:
""
,
srfuf
:
""
,
srfdeid
:
""
,
srfsourcekey
:
""
,
estimatedclosedate
:
"预计结束日期"
,
estimatedvalue
:
"预计收入"
,
statecode
:
"状态"
,
owneridyominame
:
"负责人"
,
opportunityid
:
"商机"
,
},
uiactions
:
{
},
},
datapanel_form
:
{
details
:
{
button1
:
"
刷新
"
,
button1
:
"
编辑头部信息
"
,
grouppanel1
:
"分组面板"
,
group1
:
"商机基本信息"
,
formpage1
:
"基本信息"
,
...
...
@@ -288,7 +313,7 @@ export default {
opportunityid
:
"商机"
,
},
uiactions
:
{
refresh
:
"刷新
"
,
opportunity_openedit_datepanelview
:
"编辑头部信息
"
,
},
},
productinfo_form
:
{
...
...
app_CRM/src/locale/lanres/entities/opportunity/opportunity_zh_CN.ts
浏览文件 @
1335b402
...
...
@@ -173,6 +173,10 @@ export default {
caption
:
"商机信息"
,
title
:
"商机信息"
,
},
edit_datepanelview
:
{
caption
:
"商机"
,
title
:
"头部信息编辑"
,
},
},
quickcreate_form
:
{
details
:
{
...
...
@@ -266,9 +270,30 @@ export default {
uiactions
:
{
},
},
edit_datepanel_form
:
{
details
:
{
group1
:
"商机基本信息"
,
formpage1
:
"基本信息"
,
srfupdatedate
:
"更新时间"
,
srforikey
:
""
,
srfkey
:
"商机"
,
srfmajortext
:
"商机名称"
,
srftempmode
:
""
,
srfuf
:
""
,
srfdeid
:
""
,
srfsourcekey
:
""
,
estimatedclosedate
:
"预计结束日期"
,
estimatedvalue
:
"预计收入"
,
statecode
:
"状态"
,
owneridyominame
:
"负责人"
,
opportunityid
:
"商机"
,
},
uiactions
:
{
},
},
datapanel_form
:
{
details
:
{
button1
:
"
刷新
"
,
button1
:
"
编辑头部信息
"
,
grouppanel1
:
"分组面板"
,
group1
:
"商机基本信息"
,
formpage1
:
"基本信息"
,
...
...
@@ -287,7 +312,7 @@ export default {
opportunityid
:
"商机"
,
},
uiactions
:
{
refresh
:
"刷新
"
,
opportunity_openedit_datepanelview
:
"编辑头部信息
"
,
},
},
productinfo_form
:
{
...
...
app_CRM/src/mock/viewconfig/viewconfig.ts
浏览文件 @
1335b402
...
...
@@ -1839,6 +1839,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname"
:
"TransactionCurrencyPickupView"
,
"viewtag"
:
"da3f8c1f20f440f3df54d6c13a8de586"
},
"opportunityedit_datepanelview"
:
{
"title"
:
"头部信息编辑"
,
"caption"
:
"商机"
,
"viewtype"
:
"DEEDITVIEW"
,
"viewmodule"
:
"Sales"
,
"viewname"
:
"OpportunityEdit_DatePanelView"
,
"viewtag"
:
"dd0334d4dac239bca7b007cb50d8b640"
},
"pricelevelpickupgridview"
:
{
"title"
:
"价目表选择表格视图"
,
"caption"
:
"价目表"
,
...
...
app_CRM/src/pages/sales/opportunity-edit-date-panel-view/opportunity-edit-date-panel-view-base.tsx
0 → 100644
浏览文件 @
1335b402
import
{
Subject
}
from
'rxjs'
;
import
{
EditViewBase
}
from
'@/studio-core'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
EditViewEngine
from
'@engine/view/edit-view-engine'
;
/**
* 头部信息编辑视图基类
*
* @export
* @class OpportunityEdit_DatePanelViewBase
* @extends {EditViewBase}
*/
export
class
OpportunityEdit_DatePanelViewBase
extends
EditViewBase
{
/**
* 视图对应应用实体名称
*
* @protected
* @type {string}
* @memberof OpportunityEdit_DatePanelViewBase
*/
protected
appDeName
:
string
=
'opportunity'
;
/**
* 应用实体主键
*
* @protected
* @type {string}
* @memberof OpportunityEdit_DatePanelViewBase
*/
protected
appDeKey
:
string
=
'opportunityid'
;
/**
* 应用实体主信息
*
* @protected
* @type {string}
* @memberof OpportunityEdit_DatePanelViewBase
*/
protected
appDeMajor
:
string
=
'opportunityname'
;
/**
* 实体服务对象
*
* @type {OpportunityService}
* @memberof OpportunityEdit_DatePanelViewBase
*/
protected
appEntityService
:
OpportunityService
=
new
OpportunityService
;
/**
* 计数器服务对象集合
*
* @protected
* @type {Array<*>}
* @memberof OpportunityEdit_DatePanelViewBase
*/
protected
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 视图模型数据
*
* @protected
* @type {*}
* @memberof OpportunityEdit_DatePanelViewBase
*/
protected
model
:
any
=
{
srfCaption
:
'entities.opportunity.views.edit_datepanelview.caption'
,
srfTitle
:
'entities.opportunity.views.edit_datepanelview.title'
,
srfSubTitle
:
'entities.opportunity.views.edit_datepanelview.subtitle'
,
dataInfo
:
''
}
/**
* 容器模型
*
* @protected
* @type {*}
* @memberof OpportunityEdit_DatePanelViewBase
*/
protected
containerModel
:
any
=
{
view_form
:
{
name
:
'form'
,
type
:
'FORM'
},
};
/**
* 视图唯一标识
*
* @protected
* @type {string}
* @memberof ViewBase
*/
protected
viewtag
:
string
=
'dd0334d4dac239bca7b007cb50d8b640'
;
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof OpportunityEdit_DatePanelViewBase
*/
public
engine
:
EditViewEngine
=
new
EditViewEngine
();
/**
* 引擎初始化
*
* @public
* @memberof OpportunityEdit_DatePanelViewBase
*/
public
engineInit
():
void
{
this
.
engine
.
init
({
view
:
this
,
form
:
this
.
$refs
.
form
,
p2k
:
'0'
,
keyPSDEField
:
'opportunity'
,
majorPSDEField
:
'opportunityname'
,
isLoadDefault
:
true
,
});
}
/**
* form 部件 save 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityEdit_DatePanelViewBase
*/
public
form_save
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'save'
,
$event
);
}
/**
* form 部件 remove 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityEdit_DatePanelViewBase
*/
public
form_remove
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'remove'
,
$event
);
}
/**
* form 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityEdit_DatePanelViewBase
*/
public
form_load
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'load'
,
$event
);
}
}
\ No newline at end of file
app_CRM/src/pages/sales/opportunity-edit-date-panel-view/opportunity-edit-date-panel-view.html
0 → 100644
浏览文件 @
1335b402
<studio-view-style2
viewName=
"opportunityedit_datepanelview"
viewTitle=
"头部信息编辑"
class=
'deeditview opportunity-edit-date-panel-view'
>
<view
_form
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:autosave=
"true"
:viewtag=
"viewtag"
:showBusyIndicator=
"true"
updateAction=
"Update"
removeAction=
"Remove"
loaddraftAction=
"GetDraft"
loadAction=
"Get"
createAction=
"Create"
WFSubmitAction=
""
WFStartAction=
""
style=
''
name=
"form"
ref=
'form'
@
save=
"form_save($event)"
@
remove=
"form_remove($event)"
@
load=
"form_load($event)"
@
closeview=
"closeView($event)"
>
</view
_form
>
</studio-view-style2>
\ No newline at end of file
app_CRM/src/pages/sales/opportunity-edit-date-panel-view/opportunity-edit-date-panel-view.vue
0 → 100644
浏览文件 @
1335b402
<
template
src=
"./opportunity-edit-date-panel-view.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { OpportunityEdit_DatePanelViewBase } from './opportunity-edit-date-panel-view-base';
import view_form from '@widgets/opportunity/edit-date-panel-form/edit-date-panel-form.vue';
/**
* 头部信息编辑视图
*
* @export
* @class OpportunityEdit_DatePanelView
* @extends {OpportunityEdit_DatePanelViewBase}
*/
@Component({
components: {
view_form,
}
})
@VueLifeCycleProcessing()
export default class OpportunityEdit_DatePanelView extends OpportunityEdit_DatePanelViewBase { }
</script>
app_CRM/src/pages/sales/opportunity-lost-grid-view/opportunity-lost-grid-view-base.tsx
0 → 100644
浏览文件 @
1335b402
此差异已折叠。
点击以展开。
app_CRM/src/pages/sales/opportunity-lost-grid-view/opportunity-lost-grid-view.html
0 → 100644
浏览文件 @
1335b402
<studio-view-style2
viewName=
"opportunitylostgridview"
viewTitle=
"商机信息"
class=
'degridview opportunity-lost-grid-view'
>
<i-input
slot=
"quickSearch"
v-show=
"!isExpandSearchForm"
v-model=
"query"
search
@
on-search=
"onSearch($event)"
/>
<template
slot=
"toolbar"
>
<view-toolbar
mode=
"STYLE2"
:model=
"toolBarModels"
@
item-click=
"toolbar_click($event)"
/>
</template>
<template
slot=
"searchForm"
>
<view
_searchform
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:showBusyIndicator=
"true"
v-show=
"isExpandSearchForm"
loaddraftAction=
"FilterGetDraft"
loadAction=
"FilterGet"
name=
"searchform"
ref=
'searchform'
@
save=
"searchform_save($event)"
@
search=
"searchform_search($event)"
@
load=
"searchform_load($event)"
@
closeview=
"closeView($event)"
>
</view
_searchform
>
</template>
<view
_grid
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:isSingleSelect=
"isGridSingleSelect"
:showBusyIndicator=
"true"
:isOpenEdit=
"false"
:gridRowActiveMode=
"gridRowActiveMode"
@
save=
"onSave"
updateAction=
""
removeAction=
"Remove"
loaddraftAction=
""
loadAction=
""
createAction=
""
fetchAction=
"FetchLost"
:newdata=
"newdata"
:opendata=
"opendata"
name=
"grid"
ref=
'grid'
@
selectionchange=
"grid_selectionchange($event)"
@
beforeload=
"grid_beforeload($event)"
@
rowdblclick=
"grid_rowdblclick($event)"
@
remove=
"grid_remove($event)"
@
load=
"grid_load($event)"
@
closeview=
"closeView($event)"
>
</view
_grid
>
</studio-view-style2>
\ No newline at end of file
app_CRM/src/pages/sales/opportunity-lost-grid-view/opportunity-lost-grid-view.vue
0 → 100644
浏览文件 @
1335b402
<
template
src=
"./opportunity-lost-grid-view.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { OpportunityLostGridViewBase } from './opportunity-lost-grid-view-base';
import view_grid from '@widgets/opportunity/main-grid/main-grid.vue';
import view_searchform from '@widgets/opportunity/default-searchform/default-searchform.vue';
/**
* 商机信息视图
*
* @export
* @class OpportunityLostGridView
* @extends {OpportunityLostGridViewBase}
*/
@Component({
components: {
view_grid,
view_searchform,
}
})
@VueLifeCycleProcessing()
export default class OpportunityLostGridView extends OpportunityLostGridViewBase { }
</script>
app_CRM/src/pages/sales/opportunity-state-tab-view/opportunity-state-tab-view-base.tsx
0 → 100644
浏览文件 @
1335b402
import
{
Subject
}
from
'rxjs'
;
import
{
TabExpViewBase
}
from
'@/studio-core'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
TabExpViewEngine
from
'@engine/view/tab-exp-view-engine'
;
/**
* 商机状态分页视图视图基类
*
* @export
* @class OpportunityStateTabViewBase
* @extends {TabExpViewBase}
*/
export
class
OpportunityStateTabViewBase
extends
TabExpViewBase
{
/**
* 视图对应应用实体名称
*
* @protected
* @type {string}
* @memberof OpportunityStateTabViewBase
*/
protected
appDeName
:
string
=
'opportunity'
;
/**
* 应用实体主键
*
* @protected
* @type {string}
* @memberof OpportunityStateTabViewBase
*/
protected
appDeKey
:
string
=
'opportunityid'
;
/**
* 应用实体主信息
*
* @protected
* @type {string}
* @memberof OpportunityStateTabViewBase
*/
protected
appDeMajor
:
string
=
'opportunityname'
;
/**
* 实体服务对象
*
* @type {OpportunityService}
* @memberof OpportunityStateTabViewBase
*/
protected
appEntityService
:
OpportunityService
=
new
OpportunityService
;
/**
* 计数器服务对象集合
*
* @protected
* @type {Array<*>}
* @memberof OpportunityStateTabViewBase
*/
protected
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 视图模型数据
*
* @protected
* @type {*}
* @memberof OpportunityStateTabViewBase
*/
protected
model
:
any
=
{
srfCaption
:
'entities.opportunity.views.statetabview.caption'
,
srfTitle
:
'entities.opportunity.views.statetabview.title'
,
srfSubTitle
:
'entities.opportunity.views.statetabview.subtitle'
,
dataInfo
:
''
}
/**
* 容器模型
*
* @protected
* @type {*}
* @memberof OpportunityStateTabViewBase
*/
protected
containerModel
:
any
=
{
view_tabexppanel
:
{
name
:
'tabexppanel'
,
type
:
'TABEXPPANEL'
},
};
/**
* 视图唯一标识
*
* @protected
* @type {string}
* @memberof ViewBase
*/
protected
viewtag
:
string
=
'00367e275947880480763049e5c495be'
;
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof OpportunityStateTabViewBase
*/
public
engine
:
TabExpViewEngine
=
new
TabExpViewEngine
();
/**
* 引擎初始化
*
* @public
* @memberof OpportunityStateTabViewBase
*/
public
engineInit
():
void
{
this
.
engine
.
init
({
view
:
this
,
keyPSDEField
:
'opportunity'
,
majorPSDEField
:
'opportunityname'
,
isLoadDefault
:
true
,
});
}
}
\ No newline at end of file
app_CRM/src/pages/sales/opportunity-state-tab-view/opportunity-state-tab-view.html
0 → 100644
浏览文件 @
1335b402
<studio-view-style2
viewName=
"opportunitystatetabview"
viewTitle=
"商机状态分页视图"
class=
'detabexpview opportunity-state-tab-view'
>
<view
_tabexppanel
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
name=
"tabexppanel"
ref=
'tabexppanel'
@
closeview=
"closeView($event)"
>
</view
_tabexppanel
>
</studio-view-style2>
\ No newline at end of file
app_CRM/src/pages/sales/opportunity-state-tab-view/opportunity-state-tab-view.vue
0 → 100644
浏览文件 @
1335b402
<
template
src=
"./opportunity-state-tab-view.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { OpportunityStateTabViewBase } from './opportunity-state-tab-view-base';
import view_tabexppanel from '@widgets/opportunity/state-tab-viewtabexppanel-tabexppanel/state-tab-viewtabexppanel-tabexppanel.vue';
/**
* 商机状态分页视图视图
*
* @export
* @class OpportunityStateTabView
* @extends {OpportunityStateTabViewBase}
*/
@Component({
components: {
view_tabexppanel,
}
})
@VueLifeCycleProcessing()
export default class OpportunityStateTabView extends OpportunityStateTabViewBase { }
</script>
app_CRM/src/pages/sales/opportunity-win-grid-view/opportunity-win-grid-view-base.tsx
0 → 100644
浏览文件 @
1335b402
此差异已折叠。
点击以展开。
app_CRM/src/pages/sales/opportunity-win-grid-view/opportunity-win-grid-view.html
0 → 100644
浏览文件 @
1335b402
<studio-view-style2
viewName=
"opportunitywingridview"
viewTitle=
"商机信息"
class=
'degridview opportunity-win-grid-view'
>
<i-input
slot=
"quickSearch"
v-show=
"!isExpandSearchForm"
v-model=
"query"
search
@
on-search=
"onSearch($event)"
/>
<template
slot=
"toolbar"
>
<view-toolbar
mode=
"STYLE2"
:model=
"toolBarModels"
@
item-click=
"toolbar_click($event)"
/>
</template>
<template
slot=
"searchForm"
>
<view
_searchform
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:showBusyIndicator=
"true"
v-show=
"isExpandSearchForm"
loaddraftAction=
"FilterGetDraft"
loadAction=
"FilterGet"
name=
"searchform"
ref=
'searchform'
@
save=
"searchform_save($event)"
@
search=
"searchform_search($event)"
@
load=
"searchform_load($event)"
@
closeview=
"closeView($event)"
>
</view
_searchform
>
</template>
<view
_grid
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:isSingleSelect=
"isGridSingleSelect"
:showBusyIndicator=
"true"
:isOpenEdit=
"false"
:gridRowActiveMode=
"gridRowActiveMode"
@
save=
"onSave"
updateAction=
""
removeAction=
"Remove"
loaddraftAction=
""
loadAction=
""
createAction=
""
fetchAction=
"FetchWin"
:newdata=
"newdata"
:opendata=
"opendata"
name=
"grid"
ref=
'grid'
@
selectionchange=
"grid_selectionchange($event)"
@
beforeload=
"grid_beforeload($event)"
@
rowdblclick=
"grid_rowdblclick($event)"
@
remove=
"grid_remove($event)"
@
load=
"grid_load($event)"
@
closeview=
"closeView($event)"
>
</view
_grid
>
</studio-view-style2>
\ No newline at end of file
app_CRM/src/pages/sales/opportunity-win-grid-view/opportunity-win-grid-view.vue
0 → 100644
浏览文件 @
1335b402
<
template
src=
"./opportunity-win-grid-view.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { OpportunityWinGridViewBase } from './opportunity-win-grid-view-base';
import view_grid from '@widgets/opportunity/main-grid/main-grid.vue';
import view_searchform from '@widgets/opportunity/default-searchform/default-searchform.vue';
/**
* 商机信息视图
*
* @export
* @class OpportunityWinGridView
* @extends {OpportunityWinGridViewBase}
*/
@Component({
components: {
view_grid,
view_searchform,
}
})
@VueLifeCycleProcessing()
export default class OpportunityWinGridView extends OpportunityWinGridViewBase { }
</script>
app_CRM/src/pages/ungroup/central/page-register.ts
浏览文件 @
1335b402
...
...
@@ -26,13 +26,16 @@ export const PageComponents = {
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
(
'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
(
'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
(
'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
(
'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
(
'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
(
'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'
));
...
...
@@ -54,9 +57,9 @@ export const PageComponents = {
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
(
'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
(
'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
(
'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'
));
...
...
@@ -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
(
'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
(
'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
(
'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
(
'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'
));
...
...
@@ -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
(
'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
(
'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
(
'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'
));
...
...
@@ -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
(
'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
(
'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
(
'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
(
'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'
));
...
...
@@ -155,8 +159,8 @@ export const PageComponents = {
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
(
'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
(
'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
(
'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'
));
...
...
@@ -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
(
'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
(
'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
(
'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
(
'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'
));
...
...
app_CRM/src/pages/ungroup/central/router.ts
浏览文件 @
1335b402
此差异已折叠。
点击以展开。
app_CRM/src/store/modules/view-action/state.ts
浏览文件 @
1335b402
...
...
@@ -3,6 +3,18 @@
*/
export
const
viewstate
:
any
=
{
appviews
:
[
{
viewtag
:
'00367e275947880480763049e5c495be'
,
viewmodule
:
'Sales'
,
viewname
:
'OpportunityStateTabView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'cbd7a448bb018d9efebb4d1495507fa2'
,
'd43a25ac94ca7cb20db961aae174ca53'
,
'5f8f689d5dccc3db6d2b74a24a8b24ef'
,
],
},
{
viewtag
:
'00b46653e7146942634692ebe4fb43eb'
,
viewmodule
:
'Product'
,
...
...
@@ -1292,7 +1304,6 @@ export const viewstate: any = {
'24a93674ec4c976c08902a3e95421ca6'
,
'b38bc0256ecd5be1a58a3c2210a98d05'
,
'25bf5f8c2ebd1ce2be6d06717ed08a96'
,
'5f8f689d5dccc3db6d2b74a24a8b24ef'
,
'dfc0051ae4813115e03f3d095f8cd7d3'
,
'3202f3f503424c7a2c549b2c5186dc36'
,
'8895fef7ce4f5bdd1cd8f950bd1f8bcc'
,
...
...
@@ -1307,6 +1318,7 @@ export const viewstate: any = {
'e0aef8c0d1f1ae28f628a0541b118961'
,
'14110058a29397ea9ac7d4e86a3994ca'
,
'3a665de6a3970b95fde436c0fea4b1df'
,
'00367e275947880480763049e5c495be'
,
],
},
{
...
...
@@ -1326,6 +1338,7 @@ export const viewstate: any = {
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'dd0334d4dac239bca7b007cb50d8b640'
,
'177c00d1674621e8933efe6db68bce0e'
,
'7bf35293fd1d9db7816755a74c4d575e'
,
'78862ad65295f145e7520291f1183604'
,
...
...
@@ -1997,6 +2010,17 @@ export const viewstate: any = {
'9be8eab621377b4bb8432a48a3f3f785'
,
],
},
{
viewtag
:
'cbd7a448bb018d9efebb4d1495507fa2'
,
viewmodule
:
'Sales'
,
viewname
:
'OpportunityWinGridView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'8bfcd7acdd1f36afc1714f1071671f2c'
,
'a243cd62accb02ceba4fb128703128f0'
,
],
},
{
viewtag
:
'd138851bb39f6334938bb634467dc3cc'
,
viewmodule
:
'Service'
,
...
...
@@ -2036,6 +2060,17 @@ export const viewstate: any = {
refviews
:
[
],
},
{
viewtag
:
'd43a25ac94ca7cb20db961aae174ca53'
,
viewmodule
:
'Sales'
,
viewname
:
'OpportunityLostGridView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'8bfcd7acdd1f36afc1714f1071671f2c'
,
'a243cd62accb02ceba4fb128703128f0'
,
],
},
{
viewtag
:
'd5bc3dd94496dbc1549773a1647ca64d'
,
viewmodule
:
'Sales'
,
...
...
@@ -2070,6 +2105,15 @@ export const viewstate: any = {
'6d8a2615030eed5779caea69f7f001aa'
,
],
},
{
viewtag
:
'dd0334d4dac239bca7b007cb50d8b640'
,
viewmodule
:
'Sales'
,
viewname
:
'OpportunityEdit_DatePanelView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
],
},
{
viewtag
:
'dd10cba0f2ded085120f7dc8eccc7c10'
,
viewmodule
:
'Product'
,
...
...
app_CRM/src/uiservice/opportunity/opportunity-ui-service-base.ts
浏览文件 @
1335b402
...
...
@@ -94,6 +94,7 @@ export default class OpportunityUIServiceBase extends UIService {
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'info_product'
,
srfappde
:
'opportunities'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'wingridview'
,
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 {
backend
();
}
/**
* 编辑头部信息
*
* @param {any[]} args 当前数据
* @param {any} context 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @param {*} [srfParentDeName] 父实体名称
* @returns {Promise<any>}
*/
public
async
Opportunity_OpenEdit_DatePanelView
(
args
:
any
[],
context
:
any
=
{}
,
params
:
any
=
{},
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
let
data
:
any
=
{};
let
parentContext
:
any
=
{};
let
parentViewParam
:
any
=
{};
const
_this
:
any
=
actionContext
;
const
_args
:
any
[]
=
Util
.
deepCopy
(
args
);
const
actionTarget
:
string
|
null
=
'SINGLEKEY'
;
Object
.
assign
(
context
,
{
opportunity
:
'%opportunity%'
});
Object
.
assign
(
params
,
{
opportunityid
:
'%opportunity%'
});
Object
.
assign
(
params
,
{
opportunityname
:
'%opportunityname%'
});
if
(
_this
.
context
){
parentContext
=
_this
.
context
;
}
if
(
_this
.
viewparams
){
parentViewParam
=
_this
.
viewparams
;
}
context
=
UIActionTool
.
handleContextParam
(
actionTarget
,
_args
,
parentContext
,
parentViewParam
,
context
);
data
=
UIActionTool
.
handleActionParam
(
actionTarget
,
_args
,
parentContext
,
parentViewParam
,
params
);
context
=
Object
.
assign
({},
actionContext
.
context
,
context
);
let
parentObj
:
any
=
{
srfparentdename
:
srfParentDeName
?
srfParentDeName
:
null
,
srfparentkey
:
srfParentDeName
?
context
[
srfParentDeName
.
toLowerCase
()]:
null
};
Object
.
assign
(
data
,
parentObj
);
Object
.
assign
(
context
,
parentObj
);
let
deResParameters
:
any
[]
=
[];
if
(
context
.
account
&&
true
){
deResParameters
=
[
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
]
}
const
parameters
:
any
[]
=
[
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
];
const
openPopOver
=
(
view
:
any
,
data
:
any
)
=>
{
let
container
:
Subject
<
any
>
=
actionContext
.
$apppopover
.
openPop
(
$event
,
view
,
context
,
data
);
container
.
subscribe
((
result
:
any
)
=>
{
if
(
!
result
||
!
Object
.
is
(
result
.
ret
,
'OK'
))
{
return
;
}
const
_this
:
any
=
actionContext
;
if
(
window
.
opener
){
window
.
opener
.
postMessage
({
status
:
'OK'
,
identification
:
'WF'
},
Environment
.
uniteAddress
);
window
.
close
();
}
return
result
.
datas
;
});
}
const
view
:
any
=
{
viewname
:
'opportunity-edit-date-panel-view'
,
height
:
300
,
width
:
300
,
title
:
actionContext
.
$t
(
'entities.opportunity.views.edit_datepanelview.title'
),
placement
:
'POPOVER'
,
};
openPopOver
(
view
,
data
);
}
/**
* 新建
*
...
...
app_CRM/src/widgets/app/central-appmenu/central-appmenu-base.tsx
浏览文件 @
1335b402
...
...
@@ -376,7 +376,7 @@ export class CentralBase extends Vue {
const
deResParameters
:
any
[]
=
[];
const
parameters
:
any
[]
=
[
{
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
);
if
(
Object
.
is
(
this
.
$route
.
fullPath
,
path
)){
...
...
app_CRM/src/widgets/app/central-appmenu/central-appmenu-model.ts
浏览文件 @
1335b402
...
...
@@ -393,7 +393,7 @@ export default class CentralModel {
textcls
:
''
,
appfunctag
:
'Auto10'
,
appfuncyype
:
'APPVIEW'
,
viewname
:
'opportunity-
grid
-view'
,
viewname
:
'opportunity-
state-tab
-view'
,
resourcetag
:
''
,
}
,
...
...
@@ -1003,12 +1003,12 @@ export default class CentralModel {
appfunctag
:
'Auto10'
,
appfuncyype
:
'APPVIEW'
,
openmode
:
''
,
codename
:
'opportunity
grid
view'
,
codename
:
'opportunity
statetab
view'
,
deResParameters
:
[],
routepath
:
'/central/:central?/opportunities/:opportunity?/
gridview/:grid
view?'
,
routepath
:
'/central/:central?/opportunities/:opportunity?/
statetabview/:statetab
view?'
,
parameters
:
[
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'
gridview'
,
parameterName
:
'grid
view'
},
{
pathName
:
'
statetabview'
,
parameterName
:
'statetab
view'
},
],
},
{
...
...
app_CRM/src/widgets/opportunity/data-panel-form/data-panel-form-base.tsx
浏览文件 @
1335b402
...
...
@@ -3,6 +3,7 @@ import { Subject, Subscription } from 'rxjs';
import
{
Watch
,
EditFormControlBase
}
from
'@/studio-core'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-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'
;
...
...
@@ -73,27 +74,8 @@ export class DataPanelEditFormBase extends EditFormControlBase {
datas
=
[
params
];
}
// 界面行为
this
.
Refresh
(
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
);
}
const
curUIService
:
OpportunityUIService
=
new
OpportunityUIService
();
curUIService
.
Opportunity_OpenEdit_DatePanelView
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Opportunity"
);
}
/**
...
...
@@ -135,7 +117,7 @@ export class DataPanelEditFormBase extends EditFormControlBase {
* @memberof DataPanelEditFormBase
*/
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
:
[]
}
}),
...
...
@@ -172,7 +154,7 @@ export class DataPanelEditFormBase extends EditFormControlBase {
};
/**
* 表单
刷新
事件
* 表单
编辑头部信息
事件
*
* @memberof @memberof DataPanelEditFormBase
*/
...
...
app_CRM/src/widgets/opportunity/edit-date-panel-form/edit-date-panel-form-base.tsx
0 → 100644
浏览文件 @
1335b402
import
{
Prop
,
Provide
,
Emit
,
Model
}
from
'vue-property-decorator'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
Watch
,
EditFormControlBase
}
from
'@/studio-core'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
Edit_DatePanelService
from
'./edit-date-panel-form-service'
;
import
{
FormButtonModel
,
FormPageModel
,
FormItemModel
,
FormDRUIPartModel
,
FormPartModel
,
FormGroupPanelModel
,
FormIFrameModel
,
FormRowItemModel
,
FormTabPageModel
,
FormTabPanelModel
,
FormUserControlModel
}
from
'@/model/form-detail'
;
/**
* form部件基类
*
* @export
* @class EditFormControlBase
* @extends {Edit_DatePanelEditFormBase}
*/
export
class
Edit_DatePanelEditFormBase
extends
EditFormControlBase
{
/**
* 获取部件类型
*
* @protected
* @type {string}
* @memberof Edit_DatePanelEditFormBase
*/
protected
controlType
:
string
=
'FORM'
;
/**
* 建构部件服务对象
*
* @type {Edit_DatePanelService}
* @memberof Edit_DatePanelEditFormBase
*/
public
service
:
Edit_DatePanelService
=
new
Edit_DatePanelService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {OpportunityService}
* @memberof Edit_DatePanelEditFormBase
*/
public
appEntityService
:
OpportunityService
=
new
OpportunityService
({
$store
:
this
.
$store
});
/**
* 应用实体名称
*
* @protected
* @type {string}
* @memberof Edit_DatePanelEditFormBase
*/
protected
appDeName
:
string
=
'opportunity'
;
/**
* 表单数据对象
*
* @type {*}
* @memberof Edit_DatePanelEditFormBase
*/
public
data
:
any
=
{
srfupdatedate
:
null
,
srforikey
:
null
,
srfkey
:
null
,
srfmajortext
:
null
,
srftempmode
:
null
,
srfuf
:
null
,
srfdeid
:
null
,
srfsourcekey
:
null
,
estimatedclosedate
:
null
,
estimatedvalue
:
null
,
statecode
:
null
,
owneridyominame
:
null
,
opportunityid
:
null
,
opportunity
:
null
,
};
/**
* 属性值规则
*
* @type {*}
* @memberof Edit_DatePanelEditFormBase
*/
public
rules
:
any
=
{
statecode
:
[
{
required
:
true
,
type
:
'number'
,
message
:
'状态 值不能为空'
,
trigger
:
'change'
},
{
required
:
true
,
type
:
'number'
,
message
:
'状态 值不能为空'
,
trigger
:
'blur'
},
],
owneridyominame
:
[
{
required
:
true
,
type
:
'string'
,
message
:
'负责人 值不能为空'
,
trigger
:
'change'
},
{
required
:
true
,
type
:
'string'
,
message
:
'负责人 值不能为空'
,
trigger
:
'blur'
},
],
}
/**
* 详情模型集合
*
* @type {*}
* @memberof Edit_DatePanelEditFormBase
*/
public
detailsModel
:
any
=
{
group1
:
new
FormGroupPanelModel
({
caption
:
'商机基本信息'
,
detailType
:
'GROUPPANEL'
,
name
:
'group1'
,
visible
:
true
,
isShowCaption
:
false
,
form
:
this
,
uiActionGroup
:
{
caption
:
''
,
langbase
:
'entities.opportunity.edit_datepanel_form'
,
extractMode
:
'ITEM'
,
details
:
[]
}
}),
formpage1
:
new
FormPageModel
({
caption
:
'基本信息'
,
detailType
:
'FORMPAGE'
,
name
:
'formpage1'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
}),
srfupdatedate
:
new
FormItemModel
({
caption
:
'更新时间'
,
detailType
:
'FORMITEM'
,
name
:
'srfupdatedate'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
0
}),
srforikey
:
new
FormItemModel
({
caption
:
''
,
detailType
:
'FORMITEM'
,
name
:
'srforikey'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
srfkey
:
new
FormItemModel
({
caption
:
'商机'
,
detailType
:
'FORMITEM'
,
name
:
'srfkey'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
srfmajortext
:
new
FormItemModel
({
caption
:
'商机名称'
,
detailType
:
'FORMITEM'
,
name
:
'srfmajortext'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
srftempmode
:
new
FormItemModel
({
caption
:
''
,
detailType
:
'FORMITEM'
,
name
:
'srftempmode'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
srfuf
:
new
FormItemModel
({
caption
:
''
,
detailType
:
'FORMITEM'
,
name
:
'srfuf'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
srfdeid
:
new
FormItemModel
({
caption
:
''
,
detailType
:
'FORMITEM'
,
name
:
'srfdeid'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
srfsourcekey
:
new
FormItemModel
({
caption
:
''
,
detailType
:
'FORMITEM'
,
name
:
'srfsourcekey'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
estimatedclosedate
:
new
FormItemModel
({
caption
:
'预计结束日期'
,
detailType
:
'FORMITEM'
,
name
:
'estimatedclosedate'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
estimatedvalue
:
new
FormItemModel
({
caption
:
'预计收入'
,
detailType
:
'FORMITEM'
,
name
:
'estimatedvalue'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
statecode
:
new
FormItemModel
({
caption
:
'状态'
,
detailType
:
'FORMITEM'
,
name
:
'statecode'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
owneridyominame
:
new
FormItemModel
({
caption
:
'负责人'
,
detailType
:
'FORMITEM'
,
name
:
'owneridyominame'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
opportunityid
:
new
FormItemModel
({
caption
:
'商机'
,
detailType
:
'FORMITEM'
,
name
:
'opportunityid'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
}),
};
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/edit-date-panel-form/edit-date-panel-form-model.ts
0 → 100644
浏览文件 @
1335b402
/**
* Edit_DatePanel 部件模型
*
* @export
* @class Edit_DatePanelModel
*/
export
default
class
Edit_DatePanelModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof Edit_DatePanelModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'srfwfmemo'
,
prop
:
'srfwfmemo'
,
dataType
:
'TEXT'
,
},
// 前端新增修改标识,新增为"0",修改为"1"或未设值
{
name
:
'srffrontuf'
,
prop
:
'srffrontuf'
,
dataType
:
'TEXT'
,
},
{
name
:
'srfupdatedate'
,
prop
:
'updatedate'
,
dataType
:
'DATETIME'
,
},
{
name
:
'srforikey'
,
},
{
name
:
'srfkey'
,
prop
:
'opportunityid'
,
dataType
:
'GUID'
,
},
{
name
:
'srfmajortext'
,
prop
:
'opportunityname'
,
dataType
:
'TEXT'
,
},
{
name
:
'srftempmode'
,
},
{
name
:
'srfuf'
,
},
{
name
:
'srfdeid'
,
},
{
name
:
'srfsourcekey'
,
},
{
name
:
'estimatedclosedate'
,
prop
:
'estimatedclosedate'
,
dataType
:
'DATETIME'
,
},
{
name
:
'estimatedvalue'
,
prop
:
'estimatedvalue'
,
dataType
:
'BIGDECIMAL'
,
},
{
name
:
'statecode'
,
prop
:
'statecode'
,
dataType
:
'NSCODELIST'
,
},
{
name
:
'owneridyominame'
,
prop
:
'owneridyominame'
,
dataType
:
'TEXT'
,
},
{
name
:
'opportunityid'
,
prop
:
'opportunityid'
,
dataType
:
'GUID'
,
},
{
name
:
'opportunity'
,
prop
:
'opportunityid'
,
dataType
:
'FONTKEY'
,
},
]
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/edit-date-panel-form/edit-date-panel-form-service.ts
0 → 100644
浏览文件 @
1335b402
此差异已折叠。
点击以展开。
app_CRM/src/widgets/opportunity/edit-date-panel-form/edit-date-panel-form.html
0 → 100644
浏览文件 @
1335b402
<i-form
:model=
"this.data"
class=
'app-form'
ref=
'form'
id=
'opportunity_edit_datepanel'
style=
""
>
<input
style=
"display:none;"
/>
<row
>
<i-col
v-show=
"detailsModel.group1.visible"
:style=
"{}"
:lg=
"{ span: 24, offset: 0 }"
>
<app-form-group
layoutType=
"TABLE_24COL"
titleStyle=
""
class=
''
:uiActionGroup=
"detailsModel.group1.uiActionGroup"
@
groupuiactionclick=
"groupUIActionClick($event)"
:caption=
"$t('entities.opportunity.edit_datepanel_form.details.group1')"
:isShowCaption=
"false"
uiStyle=
"DEFAULT"
:titleBarCloseMode=
"0"
:isInfoGroupMode=
"false"
>
<row>
<i-col
v-show=
"detailsModel.estimatedclosedate.visible"
:style=
"{}"
:lg=
"{ span: 24, offset: 0 }"
>
<app-form-item
name=
'estimatedclosedate'
:itemRules=
"this.rules.estimatedclosedate"
class=
''
:caption=
"$t('entities.opportunity.edit_datepanel_form.details.estimatedclosedate')"
uiStyle=
"DEFAULT"
:labelWidth=
"130"
:isShowCaption=
"true"
:error=
"detailsModel.estimatedclosedate.error"
:isEmptyCaption=
"false"
labelPos=
"TOP"
>
<date-picker
type=
"datetime"
:transfer=
"true"
format=
"yyyy-MM-dd HH:mm:ss"
placeholder=
"请选择时间..."
:value=
"data.estimatedclosedate"
:disabled=
"detailsModel.estimatedclosedate.disabled"
style=
"min-width: 150px; width:160px;"
@
on-change=
"(val1, val2) => { this.data.estimatedclosedate = val1 }"
></date-picker>
</app-form-item>
</i-col>
<i-col
v-show=
"detailsModel.estimatedvalue.visible"
:style=
"{}"
:lg=
"{ span: 24, offset: 0 }"
>
<app-form-item
name=
'estimatedvalue'
:itemRules=
"this.rules.estimatedvalue"
class=
''
:caption=
"$t('entities.opportunity.edit_datepanel_form.details.estimatedvalue')"
uiStyle=
"DEFAULT"
:labelWidth=
"130"
:isShowCaption=
"true"
:error=
"detailsModel.estimatedvalue.error"
:isEmptyCaption=
"false"
labelPos=
"TOP"
>
<input-box
v-model=
"data.estimatedvalue"
@
enter=
"onEnter($event)"
unit=
""
:disabled=
"detailsModel.estimatedvalue.disabled"
type=
'number'
style=
""
></input-box>
</app-form-item>
</i-col>
<i-col
v-show=
"detailsModel.statecode.visible"
:style=
"{}"
:lg=
"{ span: 24, offset: 0 }"
>
<app-form-item
name=
'statecode'
:itemRules=
"this.rules.statecode"
class=
''
:caption=
"$t('entities.opportunity.edit_datepanel_form.details.statecode')"
uiStyle=
"DEFAULT"
:labelWidth=
"130"
:isShowCaption=
"true"
:error=
"detailsModel.statecode.error"
:isEmptyCaption=
"false"
labelPos=
"TOP"
>
<dropdown-list
v-model=
"data.statecode"
:data=
"data"
:context=
"context"
:viewparams=
"viewparams"
:localContext =
'{ }'
:localParam =
'{ }'
:disabled=
"detailsModel.statecode.disabled"
tag=
'Opportunity__StateCode'
codelistType=
'STATIC'
placeholder=
'请选择...'
style=
""
>
</dropdown-list>
</app-form-item>
</i-col>
<i-col
v-show=
"detailsModel.owneridyominame.visible"
:style=
"{}"
:lg=
"{ span: 24, offset: 0 }"
>
<app-form-item
name=
'owneridyominame'
:itemRules=
"this.rules.owneridyominame"
class=
''
:caption=
"$t('entities.opportunity.edit_datepanel_form.details.owneridyominame')"
uiStyle=
"DEFAULT"
:labelWidth=
"130"
:isShowCaption=
"true"
:error=
"detailsModel.owneridyominame.error"
:isEmptyCaption=
"false"
labelPos=
"TOP"
>
<input-box
v-model=
"data.owneridyominame"
@
enter=
"onEnter($event)"
unit=
""
:disabled=
"detailsModel.owneridyominame.disabled"
type=
'text'
style=
""
></input-box>
</app-form-item>
</i-col>
</row>
</app-form-group>
</i-col>
</row>
</i-form>
\ No newline at end of file
app_CRM/src/widgets/opportunity/edit-date-panel-form/edit-date-panel-form.vue
0 → 100644
浏览文件 @
1335b402
<
template
src=
"./edit-date-panel-form.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { Edit_DatePanelEditFormBase } from './edit-date-panel-form-base';
/**
* form部件
*
* @export
* @class Edit_DatePanelEditForm
* @extends {Edit_DatePanelEditFormBase}
*/
@Component({
components: {
}
})
@VueLifeCycleProcessing()
export default class Edit_DatePanelEditForm extends Edit_DatePanelEditFormBase { }
</script>
app_CRM/src/widgets/opportunity/state-tab-viewtabexppanel-tabexppanel/state-tab-viewtabexppanel-tabexppanel-base.tsx
0 → 100644
浏览文件 @
1335b402
import
{
Prop
,
Provide
,
Emit
,
Model
}
from
'vue-property-decorator'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
Watch
,
TabExpPanelControlBase
}
from
'@/studio-core'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
StateTabViewtabexppanelService
from
'./state-tab-viewtabexppanel-tabexppanel-service'
;
/**
* tabexppanel部件基类
*
* @export
* @class TabExpPanelControlBase
* @extends {StateTabViewtabexppanelTabexppanelBase}
*/
export
class
StateTabViewtabexppanelTabexppanelBase
extends
TabExpPanelControlBase
{
/**
* 获取部件类型
*
* @protected
* @type {string}
* @memberof StateTabViewtabexppanelTabexppanelBase
*/
protected
controlType
:
string
=
'TABEXPPANEL'
;
/**
* 建构部件服务对象
*
* @type {StateTabViewtabexppanelService}
* @memberof StateTabViewtabexppanelTabexppanelBase
*/
public
service
:
StateTabViewtabexppanelService
=
new
StateTabViewtabexppanelService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {OpportunityService}
* @memberof StateTabViewtabexppanelTabexppanelBase
*/
public
appEntityService
:
OpportunityService
=
new
OpportunityService
({
$store
:
this
.
$store
});
/**
* 应用实体名称
*
* @protected
* @type {string}
* @memberof StateTabViewtabexppanelTabexppanelBase
*/
protected
appDeName
:
string
=
'opportunity'
;
/**
* 是否初始化
*
* @protected
* @returns {any}
* @memberof StateTabViewtabexppanel
*/
protected
isInit
:
any
=
{
tabviewpanel
:
true
,
tabviewpanel2
:
false
,
tabviewpanel3
:
false
,
}
/**
* 被激活的分页面板
*
* @protected
* @type {string}
* @memberof StateTabViewtabexppanel
*/
protected
activatedTabViewPanel
:
string
=
'tabviewpanel'
;
/**
* 组件创建完毕
*
* @protected
* @memberof StateTabViewtabexppanel
*/
protected
ctrlCreated
():
void
{
//设置分页导航srfparentdename和srfparentkey
if
(
this
.
context
.
opportunity
)
{
Object
.
assign
(
this
.
context
,
{
srfparentdename
:
'Opportunity'
,
srfparentkey
:
this
.
context
.
opportunity
});
}
super
.
ctrlCreated
();
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabexppanel-tabexppanel/state-tab-viewtabexppanel-tabexppanel-model.ts
0 → 100644
浏览文件 @
1335b402
/**
* StateTabViewtabexppanel 部件模型
*
* @export
* @class StateTabViewtabexppanelModel
*/
export
default
class
StateTabViewtabexppanelModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof StateTabViewtabexppanelModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'decisionmaker'
,
},
{
name
:
'totallineitemamount'
,
},
{
name
:
'processid'
,
},
{
name
:
'discountpercentage'
,
},
{
name
:
'pricingerrorcode'
,
},
{
name
:
'totalamount'
,
},
{
name
:
'totaltax_base'
,
},
{
name
:
'totaltax'
,
},
{
name
:
'updateman'
,
},
{
name
:
'estimatedvalue_base'
,
},
{
name
:
'presentfinalproposal'
,
},
{
name
:
'developproposal'
,
},
{
name
:
'opportunityratingcode'
,
},
{
name
:
'totalamount_base'
,
},
{
name
:
'totalamountlessfreight'
,
},
{
name
:
'description'
,
},
{
name
:
'identifycompetitors'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'sendthankyounote'
,
},
{
name
:
'totaldiscountamount_base'
,
},
{
name
:
'totallineitemdiscountamount'
,
},
{
name
:
'purchaseprocess'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'captureproposalfeedback'
,
},
{
name
:
'finaldecisiondate'
,
},
{
name
:
'stepid'
,
},
{
name
:
'resolvefeedback'
,
},
{
name
:
'budgetamount_base'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'pursuitdecision'
,
},
{
name
:
'revenuesystemcalculated'
,
},
{
name
:
'scheduleproposalmeeting'
,
},
{
name
:
'closeprobability'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'presentproposal'
,
},
{
name
:
'schedulefollowup_prospect'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'actualclosedate'
,
},
{
name
:
'confirminterest'
,
},
{
name
:
'customerid'
,
},
{
name
:
'salesstage'
,
},
{
name
:
'opportunity'
,
prop
:
'opportunityid'
,
},
{
name
:
'onholdtime'
,
},
{
name
:
'qualificationcomments'
,
},
{
name
:
'accountidyominame'
,
},
{
name
:
'schedulefollowup_qualify'
,
},
{
name
:
'participatesinworkflow'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'stepname'
,
},
{
name
:
'customerneed'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'completeinternalreview'
,
},
{
name
:
'evaluatefit'
,
},
{
name
:
'salesstagecode'
,
},
{
name
:
'identifypursuitteam'
,
},
{
name
:
'contactidyominame'
,
},
{
name
:
'initialcommunication'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'freightamount_base'
,
},
{
name
:
'teamsfollowed'
,
},
{
name
:
'proposedsolution'
,
},
{
name
:
'filedebrief'
,
},
{
name
:
'budgetamount'
,
},
{
name
:
'budgetstatus'
,
},
{
name
:
'discountamount_base'
,
},
{
name
:
'completefinalproposal'
,
},
{
name
:
'discountamount'
,
},
{
name
:
'customeridyominame'
,
},
{
name
:
'need'
,
},
{
name
:
'stageid'
,
},
{
name
:
'freightamount'
,
},
{
name
:
'actualvalue'
,
},
{
name
:
'ibizprivate'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'createdate'
,
},
{
name
:
'prioritycode'
,
},
{
name
:
'totallineitemamount_base'
,
},
{
name
:
'estimatedclosedate'
,
},
{
name
:
'currentsituation'
,
},
{
name
:
'actualvalue_base'
,
},
{
name
:
'customerpainpoints'
,
},
{
name
:
'totaldiscountamount'
,
},
{
name
:
'opportunityname'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'identifycustomercontacts'
,
},
{
name
:
'timeline'
,
},
{
name
:
'lastonholdtime'
,
},
{
name
:
'totalamountlessfreight_base'
,
},
{
name
:
'estimatedvalue'
,
},
{
name
:
'emailaddress'
,
},
{
name
:
'statecode'
,
},
{
name
:
'purchasetimeframe'
,
},
{
name
:
'createman'
,
},
{
name
:
'quotecomments'
,
},
{
name
:
'customeridtype'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'slaname'
,
},
{
name
:
'parentcontactid'
,
},
{
name
:
'campaignid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'parentaccountid'
,
},
{
name
:
'pricelevelid'
,
},
{
name
:
'originatingleadid'
,
},
{
name
:
'slaid'
,
},
{
name
:
'originatingleadname'
,
},
{
name
:
'parentaccountname'
,
},
{
name
:
'campaignname'
,
},
{
name
:
'parentcontactname'
,
},
{
name
:
'transactioncurrencyname'
,
},
{
name
:
'pricelevelname'
,
},
]
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabexppanel-tabexppanel/state-tab-viewtabexppanel-tabexppanel-service.ts
0 → 100644
浏览文件 @
1335b402
import
{
Http
,
Util
,
Errorlog
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
StateTabViewtabexppanelModel
from
'./state-tab-viewtabexppanel-tabexppanel-model'
;
/**
* StateTabViewtabexppanel 部件服务对象
*
* @export
* @class StateTabViewtabexppanelService
*/
export
default
class
StateTabViewtabexppanelService
extends
ControlService
{
/**
* 商机服务对象
*
* @type {OpportunityService}
* @memberof StateTabViewtabexppanelService
*/
public
appEntityService
:
OpportunityService
=
new
OpportunityService
({
$store
:
this
.
getStore
()
});
/**
* 设置从数据模式
*
* @type {boolean}
* @memberof StateTabViewtabexppanelService
*/
public
setTempMode
(){
this
.
isTempMode
=
false
;
}
/**
* Creates an instance of StateTabViewtabexppanelService.
*
* @param {*} [opts={}]
* @memberof StateTabViewtabexppanelService
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
this
.
model
=
new
StateTabViewtabexppanelModel
();
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabexppanel-tabexppanel/state-tab-viewtabexppanel-tabexppanel.html
0 → 100644
浏览文件 @
1335b402
<div
class=
'tabviewpanel'
>
<tabs
:value=
"activatedTabViewPanel"
:animated=
"false"
class=
'tabexppanel'
name=
'statetabviewtabexppanel'
@
on-click=
"tabPanelClick($event)"
>
<tab-pane
:index=
"0"
name=
'tabviewpanel'
tab=
'statetabviewtabexppanel'
class=
''
:label=
"(h) =>{
return h('div', [
h('span', '全部商机'),
h('Badge', {
props: {
count: undefined,
type: 'primary'
}
})
])
}"
>
<view
_tabviewpanel
:viewState=
"viewState"
:viewparams=
"JSON.parse(JSON.stringify(viewparams))"
:context=
"JSON.parse(JSON.stringify(context))"
v-if=
"isInit.tabviewpanel"
name=
"tabviewpanel"
ref=
'tabviewpanel'
:expActive=
"activatedTabViewPanel === 'tabviewpanel'"
@
viewpanelDatasChange =
"tabViewPanelDatasChange"
@
closeview=
"closeView($event)"
>
</view
_tabviewpanel
>
</tab-pane>
<tab-pane
:index=
"1"
name=
'tabviewpanel2'
tab=
'statetabviewtabexppanel'
class=
''
:label=
"(h) =>{
return h('div', [
h('span', '赢单商机'),
h('Badge', {
props: {
count: undefined,
type: 'primary'
}
})
])
}"
>
<view
_tabviewpanel2
:viewState=
"viewState"
:viewparams=
"JSON.parse(JSON.stringify(viewparams))"
:context=
"JSON.parse(JSON.stringify(context))"
v-if=
"isInit.tabviewpanel2"
name=
"tabviewpanel2"
ref=
'tabviewpanel2'
:expActive=
"activatedTabViewPanel === 'tabviewpanel2'"
@
viewpanelDatasChange =
"tabViewPanelDatasChange"
@
closeview=
"closeView($event)"
>
</view
_tabviewpanel2
>
</tab-pane>
<tab-pane
:index=
"2"
name=
'tabviewpanel3'
tab=
'statetabviewtabexppanel'
class=
''
:label=
"(h) =>{
return h('div', [
h('span', '丢单商机'),
h('Badge', {
props: {
count: undefined,
type: 'primary'
}
})
])
}"
>
<view
_tabviewpanel3
:viewState=
"viewState"
:viewparams=
"JSON.parse(JSON.stringify(viewparams))"
:context=
"JSON.parse(JSON.stringify(context))"
v-if=
"isInit.tabviewpanel3"
name=
"tabviewpanel3"
ref=
'tabviewpanel3'
:expActive=
"activatedTabViewPanel === 'tabviewpanel3'"
@
viewpanelDatasChange =
"tabViewPanelDatasChange"
@
closeview=
"closeView($event)"
>
</view
_tabviewpanel3
>
</tab-pane>
</tabs>
</div>
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabexppanel-tabexppanel/state-tab-viewtabexppanel-tabexppanel.vue
0 → 100644
浏览文件 @
1335b402
<
template
src=
"./state-tab-viewtabexppanel-tabexppanel.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { StateTabViewtabexppanelTabexppanelBase } from './state-tab-viewtabexppanel-tabexppanel-base';
import view_tabviewpanel from '@widgets/opportunity/state-tab-viewtabviewpanel-tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel.vue';
import view_tabviewpanel2 from '@widgets/opportunity/state-tab-viewtabviewpanel2-tabviewpanel/state-tab-viewtabviewpanel2-tabviewpanel.vue';
import view_tabviewpanel3 from '@widgets/opportunity/state-tab-viewtabviewpanel3-tabviewpanel/state-tab-viewtabviewpanel3-tabviewpanel.vue';
/**
* tabexppanel部件
*
* @export
* @class StateTabViewtabexppanelTabexppanel
* @extends {StateTabViewtabexppanelTabexppanelBase}
*/
@Component({
components: {
view_tabviewpanel,
view_tabviewpanel2,
view_tabviewpanel3,
}
})
@VueLifeCycleProcessing()
export default class StateTabViewtabexppanelTabexppanel extends StateTabViewtabexppanelTabexppanelBase { }
</script>
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel-tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel-base.tsx
0 → 100644
浏览文件 @
1335b402
import
{
Prop
,
Provide
,
Emit
,
Model
}
from
'vue-property-decorator'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
Watch
,
MainControlBase
}
from
'@/studio-core'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
StateTabViewtabviewpanelService
from
'./state-tab-viewtabviewpanel-tabviewpanel-service'
;
/**
* tabviewpanel部件基类
*
* @export
* @class MainControlBase
* @extends {StateTabViewtabviewpanelTabviewpanelBase}
*/
export
class
StateTabViewtabviewpanelTabviewpanelBase
extends
MainControlBase
{
/**
* 获取部件类型
*
* @protected
* @type {string}
* @memberof StateTabViewtabviewpanelTabviewpanelBase
*/
protected
controlType
:
string
=
'TABVIEWPANEL'
;
/**
* 建构部件服务对象
*
* @type {StateTabViewtabviewpanelService}
* @memberof StateTabViewtabviewpanelTabviewpanelBase
*/
public
service
:
StateTabViewtabviewpanelService
=
new
StateTabViewtabviewpanelService
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {OpportunityService}
* @memberof StateTabViewtabviewpanelTabviewpanelBase
*/
public
appEntityService
:
OpportunityService
=
new
OpportunityService
({
$store
:
this
.
$store
});
/**
* 应用实体名称
*
* @protected
* @type {string}
* @memberof StateTabViewtabviewpanelTabviewpanelBase
*/
protected
appDeName
:
string
=
'opportunity'
;
/**
* 导航模式下项是否激活
*
* @type {*}
* @memberof StateTabViewtabviewpanel
*/
@
Prop
()
public
expActive
!
:
any
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof StateTabViewtabviewpanel
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof StateTabViewtabviewpanel
*/
public
getData
():
any
{
return
null
;
}
/**
* 是否被激活
*
* @type {boolean}
* @memberof StateTabViewtabviewpanel
*/
public
isActivied
:
boolean
=
true
;
/**
* 局部上下文
*
* @type {*}
* @memberof StateTabViewtabviewpanel
*/
public
localContext
:
any
=
null
;
/**
* 局部视图参数
*
* @type {*}
* @memberof StateTabViewtabviewpanel
*/
public
localViewParam
:
any
=
null
;
/**
* 传入上下文
*
* @type {string}
* @memberof TabExpViewtabviewpanel
*/
public
viewdata
:
string
=
JSON
.
stringify
(
this
.
context
);
/**
* 传入视图参数
*
* @type {string}
* @memberof PickupViewpickupviewpanel
*/
public
viewparam
:
string
=
JSON
.
stringify
(
this
.
viewparams
);
/**
* 视图面板过滤项
*
* @type {string}
* @memberof StateTabViewtabviewpanel
*/
public
navfilter
:
string
=
""
;
/**
* vue 生命周期
*
* @returns
* @memberof StateTabViewtabviewpanel
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof StateTabViewtabviewpanel
*/
public
afterCreated
(){
this
.
initNavParam
();
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
this
.
$forceUpdate
();
this
.
initNavParam
();
});
}
}
/**
* 初始化导航参数
*
* @memberof StateTabViewtabviewpanel
*/
public
initNavParam
(){
if
(
!
Object
.
is
(
this
.
navfilter
,
""
)){
Object
.
assign
(
this
.
viewparams
,{[
this
.
navfilter
]:
this
.
context
[
'majorentity'
]})
}
if
(
this
.
localContext
&&
Object
.
keys
(
this
.
localContext
).
length
>
0
){
let
_context
:
any
=
this
.
$util
.
computedNavData
({},
this
.
context
,
this
.
viewparams
,
this
.
localContext
);
Object
.
assign
(
this
.
context
,
_context
);
}
if
(
this
.
localViewParam
&&
Object
.
keys
(
this
.
localViewParam
).
length
>
0
){
let
_param
:
any
=
this
.
$util
.
computedNavData
({},
this
.
context
,
this
.
viewparams
,
this
.
localViewParam
);
Object
.
assign
(
this
.
viewparams
,
_param
);
}
this
.
viewdata
=
JSON
.
stringify
(
this
.
context
);
this
.
viewparam
=
JSON
.
stringify
(
this
.
viewparams
);
}
/**
* 视图数据变化
*
* @memberof StateTabViewtabviewpanel
*/
public
viewDatasChange
(
$event
:
any
){
this
.
$emit
(
'viewpanelDatasChange'
,
$event
);
}
/**
* vue 生命周期
*
* @memberof StateTabViewtabviewpanel
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof StateTabViewtabviewpanel
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel-tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel-model.ts
0 → 100644
浏览文件 @
1335b402
/**
* StateTabViewtabviewpanel 部件模型
*
* @export
* @class StateTabViewtabviewpanelModel
*/
export
default
class
StateTabViewtabviewpanelModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof StateTabViewtabviewpanelModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'decisionmaker'
,
},
{
name
:
'totallineitemamount'
,
},
{
name
:
'processid'
,
},
{
name
:
'discountpercentage'
,
},
{
name
:
'pricingerrorcode'
,
},
{
name
:
'totalamount'
,
},
{
name
:
'totaltax_base'
,
},
{
name
:
'totaltax'
,
},
{
name
:
'updateman'
,
},
{
name
:
'estimatedvalue_base'
,
},
{
name
:
'presentfinalproposal'
,
},
{
name
:
'developproposal'
,
},
{
name
:
'opportunityratingcode'
,
},
{
name
:
'totalamount_base'
,
},
{
name
:
'totalamountlessfreight'
,
},
{
name
:
'description'
,
},
{
name
:
'identifycompetitors'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'sendthankyounote'
,
},
{
name
:
'totaldiscountamount_base'
,
},
{
name
:
'totallineitemdiscountamount'
,
},
{
name
:
'purchaseprocess'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'captureproposalfeedback'
,
},
{
name
:
'finaldecisiondate'
,
},
{
name
:
'stepid'
,
},
{
name
:
'resolvefeedback'
,
},
{
name
:
'budgetamount_base'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'pursuitdecision'
,
},
{
name
:
'revenuesystemcalculated'
,
},
{
name
:
'scheduleproposalmeeting'
,
},
{
name
:
'closeprobability'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'presentproposal'
,
},
{
name
:
'schedulefollowup_prospect'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'actualclosedate'
,
},
{
name
:
'confirminterest'
,
},
{
name
:
'customerid'
,
},
{
name
:
'salesstage'
,
},
{
name
:
'opportunity'
,
prop
:
'opportunityid'
,
},
{
name
:
'onholdtime'
,
},
{
name
:
'qualificationcomments'
,
},
{
name
:
'accountidyominame'
,
},
{
name
:
'schedulefollowup_qualify'
,
},
{
name
:
'participatesinworkflow'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'stepname'
,
},
{
name
:
'customerneed'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'completeinternalreview'
,
},
{
name
:
'evaluatefit'
,
},
{
name
:
'salesstagecode'
,
},
{
name
:
'identifypursuitteam'
,
},
{
name
:
'contactidyominame'
,
},
{
name
:
'initialcommunication'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'freightamount_base'
,
},
{
name
:
'teamsfollowed'
,
},
{
name
:
'proposedsolution'
,
},
{
name
:
'filedebrief'
,
},
{
name
:
'budgetamount'
,
},
{
name
:
'budgetstatus'
,
},
{
name
:
'discountamount_base'
,
},
{
name
:
'completefinalproposal'
,
},
{
name
:
'discountamount'
,
},
{
name
:
'customeridyominame'
,
},
{
name
:
'need'
,
},
{
name
:
'stageid'
,
},
{
name
:
'freightamount'
,
},
{
name
:
'actualvalue'
,
},
{
name
:
'ibizprivate'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'createdate'
,
},
{
name
:
'prioritycode'
,
},
{
name
:
'totallineitemamount_base'
,
},
{
name
:
'estimatedclosedate'
,
},
{
name
:
'currentsituation'
,
},
{
name
:
'actualvalue_base'
,
},
{
name
:
'customerpainpoints'
,
},
{
name
:
'totaldiscountamount'
,
},
{
name
:
'opportunityname'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'identifycustomercontacts'
,
},
{
name
:
'timeline'
,
},
{
name
:
'lastonholdtime'
,
},
{
name
:
'totalamountlessfreight_base'
,
},
{
name
:
'estimatedvalue'
,
},
{
name
:
'emailaddress'
,
},
{
name
:
'statecode'
,
},
{
name
:
'purchasetimeframe'
,
},
{
name
:
'createman'
,
},
{
name
:
'quotecomments'
,
},
{
name
:
'customeridtype'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'slaname'
,
},
{
name
:
'parentcontactid'
,
},
{
name
:
'campaignid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'parentaccountid'
,
},
{
name
:
'pricelevelid'
,
},
{
name
:
'originatingleadid'
,
},
{
name
:
'slaid'
,
},
{
name
:
'originatingleadname'
,
},
{
name
:
'parentaccountname'
,
},
{
name
:
'campaignname'
,
},
{
name
:
'parentcontactname'
,
},
{
name
:
'transactioncurrencyname'
,
},
{
name
:
'pricelevelname'
,
},
]
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel-tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel-service.ts
0 → 100644
浏览文件 @
1335b402
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* StateTabViewtabviewpanel 部件服务对象
*
* @export
* @class StateTabViewtabviewpanelService
*/
export
default
class
StateTabViewtabviewpanelService
extends
ControlService
{
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel-tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel.html
0 → 100644
浏览文件 @
1335b402
<div
class=
'tabviewpanel'
v-if=
'isActivied'
>
<opportunity-grid-view
class=
'viewcontainer2'
:viewdata=
"viewdata"
:viewparam=
"viewparam"
@
viewload=
"viewDatasChange($event)"
:viewDefaultUsage=
"false"
:viewUsage=
"7"
:expActive=
"expActive"
/>
</div>
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel-tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel.vue
0 → 100644
浏览文件 @
1335b402
<
template
src=
"./state-tab-viewtabviewpanel-tabviewpanel.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { StateTabViewtabviewpanelTabviewpanelBase } from './state-tab-viewtabviewpanel-tabviewpanel-base';
/**
* tabviewpanel部件
*
* @export
* @class StateTabViewtabviewpanelTabviewpanel
* @extends {StateTabViewtabviewpanelTabviewpanelBase}
*/
@Component({
components: {
}
})
@VueLifeCycleProcessing()
export default class StateTabViewtabviewpanelTabviewpanel extends StateTabViewtabviewpanelTabviewpanelBase { }
</script>
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel2-tabviewpanel/state-tab-viewtabviewpanel2-tabviewpanel-base.tsx
0 → 100644
浏览文件 @
1335b402
import
{
Prop
,
Provide
,
Emit
,
Model
}
from
'vue-property-decorator'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
Watch
,
MainControlBase
}
from
'@/studio-core'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
StateTabViewtabviewpanel2Service
from
'./state-tab-viewtabviewpanel2-tabviewpanel-service'
;
/**
* tabviewpanel2部件基类
*
* @export
* @class MainControlBase
* @extends {StateTabViewtabviewpanel2TabviewpanelBase}
*/
export
class
StateTabViewtabviewpanel2TabviewpanelBase
extends
MainControlBase
{
/**
* 获取部件类型
*
* @protected
* @type {string}
* @memberof StateTabViewtabviewpanel2TabviewpanelBase
*/
protected
controlType
:
string
=
'TABVIEWPANEL'
;
/**
* 建构部件服务对象
*
* @type {StateTabViewtabviewpanel2Service}
* @memberof StateTabViewtabviewpanel2TabviewpanelBase
*/
public
service
:
StateTabViewtabviewpanel2Service
=
new
StateTabViewtabviewpanel2Service
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {OpportunityService}
* @memberof StateTabViewtabviewpanel2TabviewpanelBase
*/
public
appEntityService
:
OpportunityService
=
new
OpportunityService
({
$store
:
this
.
$store
});
/**
* 应用实体名称
*
* @protected
* @type {string}
* @memberof StateTabViewtabviewpanel2TabviewpanelBase
*/
protected
appDeName
:
string
=
'opportunity'
;
/**
* 导航模式下项是否激活
*
* @type {*}
* @memberof StateTabViewtabviewpanel2
*/
@
Prop
()
public
expActive
!
:
any
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof StateTabViewtabviewpanel2
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof StateTabViewtabviewpanel2
*/
public
getData
():
any
{
return
null
;
}
/**
* 是否被激活
*
* @type {boolean}
* @memberof StateTabViewtabviewpanel2
*/
public
isActivied
:
boolean
=
true
;
/**
* 局部上下文
*
* @type {*}
* @memberof StateTabViewtabviewpanel2
*/
public
localContext
:
any
=
null
;
/**
* 局部视图参数
*
* @type {*}
* @memberof StateTabViewtabviewpanel2
*/
public
localViewParam
:
any
=
null
;
/**
* 传入上下文
*
* @type {string}
* @memberof TabExpViewtabviewpanel
*/
public
viewdata
:
string
=
JSON
.
stringify
(
this
.
context
);
/**
* 传入视图参数
*
* @type {string}
* @memberof PickupViewpickupviewpanel
*/
public
viewparam
:
string
=
JSON
.
stringify
(
this
.
viewparams
);
/**
* 视图面板过滤项
*
* @type {string}
* @memberof StateTabViewtabviewpanel2
*/
public
navfilter
:
string
=
""
;
/**
* vue 生命周期
*
* @returns
* @memberof StateTabViewtabviewpanel2
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof StateTabViewtabviewpanel2
*/
public
afterCreated
(){
this
.
initNavParam
();
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
this
.
$forceUpdate
();
this
.
initNavParam
();
});
}
}
/**
* 初始化导航参数
*
* @memberof StateTabViewtabviewpanel2
*/
public
initNavParam
(){
if
(
!
Object
.
is
(
this
.
navfilter
,
""
)){
Object
.
assign
(
this
.
viewparams
,{[
this
.
navfilter
]:
this
.
context
[
'majorentity'
]})
}
if
(
this
.
localContext
&&
Object
.
keys
(
this
.
localContext
).
length
>
0
){
let
_context
:
any
=
this
.
$util
.
computedNavData
({},
this
.
context
,
this
.
viewparams
,
this
.
localContext
);
Object
.
assign
(
this
.
context
,
_context
);
}
if
(
this
.
localViewParam
&&
Object
.
keys
(
this
.
localViewParam
).
length
>
0
){
let
_param
:
any
=
this
.
$util
.
computedNavData
({},
this
.
context
,
this
.
viewparams
,
this
.
localViewParam
);
Object
.
assign
(
this
.
viewparams
,
_param
);
}
this
.
viewdata
=
JSON
.
stringify
(
this
.
context
);
this
.
viewparam
=
JSON
.
stringify
(
this
.
viewparams
);
}
/**
* 视图数据变化
*
* @memberof StateTabViewtabviewpanel2
*/
public
viewDatasChange
(
$event
:
any
){
this
.
$emit
(
'viewpanelDatasChange'
,
$event
);
}
/**
* vue 生命周期
*
* @memberof StateTabViewtabviewpanel2
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof StateTabViewtabviewpanel2
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel2-tabviewpanel/state-tab-viewtabviewpanel2-tabviewpanel-model.ts
0 → 100644
浏览文件 @
1335b402
此差异已折叠。
点击以展开。
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel2-tabviewpanel/state-tab-viewtabviewpanel2-tabviewpanel-service.ts
0 → 100644
浏览文件 @
1335b402
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* StateTabViewtabviewpanel2 部件服务对象
*
* @export
* @class StateTabViewtabviewpanel2Service
*/
export
default
class
StateTabViewtabviewpanel2Service
extends
ControlService
{
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel2-tabviewpanel/state-tab-viewtabviewpanel2-tabviewpanel.html
0 → 100644
浏览文件 @
1335b402
<div
class=
'tabviewpanel'
v-if=
'isActivied'
>
<opportunity-win-grid-view
class=
'viewcontainer2'
:viewdata=
"viewdata"
:viewparam=
"viewparam"
@
viewload=
"viewDatasChange($event)"
:viewDefaultUsage=
"false"
:viewUsage=
"7"
:expActive=
"expActive"
/>
</div>
\ No newline at end of file
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel2-tabviewpanel/state-tab-viewtabviewpanel2-tabviewpanel.vue
0 → 100644
浏览文件 @
1335b402
<
template
src=
"./state-tab-viewtabviewpanel2-tabviewpanel.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { StateTabViewtabviewpanel2TabviewpanelBase } from './state-tab-viewtabviewpanel2-tabviewpanel-base';
/**
* tabviewpanel2部件
*
* @export
* @class StateTabViewtabviewpanel2Tabviewpanel
* @extends {StateTabViewtabviewpanel2TabviewpanelBase}
*/
@Component({
components: {
}
})
@VueLifeCycleProcessing()
export default class StateTabViewtabviewpanel2Tabviewpanel extends StateTabViewtabviewpanel2TabviewpanelBase { }
</script>
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel3-tabviewpanel/state-tab-viewtabviewpanel3-tabviewpanel-base.tsx
0 → 100644
浏览文件 @
1335b402
此差异已折叠。
点击以展开。
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel3-tabviewpanel/state-tab-viewtabviewpanel3-tabviewpanel-model.ts
0 → 100644
浏览文件 @
1335b402
此差异已折叠。
点击以展开。
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel3-tabviewpanel/state-tab-viewtabviewpanel3-tabviewpanel-service.ts
0 → 100644
浏览文件 @
1335b402
此差异已折叠。
点击以展开。
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel3-tabviewpanel/state-tab-viewtabviewpanel3-tabviewpanel.html
0 → 100644
浏览文件 @
1335b402
此差异已折叠。
点击以展开。
app_CRM/src/widgets/opportunity/state-tab-viewtabviewpanel3-tabviewpanel/state-tab-viewtabviewpanel3-tabviewpanel.vue
0 → 100644
浏览文件 @
1335b402
此差异已折叠。
点击以展开。
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录