提交 8fa3fa17 编写于 作者: ibizdev's avatar ibizdev

lab_gzf 发布系统代码

上级 aabe39cd
...@@ -369,6 +369,16 @@ ...@@ -369,6 +369,16 @@
"viewtag": "24e222a530526aab94ed4ed22cfedf9a", "viewtag": "24e222a530526aab94ed4ed22cfedf9a",
"memo": "系统自动添加" "memo": "系统自动添加"
}, },
"accountstatustabview": {
"title": "客户信息",
"caption": "客户",
"viewtype": "DETABEXPVIEW",
"viewmodule": "Base",
"viewname": "AccountStatusTabView",
"viewfilename": "account-status-tab-view",
"viewtag": "25bf5f8c2ebd1ce2be6d06717ed08a96",
"memo": ""
},
"campaignactivityquickcreate": { "campaignactivityquickcreate": {
"title": "快速新建", "title": "快速新建",
"caption": "快速新建", "caption": "快速新建",
...@@ -999,6 +1009,16 @@ ...@@ -999,6 +1009,16 @@
"viewtag": "6d8a2615030eed5779caea69f7f001aa", "viewtag": "6d8a2615030eed5779caea69f7f001aa",
"memo": "系统自动添加" "memo": "系统自动添加"
}, },
"accountusablegridview": {
"title": "客户表格视图",
"caption": "客户信息",
"viewtype": "DEGRIDVIEW",
"viewmodule": "Base",
"viewname": "AccountUsableGridView",
"viewfilename": "account-usable-grid-view",
"viewtag": "6d920bddee09ffdf2e18a0701ab9e9e7",
"memo": "系统自动添加"
},
"opportunitypickupview": { "opportunitypickupview": {
"title": "商机数据选择视图", "title": "商机数据选择视图",
"caption": "商机", "caption": "商机",
...@@ -1359,6 +1379,16 @@ ...@@ -1359,6 +1379,16 @@
"viewtag": "922d0c8c2262ba83063f6cb3557a450b", "viewtag": "922d0c8c2262ba83063f6cb3557a450b",
"memo": "系统自动添加" "memo": "系统自动添加"
}, },
"accountstopgridview": {
"title": "客户表格视图",
"caption": "客户信息",
"viewtype": "DEGRIDVIEW",
"viewmodule": "Base",
"viewname": "AccountStopGridView",
"viewfilename": "account-stop-grid-view",
"viewtag": "9433b49c4e43a15dfc8bbd91bdd4c27f",
"memo": "系统自动添加"
},
"knowledgearticleinfoview": { "knowledgearticleinfoview": {
"title": "知识文章信息", "title": "知识文章信息",
"caption": "知识文章", "caption": "知识文章",
......
...@@ -178,6 +178,10 @@ export default { ...@@ -178,6 +178,10 @@ export default {
caption: "客户", caption: "客户",
title: "客户编辑视图", title: "客户编辑视图",
}, },
statustabview: {
caption: "客户",
title: "客户信息",
},
pickupview: { pickupview: {
caption: "客户", caption: "客户",
title: "客户数据选择视图", title: "客户数据选择视图",
...@@ -202,6 +206,10 @@ export default { ...@@ -202,6 +206,10 @@ export default {
caption: "客户关系导航", caption: "客户关系导航",
title: "客户关系导航", title: "客户关系导航",
}, },
usablegridview: {
caption: "客户信息",
title: "客户表格视图",
},
editview: { editview: {
caption: "客户", caption: "客户",
title: "客户编辑视图", title: "客户编辑视图",
...@@ -222,6 +230,10 @@ export default { ...@@ -222,6 +230,10 @@ export default {
caption: "客户", caption: "客户",
title: "客户编辑视图", title: "客户编辑视图",
}, },
stopgridview: {
caption: "客户信息",
title: "客户表格视图",
},
quickcreate: { quickcreate: {
caption: "快速新建", caption: "快速新建",
title: "快速新建", title: "快速新建",
...@@ -378,10 +390,9 @@ export default { ...@@ -378,10 +390,9 @@ export default {
uiactions: { uiactions: {
}, },
}, },
info_majorcontact_form: { quickcreate_form: {
details: { details: {
druipart1: "", group1: "客户基本信息",
group1: "主联系人",
formpage1: "基本信息", formpage1: "基本信息",
srfupdatedate: "更新时间", srfupdatedate: "更新时间",
srforikey: "", srforikey: "",
...@@ -391,16 +402,25 @@ export default { ...@@ -391,16 +402,25 @@ export default {
srfuf: "", srfuf: "",
srfdeid: "", srfdeid: "",
srfsourcekey: "", srfsourcekey: "",
primarycontactname: "主要联系人", accountname: "客户名称",
emailaddress1: "电子邮件", telephone1: "主要电话",
fax: "传真",
websiteurl: "网站",
parentaccountname: "上级单位",
tickersymbol: "股票代号",
customertypecode: "关系类型",
defaultpricelevelname: "价目表",
defaultpricelevelid: "价目表",
parentaccountid: "上级单位",
accountid: "客户", accountid: "客户",
}, },
uiactions: { uiactions: {
}, },
}, },
quickcreate_form: { info_majorcontact_form: {
details: { details: {
group1: "客户基本信息", druipart1: "",
group1: "主联系人",
formpage1: "基本信息", formpage1: "基本信息",
srfupdatedate: "更新时间", srfupdatedate: "更新时间",
srforikey: "", srforikey: "",
...@@ -410,16 +430,8 @@ export default { ...@@ -410,16 +430,8 @@ export default {
srfuf: "", srfuf: "",
srfdeid: "", srfdeid: "",
srfsourcekey: "", srfsourcekey: "",
accountname: "客户名称", primarycontactname: "主要联系人",
telephone1: "主要电话", emailaddress1: "电子邮件",
fax: "传真",
websiteurl: "网站",
parentaccountname: "上级单位",
tickersymbol: "股票代号",
customertypecode: "关系类型",
defaultpricelevelname: "价目表",
defaultpricelevelid: "价目表",
parentaccountid: "上级单位",
accountid: "客户", accountid: "客户",
}, },
uiactions: { uiactions: {
...@@ -615,6 +627,56 @@ export default { ...@@ -615,6 +627,56 @@ export default {
uiactions: { uiactions: {
}, },
}, },
infotoolbar_toolbar: {
deuiaction4: {
caption: "Edit",
tip: "Edit {0}",
},
seperator4: {
caption: "",
tip: "",
},
tbitem17_inactive: {
caption: "停用",
tip: "停用",
},
tbitem17_active_sep: {
caption: "",
tip: "",
},
tbitem17_active: {
caption: "激活",
tip: "激活",
},
tbitem17_addlist: {
caption: "添加到市场营销列表",
tip: "添加到市场营销列表",
},
tbitem2: {
caption: "-",
tip: "",
},
deuiaction1: {
caption: "Remove And Close",
tip: "Remove And Close Window",
},
seperator2: {
caption: "",
tip: "",
},
deuiaction2: {
caption: "刷新",
tip: "刷新",
},
seperator1: {
caption: "",
tip: "",
},
tbitem12: {
caption: "关闭",
tip: "关闭",
},
},
gridviewtoolbar_toolbar: { gridviewtoolbar_toolbar: {
tbitem1_openquickcreateview: { tbitem1_openquickcreateview: {
caption: "新建", caption: "新建",
...@@ -667,54 +729,104 @@ export default { ...@@ -667,54 +729,104 @@ export default {
tip: "关闭", tip: "关闭",
}, },
}, },
infotoolbar_toolbar: { usablegridviewtoolbar_toolbar: {
deuiaction4: { tbitem1_openquickcreateview: {
caption: "新建",
tip: "新建",
},
tbitem2: {
caption: "-",
tip: "",
},
tbitem4: {
caption: "Edit", caption: "Edit",
tip: "Edit {0}", tip: "Edit {0}",
}, },
seperator4: { tbitem6: {
caption: "", caption: "Copy",
tip: "Copy {0}",
},
tbitem7: {
caption: "-",
tip: "", tip: "",
}, },
tbitem17_inactive: { tbitem8: {
caption: "Remove",
tip: "Remove {0}",
},
tbitem9: {
caption: "-",
tip: "",
},
tbitem13: {
caption: "Export",
tip: "Export {0} Data To Excel",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem14_inactive: {
caption: "停用", caption: "停用",
tip: "停用", tip: "停用",
}, },
tbitem17_active_sep: { tbitem15: {
caption: "", caption: "-",
tip: "", tip: "",
}, },
tbitem17_active: { tbitem19: {
caption: "激活", caption: "Filter",
tip: "激活", tip: "Filter",
}, },
tbitem17_addlist: { },
caption: "添加到市场营销列表", stopgridviewtoolbar_toolbar: {
tip: "添加到市场营销列表", tbitem1_openquickcreateview: {
caption: "新建",
tip: "新建",
}, },
tbitem2: { tbitem2: {
caption: "-", caption: "-",
tip: "", tip: "",
}, },
deuiaction1: { tbitem4: {
caption: "Remove And Close", caption: "Edit",
tip: "Remove And Close Window", tip: "Edit {0}",
}, },
seperator2: { tbitem6: {
caption: "", caption: "Copy",
tip: "Copy {0}",
},
tbitem7: {
caption: "-",
tip: "", tip: "",
}, },
deuiaction2: { tbitem8: {
caption: "刷新", caption: "Remove",
tip: "刷新", tip: "Remove {0}",
}, },
seperator1: { tbitem9: {
caption: "", caption: "-",
tip: "", tip: "",
}, },
tbitem12: { tbitem13: {
caption: "关闭", caption: "Export",
tip: "关闭", tip: "Export {0} Data To Excel",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem14_active: {
caption: "激活",
tip: "激活",
},
tbitem15: {
caption: "-",
tip: "",
},
tbitem19: {
caption: "Filter",
tip: "Filter",
}, },
}, },
gradation_treeview: { gradation_treeview: {
......
...@@ -177,6 +177,10 @@ export default { ...@@ -177,6 +177,10 @@ export default {
caption: "客户", caption: "客户",
title: "客户编辑视图", title: "客户编辑视图",
}, },
statustabview: {
caption: "客户",
title: "客户信息",
},
pickupview: { pickupview: {
caption: "客户", caption: "客户",
title: "客户数据选择视图", title: "客户数据选择视图",
...@@ -201,6 +205,10 @@ export default { ...@@ -201,6 +205,10 @@ export default {
caption: "客户关系导航", caption: "客户关系导航",
title: "客户关系导航", title: "客户关系导航",
}, },
usablegridview: {
caption: "客户信息",
title: "客户表格视图",
},
editview: { editview: {
caption: "客户", caption: "客户",
title: "客户编辑视图", title: "客户编辑视图",
...@@ -221,6 +229,10 @@ export default { ...@@ -221,6 +229,10 @@ export default {
caption: "客户", caption: "客户",
title: "客户编辑视图", title: "客户编辑视图",
}, },
stopgridview: {
caption: "客户信息",
title: "客户表格视图",
},
quickcreate: { quickcreate: {
caption: "快速新建", caption: "快速新建",
title: "快速新建", title: "快速新建",
...@@ -377,10 +389,9 @@ export default { ...@@ -377,10 +389,9 @@ export default {
uiactions: { uiactions: {
}, },
}, },
info_majorcontact_form: { quickcreate_form: {
details: { details: {
druipart1: "", group1: "客户基本信息",
group1: "主联系人",
formpage1: "基本信息", formpage1: "基本信息",
srfupdatedate: "更新时间", srfupdatedate: "更新时间",
srforikey: "", srforikey: "",
...@@ -390,16 +401,25 @@ export default { ...@@ -390,16 +401,25 @@ export default {
srfuf: "", srfuf: "",
srfdeid: "", srfdeid: "",
srfsourcekey: "", srfsourcekey: "",
primarycontactname: "主要联系人", accountname: "客户名称",
emailaddress1: "电子邮件", telephone1: "主要电话",
fax: "传真",
websiteurl: "网站",
parentaccountname: "上级单位",
tickersymbol: "股票代号",
customertypecode: "关系类型",
defaultpricelevelname: "价目表",
defaultpricelevelid: "价目表",
parentaccountid: "上级单位",
accountid: "客户", accountid: "客户",
}, },
uiactions: { uiactions: {
}, },
}, },
quickcreate_form: { info_majorcontact_form: {
details: { details: {
group1: "客户基本信息", druipart1: "",
group1: "主联系人",
formpage1: "基本信息", formpage1: "基本信息",
srfupdatedate: "更新时间", srfupdatedate: "更新时间",
srforikey: "", srforikey: "",
...@@ -409,16 +429,8 @@ export default { ...@@ -409,16 +429,8 @@ export default {
srfuf: "", srfuf: "",
srfdeid: "", srfdeid: "",
srfsourcekey: "", srfsourcekey: "",
accountname: "客户名称", primarycontactname: "主要联系人",
telephone1: "主要电话", emailaddress1: "电子邮件",
fax: "传真",
websiteurl: "网站",
parentaccountname: "上级单位",
tickersymbol: "股票代号",
customertypecode: "关系类型",
defaultpricelevelname: "价目表",
defaultpricelevelid: "价目表",
parentaccountid: "上级单位",
accountid: "客户", accountid: "客户",
}, },
uiactions: { uiactions: {
...@@ -614,6 +626,56 @@ export default { ...@@ -614,6 +626,56 @@ export default {
uiactions: { uiactions: {
}, },
}, },
infotoolbar_toolbar: {
deuiaction4: {
caption: "编辑",
tip: "编辑",
},
seperator4: {
caption: "",
tip: "",
},
tbitem17_inactive: {
caption: "停用",
tip: "停用",
},
tbitem17_active_sep: {
caption: "",
tip: "",
},
tbitem17_active: {
caption: "激活",
tip: "激活",
},
tbitem17_addlist: {
caption: "添加到市场营销列表",
tip: "添加到市场营销列表",
},
tbitem2: {
caption: "-",
tip: "",
},
deuiaction1: {
caption: "删除并关闭",
tip: "删除并关闭",
},
seperator2: {
caption: "",
tip: "",
},
deuiaction2: {
caption: "刷新",
tip: "刷新",
},
seperator1: {
caption: "",
tip: "",
},
tbitem12: {
caption: "关闭",
tip: "关闭",
},
},
gridviewtoolbar_toolbar: { gridviewtoolbar_toolbar: {
tbitem1_openquickcreateview: { tbitem1_openquickcreateview: {
caption: "新建", caption: "新建",
...@@ -666,54 +728,104 @@ export default { ...@@ -666,54 +728,104 @@ export default {
tip: "关闭", tip: "关闭",
}, },
}, },
infotoolbar_toolbar: { usablegridviewtoolbar_toolbar: {
deuiaction4: { tbitem1_openquickcreateview: {
caption: "新建",
tip: "新建",
},
tbitem2: {
caption: "-",
tip: "",
},
tbitem4: {
caption: "编辑", caption: "编辑",
tip: "编辑", tip: "编辑",
}, },
seperator4: { tbitem6: {
caption: "", caption: "拷贝",
tip: "拷贝",
},
tbitem7: {
caption: "-",
tip: "", tip: "",
}, },
tbitem17_inactive: { tbitem8: {
caption: "删除",
tip: "删除",
},
tbitem9: {
caption: "-",
tip: "",
},
tbitem13: {
caption: "导出",
tip: "导出",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem14_inactive: {
caption: "停用", caption: "停用",
tip: "停用", tip: "停用",
}, },
tbitem17_active_sep: { tbitem15: {
caption: "", caption: "-",
tip: "", tip: "",
}, },
tbitem17_active: { tbitem19: {
caption: "激活", caption: "过滤",
tip: "激活", tip: "过滤",
}, },
tbitem17_addlist: { },
caption: "添加到市场营销列表", stopgridviewtoolbar_toolbar: {
tip: "添加到市场营销列表", tbitem1_openquickcreateview: {
caption: "新建",
tip: "新建",
}, },
tbitem2: { tbitem2: {
caption: "-", caption: "-",
tip: "", tip: "",
}, },
deuiaction1: { tbitem4: {
caption: "删除并关闭", caption: "编辑",
tip: "删除并关闭", tip: "编辑",
}, },
seperator2: { tbitem6: {
caption: "", caption: "拷贝",
tip: "拷贝",
},
tbitem7: {
caption: "-",
tip: "", tip: "",
}, },
deuiaction2: { tbitem8: {
caption: "刷新", caption: "删除",
tip: "刷新", tip: "删除",
}, },
seperator1: { tbitem9: {
caption: "", caption: "-",
tip: "", tip: "",
}, },
tbitem12: { tbitem13: {
caption: "关闭", caption: "导出",
tip: "关闭", tip: "导出",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem14_active: {
caption: "激活",
tip: "激活",
},
tbitem15: {
caption: "-",
tip: "",
},
tbitem19: {
caption: "过滤",
tip: "过滤",
}, },
}, },
gradation_treeview: { gradation_treeview: {
......
...@@ -245,7 +245,7 @@ mock.onGet('v7/centralappmenu').reply((config: any) => { ...@@ -245,7 +245,7 @@ mock.onGet('v7/centralappmenu').reply((config: any) => {
iconcls: 'fa fa-users', iconcls: 'fa fa-users',
icon: '', icon: '',
textcls: '', textcls: '',
appfunctag: 'Auto4', appfunctag: '_4',
resourcetag: '', resourcetag: '',
}, },
{ {
......
...@@ -472,6 +472,94 @@ mock.onGet(new RegExp(/^\/accounts\/fetchroot(\?[\w-./?%&=,]*)*$/)).reply((confi ...@@ -472,6 +472,94 @@ mock.onGet(new RegExp(/^\/accounts\/fetchroot(\?[\w-./?%&=,]*)*$/)).reply((confi
console.groupEnd(); console.groupEnd();
return [status, records ? records : []]; return [status, records ? records : []];
}); });
// FetchStop
mock.onGet(new RegExp(/^\/accounts\/fetchstop$/)).reply((config: any) => {
console.groupCollapsed("实体:account 方法: FetchStop");
console.table({url:config.url, method: config.method, data:config.data});
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, null];
}
console.groupCollapsed("response数据 status: "+status+" data: ");
console.table(mockDatas);
console.groupEnd();
console.groupEnd();
return [status, mockDatas ? mockDatas : []];
});
// FetchStop
mock.onGet(new RegExp(/^\/accounts\/fetchstop(\?[\w-./?%&=,]*)*$/)).reply((config: any) => {
console.groupCollapsed("实体:account 方法: FetchStop");
console.table({url:config.url, method: config.method, data:config.data});
if(config.url.includes('page')){
let url = config.url.split('?')[1];
let params = qs.parse(url);
Object.assign(config, params);
}
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, null];
}
let total = mockDatas.length;
let records: Array<any> = [];
if(!config.page || !config.size){
records = mockDatas;
}else{
if((config.page-1)*config.size < total){
records = mockDatas.slice(config.page,config.size);
}
}
console.groupCollapsed("response数据 status: "+status+" data: ");
console.table(records ? records : []);
console.groupEnd();
console.groupEnd();
return [status, records ? records : []];
});
// FetchUsable
mock.onGet(new RegExp(/^\/accounts\/fetchusable$/)).reply((config: any) => {
console.groupCollapsed("实体:account 方法: FetchUsable");
console.table({url:config.url, method: config.method, data:config.data});
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, null];
}
console.groupCollapsed("response数据 status: "+status+" data: ");
console.table(mockDatas);
console.groupEnd();
console.groupEnd();
return [status, mockDatas ? mockDatas : []];
});
// FetchUsable
mock.onGet(new RegExp(/^\/accounts\/fetchusable(\?[\w-./?%&=,]*)*$/)).reply((config: any) => {
console.groupCollapsed("实体:account 方法: FetchUsable");
console.table({url:config.url, method: config.method, data:config.data});
if(config.url.includes('page')){
let url = config.url.split('?')[1];
let params = qs.parse(url);
Object.assign(config, params);
}
let status = MockAdapter.mockStatus(config);
if (status !== 200) {
return [status, null];
}
let total = mockDatas.length;
let records: Array<any> = [];
if(!config.page || !config.size){
records = mockDatas;
}else{
if((config.page-1)*config.size < total){
records = mockDatas.slice(config.page,config.size);
}
}
console.groupCollapsed("response数据 status: "+status+" data: ");
console.table(records ? records : []);
console.groupEnd();
console.groupEnd();
return [status, records ? records : []];
});
// URI参数传递情况未实现 // URI参数传递情况未实现
// URI参数传递情况未实现 // URI参数传递情况未实现
// URI参数传递情况未实现 // URI参数传递情况未实现
......
...@@ -303,6 +303,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => { ...@@ -303,6 +303,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ActivityPointerEditView", "viewname": "ActivityPointerEditView",
"viewtag": "24e222a530526aab94ed4ed22cfedf9a" "viewtag": "24e222a530526aab94ed4ed22cfedf9a"
}, },
"accountstatustabview": {
"title": "客户信息",
"caption": "客户",
"viewtype": "DETABEXPVIEW",
"viewmodule": "Base",
"viewname": "AccountStatusTabView",
"viewtag": "25bf5f8c2ebd1ce2be6d06717ed08a96"
},
"campaignactivityquickcreate": { "campaignactivityquickcreate": {
"title": "快速新建", "title": "快速新建",
"caption": "快速新建", "caption": "快速新建",
...@@ -807,6 +815,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => { ...@@ -807,6 +815,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "TransactionCurrencyPickupGridView", "viewname": "TransactionCurrencyPickupGridView",
"viewtag": "6d8a2615030eed5779caea69f7f001aa" "viewtag": "6d8a2615030eed5779caea69f7f001aa"
}, },
"accountusablegridview": {
"title": "客户表格视图",
"caption": "客户信息",
"viewtype": "DEGRIDVIEW",
"viewmodule": "Base",
"viewname": "AccountUsableGridView",
"viewtag": "6d920bddee09ffdf2e18a0701ab9e9e7"
},
"opportunitypickupview": { "opportunitypickupview": {
"title": "商机数据选择视图", "title": "商机数据选择视图",
"caption": "商机", "caption": "商机",
...@@ -1095,6 +1111,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => { ...@@ -1095,6 +1111,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "IncidentPickupView", "viewname": "IncidentPickupView",
"viewtag": "922d0c8c2262ba83063f6cb3557a450b" "viewtag": "922d0c8c2262ba83063f6cb3557a450b"
}, },
"accountstopgridview": {
"title": "客户表格视图",
"caption": "客户信息",
"viewtype": "DEGRIDVIEW",
"viewmodule": "Base",
"viewname": "AccountStopGridView",
"viewtag": "9433b49c4e43a15dfc8bbd91bdd4c27f"
},
"knowledgearticleinfoview": { "knowledgearticleinfoview": {
"title": "知识文章信息", "title": "知识文章信息",
"caption": "知识文章", "caption": "知识文章",
......
import { Subject } from 'rxjs';
import { TabExpViewBase } from '@/studio-core';
import AccountService from '@/service/account/account-service';
import TabExpViewEngine from '@engine/view/tab-exp-view-engine';
/**
* 客户信息视图基类
*
* @export
* @class AccountStatusTabViewBase
* @extends {TabExpViewBase}
*/
export class AccountStatusTabViewBase extends TabExpViewBase {
/**
* 实体服务对象
*
* @type {AccountService}
* @memberof AccountStatusTabViewBase
*/
protected appEntityService: AccountService = new AccountService;
/**
* 计数器服务对象集合
*
* @protected
* @type {Array<*>}
* @memberof AccountStatusTabViewBase
*/
protected counterServiceArray: Array<any> = [];
/**
* 视图模型数据
*
* @protected
* @type {*}
* @memberof AccountStatusTabViewBase
*/
protected model: any = {
srfCaption: 'entities.account.views.statustabview.caption',
srfTitle: 'entities.account.views.statustabview.title',
srfSubTitle: 'entities.account.views.statustabview.subtitle',
dataInfo: ''
}
/**
* 容器模型
*
* @protected
* @type {*}
* @memberof AccountStatusTabViewBase
*/
protected containerModel: any = {
view_tabexppanel: { name: 'tabexppanel', type: 'TABEXPPANEL' },
};
/**
* 视图唯一标识
*
* @protected
* @type {string}
* @memberof ViewBase
*/
protected viewtag: string = '25bf5f8c2ebd1ce2be6d06717ed08a96';
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof AccountStatusTabViewBase
*/
public engine: TabExpViewEngine = new TabExpViewEngine();
/**
* 引擎初始化
*
* @public
* @memberof AccountStatusTabViewBase
*/
public engineInit(): void {
this.engine.init({
view: this,
keyPSDEField: 'account',
majorPSDEField: 'accountname',
isLoadDefault: true,
});
}
/**
* 加载模型
*
* @protected
* @memberof AccountStatusTabViewBase
*/
protected async loadModel(): Promise<any> {
if(this.context.account){
this.appEntityService.getDataInfo(JSON.parse(JSON.stringify(this.context)),{},false).then((response:any) =>{
if (!response || response.status !== 200) {
return;
}
const { data: _data } = response;
if (_data.accountname) {
Object.assign(this.model, { dataInfo: _data.accountname });
if (this.$tabPageExp) {
this.$tabPageExp.setCurPageCaption(this.model.srfTitle, this.model.srfTitle, this.model.dataInfo);
}
if(this.$route){
this.$route.meta.info = this.model.dataInfo;
}
Object.assign(this.model, { srfTitle: `${this.$t(this.model.srfTitle)} - ${this.model.dataInfo}` });
this.$appService.navHistory.setCaption({ route: this.$route, info: this.model.dataInfo });
}
})
}
}
}
\ No newline at end of file
<studio-view-style2 viewName="accountstatustabview" viewTitle="客户信息" class='detabexpview account-status-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
<template src="./account-status-tab-view.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { AccountStatusTabViewBase } from './account-status-tab-view-base';
import view_tabexppanel from '@widgets/account/status-tab-viewtabexppanel-tabexppanel/status-tab-viewtabexppanel-tabexppanel.vue';
/**
* 客户信息视图
*
* @export
* @class AccountStatusTabView
* @extends {AccountStatusTabViewBase}
*/
@Component({
components: {
view_tabexppanel,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
vm.$appService.navHistory.setViewTag(vm.viewtag, to);
vm.$appService.navHistory.setViewContext(vm.context, to);
});
}
})
@VueLifeCycleProcessing()
export default class AccountStatusTabView extends AccountStatusTabViewBase { }
</script>
<studio-view-style2 viewName="accountstopgridview" viewTitle="客户表格视图" class='degridview account-stop-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="FetchStop"
: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
<template src="./account-stop-grid-view.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { AccountStopGridViewBase } from './account-stop-grid-view-base';
import view_grid from '@widgets/account/main-grid/main-grid.vue';
import view_searchform from '@widgets/account/default-searchform/default-searchform.vue';
/**
* 客户表格视图视图
*
* @export
* @class AccountStopGridView
* @extends {AccountStopGridViewBase}
*/
@Component({
components: {
view_grid,
view_searchform,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
vm.$appService.navHistory.setViewTag(vm.viewtag, to);
vm.$appService.navHistory.setViewContext(vm.context, to);
});
}
})
@VueLifeCycleProcessing()
export default class AccountStopGridView extends AccountStopGridViewBase { }
</script>
<studio-view-style2 viewName="accountusablegridview" viewTitle="客户表格视图" class='degridview account-usable-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="FetchUsable"
: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
<template src="./account-usable-grid-view.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { AccountUsableGridViewBase } from './account-usable-grid-view-base';
import view_grid from '@widgets/account/main-grid/main-grid.vue';
import view_searchform from '@widgets/account/default-searchform/default-searchform.vue';
/**
* 客户表格视图视图
*
* @export
* @class AccountUsableGridView
* @extends {AccountUsableGridViewBase}
*/
@Component({
components: {
view_grid,
view_searchform,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
vm.$appService.navHistory.setViewTag(vm.viewtag, to);
vm.$appService.navHistory.setViewContext(vm.context, to);
});
}
})
@VueLifeCycleProcessing()
export default class AccountUsableGridView extends AccountUsableGridViewBase { }
</script>
export const PageComponents = { export const PageComponents = {
install(Vue: any, opt: any) { install(Vue: any, opt: any) {
Vue.component('account-gradation', () => import('@pages/base/account-gradation/account-gradation.vue'));
Vue.component('account-quick-create', () => import('@pages/base/account-quick-create/account-quick-create.vue')); Vue.component('account-quick-create', () => import('@pages/base/account-quick-create/account-quick-create.vue'));
Vue.component('goal-child-goal-grid-view', () => import('@pages/sales/goal-child-goal-grid-view/goal-child-goal-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('incident-edit-chlid-incident', () => import('@pages/service/incident-edit-chlid-incident/incident-edit-chlid-incident.vue')); Vue.component('incident-edit-chlid-incident', () => import('@pages/service/incident-edit-chlid-incident/incident-edit-chlid-incident.vue'));
...@@ -8,8 +7,8 @@ export const PageComponents = { ...@@ -8,8 +7,8 @@ export const PageComponents = {
Vue.component('product-price-level-pro-prilv-grid-view', () => import('@pages/product/product-price-level-pro-prilv-grid-view/product-price-level-pro-prilv-grid-view.vue')); Vue.component('product-price-level-pro-prilv-grid-view', () => import('@pages/product/product-price-level-pro-prilv-grid-view/product-price-level-pro-prilv-grid-view.vue'));
Vue.component('list-account-by-list', () => import('@pages/marketing/list-account-by-list/list-account-by-list.vue')); Vue.component('list-account-by-list', () => import('@pages/marketing/list-account-by-list/list-account-by-list.vue'));
Vue.component('product-info-pro-info', () => import('@pages/product/product-info-pro-info/product-info-pro-info.vue')); Vue.component('product-info-pro-info', () => import('@pages/product/product-info-pro-info/product-info-pro-info.vue'));
Vue.component('competitor-option-view', () => import('@pages/sales/competitor-option-view/competitor-option-view.vue'));
Vue.component('campaign-response-by-parent-key', () => import('@pages/marketing/campaign-response-by-parent-key/campaign-response-by-parent-key.vue')); Vue.component('campaign-response-by-parent-key', () => import('@pages/marketing/campaign-response-by-parent-key/campaign-response-by-parent-key.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('account-edit-view', () => import('@pages/base/account-edit-view/account-edit-view.vue'));
Vue.component('sales-literature-summary-view', () => import('@pages/sales/sales-literature-summary-view/sales-literature-summary-view.vue')); Vue.component('sales-literature-summary-view', () => import('@pages/sales/sales-literature-summary-view/sales-literature-summary-view.vue'));
Vue.component('lead-pickup-view', () => import('@pages/sales/lead-pickup-view/lead-pickup-view.vue')); Vue.component('lead-pickup-view', () => import('@pages/sales/lead-pickup-view/lead-pickup-view.vue'));
...@@ -130,6 +129,7 @@ export const PageComponents = { ...@@ -130,6 +129,7 @@ export const PageComponents = {
Vue.component('invoice-info-view', () => import('@pages/finance/invoice-info-view/invoice-info-view.vue')); Vue.component('invoice-info-view', () => import('@pages/finance/invoice-info-view/invoice-info-view.vue'));
Vue.component('contact-by-account', () => import('@pages/base/contact-by-account/contact-by-account.vue')); Vue.component('contact-by-account', () => import('@pages/base/contact-by-account/contact-by-account.vue'));
Vue.component('lead-qualification', () => import('@pages/sales/lead-qualification/lead-qualification.vue')); Vue.component('lead-qualification', () => import('@pages/sales/lead-qualification/lead-qualification.vue'));
Vue.component('account-status-tab-view', () => import('@pages/base/account-status-tab-view/account-status-tab-view.vue'));
Vue.component('ibiz-list-summary', () => import('@pages/marketing/ibiz-list-summary/ibiz-list-summary.vue')); Vue.component('ibiz-list-summary', () => import('@pages/marketing/ibiz-list-summary/ibiz-list-summary.vue'));
Vue.component('sales-literature-item-grid-view', () => import('@pages/sales/sales-literature-item-grid-view/sales-literature-item-grid-view.vue')); Vue.component('sales-literature-item-grid-view', () => import('@pages/sales/sales-literature-item-grid-view/sales-literature-item-grid-view.vue'));
Vue.component('lead-dashboard-view', () => import('@pages/sales/lead-dashboard-view/lead-dashboard-view.vue')); Vue.component('lead-dashboard-view', () => import('@pages/sales/lead-dashboard-view/lead-dashboard-view.vue'));
...@@ -149,6 +149,7 @@ export const PageComponents = { ...@@ -149,6 +149,7 @@ export const PageComponents = {
Vue.component('opportunity-competitor-edit-view', () => import('@pages/sales/opportunity-competitor-edit-view/opportunity-competitor-edit-view.vue')); Vue.component('opportunity-competitor-edit-view', () => import('@pages/sales/opportunity-competitor-edit-view/opportunity-competitor-edit-view.vue'));
Vue.component('incident-info-incident-view', () => import('@pages/service/incident-info-incident-view/incident-info-incident-view.vue')); Vue.component('incident-info-incident-view', () => import('@pages/service/incident-info-incident-view/incident-info-incident-view.vue'));
Vue.component('competitor-sales-literature-sal-lit-comp-edit-view', () => import('@pages/sales/competitor-sales-literature-sal-lit-comp-edit-view/competitor-sales-literature-sal-lit-comp-edit-view.vue')); Vue.component('competitor-sales-literature-sal-lit-comp-edit-view', () => import('@pages/sales/competitor-sales-literature-sal-lit-comp-edit-view/competitor-sales-literature-sal-lit-comp-edit-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('sales-order-info-soview', () => import('@pages/sales/sales-order-info-soview/sales-order-info-soview.vue'));
Vue.component('activity-pointer-by-parent-key', () => import('@pages/base/activity-pointer-by-parent-key/activity-pointer-by-parent-key.vue')); Vue.component('activity-pointer-by-parent-key', () => import('@pages/base/activity-pointer-by-parent-key/activity-pointer-by-parent-key.vue'));
Vue.component('entitlement-pickup-view', () => import('@pages/service/entitlement-pickup-view/entitlement-pickup-view.vue')); Vue.component('entitlement-pickup-view', () => import('@pages/service/entitlement-pickup-view/entitlement-pickup-view.vue'));
...@@ -161,6 +162,7 @@ export const PageComponents = { ...@@ -161,6 +162,7 @@ export const PageComponents = {
Vue.component('product-sales-literature-sal-lit-pro-edit-view', () => import('@pages/sales/product-sales-literature-sal-lit-pro-edit-view/product-sales-literature-sal-lit-pro-edit-view.vue')); Vue.component('product-sales-literature-sal-lit-pro-edit-view', () => import('@pages/sales/product-sales-literature-sal-lit-pro-edit-view/product-sales-literature-sal-lit-pro-edit-view.vue'));
Vue.component('sales-order-summary-view', () => import('@pages/sales/sales-order-summary-view/sales-order-summary-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-detail-edit-view', () => import('@pages/sales/quote-detail-edit-view/quote-detail-edit-view.vue'));
Vue.component('account-stop-grid-view', () => import('@pages/base/account-stop-grid-view/account-stop-grid-view.vue'));
Vue.component('quote-edit-view', () => import('@pages/sales/quote-edit-view/quote-edit-view.vue')); Vue.component('quote-edit-view', () => import('@pages/sales/quote-edit-view/quote-edit-view.vue'));
Vue.component('incident-grid-view', () => import('@pages/service/incident-grid-view/incident-grid-view.vue')); Vue.component('incident-grid-view', () => import('@pages/service/incident-grid-view/incident-grid-view.vue'));
Vue.component('account-inner-pickup-view', () => import('@pages/base/account-inner-pickup-view/account-inner-pickup-view.vue')); Vue.component('account-inner-pickup-view', () => import('@pages/base/account-inner-pickup-view/account-inner-pickup-view.vue'));
......
...@@ -47,20 +47,6 @@ const router = new Router({ ...@@ -47,20 +47,6 @@ const router = new Router({
}, },
component: () => import('@pages/ungroup/central/central.vue'), component: () => import('@pages/ungroup/central/central.vue'),
children: [ children: [
{
path: 'accounts/:account?/gradation/:gradation?',
meta: {
caption: 'entities.account.views.gradation.title',
info:'',
parameters: [
{ pathName: 'central', parameterName: 'central' },
{ pathName: 'accounts', parameterName: 'account' },
{ pathName: 'gradation', parameterName: 'gradation' },
],
requireAuth: true,
},
component: () => import('@pages/base/account-gradation/account-gradation.vue'),
},
{ {
path: 'accounts/:account?/quickcreate/:quickcreate?', path: 'accounts/:account?/quickcreate/:quickcreate?',
meta: { meta: {
...@@ -205,32 +191,32 @@ const router = new Router({ ...@@ -205,32 +191,32 @@ const router = new Router({
component: () => import('@pages/product/product-info-pro-info/product-info-pro-info.vue'), component: () => import('@pages/product/product-info-pro-info/product-info-pro-info.vue'),
}, },
{ {
path: 'competitors/:competitor?/optionview/:optionview?', path: 'campaignresponses/:campaignresponse?/byparentkey/:byparentkey?',
meta: { meta: {
caption: 'entities.competitor.views.optionview.title', caption: 'entities.campaignresponse.views.byparentkey.title',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'central', parameterName: 'central' }, { pathName: 'central', parameterName: 'central' },
{ pathName: 'competitors', parameterName: 'competitor' }, { pathName: 'campaignresponses', parameterName: 'campaignresponse' },
{ pathName: 'optionview', parameterName: 'optionview' }, { pathName: 'byparentkey', parameterName: 'byparentkey' },
], ],
requireAuth: true, requireAuth: true,
}, },
component: () => import('@pages/sales/competitor-option-view/competitor-option-view.vue'), component: () => import('@pages/marketing/campaign-response-by-parent-key/campaign-response-by-parent-key.vue'),
}, },
{ {
path: 'campaignresponses/:campaignresponse?/byparentkey/:byparentkey?', path: 'competitors/:competitor?/optionview/:optionview?',
meta: { meta: {
caption: 'entities.campaignresponse.views.byparentkey.title', caption: 'entities.competitor.views.optionview.title',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'central', parameterName: 'central' }, { pathName: 'central', parameterName: 'central' },
{ pathName: 'campaignresponses', parameterName: 'campaignresponse' }, { pathName: 'competitors', parameterName: 'competitor' },
{ pathName: 'byparentkey', parameterName: 'byparentkey' }, { pathName: 'optionview', parameterName: 'optionview' },
], ],
requireAuth: true, requireAuth: true,
}, },
component: () => import('@pages/marketing/campaign-response-by-parent-key/campaign-response-by-parent-key.vue'), component: () => import('@pages/sales/competitor-option-view/competitor-option-view.vue'),
}, },
{ {
path: 'accounts/:account?/editview/:editview?', path: 'accounts/:account?/editview/:editview?',
...@@ -3537,6 +3523,20 @@ const router = new Router({ ...@@ -3537,6 +3523,20 @@ const router = new Router({
}, },
component: () => import('@pages/sales/competitor-sales-literature-sal-lit-comp-grid-view/competitor-sales-literature-sal-lit-comp-grid-view.vue'), component: () => import('@pages/sales/competitor-sales-literature-sal-lit-comp-grid-view/competitor-sales-literature-sal-lit-comp-grid-view.vue'),
}, },
{
path: 'accounts/:account?/statustabview/:statustabview?',
meta: {
caption: 'entities.account.views.statustabview.title',
info:'',
parameters: [
{ pathName: 'central', parameterName: 'central' },
{ pathName: 'accounts', parameterName: 'account' },
{ pathName: 'statustabview', parameterName: 'statustabview' },
],
requireAuth: true,
},
component: () => import('@pages/base/account-status-tab-view/account-status-tab-view.vue'),
},
{ {
path: 'ibizlists/:ibizlist?/summary/:summary?', path: 'ibizlists/:ibizlist?/summary/:summary?',
meta: { meta: {
...@@ -4274,6 +4274,20 @@ const router = new Router({ ...@@ -4274,6 +4274,20 @@ const router = new Router({
}, },
component: () => import('@pages/sales/competitor-sales-literature-sal-lit-comp-edit-view/competitor-sales-literature-sal-lit-comp-edit-view.vue'), component: () => import('@pages/sales/competitor-sales-literature-sal-lit-comp-edit-view/competitor-sales-literature-sal-lit-comp-edit-view.vue'),
}, },
{
path: 'accounts/:account?/usablegridview/:usablegridview?',
meta: {
caption: 'entities.account.views.usablegridview.title',
info:'',
parameters: [
{ pathName: 'central', parameterName: 'central' },
{ pathName: 'accounts', parameterName: 'account' },
{ pathName: 'usablegridview', parameterName: 'usablegridview' },
],
requireAuth: true,
},
component: () => import('@pages/base/account-usable-grid-view/account-usable-grid-view.vue'),
},
{ {
path: 'salesorders/:salesorder?/info_soview/:info_soview?', path: 'salesorders/:salesorder?/info_soview/:info_soview?',
meta: { meta: {
...@@ -4597,6 +4611,20 @@ const router = new Router({ ...@@ -4597,6 +4611,20 @@ const router = new Router({
}, },
component: () => import('@pages/sales/quote-detail-edit-view/quote-detail-edit-view.vue'), component: () => import('@pages/sales/quote-detail-edit-view/quote-detail-edit-view.vue'),
}, },
{
path: 'accounts/:account?/stopgridview/:stopgridview?',
meta: {
caption: 'entities.account.views.stopgridview.title',
info:'',
parameters: [
{ pathName: 'central', parameterName: 'central' },
{ pathName: 'accounts', parameterName: 'account' },
{ pathName: 'stopgridview', parameterName: 'stopgridview' },
],
requireAuth: true,
},
component: () => import('@pages/base/account-stop-grid-view/account-stop-grid-view.vue'),
},
{ {
path: 'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/quotes/:quote?/editview/:editview?', path: 'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/quotes/:quote?/editview/:editview?',
meta: { meta: {
......
import { Http,Util } from '@/utils'; import { Http,Util } from '@/utils';
import EntityService from '../entity-service'; import EntityService from '../entity-service';
import ActiveLogic from '@/service/account/active-logic';
import InactiveLogic from '@/service/account/inactive-logic';
...@@ -210,7 +212,9 @@ export default class AccountServiceBase extends EntityService { ...@@ -210,7 +212,9 @@ export default class AccountServiceBase extends EntityService {
* @memberof AccountServiceBase * @memberof AccountServiceBase
*/ */
public async Active(context: any = {},data: any = {}, isloading?: boolean): Promise<any> { public async Active(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
return Http.getInstance().post(`/accounts/${context.account}/active`,data,isloading); let appLogic:ActiveLogic = new ActiveLogic({context:JSON.parse(JSON.stringify(context)),data:JSON.parse(JSON.stringify(data))});
const result = await appLogic.onExecute(context,data,isloading?true:false);
return {status:200,data:result};
} }
/** /**
...@@ -249,7 +253,9 @@ export default class AccountServiceBase extends EntityService { ...@@ -249,7 +253,9 @@ export default class AccountServiceBase extends EntityService {
* @memberof AccountServiceBase * @memberof AccountServiceBase
*/ */
public async Inactive(context: any = {},data: any = {}, isloading?: boolean): Promise<any> { public async Inactive(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
return Http.getInstance().post(`/accounts/${context.account}/inactive`,data,isloading); let appLogic:InactiveLogic = new InactiveLogic({context:JSON.parse(JSON.stringify(context)),data:JSON.parse(JSON.stringify(data))});
const result = await appLogic.onExecute(context,data,isloading?true:false);
return {status:200,data:result};
} }
/** /**
...@@ -327,4 +333,32 @@ export default class AccountServiceBase extends EntityService { ...@@ -327,4 +333,32 @@ export default class AccountServiceBase extends EntityService {
let tempData:any = JSON.parse(JSON.stringify(data)); let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/accounts/fetchroot`,tempData,isloading); return Http.getInstance().get(`/accounts/fetchroot`,tempData,isloading);
} }
/**
* FetchStop接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof AccountServiceBase
*/
public async FetchStop(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/accounts/fetchstop`,tempData,isloading);
}
/**
* FetchUsable接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof AccountServiceBase
*/
public async FetchUsable(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/accounts/fetchusable`,tempData,isloading);
}
} }
\ No newline at end of file
import AccountService from '@/service/account/account-service';
import { Verify } from '@/utils/verify/verify';
/**
* 激活
*
* @export
* @class ActiveLogicBase
*/
export default class ActiveLogicBase {
/**
* 名称
*
* @memberof ActiveLogicBase
*/
private name:string ="Active";
/**
* 唯一标识
*
* @memberof ActiveLogicBase
*/
private id:string = "BEBE0B69-F45C-4F13-94CF-B99C8EBC1958";
/**
* 默认参数名称
*
* @memberof ActiveLogicBase
*/
private defaultParamName:string = "Default";
/**
* 参数集合
*
* @memberof ActiveLogicBase
*/
private paramsMap:Map<string,any> = new Map();
/**
* Creates an instance of ActiveLogicBase.
*
* @param {*} [opts={}]
* @memberof ActiveLogicBase
*/
constructor(opts: any = {}) {
this.initParams(opts);
}
/**
* 初始化参数集合
*
* @param {*} [opts={}]
* @memberof ActiveLogicBase
*/
public initParams(opts:any){
this.paramsMap.set('Default',opts);
}
/**
* 计算0节点结果
*
* @param params 传入参数
*/
public compute0Cond(params:any):boolean{
return true;
}
/**
* 计算1节点结果
*
* @param params 传入参数
*/
public compute1Cond(params:any):boolean{
return true;
}
/**
* 执行逻辑
*
* @param context 应用上下文
* @param params 传入参数
*/
public onExecute(context:any,params:any,isloading:boolean){
return this.executeBegin(context,params,isloading);
}
/**
* 更新客户状态
*
* @param context 应用上下文
* @param params 传入参数
*/
private async executeDeaction1(context:any,params:any,isloading:boolean){
// 行为处理节点
let result: any;
let actionParam:any = this.paramsMap.get('Default');
const targetService:AccountService = new AccountService();
if (targetService['Update'] && targetService['Update'] instanceof Function) {
result = await targetService['Update'](actionParam.context,actionParam.data, false);
}
if(result && result.status == 200){
Object.assign(actionParam.data,result.data);
return this.paramsMap.get(this.defaultParamName).data;
}
}
/**
* 开始
*
* @param params 传入参数
*/
private async executeBegin(context:any,params:any,isloading:boolean){
//开始节点
if(this.compute1Cond(params)){
return this.executePrepareparam1(context,params,isloading);
}
}
/**
* 准备参数
*
* @param context 应用上下文
* @param params 传入参数
*/
private async executePrepareparam1(context:any,params:any,isloading:boolean){
// 准备参数节点
let tempDstParam0Context:any = this.paramsMap.get('Default').context?this.paramsMap.get('Default').context:{};
let tempDstParam0Data:any = this.paramsMap.get('Default').data?this.paramsMap.get('Default').data:{};
Object.assign(tempDstParam0Data,{statuscode:"1"});
this.paramsMap.set('Default',{data:tempDstParam0Data,context:tempDstParam0Context});
if(this.compute0Cond(params)){
return this.executeDeaction1(context,params,isloading);
}
}
}
\ No newline at end of file
import { Http,Util } from '@/utils';
import ActiveLogicBase from './active-logic-base';
/**
* 激活
*
* @export
* @class ActiveLogic
*/
export default class ActiveLogic extends ActiveLogicBase{
/**
* Creates an instance of ActiveLogic
*
* @param {*} [opts={}]
* @memberof ActiveLogic
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AccountService from '@/service/account/account-service';
import { Verify } from '@/utils/verify/verify';
/**
* 停用
*
* @export
* @class InactiveLogicBase
*/
export default class InactiveLogicBase {
/**
* 名称
*
* @memberof InactiveLogicBase
*/
private name:string ="Inactive";
/**
* 唯一标识
*
* @memberof InactiveLogicBase
*/
private id:string = "63D03E37-0794-4554-BBF9-6C0A60307A78";
/**
* 默认参数名称
*
* @memberof InactiveLogicBase
*/
private defaultParamName:string = "Default";
/**
* 参数集合
*
* @memberof InactiveLogicBase
*/
private paramsMap:Map<string,any> = new Map();
/**
* Creates an instance of InactiveLogicBase.
*
* @param {*} [opts={}]
* @memberof InactiveLogicBase
*/
constructor(opts: any = {}) {
this.initParams(opts);
}
/**
* 初始化参数集合
*
* @param {*} [opts={}]
* @memberof InactiveLogicBase
*/
public initParams(opts:any){
this.paramsMap.set('Default',opts);
}
/**
* 计算0节点结果
*
* @param params 传入参数
*/
public compute0Cond(params:any):boolean{
return true;
}
/**
* 计算1节点结果
*
* @param params 传入参数
*/
public compute1Cond(params:any):boolean{
return true;
}
/**
* 执行逻辑
*
* @param context 应用上下文
* @param params 传入参数
*/
public onExecute(context:any,params:any,isloading:boolean){
return this.executeBegin(context,params,isloading);
}
/**
* 开始
*
* @param params 传入参数
*/
private async executeBegin(context:any,params:any,isloading:boolean){
//开始节点
if(this.compute0Cond(params)){
return this.executePrepareparam1(context,params,isloading);
}
}
/**
* 准备参数
*
* @param context 应用上下文
* @param params 传入参数
*/
private async executePrepareparam1(context:any,params:any,isloading:boolean){
// 准备参数节点
let tempDstParam0Context:any = this.paramsMap.get('Default').context?this.paramsMap.get('Default').context:{};
let tempDstParam0Data:any = this.paramsMap.get('Default').data?this.paramsMap.get('Default').data:{};
Object.assign(tempDstParam0Data,{statuscode:"2"});
this.paramsMap.set('Default',{data:tempDstParam0Data,context:tempDstParam0Context});
if(this.compute1Cond(params)){
return this.executeDeaction1(context,params,isloading);
}
}
/**
* 更新客户状态
*
* @param context 应用上下文
* @param params 传入参数
*/
private async executeDeaction1(context:any,params:any,isloading:boolean){
// 行为处理节点
let result: any;
let actionParam:any = this.paramsMap.get('Default');
const targetService:AccountService = new AccountService();
if (targetService['Update'] && targetService['Update'] instanceof Function) {
result = await targetService['Update'](actionParam.context,actionParam.data, false);
}
if(result && result.status == 200){
Object.assign(actionParam.data,result.data);
return this.paramsMap.get(this.defaultParamName).data;
}
}
}
\ No newline at end of file
import { Http,Util } from '@/utils';
import InactiveLogicBase from './inactive-logic-base';
/**
* 停用
*
* @export
* @class InactiveLogic
*/
export default class InactiveLogic extends InactiveLogicBase{
/**
* Creates an instance of InactiveLogic
*
* @param {*} [opts={}]
* @memberof InactiveLogic
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
...@@ -312,6 +312,18 @@ export const viewstate: any = { ...@@ -312,6 +312,18 @@ export const viewstate: any = {
refviews: [ refviews: [
], ],
}, },
{
viewtag: '25bf5f8c2ebd1ce2be6d06717ed08a96',
viewmodule: 'Base',
viewname: 'AccountStatusTabView',
viewaction: '',
viewdatachange: false,
refviews: [
'5c7e90ccfaeb49b5bd84ae6c17b479e3',
'6d920bddee09ffdf2e18a0701ab9e9e7',
'9433b49c4e43a15dfc8bbd91bdd4c27f',
],
},
{ {
viewtag: '264e13762a19c63707b3aa5718afa303', viewtag: '264e13762a19c63707b3aa5718afa303',
viewmodule: 'Marketing', viewmodule: 'Marketing',
...@@ -860,17 +872,6 @@ export const viewstate: any = { ...@@ -860,17 +872,6 @@ export const viewstate: any = {
refviews: [ refviews: [
], ],
}, },
{
viewtag: '6978259896338a7ace85a9fbc5d70395',
viewmodule: 'Base',
viewname: 'AccountGradation',
viewaction: '',
viewdatachange: false,
refviews: [
'5c7e90ccfaeb49b5bd84ae6c17b479e3',
'6e18ac74e5685439110f9b4e534ee005',
],
},
{ {
viewtag: '6c67094479c2f8af7ea1575eee584056', viewtag: '6c67094479c2f8af7ea1575eee584056',
viewmodule: 'Sales', viewmodule: 'Sales',
...@@ -890,6 +891,18 @@ export const viewstate: any = { ...@@ -890,6 +891,18 @@ export const viewstate: any = {
refviews: [ refviews: [
], ],
}, },
{
viewtag: '6d920bddee09ffdf2e18a0701ab9e9e7',
viewmodule: 'Base',
viewname: 'AccountUsableGridView',
viewaction: '',
viewdatachange: false,
refviews: [
'a69ba7dd2f8bdac8a3c733dcc79c0ee5',
'2e9c7792c3a728896ca8902634f71983',
'6e18ac74e5685439110f9b4e534ee005',
],
},
{ {
viewtag: '6debde861c6e6f91eeb442cb869e9737', viewtag: '6debde861c6e6f91eeb442cb869e9737',
viewmodule: 'Sales', viewmodule: 'Sales',
...@@ -1099,8 +1112,8 @@ export const viewstate: any = { ...@@ -1099,8 +1112,8 @@ export const viewstate: any = {
refviews: [ refviews: [
'07c5035fbb847e889f3dbb9657723f30', '07c5035fbb847e889f3dbb9657723f30',
'24a93674ec4c976c08902a3e95421ca6', '24a93674ec4c976c08902a3e95421ca6',
'6978259896338a7ace85a9fbc5d70395',
'b38bc0256ecd5be1a58a3c2210a98d05', 'b38bc0256ecd5be1a58a3c2210a98d05',
'25bf5f8c2ebd1ce2be6d06717ed08a96',
'5f8f689d5dccc3db6d2b74a24a8b24ef', '5f8f689d5dccc3db6d2b74a24a8b24ef',
'dfc0051ae4813115e03f3d095f8cd7d3', 'dfc0051ae4813115e03f3d095f8cd7d3',
'2f0540af5db76052cee0e8e91f0204c4', '2f0540af5db76052cee0e8e91f0204c4',
...@@ -1200,6 +1213,18 @@ export const viewstate: any = { ...@@ -1200,6 +1213,18 @@ export const viewstate: any = {
'fcdb236b65d78c4a8ae64e74f9483a63', 'fcdb236b65d78c4a8ae64e74f9483a63',
], ],
}, },
{
viewtag: '9433b49c4e43a15dfc8bbd91bdd4c27f',
viewmodule: 'Base',
viewname: 'AccountStopGridView',
viewaction: '',
viewdatachange: false,
refviews: [
'a69ba7dd2f8bdac8a3c733dcc79c0ee5',
'2e9c7792c3a728896ca8902634f71983',
'6e18ac74e5685439110f9b4e534ee005',
],
},
{ {
viewtag: '94d961edd298073d53ca3239c092fac4', viewtag: '94d961edd298073d53ca3239c092fac4',
viewmodule: 'Base', viewmodule: 'Base',
......
...@@ -82,17 +82,20 @@ export default class AccountUIServiceBase extends UIService { ...@@ -82,17 +82,20 @@ export default class AccountUIServiceBase extends UIService {
this.allViewMap.set(':',{viewname:'summary',srfappde:'accounts'}); this.allViewMap.set(':',{viewname:'summary',srfappde:'accounts'});
this.allViewMap.set(':',{viewname:'innerpickupview',srfappde:'accounts'}); this.allViewMap.set(':',{viewname:'innerpickupview',srfappde:'accounts'});
this.allViewMap.set(':',{viewname:'info_account',srfappde:'accounts'}); this.allViewMap.set(':',{viewname:'info_account',srfappde:'accounts'});
this.allViewMap.set(':',{viewname:'statustabview',srfappde:'accounts'});
this.allViewMap.set('PICKUPVIEW:',{viewname:'pickupview',srfappde:'accounts'}); this.allViewMap.set('PICKUPVIEW:',{viewname:'pickupview',srfappde:'accounts'});
this.allViewMap.set(':',{viewname:'info',srfappde:'accounts'}); this.allViewMap.set(':',{viewname:'info',srfappde:'accounts'});
this.allViewMap.set(':',{viewname:'info_all',srfappde:'accounts'}); this.allViewMap.set(':',{viewname:'info_all',srfappde:'accounts'});
this.allViewMap.set('MDATAVIEW:',{viewname:'gridview',srfappde:'accounts'}); this.allViewMap.set('MDATAVIEW:',{viewname:'gridview',srfappde:'accounts'});
this.allViewMap.set(':',{viewname:'edit_accountinfo',srfappde:'accounts'}); this.allViewMap.set(':',{viewname:'edit_accountinfo',srfappde:'accounts'});
this.allViewMap.set(':',{viewname:'gradation',srfappde:'accounts'}); this.allViewMap.set(':',{viewname:'gradation',srfappde:'accounts'});
this.allViewMap.set(':',{viewname:'usablegridview',srfappde:'accounts'});
this.allViewMap.set('EDITVIEW:',{viewname:'editview',srfappde:'accounts'}); this.allViewMap.set('EDITVIEW:',{viewname:'editview',srfappde:'accounts'});
this.allViewMap.set(':',{viewname:'innerpickupgridview',srfappde:'accounts'}); this.allViewMap.set(':',{viewname:'innerpickupgridview',srfappde:'accounts'});
this.allViewMap.set(':',{viewname:'info_introduction',srfappde:'accounts'}); this.allViewMap.set(':',{viewname:'info_introduction',srfappde:'accounts'});
this.allViewMap.set(':',{viewname:'edit_introduction',srfappde:'accounts'}); this.allViewMap.set(':',{viewname:'edit_introduction',srfappde:'accounts'});
this.allViewMap.set(':',{viewname:'info_address',srfappde:'accounts'}); this.allViewMap.set(':',{viewname:'info_address',srfappde:'accounts'});
this.allViewMap.set(':',{viewname:'stopgridview',srfappde:'accounts'});
this.allViewMap.set(':',{viewname:'quickcreate',srfappde:'accounts'}); this.allViewMap.set(':',{viewname:'quickcreate',srfappde:'accounts'});
this.allViewMap.set(':',{viewname:'info_distribution',srfappde:'accounts'}); this.allViewMap.set(':',{viewname:'info_distribution',srfappde:'accounts'});
this.allViewMap.set(':',{viewname:'info_contactsetting',srfappde:'accounts'}); this.allViewMap.set(':',{viewname:'info_contactsetting',srfappde:'accounts'});
......
import { Prop, Provide, Emit, Model } from 'vue-property-decorator';
import { Subject, Subscription } from 'rxjs';
import { Watch, TabExpPanelControlBase } from '@/studio-core';
import AccountService from '@/service/account/account-service';
import StatusTabViewtabexppanelService from './status-tab-viewtabexppanel-tabexppanel-service';
/**
* tabexppanel部件基类
*
* @export
* @class TabExpPanelControlBase
* @extends {StatusTabViewtabexppanelTabexppanelBase}
*/
export class StatusTabViewtabexppanelTabexppanelBase extends TabExpPanelControlBase {
/**
* 建构部件服务对象
*
* @type {StatusTabViewtabexppanelService}
* @memberof StatusTabViewtabexppanelTabexppanelBase
*/
public service: StatusTabViewtabexppanelService = new StatusTabViewtabexppanelService({ $store: this.$store });
/**
* 实体服务对象
*
* @type {AccountService}
* @memberof StatusTabViewtabexppanelTabexppanelBase
*/
public appEntityService: AccountService = new AccountService({ $store: this.$store });
/**
* 应用实体名称
*
* @protected
* @type {string}
* @memberof StatusTabViewtabexppanelTabexppanelBase
*/
protected appDeName: string = 'account';
/**
* 是否初始化
*
* @protected
* @returns {any}
* @memberof StatusTabViewtabexppanel
*/
protected isInit: any = {
tabviewpanel: true ,
tabviewpanel2: false ,
tabviewpanel3: false ,
}
/**
* 被激活的分页面板
*
* @protected
* @type {string}
* @memberof StatusTabViewtabexppanel
*/
protected activatedTabViewPanel: string = 'tabviewpanel';
/**
* 组件创建完毕
*
* @protected
* @memberof StatusTabViewtabexppanel
*/
protected ctrlCreated(): void {
//设置分页导航srfparentdename和srfparentkey
if (this.context.account) {
Object.assign(this.context, { srfparentdename: 'Account', srfparentkey: this.context.account });
}
super.ctrlCreated();
}
}
\ No newline at end of file
import { Http,Util,Errorlog } from '@/utils';
import ControlService from '@/widgets/control-service';
import AccountService from '@/service/account/account-service';
import StatusTabViewtabexppanelModel from './status-tab-viewtabexppanel-tabexppanel-model';
/**
* StatusTabViewtabexppanel 部件服务对象
*
* @export
* @class StatusTabViewtabexppanelService
*/
export default class StatusTabViewtabexppanelService extends ControlService {
/**
* 客户服务对象
*
* @type {AccountService}
* @memberof StatusTabViewtabexppanelService
*/
public appEntityService: AccountService = new AccountService({ $store: this.getStore() });
/**
* 设置从数据模式
*
* @type {boolean}
* @memberof StatusTabViewtabexppanelService
*/
public setTempMode(){
this.isTempMode = false;
}
/**
* Creates an instance of StatusTabViewtabexppanelService.
*
* @param {*} [opts={}]
* @memberof StatusTabViewtabexppanelService
*/
constructor(opts: any = {}) {
super(opts);
this.model = new StatusTabViewtabexppanelModel();
}
}
\ No newline at end of file
<div class='tabviewpanel'>
<tabs :value="activatedTabViewPanel" :animated="false" class='tabexppanel' name='statustabviewtabexppanel' @on-click="tabPanelClick($event)">
<tab-pane :index="0" name='tabviewpanel' tab='statustabviewtabexppanel' 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='statustabviewtabexppanel' 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='statustabviewtabexppanel' class=''
:label="(h) =>{
return h('div', [
h('span', '停用客户'),
h('Badge', {
props: {
count: undefined,
type: 'primary'
}
})
])
}" >
<view_tabviewpanel3
:viewState="viewState"
:viewparams="JSON.parse(JSON.stringify(viewparams))"
:context="JSON.parse(JSON.stringify(context))"
v-if="isInit.tabviewpanel3"
name="tabviewpanel3"
ref='tabviewpanel3'
:expActive="activatedTabViewPanel === 'tabviewpanel3'"
@viewpanelDatasChange = "tabViewPanelDatasChange"
@closeview="closeView($event)">
</view_tabviewpanel3>
</tab-pane>
</tabs>
</div>
\ No newline at end of file
<template src="./status-tab-viewtabexppanel-tabexppanel.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { StatusTabViewtabexppanelTabexppanelBase } from './status-tab-viewtabexppanel-tabexppanel-base';
import view_tabviewpanel from '@widgets/account/status-tab-viewtabviewpanel-tabviewpanel/status-tab-viewtabviewpanel-tabviewpanel.vue';
import view_tabviewpanel2 from '@widgets/account/status-tab-viewtabviewpanel2-tabviewpanel/status-tab-viewtabviewpanel2-tabviewpanel.vue';
import view_tabviewpanel3 from '@widgets/account/status-tab-viewtabviewpanel3-tabviewpanel/status-tab-viewtabviewpanel3-tabviewpanel.vue';
/**
* tabexppanel部件
*
* @export
* @class StatusTabViewtabexppanelTabexppanel
* @extends {StatusTabViewtabexppanelTabexppanelBase}
*/
@Component({
components: {
view_tabviewpanel,
view_tabviewpanel2,
view_tabviewpanel3,
}
})
@VueLifeCycleProcessing()
export default class StatusTabViewtabexppanelTabexppanel extends StatusTabViewtabexppanelTabexppanelBase { }
</script>
import { Http } from '@/utils';
import ControlService from '@/widgets/control-service';
/**
* StatusTabViewtabviewpanel 部件服务对象
*
* @export
* @class StatusTabViewtabviewpanelService
*/
export default class StatusTabViewtabviewpanelService extends ControlService {
}
\ No newline at end of file
<div class='tabviewpanel' v-if='isActivied'>
<account-grid-view
class='viewcontainer2'
:viewdata="viewdata"
:viewparam="viewparam"
@viewload="viewDatasChange($event)"
:viewDefaultUsage="false"
:viewUsage="7"
:expActive="expActive"
/>
</div>
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册