Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
iBiz企业中心
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz企业套件
iBiz企业中心
提交
10870d68
提交
10870d68
编写于
6月 22, 2020
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
lab_gzf 发布系统代码
上级
6d526df9
变更
51
展开全部
隐藏空白字符变更
内嵌
并排
正在显示
51 个修改的文件
包含
3766 行增加
和
168 行删除
+3766
-168
view-config.json
app_CRM/public/assets/json/view-config.json
+30
-0
contact_en_US.ts
app_CRM/src/locale/lanres/entities/contact/contact_en_US.ts
+5
-0
contact_zh_CN.ts
app_CRM/src/locale/lanres/entities/contact/contact_zh_CN.ts
+5
-0
lead_en_US.ts
app_CRM/src/locale/lanres/entities/lead/lead_en_US.ts
+47
-1
lead_zh_CN.ts
app_CRM/src/locale/lanres/entities/lead/lead_zh_CN.ts
+47
-1
opportunity_en_US.ts
...c/locale/lanres/entities/opportunity/opportunity_en_US.ts
+53
-3
opportunity_zh_CN.ts
...c/locale/lanres/entities/opportunity/opportunity_zh_CN.ts
+53
-3
viewconfig.ts
app_CRM/src/mock/viewconfig/viewconfig.ts
+24
-0
lead-con-lead-grid-view-base.vue
.../lead-con-lead-grid-view/lead-con-lead-grid-view-base.vue
+745
-0
lead-con-lead-grid-view.less
...ales/lead-con-lead-grid-view/lead-con-lead-grid-view.less
+8
-0
lead-con-lead-grid-view.vue
...sales/lead-con-lead-grid-view/lead-con-lead-grid-view.vue
+21
-0
opportunity-info-product-base.vue
...pportunity-info-product/opportunity-info-product-base.vue
+0
-3
opportunity-info-base.vue
...rc/pages/sales/opportunity-info/opportunity-info-base.vue
+0
-3
opportunity-list-exp-view-base.vue
...ortunity-list-exp-view/opportunity-list-exp-view-base.vue
+207
-0
opportunity-list-exp-view.less
.../opportunity-list-exp-view/opportunity-list-exp-view.less
+6
-0
opportunity-list-exp-view.vue
...s/opportunity-list-exp-view/opportunity-list-exp-view.vue
+19
-0
opportunity-product-opp-opp-pro-grid-view-base.vue
...d-view/opportunity-product-opp-opp-pro-grid-view-base.vue
+0
-3
page-register.ts
app_CRM/src/pages/ungroup/central/page-register.ts
+6
-4
router.ts
app_CRM/src/pages/ungroup/central/router.ts
+251
-90
state.ts
app_CRM/src/store/modules/view-action/state.ts
+25
-14
lead-ui-service-base.ts
app_CRM/src/uiservice/lead/lead-ui-service-base.ts
+1
-0
opportunity-ui-service-base.ts
.../src/uiservice/opportunity/opportunity-ui-service-base.ts
+2
-0
central-appmenu-base.vue
.../src/widgets/app/central-appmenu/central-appmenu-base.vue
+1
-1
central-appmenu-model.ts
.../src/widgets/app/central-appmenu/central-appmenu-model.ts
+4
-4
abstract-edit-form-base.vue
...ts/contact/abstract-edit-form/abstract-edit-form-base.vue
+71
-0
abstract-edit-form-model.ts
...ts/contact/abstract-edit-form/abstract-edit-form-model.ts
+10
-0
abstract-edit-form-service.ts
.../contact/abstract-edit-form/abstract-edit-form-service.ts
+12
-0
abstract-info-form-base.vue
...ts/contact/abstract-info-form/abstract-info-form-base.vue
+29
-0
abstract-info-form-model.ts
...ts/contact/abstract-info-form/abstract-info-form-model.ts
+5
-0
infotabviewpanel2-tabviewpanel-base.vue
...nel2-tabviewpanel/infotabviewpanel2-tabviewpanel-base.vue
+2
-2
infotabviewpanel3-tabviewpanel-base.vue
...nel3-tabviewpanel/infotabviewpanel3-tabviewpanel-base.vue
+2
-2
quick-create-form-base.vue
...gets/contact/quick-create-form/quick-create-form-base.vue
+71
-0
quick-create-form-model.ts
...gets/contact/quick-create-form/quick-create-form-model.ts
+10
-0
quick-create-form-service.ts
...ts/contact/quick-create-form/quick-create-form-service.ts
+12
-0
list-exp-viewlistexpbar-listexpbar-base.vue
...ar-listexpbar/list-exp-viewlistexpbar-listexpbar-base.vue
+504
-0
list-exp-viewlistexpbar-listexpbar-model.ts
...ar-listexpbar/list-exp-viewlistexpbar-listexpbar-model.ts
+21
-0
list-exp-viewlistexpbar-listexpbar-service.ts
...-listexpbar/list-exp-viewlistexpbar-listexpbar-service.ts
+44
-0
list-exp-viewlistexpbar-listexpbar.less
...expbar-listexpbar/list-exp-viewlistexpbar-listexpbar.less
+4
-0
list-exp-viewlistexpbar-listexpbar.vue
...texpbar-listexpbar/list-exp-viewlistexpbar-listexpbar.vue
+16
-0
list-list-base.vue
app_CRM/src/widgets/opportunity/list-list/list-list-base.vue
+599
-0
list-list-model.ts
app_CRM/src/widgets/opportunity/list-list/list-list-model.ts
+51
-0
list-list-service.ts
...RM/src/widgets/opportunity/list-list/list-list-service.ts
+104
-0
list-list.less
app_CRM/src/widgets/opportunity/list-list/list-list.less
+4
-0
list-list.vue
app_CRM/src/widgets/opportunity/list-list/list-list.vue
+16
-0
panel-panel-base.vue
.../src/widgets/opportunity/panel-panel/panel-panel-base.vue
+514
-0
panel-panel-model.ts
.../src/widgets/opportunity/panel-panel/panel-panel-model.ts
+31
-0
panel-panel-service.ts
...rc/widgets/opportunity/panel-panel/panel-panel-service.ts
+11
-0
panel-panel.less
app_CRM/src/widgets/opportunity/panel-panel/panel-panel.less
+15
-0
panel-panel.vue
app_CRM/src/widgets/opportunity/panel-panel/panel-panel.vue
+14
-0
product-info-form-base.vue
.../opportunity/product-info-form/product-info-form-base.vue
+4
-4
h2_table.xml
...esscentral-core/src/main/resources/liquibase/h2_table.xml
+30
-30
未找到文件。
app_CRM/public/assets/json/view-config.json
浏览文件 @
10870d68
...
...
@@ -509,6 +509,16 @@
"viewtag"
:
"49e5e89fb51fa9929925b532841b2549"
,
"memo"
:
""
},
"opportunityconoppgridview"
:
{
"title"
:
"商机表格视图"
,
"caption"
:
"商机信息"
,
"viewtype"
:
"DEGRIDVIEW"
,
"viewmodule"
:
"Sales"
,
"viewname"
:
"OpportunityConOppGridView"
,
"viewfilename"
:
"opportunity-con-opp-grid-view"
,
"viewtag"
:
"50138c2b066081ec8b6fe67c88af5371"
,
"memo"
:
"系统自动添加"
},
"campaignsummary_head"
:
{
"title"
:
"市场活动概览"
,
"caption"
:
"市场活动概览"
,
...
...
@@ -719,6 +729,16 @@
"viewtag"
:
"6e866e05730d8c3e03f150a33225307d"
,
"memo"
:
"系统自动添加"
},
"leadconleadgridview"
:
{
"title"
:
"潜在顾客信息"
,
"caption"
:
"潜在顾客信息"
,
"viewtype"
:
"DEGRIDVIEW"
,
"viewmodule"
:
"Sales"
,
"viewname"
:
"LeadConLeadGridView"
,
"viewfilename"
:
"lead-con-lead-grid-view"
,
"viewtag"
:
"6f35f461b53398775ff2f1a563776fa3"
,
"memo"
:
"系统自动添加"
},
"accountinnerpickupgridview"
:
{
"title"
:
"客户选择表格视图"
,
"caption"
:
"客户"
,
...
...
@@ -1009,6 +1029,16 @@
"viewtag"
:
"9bf80730e83a74615919a0f0907505d4"
,
"memo"
:
""
},
"opportunitylistexpview"
:
{
"title"
:
"商机列表导航视图"
,
"caption"
:
"商机信息"
,
"viewtype"
:
"DELISTEXPVIEW"
,
"viewmodule"
:
"Sales"
,
"viewname"
:
"OpportunityListExpView"
,
"viewfilename"
:
"opportunity-list-exp-view"
,
"viewtag"
:
"9f92696f8eeec188f5ea674b925df275"
,
"memo"
:
""
},
"ibizlistsummary"
:
{
"title"
:
"市场营销列表概览"
,
"caption"
:
"市场营销列表概览"
,
...
...
app_CRM/src/locale/lanres/entities/contact/contact_en_US.ts
浏览文件 @
10870d68
...
...
@@ -292,10 +292,12 @@ export default {
srfsourcekey
:
""
,
fullname
:
"全名"
,
jobtitle
:
"职务"
,
customername
:
"客户"
,
emailaddress1
:
"电子邮件"
,
telephone1
:
"商务电话"
,
mobilephone
:
"移动电话"
,
fax
:
"传真"
,
customerid
:
"客户"
,
contactid
:
"联系人"
,
},
uiactions
:
{
...
...
@@ -316,6 +318,7 @@ export default {
srfsourcekey
:
""
,
fullname
:
"全名"
,
jobtitle
:
"职务"
,
customername
:
"客户"
,
emailaddress1
:
"电子邮件"
,
telephone1
:
"商务电话"
,
mobilephone
:
"移动电话"
,
...
...
@@ -325,6 +328,7 @@ export default {
address1_city
:
"市/县"
,
address1_line1
:
"街道"
,
address1_postalcode
:
"邮政编码"
,
customerid
:
"客户"
,
contactid
:
"联系人"
,
},
uiactions
:
{
...
...
@@ -344,6 +348,7 @@ export default {
srfsourcekey
:
""
,
fullname
:
"全名"
,
jobtitle
:
"职务"
,
customername
:
"客户"
,
emailaddress1
:
"电子邮件"
,
telephone1
:
"商务电话"
,
mobilephone
:
"移动电话"
,
...
...
app_CRM/src/locale/lanres/entities/contact/contact_zh_CN.ts
浏览文件 @
10870d68
...
...
@@ -291,10 +291,12 @@ export default {
srfsourcekey
:
''
,
fullname
:
'全名'
,
jobtitle
:
'职务'
,
customername
:
'客户'
,
emailaddress1
:
'电子邮件'
,
telephone1
:
'商务电话'
,
mobilephone
:
'移动电话'
,
fax
:
'传真'
,
customerid
:
'客户'
,
contactid
:
'联系人'
,
},
uiactions
:
{
...
...
@@ -315,6 +317,7 @@ export default {
srfsourcekey
:
''
,
fullname
:
'全名'
,
jobtitle
:
'职务'
,
customername
:
'客户'
,
emailaddress1
:
'电子邮件'
,
telephone1
:
'商务电话'
,
mobilephone
:
'移动电话'
,
...
...
@@ -324,6 +327,7 @@ export default {
address1_city
:
'市/县'
,
address1_line1
:
'街道'
,
address1_postalcode
:
'邮政编码'
,
customerid
:
'客户'
,
contactid
:
'联系人'
,
},
uiactions
:
{
...
...
@@ -343,6 +347,7 @@ export default {
srfsourcekey
:
''
,
fullname
:
'全名'
,
jobtitle
:
'职务'
,
customername
:
'客户'
,
emailaddress1
:
'电子邮件'
,
telephone1
:
'商务电话'
,
mobilephone
:
'移动电话'
,
...
...
app_CRM/src/locale/lanres/entities/lead/lead_en_US.ts
浏览文件 @
10870d68
...
...
@@ -181,6 +181,10 @@ export default {
info_market
:
{
caption
:
"潜在顾客"
,
title
:
'潜在顾客编辑视图'
,
},
conleadgridview
:
{
caption
:
"潜在顾客信息"
,
title
:
'潜在顾客信息'
,
},
info_contact
:
{
caption
:
"潜在顾客"
,
...
...
@@ -363,7 +367,7 @@ export default {
uiactions
:
{
},
},
gridviewtoolbar_toolbar
:
{
conlead
gridviewtoolbar_toolbar
:
{
tbitem1_openquickcreateview
:
{
caption
:
"新建"
,
tip
:
"新建"
,
...
...
@@ -467,6 +471,48 @@ export default {
tip
:
"关闭"
,
},
},
gridviewtoolbar_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"
,
},
},
editviewtoolbar_toolbar
:
{
tbitem3
:
{
caption
:
"Save"
,
...
...
app_CRM/src/locale/lanres/entities/lead/lead_zh_CN.ts
浏览文件 @
10870d68
...
...
@@ -180,6 +180,10 @@ export default {
info_market
:
{
caption
:
'潜在顾客'
,
title
:
'潜在顾客编辑视图'
,
},
conleadgridview
:
{
caption
:
'潜在顾客信息'
,
title
:
'潜在顾客信息'
,
},
info_contact
:
{
caption
:
'潜在顾客'
,
...
...
@@ -362,7 +366,7 @@ export default {
uiactions
:
{
},
},
gridviewtoolbar_toolbar
:
{
conlead
gridviewtoolbar_toolbar
:
{
tbitem1_openquickcreateview
:
{
caption
:
'新建'
,
tip
:
'新建'
,
...
...
@@ -466,6 +470,48 @@ export default {
tip
:
'关闭'
,
},
},
gridviewtoolbar_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
:
'过滤'
,
},
},
editviewtoolbar_toolbar
:
{
tbitem3
:
{
caption
:
'保存'
,
...
...
app_CRM/src/locale/lanres/entities/opportunity/opportunity_en_US.ts
浏览文件 @
10870d68
...
...
@@ -117,6 +117,10 @@ export default {
summary
:
{
caption
:
"商机概览"
,
title
:
'商机概览'
,
},
conoppgridview
:
{
caption
:
"商机信息"
,
title
:
'商机表格视图'
,
},
gridview
:
{
caption
:
"商机信息"
,
...
...
@@ -145,6 +149,10 @@ export default {
oppprodashboardview
:
{
caption
:
"商机"
,
title
:
'商机数据看板视图'
,
},
listexpview
:
{
caption
:
"商机信息"
,
title
:
'商机列表导航视图'
,
},
quickcreate
:
{
caption
:
"快速新建"
,
...
...
@@ -184,9 +192,9 @@ export default {
},
productinfo_form
:
{
details
:
{
group1
:
"
商机基本
信息"
,
group1
:
"
价目表
信息"
,
druipart1
:
""
,
grouppanel1
:
"
分组面板
"
,
grouppanel1
:
"
产品明细信息
"
,
formpage1
:
"基本信息"
,
srfupdatedate
:
"更新时间"
,
srforikey
:
""
,
...
...
@@ -276,7 +284,7 @@ export default {
uiactions
:
{
},
},
gridviewtoolbar_toolbar
:
{
conopp
gridviewtoolbar_toolbar
:
{
tbitem1_openquickcreateview
:
{
caption
:
"新建"
,
tip
:
"新建"
,
...
...
@@ -360,6 +368,48 @@ export default {
tip
:
"关闭"
,
},
},
gridviewtoolbar_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"
,
},
},
editviewtoolbar_toolbar
:
{
tbitem3
:
{
caption
:
"Save"
,
...
...
app_CRM/src/locale/lanres/entities/opportunity/opportunity_zh_CN.ts
浏览文件 @
10870d68
...
...
@@ -116,6 +116,10 @@ export default {
summary
:
{
caption
:
'商机概览'
,
title
:
'商机概览'
,
},
conoppgridview
:
{
caption
:
'商机信息'
,
title
:
'商机表格视图'
,
},
gridview
:
{
caption
:
'商机信息'
,
...
...
@@ -144,6 +148,10 @@ export default {
oppprodashboardview
:
{
caption
:
'商机'
,
title
:
'商机数据看板视图'
,
},
listexpview
:
{
caption
:
'商机信息'
,
title
:
'商机列表导航视图'
,
},
quickcreate
:
{
caption
:
'快速新建'
,
...
...
@@ -183,9 +191,9 @@ export default {
},
productinfo_form
:
{
details
:
{
group1
:
'
商机基本
信息'
,
group1
:
'
价目表
信息'
,
druipart1
:
''
,
grouppanel1
:
'
分组面板
'
,
grouppanel1
:
'
产品明细信息
'
,
formpage1
:
'基本信息'
,
srfupdatedate
:
'更新时间'
,
srforikey
:
''
,
...
...
@@ -275,7 +283,7 @@ export default {
uiactions
:
{
},
},
gridviewtoolbar_toolbar
:
{
conopp
gridviewtoolbar_toolbar
:
{
tbitem1_openquickcreateview
:
{
caption
:
'新建'
,
tip
:
'新建'
,
...
...
@@ -359,6 +367,48 @@ export default {
tip
:
'关闭'
,
},
},
gridviewtoolbar_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
:
'过滤'
,
},
},
editviewtoolbar_toolbar
:
{
tbitem3
:
{
caption
:
'保存'
,
...
...
app_CRM/src/mock/viewconfig/viewconfig.ts
浏览文件 @
10870d68
...
...
@@ -415,6 +415,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname"
:
"LeadInfo_Market"
,
"viewtag"
:
"49e5e89fb51fa9929925b532841b2549"
},
"opportunityconoppgridview"
:
{
"title"
:
"商机表格视图"
,
"caption"
:
"商机信息"
,
"viewtype"
:
"DEGRIDVIEW"
,
"viewmodule"
:
"Sales"
,
"viewname"
:
"OpportunityConOppGridView"
,
"viewtag"
:
"50138c2b066081ec8b6fe67c88af5371"
},
"campaignsummary_head"
:
{
"title"
:
"市场活动概览"
,
"caption"
:
"市场活动概览"
,
...
...
@@ -583,6 +591,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname"
:
"OpportunityPickupGridView"
,
"viewtag"
:
"6e866e05730d8c3e03f150a33225307d"
},
"leadconleadgridview"
:
{
"title"
:
"潜在顾客信息"
,
"caption"
:
"潜在顾客信息"
,
"viewtype"
:
"DEGRIDVIEW"
,
"viewmodule"
:
"Sales"
,
"viewname"
:
"LeadConLeadGridView"
,
"viewtag"
:
"6f35f461b53398775ff2f1a563776fa3"
},
"accountinnerpickupgridview"
:
{
"title"
:
"客户选择表格视图"
,
"caption"
:
"客户"
,
...
...
@@ -815,6 +831,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname"
:
"CompetitorSummary"
,
"viewtag"
:
"9bf80730e83a74615919a0f0907505d4"
},
"opportunitylistexpview"
:
{
"title"
:
"商机列表导航视图"
,
"caption"
:
"商机信息"
,
"viewtype"
:
"DELISTEXPVIEW"
,
"viewmodule"
:
"Sales"
,
"viewname"
:
"OpportunityListExpView"
,
"viewtag"
:
"9f92696f8eeec188f5ea674b925df275"
},
"ibizlistsummary"
:
{
"title"
:
"市场营销列表概览"
,
"caption"
:
"市场营销列表概览"
,
...
...
app_CRM/src/pages/sales/lead-con-lead-grid-view/lead-con-lead-grid-view-base.vue
0 → 100644
浏览文件 @
10870d68
此差异已折叠。
点击以展开。
app_CRM/src/pages/sales/lead-con-lead-grid-view/lead-con-lead-grid-view.less
0 → 100644
浏览文件 @
10870d68
// 避免空文件,后台不让空文件过
.lead-con-lead-grid-view {
--lead-con-lead-grid-view: 0;
}
// 视图样式
// this is less
app_CRM/src/pages/sales/lead-con-lead-grid-view/lead-con-lead-grid-view.vue
0 → 100644
浏览文件 @
10870d68
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
LeadConLeadGridViewBase
from
'./lead-con-lead-grid-view-base.vue'
;
import
view_grid
from
'@widgets/lead/main-grid/main-grid.vue'
;
import
view_searchform
from
'@widgets/lead/default-searchform/default-searchform.vue'
;
@
Component
({
components
:
{
view_grid
,
view_searchform
,
},
beforeRouteEnter
:
(
to
:
any
,
from
:
any
,
next
:
any
)
=>
{
next
((
vm
:
any
)
=>
{
vm
.
$store
.
commit
(
'addCurPageViewtag'
,
{
route
:
to
,
viewtag
:
vm
.
viewtag
});
});
},
})
export
default
class
LeadConLeadGridView
extends
LeadConLeadGridViewBase
{
}
</
script
>
\ No newline at end of file
app_CRM/src/pages/sales/opportunity-info-product/opportunity-info-product-base.vue
浏览文件 @
10870d68
<
template
>
<studio-view-style2
viewName=
"opportunityinfo_product"
viewTitle=
"商机编辑视图"
class=
'deeditview opportunity-info-product'
>
<template
slot=
'title'
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srfTitle
)
}}
</span>
</
template
>
<view
_form
:viewState=
"viewState"
:viewparams=
"viewparams"
...
...
app_CRM/src/pages/sales/opportunity-info/opportunity-info-base.vue
浏览文件 @
10870d68
<
template
>
<studio-view-style2
viewName=
"opportunityinfo"
viewTitle=
"商机信息"
class=
'detabexpview opportunity-info'
>
<template
slot=
'title'
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srfTitle
)
}}
</span>
</
template
>
<template
slot=
"toolbar"
>
<view-toolbar
mode=
"STYLE2"
:model=
"toolBarModels"
@
item-click=
"toolbar_click"
/>
</
template
>
<view
_tabexppanel
...
...
app_CRM/src/pages/sales/opportunity-list-exp-view/opportunity-list-exp-view-base.vue
0 → 100644
浏览文件 @
10870d68
<
template
>
<studio-view-style2
viewName=
"opportunitylistexpview"
viewTitle=
"商机列表导航视图"
class=
'delistexpview opportunity-list-exp-view'
>
<template
slot=
'title'
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srfTitle
)
}}
</span>
</
template
>
<view
_listexpbar
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:showBusyIndicator=
"true"
:viewUID=
"viewUID"
:newdata=
"newdata"
:opendata=
"opendata"
name=
"listexpbar"
ref=
'listexpbar'
@
selectionchange=
"listexpbar_selectionchange($event)"
@
activated=
"listexpbar_activated($event)"
@
load=
"listexpbar_load($event)"
@
closeview=
"closeView($event)"
>
</view
_listexpbar
>
</studio-view-style2>
</template>
<
script
lang=
'tsx'
>
import
{
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
Subject
}
from
'rxjs'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
{
VueLifeCycleProcessing
,
ListExpViewBase
}
from
'@/studio-core'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
ListExpViewEngine
from
'@engine/view/list-exp-view-engine'
;
/**
* 商机列表导航视图视图基类
*
* @export
* @class OpportunityListExpViewBase
* @extends {ListExpViewBase}
*/
@
Component
({})
@
VueLifeCycleProcessing
()
export
default
class
OpportunityListExpViewBase
extends
ListExpViewBase
{
/**
* 实体服务对象
*
* @type {OpportunityService}
* @memberof OpportunityListExpViewBase
*/
protected
appEntityService
:
OpportunityService
=
new
OpportunityService
;
/**
* 计数器服务对象集合
*
* @protected
* @type {Array<*>}
* @memberof OpportunityListExpViewBase
*/
protected
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 自定义视图导航上下文集合
*
* @protected
* @type {*}
* @memberof OpportunityListExpViewBase
*/
protected
customViewNavContexts
:
any
=
{
};
/**
* 自定义视图导航参数集合
*
* @protected
* @type {*}
* @memberof OpportunityListExpViewBase
*/
protected
customViewParams
:
any
=
{
};
/**
* 视图模型数据
*
* @protected
* @type {*}
* @memberof OpportunityListExpViewBase
*/
protected
model
:
any
=
{
srfCaption
:
'entities.opportunity.views.listexpview.caption'
,
srfTitle
:
'entities.opportunity.views.listexpview.title'
,
srfSubTitle
:
'entities.opportunity.views.listexpview.subtitle'
,
dataInfo
:
''
}
/**
* 容器模型
*
* @protected
* @type {*}
* @memberof OpportunityListExpViewBase
*/
protected
containerModel
:
any
=
{
view_listexpbar
:
{
name
:
'listexpbar'
,
type
:
'LISTEXPBAR'
},
};
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof OpportunityListExpViewBase
*/
public
engine
:
ListExpViewEngine
=
new
ListExpViewEngine
();
/**
* 引擎初始化
*
* @public
* @memberof OpportunityListExpViewBase
*/
public
engineInit
():
void
{
this
.
engine
.
init
({
view
:
this
,
listexpbar
:
this
.
$refs
.
listexpbar
,
keyPSDEField
:
'opportunity'
,
majorPSDEField
:
'opportunityname'
,
isLoadDefault
:
true
,
});
}
/**
* listexpbar 部件 selectionchange 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityListExpViewBase
*/
public
listexpbar_selectionchange
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'listexpbar'
,
'selectionchange'
,
$event
);
}
/**
* listexpbar 部件 activated 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityListExpViewBase
*/
public
listexpbar_activated
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'listexpbar'
,
'activated'
,
$event
);
}
/**
* listexpbar 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof OpportunityListExpViewBase
*/
public
listexpbar_load
(
$event
:
any
,
$event2
?:
any
):
void
{
this
.
engine
.
onCtrlEvent
(
'listexpbar'
,
'load'
,
$event
);
}
/**
* 打开新建数据视图
*
* @param {any[]} args
* @param {*} [params]
* @param {*} [fullargs]
* @param {*} [$event]
* @param {*} [xData]
* @memberof OpportunityListExpView
*/
public
newdata
(
args
:
any
[],
fullargs
?:
any
[],
params
?:
any
,
$event
?:
any
,
xData
?:
any
)
{
let
localContext
:
any
=
null
;
let
localViewParam
:
any
=
null
;
this
.
$Notice
.
warning
({
title
:
'错误'
,
desc
:
'未指定关系视图'
});
}
/**
* 打开编辑数据视图
*
* @param {any[]} args
* @param {*} [params]
* @param {*} [fullargs]
* @param {*} [$event]
* @param {*} [xData]
* @memberof OpportunityListExpView
*/
public
opendata
(
args
:
any
[],
fullargs
?:
any
[],
params
?:
any
,
$event
?:
any
,
xData
?:
any
)
{
let
localContext
:
any
=
null
;
let
localViewParam
:
any
=
null
;
this
.
$Notice
.
warning
({
title
:
'错误'
,
desc
:
'未指定关系视图'
});
}
}
</
script
>
<
style
lang=
'less'
>
@import './opportunity-list-exp-view.less';
</
style
>
\ No newline at end of file
app_CRM/src/pages/sales/opportunity-list-exp-view/opportunity-list-exp-view.less
0 → 100644
浏览文件 @
10870d68
// 避免空文件,后台不让空文件过
.opportunity-list-exp-view {
--opportunity-list-exp-view: 0;
}
app_CRM/src/pages/sales/opportunity-list-exp-view/opportunity-list-exp-view.vue
0 → 100644
浏览文件 @
10870d68
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
OpportunityListExpViewBase
from
'./opportunity-list-exp-view-base.vue'
;
import
view_listexpbar
from
'@widgets/opportunity/list-exp-viewlistexpbar-listexpbar/list-exp-viewlistexpbar-listexpbar.vue'
;
@
Component
({
components
:
{
view_listexpbar
,
},
beforeRouteEnter
:
(
to
:
any
,
from
:
any
,
next
:
any
)
=>
{
next
((
vm
:
any
)
=>
{
vm
.
$store
.
commit
(
'addCurPageViewtag'
,
{
route
:
to
,
viewtag
:
vm
.
viewtag
});
});
},
})
export
default
class
OpportunityListExpView
extends
OpportunityListExpViewBase
{
}
</
script
>
\ No newline at end of file
app_CRM/src/pages/sales/opportunity-product-opp-opp-pro-grid-view/opportunity-product-opp-opp-pro-grid-view-base.vue
浏览文件 @
10870d68
<
template
>
<studio-view-style2
viewName=
"opportunityproductopp_oppprogridview"
viewTitle=
"商机产品表格视图"
class=
'degridview opportunity-product-opp-opp-pro-grid-view'
>
<template
slot=
'title'
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srfTitle
)
}}
</span>
</
template
>
<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"
/>
</
template
>
...
...
app_CRM/src/pages/ungroup/central/page-register.ts
浏览文件 @
10870d68
...
...
@@ -17,9 +17,9 @@ export const PageComponents = {
Vue
.
component
(
'opportunity-competitor-opp-comp-grid-view'
,
()
=>
import
(
'@pages/sales/opportunity-competitor-opp-comp-grid-view/opportunity-competitor-opp-comp-grid-view.vue'
));
Vue
.
component
(
'contact-info-person'
,
()
=>
import
(
'@pages/base/contact-info-person/contact-info-person.vue'
));
Vue
.
component
(
'campaign-info-schedule'
,
()
=>
import
(
'@pages/marketing/campaign-info-schedule/campaign-info-schedule.vue'
));
Vue
.
component
(
'opportunity-grid-view'
,
()
=>
import
(
'@pages/sales/opportunity-grid-view/opportunity-grid-view.vue'
));
Vue
.
component
(
'letter-edit-view'
,
()
=>
import
(
'@pages/base/letter-edit-view/letter-edit-view.vue'
));
Vue
.
component
(
'lead-con-lead-grid-view'
,
()
=>
import
(
'@pages/sales/lead-con-lead-grid-view/lead-con-lead-grid-view.vue'
));
Vue
.
component
(
'goal-edit-view'
,
()
=>
import
(
'@pages/sales/goal-edit-view/goal-edit-view.vue'
));
Vue
.
component
(
'letter-edit-view'
,
()
=>
import
(
'@pages/base/letter-edit-view/letter-edit-view.vue'
));
Vue
.
component
(
'transaction-currency-pickup-view'
,
()
=>
import
(
'@pages/base/transaction-currency-pickup-view/transaction-currency-pickup-view.vue'
));
Vue
.
component
(
'opportunity-product-edit-view'
,
()
=>
import
(
'@pages/sales/opportunity-product-edit-view/opportunity-product-edit-view.vue'
));
Vue
.
component
(
'email-edit-view'
,
()
=>
import
(
'@pages/base/email-edit-view/email-edit-view.vue'
));
...
...
@@ -73,8 +73,8 @@ export const PageComponents = {
Vue
.
component
(
'quote-grid-view'
,
()
=>
import
(
'@pages/sales/quote-grid-view/quote-grid-view.vue'
));
Vue
.
component
(
'invoice-edit-view'
,
()
=>
import
(
'@pages/finance/invoice-edit-view/invoice-edit-view.vue'
));
Vue
.
component
(
'quote-option-view'
,
()
=>
import
(
'@pages/sales/quote-option-view/quote-option-view.vue'
));
Vue
.
component
(
'campaign-edit-view'
,
()
=>
import
(
'@pages/marketing/campaign-edit-view/campaign-edit-view.vue'
));
Vue
.
component
(
'opportunity-summary'
,
()
=>
import
(
'@pages/sales/opportunity-summary/opportunity-summary.vue'
));
Vue
.
component
(
'campaign-edit-view'
,
()
=>
import
(
'@pages/marketing/campaign-edit-view/campaign-edit-view.vue'
));
Vue
.
component
(
'list-contact-inner'
,
()
=>
import
(
'@pages/marketing/list-contact-inner/list-contact-inner.vue'
));
Vue
.
component
(
'campaign-info-campagin'
,
()
=>
import
(
'@pages/marketing/campaign-info-campagin/campaign-info-campagin.vue'
));
Vue
.
component
(
'appointment-edit-view'
,
()
=>
import
(
'@pages/base/appointment-edit-view/appointment-edit-view.vue'
));
...
...
@@ -83,9 +83,9 @@ export const PageComponents = {
Vue
.
component
(
'contact-pickup-grid-view'
,
()
=>
import
(
'@pages/base/contact-pickup-grid-view/contact-pickup-grid-view.vue'
));
Vue
.
component
(
'list-account-edit-view'
,
()
=>
import
(
'@pages/marketing/list-account-edit-view/list-account-edit-view.vue'
));
Vue
.
component
(
'opportunity-info'
,
()
=>
import
(
'@pages/sales/opportunity-info/opportunity-info.vue'
));
Vue
.
component
(
'transaction-currency-pickup-grid-view'
,
()
=>
import
(
'@pages/base/transaction-currency-pickup-grid-view/transaction-currency-pickup-grid-view.vue'
));
Vue
.
component
(
'service-appointment-edit-view'
,
()
=>
import
(
'@pages/service/service-appointment-edit-view/service-appointment-edit-view.vue'
));
Vue
.
component
(
'contact-grid-view'
,
()
=>
import
(
'@pages/base/contact-grid-view/contact-grid-view.vue'
));
Vue
.
component
(
'transaction-currency-pickup-grid-view'
,
()
=>
import
(
'@pages/base/transaction-currency-pickup-grid-view/transaction-currency-pickup-grid-view.vue'
));
Vue
.
component
(
'activity-pointer-grid-view'
,
()
=>
import
(
'@pages/base/activity-pointer-grid-view/activity-pointer-grid-view.vue'
));
Vue
.
component
(
'campaign-activity-by-parent-key'
,
()
=>
import
(
'@pages/marketing/campaign-activity-by-parent-key/campaign-activity-by-parent-key.vue'
));
Vue
.
component
(
'account-pickup-view'
,
()
=>
import
(
'@pages/base/account-pickup-view/account-pickup-view.vue'
));
...
...
@@ -93,9 +93,11 @@ export const PageComponents = {
Vue
.
component
(
'quote-opp-qua-grid-view'
,
()
=>
import
(
'@pages/sales/quote-opp-qua-grid-view/quote-opp-qua-grid-view.vue'
));
Vue
.
component
(
'contact-by-account'
,
()
=>
import
(
'@pages/base/contact-by-account/contact-by-account.vue'
));
Vue
.
component
(
'opportunity-opp-pro-dashboard-view'
,
()
=>
import
(
'@pages/sales/opportunity-opp-pro-dashboard-view/opportunity-opp-pro-dashboard-view.vue'
));
Vue
.
component
(
'opportunity-list-exp-view'
,
()
=>
import
(
'@pages/sales/opportunity-list-exp-view/opportunity-list-exp-view.vue'
));
Vue
.
component
(
'sales-literature-edit-view'
,
()
=>
import
(
'@pages/sales/sales-literature-edit-view/sales-literature-edit-view.vue'
));
Vue
.
component
(
'ibiz-list-summary'
,
()
=>
import
(
'@pages/marketing/ibiz-list-summary/ibiz-list-summary.vue'
));
Vue
.
component
(
'lead-dashboard-view'
,
()
=>
import
(
'@pages/sales/lead-dashboard-view/lead-dashboard-view.vue'
));
Vue
.
component
(
'opportunity-con-opp-grid-view'
,
()
=>
import
(
'@pages/sales/opportunity-con-opp-grid-view/opportunity-con-opp-grid-view.vue'
));
Vue
.
component
(
'list-account-quick-create-by-list'
,
()
=>
import
(
'@pages/marketing/list-account-quick-create-by-list/list-account-quick-create-by-list.vue'
));
Vue
.
component
(
'campaign-list-edit-view'
,
()
=>
import
(
'@pages/marketing/campaign-list-edit-view/campaign-list-edit-view.vue'
));
Vue
.
component
(
'competitor-info'
,
()
=>
import
(
'@pages/sales/competitor-info/competitor-info.vue'
));
...
...
app_CRM/src/pages/ungroup/central/router.ts
浏览文件 @
10870d68
此差异已折叠。
点击以展开。
app_CRM/src/store/modules/view-action/state.ts
浏览文件 @
10870d68
...
...
@@ -10,6 +10,7 @@ export const viewstate: any = {
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'29bfcd628ab25e297248ff0524d12908'
,
],
},
{
...
...
@@ -558,17 +559,6 @@ export const viewstate: any = {
'c420212fae385872d6ae89e3d237350a'
,
],
},
{
viewtag
:
'5f8f689d5dccc3db6d2b74a24a8b24ef'
,
viewmodule
:
'Sales'
,
viewname
:
'OpportunityGridView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'8bfcd7acdd1f36afc1714f1071671f2c'
,
'a243cd62accb02ceba4fb128703128f0'
,
],
},
{
viewtag
:
'615ceb2945e3cfe7404850aeadae188d'
,
viewmodule
:
'Base'
,
...
...
@@ -701,6 +691,17 @@ export const viewstate: any = {
refviews
:
[
],
},
{
viewtag
:
'6f35f461b53398775ff2f1a563776fa3'
,
viewmodule
:
'Sales'
,
viewname
:
'LeadConLeadGridView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'35728a12ceecb647982051842853547c'
,
'4745ca10fe4421ea043cb9ace1840224'
,
],
},
{
viewtag
:
'7217511947b8833ba5683e54c06b0271'
,
viewmodule
:
'Base'
,
...
...
@@ -812,8 +813,8 @@ export const viewstate: any = {
'07c5035fbb847e889f3dbb9657723f30'
,
'24a93674ec4c976c08902a3e95421ca6'
,
'6978259896338a7ace85a9fbc5d70395'
,
'9f92696f8eeec188f5ea674b925df275'
,
'b38bc0256ecd5be1a58a3c2210a98d05'
,
'5f8f689d5dccc3db6d2b74a24a8b24ef'
,
'dfc0051ae4813115e03f3d095f8cd7d3'
,
'631a4276161c551802f3aaf4bd7e607c'
,
'15d12c1173fcb6e742b6a6d92cbc53ed'
,
...
...
@@ -952,6 +953,15 @@ export const viewstate: any = {
'a5213905238dbc5d8e1a505029105cc9'
,
],
},
{
viewtag
:
'9f92696f8eeec188f5ea674b925df275'
,
viewmodule
:
'Sales'
,
viewname
:
'OpportunityListExpView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
],
},
{
viewtag
:
'a0baf844a4d48914ee2623448b1a73fb'
,
viewmodule
:
'Marketing'
,
...
...
@@ -1321,6 +1331,7 @@ export const viewstate: any = {
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'29bfcd628ab25e297248ff0524d12908'
,
],
},
{
...
...
@@ -1385,9 +1396,9 @@ export const viewstate: any = {
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
'15d12c1173fcb6e742b6a6d92cbc53ed'
,
'5f8f689d5dccc3db6d2b74a24a8b24ef'
,
'6f35f461b53398775ff2f1a563776fa3'
,
'bae77557d2f7a7852b634dc5d5a93435'
,
'50138c2b066081ec8b6fe67c88af5371'
,
'6168a7e787ead13b1e0f9a55007bc68c'
,
],
},
...
...
app_CRM/src/uiservice/lead/lead-ui-service-base.ts
浏览文件 @
10870d68
...
...
@@ -85,6 +85,7 @@ export default class LeadUIServiceBase extends UIService {
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'info'
,
srfappde
:
'leads'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'quickcreate'
,
srfappde
:
'leads'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'info_market'
,
srfappde
:
'leads'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'conleadgridview'
,
srfappde
:
'leads'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'info_contact'
,
srfappde
:
'leads'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'pickupgridview'
,
srfappde
:
'leads'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'info_company'
,
srfappde
:
'leads'
});
...
...
app_CRM/src/uiservice/opportunity/opportunity-ui-service-base.ts
浏览文件 @
10870d68
...
...
@@ -80,6 +80,7 @@ export default class OpportunityUIServiceBase extends UIService {
*/
public
initViewMap
(){
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'summary'
,
srfappde
:
'opportunities'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'conoppgridview'
,
srfappde
:
'opportunities'
});
this
.
allViewMap
.
set
(
'MDATAVIEW:'
,{
viewname
:
'gridview'
,
srfappde
:
'opportunities'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'info_abstract'
,
srfappde
:
'opportunities'
});
this
.
allViewMap
.
set
(
'PICKUPVIEW:'
,{
viewname
:
'pickupview'
,
srfappde
:
'opportunities'
});
...
...
@@ -87,6 +88,7 @@ export default class OpportunityUIServiceBase extends UIService {
this
.
allViewMap
.
set
(
'EDITVIEW:'
,{
viewname
:
'editview'
,
srfappde
:
'opportunities'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'info'
,
srfappde
:
'opportunities'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'oppprodashboardview'
,
srfappde
:
'opportunities'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'listexpview'
,
srfappde
:
'opportunities'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'quickcreate'
,
srfappde
:
'opportunities'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'info_product'
,
srfappde
:
'opportunities'
});
}
...
...
app_CRM/src/widgets/app/central-appmenu/central-appmenu-base.vue
浏览文件 @
10870d68
...
...
@@ -265,7 +265,7 @@ export default class CentralBase extends Vue {
const
deResParameters
:
any
[]
=
[];
const
parameters
:
any
[]
=
[
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'
gridview'
,
parameterName
:
'grid
view'
},
{
pathName
:
'
listexpview'
,
parameterName
:
'listexp
view'
},
];
const
path
:
string
=
this
.
$viewTool
.
buildUpRoutePath
(
this
.
$route
,
{},
deResParameters
,
parameters
,
[],
viewparam
);
this
.
$router
.
push
(
path
);
...
...
app_CRM/src/widgets/app/central-appmenu/central-appmenu-model.ts
浏览文件 @
10870d68
...
...
@@ -349,7 +349,7 @@ export default class CentralModel {
textcls
:
''
,
appfunctag
:
'Auto10'
,
appfuncyype
:
'APPVIEW'
,
viewname
:
'opportunity-
grid
-view'
,
viewname
:
'opportunity-
list-exp
-view'
,
resourcetag
:
''
,
}
,
...
...
@@ -901,12 +901,12 @@ export default class CentralModel {
appfunctag
:
'Auto10'
,
appfuncyype
:
'APPVIEW'
,
openmode
:
''
,
codename
:
'opportunity
grid
view'
,
codename
:
'opportunity
listexp
view'
,
deResParameters
:
[],
routepath
:
'/central/:central?/opportunities/:opportunity?/
gridview/:grid
view?'
,
routepath
:
'/central/:central?/opportunities/:opportunity?/
listexpview/:listexp
view?'
,
parameters
:
[
{
pathName
:
'opportunities'
,
parameterName
:
'opportunity'
},
{
pathName
:
'
gridview'
,
parameterName
:
'grid
view'
},
{
pathName
:
'
listexpview'
,
parameterName
:
'listexp
view'
},
],
},
{
...
...
app_CRM/src/widgets/contact/abstract-edit-form/abstract-edit-form-base.vue
浏览文件 @
10870d68
...
...
@@ -17,6 +17,33 @@
<input-box
v-model=
"data.jobtitle"
@
enter=
"onEnter($event)"
unit=
""
:disabled=
"detailsModel.jobtitle.disabled"
type=
'text'
style=
""
></input-box>
</app-form-item>
</i-col>
<i-col
v-show=
"detailsModel.customername.visible"
:style=
"
{}" :lg="{ span: 24, offset: 0 }" :xl="{ span: 24, offset: 0 }">
<app-form-item
name=
'customername'
:itemRules=
"this.rules.customername"
class=
''
:caption=
"$t('entities.contact.abstractedit_form.details.customername')"
uiStyle=
"DEFAULT"
:labelWidth=
"130"
:isShowCaption=
"true"
:error=
"detailsModel.customername.error"
:isEmptyCaption=
"false"
labelPos=
"LEFT"
>
<app-picker
:formState=
"formState"
:data=
"data"
:context=
"context"
:viewparams=
"viewparams"
:localContext =
'
{ }'
:localParam ='{ }'
:disabled="detailsModel.customername.disabled"
name='customername'
deMajorField='accountname'
deKeyField='account'
:service="service"
:acParams="{ serviceName: 'AccountService', interfaceName: 'FetchDefault'}"
valueitem='customerid'
:value="data.customername"
editortype=""
:pickupView="{ viewname: 'account-pickup-view', title: $t('entities.account.views.pickupview.title'), deResParameters: [], parameters: [{ pathName: 'accounts', parameterName: 'account' }, { pathName: 'pickupview', parameterName: 'pickupview' } ], placement:'' }"
style=""
@formitemvaluechange="onFormItemValueChange">
</app-picker>
</app-form-item>
</i-col>
<i-col
v-show=
"detailsModel.emailaddress1.visible"
:style=
"
{}" :lg="{ span: 24, offset: 0 }" :xl="{ span: 24, offset: 0 }">
<app-form-item
name=
'emailaddress1'
:itemRules=
"this.rules.emailaddress1"
class=
''
:caption=
"$t('entities.contact.abstractedit_form.details.emailaddress1')"
uiStyle=
"DEFAULT"
:labelWidth=
"130"
:isShowCaption=
"true"
:error=
"detailsModel.emailaddress1.error"
:isEmptyCaption=
"false"
labelPos=
"LEFT"
>
...
...
@@ -355,10 +382,12 @@ export default class AbstractEditBase extends Vue implements ControlInterface {
srfsourcekey
:
null
,
fullname
:
null
,
jobtitle
:
null
,
customername
:
null
,
emailaddress1
:
null
,
telephone1
:
null
,
mobilephone
:
null
,
fax
:
null
,
customerid
:
null
,
contactid
:
null
,
contact
:
null
,
};
...
...
@@ -462,6 +491,12 @@ export default class AbstractEditBase extends Vue implements ControlInterface {
{
required
:
false
,
type
:
'string'
,
message
:
'职务 值不能为空'
,
trigger
:
'change'
},
{
required
:
false
,
type
:
'string'
,
message
:
'职务 值不能为空'
,
trigger
:
'blur'
},
],
customername
:
[
{
type
:
'string'
,
message
:
'客户 值必须为字符串类型'
,
trigger
:
'change'
},
{
type
:
'string'
,
message
:
'客户 值必须为字符串类型'
,
trigger
:
'blur'
},
{
required
:
false
,
type
:
'string'
,
message
:
'客户 值不能为空'
,
trigger
:
'change'
},
{
required
:
false
,
type
:
'string'
,
message
:
'客户 值不能为空'
,
trigger
:
'blur'
},
],
emailaddress1
:
[
{
type
:
'string'
,
message
:
'电子邮件 值必须为字符串类型'
,
trigger
:
'change'
},
{
type
:
'string'
,
message
:
'电子邮件 值必须为字符串类型'
,
trigger
:
'blur'
},
...
...
@@ -486,6 +521,12 @@ export default class AbstractEditBase extends Vue implements ControlInterface {
{
required
:
false
,
type
:
'string'
,
message
:
'传真 值不能为空'
,
trigger
:
'change'
},
{
required
:
false
,
type
:
'string'
,
message
:
'传真 值不能为空'
,
trigger
:
'blur'
},
],
customerid
:
[
{
type
:
'string'
,
message
:
'客户 值必须为字符串类型'
,
trigger
:
'change'
},
{
type
:
'string'
,
message
:
'客户 值必须为字符串类型'
,
trigger
:
'blur'
},
{
required
:
false
,
type
:
'string'
,
message
:
'客户 值不能为空'
,
trigger
:
'change'
},
{
required
:
false
,
type
:
'string'
,
message
:
'客户 值不能为空'
,
trigger
:
'blur'
},
],
contactid
:
[
{
type
:
'string'
,
message
:
'联系人 值必须为字符串类型'
,
trigger
:
'change'
},
{
type
:
'string'
,
message
:
'联系人 值必须为字符串类型'
,
trigger
:
'blur'
},
...
...
@@ -524,6 +565,8 @@ export default class AbstractEditBase extends Vue implements ControlInterface {
fullname
:
new
FormItemModel
({
caption
:
'全名'
,
detailType
:
'FORMITEM'
,
name
:
'fullname'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
})
,
jobtitle
:
new
FormItemModel
({
caption
:
'职务'
,
detailType
:
'FORMITEM'
,
name
:
'jobtitle'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
})
,
customername
:
new
FormItemModel
({
caption
:
'客户'
,
detailType
:
'FORMITEM'
,
name
:
'customername'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
})
,
emailaddress1
:
new
FormItemModel
({
caption
:
'电子邮件'
,
detailType
:
'FORMITEM'
,
name
:
'emailaddress1'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
})
,
...
...
@@ -532,6 +575,8 @@ export default class AbstractEditBase extends Vue implements ControlInterface {
mobilephone
:
new
FormItemModel
({
caption
:
'移动电话'
,
detailType
:
'FORMITEM'
,
name
:
'mobilephone'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
})
,
fax
:
new
FormItemModel
({
caption
:
'传真'
,
detailType
:
'FORMITEM'
,
name
:
'fax'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
})
,
customerid
:
new
FormItemModel
({
caption
:
'客户'
,
detailType
:
'FORMITEM'
,
name
:
'customerid'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
})
,
contactid
:
new
FormItemModel
({
caption
:
'联系人'
,
detailType
:
'FORMITEM'
,
name
:
'contactid'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
1
})
,
...
...
@@ -657,6 +702,18 @@ export default class AbstractEditBase extends Vue implements ControlInterface {
this
.
formDataChange
({
name
:
'jobtitle'
,
newVal
:
newVal
,
oldVal
:
oldVal
});
}
/**
* 监控表单属性 customername 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof AbstractEdit
*/
@
Watch
(
'data.customername'
)
onCustomernameChange
(
newVal
:
any
,
oldVal
:
any
)
{
this
.
formDataChange
({
name
:
'customername'
,
newVal
:
newVal
,
oldVal
:
oldVal
});
}
/**
* 监控表单属性 emailaddress1 值
*
...
...
@@ -705,6 +762,18 @@ export default class AbstractEditBase extends Vue implements ControlInterface {
this
.
formDataChange
({
name
:
'fax'
,
newVal
:
newVal
,
oldVal
:
oldVal
});
}
/**
* 监控表单属性 customerid 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof AbstractEdit
*/
@
Watch
(
'data.customerid'
)
onCustomeridChange
(
newVal
:
any
,
oldVal
:
any
)
{
this
.
formDataChange
({
name
:
'customerid'
,
newVal
:
newVal
,
oldVal
:
oldVal
});
}
/**
* 监控表单属性 contactid 值
*
...
...
@@ -770,6 +839,8 @@ export default class AbstractEditBase extends Vue implements ControlInterface {
}
/**
...
...
app_CRM/src/widgets/contact/abstract-edit-form/abstract-edit-form-model.ts
浏览文件 @
10870d68
...
...
@@ -65,6 +65,11 @@ export default class AbstractEditModel {
prop
:
'jobtitle'
,
dataType
:
'TEXT'
,
},
{
name
:
'customername'
,
prop
:
'cusomername'
,
dataType
:
'PICKUPTEXT'
,
},
{
name
:
'emailaddress1'
,
prop
:
'emailaddress1'
,
...
...
@@ -85,6 +90,11 @@ export default class AbstractEditModel {
prop
:
'fax'
,
dataType
:
'TEXT'
,
},
{
name
:
'customerid'
,
prop
:
'customerid'
,
dataType
:
'PICKUP'
,
},
{
name
:
'contactid'
,
prop
:
'contactid'
,
...
...
app_CRM/src/widgets/contact/abstract-edit-form/abstract-edit-form-service.ts
浏览文件 @
10870d68
...
...
@@ -2,6 +2,7 @@ import { Http,Util,Errorlog } from '@/utils';
import
ControlService
from
'@/widgets/control-service'
;
import
ContactService
from
'@/service/contact/contact-service'
;
import
AbstractEditModel
from
'./abstract-edit-form-model'
;
import
AccountService
from
'@/service/account/account-service'
;
/**
...
...
@@ -41,6 +42,14 @@ export default class AbstractEditService extends ControlService {
this
.
model
=
new
AbstractEditModel
();
}
/**
* 客户服务对象
*
* @type {AccountService}
* @memberof AbstractEditService
*/
public
accountService
:
AccountService
=
new
AccountService
();
/**
* 处理数据
*
...
...
@@ -80,6 +89,9 @@ export default class AbstractEditService extends ControlService {
*/
@
Errorlog
public
getItems
(
serviceName
:
string
,
interfaceName
:
string
,
context
:
any
=
{},
data
:
any
,
isloading
?:
boolean
):
Promise
<
any
[]
>
{
if
(
Object
.
is
(
serviceName
,
'AccountService'
)
&&
Object
.
is
(
interfaceName
,
'FetchDefault'
))
{
return
this
.
doItems
(
this
.
accountService
.
FetchDefault
(
JSON
.
parse
(
JSON
.
stringify
(
context
)),
data
,
isloading
),
'accountid'
,
'account'
);
}
return
Promise
.
reject
([])
}
...
...
app_CRM/src/widgets/contact/abstract-info-form/abstract-info-form-base.vue
浏览文件 @
10870d68
...
...
@@ -19,6 +19,13 @@
<app-span
name=
'jobtitle'
:value=
"data.jobtitle"
:data=
"data"
:context=
"context"
:viewparams=
"viewparams"
:localContext =
'
{ }' :localParam ='{ }' style="">
</app-span>
</app-form-item>
</i-col>
<i-col
v-show=
"detailsModel.customername.visible"
:style=
"
{}" :md="{ span: 12, offset: 0 }" :lg="{ span: 8, offset: 0 }" :xl="{ span: 6, offset: 0 }">
<app-form-item
name=
'customername'
:itemRules=
"this.rules.customername"
class=
''
:caption=
"$t('entities.contact.abstractinfo_form.details.customername')"
uiStyle=
"DEFAULT"
:labelWidth=
"130"
:isShowCaption=
"true"
:error=
"detailsModel.customername.error"
:isEmptyCaption=
"false"
labelPos=
"LEFT"
>
<app-span
name=
'customername'
:value=
"data.customername"
:data=
"data"
:context=
"context"
:viewparams=
"viewparams"
:localContext =
'
{ }' :localParam ='{ }' style="">
</app-span>
</app-form-item>
</i-col>
<i-col
v-show=
"detailsModel.emailaddress1.visible"
:style=
"
{}" :md="{ span: 12, offset: 0 }" :lg="{ span: 8, offset: 0 }" :xl="{ span: 6, offset: 0 }">
<app-form-item
name=
'emailaddress1'
:itemRules=
"this.rules.emailaddress1"
class=
''
:caption=
"$t('entities.contact.abstractinfo_form.details.emailaddress1')"
uiStyle=
"DEFAULT"
:labelWidth=
"130"
:isShowCaption=
"true"
:error=
"detailsModel.emailaddress1.error"
:isEmptyCaption=
"false"
labelPos=
"LEFT"
>
...
...
@@ -361,6 +368,7 @@ export default class AbstractInfoBase extends Vue implements ControlInterface {
srfsourcekey
:
null
,
fullname
:
null
,
jobtitle
:
null
,
customername
:
null
,
emailaddress1
:
null
,
telephone1
:
null
,
mobilephone
:
null
,
...
...
@@ -468,6 +476,12 @@ export default class AbstractInfoBase extends Vue implements ControlInterface {
{
required
:
false
,
type
:
'string'
,
message
:
'职务 值不能为空'
,
trigger
:
'change'
},
{
required
:
false
,
type
:
'string'
,
message
:
'职务 值不能为空'
,
trigger
:
'blur'
},
],
customername
:
[
{
type
:
'string'
,
message
:
'客户 值必须为字符串类型'
,
trigger
:
'change'
},
{
type
:
'string'
,
message
:
'客户 值必须为字符串类型'
,
trigger
:
'blur'
},
{
required
:
false
,
type
:
'string'
,
message
:
'客户 值不能为空'
,
trigger
:
'change'
},
{
required
:
false
,
type
:
'string'
,
message
:
'客户 值不能为空'
,
trigger
:
'blur'
},
],
emailaddress1
:
[
{
type
:
'string'
,
message
:
'电子邮件 值必须为字符串类型'
,
trigger
:
'change'
},
{
type
:
'string'
,
message
:
'电子邮件 值必须为字符串类型'
,
trigger
:
'blur'
},
...
...
@@ -530,6 +544,8 @@ export default class AbstractInfoBase extends Vue implements ControlInterface {
fullname
:
new
FormItemModel
({
caption
:
'全名'
,
detailType
:
'FORMITEM'
,
name
:
'fullname'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
})
,
jobtitle
:
new
FormItemModel
({
caption
:
'职务'
,
detailType
:
'FORMITEM'
,
name
:
'jobtitle'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
})
,
customername
:
new
FormItemModel
({
caption
:
'客户'
,
detailType
:
'FORMITEM'
,
name
:
'customername'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
})
,
emailaddress1
:
new
FormItemModel
({
caption
:
'电子邮件'
,
detailType
:
'FORMITEM'
,
name
:
'emailaddress1'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
})
,
...
...
@@ -663,6 +679,18 @@ export default class AbstractInfoBase extends Vue implements ControlInterface {
this
.
formDataChange
({
name
:
'jobtitle'
,
newVal
:
newVal
,
oldVal
:
oldVal
});
}
/**
* 监控表单属性 customername 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof AbstractInfo
*/
@
Watch
(
'data.customername'
)
onCustomernameChange
(
newVal
:
any
,
oldVal
:
any
)
{
this
.
formDataChange
({
name
:
'customername'
,
newVal
:
newVal
,
oldVal
:
oldVal
});
}
/**
* 监控表单属性 emailaddress1 值
*
...
...
@@ -776,6 +804,7 @@ export default class AbstractInfoBase extends Vue implements ControlInterface {
}
/**
...
...
app_CRM/src/widgets/contact/abstract-info-form/abstract-info-form-model.ts
浏览文件 @
10870d68
...
...
@@ -65,6 +65,11 @@ export default class AbstractInfoModel {
prop
:
'jobtitle'
,
dataType
:
'TEXT'
,
},
{
name
:
'customername'
,
prop
:
'cusomername'
,
dataType
:
'PICKUPTEXT'
,
},
{
name
:
'emailaddress1'
,
prop
:
'emailaddress1'
,
...
...
app_CRM/src/widgets/contact/infotabviewpanel2-tabviewpanel/infotabviewpanel2-tabviewpanel-base.vue
浏览文件 @
10870d68
<
template
>
<div
class=
'tabviewpanel'
style=
"height:100%;"
v-if =
'isActivied'
>
<lead-grid-view
<lead-
con-lead-
grid-view
class=
'viewcontainer2'
:viewdata=
"viewdata"
:viewparam=
"viewparam"
@
viewload=
"viewDatasChange($event)"
:viewDefaultUsage=
"false"
>
</lead-grid-view>
</lead-
con-lead-
grid-view>
</div>
</
template
>
<
script
lang=
'tsx'
>
...
...
app_CRM/src/widgets/contact/infotabviewpanel3-tabviewpanel/infotabviewpanel3-tabviewpanel-base.vue
浏览文件 @
10870d68
<
template
>
<div
class=
'tabviewpanel'
style=
"height:100%;"
v-if =
'isActivied'
>
<opportunity-grid-view
<opportunity-
con-opp-
grid-view
class=
'viewcontainer2'
:viewdata=
"viewdata"
:viewparam=
"viewparam"
@
viewload=
"viewDatasChange($event)"
:viewDefaultUsage=
"false"
>
</opportunity-grid-view>
</opportunity-
con-opp-
grid-view>
</div>
</
template
>
<
script
lang=
'tsx'
>
...
...
app_CRM/src/widgets/contact/quick-create-form/quick-create-form-base.vue
浏览文件 @
10870d68
...
...
@@ -17,6 +17,33 @@
<input-box
v-model=
"data.jobtitle"
@
enter=
"onEnter($event)"
unit=
""
:disabled=
"detailsModel.jobtitle.disabled"
type=
'text'
style=
""
></input-box>
</app-form-item>
</i-col>
<i-col
v-show=
"detailsModel.customername.visible"
:style=
"
{}" :lg="{ span: 12, offset: 0 }" :xl="{ span: 12, offset: 0 }">
<app-form-item
name=
'customername'
:itemRules=
"this.rules.customername"
class=
''
:caption=
"$t('entities.contact.quickcreate_form.details.customername')"
uiStyle=
"DEFAULT"
:labelWidth=
"130"
:isShowCaption=
"true"
:error=
"detailsModel.customername.error"
:isEmptyCaption=
"false"
labelPos=
"LEFT"
>
<app-picker
:formState=
"formState"
:data=
"data"
:context=
"context"
:viewparams=
"viewparams"
:localContext =
'
{ }'
:localParam ='{ }'
:disabled="detailsModel.customername.disabled"
name='customername'
deMajorField='accountname'
deKeyField='account'
:service="service"
:acParams="{ serviceName: 'AccountService', interfaceName: 'FetchDefault'}"
valueitem='customerid'
:value="data.customername"
editortype=""
:pickupView="{ viewname: 'account-pickup-view', title: $t('entities.account.views.pickupview.title'), deResParameters: [], parameters: [{ pathName: 'accounts', parameterName: 'account' }, { pathName: 'pickupview', parameterName: 'pickupview' } ], placement:'' }"
style=""
@formitemvaluechange="onFormItemValueChange">
</app-picker>
</app-form-item>
</i-col>
<i-col
v-show=
"detailsModel.emailaddress1.visible"
:style=
"
{}" :lg="{ span: 12, offset: 0 }" :xl="{ span: 12, offset: 0 }">
<app-form-item
name=
'emailaddress1'
:itemRules=
"this.rules.emailaddress1"
class=
''
:caption=
"$t('entities.contact.quickcreate_form.details.emailaddress1')"
uiStyle=
"DEFAULT"
:labelWidth=
"130"
:isShowCaption=
"true"
:error=
"detailsModel.emailaddress1.error"
:isEmptyCaption=
"false"
labelPos=
"LEFT"
>
...
...
@@ -393,6 +420,7 @@ export default class QuickCreateBase extends Vue implements ControlInterface {
srfsourcekey
:
null
,
fullname
:
null
,
jobtitle
:
null
,
customername
:
null
,
emailaddress1
:
null
,
telephone1
:
null
,
mobilephone
:
null
,
...
...
@@ -402,6 +430,7 @@ export default class QuickCreateBase extends Vue implements ControlInterface {
address1_city
:
null
,
address1_line1
:
null
,
address1_postalcode
:
null
,
customerid
:
null
,
contactid
:
null
,
contact
:
null
,
};
...
...
@@ -505,6 +534,12 @@ export default class QuickCreateBase extends Vue implements ControlInterface {
{
required
:
false
,
type
:
'string'
,
message
:
'职务 值不能为空'
,
trigger
:
'change'
},
{
required
:
false
,
type
:
'string'
,
message
:
'职务 值不能为空'
,
trigger
:
'blur'
},
],
customername
:
[
{
type
:
'string'
,
message
:
'客户 值必须为字符串类型'
,
trigger
:
'change'
},
{
type
:
'string'
,
message
:
'客户 值必须为字符串类型'
,
trigger
:
'blur'
},
{
required
:
false
,
type
:
'string'
,
message
:
'客户 值不能为空'
,
trigger
:
'change'
},
{
required
:
false
,
type
:
'string'
,
message
:
'客户 值不能为空'
,
trigger
:
'blur'
},
],
emailaddress1
:
[
{
type
:
'string'
,
message
:
'电子邮件 值必须为字符串类型'
,
trigger
:
'change'
},
{
type
:
'string'
,
message
:
'电子邮件 值必须为字符串类型'
,
trigger
:
'blur'
},
...
...
@@ -559,6 +594,12 @@ export default class QuickCreateBase extends Vue implements ControlInterface {
{
required
:
false
,
type
:
'string'
,
message
:
'邮政编码 值不能为空'
,
trigger
:
'change'
},
{
required
:
false
,
type
:
'string'
,
message
:
'邮政编码 值不能为空'
,
trigger
:
'blur'
},
],
customerid
:
[
{
type
:
'string'
,
message
:
'客户 值必须为字符串类型'
,
trigger
:
'change'
},
{
type
:
'string'
,
message
:
'客户 值必须为字符串类型'
,
trigger
:
'blur'
},
{
required
:
false
,
type
:
'string'
,
message
:
'客户 值不能为空'
,
trigger
:
'change'
},
{
required
:
false
,
type
:
'string'
,
message
:
'客户 值不能为空'
,
trigger
:
'blur'
},
],
contactid
:
[
{
type
:
'string'
,
message
:
'联系人 值必须为字符串类型'
,
trigger
:
'change'
},
{
type
:
'string'
,
message
:
'联系人 值必须为字符串类型'
,
trigger
:
'blur'
},
...
...
@@ -599,6 +640,8 @@ export default class QuickCreateBase extends Vue implements ControlInterface {
fullname
:
new
FormItemModel
({
caption
:
'全名'
,
detailType
:
'FORMITEM'
,
name
:
'fullname'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
})
,
jobtitle
:
new
FormItemModel
({
caption
:
'职务'
,
detailType
:
'FORMITEM'
,
name
:
'jobtitle'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
})
,
customername
:
new
FormItemModel
({
caption
:
'客户'
,
detailType
:
'FORMITEM'
,
name
:
'customername'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
})
,
emailaddress1
:
new
FormItemModel
({
caption
:
'电子邮件'
,
detailType
:
'FORMITEM'
,
name
:
'emailaddress1'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
})
,
...
...
@@ -617,6 +660,8 @@ export default class QuickCreateBase extends Vue implements ControlInterface {
address1_line1
:
new
FormItemModel
({
caption
:
'街道'
,
detailType
:
'FORMITEM'
,
name
:
'address1_line1'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
})
,
address1_postalcode
:
new
FormItemModel
({
caption
:
'邮政编码'
,
detailType
:
'FORMITEM'
,
name
:
'address1_postalcode'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
})
,
customerid
:
new
FormItemModel
({
caption
:
'客户'
,
detailType
:
'FORMITEM'
,
name
:
'customerid'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
3
})
,
contactid
:
new
FormItemModel
({
caption
:
'联系人'
,
detailType
:
'FORMITEM'
,
name
:
'contactid'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
,
disabled
:
false
,
enableCond
:
1
})
,
...
...
@@ -742,6 +787,18 @@ export default class QuickCreateBase extends Vue implements ControlInterface {
this
.
formDataChange
({
name
:
'jobtitle'
,
newVal
:
newVal
,
oldVal
:
oldVal
});
}
/**
* 监控表单属性 customername 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof QuickCreate
*/
@
Watch
(
'data.customername'
)
onCustomernameChange
(
newVal
:
any
,
oldVal
:
any
)
{
this
.
formDataChange
({
name
:
'customername'
,
newVal
:
newVal
,
oldVal
:
oldVal
});
}
/**
* 监控表单属性 emailaddress1 值
*
...
...
@@ -850,6 +907,18 @@ export default class QuickCreateBase extends Vue implements ControlInterface {
this
.
formDataChange
({
name
:
'address1_postalcode'
,
newVal
:
newVal
,
oldVal
:
oldVal
});
}
/**
* 监控表单属性 customerid 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof QuickCreate
*/
@
Watch
(
'data.customerid'
)
onCustomeridChange
(
newVal
:
any
,
oldVal
:
any
)
{
this
.
formDataChange
({
name
:
'customerid'
,
newVal
:
newVal
,
oldVal
:
oldVal
});
}
/**
* 监控表单属性 contactid 值
*
...
...
@@ -918,6 +987,8 @@ export default class QuickCreateBase extends Vue implements ControlInterface {
...
...
app_CRM/src/widgets/contact/quick-create-form/quick-create-form-model.ts
浏览文件 @
10870d68
...
...
@@ -65,6 +65,11 @@ export default class QuickCreateModel {
prop
:
'jobtitle'
,
dataType
:
'TEXT'
,
},
{
name
:
'customername'
,
prop
:
'cusomername'
,
dataType
:
'PICKUPTEXT'
,
},
{
name
:
'emailaddress1'
,
prop
:
'emailaddress1'
,
...
...
@@ -110,6 +115,11 @@ export default class QuickCreateModel {
prop
:
'address1_postalcode'
,
dataType
:
'TEXT'
,
},
{
name
:
'customerid'
,
prop
:
'customerid'
,
dataType
:
'PICKUP'
,
},
{
name
:
'contactid'
,
prop
:
'contactid'
,
...
...
app_CRM/src/widgets/contact/quick-create-form/quick-create-form-service.ts
浏览文件 @
10870d68
...
...
@@ -2,6 +2,7 @@ import { Http,Util,Errorlog } from '@/utils';
import
ControlService
from
'@/widgets/control-service'
;
import
ContactService
from
'@/service/contact/contact-service'
;
import
QuickCreateModel
from
'./quick-create-form-model'
;
import
AccountService
from
'@/service/account/account-service'
;
/**
...
...
@@ -41,6 +42,14 @@ export default class QuickCreateService extends ControlService {
this
.
model
=
new
QuickCreateModel
();
}
/**
* 客户服务对象
*
* @type {AccountService}
* @memberof QuickCreateService
*/
public
accountService
:
AccountService
=
new
AccountService
();
/**
* 处理数据
*
...
...
@@ -80,6 +89,9 @@ export default class QuickCreateService extends ControlService {
*/
@
Errorlog
public
getItems
(
serviceName
:
string
,
interfaceName
:
string
,
context
:
any
=
{},
data
:
any
,
isloading
?:
boolean
):
Promise
<
any
[]
>
{
if
(
Object
.
is
(
serviceName
,
'AccountService'
)
&&
Object
.
is
(
interfaceName
,
'FetchDefault'
))
{
return
this
.
doItems
(
this
.
accountService
.
FetchDefault
(
JSON
.
parse
(
JSON
.
stringify
(
context
)),
data
,
isloading
),
'accountid'
,
'account'
);
}
return
Promise
.
reject
([])
}
...
...
app_CRM/src/widgets/opportunity/list-exp-viewlistexpbar-listexpbar/list-exp-viewlistexpbar-listexpbar-base.vue
0 → 100644
浏览文件 @
10870d68
此差异已折叠。
点击以展开。
app_CRM/src/widgets/opportunity/list-exp-viewlistexpbar-listexpbar/list-exp-viewlistexpbar-listexpbar-model.ts
0 → 100644
浏览文件 @
10870d68
/**
* ListExpViewlistexpbar 部件模型
*
* @export
* @class ListExpViewlistexpbarModel
*/
export
default
class
ListExpViewlistexpbarModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof ListExpViewlistexpbarListexpbarMode
*/
public
getDataItems
():
any
[]
{
return
[
]
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/list-exp-viewlistexpbar-listexpbar/list-exp-viewlistexpbar-listexpbar-service.ts
0 → 100644
浏览文件 @
10870d68
import
{
Http
,
Util
,
Errorlog
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
ListExpViewlistexpbarModel
from
'./list-exp-viewlistexpbar-listexpbar-model'
;
/**
* ListExpViewlistexpbar 部件服务对象
*
* @export
* @class ListExpViewlistexpbarService
*/
export
default
class
ListExpViewlistexpbarService
extends
ControlService
{
/**
* 商机服务对象
*
* @type {OpportunityService}
* @memberof ListExpViewlistexpbarService
*/
public
appEntityService
:
OpportunityService
=
new
OpportunityService
({
$store
:
this
.
getStore
()
});
/**
* 设置从数据模式
*
* @type {boolean}
* @memberof ListExpViewlistexpbarService
*/
public
setTempMode
(){
this
.
isTempMode
=
false
;
}
/**
* Creates an instance of ListExpViewlistexpbarService.
*
* @param {*} [opts={}]
* @memberof ListExpViewlistexpbarService
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
this
.
model
=
new
ListExpViewlistexpbarModel
();
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/list-exp-viewlistexpbar-listexpbar/list-exp-viewlistexpbar-listexpbar.less
0 → 100644
浏览文件 @
10870d68
.app-list-exp-bar {
--app-list-exp-bar: 0px;
}
// this is less
app_CRM/src/widgets/opportunity/list-exp-viewlistexpbar-listexpbar/list-exp-viewlistexpbar-listexpbar.vue
0 → 100644
浏览文件 @
10870d68
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
ListExpViewlistexpbarBase
from
'./list-exp-viewlistexpbar-listexpbar-base.vue'
;
import
view_listexpbar_list
from
'@widgets/opportunity/list-list/list-list.vue'
;
@
Component
({
components
:
{
view_listexpbar_list
,
}
})
export
default
class
ListExpViewlistexpbar
extends
ListExpViewlistexpbarBase
{
}
</
script
>
\ No newline at end of file
app_CRM/src/widgets/opportunity/list-list/list-list-base.vue
0 → 100644
浏览文件 @
10870d68
此差异已折叠。
点击以展开。
app_CRM/src/widgets/opportunity/list-list/list-list-model.ts
0 → 100644
浏览文件 @
10870d68
/**
* List 部件模型
*
* @export
* @class ListModel
*/
export
default
class
ListModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof ListListexpbar_listMode
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'parentcontactname'
,
},
{
name
:
'parentaccountname'
,
},
{
name
:
'opportunityname'
,
},
{
name
:
'size'
,
prop
:
'size'
},
{
name
:
'query'
,
prop
:
'query'
},
{
name
:
'sort'
,
prop
:
'sort'
},
{
name
:
'page'
,
prop
:
'page'
},
// 前端新增修改标识,新增为"0",修改为"1"或未设值
{
name
:
'srffrontuf'
,
prop
:
'srffrontuf'
,
dataType
:
'TEXT'
,
},
]
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/list-list/list-list-service.ts
0 → 100644
浏览文件 @
10870d68
import
{
Http
,
Util
,
Errorlog
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
import
OpportunityService
from
'@/service/opportunity/opportunity-service'
;
import
ListModel
from
'./list-list-model'
;
/**
* List 部件服务对象
*
* @export
* @class ListService
*/
export
default
class
ListService
extends
ControlService
{
/**
* 商机服务对象
*
* @type {OpportunityService}
* @memberof ListService
*/
public
appEntityService
:
OpportunityService
=
new
OpportunityService
({
$store
:
this
.
getStore
()
});
/**
* 设置从数据模式
*
* @type {boolean}
* @memberof ListService
*/
public
setTempMode
(){
this
.
isTempMode
=
false
;
}
/**
* Creates an instance of ListService.
*
* @param {*} [opts={}]
* @memberof ListService
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
this
.
model
=
new
ListModel
();
}
/**
* 查询数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof ListService
*/
@
Errorlog
public
search
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
const
{
data
:
Data
,
context
:
Context
}
=
this
.
handleRequestData
(
action
,
context
,
data
,
true
);
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
const
_appEntityService
:
any
=
this
.
appEntityService
;
let
result
:
Promise
<
any
>
;
if
(
_appEntityService
[
action
]
&&
_appEntityService
[
action
]
instanceof
Function
)
{
result
=
_appEntityService
[
action
](
Context
,
Data
,
isloading
);
}
else
{
result
=
_appEntityService
.
FetchDefault
(
Context
,
Data
,
isloading
);
}
result
.
then
(
async
(
response
)
=>
{
await
this
.
handleResponse
(
action
,
response
);
resolve
(
response
);
}).
catch
(
response
=>
{
reject
(
response
);
});
});
}
/**
* 删除数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof ListService
*/
@
Errorlog
public
delete
(
action
:
string
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
const
{
data
:
Data
,
context
:
Context
}
=
this
.
handleRequestData
(
action
,
context
,
data
,
true
);
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
const
_appEntityService
:
any
=
this
.
appEntityService
;
let
result
:
Promise
<
any
>
;
if
(
_appEntityService
[
action
]
&&
_appEntityService
[
action
]
instanceof
Function
)
{
result
=
_appEntityService
[
action
](
Context
,
Data
,
isloading
);
}
else
{
result
=
_appEntityService
.
remove
(
Context
,
Data
,
isloading
);
}
result
.
then
((
response
)
=>
{
this
.
handleResponse
(
action
,
response
);
resolve
(
response
);
}).
catch
(
response
=>
{
reject
(
response
);
});
});
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/list-list/list-list.less
0 → 100644
浏览文件 @
10870d68
.app-list {
--app-list: 0;
}
// this is less
app_CRM/src/widgets/opportunity/list-list/list-list.vue
0 → 100644
浏览文件 @
10870d68
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
ListBase
from
'./list-list-base.vue'
;
import
layout_listexpbar_list_itempanel
from
'@widgets/opportunity/panel-panel/panel-panel.vue'
;
@
Component
({
components
:
{
layout_listexpbar_list_itempanel
,
}
})
export
default
class
List
extends
ListBase
{
}
</
script
>
\ No newline at end of file
app_CRM/src/widgets/opportunity/panel-panel/panel-panel-base.vue
0 → 100644
浏览文件 @
10870d68
此差异已折叠。
点击以展开。
app_CRM/src/widgets/opportunity/panel-panel/panel-panel-model.ts
0 → 100644
浏览文件 @
10870d68
/**
* Panel 部件模型
*
* @export
* @class PanelModel
*/
export
default
class
PanelModel
{
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof PanelModel
*/
public
getDataItems
():
any
[]
{
return
[
{
name
:
'opportunityname'
,
prop
:
'opportunityname'
},
{
name
:
'parentaccountname'
,
prop
:
'parentaccountname'
},
{
name
:
'parentcontactname'
,
prop
:
'parentcontactname'
}
]
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/panel-panel/panel-panel-service.ts
0 → 100644
浏览文件 @
10870d68
import
{
Http
}
from
'@/utils'
;
import
ControlService
from
'@/widgets/control-service'
;
/**
* Panel 部件服务对象
*
* @export
* @class PanelService
*/
export
default
class
PanelService
extends
ControlService
{
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/panel-panel/panel-panel.less
0 → 100644
浏览文件 @
10870d68
// this is less
.app-layoutpanel {
height: 100%;
> .app-layoutpanel-container {
height: 100%;
}
.item-field{
padding: 0 4px;
display: flex;
>.item-field-label{
padding: 0 8px;
}
}
}
\ No newline at end of file
app_CRM/src/widgets/opportunity/panel-panel/panel-panel.vue
0 → 100644
浏览文件 @
10870d68
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
PanelBase
from
'./panel-panel-base.vue'
;
@
Component
({
components
:
{
}
})
export
default
class
Panel
extends
PanelBase
{
}
</
script
>
\ No newline at end of file
app_CRM/src/widgets/opportunity/product-info-form/product-info-form-base.vue
浏览文件 @
10870d68
...
...
@@ -4,7 +4,7 @@
<row
>
<i-col
v-show=
"detailsModel.group1.visible"
:style=
"
{}" :lg="{ span: 24, offset: 0 }">
<app-form-group
layoutType=
"TABLE_24COL"
titleStyle=
""
class=
''
:uiActionGroup=
"detailsModel.group1.uiActionGroup"
@
groupuiactionclick=
"groupUIActionClick($event)"
:caption=
"$t('entities.opportunity.productinfo_form.details.group1')"
:isShowCaption=
"
fals
e"
uiStyle=
"DEFAULT"
:titleBarCloseMode=
"0"
:isInfoGroupMode=
"true"
>
<app-form-group
layoutType=
"TABLE_24COL"
titleStyle=
""
class=
''
:uiActionGroup=
"detailsModel.group1.uiActionGroup"
@
groupuiactionclick=
"groupUIActionClick($event)"
:caption=
"$t('entities.opportunity.productinfo_form.details.group1')"
:isShowCaption=
"
tru
e"
uiStyle=
"DEFAULT"
:titleBarCloseMode=
"0"
:isInfoGroupMode=
"true"
>
<row>
<i-col
v-show=
"detailsModel.pricelevelname.visible"
:style=
"
{}" :md="{ span: 12, offset: 0 }" :lg="{ span: 8, offset: 0 }" :xl="{ span: 6, offset: 0 }">
<app-form-item
name=
'pricelevelname'
:itemRules=
"this.rules.pricelevelname"
class=
''
:caption=
"$t('entities.opportunity.productinfo_form.details.pricelevelname')"
uiStyle=
"DEFAULT"
:labelWidth=
"130"
:isShowCaption=
"true"
:error=
"detailsModel.pricelevelname.error"
:isEmptyCaption=
"false"
labelPos=
"LEFT"
>
...
...
@@ -19,7 +19,7 @@
</i-col>
<i-col
v-show=
"detailsModel.grouppanel1.visible"
:style=
"
{}" :lg="{ span: 24, offset: 0 }">
<app-form-group
layoutType=
"TABLE_24COL"
titleStyle=
""
class=
''
:uiActionGroup=
"detailsModel.grouppanel1.uiActionGroup"
@
groupuiactionclick=
"groupUIActionClick($event)"
:caption=
"$t('entities.opportunity.productinfo_form.details.grouppanel1')"
:isShowCaption=
"
fals
e"
uiStyle=
"DEFAULT"
:titleBarCloseMode=
"0"
:isInfoGroupMode=
"true"
>
<app-form-group
layoutType=
"TABLE_24COL"
titleStyle=
""
class=
''
:uiActionGroup=
"detailsModel.grouppanel1.uiActionGroup"
@
groupuiactionclick=
"groupUIActionClick($event)"
:caption=
"$t('entities.opportunity.productinfo_form.details.grouppanel1')"
:isShowCaption=
"
tru
e"
uiStyle=
"DEFAULT"
:titleBarCloseMode=
"0"
:isInfoGroupMode=
"true"
>
<row>
<i-col
v-show=
"detailsModel.druipart1.visible"
:style=
"
{}" :lg="{ span: 24, offset: 0 }">
<app-form-druipart
...
...
@@ -471,11 +471,11 @@ export default class ProductInfoBase extends Vue implements ControlInterface {
* @memberof ProductInfo
*/
public
detailsModel
:
any
=
{
group1
:
new
FormGroupPanelModel
({
caption
:
'
商机基本信息'
,
detailType
:
'GROUPPANEL'
,
name
:
'group1'
,
visible
:
true
,
isShowCaption
:
fals
e
,
form
:
this
,
uiActionGroup
:
{
caption
:
''
,
langbase
:
'entities.opportunity.productinfo_form'
,
extractMode
:
'ITEM'
,
details
:
[]
}
})
group1
:
new
FormGroupPanelModel
({
caption
:
'
价目表信息'
,
detailType
:
'GROUPPANEL'
,
name
:
'group1'
,
visible
:
true
,
isShowCaption
:
tru
e
,
form
:
this
,
uiActionGroup
:
{
caption
:
''
,
langbase
:
'entities.opportunity.productinfo_form'
,
extractMode
:
'ITEM'
,
details
:
[]
}
})
,
druipart1
:
new
FormDRUIPartModel
({
caption
:
''
,
detailType
:
'DRUIPART'
,
name
:
'druipart1'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
})
,
grouppanel1
:
new
FormGroupPanelModel
({
caption
:
'
分组面板'
,
detailType
:
'GROUPPANEL'
,
name
:
'grouppanel1'
,
visible
:
true
,
isShowCaption
:
fals
e
,
form
:
this
,
uiActionGroup
:
{
caption
:
''
,
langbase
:
'entities.opportunity.productinfo_form'
,
extractMode
:
'ITEM'
,
details
:
[]
}
})
grouppanel1
:
new
FormGroupPanelModel
({
caption
:
'
产品明细信息'
,
detailType
:
'GROUPPANEL'
,
name
:
'grouppanel1'
,
visible
:
true
,
isShowCaption
:
tru
e
,
form
:
this
,
uiActionGroup
:
{
caption
:
''
,
langbase
:
'entities.opportunity.productinfo_form'
,
extractMode
:
'ITEM'
,
details
:
[]
}
})
,
formpage1
:
new
FormPageModel
({
caption
:
'基本信息'
,
detailType
:
'FORMPAGE'
,
name
:
'formpage1'
,
visible
:
true
,
isShowCaption
:
true
,
form
:
this
})
,
...
...
businesscentral-core/src/main/resources/liquibase/h2_table.xml
浏览文件 @
10870d68
此差异已折叠。
点击以展开。
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录