提交 24b0b2d2 编写于 作者: ibizdev's avatar ibizdev

xignzi006 发布系统代码

上级 3fd7ff10
[
{
"srfkey": "Campaignactivity__ChannelTypeCode",
"emptytext": "未定义",
"codelisttype":"static",
"items": [
{
"id": "2",
"label": "Appointment",
"text": "Appointment",
"data":"",
"codename":"Item_2",
"value": "2",
"disabled": false
}
, {
"id": "7",
"label": "Email",
"text": "Email",
"data":"",
"codename":"Item_7",
"value": "7",
"disabled": false
}
, {
"id": "8",
"label": "Email via Mail Merge",
"text": "Email via Mail Merge",
"data":"",
"codename":"Item_8",
"value": "8",
"disabled": false
}
, {
"id": "5",
"label": "Fax",
"text": "Fax",
"data":"",
"codename":"Item_5",
"value": "5",
"disabled": false
}
, {
"id": "6",
"label": "Fax via Mail Merge",
"text": "Fax via Mail Merge",
"data":"",
"codename":"Item_6",
"value": "6",
"disabled": false
}
, {
"id": "3",
"label": "Letter",
"text": "Letter",
"data":"",
"codename":"Item_3",
"value": "3",
"disabled": false
}
, {
"id": "4",
"label": "Letter via Mail Merge",
"text": "Letter via Mail Merge",
"data":"",
"codename":"Item_4",
"value": "4",
"disabled": false
}
, {
"id": "9",
"label": "Other",
"text": "Other",
"data":"",
"codename":"Item_9",
"value": "9",
"disabled": false
}
, {
"id": "1",
"label": "Phone",
"text": "Phone",
"data":"",
"codename":"Item_1",
"value": "1",
"disabled": false
}
]
},
{
"srfkey": "Status",
"emptytext": "未定义",
......
......@@ -69,6 +69,16 @@
"viewtag": "0ff3eacd51054572cf899247b1c57018",
"memo": "系统自动添加"
},
"campaignresponsebyparentkey": {
"title": "campaignresponse表格视图",
"caption": "市场活动响应",
"viewtype": "DEGRIDVIEW",
"viewmodule": "Marketing",
"viewname": "CampaignResponseByParentKey",
"viewfilename": "campaign-response-by-parent-key",
"viewtag": "10c5d33db64f3a1bda18c7571a679438",
"memo": "系统自动添加"
},
"quotegridview": {
"title": "quote表格视图",
"caption": "报价单",
......@@ -139,6 +149,16 @@
"viewtag": "24e222a530526aab94ed4ed22cfedf9a",
"memo": "系统自动添加"
},
"campaignactivityquickcreate": {
"title": "快速新建",
"caption": "快速新建",
"viewtype": "DEOPTVIEW",
"viewmodule": "Marketing",
"viewname": "CampaignActivityQuickCreate",
"viewfilename": "campaign-activity-quick-create",
"viewtag": "264e13762a19c63707b3aa5718afa303",
"memo": ""
},
"accountpickupview": {
"title": "account数据选择视图",
"caption": "客户",
......@@ -229,6 +249,16 @@
"viewtag": "41bf6f27bc4248555f1b51ebcaffad1c",
"memo": "系统自动添加"
},
"productinfo_proinfo": {
"title": "产品编辑视图",
"caption": "产品",
"viewtype": "DEEDITVIEW",
"viewmodule": "Product",
"viewname": "ProductInfo_ProInfo",
"viewfilename": "product-info-pro-info",
"viewtag": "41e012bf9b91b39e4a30072986b7c11e",
"memo": ""
},
"activitypointergridview": {
"title": "活动",
"caption": "活动",
......@@ -269,6 +299,16 @@
"viewtag": "573c48d02ab5eef37c4cf701be87fcb5",
"memo": "系统自动添加"
},
"campaignactivitybyparentkey": {
"title": "campaignactivity表格视图",
"caption": "市场活动项目",
"viewtype": "DEGRIDVIEW",
"viewmodule": "Marketing",
"viewname": "CampaignActivityByParentKey",
"viewfilename": "campaign-activity-by-parent-key",
"viewtag": "5894d33141cc9c307a54134def213332",
"memo": "系统自动添加"
},
"contactabstracteditview9_editmode": {
"title": "联系人编辑视图",
"caption": "联系人",
......@@ -389,6 +429,16 @@
"viewtag": "7877d7e7e55fe21f48e8382e07579f33",
"memo": "系统自动添加"
},
"campaignresponsequickcreate": {
"title": "快速新建",
"caption": "快速新建",
"viewtype": "DEOPTVIEW",
"viewmodule": "Marketing",
"viewname": "CampaignResponseQuickCreate",
"viewfilename": "campaign-response-quick-create",
"viewtag": "7b7560b6d508b7bb0447d3204ed1c8be",
"memo": ""
},
"opportunityeditview": {
"title": "opportunity编辑视图",
"caption": "商机",
......@@ -409,6 +459,16 @@
"viewtag": "7d00f63c306adf3537efeabb3326095d",
"memo": "系统自动添加"
},
"productdashboard_proinfo": {
"title": "产品数据看板视图",
"caption": "产品",
"viewtype": "DEPORTALVIEW",
"viewmodule": "Product",
"viewname": "ProductDashboard_ProInfo",
"viewfilename": "product-dashboard-pro-info",
"viewtag": "7d6cff9fab81efce5b7dbc0ae11d3c15",
"memo": ""
},
"centeralportal": {
"title": "仪表盘",
"caption": "仪表盘",
......@@ -589,6 +649,16 @@
"viewtag": "ad6abf83dc1bc466b988194cd868d98a",
"memo": "系统自动添加"
},
"productedit_quickcreate": {
"title": "产品选项操作视图",
"caption": "产品",
"viewtype": "DEOPTVIEW",
"viewmodule": "Product",
"viewname": "ProductEdit_QuickCreate",
"viewfilename": "product-edit-quick-create",
"viewtag": "afcf2380565ebffe4c3a23035c2e3b6e",
"memo": ""
},
"productgridview": {
"title": "product表格视图",
"caption": "产品",
......@@ -639,16 +709,6 @@
"viewtag": "bae77557d2f7a7852b634dc5d5a93435",
"memo": "系统自动添加"
},
"campaignresponsegridview": {
"title": "campaignresponse表格视图",
"caption": "市场活动响应",
"viewtype": "DEGRIDVIEW",
"viewmodule": "Marketing",
"viewname": "CampaignResponseGridView",
"viewfilename": "campaign-response-grid-view",
"viewtag": "be9e8c92ad9cf15887e12a2090b28527",
"memo": "系统自动添加"
},
"accountinfo_distribution": {
"title": "account编辑视图",
"caption": "客户",
......
export default {
Campaignactivity__ChannelTypeCode: {
'2': 'Appointment',
'7': 'Email',
'8': 'Email via Mail Merge',
'5': 'Fax',
'6': 'Fax via Mail Merge',
'3': 'Letter',
'4': 'Letter via Mail Merge',
'9': 'Other',
'1': 'Phone',
empty: '',
},
Status: {
'1': 'Active',
'2': 'Inactive',
......
export default {
Campaignactivity__ChannelTypeCode: {
'2': 'Appointment',
'7': 'Email',
'8': 'Email via Mail Merge',
'5': 'Fax',
'6': 'Fax via Mail Merge',
'3': 'Letter',
'4': 'Letter via Mail Merge',
'9': 'Other',
'1': 'Phone',
empty: '',
},
Status: {
'1': 'Active',
'2': 'Inactive',
......
......@@ -76,15 +76,50 @@ export default {
slaid: 'SLA',
},
views: {
quickcreate: {
caption: "快速新建",
title: '快速新建',
},
editview: {
caption: "市场活动项目",
title: 'campaignactivity编辑视图',
},
byparentkey: {
caption: "市场活动项目",
title: 'campaignactivity表格视图',
},
gridview: {
caption: "市场活动项目",
title: 'campaignactivity表格视图',
},
},
quickcreate_form: {
details: {
group1: "campaignactivity基本信息",
formpage1: "基本信息",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "市场活动项目",
srfmajortext: "主题",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
subject: "主题",
category: "类别",
channeltypecode: "渠道",
description: "说明",
scheduledstart: "计划开始时间",
scheduledend: "计划结束时间",
actualstart: "实际开始时间",
actualend: "实际结束时间",
budgetedcost: "预算分配",
actualcost: "实际成本",
activityid: "市场活动项目",
},
uiactions: {
},
},
main_form: {
details: {
group1: "campaignactivity基本信息",
......@@ -125,7 +160,7 @@ export default {
uiactions: {
},
},
gridviewtoolbar_toolbar: {
byparentkeytoolbar_toolbar: {
tbitem3: {
caption: "New",
tip: "New",
......@@ -201,4 +236,42 @@ export default {
tip: "Copy {0}",
},
},
gridviewtoolbar_toolbar: {
tbitem3: {
caption: "New",
tip: "New",
},
tbitem4: {
caption: "Edit",
tip: "Edit {0}",
},
tbitem6: {
caption: "Copy",
tip: "Copy {0}",
},
tbitem7: {
caption: "-",
tip: "",
},
tbitem8: {
caption: "Remove",
tip: "Remove {0}",
},
tbitem9: {
caption: "-",
tip: "",
},
tbitem13: {
caption: "Export",
tip: "Export {0} Data To Excel",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem19: {
caption: "Filter",
tip: "Filter",
},
},
};
\ No newline at end of file
......@@ -75,15 +75,50 @@ export default {
slaid: 'SLA',
},
views: {
quickcreate: {
caption: '快速新建',
title: '快速新建',
},
editview: {
caption: '市场活动项目',
title: 'campaignactivity编辑视图',
},
byparentkey: {
caption: '市场活动项目',
title: 'campaignactivity表格视图',
},
gridview: {
caption: '市场活动项目',
title: 'campaignactivity表格视图',
},
},
quickcreate_form: {
details: {
group1: 'campaignactivity基本信息',
formpage1: '基本信息',
srfupdatedate: '更新时间',
srforikey: '',
srfkey: '市场活动项目',
srfmajortext: '主题',
srftempmode: '',
srfuf: '',
srfdeid: '',
srfsourcekey: '',
subject: '主题',
category: '类别',
channeltypecode: '渠道',
description: '说明',
scheduledstart: '计划开始时间',
scheduledend: '计划结束时间',
actualstart: '实际开始时间',
actualend: '实际结束时间',
budgetedcost: '预算分配',
actualcost: '实际成本',
activityid: '市场活动项目',
},
uiactions: {
},
},
main_form: {
details: {
group1: 'campaignactivity基本信息',
......@@ -124,7 +159,7 @@ export default {
uiactions: {
},
},
gridviewtoolbar_toolbar: {
byparentkeytoolbar_toolbar: {
tbitem3: {
caption: '新建',
tip: '新建',
......@@ -200,4 +235,42 @@ export default {
tip: '拷贝',
},
},
gridviewtoolbar_toolbar: {
tbitem3: {
caption: '新建',
tip: '新建',
},
tbitem4: {
caption: '编辑',
tip: '编辑',
},
tbitem6: {
caption: '拷贝',
tip: '拷贝',
},
tbitem7: {
caption: '-',
tip: '',
},
tbitem8: {
caption: '删除',
tip: '删除',
},
tbitem9: {
caption: '-',
tip: '',
},
tbitem13: {
caption: '导出',
tip: '导出',
},
tbitem10: {
caption: '-',
tip: '',
},
tbitem19: {
caption: '过滤',
tip: '过滤',
},
},
};
\ No newline at end of file
......@@ -87,13 +87,17 @@ export default {
slaid: 'SLA',
},
views: {
editview: {
byparentkey: {
caption: "市场活动响应",
title: 'campaignresponse编辑视图',
title: 'campaignresponse表格视图',
},
quickcreate: {
caption: "快速新建",
title: '快速新建',
},
gridview: {
editview: {
caption: "市场活动响应",
title: 'campaignresponse表格视图',
title: 'campaignresponse编辑视图',
},
},
main_form: {
......@@ -136,7 +140,7 @@ export default {
uiactions: {
},
},
gridviewtoolbar_toolbar: {
byparentkeytoolbar_toolbar: {
tbitem3: {
caption: "New",
tip: "New",
......
......@@ -86,13 +86,17 @@ export default {
slaid: 'SLA',
},
views: {
editview: {
byparentkey: {
caption: '市场活动响应',
title: 'campaignresponse编辑视图',
title: 'campaignresponse表格视图',
},
quickcreate: {
caption: '快速新建',
title: '快速新建',
},
gridview: {
editview: {
caption: '市场活动响应',
title: 'campaignresponse表格视图',
title: 'campaignresponse编辑视图',
},
},
main_form: {
......@@ -135,7 +139,7 @@ export default {
uiactions: {
},
},
gridviewtoolbar_toolbar: {
byparentkeytoolbar_toolbar: {
tbitem3: {
caption: '新建',
tip: '新建',
......
......@@ -480,12 +480,6 @@ export default {
tip: "Filter",
},
},
info_abstracttoolbar_toolbar: {
deuiaction2: {
caption: "编辑",
tip: "编辑",
},
},
byaccounttoolbar_toolbar: {
tbitem1_openquickcreateview: {
caption: "新建",
......
......@@ -479,12 +479,6 @@ export default {
tip: '过滤',
},
},
info_abstracttoolbar_toolbar: {
deuiaction2: {
caption: '编辑',
tip: '编辑',
},
},
byaccounttoolbar_toolbar: {
tbitem1_openquickcreateview: {
caption: '新建',
......
......@@ -63,15 +63,49 @@ export default {
subjectname: '主题',
},
views: {
info_proinfo: {
caption: "产品",
title: '产品编辑视图',
},
editview: {
caption: "产品",
title: 'product编辑视图',
},
dashboard_proinfo: {
caption: "产品",
title: '产品数据看板视图',
},
edit_quickcreate: {
caption: "产品",
title: '产品选项操作视图',
},
gridview: {
caption: "产品",
title: 'product表格视图',
},
},
proinfo_form: {
details: {
group1: "产品基本信息",
formpage1: "基本信息",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "产品",
srfmajortext: "产品名称",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
productname: "产品名称",
productnumber: "产品 ID",
validfromdate: "有效期的开始日期",
validtodate: "有效期的结束日期",
description: "说明",
productid: "产品",
},
uiactions: {
},
},
main_form: {
details: {
group1: "product基本信息",
......@@ -96,6 +130,28 @@ export default {
uiactions: {
},
},
quickcreate_form: {
details: {
group1: "产品基本信息",
formpage1: "基本信息",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "产品",
srfmajortext: "产品名称",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
productname: "产品名称",
productnumber: "产品 ID",
validfromdate: "有效期的开始日期",
validtodate: "有效期的结束日期",
description: "说明",
productid: "产品",
},
uiactions: {
},
},
main_grid: {
columns: {
productname: "产品名称",
......@@ -112,6 +168,8 @@ export default {
uiactions: {
},
},
info_proinfotoolbar_toolbar: {
},
editviewtoolbar_toolbar: {
tbitem3: {
caption: "Save",
......@@ -151,9 +209,13 @@ export default {
},
},
gridviewtoolbar_toolbar: {
tbitem3: {
caption: "New",
tip: "New",
tbitem1_openquickcreateview: {
caption: "新建",
tip: "新建",
},
tbitem2: {
caption: "-",
tip: "",
},
tbitem4: {
caption: "Edit",
......
......@@ -62,15 +62,49 @@ export default {
subjectname: '主题',
},
views: {
info_proinfo: {
caption: '产品',
title: '产品编辑视图',
},
editview: {
caption: '产品',
title: 'product编辑视图',
},
dashboard_proinfo: {
caption: '产品',
title: '产品数据看板视图',
},
edit_quickcreate: {
caption: '产品',
title: '产品选项操作视图',
},
gridview: {
caption: '产品',
title: 'product表格视图',
},
},
proinfo_form: {
details: {
group1: '产品基本信息',
formpage1: '基本信息',
srfupdatedate: '更新时间',
srforikey: '',
srfkey: '产品',
srfmajortext: '产品名称',
srftempmode: '',
srfuf: '',
srfdeid: '',
srfsourcekey: '',
productname: '产品名称',
productnumber: '产品 ID',
validfromdate: '有效期的开始日期',
validtodate: '有效期的结束日期',
description: '说明',
productid: '产品',
},
uiactions: {
},
},
main_form: {
details: {
group1: 'product基本信息',
......@@ -95,6 +129,28 @@ export default {
uiactions: {
},
},
quickcreate_form: {
details: {
group1: '产品基本信息',
formpage1: '基本信息',
srfupdatedate: '更新时间',
srforikey: '',
srfkey: '产品',
srfmajortext: '产品名称',
srftempmode: '',
srfuf: '',
srfdeid: '',
srfsourcekey: '',
productname: '产品名称',
productnumber: '产品 ID',
validfromdate: '有效期的开始日期',
validtodate: '有效期的结束日期',
description: '说明',
productid: '产品',
},
uiactions: {
},
},
main_grid: {
columns: {
productname: '产品名称',
......@@ -111,6 +167,8 @@ export default {
uiactions: {
},
},
info_proinfotoolbar_toolbar: {
},
editviewtoolbar_toolbar: {
tbitem3: {
caption: '保存',
......@@ -150,10 +208,14 @@ export default {
},
},
gridviewtoolbar_toolbar: {
tbitem3: {
tbitem1_openquickcreateview: {
caption: '新建',
tip: '新建',
},
tbitem2: {
caption: '-',
tip: '',
},
tbitem4: {
caption: '编辑',
tip: '编辑',
......
......@@ -7,6 +7,103 @@ import Mock from 'mockjs'
mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
let status = MockAdapter.mockStatus(config);
return [status, [
{
srfkey: 'Campaignactivity__ChannelTypeCode',
emptytext: '未定义',
"codelisttype":"static",
items: [
{
id: '2',
label: 'Appointment',
text: 'Appointment',
"data":"",
"codename":"Item_2",
value: '2',
disabled: false,
},
{
id: '7',
label: 'Email',
text: 'Email',
"data":"",
"codename":"Item_7",
value: '7',
disabled: false,
},
{
id: '8',
label: 'Email via Mail Merge',
text: 'Email via Mail Merge',
"data":"",
"codename":"Item_8",
value: '8',
disabled: false,
},
{
id: '5',
label: 'Fax',
text: 'Fax',
"data":"",
"codename":"Item_5",
value: '5',
disabled: false,
},
{
id: '6',
label: 'Fax via Mail Merge',
text: 'Fax via Mail Merge',
"data":"",
"codename":"Item_6",
value: '6',
disabled: false,
},
{
id: '3',
label: 'Letter',
text: 'Letter',
"data":"",
"codename":"Item_3",
value: '3',
disabled: false,
},
{
id: '4',
label: 'Letter via Mail Merge',
text: 'Letter via Mail Merge',
"data":"",
"codename":"Item_4",
value: '4',
disabled: false,
},
{
id: '9',
label: 'Other',
text: 'Other',
"data":"",
"codename":"Item_9",
value: '9',
disabled: false,
},
{
id: '1',
label: 'Phone',
text: 'Phone',
"data":"",
"codename":"Item_1",
value: '1',
disabled: false,
},
]
},
{
srfkey: 'Status',
emptytext: '未定义',
......
......@@ -314,6 +314,50 @@ mock.onGet(new RegExp(/^\/campaignactivities\/fetchdefault(\?[\w-./?%&=,]*)*$/))
console.groupEnd();
return [status, records ? records : []];
});
// FetchByParentKey
mock.onGet(new RegExp(/^\/campaignactivities\/fetchbyparentkey$/)).reply((config: any) => {
console.groupCollapsed("实体:campaignactivity 方法: FetchByParentKey");
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 : []];
});
// FetchByParentKey
mock.onGet(new RegExp(/^\/campaignactivities\/fetchbyparentkey(\?[\w-./?%&=,]*)*$/)).reply((config: any) => {
console.groupCollapsed("实体:campaignactivity 方法: FetchByParentKey");
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参数传递情况未实现
......
......@@ -271,6 +271,50 @@ mock.onPost(new RegExp(/^\/campaignresponses\/?([a-zA-Z0-9\-\;]{0,35})\/checkkey
return [status, data];
});
// FetchByParentKey
mock.onGet(new RegExp(/^\/campaignresponses\/fetchbyparentkey$/)).reply((config: any) => {
console.groupCollapsed("实体:campaignresponse 方法: FetchByParentKey");
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 : []];
});
// FetchByParentKey
mock.onGet(new RegExp(/^\/campaignresponses\/fetchbyparentkey(\?[\w-./?%&=,]*)*$/)).reply((config: any) => {
console.groupCollapsed("实体:campaignresponse 方法: FetchByParentKey");
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 : []];
});
// FetchDefault
mock.onGet(new RegExp(/^\/campaignresponses\/fetchdefault$/)).reply((config: any) => {
console.groupCollapsed("实体:campaignresponse 方法: FetchDefault");
......
......@@ -63,6 +63,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "SalesOrderEditView",
"viewtag": "0ff3eacd51054572cf899247b1c57018"
},
"campaignresponsebyparentkey": {
"title": "campaignresponse表格视图",
"caption": "市场活动响应",
"viewtype": "DEGRIDVIEW",
"viewmodule": "Marketing",
"viewname": "CampaignResponseByParentKey",
"viewtag": "10c5d33db64f3a1bda18c7571a679438"
},
"quotegridview": {
"title": "quote表格视图",
"caption": "报价单",
......@@ -119,6 +127,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ActivityPointerEditView",
"viewtag": "24e222a530526aab94ed4ed22cfedf9a"
},
"campaignactivityquickcreate": {
"title": "快速新建",
"caption": "快速新建",
"viewtype": "DEOPTVIEW",
"viewmodule": "Marketing",
"viewname": "CampaignActivityQuickCreate",
"viewtag": "264e13762a19c63707b3aa5718afa303"
},
"accountpickupview": {
"title": "account数据选择视图",
"caption": "客户",
......@@ -191,6 +207,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "CampaignEditView",
"viewtag": "41bf6f27bc4248555f1b51ebcaffad1c"
},
"productinfo_proinfo": {
"title": "产品编辑视图",
"caption": "产品",
"viewtype": "DEEDITVIEW",
"viewmodule": "Product",
"viewname": "ProductInfo_ProInfo",
"viewtag": "41e012bf9b91b39e4a30072986b7c11e"
},
"activitypointergridview": {
"title": "活动",
"caption": "活动",
......@@ -223,6 +247,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ProductEditView",
"viewtag": "573c48d02ab5eef37c4cf701be87fcb5"
},
"campaignactivitybyparentkey": {
"title": "campaignactivity表格视图",
"caption": "市场活动项目",
"viewtype": "DEGRIDVIEW",
"viewmodule": "Marketing",
"viewname": "CampaignActivityByParentKey",
"viewtag": "5894d33141cc9c307a54134def213332"
},
"contactabstracteditview9_editmode": {
"title": "联系人编辑视图",
"caption": "联系人",
......@@ -319,6 +351,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "GoalEditView",
"viewtag": "7877d7e7e55fe21f48e8382e07579f33"
},
"campaignresponsequickcreate": {
"title": "快速新建",
"caption": "快速新建",
"viewtype": "DEOPTVIEW",
"viewmodule": "Marketing",
"viewname": "CampaignResponseQuickCreate",
"viewtag": "7b7560b6d508b7bb0447d3204ed1c8be"
},
"opportunityeditview": {
"title": "opportunity编辑视图",
"caption": "商机",
......@@ -335,6 +375,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "LeadPickupGridView",
"viewtag": "7d00f63c306adf3537efeabb3326095d"
},
"productdashboard_proinfo": {
"title": "产品数据看板视图",
"caption": "产品",
"viewtype": "DEPORTALVIEW",
"viewmodule": "Product",
"viewname": "ProductDashboard_ProInfo",
"viewtag": "7d6cff9fab81efce5b7dbc0ae11d3c15"
},
"centeralportal": {
"title": "仪表盘",
"caption": "仪表盘",
......@@ -479,6 +527,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "QuoteEditView",
"viewtag": "ad6abf83dc1bc466b988194cd868d98a"
},
"productedit_quickcreate": {
"title": "产品选项操作视图",
"caption": "产品",
"viewtype": "DEOPTVIEW",
"viewmodule": "Product",
"viewname": "ProductEdit_QuickCreate",
"viewtag": "afcf2380565ebffe4c3a23035c2e3b6e"
},
"productgridview": {
"title": "product表格视图",
"caption": "产品",
......@@ -519,14 +575,6 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ActivityPointerByParentKey",
"viewtag": "bae77557d2f7a7852b634dc5d5a93435"
},
"campaignresponsegridview": {
"title": "campaignresponse表格视图",
"caption": "市场活动响应",
"viewtype": "DEGRIDVIEW",
"viewmodule": "Marketing",
"viewname": "CampaignResponseGridView",
"viewtag": "be9e8c92ad9cf15887e12a2090b28527"
},
"accountinfo_distribution": {
"title": "account编辑视图",
"caption": "客户",
......
......@@ -4,7 +4,7 @@
<template slot="toolbar">
<div class='toolbar-container'>
<i-button :title="$t('entities.account.gridviewtoolbar_toolbar.tbitem1_openquickcreateview.tip')" v-show="toolBarModels.tbitem1_openquickcreateview.visabled" :disabled="toolBarModels.tbitem1_openquickcreateview.disabled" class='' @click="toolbar_click({ tag: 'tbitem1_openquickcreateview' }, $event)">
<i class=''></i>
<i class='fa fa-file-text-o'></i>
<span class='caption'>{{$t('entities.account.gridviewtoolbar_toolbar.tbitem1_openquickcreateview.caption')}}</span>
</i-button>
<span class='seperator'>|</span> <i-button :title="$t('entities.account.gridviewtoolbar_toolbar.tbitem4.tip')" v-show="toolBarModels.tbitem4.visabled" :disabled="toolBarModels.tbitem4.disabled" class='' @click="toolbar_click({ tag: 'tbitem4' }, $event)">
......@@ -265,7 +265,7 @@ export default class AccountGridViewBase extends Vue {
* @memberof AccountGridView
*/
public toolBarModels: any = {
tbitem1_openquickcreateview: { name: 'tbitem1_openquickcreateview', caption: '新建','isShowCaption':true,'isShowIcon':true, tooltip: '新建', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'OpenQuickCreateView', target: 'NONE' }, class: '' },
tbitem1_openquickcreateview: { name: 'tbitem1_openquickcreateview', caption: '新建','isShowCaption':true,'isShowIcon':true, tooltip: '新建', iconcls: 'fa fa-file-text-o', icon: '', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'OpenQuickCreateView', target: 'NONE' }, class: '' },
tbitem2: { name: 'tbitem2', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
tbitem4: { name: 'tbitem4', caption: '编辑','isShowCaption':true,'isShowIcon':true, tooltip: '编辑', iconcls: 'fa fa-edit', icon: '', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'Edit', target: 'SINGLEKEY' }, class: '' },
......
<template>
<studio-embed-view viewName="contactinfo_abstract" viewTitle="联系人编辑视图" class='deeditview9 contact-info-abstract'>
<template slot="toolbar">
<div class='toolbar-container'>
<i-button :title="$t('entities.contact.info_abstracttoolbar_toolbar.deuiaction2.tip')" v-show="toolBarModels.deuiaction2.visabled" :disabled="toolBarModels.deuiaction2.disabled" class='' @click="toolbar_click({ tag: 'deuiaction2' }, $event)">
<i class='fa fa-edit'></i>
<span class='caption'>{{$t('entities.contact.info_abstracttoolbar_toolbar.deuiaction2.caption')}}</span>
</i-button>
</div>
</template>
<view_form
:viewState="viewState"
:viewparams="viewparams"
......@@ -185,7 +177,6 @@ export default class ContactInfo_AbstractBase extends Vue {
* @memberof ContactInfo_AbstractBase
*/
public containerModel: any = {
view_toolbar: { name: 'toolbar', type: 'TOOLBAR' },
view_form: { name: 'form', type: 'FORM' },
};
......@@ -213,17 +204,6 @@ export default class ContactInfo_AbstractBase extends Vue {
* @memberof ContactInfo_AbstractBase
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 工具栏模型
*
* @type {*}
* @memberof ContactInfo_Abstract
*/
public toolBarModels: any = {
deuiaction2: { name: 'deuiaction2', caption: '编辑','isShowCaption':true,'isShowIcon':true, tooltip: '编辑', iconcls: 'fa fa-edit', icon: '', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'OpenEditMode', target: 'SINGLEKEY' }, class: '' },
};
......@@ -457,20 +437,6 @@ export default class ContactInfo_AbstractBase extends Vue {
}
/**
* toolbar 部件 click 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactInfo_AbstractBase
*/
public toolbar_click($event: any, $event2?: any) {
if (Object.is($event.tag, 'deuiaction2')) {
this.toolbar_deuiaction2_click(null, '', $event2);
}
}
/**
* form 部件 save 事件
*
......@@ -508,101 +474,6 @@ export default class ContactInfo_AbstractBase extends Vue {
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public toolbar_deuiaction2_click(params: any = {}, tag?: any, $event?: any) {
// 参数
// 取数
let datas: any[] = [];
let xData: any = null;
// _this 指向容器对象
const _this: any = this;
let paramJO:any = {};
let contextJO:any = {};
xData = this.$refs.form;
if (xData.getDatas && xData.getDatas instanceof Function) {
datas = [...xData.getDatas()];
}
if(params){
datas = [params];
}
// 界面行为
this.OpenEditMode(datas, contextJO,paramJO, $event, xData,this,"Contact");
}
/**
* 编辑
*
* @param {any[]} args 当前数据
* @param {any} context 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @param {*} [srfParentDeName] 父实体名称
* @returns {Promise<any>}
*/
public async OpenEditMode(args: any[], context:any = {} ,params: any={}, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
xData = $event;
$event = params;
params = context;
let context2: any = {};
let data: any = {};
let parentContext:any = {};
let parentViewParam:any = {};
const _args: any[] = this.$util.deepCopy(args);
const _this: any = this;
const actionTarget: string | null = 'SINGLEKEY';
Object.assign(context2, { res_partner: '%id%' });
Object.assign(params, { id: '%id%' });
Object.assign(params, { name: '%name%' })
if(actionContext.context){
parentContext = actionContext.context;
}
if(actionContext.viewparams){
parentViewParam = actionContext.viewparams;
}
context = UIActionTool.handleContextParam(actionTarget,_args,parentContext,parentViewParam,context);
data = UIActionTool.handleActionParam(actionTarget,_args,parentContext,parentViewParam,params);
Object.assign(context,this.context,context);
if(context && context.srfsessionid){
context.srfsessionkey = context.srfsessionid;
delete context.srfsessionid;
}
const parameters: any[] = [
{ pathName: 'res_partners', parameterName: 'res_partner' },
];
const openDrawer = (view: any, data: any) => {
let container: Subject<any> = this.$appdrawer.openDrawer(view, context,data);
container.subscribe((result: any) => {
if (!result || !Object.is(result.ret, 'OK')) {
return;
}
const _this: any = this;
if (xData && xData.refresh && xData.refresh instanceof Function) {
xData.refresh(args);
}
return result.datas;
});
}
const view: any = {
viewname: 'contact-info-abstract-edit-mode',
height: 0,
width: 0,
title: '联系人编辑视图',
placement: 'DRAWER_TOP',
};
openDrawer(view, data);
}
/**
* 关闭视图
......
......@@ -2,7 +2,5 @@
.contact-info-abstract {
--contact-info-abstract: 0;
}
// 视图样式
// this is less
// 避免空文件,后台不让空文件过
.campaign-activity-by-parent-key {
--campaign-activity-by-parent-key: 0;
}
// 视图样式
// this is less
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import CampaignActivityByParentKeyBase from './campaign-activity-by-parent-key-base.vue';
import view_grid from '@widgets/campaign-activity/main-grid/main-grid.vue';
import view_searchform from '@widgets/campaign-activity/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 CampaignActivityByParentKey extends CampaignActivityByParentKeyBase {
}
</script>
\ No newline at end of file
.option-view {
--option-view: 0;
}
// 避免空文件,后台不让空文件过
.campaign-activity-quick-create {
--campaign-activity-quick-create: 0;
}
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import CampaignActivityQuickCreateBase from './campaign-activity-quick-create-base.vue';
import view_form from '@widgets/campaign-activity/quick-create-form/quick-create-form.vue';
@Component({
components: {
view_form,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
vm.$store.commit('addCurPageViewtag', { route: to, viewtag: vm.viewtag });
});
},
})
export default class CampaignActivityQuickCreate extends CampaignActivityQuickCreateBase {
}
</script>
\ No newline at end of file
// 避免空文件,后台不让空文件过
.campaign-response-by-parent-key {
--campaign-response-by-parent-key: 0;
}
// 视图样式
// this is less
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import CampaignResponseByParentKeyBase from './campaign-response-by-parent-key-base.vue';
import view_grid from '@widgets/campaign-response/main-grid/main-grid.vue';
import view_searchform from '@widgets/campaign-response/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 CampaignResponseByParentKey extends CampaignResponseByParentKeyBase {
}
</script>
\ No newline at end of file
.option-view {
--option-view: 0;
}
// 避免空文件,后台不让空文件过
.product-edit-quick-create {
--product-edit-quick-create: 0;
}
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import ProductEdit_QuickCreateBase from './product-edit-quick-create-base.vue';
import view_form from '@widgets/product/quick-create-form/quick-create-form.vue';
@Component({
components: {
view_form,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
vm.$store.commit('addCurPageViewtag', { route: to, viewtag: vm.viewtag });
});
},
})
export default class ProductEdit_QuickCreate extends ProductEdit_QuickCreateBase {
}
</script>
\ No newline at end of file
......@@ -5,7 +5,9 @@ export const PageComponents = {
Vue.component('account-info-introduction', () => import('@pages/base/account-info-introduction/account-info-introduction.vue'));
Vue.component('campaign-response-edit-view', () => import('@pages/marketing/campaign-response-edit-view/campaign-response-edit-view.vue'));
Vue.component('sales-order-edit-view', () => import('@pages/sales/sales-order-edit-view/sales-order-edit-view.vue'));
Vue.component('campaign-activity-quick-create', () => import('@pages/marketing/campaign-activity-quick-create/campaign-activity-quick-create.vue'));
Vue.component('campaign-info', () => import('@pages/marketing/campaign-info/campaign-info.vue'));
Vue.component('campaign-response-by-parent-key', () => import('@pages/marketing/campaign-response-by-parent-key/campaign-response-by-parent-key.vue'));
Vue.component('account-edit-view', () => import('@pages/base/account-edit-view/account-edit-view.vue'));
Vue.component('fax-edit-view', () => import('@pages/base/fax-edit-view/fax-edit-view.vue'));
Vue.component('incident-edit-view', () => import('@pages/service/incident-edit-view/incident-edit-view.vue'));
......@@ -37,6 +39,7 @@ export const PageComponents = {
Vue.component('contact-grid-view', () => import('@pages/base/contact-grid-view/contact-grid-view.vue'));
Vue.component('service-appointment-edit-view', () => import('@pages/service/service-appointment-edit-view/service-appointment-edit-view.vue'));
Vue.component('account-grid-view', () => import('@pages/base/account-grid-view/account-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('activity-pointer-grid-view', () => import('@pages/base/activity-pointer-grid-view/activity-pointer-grid-view.vue'));
Vue.component('invoice-grid-view', () => import('@pages/finance/invoice-grid-view/invoice-grid-view.vue'));
Vue.component('account-info-distribution', () => import('@pages/base/account-info-distribution/account-info-distribution.vue'));
......@@ -46,14 +49,12 @@ export const PageComponents = {
Vue.component('contact-by-account', () => import('@pages/base/contact-by-account/contact-by-account.vue'));
Vue.component('product-grid-view', () => import('@pages/product/product-grid-view/product-grid-view.vue'));
Vue.component('sales-literature-edit-view', () => import('@pages/sales/sales-literature-edit-view/sales-literature-edit-view.vue'));
Vue.component('campaign-activity-grid-view', () => import('@pages/marketing/campaign-activity-grid-view/campaign-activity-grid-view.vue'));
Vue.component('account-pickup-grid-view', () => import('@pages/base/account-pickup-grid-view/account-pickup-grid-view.vue'));
Vue.component('product-edit-quick-create', () => import('@pages/product/product-edit-quick-create/product-edit-quick-create.vue'));
Vue.component('account-info', () => import('@pages/base/account-info/account-info.vue'));
Vue.component('campaign-info-manager', () => import('@pages/marketing/campaign-info-manager/campaign-info-manager.vue'));
Vue.component('campaign-grid-view', () => import('@pages/marketing/campaign-grid-view/campaign-grid-view.vue'));
Vue.component('campaign-response-grid-view', () => import('@pages/marketing/campaign-response-grid-view/campaign-response-grid-view.vue'));
Vue.component('account-info-major-contact', () => import('@pages/base/account-info-major-contact/account-info-major-contact.vue'));
Vue.component('campaign-activity-edit-view', () => import('@pages/marketing/campaign-activity-edit-view/campaign-activity-edit-view.vue'));
Vue.component('sales-order-grid-view', () => import('@pages/sales/sales-order-grid-view/sales-order-grid-view.vue'));
Vue.component('contact-option-view', () => import('@pages/base/contact-option-view/contact-option-view.vue'));
Vue.component('activity-pointer-by-parent-key', () => import('@pages/base/activity-pointer-by-parent-key/activity-pointer-by-parent-key.vue'));
......
......@@ -176,4 +176,18 @@ export default class CampaignActivityServiceBase extends EntityService {
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/campaignactivities/fetchdefault`,tempData,isloading);
}
/**
* FetchByParentKey接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof CampaignActivityServiceBase
*/
public async FetchByParentKey(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/campaignactivities/fetchbyparentkey`,tempData,isloading);
}
}
\ No newline at end of file
......@@ -163,6 +163,20 @@ export default class CampaignResponseServiceBase extends EntityService {
return Http.getInstance().post(`/campaignresponses/${context.campaignresponse}/checkkey`,data,isloading);
}
/**
* FetchByParentKey接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof CampaignResponseServiceBase
*/
public async FetchByParentKey(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/campaignresponses/fetchbyparentkey`,tempData,isloading);
}
/**
* FetchDefault接口方法
*
......
......@@ -82,6 +82,16 @@ export const viewstate: any = {
refviews: [
],
},
{
viewtag: '10c5d33db64f3a1bda18c7571a679438',
viewmodule: 'Marketing',
viewname: 'CampaignResponseByParentKey',
viewaction: '',
viewdatachange: false,
refviews: [
'b3cfac5362b3bfb70d1471932f120fa5',
],
},
{
viewtag: '14110058a29397ea9ac7d4e86a3994ca',
viewmodule: 'Sales',
......@@ -139,6 +149,15 @@ export const viewstate: any = {
refviews: [
],
},
{
viewtag: '264e13762a19c63707b3aa5718afa303',
viewmodule: 'Marketing',
viewname: 'CampaignActivityQuickCreate',
viewaction: '',
viewdatachange: false,
refviews: [
],
},
{
viewtag: '29bfcd628ab25e297248ff0524d12908',
viewmodule: 'Base',
......@@ -179,15 +198,6 @@ export const viewstate: any = {
refviews: [
],
},
{
viewtag: '30458f00562fda145be535e56948b067',
viewmodule: 'Marketing',
viewname: 'CampaignActivityEditView',
viewaction: '',
viewdatachange: false,
refviews: [
],
},
{
viewtag: '3a665de6a3970b95fde436c0fea4b1df',
viewmodule: 'Service',
......@@ -273,6 +283,16 @@ export const viewstate: any = {
refviews: [
],
},
{
viewtag: '5894d33141cc9c307a54134def213332',
viewmodule: 'Marketing',
viewname: 'CampaignActivityByParentKey',
viewaction: '',
viewdatachange: false,
refviews: [
'264e13762a19c63707b3aa5718afa303',
],
},
{
viewtag: '5c7e90ccfaeb49b5bd84ae6c17b479e3',
viewmodule: 'Base',
......@@ -566,6 +586,15 @@ export const viewstate: any = {
refviews: [
],
},
{
viewtag: 'afcf2380565ebffe4c3a23035c2e3b6e',
viewmodule: 'Product',
viewname: 'ProductEdit_QuickCreate',
viewaction: '',
viewdatachange: false,
refviews: [
],
},
{
viewtag: 'b38bc0256ecd5be1a58a3c2210a98d05',
viewmodule: 'Product',
......@@ -573,6 +602,7 @@ export const viewstate: any = {
viewaction: '',
viewdatachange: false,
refviews: [
'afcf2380565ebffe4c3a23035c2e3b6e',
'573c48d02ab5eef37c4cf701be87fcb5',
],
},
......@@ -627,16 +657,6 @@ export const viewstate: any = {
'a5213905238dbc5d8e1a505029105cc9',
],
},
{
viewtag: 'be9e8c92ad9cf15887e12a2090b28527',
viewmodule: 'Marketing',
viewname: 'CampaignResponseGridView',
viewaction: '',
viewdatachange: false,
refviews: [
'b3cfac5362b3bfb70d1471932f120fa5',
],
},
{
viewtag: 'c607e5bc2c07ab2aca084e275ce677b7',
viewmodule: 'Base',
......@@ -664,9 +684,9 @@ export const viewstate: any = {
viewdatachange: false,
refviews: [
'24a93674ec4c976c08902a3e95421ca6',
'be9e8c92ad9cf15887e12a2090b28527',
'15d12c1173fcb6e742b6a6d92cbc53ed',
'e684325c8ad695314d3c960a16f25db7',
'5894d33141cc9c307a54134def213332',
'10c5d33db64f3a1bda18c7571a679438',
'b53373df8bf30a970e738602c7a83666',
],
},
......@@ -736,16 +756,6 @@ export const viewstate: any = {
refviews: [
],
},
{
viewtag: 'e684325c8ad695314d3c960a16f25db7',
viewmodule: 'Marketing',
viewname: 'CampaignActivityGridView',
viewaction: '',
viewdatachange: false,
refviews: [
'30458f00562fda145be535e56948b067',
],
},
{
viewtag: 'ef9fea872a6a21e7566033fafcc0ccb5',
viewmodule: 'Base',
......
......@@ -79,7 +79,9 @@ export default class CampaignActivityUIServiceBase extends UIService {
* @memberof CampaignActivityUIServiceBase
*/
public initViewMap(){
this.allViewMap.set(':',{viewname:'quickcreate',srfappde:'campaignactivities'});
this.allViewMap.set('EDITVIEW:',{viewname:'editview',srfappde:'campaignactivities'});
this.allViewMap.set(':',{viewname:'byparentkey',srfappde:'campaignactivities'});
this.allViewMap.set('MDATAVIEW:',{viewname:'gridview',srfappde:'campaignactivities'});
}
......
......@@ -79,8 +79,9 @@ export default class CampaignResponseUIServiceBase extends UIService {
* @memberof CampaignResponseUIServiceBase
*/
public initViewMap(){
this.allViewMap.set(':',{viewname:'byparentkey',srfappde:'campaignresponses'});
this.allViewMap.set(':',{viewname:'quickcreate',srfappde:'campaignresponses'});
this.allViewMap.set('EDITVIEW:',{viewname:'editview',srfappde:'campaignresponses'});
this.allViewMap.set('MDATAVIEW:',{viewname:'gridview',srfappde:'campaignresponses'});
}
/**
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册