Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
iBiz企业中心
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz企业套件
iBiz企业中心
提交
1264699d
提交
1264699d
编写于
7月 09, 2020
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
lab_gzf 发布系统代码
上级
4bb63aab
变更
48
显示空白字符变更
内嵌
并排
正在显示
48 个修改的文件
包含
6001 行增加
和
42 行删除
+6001
-42
view-config.json
app_CRM/public/assets/json/view-config.json
+20
-0
quote_en_US.ts
app_CRM/src/locale/lanres/entities/quote/quote_en_US.ts
+100
-0
quote_zh_CN.ts
app_CRM/src/locale/lanres/entities/quote/quote_zh_CN.ts
+100
-0
viewconfig.ts
app_CRM/src/mock/viewconfig/viewconfig.ts
+16
-0
quote-closed-grid-view-base.tsx
...es/quote-closed-grid-view/quote-closed-grid-view-base.tsx
+697
-0
quote-closed-grid-view.html
.../sales/quote-closed-grid-view/quote-closed-grid-view.html
+49
-0
quote-closed-grid-view.vue
...s/sales/quote-closed-grid-view/quote-closed-grid-view.vue
+24
-0
quote-effective-grid-view-base.tsx
...te-effective-grid-view/quote-effective-grid-view-base.tsx
+767
-0
quote-effective-grid-view.html
.../quote-effective-grid-view/quote-effective-grid-view.html
+49
-0
quote-effective-grid-view.vue
...s/quote-effective-grid-view/quote-effective-grid-view.vue
+24
-0
quote-state-tab-view-base.tsx
.../sales/quote-state-tab-view/quote-state-tab-view-base.tsx
+120
-0
quote-state-tab-view.html
...ages/sales/quote-state-tab-view/quote-state-tab-view.html
+10
-0
quote-state-tab-view.vue
...pages/sales/quote-state-tab-view/quote-state-tab-view.vue
+22
-0
quote-win-grid-view-base.tsx
...es/sales/quote-win-grid-view/quote-win-grid-view-base.tsx
+732
-0
quote-win-grid-view.html
.../pages/sales/quote-win-grid-view/quote-win-grid-view.html
+49
-0
quote-win-grid-view.vue
...c/pages/sales/quote-win-grid-view/quote-win-grid-view.vue
+24
-0
page-register.ts
app_CRM/src/pages/ungroup/central/page-register.ts
+6
-2
router.ts
app_CRM/src/pages/ungroup/central/router.ts
+340
-28
state.ts
app_CRM/src/store/modules/view-action/state.ts
+47
-1
quote-ui-service-base.ts
app_CRM/src/uiservice/quote/quote-ui-service-base.ts
+2
-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
state-tab-viewtabexppanel-tabexppanel-base.tsx
...abexppanel/state-tab-viewtabexppanel-tabexppanel-base.tsx
+86
-0
state-tab-viewtabexppanel-tabexppanel-model.ts
...abexppanel/state-tab-viewtabexppanel-tabexppanel-model.ts
+307
-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
+100
-0
state-tab-viewtabexppanel-tabexppanel.vue
...nel-tabexppanel/state-tab-viewtabexppanel-tabexppanel.vue
+30
-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
+307
-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
+307
-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
+307
-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
state-tab-viewtabviewpanel4-tabviewpanel-base.tsx
...ewpanel/state-tab-viewtabviewpanel4-tabviewpanel-base.tsx
+205
-0
state-tab-viewtabviewpanel4-tabviewpanel-model.ts
...ewpanel/state-tab-viewtabviewpanel4-tabviewpanel-model.ts
+307
-0
state-tab-viewtabviewpanel4-tabviewpanel-service.ts
...panel/state-tab-viewtabviewpanel4-tabviewpanel-service.ts
+11
-0
state-tab-viewtabviewpanel4-tabviewpanel.html
...abviewpanel/state-tab-viewtabviewpanel4-tabviewpanel.html
+11
-0
state-tab-viewtabviewpanel4-tabviewpanel.vue
...tabviewpanel/state-tab-viewtabviewpanel4-tabviewpanel.vue
+22
-0
h2_table.xml
...esscentral-core/src/main/resources/liquibase/h2_table.xml
+6
-6
未找到文件。
app_CRM/public/assets/json/view-config.json
浏览文件 @
1264699d
...
...
@@ -959,6 +959,16 @@
"viewtag"
:
"51785f69973d8e6b0b1e002a03626fc7"
,
"memo"
:
"系统自动添加"
},
"quotewingridview"
:
{
"title"
:
"报价单信息"
,
"caption"
:
"报价单"
,
"viewtype"
:
"DEGRIDVIEW"
,
"viewmodule"
:
"Sales"
,
"viewname"
:
"QuoteWinGridView"
,
"viewfilename"
:
"quote-win-grid-view"
,
"viewtag"
:
"518ac41fb3973a5f49f73e4a2c3f6681"
,
"memo"
:
"系统自动添加"
},
"goalinfoview"
:
{
"title"
:
"目标信息"
,
"caption"
:
"目标"
,
...
...
@@ -2319,6 +2329,16 @@
"viewtag"
:
"d138851bb39f6334938bb634467dc3cc"
,
"memo"
:
""
},
"quoteclosedgridview"
:
{
"title"
:
"报价单信息"
,
"caption"
:
"报价单"
,
"viewtype"
:
"DEGRIDVIEW"
,
"viewmodule"
:
"Sales"
,
"viewname"
:
"QuoteClosedGridView"
,
"viewfilename"
:
"quote-closed-grid-view"
,
"viewtag"
:
"d163d3257bed7fbd8e2fa99bcc2abf32"
,
"memo"
:
"系统自动添加"
},
"competitorgridview"
:
{
"title"
:
"竞争对手信息"
,
"caption"
:
"竞争对手"
,
...
...
app_CRM/src/locale/lanres/entities/quote/quote_en_US.ts
浏览文件 @
1264699d
...
...
@@ -114,6 +114,10 @@ export default {
caption
:
"报价单"
,
title
:
"报价单编辑视图"
,
},
wingridview
:
{
caption
:
"报价单"
,
title
:
"报价单信息"
,
},
oppquagridview
:
{
caption
:
"报价单"
,
title
:
"报价单表格视图"
,
...
...
@@ -134,6 +138,10 @@ export default {
caption
:
"报价单信息"
,
title
:
"报价单信息"
,
},
closedgridview
:
{
caption
:
"报价单"
,
title
:
"报价单信息"
,
},
statetabview
:
{
caption
:
"报价单"
,
title
:
"报价单状态分页视图"
,
...
...
@@ -495,4 +503,96 @@ export default {
tip
:
"Filter"
,
},
},
wingridviewtoolbar_toolbar
:
{
tbitem1_openquickcreateview
:
{
caption
:
"新建"
,
tip
:
"新建"
,
},
tbitem2
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem4
:
{
caption
:
"Edit"
,
tip
:
"Edit {0}"
,
},
tbitem6
:
{
caption
:
"Copy"
,
tip
:
"Copy {0}"
,
},
tbitem7
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem8
:
{
caption
:
"Remove"
,
tip
:
"Remove {0}"
,
},
tbitem9
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem13
:
{
caption
:
"Export"
,
tip
:
"Export {0} Data To Excel"
,
},
tbitem10
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem14_close
:
{
caption
:
"结束报价单"
,
tip
:
"结束报价单"
,
},
tbitem15
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem19
:
{
caption
:
"Filter"
,
tip
:
"Filter"
,
},
},
closedgridviewtoolbar_toolbar
:
{
tbitem1_openquickcreateview
:
{
caption
:
"新建"
,
tip
:
"新建"
,
},
tbitem2
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem4
:
{
caption
:
"Edit"
,
tip
:
"Edit {0}"
,
},
tbitem6
:
{
caption
:
"Copy"
,
tip
:
"Copy {0}"
,
},
tbitem7
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem8
:
{
caption
:
"Remove"
,
tip
:
"Remove {0}"
,
},
tbitem9
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem13
:
{
caption
:
"Export"
,
tip
:
"Export {0} Data To Excel"
,
},
tbitem10
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem19
:
{
caption
:
"Filter"
,
tip
:
"Filter"
,
},
},
};
\ No newline at end of file
app_CRM/src/locale/lanres/entities/quote/quote_zh_CN.ts
浏览文件 @
1264699d
...
...
@@ -113,6 +113,10 @@ export default {
caption
:
"报价单"
,
title
:
"报价单编辑视图"
,
},
wingridview
:
{
caption
:
"报价单"
,
title
:
"报价单信息"
,
},
oppquagridview
:
{
caption
:
"报价单"
,
title
:
"报价单表格视图"
,
...
...
@@ -133,6 +137,10 @@ export default {
caption
:
"报价单信息"
,
title
:
"报价单信息"
,
},
closedgridview
:
{
caption
:
"报价单"
,
title
:
"报价单信息"
,
},
statetabview
:
{
caption
:
"报价单"
,
title
:
"报价单状态分页视图"
,
...
...
@@ -494,4 +502,96 @@ export default {
tip
:
"过滤"
,
},
},
wingridviewtoolbar_toolbar
:
{
tbitem1_openquickcreateview
:
{
caption
:
"新建"
,
tip
:
"新建"
,
},
tbitem2
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem4
:
{
caption
:
"编辑"
,
tip
:
"编辑"
,
},
tbitem6
:
{
caption
:
"拷贝"
,
tip
:
"拷贝"
,
},
tbitem7
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem8
:
{
caption
:
"删除"
,
tip
:
"删除"
,
},
tbitem9
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem13
:
{
caption
:
"导出"
,
tip
:
"导出"
,
},
tbitem10
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem14_close
:
{
caption
:
"结束报价单"
,
tip
:
"结束报价单"
,
},
tbitem15
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem19
:
{
caption
:
"过滤"
,
tip
:
"过滤"
,
},
},
closedgridviewtoolbar_toolbar
:
{
tbitem1_openquickcreateview
:
{
caption
:
"新建"
,
tip
:
"新建"
,
},
tbitem2
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem4
:
{
caption
:
"编辑"
,
tip
:
"编辑"
,
},
tbitem6
:
{
caption
:
"拷贝"
,
tip
:
"拷贝"
,
},
tbitem7
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem8
:
{
caption
:
"删除"
,
tip
:
"删除"
,
},
tbitem9
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem13
:
{
caption
:
"导出"
,
tip
:
"导出"
,
},
tbitem10
:
{
caption
:
"-"
,
tip
:
""
,
},
tbitem19
:
{
caption
:
"过滤"
,
tip
:
"过滤"
,
},
},
};
\ No newline at end of file
app_CRM/src/mock/viewconfig/viewconfig.ts
浏览文件 @
1264699d
...
...
@@ -775,6 +775,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname"
:
"CampaignSummary_Head"
,
"viewtag"
:
"51785f69973d8e6b0b1e002a03626fc7"
},
"quotewingridview"
:
{
"title"
:
"报价单信息"
,
"caption"
:
"报价单"
,
"viewtype"
:
"DEGRIDVIEW"
,
"viewmodule"
:
"Sales"
,
"viewname"
:
"QuoteWinGridView"
,
"viewtag"
:
"518ac41fb3973a5f49f73e4a2c3f6681"
},
"goalinfoview"
:
{
"title"
:
"目标信息"
,
"caption"
:
"目标"
,
...
...
@@ -1863,6 +1871,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname"
:
"IncidentInfo_IncidentView"
,
"viewtag"
:
"d138851bb39f6334938bb634467dc3cc"
},
"quoteclosedgridview"
:
{
"title"
:
"报价单信息"
,
"caption"
:
"报价单"
,
"viewtype"
:
"DEGRIDVIEW"
,
"viewmodule"
:
"Sales"
,
"viewname"
:
"QuoteClosedGridView"
,
"viewtag"
:
"d163d3257bed7fbd8e2fa99bcc2abf32"
},
"competitorgridview"
:
{
"title"
:
"竞争对手信息"
,
"caption"
:
"竞争对手"
,
...
...
app_CRM/src/pages/sales/quote-closed-grid-view/quote-closed-grid-view-base.tsx
0 → 100644
浏览文件 @
1264699d
import
{
Subject
}
from
'rxjs'
;
import
{
GridViewBase
}
from
'@/studio-core'
;
import
QuoteService
from
'@/service/quote/quote-service'
;
import
GridViewEngine
from
'@engine/view/grid-view-engine'
;
import
QuoteUIService
from
'@/uiservice/quote/quote-ui-service'
;
import
CodeListService
from
"@service/app/codelist-service"
;
/**
* 报价单信息视图基类
*
* @export
* @class QuoteClosedGridViewBase
* @extends {GridViewBase}
*/
export
class
QuoteClosedGridViewBase
extends
GridViewBase
{
/**
* 视图对应应用实体名称
*
* @protected
* @type {string}
* @memberof QuoteClosedGridViewBase
*/
protected
appDeName
:
string
=
'quote'
;
/**
* 应用实体主键
*
* @protected
* @type {string}
* @memberof QuoteClosedGridViewBase
*/
protected
appDeKey
:
string
=
'quoteid'
;
/**
* 应用实体主信息
*
* @protected
* @type {string}
* @memberof QuoteClosedGridViewBase
*/
protected
appDeMajor
:
string
=
'quotename'
;
/**
* 实体服务对象
*
* @type {QuoteService}
* @memberof QuoteClosedGridViewBase
*/
protected
appEntityService
:
QuoteService
=
new
QuoteService
;
/**
* 计数器服务对象集合
*
* @protected
* @type {Array<*>}
* @memberof QuoteClosedGridViewBase
*/
protected
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 视图模型数据
*
* @protected
* @type {*}
* @memberof QuoteClosedGridViewBase
*/
protected
model
:
any
=
{
srfCaption
:
'entities.quote.views.closedgridview.caption'
,
srfTitle
:
'entities.quote.views.closedgridview.title'
,
srfSubTitle
:
'entities.quote.views.closedgridview.subtitle'
,
dataInfo
:
''
}
/**
* 容器模型
*
* @protected
* @type {*}
* @memberof QuoteClosedGridViewBase
*/
protected
containerModel
:
any
=
{
view_toolbar
:
{
name
:
'toolbar'
,
type
:
'TOOLBAR'
},
view_grid
:
{
name
:
'grid'
,
type
:
'GRID'
},
view_searchform
:
{
name
:
'searchform'
,
type
:
'SEARCHFORM'
},
};
/**
* 工具栏模型
*
* @type {*}
* @memberof QuoteClosedGridView
*/
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
=
'd163d3257bed7fbd8e2fa99bcc2abf32'
;
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof QuoteClosedGridViewBase
*/
public
engine
:
GridViewEngine
=
new
GridViewEngine
();
/**
* 引擎初始化
*
* @public
* @memberof QuoteClosedGridViewBase
*/
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
:
'quote'
,
majorPSDEField
:
'quotename'
,
isLoadDefault
:
true
,
});
}
/**
* toolbar 部件 click 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteClosedGridViewBase
*/
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 QuoteClosedGridViewBase
*/
public
grid_selectionchange
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'selectionchange'
,
$event
);
}
/**
* grid 部件 beforeload 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteClosedGridViewBase
*/
public
grid_beforeload
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'beforeload'
,
$event
);
}
/**
* grid 部件 rowdblclick 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteClosedGridViewBase
*/
public
grid_rowdblclick
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'rowdblclick'
,
$event
);
}
/**
* grid 部件 remove 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteClosedGridViewBase
*/
public
grid_remove
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'remove'
,
$event
);
}
/**
* grid 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteClosedGridViewBase
*/
public
grid_load
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'load'
,
$event
);
}
/**
* searchform 部件 save 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteClosedGridViewBase
*/
public
searchform_save
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'searchform'
,
'save'
,
$event
);
}
/**
* searchform 部件 search 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteClosedGridViewBase
*/
public
searchform_search
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'searchform'
,
'search'
,
$event
);
}
/**
* searchform 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteClosedGridViewBase
*/
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
:
QuoteUIService
=
new
QuoteUIService
();
curUIService
.
Quote_OpenQuickCreateView
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Quote"
);
}
/**
* 逻辑事件
*
* @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
,
"Quote"
);
}
/**
* 逻辑事件
*
* @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
,
"Quote"
);
}
/**
* 逻辑事件
*
* @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
,
"Quote"
);
}
/**
* 逻辑事件
*
* @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
,
"Quote"
);
}
/**
* 逻辑事件
*
* @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
,
"Quote"
);
}
/**
* 逻辑事件
*
* @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
,
"Quote"
);
}
/**
* 打开新建数据视图
*
* @param {any[]} args
* @param {*} [params]
* @param {*} [fullargs]
* @param {*} [$event]
* @param {*} [xData]
* @memberof QuoteClosedGridView
*/
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
.
quote
;
if
(
args
.
length
>
0
){
Object
.
assign
(
tempContext
,
args
[
0
]);
}
let
deResParameters
:
any
[]
=
[];
if
(
tempContext
.
opportunity
&&
true
){
deResParameters
=
[
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
]
}
const
parameters
:
any
[]
=
[
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
];
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
:
'quote-option-view'
,
height
:
0
,
width
:
0
,
title
:
this
.
$t
(
'entities.quote.views.optionview.title'
),
placement
:
'DRAWER_RIGHT'
,
};
openDrawer
(
view
,
data
);
}
/**
* 打开编辑数据视图
*
* @param {any[]} args
* @param {*} [params]
* @param {*} [fullargs]
* @param {*} [$event]
* @param {*} [xData]
* @memberof QuoteClosedGridView
*/
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
.
opportunity
&&
true
){
deResParameters
=
[
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
]
}
const
parameters
:
any
[]
=
[
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
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 QuoteClosedGridViewBase
*/
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
,
{
quote
:
args
[
0
].
quote
})
}
_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 QuoteClosedGridViewBase
*/
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 QuoteClosedGridViewBase
*/
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 QuoteClosedGridViewBase
*/
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 QuoteClosedGridViewBase
*/
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 QuoteClosedGridViewBase
*/
public
ToggleFilter
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
const
_this
:
any
=
this
;
if
(
_this
.
hasOwnProperty
(
'isExpandSearchForm'
))
{
_this
.
isExpandSearchForm
=
!
_this
.
isExpandSearchForm
;
}
}
}
\ No newline at end of file
app_CRM/src/pages/sales/quote-closed-grid-view/quote-closed-grid-view.html
0 → 100644
浏览文件 @
1264699d
<studio-view-style2
viewName=
"quoteclosedgridview"
viewTitle=
"报价单信息"
class=
'degridview quote-closed-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=
"FetchClosed"
: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/quote-closed-grid-view/quote-closed-grid-view.vue
0 → 100644
浏览文件 @
1264699d
<
template
src=
"./quote-closed-grid-view.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { QuoteClosedGridViewBase } from './quote-closed-grid-view-base';
import view_grid from '@widgets/quote/main-grid/main-grid.vue';
import view_searchform from '@widgets/quote/default-searchform/default-searchform.vue';
/**
* 报价单信息视图
*
* @export
* @class QuoteClosedGridView
* @extends {QuoteClosedGridViewBase}
*/
@Component({
components: {
view_grid,
view_searchform,
}
})
@VueLifeCycleProcessing()
export default class QuoteClosedGridView extends QuoteClosedGridViewBase { }
</script>
app_CRM/src/pages/sales/quote-effective-grid-view/quote-effective-grid-view-base.tsx
0 → 100644
浏览文件 @
1264699d
import
{
Subject
}
from
'rxjs'
;
import
{
GridViewBase
}
from
'@/studio-core'
;
import
QuoteService
from
'@/service/quote/quote-service'
;
import
GridViewEngine
from
'@engine/view/grid-view-engine'
;
import
QuoteUIService
from
'@/uiservice/quote/quote-ui-service'
;
import
CodeListService
from
"@service/app/codelist-service"
;
/**
* 报价单信息视图基类
*
* @export
* @class QuoteEffectiveGridViewBase
* @extends {GridViewBase}
*/
export
class
QuoteEffectiveGridViewBase
extends
GridViewBase
{
/**
* 视图对应应用实体名称
*
* @protected
* @type {string}
* @memberof QuoteEffectiveGridViewBase
*/
protected
appDeName
:
string
=
'quote'
;
/**
* 应用实体主键
*
* @protected
* @type {string}
* @memberof QuoteEffectiveGridViewBase
*/
protected
appDeKey
:
string
=
'quoteid'
;
/**
* 应用实体主信息
*
* @protected
* @type {string}
* @memberof QuoteEffectiveGridViewBase
*/
protected
appDeMajor
:
string
=
'quotename'
;
/**
* 实体服务对象
*
* @type {QuoteService}
* @memberof QuoteEffectiveGridViewBase
*/
protected
appEntityService
:
QuoteService
=
new
QuoteService
;
/**
* 计数器服务对象集合
*
* @protected
* @type {Array<*>}
* @memberof QuoteEffectiveGridViewBase
*/
protected
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 视图模型数据
*
* @protected
* @type {*}
* @memberof QuoteEffectiveGridViewBase
*/
protected
model
:
any
=
{
srfCaption
:
'entities.quote.views.effectivegridview.caption'
,
srfTitle
:
'entities.quote.views.effectivegridview.title'
,
srfSubTitle
:
'entities.quote.views.effectivegridview.subtitle'
,
dataInfo
:
''
}
/**
* 容器模型
*
* @protected
* @type {*}
* @memberof QuoteEffectiveGridViewBase
*/
protected
containerModel
:
any
=
{
view_toolbar
:
{
name
:
'toolbar'
,
type
:
'TOOLBAR'
},
view_grid
:
{
name
:
'grid'
,
type
:
'GRID'
},
view_searchform
:
{
name
:
'searchform'
,
type
:
'SEARCHFORM'
},
};
/**
* 工具栏模型
*
* @type {*}
* @memberof QuoteEffectiveGridView
*/
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
:
{
}
},
tbitem14_win
:
{
name
:
'tbitem14_win'
,
caption
:
'赢单'
,
'isShowCaption'
:
true
,
'isShowIcon'
:
true
,
tooltip
:
'赢单'
,
iconcls
:
'fa fa-coffee'
,
icon
:
''
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'Win'
,
target
:
'SINGLEKEY'
},
class
:
''
},
tbitem14_close_sep
:
{
name
:
'tbitem14_close_sep'
,
type
:
'SEPERATOR'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
}
},
tbitem14_close
:
{
name
:
'tbitem14_close'
,
caption
:
'结束报价单'
,
'isShowCaption'
:
true
,
'isShowIcon'
:
true
,
tooltip
:
'结束报价单'
,
iconcls
:
'fa fa-close'
,
icon
:
''
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'Close'
,
target
:
'SINGLEKEY'
},
class
:
''
},
tbitem15
:
{
name
:
'tbitem15'
,
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
=
'37891b1dd5782b30f30e3253298ba0f2'
;
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof QuoteEffectiveGridViewBase
*/
public
engine
:
GridViewEngine
=
new
GridViewEngine
();
/**
* 引擎初始化
*
* @public
* @memberof QuoteEffectiveGridViewBase
*/
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
:
'quote'
,
majorPSDEField
:
'quotename'
,
isLoadDefault
:
true
,
});
}
/**
* toolbar 部件 click 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteEffectiveGridViewBase
*/
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
,
'tbitem14_win'
))
{
this
.
toolbar_tbitem14_win_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem14_close'
))
{
this
.
toolbar_tbitem14_close_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem19'
))
{
this
.
toolbar_tbitem19_click
(
null
,
''
,
$event2
);
}
}
/**
* grid 部件 selectionchange 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteEffectiveGridViewBase
*/
public
grid_selectionchange
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'selectionchange'
,
$event
);
}
/**
* grid 部件 beforeload 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteEffectiveGridViewBase
*/
public
grid_beforeload
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'beforeload'
,
$event
);
}
/**
* grid 部件 rowdblclick 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteEffectiveGridViewBase
*/
public
grid_rowdblclick
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'rowdblclick'
,
$event
);
}
/**
* grid 部件 remove 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteEffectiveGridViewBase
*/
public
grid_remove
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'remove'
,
$event
);
}
/**
* grid 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteEffectiveGridViewBase
*/
public
grid_load
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'load'
,
$event
);
}
/**
* searchform 部件 save 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteEffectiveGridViewBase
*/
public
searchform_save
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'searchform'
,
'save'
,
$event
);
}
/**
* searchform 部件 search 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteEffectiveGridViewBase
*/
public
searchform_search
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'searchform'
,
'search'
,
$event
);
}
/**
* searchform 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteEffectiveGridViewBase
*/
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
:
QuoteUIService
=
new
QuoteUIService
();
curUIService
.
Quote_OpenQuickCreateView
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Quote"
);
}
/**
* 逻辑事件
*
* @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
,
"Quote"
);
}
/**
* 逻辑事件
*
* @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
,
"Quote"
);
}
/**
* 逻辑事件
*
* @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
,
"Quote"
);
}
/**
* 逻辑事件
*
* @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
,
"Quote"
);
}
/**
* 逻辑事件
*
* @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
,
"Quote"
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_tbitem14_win_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
:
QuoteUIService
=
new
QuoteUIService
();
curUIService
.
Quote_Win
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Quote"
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_tbitem14_close_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
:
QuoteUIService
=
new
QuoteUIService
();
curUIService
.
Quote_Close
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Quote"
);
}
/**
* 逻辑事件
*
* @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
,
"Quote"
);
}
/**
* 打开新建数据视图
*
* @param {any[]} args
* @param {*} [params]
* @param {*} [fullargs]
* @param {*} [$event]
* @param {*} [xData]
* @memberof QuoteEffectiveGridView
*/
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
.
quote
;
if
(
args
.
length
>
0
){
Object
.
assign
(
tempContext
,
args
[
0
]);
}
let
deResParameters
:
any
[]
=
[];
if
(
tempContext
.
opportunity
&&
true
){
deResParameters
=
[
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
]
}
const
parameters
:
any
[]
=
[
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
];
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
:
'quote-option-view'
,
height
:
0
,
width
:
0
,
title
:
this
.
$t
(
'entities.quote.views.optionview.title'
),
placement
:
'DRAWER_RIGHT'
,
};
openDrawer
(
view
,
data
);
}
/**
* 打开编辑数据视图
*
* @param {any[]} args
* @param {*} [params]
* @param {*} [fullargs]
* @param {*} [$event]
* @param {*} [xData]
* @memberof QuoteEffectiveGridView
*/
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
.
opportunity
&&
true
){
deResParameters
=
[
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
]
}
const
parameters
:
any
[]
=
[
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
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 QuoteEffectiveGridViewBase
*/
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
,
{
quote
:
args
[
0
].
quote
})
}
_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 QuoteEffectiveGridViewBase
*/
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 QuoteEffectiveGridViewBase
*/
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 QuoteEffectiveGridViewBase
*/
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 QuoteEffectiveGridViewBase
*/
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 QuoteEffectiveGridViewBase
*/
public
ToggleFilter
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
const
_this
:
any
=
this
;
if
(
_this
.
hasOwnProperty
(
'isExpandSearchForm'
))
{
_this
.
isExpandSearchForm
=
!
_this
.
isExpandSearchForm
;
}
}
}
\ No newline at end of file
app_CRM/src/pages/sales/quote-effective-grid-view/quote-effective-grid-view.html
0 → 100644
浏览文件 @
1264699d
<studio-view-style2
viewName=
"quoteeffectivegridview"
viewTitle=
"报价单信息"
class=
'degridview quote-effective-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=
"FetchEffective"
: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/quote-effective-grid-view/quote-effective-grid-view.vue
0 → 100644
浏览文件 @
1264699d
<
template
src=
"./quote-effective-grid-view.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { QuoteEffectiveGridViewBase } from './quote-effective-grid-view-base';
import view_grid from '@widgets/quote/main-grid/main-grid.vue';
import view_searchform from '@widgets/quote/default-searchform/default-searchform.vue';
/**
* 报价单信息视图
*
* @export
* @class QuoteEffectiveGridView
* @extends {QuoteEffectiveGridViewBase}
*/
@Component({
components: {
view_grid,
view_searchform,
}
})
@VueLifeCycleProcessing()
export default class QuoteEffectiveGridView extends QuoteEffectiveGridViewBase { }
</script>
app_CRM/src/pages/sales/quote-state-tab-view/quote-state-tab-view-base.tsx
0 → 100644
浏览文件 @
1264699d
import
{
Subject
}
from
'rxjs'
;
import
{
TabExpViewBase
}
from
'@/studio-core'
;
import
QuoteService
from
'@/service/quote/quote-service'
;
import
TabExpViewEngine
from
'@engine/view/tab-exp-view-engine'
;
/**
* 报价单状态分页视图视图基类
*
* @export
* @class QuoteStateTabViewBase
* @extends {TabExpViewBase}
*/
export
class
QuoteStateTabViewBase
extends
TabExpViewBase
{
/**
* 视图对应应用实体名称
*
* @protected
* @type {string}
* @memberof QuoteStateTabViewBase
*/
protected
appDeName
:
string
=
'quote'
;
/**
* 应用实体主键
*
* @protected
* @type {string}
* @memberof QuoteStateTabViewBase
*/
protected
appDeKey
:
string
=
'quoteid'
;
/**
* 应用实体主信息
*
* @protected
* @type {string}
* @memberof QuoteStateTabViewBase
*/
protected
appDeMajor
:
string
=
'quotename'
;
/**
* 实体服务对象
*
* @type {QuoteService}
* @memberof QuoteStateTabViewBase
*/
protected
appEntityService
:
QuoteService
=
new
QuoteService
;
/**
* 计数器服务对象集合
*
* @protected
* @type {Array<*>}
* @memberof QuoteStateTabViewBase
*/
protected
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 视图模型数据
*
* @protected
* @type {*}
* @memberof QuoteStateTabViewBase
*/
protected
model
:
any
=
{
srfCaption
:
'entities.quote.views.statetabview.caption'
,
srfTitle
:
'entities.quote.views.statetabview.title'
,
srfSubTitle
:
'entities.quote.views.statetabview.subtitle'
,
dataInfo
:
''
}
/**
* 容器模型
*
* @protected
* @type {*}
* @memberof QuoteStateTabViewBase
*/
protected
containerModel
:
any
=
{
view_tabexppanel
:
{
name
:
'tabexppanel'
,
type
:
'TABEXPPANEL'
},
};
/**
* 视图唯一标识
*
* @protected
* @type {string}
* @memberof ViewBase
*/
protected
viewtag
:
string
=
'efe82dc0a6991dd88da8c33cee6bf451'
;
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof QuoteStateTabViewBase
*/
public
engine
:
TabExpViewEngine
=
new
TabExpViewEngine
();
/**
* 引擎初始化
*
* @public
* @memberof QuoteStateTabViewBase
*/
public
engineInit
():
void
{
this
.
engine
.
init
({
view
:
this
,
keyPSDEField
:
'quote'
,
majorPSDEField
:
'quotename'
,
isLoadDefault
:
true
,
});
}
}
\ No newline at end of file
app_CRM/src/pages/sales/quote-state-tab-view/quote-state-tab-view.html
0 → 100644
浏览文件 @
1264699d
<studio-view-style2
viewName=
"quotestatetabview"
viewTitle=
"报价单状态分页视图"
class=
'detabexpview quote-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/quote-state-tab-view/quote-state-tab-view.vue
0 → 100644
浏览文件 @
1264699d
<
template
src=
"./quote-state-tab-view.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { QuoteStateTabViewBase } from './quote-state-tab-view-base';
import view_tabexppanel from '@widgets/quote/state-tab-viewtabexppanel-tabexppanel/state-tab-viewtabexppanel-tabexppanel.vue';
/**
* 报价单状态分页视图视图
*
* @export
* @class QuoteStateTabView
* @extends {QuoteStateTabViewBase}
*/
@Component({
components: {
view_tabexppanel,
}
})
@VueLifeCycleProcessing()
export default class QuoteStateTabView extends QuoteStateTabViewBase { }
</script>
app_CRM/src/pages/sales/quote-win-grid-view/quote-win-grid-view-base.tsx
0 → 100644
浏览文件 @
1264699d
import
{
Subject
}
from
'rxjs'
;
import
{
GridViewBase
}
from
'@/studio-core'
;
import
QuoteService
from
'@/service/quote/quote-service'
;
import
GridViewEngine
from
'@engine/view/grid-view-engine'
;
import
QuoteUIService
from
'@/uiservice/quote/quote-ui-service'
;
import
CodeListService
from
"@service/app/codelist-service"
;
/**
* 报价单信息视图基类
*
* @export
* @class QuoteWinGridViewBase
* @extends {GridViewBase}
*/
export
class
QuoteWinGridViewBase
extends
GridViewBase
{
/**
* 视图对应应用实体名称
*
* @protected
* @type {string}
* @memberof QuoteWinGridViewBase
*/
protected
appDeName
:
string
=
'quote'
;
/**
* 应用实体主键
*
* @protected
* @type {string}
* @memberof QuoteWinGridViewBase
*/
protected
appDeKey
:
string
=
'quoteid'
;
/**
* 应用实体主信息
*
* @protected
* @type {string}
* @memberof QuoteWinGridViewBase
*/
protected
appDeMajor
:
string
=
'quotename'
;
/**
* 实体服务对象
*
* @type {QuoteService}
* @memberof QuoteWinGridViewBase
*/
protected
appEntityService
:
QuoteService
=
new
QuoteService
;
/**
* 计数器服务对象集合
*
* @protected
* @type {Array<*>}
* @memberof QuoteWinGridViewBase
*/
protected
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 视图模型数据
*
* @protected
* @type {*}
* @memberof QuoteWinGridViewBase
*/
protected
model
:
any
=
{
srfCaption
:
'entities.quote.views.wingridview.caption'
,
srfTitle
:
'entities.quote.views.wingridview.title'
,
srfSubTitle
:
'entities.quote.views.wingridview.subtitle'
,
dataInfo
:
''
}
/**
* 容器模型
*
* @protected
* @type {*}
* @memberof QuoteWinGridViewBase
*/
protected
containerModel
:
any
=
{
view_toolbar
:
{
name
:
'toolbar'
,
type
:
'TOOLBAR'
},
view_grid
:
{
name
:
'grid'
,
type
:
'GRID'
},
view_searchform
:
{
name
:
'searchform'
,
type
:
'SEARCHFORM'
},
};
/**
* 工具栏模型
*
* @type {*}
* @memberof QuoteWinGridView
*/
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
:
{
}
},
tbitem14_close
:
{
name
:
'tbitem14_close'
,
caption
:
'结束报价单'
,
'isShowCaption'
:
true
,
'isShowIcon'
:
true
,
tooltip
:
'结束报价单'
,
iconcls
:
'fa fa-close'
,
icon
:
''
,
disabled
:
false
,
type
:
'DEUIACTION'
,
visabled
:
true
,
dataaccaction
:
''
,
uiaction
:
{
tag
:
'Close'
,
target
:
'SINGLEKEY'
},
class
:
''
},
tbitem15
:
{
name
:
'tbitem15'
,
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
=
'518ac41fb3973a5f49f73e4a2c3f6681'
;
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof QuoteWinGridViewBase
*/
public
engine
:
GridViewEngine
=
new
GridViewEngine
();
/**
* 引擎初始化
*
* @public
* @memberof QuoteWinGridViewBase
*/
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
:
'quote'
,
majorPSDEField
:
'quotename'
,
isLoadDefault
:
true
,
});
}
/**
* toolbar 部件 click 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteWinGridViewBase
*/
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
,
'tbitem14_close'
))
{
this
.
toolbar_tbitem14_close_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem19'
))
{
this
.
toolbar_tbitem19_click
(
null
,
''
,
$event2
);
}
}
/**
* grid 部件 selectionchange 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteWinGridViewBase
*/
public
grid_selectionchange
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'selectionchange'
,
$event
);
}
/**
* grid 部件 beforeload 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteWinGridViewBase
*/
public
grid_beforeload
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'beforeload'
,
$event
);
}
/**
* grid 部件 rowdblclick 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteWinGridViewBase
*/
public
grid_rowdblclick
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'rowdblclick'
,
$event
);
}
/**
* grid 部件 remove 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteWinGridViewBase
*/
public
grid_remove
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'remove'
,
$event
);
}
/**
* grid 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteWinGridViewBase
*/
public
grid_load
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'grid'
,
'load'
,
$event
);
}
/**
* searchform 部件 save 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteWinGridViewBase
*/
public
searchform_save
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'searchform'
,
'save'
,
$event
);
}
/**
* searchform 部件 search 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteWinGridViewBase
*/
public
searchform_search
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'searchform'
,
'search'
,
$event
);
}
/**
* searchform 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteWinGridViewBase
*/
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
:
QuoteUIService
=
new
QuoteUIService
();
curUIService
.
Quote_OpenQuickCreateView
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Quote"
);
}
/**
* 逻辑事件
*
* @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
,
"Quote"
);
}
/**
* 逻辑事件
*
* @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
,
"Quote"
);
}
/**
* 逻辑事件
*
* @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
,
"Quote"
);
}
/**
* 逻辑事件
*
* @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
,
"Quote"
);
}
/**
* 逻辑事件
*
* @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
,
"Quote"
);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public
toolbar_tbitem14_close_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
:
QuoteUIService
=
new
QuoteUIService
();
curUIService
.
Quote_Close
(
datas
,
contextJO
,
paramJO
,
$event
,
xData
,
this
,
"Quote"
);
}
/**
* 逻辑事件
*
* @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
,
"Quote"
);
}
/**
* 打开新建数据视图
*
* @param {any[]} args
* @param {*} [params]
* @param {*} [fullargs]
* @param {*} [$event]
* @param {*} [xData]
* @memberof QuoteWinGridView
*/
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
.
quote
;
if
(
args
.
length
>
0
){
Object
.
assign
(
tempContext
,
args
[
0
]);
}
let
deResParameters
:
any
[]
=
[];
if
(
tempContext
.
opportunity
&&
true
){
deResParameters
=
[
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
]
}
const
parameters
:
any
[]
=
[
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
];
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
:
'quote-option-view'
,
height
:
0
,
width
:
0
,
title
:
this
.
$t
(
'entities.quote.views.optionview.title'
),
placement
:
'DRAWER_RIGHT'
,
};
openDrawer
(
view
,
data
);
}
/**
* 打开编辑数据视图
*
* @param {any[]} args
* @param {*} [params]
* @param {*} [fullargs]
* @param {*} [$event]
* @param {*} [xData]
* @memberof QuoteWinGridView
*/
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
.
opportunity
&&
true
){
deResParameters
=
[
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
]
}
const
parameters
:
any
[]
=
[
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
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 QuoteWinGridViewBase
*/
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
,
{
quote
:
args
[
0
].
quote
})
}
_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 QuoteWinGridViewBase
*/
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 QuoteWinGridViewBase
*/
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 QuoteWinGridViewBase
*/
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 QuoteWinGridViewBase
*/
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 QuoteWinGridViewBase
*/
public
ToggleFilter
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
const
_this
:
any
=
this
;
if
(
_this
.
hasOwnProperty
(
'isExpandSearchForm'
))
{
_this
.
isExpandSearchForm
=
!
_this
.
isExpandSearchForm
;
}
}
}
\ No newline at end of file
app_CRM/src/pages/sales/quote-win-grid-view/quote-win-grid-view.html
0 → 100644
浏览文件 @
1264699d
<studio-view-style2
viewName=
"quotewingridview"
viewTitle=
"报价单信息"
class=
'degridview quote-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/quote-win-grid-view/quote-win-grid-view.vue
0 → 100644
浏览文件 @
1264699d
<
template
src=
"./quote-win-grid-view.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { QuoteWinGridViewBase } from './quote-win-grid-view-base';
import view_grid from '@widgets/quote/main-grid/main-grid.vue';
import view_searchform from '@widgets/quote/default-searchform/default-searchform.vue';
/**
* 报价单信息视图
*
* @export
* @class QuoteWinGridView
* @extends {QuoteWinGridViewBase}
*/
@Component({
components: {
view_grid,
view_searchform,
}
})
@VueLifeCycleProcessing()
export default class QuoteWinGridView extends QuoteWinGridViewBase { }
</script>
app_CRM/src/pages/ungroup/central/page-register.ts
浏览文件 @
1264699d
export
const
PageComponents
=
{
install
(
Vue
:
any
,
opt
:
any
)
{
Vue
.
component
(
'quote-effective-grid-view'
,
()
=>
import
(
'@pages/sales/quote-effective-grid-view/quote-effective-grid-view.vue'
));
Vue
.
component
(
'goal-child-goal-grid-view'
,
()
=>
import
(
'@pages/sales/goal-child-goal-grid-view/goal-child-goal-grid-view.vue'
));
Vue
.
component
(
'invoice-info-invoice-view'
,
()
=>
import
(
'@pages/finance/invoice-info-invoice-view/invoice-info-invoice-view.vue'
));
Vue
.
component
(
'competitor-option-view'
,
()
=>
import
(
'@pages/sales/competitor-option-view/competitor-option-view.vue'
));
Vue
.
component
(
'account-edit-view'
,
()
=>
import
(
'@pages/base/account-edit-view/account-edit-view.vue'
));
Vue
.
component
(
'product-sales-literature-sal-lit-pro-grid-view'
,
()
=>
import
(
'@pages/sales/product-sales-literature-sal-lit-pro-grid-view/product-sales-literature-sal-lit-pro-grid-view.vue'
));
Vue
.
component
(
'incident-child-incident-grid-view'
,
()
=>
import
(
'@pages/service/incident-child-incident-grid-view/incident-child-incident-grid-view.vue'
));
Vue
.
component
(
'product-pickup-view'
,
()
=>
import
(
'@pages/product/product-pickup-view/product-pickup-view.vue'
));
Vue
.
component
(
'quote-info-abstract'
,
()
=>
import
(
'@pages/sales/quote-info-abstract/quote-info-abstract.vue'
));
Vue
.
component
(
'product-pickup-view'
,
()
=>
import
(
'@pages/product/product-pickup-view/product-pickup-view.vue'
));
Vue
.
component
(
'centeral-portal'
,
()
=>
import
(
'@pages/ungroup/centeral-portal/centeral-portal.vue'
));
Vue
.
component
(
'task-quick-create'
,
()
=>
import
(
'@pages/base/task-quick-create/task-quick-create.vue'
));
Vue
.
component
(
'opportunity-quick-create'
,
()
=>
import
(
'@pages/sales/opportunity-quick-create/opportunity-quick-create.vue'
));
...
...
@@ -27,8 +28,10 @@ export const PageComponents = {
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
(
'quote-win-grid-view'
,
()
=>
import
(
'@pages/sales/quote-win-grid-view/quote-win-grid-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
(
'quote-closed-grid-view'
,
()
=>
import
(
'@pages/sales/quote-closed-grid-view/quote-closed-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
(
'campaign-info-manager'
,
()
=>
import
(
'@pages/marketing/campaign-info-manager/campaign-info-manager.vue'
));
...
...
@@ -97,6 +100,7 @@ export const PageComponents = {
Vue
.
component
(
'incident-info-incident-view'
,
()
=>
import
(
'@pages/service/incident-info-incident-view/incident-info-incident-view.vue'
));
Vue
.
component
(
'account-usable-grid-view'
,
()
=>
import
(
'@pages/base/account-usable-grid-view/account-usable-grid-view.vue'
));
Vue
.
component
(
'sales-order-info-soview'
,
()
=>
import
(
'@pages/sales/sales-order-info-soview/sales-order-info-soview.vue'
));
Vue
.
component
(
'quote-state-tab-view'
,
()
=>
import
(
'@pages/sales/quote-state-tab-view/quote-state-tab-view.vue'
));
Vue
.
component
(
'sales-order-summary-view'
,
()
=>
import
(
'@pages/sales/sales-order-summary-view/sales-order-summary-view.vue'
));
Vue
.
component
(
'quote-detail-edit-view'
,
()
=>
import
(
'@pages/sales/quote-detail-edit-view/quote-detail-edit-view.vue'
));
Vue
.
component
(
'quote-edit-view'
,
()
=>
import
(
'@pages/sales/quote-edit-view/quote-edit-view.vue'
));
...
...
app_CRM/src/pages/ungroup/central/router.ts
浏览文件 @
1264699d
...
...
@@ -47,6 +47,84 @@ const router = new Router({
},
component
:
()
=>
import
(
'@pages/ungroup/central/central.vue'
),
children
:
[
{
path
:
'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/quotes/:quote?/effectivegridview/:effectivegridview?'
,
meta
:
{
caption
:
'entities.quote.views.effectivegridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'effectivegridview'
,
parameterName
:
'effectivegridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/quote-effective-grid-view/quote-effective-grid-view.vue'
),
},
{
path
:
'contacts/:contact?/opportunities/:opportunity?/quotes/:quote?/effectivegridview/:effectivegridview?'
,
meta
:
{
caption
:
'entities.quote.views.effectivegridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'effectivegridview'
,
parameterName
:
'effectivegridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/quote-effective-grid-view/quote-effective-grid-view.vue'
),
},
{
path
:
'accounts/:account?/opportunities/:opportunity?/quotes/:quote?/effectivegridview/:effectivegridview?'
,
meta
:
{
caption
:
'entities.quote.views.effectivegridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'effectivegridview'
,
parameterName
:
'effectivegridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/quote-effective-grid-view/quote-effective-grid-view.vue'
),
},
{
path
:
'opportunities/:opportunity?/quotes/:quote?/effectivegridview/:effectivegridview?'
,
meta
:
{
caption
:
'entities.quote.views.effectivegridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'effectivegridview'
,
parameterName
:
'effectivegridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/quote-effective-grid-view/quote-effective-grid-view.vue'
),
},
{
path
:
'quotes/:quote?/effectivegridview/:effectivegridview?'
,
meta
:
{
caption
:
'entities.quote.views.effectivegridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'effectivegridview'
,
parameterName
:
'effectivegridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/quote-effective-grid-view/quote-effective-grid-view.vue'
),
},
{
path
:
'goals/:goal?/childgoalgridview/:childgoalgridview?'
,
meta
:
{
...
...
@@ -146,20 +224,6 @@ const router = new Router({
},
component
:
()
=>
import
(
'@pages/service/incident-child-incident-grid-view/incident-child-incident-grid-view.vue'
),
},
{
path
:
'products/:product?/pickupview/:pickupview?'
,
meta
:
{
caption
:
'entities.product.views.pickupview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'products'
,
parameterName
:
'product'
},
{
pathName
:
'pickupview'
,
parameterName
:
'pickupview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/product/product-pickup-view/product-pickup-view.vue'
),
},
{
path
:
'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/quotes/:quote?/infoabstract/:infoabstract?'
,
meta
:
{
...
...
@@ -238,6 +302,20 @@ const router = new Router({
},
component
:
()
=>
import
(
'@pages/sales/quote-info-abstract/quote-info-abstract.vue'
),
},
{
path
:
'products/:product?/pickupview/:pickupview?'
,
meta
:
{
caption
:
'entities.product.views.pickupview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'products'
,
parameterName
:
'product'
},
{
pathName
:
'pickupview'
,
parameterName
:
'pickupview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/product/product-pickup-view/product-pickup-view.vue'
),
},
{
path
:
'centeralportal/:centeralportal?'
,
meta
:
{
...
...
@@ -814,6 +892,84 @@ const router = new Router({
},
component
:
()
=>
import
(
'@pages/sales/discount-type-pickup-view/discount-type-pickup-view.vue'
),
},
{
path
:
'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/quotes/:quote?/wingridview/:wingridview?'
,
meta
:
{
caption
:
'entities.quote.views.wingridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'wingridview'
,
parameterName
:
'wingridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/quote-win-grid-view/quote-win-grid-view.vue'
),
},
{
path
:
'contacts/:contact?/opportunities/:opportunity?/quotes/:quote?/wingridview/:wingridview?'
,
meta
:
{
caption
:
'entities.quote.views.wingridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'wingridview'
,
parameterName
:
'wingridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/quote-win-grid-view/quote-win-grid-view.vue'
),
},
{
path
:
'accounts/:account?/opportunities/:opportunity?/quotes/:quote?/wingridview/:wingridview?'
,
meta
:
{
caption
:
'entities.quote.views.wingridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'wingridview'
,
parameterName
:
'wingridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/quote-win-grid-view/quote-win-grid-view.vue'
),
},
{
path
:
'opportunities/:opportunity?/quotes/:quote?/wingridview/:wingridview?'
,
meta
:
{
caption
:
'entities.quote.views.wingridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'wingridview'
,
parameterName
:
'wingridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/quote-win-grid-view/quote-win-grid-view.vue'
),
},
{
path
:
'quotes/:quote?/wingridview/:wingridview?'
,
meta
:
{
caption
:
'entities.quote.views.wingridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'wingridview'
,
parameterName
:
'wingridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/quote-win-grid-view/quote-win-grid-view.vue'
),
},
{
path
:
'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/edit_datepanelview/:edit_datepanelview?'
,
meta
:
{
...
...
@@ -888,6 +1044,84 @@ const router = new Router({
},
component
:
()
=>
import
(
'@pages/marketing/ibiz-list-info/ibiz-list-info.vue'
),
},
{
path
:
'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/quotes/:quote?/closedgridview/:closedgridview?'
,
meta
:
{
caption
:
'entities.quote.views.closedgridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'closedgridview'
,
parameterName
:
'closedgridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/quote-closed-grid-view/quote-closed-grid-view.vue'
),
},
{
path
:
'contacts/:contact?/opportunities/:opportunity?/quotes/:quote?/closedgridview/:closedgridview?'
,
meta
:
{
caption
:
'entities.quote.views.closedgridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'closedgridview'
,
parameterName
:
'closedgridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/quote-closed-grid-view/quote-closed-grid-view.vue'
),
},
{
path
:
'accounts/:account?/opportunities/:opportunity?/quotes/:quote?/closedgridview/:closedgridview?'
,
meta
:
{
caption
:
'entities.quote.views.closedgridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'closedgridview'
,
parameterName
:
'closedgridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/quote-closed-grid-view/quote-closed-grid-view.vue'
),
},
{
path
:
'opportunities/:opportunity?/quotes/:quote?/closedgridview/:closedgridview?'
,
meta
:
{
caption
:
'entities.quote.views.closedgridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'closedgridview'
,
parameterName
:
'closedgridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/quote-closed-grid-view/quote-closed-grid-view.vue'
),
},
{
path
:
'quotes/:quote?/closedgridview/:closedgridview?'
,
meta
:
{
caption
:
'entities.quote.views.closedgridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'closedgridview'
,
parameterName
:
'closedgridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/quote-closed-grid-view/quote-closed-grid-view.vue'
),
},
{
path
:
'knowledgearticles/:knowledgearticle?/gridview/:gridview?'
,
meta
:
{
...
...
@@ -3214,6 +3448,84 @@ const router = new Router({
},
component
:
()
=>
import
(
'@pages/base/account-inner-pickup-grid-view/account-inner-pickup-grid-view.vue'
),
},
{
path
:
'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/quotes/:quote?/statetabview/:statetabview?'
,
meta
:
{
caption
:
'entities.quote.views.statetabview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'statetabview'
,
parameterName
:
'statetabview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/quote-state-tab-view/quote-state-tab-view.vue'
),
},
{
path
:
'contacts/:contact?/opportunities/:opportunity?/quotes/:quote?/statetabview/:statetabview?'
,
meta
:
{
caption
:
'entities.quote.views.statetabview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'contacts'
,
parameterName
:
'contact'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'statetabview'
,
parameterName
:
'statetabview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/quote-state-tab-view/quote-state-tab-view.vue'
),
},
{
path
:
'accounts/:account?/opportunities/:opportunity?/quotes/:quote?/statetabview/:statetabview?'
,
meta
:
{
caption
:
'entities.quote.views.statetabview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'accounts'
,
parameterName
:
'account'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'statetabview'
,
parameterName
:
'statetabview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/quote-state-tab-view/quote-state-tab-view.vue'
),
},
{
path
:
'opportunities/:opportunity?/quotes/:quote?/statetabview/:statetabview?'
,
meta
:
{
caption
:
'entities.quote.views.statetabview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'statetabview'
,
parameterName
:
'statetabview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/quote-state-tab-view/quote-state-tab-view.vue'
),
},
{
path
:
'quotes/:quote?/statetabview/:statetabview?'
,
meta
:
{
caption
:
'entities.quote.views.statetabview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'statetabview'
,
parameterName
:
'statetabview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/sales/quote-state-tab-view/quote-state-tab-view.vue'
),
},
{
path
:
'salesorders/:salesorder?/summaryview/:summaryview?'
,
meta
:
{
...
...
@@ -6237,20 +6549,6 @@ const router = new Router({
},
component
:
()
=>
import
(
'@pages/marketing/list-lead-quick-create-by-list/list-lead-quick-create-by-list.vue'
),
},
{
path
:
'metrics/:metric?/gridview/:gridview?'
,
meta
:
{
caption
:
'entities.metric.views.gridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'metrics'
,
parameterName
:
'metric'
},
{
pathName
:
'gridview'
,
parameterName
:
'gridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/base/metric-grid-view/metric-grid-view.vue'
),
},
{
path
:
'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/pickupgridview/:pickupgridview?'
,
meta
:
{
...
...
@@ -6311,6 +6609,20 @@ const router = new Router({
},
component
:
()
=>
import
(
'@pages/sales/opportunity-pickup-grid-view/opportunity-pickup-grid-view.vue'
),
},
{
path
:
'metrics/:metric?/gridview/:gridview?'
,
meta
:
{
caption
:
'entities.metric.views.gridview.title'
,
info
:
''
,
parameters
:
[
{
pathName
:
'central'
,
parameterName
:
'central'
},
{
pathName
:
'metrics'
,
parameterName
:
'metric'
},
{
pathName
:
'gridview'
,
parameterName
:
'gridview'
},
],
requireAuth
:
true
,
},
component
:
()
=>
import
(
'@pages/base/metric-grid-view/metric-grid-view.vue'
),
},
{
path
:
'connectionroles/:connectionrole?/gridview/:gridview?'
,
meta
:
{
...
...
app_CRM/src/store/modules/view-action/state.ts
浏览文件 @
1264699d
...
...
@@ -607,6 +607,17 @@ export const viewstate: any = {
'44f1244c0a9e78981a151dc7f247e867'
,
],
},
{
viewtag
:
'37891b1dd5782b30f30e3253298ba0f2'
,
viewmodule
:
'Sales'
,
viewname
:
'QuoteEffectiveGridView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'bf670ca93d5a63c4feba5a3cc3de7a9c'
,
'9a8f1a5129b4191c2dfb20b23aeb4c7a'
,
],
},
{
viewtag
:
'3a665de6a3970b95fde436c0fea4b1df'
,
viewmodule
:
'Service'
,
...
...
@@ -876,6 +887,17 @@ export const viewstate: any = {
'd8b664607bd727900320b23da3fafaf2'
,
],
},
{
viewtag
:
'518ac41fb3973a5f49f73e4a2c3f6681'
,
viewmodule
:
'Sales'
,
viewname
:
'QuoteWinGridView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'bf670ca93d5a63c4feba5a3cc3de7a9c'
,
'9a8f1a5129b4191c2dfb20b23aeb4c7a'
,
],
},
{
viewtag
:
'521acee07c15c72e914d3ca538cb26fc'
,
viewmodule
:
'Sales'
,
...
...
@@ -1366,6 +1388,7 @@ export const viewstate: any = {
'25bf5f8c2ebd1ce2be6d06717ed08a96'
,
'dfc0051ae4813115e03f3d095f8cd7d3'
,
'3202f3f503424c7a2c549b2c5186dc36'
,
'efe82dc0a6991dd88da8c33cee6bf451'
,
'8895fef7ce4f5bdd1cd8f950bd1f8bcc'
,
'631a4276161c551802f3aaf4bd7e607c'
,
'90b48a107932f432e0dde42791a51887'
,
...
...
@@ -1376,7 +1399,6 @@ export const viewstate: any = {
'7FCD2E75-E34A-493C-922E-8AE47BCE08CA'
,
'd1c35f3c52010e1428d7dc1a6bc82f63'
,
'e0aef8c0d1f1ae28f628a0541b118961'
,
'14110058a29397ea9ac7d4e86a3994ca'
,
'3a665de6a3970b95fde436c0fea4b1df'
,
'00367e275947880480763049e5c495be'
,
],
...
...
@@ -2103,6 +2125,17 @@ export const viewstate: any = {
refviews
:
[
],
},
{
viewtag
:
'd163d3257bed7fbd8e2fa99bcc2abf32'
,
viewmodule
:
'Sales'
,
viewname
:
'QuoteClosedGridView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'bf670ca93d5a63c4feba5a3cc3de7a9c'
,
'9a8f1a5129b4191c2dfb20b23aeb4c7a'
,
],
},
{
viewtag
:
'd1c35f3c52010e1428d7dc1a6bc82f63'
,
viewmodule
:
'Sales'
,
...
...
@@ -2326,6 +2359,19 @@ export const viewstate: any = {
refviews
:
[
],
},
{
viewtag
:
'efe82dc0a6991dd88da8c33cee6bf451'
,
viewmodule
:
'Sales'
,
viewname
:
'QuoteStateTabView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'37891b1dd5782b30f30e3253298ba0f2'
,
'518ac41fb3973a5f49f73e4a2c3f6681'
,
'14110058a29397ea9ac7d4e86a3994ca'
,
'd163d3257bed7fbd8e2fa99bcc2abf32'
,
],
},
{
viewtag
:
'f440f1d3b950a89e6cb72cadea120b74'
,
viewmodule
:
'Service'
,
...
...
app_CRM/src/uiservice/quote/quote-ui-service-base.ts
浏览文件 @
1264699d
...
...
@@ -83,11 +83,13 @@ export default class QuoteUIServiceBase extends UIService {
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'summary'
,
srfappde
:
'quotes'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'effectivegridview'
,
srfappde
:
'quotes'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'infoabstract'
,
srfappde
:
'quotes'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'wingridview'
,
srfappde
:
'quotes'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'oppquagridview'
,
srfappde
:
'quotes'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'byparentkey'
,
srfappde
:
'quotes'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'optionview'
,
srfappde
:
'quotes'
});
this
.
allViewMap
.
set
(
'EDITVIEW:'
,{
viewname
:
'editview'
,
srfappde
:
'quotes'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'info'
,
srfappde
:
'quotes'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'closedgridview'
,
srfappde
:
'quotes'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'statetabview'
,
srfappde
:
'quotes'
});
}
...
...
app_CRM/src/widgets/app/central-appmenu/central-appmenu-base.tsx
浏览文件 @
1264699d
...
...
@@ -513,7 +513,7 @@ export class CentralBase extends Vue {
const
deResParameters
:
any
[]
=
[];
const
parameters
:
any
[]
=
[
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
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
浏览文件 @
1264699d
...
...
@@ -456,7 +456,7 @@ export default class CentralModel {
textcls
:
''
,
appfunctag
:
'Auto5'
,
appfuncyype
:
'APPVIEW'
,
viewname
:
'quote-
grid
-view'
,
viewname
:
'quote-
state-tab
-view'
,
resourcetag
:
''
,
}
,
...
...
@@ -1055,12 +1055,12 @@ export default class CentralModel {
appfunctag
:
'Auto5'
,
appfuncyype
:
'APPVIEW'
,
openmode
:
''
,
codename
:
'quote
grid
view'
,
codename
:
'quote
statetab
view'
,
deResParameters
:
[],
routepath
:
'/central/:central?/quotes/:quote?/
gridview/:grid
view?'
,
routepath
:
'/central/:central?/quotes/:quote?/
statetabview/:statetab
view?'
,
parameters
:
[
{
pathName
:
'quotes'
,
parameterName
:
'quote'
},
{
pathName
:
'
gridview'
,
parameterName
:
'grid
view'
},
{
pathName
:
'
statetabview'
,
parameterName
:
'statetab
view'
},
],
},
];
...
...
app_CRM/src/widgets/quote/state-tab-viewtabexppanel-tabexppanel/state-tab-viewtabexppanel-tabexppanel-base.tsx
0 → 100644
浏览文件 @
1264699d
import
{
Prop
,
Provide
,
Emit
,
Model
}
from
'vue-property-decorator'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
Watch
,
TabExpPanelControlBase
}
from
'@/studio-core'
;
import
QuoteService
from
'@/service/quote/quote-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 {QuoteService}
* @memberof StateTabViewtabexppanelTabexppanelBase
*/
public
appEntityService
:
QuoteService
=
new
QuoteService
({
$store
:
this
.
$store
});
/**
* 应用实体名称
*
* @protected
* @type {string}
* @memberof StateTabViewtabexppanelTabexppanelBase
*/
protected
appDeName
:
string
=
'quote'
;
/**
* 是否初始化
*
* @protected
* @returns {any}
* @memberof StateTabViewtabexppanel
*/
protected
isInit
:
any
=
{
tabviewpanel
:
true
,
tabviewpanel2
:
false
,
tabviewpanel3
:
false
,
tabviewpanel4
:
false
,
}
/**
* 被激活的分页面板
*
* @protected
* @type {string}
* @memberof StateTabViewtabexppanel
*/
protected
activatedTabViewPanel
:
string
=
'tabviewpanel'
;
/**
* 组件创建完毕
*
* @protected
* @memberof StateTabViewtabexppanel
*/
protected
ctrlCreated
():
void
{
//设置分页导航srfparentdename和srfparentkey
if
(
this
.
context
.
quote
)
{
Object
.
assign
(
this
.
context
,
{
srfparentdename
:
'Quote'
,
srfparentkey
:
this
.
context
.
quote
});
}
super
.
ctrlCreated
();
}
}
\ No newline at end of file
app_CRM/src/widgets/quote/state-tab-viewtabexppanel-tabexppanel/state-tab-viewtabexppanel-tabexppanel-model.ts
0 → 100644
浏览文件 @
1264699d
/**
* StateTabViewtabexppanel 部件模型
*
* @export
* @class StateTabViewtabexppanelModel
*/
export
default
class
StateTabViewtabexppanelModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof StateTabViewtabexppanelModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'billto_country'
,
},
{
name
:
'onholdtime'
,
},
{
name
:
'willcall'
,
},
{
name
:
'shipto_line1'
,
},
{
name
:
'freighttermscode'
,
},
{
name
:
'statecode'
,
},
{
name
:
'effectivefrom'
,
},
{
name
:
'totalamountlessfreight_base'
,
},
{
name
:
'quotename'
,
},
{
name
:
'totaldiscountamount_base'
,
},
{
name
:
'shipto_postalcode'
,
},
{
name
:
'totalamount'
,
},
{
name
:
'billto_addressid'
,
},
{
name
:
'updateman'
,
},
{
name
:
'createman'
,
},
{
name
:
'totalamount_base'
,
},
{
name
:
'shipto_line2'
,
},
{
name
:
'totallineitemdiscountamount'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'totallineitemamount_base'
,
},
{
name
:
'shipto_contactname'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'shipto_addressid'
,
},
{
name
:
'shipto_name'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'quotenumber'
,
},
{
name
:
'billto_telephone'
,
},
{
name
:
'closedon'
,
},
{
name
:
'freightamount_base'
,
},
{
name
:
'shipto_line3'
,
},
{
name
:
'shippingmethodcode'
,
},
{
name
:
'customeridtype'
,
},
{
name
:
'customerid'
,
},
{
name
:
'effectiveto'
,
},
{
name
:
'shipto_freighttermscode'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'totallineitemamount'
,
},
{
name
:
'shipto_fax'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'emailaddress'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'pricingerrorcode'
,
},
{
name
:
'uniquedscid'
,
},
{
name
:
'contactidyominame'
,
},
{
name
:
'billto_line3'
,
},
{
name
:
'description'
,
},
{
name
:
'accountidyominame'
,
},
{
name
:
'billto_composite'
,
},
{
name
:
'requestdeliveryby'
,
},
{
name
:
'totaltax'
,
},
{
name
:
'quote'
,
prop
:
'quoteid'
,
},
{
name
:
'processid'
,
},
{
name
:
'stageid'
,
},
{
name
:
'createdate'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'shipto_country'
,
},
{
name
:
'expireson'
,
},
{
name
:
'billto_postalcode'
,
},
{
name
:
'billto_line2'
,
},
{
name
:
'billto_name'
,
},
{
name
:
'billto_line1'
,
},
{
name
:
'revisionnumber'
,
},
{
name
:
'billto_contactname'
,
},
{
name
:
'shipto_stateorprovince'
,
},
{
name
:
'billto_city'
,
},
{
name
:
'lastonholdtime'
,
},
{
name
:
'discountpercentage'
,
},
{
name
:
'shipto_city'
,
},
{
name
:
'discountamount'
,
},
{
name
:
'shipto_composite'
,
},
{
name
:
'shipto_telephone'
,
},
{
name
:
'billto_stateorprovince'
,
},
{
name
:
'paymenttermscode'
,
},
{
name
:
'totalamountlessfreight'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'customeridyominame'
,
},
{
name
:
'billto_fax'
,
},
{
name
:
'totaldiscountamount'
,
},
{
name
:
'totaltax_base'
,
},
{
name
:
'discountamount_base'
,
},
{
name
:
'freightamount'
,
},
{
name
:
'slaname'
,
},
{
name
:
'pricelevelid'
,
},
{
name
:
'slaid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'opportunityid'
,
},
{
name
:
'campaignid'
,
},
{
name
:
'pricelevelname'
,
},
{
name
:
'opportunityname'
,
},
{
name
:
'transactioncurrencyname'
,
},
{
name
:
'campaignname'
,
},
]
}
}
\ No newline at end of file
app_CRM/src/widgets/quote/state-tab-viewtabexppanel-tabexppanel/state-tab-viewtabexppanel-tabexppanel-service.ts
0 → 100644
浏览文件 @
1264699d
import
{
Http
,
Util
,
Errorlog
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
import
QuoteService
from
'@/service/quote/quote-service'
;
import
StateTabViewtabexppanelModel
from
'./state-tab-viewtabexppanel-tabexppanel-model'
;
/**
* StateTabViewtabexppanel 部件服务对象
*
* @export
* @class StateTabViewtabexppanelService
*/
export
default
class
StateTabViewtabexppanelService
extends
ControlService
{
/**
* 报价单服务对象
*
* @type {QuoteService}
* @memberof StateTabViewtabexppanelService
*/
public
appEntityService
:
QuoteService
=
new
QuoteService
({
$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/quote/state-tab-viewtabexppanel-tabexppanel/state-tab-viewtabexppanel-tabexppanel.html
0 → 100644
浏览文件 @
1264699d
<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>
<tab-pane
:index=
"3"
name=
'tabviewpanel4'
tab=
'statetabviewtabexppanel'
class=
''
:label=
"(h) =>{
return h('div', [
h('span', '已关闭'),
h('Badge', {
props: {
count: undefined,
type: 'primary'
}
})
])
}"
>
<view
_tabviewpanel4
:viewState=
"viewState"
:viewparams=
"JSON.parse(JSON.stringify(viewparams))"
:context=
"JSON.parse(JSON.stringify(context))"
v-if=
"isInit.tabviewpanel4"
name=
"tabviewpanel4"
ref=
'tabviewpanel4'
:expActive=
"activatedTabViewPanel === 'tabviewpanel4'"
@
viewpanelDatasChange =
"tabViewPanelDatasChange"
@
closeview=
"closeView($event)"
>
</view
_tabviewpanel4
>
</tab-pane>
</tabs>
</div>
\ No newline at end of file
app_CRM/src/widgets/quote/state-tab-viewtabexppanel-tabexppanel/state-tab-viewtabexppanel-tabexppanel.vue
0 → 100644
浏览文件 @
1264699d
<
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/quote/state-tab-viewtabviewpanel-tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel.vue';
import view_tabviewpanel2 from '@widgets/quote/state-tab-viewtabviewpanel2-tabviewpanel/state-tab-viewtabviewpanel2-tabviewpanel.vue';
import view_tabviewpanel3 from '@widgets/quote/state-tab-viewtabviewpanel3-tabviewpanel/state-tab-viewtabviewpanel3-tabviewpanel.vue';
import view_tabviewpanel4 from '@widgets/quote/state-tab-viewtabviewpanel4-tabviewpanel/state-tab-viewtabviewpanel4-tabviewpanel.vue';
/**
* tabexppanel部件
*
* @export
* @class StateTabViewtabexppanelTabexppanel
* @extends {StateTabViewtabexppanelTabexppanelBase}
*/
@Component({
components: {
view_tabviewpanel,
view_tabviewpanel2,
view_tabviewpanel3,
view_tabviewpanel4,
}
})
@VueLifeCycleProcessing()
export default class StateTabViewtabexppanelTabexppanel extends StateTabViewtabexppanelTabexppanelBase { }
</script>
app_CRM/src/widgets/quote/state-tab-viewtabviewpanel-tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel-base.tsx
0 → 100644
浏览文件 @
1264699d
import
{
Prop
,
Provide
,
Emit
,
Model
}
from
'vue-property-decorator'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
Watch
,
MainControlBase
}
from
'@/studio-core'
;
import
QuoteService
from
'@/service/quote/quote-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 {QuoteService}
* @memberof StateTabViewtabviewpanelTabviewpanelBase
*/
public
appEntityService
:
QuoteService
=
new
QuoteService
({
$store
:
this
.
$store
});
/**
* 应用实体名称
*
* @protected
* @type {string}
* @memberof StateTabViewtabviewpanelTabviewpanelBase
*/
protected
appDeName
:
string
=
'quote'
;
/**
* 导航模式下项是否激活
*
* @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/quote/state-tab-viewtabviewpanel-tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel-model.ts
0 → 100644
浏览文件 @
1264699d
/**
* StateTabViewtabviewpanel 部件模型
*
* @export
* @class StateTabViewtabviewpanelModel
*/
export
default
class
StateTabViewtabviewpanelModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof StateTabViewtabviewpanelModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'billto_country'
,
},
{
name
:
'onholdtime'
,
},
{
name
:
'willcall'
,
},
{
name
:
'shipto_line1'
,
},
{
name
:
'freighttermscode'
,
},
{
name
:
'statecode'
,
},
{
name
:
'effectivefrom'
,
},
{
name
:
'totalamountlessfreight_base'
,
},
{
name
:
'quotename'
,
},
{
name
:
'totaldiscountamount_base'
,
},
{
name
:
'shipto_postalcode'
,
},
{
name
:
'totalamount'
,
},
{
name
:
'billto_addressid'
,
},
{
name
:
'updateman'
,
},
{
name
:
'createman'
,
},
{
name
:
'totalamount_base'
,
},
{
name
:
'shipto_line2'
,
},
{
name
:
'totallineitemdiscountamount'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'totallineitemamount_base'
,
},
{
name
:
'shipto_contactname'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'shipto_addressid'
,
},
{
name
:
'shipto_name'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'quotenumber'
,
},
{
name
:
'billto_telephone'
,
},
{
name
:
'closedon'
,
},
{
name
:
'freightamount_base'
,
},
{
name
:
'shipto_line3'
,
},
{
name
:
'shippingmethodcode'
,
},
{
name
:
'customeridtype'
,
},
{
name
:
'customerid'
,
},
{
name
:
'effectiveto'
,
},
{
name
:
'shipto_freighttermscode'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'totallineitemamount'
,
},
{
name
:
'shipto_fax'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'emailaddress'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'pricingerrorcode'
,
},
{
name
:
'uniquedscid'
,
},
{
name
:
'contactidyominame'
,
},
{
name
:
'billto_line3'
,
},
{
name
:
'description'
,
},
{
name
:
'accountidyominame'
,
},
{
name
:
'billto_composite'
,
},
{
name
:
'requestdeliveryby'
,
},
{
name
:
'totaltax'
,
},
{
name
:
'quote'
,
prop
:
'quoteid'
,
},
{
name
:
'processid'
,
},
{
name
:
'stageid'
,
},
{
name
:
'createdate'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'shipto_country'
,
},
{
name
:
'expireson'
,
},
{
name
:
'billto_postalcode'
,
},
{
name
:
'billto_line2'
,
},
{
name
:
'billto_name'
,
},
{
name
:
'billto_line1'
,
},
{
name
:
'revisionnumber'
,
},
{
name
:
'billto_contactname'
,
},
{
name
:
'shipto_stateorprovince'
,
},
{
name
:
'billto_city'
,
},
{
name
:
'lastonholdtime'
,
},
{
name
:
'discountpercentage'
,
},
{
name
:
'shipto_city'
,
},
{
name
:
'discountamount'
,
},
{
name
:
'shipto_composite'
,
},
{
name
:
'shipto_telephone'
,
},
{
name
:
'billto_stateorprovince'
,
},
{
name
:
'paymenttermscode'
,
},
{
name
:
'totalamountlessfreight'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'customeridyominame'
,
},
{
name
:
'billto_fax'
,
},
{
name
:
'totaldiscountamount'
,
},
{
name
:
'totaltax_base'
,
},
{
name
:
'discountamount_base'
,
},
{
name
:
'freightamount'
,
},
{
name
:
'slaname'
,
},
{
name
:
'pricelevelid'
,
},
{
name
:
'slaid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'opportunityid'
,
},
{
name
:
'campaignid'
,
},
{
name
:
'pricelevelname'
,
},
{
name
:
'opportunityname'
,
},
{
name
:
'transactioncurrencyname'
,
},
{
name
:
'campaignname'
,
},
]
}
}
\ No newline at end of file
app_CRM/src/widgets/quote/state-tab-viewtabviewpanel-tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel-service.ts
0 → 100644
浏览文件 @
1264699d
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/quote/state-tab-viewtabviewpanel-tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel.html
0 → 100644
浏览文件 @
1264699d
<div
class=
'tabviewpanel'
v-if=
'isActivied'
>
<quote-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/quote/state-tab-viewtabviewpanel-tabviewpanel/state-tab-viewtabviewpanel-tabviewpanel.vue
0 → 100644
浏览文件 @
1264699d
<
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/quote/state-tab-viewtabviewpanel2-tabviewpanel/state-tab-viewtabviewpanel2-tabviewpanel-base.tsx
0 → 100644
浏览文件 @
1264699d
import
{
Prop
,
Provide
,
Emit
,
Model
}
from
'vue-property-decorator'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
Watch
,
MainControlBase
}
from
'@/studio-core'
;
import
QuoteService
from
'@/service/quote/quote-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 {QuoteService}
* @memberof StateTabViewtabviewpanel2TabviewpanelBase
*/
public
appEntityService
:
QuoteService
=
new
QuoteService
({
$store
:
this
.
$store
});
/**
* 应用实体名称
*
* @protected
* @type {string}
* @memberof StateTabViewtabviewpanel2TabviewpanelBase
*/
protected
appDeName
:
string
=
'quote'
;
/**
* 导航模式下项是否激活
*
* @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/quote/state-tab-viewtabviewpanel2-tabviewpanel/state-tab-viewtabviewpanel2-tabviewpanel-model.ts
0 → 100644
浏览文件 @
1264699d
/**
* StateTabViewtabviewpanel2 部件模型
*
* @export
* @class StateTabViewtabviewpanel2Model
*/
export
default
class
StateTabViewtabviewpanel2Model
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof StateTabViewtabviewpanel2Model
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'billto_country'
,
},
{
name
:
'onholdtime'
,
},
{
name
:
'willcall'
,
},
{
name
:
'shipto_line1'
,
},
{
name
:
'freighttermscode'
,
},
{
name
:
'statecode'
,
},
{
name
:
'effectivefrom'
,
},
{
name
:
'totalamountlessfreight_base'
,
},
{
name
:
'quotename'
,
},
{
name
:
'totaldiscountamount_base'
,
},
{
name
:
'shipto_postalcode'
,
},
{
name
:
'totalamount'
,
},
{
name
:
'billto_addressid'
,
},
{
name
:
'updateman'
,
},
{
name
:
'createman'
,
},
{
name
:
'totalamount_base'
,
},
{
name
:
'shipto_line2'
,
},
{
name
:
'totallineitemdiscountamount'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'totallineitemamount_base'
,
},
{
name
:
'shipto_contactname'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'shipto_addressid'
,
},
{
name
:
'shipto_name'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'quotenumber'
,
},
{
name
:
'billto_telephone'
,
},
{
name
:
'closedon'
,
},
{
name
:
'freightamount_base'
,
},
{
name
:
'shipto_line3'
,
},
{
name
:
'shippingmethodcode'
,
},
{
name
:
'customeridtype'
,
},
{
name
:
'customerid'
,
},
{
name
:
'effectiveto'
,
},
{
name
:
'shipto_freighttermscode'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'totallineitemamount'
,
},
{
name
:
'shipto_fax'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'emailaddress'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'pricingerrorcode'
,
},
{
name
:
'uniquedscid'
,
},
{
name
:
'contactidyominame'
,
},
{
name
:
'billto_line3'
,
},
{
name
:
'description'
,
},
{
name
:
'accountidyominame'
,
},
{
name
:
'billto_composite'
,
},
{
name
:
'requestdeliveryby'
,
},
{
name
:
'totaltax'
,
},
{
name
:
'quote'
,
prop
:
'quoteid'
,
},
{
name
:
'processid'
,
},
{
name
:
'stageid'
,
},
{
name
:
'createdate'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'shipto_country'
,
},
{
name
:
'expireson'
,
},
{
name
:
'billto_postalcode'
,
},
{
name
:
'billto_line2'
,
},
{
name
:
'billto_name'
,
},
{
name
:
'billto_line1'
,
},
{
name
:
'revisionnumber'
,
},
{
name
:
'billto_contactname'
,
},
{
name
:
'shipto_stateorprovince'
,
},
{
name
:
'billto_city'
,
},
{
name
:
'lastonholdtime'
,
},
{
name
:
'discountpercentage'
,
},
{
name
:
'shipto_city'
,
},
{
name
:
'discountamount'
,
},
{
name
:
'shipto_composite'
,
},
{
name
:
'shipto_telephone'
,
},
{
name
:
'billto_stateorprovince'
,
},
{
name
:
'paymenttermscode'
,
},
{
name
:
'totalamountlessfreight'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'customeridyominame'
,
},
{
name
:
'billto_fax'
,
},
{
name
:
'totaldiscountamount'
,
},
{
name
:
'totaltax_base'
,
},
{
name
:
'discountamount_base'
,
},
{
name
:
'freightamount'
,
},
{
name
:
'slaname'
,
},
{
name
:
'pricelevelid'
,
},
{
name
:
'slaid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'opportunityid'
,
},
{
name
:
'campaignid'
,
},
{
name
:
'pricelevelname'
,
},
{
name
:
'opportunityname'
,
},
{
name
:
'transactioncurrencyname'
,
},
{
name
:
'campaignname'
,
},
]
}
}
\ No newline at end of file
app_CRM/src/widgets/quote/state-tab-viewtabviewpanel2-tabviewpanel/state-tab-viewtabviewpanel2-tabviewpanel-service.ts
0 → 100644
浏览文件 @
1264699d
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/quote/state-tab-viewtabviewpanel2-tabviewpanel/state-tab-viewtabviewpanel2-tabviewpanel.html
0 → 100644
浏览文件 @
1264699d
<div
class=
'tabviewpanel'
v-if=
'isActivied'
>
<quote-effective-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/quote/state-tab-viewtabviewpanel2-tabviewpanel/state-tab-viewtabviewpanel2-tabviewpanel.vue
0 → 100644
浏览文件 @
1264699d
<
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/quote/state-tab-viewtabviewpanel3-tabviewpanel/state-tab-viewtabviewpanel3-tabviewpanel-base.tsx
0 → 100644
浏览文件 @
1264699d
import
{
Prop
,
Provide
,
Emit
,
Model
}
from
'vue-property-decorator'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
Watch
,
MainControlBase
}
from
'@/studio-core'
;
import
QuoteService
from
'@/service/quote/quote-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 {QuoteService}
* @memberof StateTabViewtabviewpanel3TabviewpanelBase
*/
public
appEntityService
:
QuoteService
=
new
QuoteService
({
$store
:
this
.
$store
});
/**
* 应用实体名称
*
* @protected
* @type {string}
* @memberof StateTabViewtabviewpanel3TabviewpanelBase
*/
protected
appDeName
:
string
=
'quote'
;
/**
* 导航模式下项是否激活
*
* @type {*}
* @memberof StateTabViewtabviewpanel3
*/
@
Prop
()
public
expActive
!
:
any
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof StateTabViewtabviewpanel3
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof StateTabViewtabviewpanel3
*/
public
getData
():
any
{
return
null
;
}
/**
* 是否被激活
*
* @type {boolean}
* @memberof StateTabViewtabviewpanel3
*/
public
isActivied
:
boolean
=
true
;
/**
* 局部上下文
*
* @type {*}
* @memberof StateTabViewtabviewpanel3
*/
public
localContext
:
any
=
null
;
/**
* 局部视图参数
*
* @type {*}
* @memberof StateTabViewtabviewpanel3
*/
public
localViewParam
:
any
=
null
;
/**
* 传入上下文
*
* @type {string}
* @memberof TabExpViewtabviewpanel
*/
public
viewdata
:
string
=
JSON
.
stringify
(
this
.
context
);
/**
* 传入视图参数
*
* @type {string}
* @memberof PickupViewpickupviewpanel
*/
public
viewparam
:
string
=
JSON
.
stringify
(
this
.
viewparams
);
/**
* 视图面板过滤项
*
* @type {string}
* @memberof StateTabViewtabviewpanel3
*/
public
navfilter
:
string
=
""
;
/**
* vue 生命周期
*
* @returns
* @memberof StateTabViewtabviewpanel3
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof StateTabViewtabviewpanel3
*/
public
afterCreated
(){
this
.
initNavParam
();
if
(
this
.
viewState
)
{
this
.
viewStateEvent
=
this
.
viewState
.
subscribe
(({
tag
,
action
,
data
})
=>
{
if
(
!
Object
.
is
(
tag
,
this
.
name
))
{
return
;
}
this
.
$forceUpdate
();
this
.
initNavParam
();
});
}
}
/**
* 初始化导航参数
*
* @memberof StateTabViewtabviewpanel3
*/
public
initNavParam
(){
if
(
!
Object
.
is
(
this
.
navfilter
,
""
)){
Object
.
assign
(
this
.
viewparams
,{[
this
.
navfilter
]:
this
.
context
[
'majorentity'
]})
}
if
(
this
.
localContext
&&
Object
.
keys
(
this
.
localContext
).
length
>
0
){
let
_context
:
any
=
this
.
$util
.
computedNavData
({},
this
.
context
,
this
.
viewparams
,
this
.
localContext
);
Object
.
assign
(
this
.
context
,
_context
);
}
if
(
this
.
localViewParam
&&
Object
.
keys
(
this
.
localViewParam
).
length
>
0
){
let
_param
:
any
=
this
.
$util
.
computedNavData
({},
this
.
context
,
this
.
viewparams
,
this
.
localViewParam
);
Object
.
assign
(
this
.
viewparams
,
_param
);
}
this
.
viewdata
=
JSON
.
stringify
(
this
.
context
);
this
.
viewparam
=
JSON
.
stringify
(
this
.
viewparams
);
}
/**
* 视图数据变化
*
* @memberof StateTabViewtabviewpanel3
*/
public
viewDatasChange
(
$event
:
any
){
this
.
$emit
(
'viewpanelDatasChange'
,
$event
);
}
/**
* vue 生命周期
*
* @memberof StateTabViewtabviewpanel3
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof StateTabViewtabviewpanel3
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
}
\ No newline at end of file
app_CRM/src/widgets/quote/state-tab-viewtabviewpanel3-tabviewpanel/state-tab-viewtabviewpanel3-tabviewpanel-model.ts
0 → 100644
浏览文件 @
1264699d
/**
* StateTabViewtabviewpanel3 部件模型
*
* @export
* @class StateTabViewtabviewpanel3Model
*/
export
default
class
StateTabViewtabviewpanel3Model
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof StateTabViewtabviewpanel3Model
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'billto_country'
,
},
{
name
:
'onholdtime'
,
},
{
name
:
'willcall'
,
},
{
name
:
'shipto_line1'
,
},
{
name
:
'freighttermscode'
,
},
{
name
:
'statecode'
,
},
{
name
:
'effectivefrom'
,
},
{
name
:
'totalamountlessfreight_base'
,
},
{
name
:
'quotename'
,
},
{
name
:
'totaldiscountamount_base'
,
},
{
name
:
'shipto_postalcode'
,
},
{
name
:
'totalamount'
,
},
{
name
:
'billto_addressid'
,
},
{
name
:
'updateman'
,
},
{
name
:
'createman'
,
},
{
name
:
'totalamount_base'
,
},
{
name
:
'shipto_line2'
,
},
{
name
:
'totallineitemdiscountamount'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'totallineitemamount_base'
,
},
{
name
:
'shipto_contactname'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'shipto_addressid'
,
},
{
name
:
'shipto_name'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'quotenumber'
,
},
{
name
:
'billto_telephone'
,
},
{
name
:
'closedon'
,
},
{
name
:
'freightamount_base'
,
},
{
name
:
'shipto_line3'
,
},
{
name
:
'shippingmethodcode'
,
},
{
name
:
'customeridtype'
,
},
{
name
:
'customerid'
,
},
{
name
:
'effectiveto'
,
},
{
name
:
'shipto_freighttermscode'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'totallineitemamount'
,
},
{
name
:
'shipto_fax'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'emailaddress'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'pricingerrorcode'
,
},
{
name
:
'uniquedscid'
,
},
{
name
:
'contactidyominame'
,
},
{
name
:
'billto_line3'
,
},
{
name
:
'description'
,
},
{
name
:
'accountidyominame'
,
},
{
name
:
'billto_composite'
,
},
{
name
:
'requestdeliveryby'
,
},
{
name
:
'totaltax'
,
},
{
name
:
'quote'
,
prop
:
'quoteid'
,
},
{
name
:
'processid'
,
},
{
name
:
'stageid'
,
},
{
name
:
'createdate'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'shipto_country'
,
},
{
name
:
'expireson'
,
},
{
name
:
'billto_postalcode'
,
},
{
name
:
'billto_line2'
,
},
{
name
:
'billto_name'
,
},
{
name
:
'billto_line1'
,
},
{
name
:
'revisionnumber'
,
},
{
name
:
'billto_contactname'
,
},
{
name
:
'shipto_stateorprovince'
,
},
{
name
:
'billto_city'
,
},
{
name
:
'lastonholdtime'
,
},
{
name
:
'discountpercentage'
,
},
{
name
:
'shipto_city'
,
},
{
name
:
'discountamount'
,
},
{
name
:
'shipto_composite'
,
},
{
name
:
'shipto_telephone'
,
},
{
name
:
'billto_stateorprovince'
,
},
{
name
:
'paymenttermscode'
,
},
{
name
:
'totalamountlessfreight'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'customeridyominame'
,
},
{
name
:
'billto_fax'
,
},
{
name
:
'totaldiscountamount'
,
},
{
name
:
'totaltax_base'
,
},
{
name
:
'discountamount_base'
,
},
{
name
:
'freightamount'
,
},
{
name
:
'slaname'
,
},
{
name
:
'pricelevelid'
,
},
{
name
:
'slaid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'opportunityid'
,
},
{
name
:
'campaignid'
,
},
{
name
:
'pricelevelname'
,
},
{
name
:
'opportunityname'
,
},
{
name
:
'transactioncurrencyname'
,
},
{
name
:
'campaignname'
,
},
]
}
}
\ No newline at end of file
app_CRM/src/widgets/quote/state-tab-viewtabviewpanel3-tabviewpanel/state-tab-viewtabviewpanel3-tabviewpanel-service.ts
0 → 100644
浏览文件 @
1264699d
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* StateTabViewtabviewpanel3 部件服务对象
*
* @export
* @class StateTabViewtabviewpanel3Service
*/
export
default
class
StateTabViewtabviewpanel3Service
extends
ControlService
{
}
\ No newline at end of file
app_CRM/src/widgets/quote/state-tab-viewtabviewpanel3-tabviewpanel/state-tab-viewtabviewpanel3-tabviewpanel.html
0 → 100644
浏览文件 @
1264699d
<div
class=
'tabviewpanel'
v-if=
'isActivied'
>
<quote-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/quote/state-tab-viewtabviewpanel3-tabviewpanel/state-tab-viewtabviewpanel3-tabviewpanel.vue
0 → 100644
浏览文件 @
1264699d
<
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>
app_CRM/src/widgets/quote/state-tab-viewtabviewpanel4-tabviewpanel/state-tab-viewtabviewpanel4-tabviewpanel-base.tsx
0 → 100644
浏览文件 @
1264699d
import
{
Prop
,
Provide
,
Emit
,
Model
}
from
'vue-property-decorator'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
import
{
Watch
,
MainControlBase
}
from
'@/studio-core'
;
import
QuoteService
from
'@/service/quote/quote-service'
;
import
StateTabViewtabviewpanel4Service
from
'./state-tab-viewtabviewpanel4-tabviewpanel-service'
;
/**
* tabviewpanel4部件基类
*
* @export
* @class MainControlBase
* @extends {StateTabViewtabviewpanel4TabviewpanelBase}
*/
export
class
StateTabViewtabviewpanel4TabviewpanelBase
extends
MainControlBase
{
/**
* 获取部件类型
*
* @protected
* @type {string}
* @memberof StateTabViewtabviewpanel4TabviewpanelBase
*/
protected
controlType
:
string
=
'TABVIEWPANEL'
;
/**
* 建构部件服务对象
*
* @type {StateTabViewtabviewpanel4Service}
* @memberof StateTabViewtabviewpanel4TabviewpanelBase
*/
public
service
:
StateTabViewtabviewpanel4Service
=
new
StateTabViewtabviewpanel4Service
({
$store
:
this
.
$store
});
/**
* 实体服务对象
*
* @type {QuoteService}
* @memberof StateTabViewtabviewpanel4TabviewpanelBase
*/
public
appEntityService
:
QuoteService
=
new
QuoteService
({
$store
:
this
.
$store
});
/**
* 应用实体名称
*
* @protected
* @type {string}
* @memberof StateTabViewtabviewpanel4TabviewpanelBase
*/
protected
appDeName
:
string
=
'quote'
;
/**
* 导航模式下项是否激活
*
* @type {*}
* @memberof StateTabViewtabviewpanel4
*/
@
Prop
()
public
expActive
!
:
any
;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof StateTabViewtabviewpanel4
*/
public
getDatas
():
any
[]
{
return
[];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof StateTabViewtabviewpanel4
*/
public
getData
():
any
{
return
null
;
}
/**
* 是否被激活
*
* @type {boolean}
* @memberof StateTabViewtabviewpanel4
*/
public
isActivied
:
boolean
=
true
;
/**
* 局部上下文
*
* @type {*}
* @memberof StateTabViewtabviewpanel4
*/
public
localContext
:
any
=
null
;
/**
* 局部视图参数
*
* @type {*}
* @memberof StateTabViewtabviewpanel4
*/
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 StateTabViewtabviewpanel4
*/
public
navfilter
:
string
=
""
;
/**
* vue 生命周期
*
* @returns
* @memberof StateTabViewtabviewpanel4
*/
public
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof StateTabViewtabviewpanel4
*/
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 StateTabViewtabviewpanel4
*/
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 StateTabViewtabviewpanel4
*/
public
viewDatasChange
(
$event
:
any
){
this
.
$emit
(
'viewpanelDatasChange'
,
$event
);
}
/**
* vue 生命周期
*
* @memberof StateTabViewtabviewpanel4
*/
public
destroyed
()
{
this
.
afterDestroy
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof StateTabViewtabviewpanel4
*/
public
afterDestroy
()
{
if
(
this
.
viewStateEvent
)
{
this
.
viewStateEvent
.
unsubscribe
();
}
}
}
\ No newline at end of file
app_CRM/src/widgets/quote/state-tab-viewtabviewpanel4-tabviewpanel/state-tab-viewtabviewpanel4-tabviewpanel-model.ts
0 → 100644
浏览文件 @
1264699d
/**
* StateTabViewtabviewpanel4 部件模型
*
* @export
* @class StateTabViewtabviewpanel4Model
*/
export
default
class
StateTabViewtabviewpanel4Model
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof StateTabViewtabviewpanel4Model
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'billto_country'
,
},
{
name
:
'onholdtime'
,
},
{
name
:
'willcall'
,
},
{
name
:
'shipto_line1'
,
},
{
name
:
'freighttermscode'
,
},
{
name
:
'statecode'
,
},
{
name
:
'effectivefrom'
,
},
{
name
:
'totalamountlessfreight_base'
,
},
{
name
:
'quotename'
,
},
{
name
:
'totaldiscountamount_base'
,
},
{
name
:
'shipto_postalcode'
,
},
{
name
:
'totalamount'
,
},
{
name
:
'billto_addressid'
,
},
{
name
:
'updateman'
,
},
{
name
:
'createman'
,
},
{
name
:
'totalamount_base'
,
},
{
name
:
'shipto_line2'
,
},
{
name
:
'totallineitemdiscountamount'
,
},
{
name
:
'timezoneruleversionnumber'
,
},
{
name
:
'totallineitemamount_base'
,
},
{
name
:
'shipto_contactname'
,
},
{
name
:
'overriddencreatedon'
,
},
{
name
:
'shipto_addressid'
,
},
{
name
:
'shipto_name'
,
},
{
name
:
'statuscode'
,
},
{
name
:
'quotenumber'
,
},
{
name
:
'billto_telephone'
,
},
{
name
:
'closedon'
,
},
{
name
:
'freightamount_base'
,
},
{
name
:
'shipto_line3'
,
},
{
name
:
'shippingmethodcode'
,
},
{
name
:
'customeridtype'
,
},
{
name
:
'customerid'
,
},
{
name
:
'effectiveto'
,
},
{
name
:
'shipto_freighttermscode'
,
},
{
name
:
'updatedate'
,
},
{
name
:
'totallineitemamount'
,
},
{
name
:
'shipto_fax'
,
},
{
name
:
'ownerid'
,
},
{
name
:
'emailaddress'
,
},
{
name
:
'importsequencenumber'
,
},
{
name
:
'utcconversiontimezonecode'
,
},
{
name
:
'pricingerrorcode'
,
},
{
name
:
'uniquedscid'
,
},
{
name
:
'contactidyominame'
,
},
{
name
:
'billto_line3'
,
},
{
name
:
'description'
,
},
{
name
:
'accountidyominame'
,
},
{
name
:
'billto_composite'
,
},
{
name
:
'requestdeliveryby'
,
},
{
name
:
'totaltax'
,
},
{
name
:
'quote'
,
prop
:
'quoteid'
,
},
{
name
:
'processid'
,
},
{
name
:
'stageid'
,
},
{
name
:
'createdate'
,
},
{
name
:
'exchangerate'
,
},
{
name
:
'owneridyominame'
,
},
{
name
:
'owneridtype'
,
},
{
name
:
'versionnumber'
,
},
{
name
:
'shipto_country'
,
},
{
name
:
'expireson'
,
},
{
name
:
'billto_postalcode'
,
},
{
name
:
'billto_line2'
,
},
{
name
:
'billto_name'
,
},
{
name
:
'billto_line1'
,
},
{
name
:
'revisionnumber'
,
},
{
name
:
'billto_contactname'
,
},
{
name
:
'shipto_stateorprovince'
,
},
{
name
:
'billto_city'
,
},
{
name
:
'lastonholdtime'
,
},
{
name
:
'discountpercentage'
,
},
{
name
:
'shipto_city'
,
},
{
name
:
'discountamount'
,
},
{
name
:
'shipto_composite'
,
},
{
name
:
'shipto_telephone'
,
},
{
name
:
'billto_stateorprovince'
,
},
{
name
:
'paymenttermscode'
,
},
{
name
:
'totalamountlessfreight'
,
},
{
name
:
'traversedpath'
,
},
{
name
:
'customeridyominame'
,
},
{
name
:
'billto_fax'
,
},
{
name
:
'totaldiscountamount'
,
},
{
name
:
'totaltax_base'
,
},
{
name
:
'discountamount_base'
,
},
{
name
:
'freightamount'
,
},
{
name
:
'slaname'
,
},
{
name
:
'pricelevelid'
,
},
{
name
:
'slaid'
,
},
{
name
:
'transactioncurrencyid'
,
},
{
name
:
'opportunityid'
,
},
{
name
:
'campaignid'
,
},
{
name
:
'pricelevelname'
,
},
{
name
:
'opportunityname'
,
},
{
name
:
'transactioncurrencyname'
,
},
{
name
:
'campaignname'
,
},
]
}
}
\ No newline at end of file
app_CRM/src/widgets/quote/state-tab-viewtabviewpanel4-tabviewpanel/state-tab-viewtabviewpanel4-tabviewpanel-service.ts
0 → 100644
浏览文件 @
1264699d
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* StateTabViewtabviewpanel4 部件服务对象
*
* @export
* @class StateTabViewtabviewpanel4Service
*/
export
default
class
StateTabViewtabviewpanel4Service
extends
ControlService
{
}
\ No newline at end of file
app_CRM/src/widgets/quote/state-tab-viewtabviewpanel4-tabviewpanel/state-tab-viewtabviewpanel4-tabviewpanel.html
0 → 100644
浏览文件 @
1264699d
<div
class=
'tabviewpanel'
v-if=
'isActivied'
>
<quote-closed-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/quote/state-tab-viewtabviewpanel4-tabviewpanel/state-tab-viewtabviewpanel4-tabviewpanel.vue
0 → 100644
浏览文件 @
1264699d
<
template
src=
"./state-tab-viewtabviewpanel4-tabviewpanel.html"
/>
<script
lang=
'tsx'
>
import
{ Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { StateTabViewtabviewpanel4TabviewpanelBase } from './state-tab-viewtabviewpanel4-tabviewpanel-base';
/**
* tabviewpanel4部件
*
* @export
* @class StateTabViewtabviewpanel4Tabviewpanel
* @extends {StateTabViewtabviewpanel4TabviewpanelBase}
*/
@Component({
components: {
}
})
@VueLifeCycleProcessing()
export default class StateTabViewtabviewpanel4Tabviewpanel extends StateTabViewtabviewpanel4TabviewpanelBase { }
</script>
businesscentral-core/src/main/resources/liquibase/h2_table.xml
浏览文件 @
1264699d
...
...
@@ -8527,7 +8527,7 @@
<!--输出实体[QUOTE]数据结构 -->
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"tab-quote-1
08
-98"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"tab-quote-1
12
-98"
>
<createTable
tableName=
"QUOTE"
>
<column
name=
"BILLTO_COUNTRY"
remarks=
""
type=
"VARCHAR(80)"
>
</column>
...
...
@@ -11735,19 +11735,19 @@
<addForeignKeyConstraint
baseColumnNames=
"TRANSACTIONCURRENCYID"
baseTableName=
"QUEUEITEM"
constraintName=
"DER1N_QUEUEITEM__TRANSACTIONCU"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"TRANSACTIONCURRENCYID"
referencedTableName=
"TRANSACTIONCURRENCY"
validate=
"true"
/>
</changeSet>
<!--输出实体[QUOTE]外键关系 -->
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-quote-1
08
-369"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-quote-1
12
-369"
>
<addForeignKeyConstraint
baseColumnNames=
"CAMPAIGNID"
baseTableName=
"QUOTE"
constraintName=
"DER1N_QUOTE__CAMPAIGN__CAMPAIG"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"CAMPAIGNID"
referencedTableName=
"CAMPAIGN"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-quote-1
08
-370"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-quote-1
12
-370"
>
<addForeignKeyConstraint
baseColumnNames=
"OPPORTUNITYID"
baseTableName=
"QUOTE"
constraintName=
"DER1N_QUOTE__OPPORTUNITY__OPPO"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"OPPORTUNITYID"
referencedTableName=
"OPPORTUNITY"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-quote-1
08
-371"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-quote-1
12
-371"
>
<addForeignKeyConstraint
baseColumnNames=
"PRICELEVELID"
baseTableName=
"QUOTE"
constraintName=
"DER1N_QUOTE__PRICELEVEL__PRICE"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"PRICELEVELID"
referencedTableName=
"PRICELEVEL"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-quote-1
08
-372"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-quote-1
12
-372"
>
<addForeignKeyConstraint
baseColumnNames=
"SLAID"
baseTableName=
"QUOTE"
constraintName=
"DER1N_QUOTE__SLA__SLAID"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"SLAID"
referencedTableName=
"SLA"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-quote-1
08
-373"
>
<changeSet
author=
"a_LAB01_e85d8801c"
id=
"fk-quote-1
12
-373"
>
<addForeignKeyConstraint
baseColumnNames=
"TRANSACTIONCURRENCYID"
baseTableName=
"QUOTE"
constraintName=
"DER1N_QUOTE__TRANSACTIONCURREN"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"TRANSACTIONCURRENCYID"
referencedTableName=
"TRANSACTIONCURRENCY"
validate=
"true"
/>
</changeSet>
<!--输出实体[QUOTECLOSE]外键关系 -->
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录