提交 22fee79d 编写于 作者: ibizdev's avatar ibizdev

lab_gzf 发布系统代码

上级 1264699d
......@@ -2479,6 +2479,16 @@
"viewtag": "e167550b61bf1bd019a8e522b8fccc21",
"memo": ""
},
"quoteedit_datapanelview": {
"title": "头部信息编辑",
"caption": "报价单",
"viewtype": "DEEDITVIEW",
"viewmodule": "Sales",
"viewname": "QuoteEdit_DataPanelView",
"viewfilename": "quote-edit-data-panel-view",
"viewtag": "e1b0831107ec5781d66db9c0f32f016d",
"memo": ""
},
"accountinfo_contactsetting": {
"title": "客户编辑视图",
"caption": "客户",
......
......@@ -55,12 +55,12 @@ export interface Contact {
aging90_base?: any;
/**
* AccountIdYomiName
* 客户
*
* @returns {*}
* @memberof Contact
*/
accountidyominame?: any;
accountname?: any;
/**
* 不允许使用批量邮件
......
......@@ -247,12 +247,12 @@ export interface Entitlement {
remainingterms?: any;
/**
* AccountIdYomiName
* 客户
*
* @returns {*}
* @memberof Entitlement
*/
accountidyominame?: any;
accountname?: any;
/**
* 客户类型
......
/**
* 案例客户
*
* @export
* @interface IncidentCustomer
*/
export interface IncidentCustomer {
/**
* 客户
*
* @returns {*}
* @memberof IncidentCustomer
*/
customerid?: any;
/**
* 客户类型
*
* @returns {*}
* @memberof IncidentCustomer
*/
customeridtype?: any;
/**
* 客户
*
* @returns {*}
* @memberof IncidentCustomer
*/
customeridyominame?: any;
}
\ No newline at end of file
......@@ -207,7 +207,7 @@ export interface Incident {
entityimage?: any;
/**
* CustomerIdYomiName
* 客户
*
* @returns {*}
* @memberof Incident
......@@ -255,12 +255,12 @@ export interface Incident {
contactidyominame?: any;
/**
* AccountIdYomiName
* 客户
*
* @returns {*}
* @memberof Incident
*/
accountidyominame?: any;
accountname?: any;
/**
* EntityImage_URL
......
......@@ -31,12 +31,12 @@ export interface Invoice {
owneridtype?: any;
/**
* AccountIdYomiName
* 客户
*
* @returns {*}
* @memberof Invoice
*/
accountidyominame?: any;
accountname?: any;
/**
* 上一暂候时间
......
......@@ -359,12 +359,12 @@ export interface Opportunity {
qualificationcomments?: any;
/**
* AccountIdYomiName
* 客户
*
* @returns {*}
* @memberof Opportunity
*/
accountidyominame?: any;
accountname?: any;
/**
* 已安排跟进(授予资格)
......
......@@ -383,12 +383,12 @@ export interface Quote {
description?: any;
/**
* AccountIdYomiName
* 客户
*
* @returns {*}
* @memberof Quote
*/
accountidyominame?: any;
accountname?: any;
/**
* 帐单寄往地址
......
......@@ -119,12 +119,12 @@ export interface SalesOrder {
ownerid?: any;
/**
* AccountIdYomiName
* 客户
*
* @returns {*}
* @memberof SalesOrder
*/
accountidyominame?: any;
accountname?: any;
/**
* 汇率
......
......@@ -48,6 +48,7 @@ import multipickdata_en_US from '@locale/lanres/entities/multi-pick-data/multi-p
import contact_en_US from '@locale/lanres/entities/contact/contact_en_US';
import product_en_US from '@locale/lanres/entities/product/product_en_US';
import competitor_en_US from '@locale/lanres/entities/competitor/competitor_en_US';
import incidentcustomer_en_US from '@locale/lanres/entities/incident-customer/incident-customer_en_US';
import competitorproduct_en_US from '@locale/lanres/entities/competitor-product/competitor-product_en_US';
import account_en_US from '@locale/lanres/entities/account/account_en_US';
import salesorder_en_US from '@locale/lanres/entities/sales-order/sales-order_en_US';
......@@ -220,6 +221,7 @@ export default {
contact: contact_en_US,
product: product_en_US,
competitor: competitor_en_US,
incidentcustomer: incidentcustomer_en_US,
competitorproduct: competitorproduct_en_US,
account: account_en_US,
salesorder: salesorder_en_US,
......
......@@ -48,6 +48,7 @@ import multipickdata_zh_CN from '@locale/lanres/entities/multi-pick-data/multi-p
import contact_zh_CN from '@locale/lanres/entities/contact/contact_zh_CN';
import product_zh_CN from '@locale/lanres/entities/product/product_zh_CN';
import competitor_zh_CN from '@locale/lanres/entities/competitor/competitor_zh_CN';
import incidentcustomer_zh_CN from '@locale/lanres/entities/incident-customer/incident-customer_zh_CN';
import competitorproduct_zh_CN from '@locale/lanres/entities/competitor-product/competitor-product_zh_CN';
import account_zh_CN from '@locale/lanres/entities/account/account_zh_CN';
import salesorder_zh_CN from '@locale/lanres/entities/sales-order/sales-order_zh_CN';
......@@ -220,6 +221,7 @@ export default {
contact: contact_zh_CN,
product: product_zh_CN,
competitor: competitor_zh_CN,
incidentcustomer: incidentcustomer_zh_CN,
competitorproduct: competitorproduct_zh_CN,
account: account_zh_CN,
salesorder: salesorder_zh_CN,
......
......@@ -704,9 +704,13 @@ export default {
caption: "编辑",
tip: "编辑",
},
tbitem1_removeandexit: {
caption: "Remove And Close",
tip: "Remove And Close Window",
tbitem1_remove_sep: {
caption: "",
tip: "",
},
tbitem1_remove: {
caption: "删除并关闭",
tip: "删除并关闭",
},
seperator4: {
caption: "",
......
......@@ -703,7 +703,11 @@ export default {
caption: "编辑",
tip: "编辑",
},
tbitem1_removeandexit: {
tbitem1_remove_sep: {
caption: "",
tip: "",
},
tbitem1_remove: {
caption: "删除并关闭",
tip: "删除并关闭",
},
......
......@@ -7,7 +7,7 @@ export default {
parentcustomeridtype: "上级客户类型",
address1_stateorprovince: "地址 1: 省/市/自治区",
aging90_base: "时效 90 (基础货币)",
accountidyominame: "AccountIdYomiName",
accountname: "客户",
donotbulkpostalmail: "不允许使用批量邮件",
managername: "经理",
donotpostalmail: "不允许使用邮件",
......
......@@ -6,7 +6,7 @@ export default {
parentcustomeridtype: "上级客户类型",
address1_stateorprovince: "地址 1: 省/市/自治区",
aging90_base: "时效 90 (基础货币)",
accountidyominame: "AccountIdYomiName",
accountname: "客户",
donotbulkpostalmail: "不允许使用批量邮件",
managername: "经理",
donotpostalmail: "不允许使用邮件",
......
......@@ -31,7 +31,7 @@ export default {
entitlementid: "权利",
updateman: "更新人",
remainingterms: "剩余期数",
accountidyominame: "AccountIdYomiName",
accountname: "客户",
customeridtype: "客户类型",
overriddencreatedon: "Record Created On",
stageid: "Stage Id",
......
......@@ -30,7 +30,7 @@ export default {
entitlementid: "权利",
updateman: "更新人",
remainingterms: "剩余期数",
accountidyominame: "AccountIdYomiName",
accountname: "客户",
customeridtype: "客户类型",
overriddencreatedon: "Record Created On",
stageid: "Stage Id",
......
export default {
fields: {
customerid: "客户",
customeridtype: "客户类型",
customeridyominame: "客户",
},
};
\ No newline at end of file
export default {
fields: {
customerid: "客户",
customeridtype: "客户类型",
customeridyominame: "客户",
},
};
\ No newline at end of file
......@@ -26,13 +26,13 @@ export default {
billedserviceunits: "记帐服务计价单位",
prioritycode: "优先级",
entityimage: "实体图像",
customeridyominame: "CustomerIdYomiName",
customeridyominame: "客户",
onholdtime: "暂候时间(分钟)",
createman: "建立人",
kbarticleid: "知识库文章",
contractservicelevelcode: "服务级别",
contactidyominame: "ContactIdYomiName",
accountidyominame: "AccountIdYomiName",
accountname: "客户",
entityimage_url: "EntityImage_URL",
customercontacted: "已联系客户",
processid: "Process Id",
......@@ -160,10 +160,12 @@ export default {
srfsourcekey: "",
title: "案例标题",
subjectname: "主题",
customerid: "客户",
customeridyominame: "客户",
caseorigincode: "起源",
productname: "产品",
entitlementname: "权利",
customerid: "客户",
customeridtype: "客户类型",
productid: "产品",
incidentid: "案例",
subjectid: "主题",
......
......@@ -25,13 +25,13 @@ export default {
billedserviceunits: "记帐服务计价单位",
prioritycode: "优先级",
entityimage: "实体图像",
customeridyominame: "CustomerIdYomiName",
customeridyominame: "客户",
onholdtime: "暂候时间(分钟)",
createman: "建立人",
kbarticleid: "知识库文章",
contractservicelevelcode: "服务级别",
contactidyominame: "ContactIdYomiName",
accountidyominame: "AccountIdYomiName",
accountname: "客户",
entityimage_url: "EntityImage_URL",
customercontacted: "已联系客户",
processid: "Process Id",
......@@ -159,10 +159,12 @@ export default {
srfsourcekey: "",
title: "案例标题",
subjectname: "主题",
customerid: "客户",
customeridyominame: "客户",
caseorigincode: "起源",
productname: "产品",
entitlementname: "权利",
customerid: "客户",
customeridtype: "客户类型",
productid: "产品",
incidentid: "案例",
subjectid: "主题",
......
......@@ -4,7 +4,7 @@ export default {
billto_line1: "帐单寄往街道 1",
billto_telephone: "帐单寄往地的电话号码",
owneridtype: "负责人类型",
accountidyominame: "AccountIdYomiName",
accountname: "客户",
lastonholdtime: "上一暂候时间",
billto_stateorprovince: "帐单寄往省/市/自治区",
duedate: "截止日期",
......
......@@ -3,7 +3,7 @@ export default {
billto_line1: "帐单寄往街道 1",
billto_telephone: "帐单寄往地的电话号码",
owneridtype: "负责人类型",
accountidyominame: "AccountIdYomiName",
accountname: "客户",
lastonholdtime: "上一暂候时间",
billto_stateorprovince: "帐单寄往省/市/自治区",
duedate: "截止日期",
......
......@@ -45,7 +45,7 @@ export default {
opportunityid: "商机",
onholdtime: "暂候时间(分钟)",
qualificationcomments: "资格注释",
accountidyominame: "AccountIdYomiName",
accountname: "客户",
schedulefollowup_qualify: "已安排跟进(授予资格)",
participatesinworkflow: "参与工作流",
exchangerate: "汇率",
......
......@@ -44,7 +44,7 @@ export default {
opportunityid: "商机",
onholdtime: "暂候时间(分钟)",
qualificationcomments: "资格注释",
accountidyominame: "AccountIdYomiName",
accountname: "客户",
schedulefollowup_qualify: "已安排跟进(授予资格)",
participatesinworkflow: "参与工作流",
exchangerate: "汇率",
......
......@@ -48,7 +48,7 @@ export default {
contactidyominame: "ContactIdYomiName",
billto_line3: "帐单寄往街道 3",
description: "说明",
accountidyominame: "AccountIdYomiName",
accountname: "客户",
billto_composite: "帐单寄往地址",
requestdeliveryby: "要求交付日期",
totaltax: "总税款",
......@@ -142,6 +142,10 @@ export default {
caption: "报价单",
title: "报价单信息",
},
edit_datapanelview: {
caption: "报价单",
title: "头部信息编辑",
},
statetabview: {
caption: "报价单",
title: "报价单状态分页视图",
......@@ -234,6 +238,51 @@ export default {
uiactions: {
},
},
edit_datepanel_form: {
details: {
group1: "报价单基本信息",
formpage1: "基本信息",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "报价单",
srfmajortext: "报价名称",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
totalamount: "总金额",
effectivefrom: "开始生效日期",
effectiveto: "有效截止时间",
owneridyominame: "负责人",
quoteid: "报价单",
},
uiactions: {
},
},
datapanel_form: {
details: {
button1: "头信息编辑",
grouppanel1: "分组面板",
group1: "报价单基本信息",
formpage1: "基本信息",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "报价单",
srfmajortext: "报价名称",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
totalamount: "总金额",
effectivefrom: "开始生效日期",
effectiveto: "有效截止时间",
owneridyominame: "负责人",
quoteid: "报价单",
},
uiactions: {
quote_openedit_datapanelview: "头信息编辑",
},
},
main_grid: {
columns: {
quotename: "报价名称",
......
......@@ -47,7 +47,7 @@ export default {
contactidyominame: "ContactIdYomiName",
billto_line3: "帐单寄往街道 3",
description: "说明",
accountidyominame: "AccountIdYomiName",
accountname: "客户",
billto_composite: "帐单寄往地址",
requestdeliveryby: "要求交付日期",
totaltax: "总税款",
......@@ -141,6 +141,10 @@ export default {
caption: "报价单",
title: "报价单信息",
},
edit_datapanelview: {
caption: "报价单",
title: "头部信息编辑",
},
statetabview: {
caption: "报价单",
title: "报价单状态分页视图",
......@@ -233,6 +237,51 @@ export default {
uiactions: {
},
},
edit_datepanel_form: {
details: {
group1: "报价单基本信息",
formpage1: "基本信息",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "报价单",
srfmajortext: "报价名称",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
totalamount: "总金额",
effectivefrom: "开始生效日期",
effectiveto: "有效截止时间",
owneridyominame: "负责人",
quoteid: "报价单",
},
uiactions: {
},
},
datapanel_form: {
details: {
button1: "头信息编辑",
grouppanel1: "分组面板",
group1: "报价单基本信息",
formpage1: "基本信息",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "报价单",
srfmajortext: "报价名称",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
totalamount: "总金额",
effectivefrom: "开始生效日期",
effectiveto: "有效截止时间",
owneridyominame: "负责人",
quoteid: "报价单",
},
uiactions: {
quote_openedit_datapanelview: "头信息编辑",
},
},
main_grid: {
columns: {
quotename: "报价名称",
......
......@@ -15,7 +15,7 @@ export default {
billto_line1: "帐单寄往街道 1",
utcconversiontimezonecode: "UTC Conversion Time Zone Code",
ownerid: "负责人",
accountidyominame: "AccountIdYomiName",
accountname: "客户",
exchangerate: "汇率",
entityimageid: "EntityImageId",
shipto_line3: "送至街道 3",
......@@ -280,7 +280,7 @@ export default {
tip: "关闭",
},
},
byparentkeytoolbar_toolbar: {
gridviewtoolbar_toolbar: {
tbitem1_openquickcreateview: {
caption: "新建",
tip: "新建",
......@@ -322,45 +322,7 @@ export default {
tip: "Filter",
},
},
editviewtoolbar_toolbar: {
tbitem3: {
caption: "Save",
tip: "Save",
},
tbitem4: {
caption: "Save And New",
tip: "Save And New",
},
tbitem5: {
caption: "Save And Close",
tip: "Save And Close Window",
},
tbitem6: {
caption: "-",
tip: "",
},
tbitem7: {
caption: "Remove And Close",
tip: "Remove And Close Window",
},
tbitem8: {
caption: "-",
tip: "",
},
tbitem12: {
caption: "New",
tip: "New",
},
tbitem13: {
caption: "-",
tip: "",
},
tbitem14: {
caption: "Copy",
tip: "Copy {0}",
},
},
gridviewtoolbar_toolbar: {
byparentkeytoolbar_toolbar: {
tbitem1_openquickcreateview: {
caption: "新建",
tip: "新建",
......@@ -402,4 +364,42 @@ export default {
tip: "Filter",
},
},
editviewtoolbar_toolbar: {
tbitem3: {
caption: "Save",
tip: "Save",
},
tbitem4: {
caption: "Save And New",
tip: "Save And New",
},
tbitem5: {
caption: "Save And Close",
tip: "Save And Close Window",
},
tbitem6: {
caption: "-",
tip: "",
},
tbitem7: {
caption: "Remove And Close",
tip: "Remove And Close Window",
},
tbitem8: {
caption: "-",
tip: "",
},
tbitem12: {
caption: "New",
tip: "New",
},
tbitem13: {
caption: "-",
tip: "",
},
tbitem14: {
caption: "Copy",
tip: "Copy {0}",
},
},
};
\ No newline at end of file
......@@ -14,7 +14,7 @@ export default {
billto_line1: "帐单寄往街道 1",
utcconversiontimezonecode: "UTC Conversion Time Zone Code",
ownerid: "负责人",
accountidyominame: "AccountIdYomiName",
accountname: "客户",
exchangerate: "汇率",
entityimageid: "EntityImageId",
shipto_line3: "送至街道 3",
......@@ -279,7 +279,7 @@ export default {
tip: "关闭",
},
},
byparentkeytoolbar_toolbar: {
gridviewtoolbar_toolbar: {
tbitem1_openquickcreateview: {
caption: "新建",
tip: "新建",
......@@ -321,45 +321,7 @@ export default {
tip: "过滤",
},
},
editviewtoolbar_toolbar: {
tbitem3: {
caption: "保存",
tip: "保存",
},
tbitem4: {
caption: "保存并新建",
tip: "保存并新建",
},
tbitem5: {
caption: "保存并关闭",
tip: "保存并关闭",
},
tbitem6: {
caption: "-",
tip: "",
},
tbitem7: {
caption: "删除并关闭",
tip: "删除并关闭",
},
tbitem8: {
caption: "-",
tip: "",
},
tbitem12: {
caption: "新建",
tip: "新建",
},
tbitem13: {
caption: "-",
tip: "",
},
tbitem14: {
caption: "拷贝",
tip: "拷贝",
},
},
gridviewtoolbar_toolbar: {
byparentkeytoolbar_toolbar: {
tbitem1_openquickcreateview: {
caption: "新建",
tip: "新建",
......@@ -401,4 +363,42 @@ export default {
tip: "过滤",
},
},
editviewtoolbar_toolbar: {
tbitem3: {
caption: "保存",
tip: "保存",
},
tbitem4: {
caption: "保存并新建",
tip: "保存并新建",
},
tbitem5: {
caption: "保存并关闭",
tip: "保存并关闭",
},
tbitem6: {
caption: "-",
tip: "",
},
tbitem7: {
caption: "删除并关闭",
tip: "删除并关闭",
},
tbitem8: {
caption: "-",
tip: "",
},
tbitem12: {
caption: "新建",
tip: "新建",
},
tbitem13: {
caption: "-",
tip: "",
},
tbitem14: {
caption: "拷贝",
tip: "拷贝",
},
},
};
\ No newline at end of file
......@@ -57,6 +57,7 @@ import './entity/multi-pick-datas/multi-pick-datas';
import './entity/contacts/contacts';
import './entity/products/products';
import './entity/competitors/competitors';
import './entity/incident-customers/incident-customers';
import './entity/competitor-products/competitor-products';
import './entity/accounts/accounts';
import './entity/sales-orders/sales-orders';
......
......@@ -1991,6 +1991,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "InvoiceInfo_InvoiceView",
"viewtag": "e167550b61bf1bd019a8e522b8fccc21"
},
"quoteedit_datapanelview": {
"title": "头部信息编辑",
"caption": "报价单",
"viewtype": "DEEDITVIEW",
"viewmodule": "Sales",
"viewname": "QuoteEdit_DataPanelView",
"viewtag": "e1b0831107ec5781d66db9c0f32f016d"
},
"accountinfo_contactsetting": {
"title": "客户编辑视图",
"caption": "客户",
......
......@@ -94,7 +94,8 @@ export class AccountInfoBase extends TabExpViewBase {
public toolBarModels: any = {
tbitem1_openmaineditview: { name: 'tbitem1_openmaineditview', caption: '编辑','isShowCaption':true,'isShowIcon':true, tooltip: '编辑', iconcls: 'fa fa-edit', icon: '', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'OpenMainEditView', target: 'SINGLEKEY' }, class: '' },
tbitem1_removeandexit: { name: 'tbitem1_removeandexit', caption: '删除并关闭','isShowCaption':true,'isShowIcon':true, tooltip: '删除并关闭', iconcls: 'fa fa-remove', icon: '', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'RemoveAndExit', target: 'SINGLEKEY' }, class: '' },
tbitem1_remove_sep: { name: 'tbitem1_remove_sep', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
tbitem1_remove: { name: 'tbitem1_remove', caption: '删除并关闭','isShowCaption':true,'isShowIcon':true, tooltip: '删除并关闭', iconcls: 'fa fa-remove', icon: '', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'Remove', target: 'SINGLEKEY' }, class: '' },
seperator4: { name: 'seperator4', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
tbitem17_inactive: { name: 'tbitem17_inactive', caption: '停用','isShowCaption':true,'isShowIcon':true, tooltip: '停用', iconcls: 'fa fa-minus-circle', icon: '', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'Inactive', target: 'SINGLEKEY' }, class: '' },
......@@ -173,8 +174,8 @@ export class AccountInfoBase extends TabExpViewBase {
if (Object.is($event.tag, 'tbitem1_openmaineditview')) {
this.toolbar_tbitem1_openmaineditview_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem1_removeandexit')) {
this.toolbar_tbitem1_removeandexit_click(null, '', $event2);
if (Object.is($event.tag, 'tbitem1_remove')) {
this.toolbar_tbitem1_remove_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem17_inactive')) {
this.toolbar_tbitem17_inactive_click(null, '', $event2);
......@@ -226,7 +227,7 @@ export class AccountInfoBase extends TabExpViewBase {
* @param {*} [$event]
* @memberof
*/
public toolbar_tbitem1_removeandexit_click(params: any = {}, tag?: any, $event?: any) {
public toolbar_tbitem1_remove_click(params: any = {}, tag?: any, $event?: any) {
// 参数
// 取数
let datas: any[] = [];
......@@ -242,7 +243,8 @@ export class AccountInfoBase extends TabExpViewBase {
datas = [params];
}
// 界面行为
this.RemoveAndExit(datas, contextJO,paramJO, $event, xData,this,"Account");
const curUIService:AccountUIService = new AccountUIService();
curUIService.Account_Remove(datas,contextJO, paramJO, $event, xData,this,"Account");
}
/**
......@@ -356,39 +358,6 @@ export class AccountInfoBase extends TabExpViewBase {
this.Exit(datas, contextJO,paramJO, $event, xData,this,"Account");
}
/**
* 删除并关闭
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof AccountInfoBase
*/
public RemoveAndExit(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
const _this: any = this;
if (xData && xData.removeAndExit instanceof Function) {
xData.removeAndExit().then((response: any) => {
if (!response || response.status !== 200) {
return;
}
if(window.parent){
window.parent.postMessage([{ ...response.data }],'*');
}
});
} else if (_this.removeAndExit && _this.removeAndExit instanceof Function) {
_this.removeAndExit().then((response: any) => {
if (!response || response.status !== 200) {
return;
}
if(window.parent){
window.parent.postMessage([{ ...response.data }],'*');
}
});
}
}
/**
* 关闭
*
......
import { Subject } from 'rxjs';
import { EditViewBase } from '@/studio-core';
import QuoteService from '@/service/quote/quote-service';
import EditViewEngine from '@engine/view/edit-view-engine';
/**
* 头部信息编辑视图基类
*
* @export
* @class QuoteEdit_DataPanelViewBase
* @extends {EditViewBase}
*/
export class QuoteEdit_DataPanelViewBase extends EditViewBase {
/**
* 视图对应应用实体名称
*
* @protected
* @type {string}
* @memberof QuoteEdit_DataPanelViewBase
*/
protected appDeName: string = 'quote';
/**
* 应用实体主键
*
* @protected
* @type {string}
* @memberof QuoteEdit_DataPanelViewBase
*/
protected appDeKey: string = 'quoteid';
/**
* 应用实体主信息
*
* @protected
* @type {string}
* @memberof QuoteEdit_DataPanelViewBase
*/
protected appDeMajor: string = 'quotename';
/**
* 实体服务对象
*
* @type {QuoteService}
* @memberof QuoteEdit_DataPanelViewBase
*/
protected appEntityService: QuoteService = new QuoteService;
/**
* 计数器服务对象集合
*
* @protected
* @type {Array<*>}
* @memberof QuoteEdit_DataPanelViewBase
*/
protected counterServiceArray: Array<any> = [];
/**
* 视图模型数据
*
* @protected
* @type {*}
* @memberof QuoteEdit_DataPanelViewBase
*/
protected model: any = {
srfCaption: 'entities.quote.views.edit_datapanelview.caption',
srfTitle: 'entities.quote.views.edit_datapanelview.title',
srfSubTitle: 'entities.quote.views.edit_datapanelview.subtitle',
dataInfo: ''
}
/**
* 容器模型
*
* @protected
* @type {*}
* @memberof QuoteEdit_DataPanelViewBase
*/
protected containerModel: any = {
view_form: { name: 'form', type: 'FORM' },
};
/**
* 视图唯一标识
*
* @protected
* @type {string}
* @memberof ViewBase
*/
protected viewtag: string = 'e1b0831107ec5781d66db9c0f32f016d';
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof QuoteEdit_DataPanelViewBase
*/
public engine: EditViewEngine = new EditViewEngine();
/**
* 引擎初始化
*
* @public
* @memberof QuoteEdit_DataPanelViewBase
*/
public engineInit(): void {
this.engine.init({
view: this,
form: this.$refs.form,
p2k: '0',
keyPSDEField: 'quote',
majorPSDEField: 'quotename',
isLoadDefault: true,
});
}
/**
* form 部件 save 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteEdit_DataPanelViewBase
*/
public form_save($event: any, $event2?: any): void {
this.engine.onCtrlEvent('form', 'save', $event);
}
/**
* form 部件 remove 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteEdit_DataPanelViewBase
*/
public form_remove($event: any, $event2?: any): void {
this.engine.onCtrlEvent('form', 'remove', $event);
}
/**
* form 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof QuoteEdit_DataPanelViewBase
*/
public form_load($event: any, $event2?: any): void {
this.engine.onCtrlEvent('form', 'load', $event);
}
}
\ No newline at end of file
<studio-view-style2 viewName="quoteedit_datapanelview" viewTitle="头部信息编辑" class='deeditview quote-edit-data-panel-view'>
<view_form
:viewState="viewState"
:viewparams="viewparams"
:context="context"
:autosave="true"
:viewtag="viewtag"
:showBusyIndicator="true"
updateAction="Update"
removeAction="Remove"
loaddraftAction="GetDraft"
loadAction="Get"
createAction="Create"
WFSubmitAction=""
WFStartAction=""
style=''
name="form"
ref='form'
@save="form_save($event)"
@remove="form_remove($event)"
@load="form_load($event)"
@closeview="closeView($event)">
</view_form>
</studio-view-style2>
\ No newline at end of file
<template src="./quote-edit-data-panel-view.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { QuoteEdit_DataPanelViewBase } from './quote-edit-data-panel-view-base';
import view_form from '@widgets/quote/edit-date-panel-form/edit-date-panel-form.vue';
/**
* 头部信息编辑视图
*
* @export
* @class QuoteEdit_DataPanelView
* @extends {QuoteEdit_DataPanelViewBase}
*/
@Component({
components: {
view_form,
}
})
@VueLifeCycleProcessing()
export default class QuoteEdit_DataPanelView extends QuoteEdit_DataPanelViewBase { }
</script>
......@@ -2,6 +2,7 @@ import { Subject } from 'rxjs';
import { TabExpViewBase } from '@/studio-core';
import QuoteService from '@/service/quote/quote-service';
import TabExpViewEngine from '@engine/view/tab-exp-view-engine';
import DataPanelEngine from '@engine/ctrl/data-panel-engine';
import QuoteUIService from '@/uiservice/quote/quote-ui-service';
/**
......@@ -80,6 +81,7 @@ export class QuoteInfoBase extends TabExpViewBase {
*/
protected containerModel: any = {
view_toolbar: { name: 'toolbar', type: 'TOOLBAR' },
view_datapanel: { name: 'datapanel', type: 'FORM' },
view_tabexppanel: { name: 'tabexppanel', type: 'TABEXPPANEL' },
};
......@@ -126,6 +128,15 @@ export class QuoteInfoBase extends TabExpViewBase {
*/
public engine: TabExpViewEngine = new TabExpViewEngine();
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof QuoteInfoBase
*/
public datapanel: DataPanelEngine = new DataPanelEngine();
/**
* 引擎初始化
*
......@@ -139,6 +150,13 @@ export class QuoteInfoBase extends TabExpViewBase {
majorPSDEField: 'quotename',
isLoadDefault: true,
});
this.datapanel.init({
view: this,
datapanel: this.$refs.datapanel,
keyPSDEField: 'quote',
majorPSDEField: 'quotename',
isLoadDefault: true,
});
}
/**
......
......@@ -2,6 +2,27 @@
<template slot='title'>
<span class='caption-info'>{{$t(model.srfTitle)}}</span>
</template>
<template slot="dataPanel">
<view_datapanel
:viewState="viewState"
:viewparams="viewparams"
:context="context"
:autosave="false"
:viewtag="viewtag"
:showBusyIndicator="true"
updateAction="Update"
removeAction="Remove"
loaddraftAction="GetDraft"
loadAction="Get"
createAction="Create"
WFSubmitAction=""
WFStartAction=""
style=''
name="datapanel"
ref='datapanel'
@closeview="closeView($event)">
</view_datapanel>
</template>
<template slot="toolbar">
<view-toolbar mode="STYLE2" :model="toolBarModels" @item-click="toolbar_click($event)"/> </template>
<view_tabexppanel
......
......@@ -3,6 +3,7 @@
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { QuoteInfoBase } from './quote-info-base';
import view_datapanel from '@widgets/quote/data-panel-form/data-panel-form.vue';
import view_tabexppanel from '@widgets/quote/infotabexppanel-tabexppanel/infotabexppanel-tabexppanel.vue';
/**
......@@ -14,6 +15,7 @@ import view_tabexppanel from '@widgets/quote/infotabexppanel-tabexppanel/infotab
*/
@Component({
components: {
view_datapanel,
view_tabexppanel,
}
})
......
......@@ -69,6 +69,7 @@ export const PageComponents = {
Vue.component('knowledge-article-quick-create-view', () => import('@pages/base/knowledge-article-quick-create-view/knowledge-article-quick-create-view.vue'));
Vue.component('multi-pick-data-acgrid', () => import('@pages/base/multi-pick-data-acgrid/multi-pick-data-acgrid.vue'));
Vue.component('opportunity-summary', () => import('@pages/sales/opportunity-summary/opportunity-summary.vue'));
Vue.component('quote-edit-data-panel-view', () => import('@pages/sales/quote-edit-data-panel-view/quote-edit-data-panel-view.vue'));
Vue.component('goal-pickup-grid-view', () => import('@pages/sales/goal-pickup-grid-view/goal-pickup-grid-view.vue'));
Vue.component('contact-info', () => import('@pages/base/contact-info/contact-info.vue'));
Vue.component('quote-summary', () => import('@pages/sales/quote-summary/quote-summary.vue'));
......
......@@ -2374,6 +2374,84 @@ const router = new Router({
},
component: () => import('@pages/sales/opportunity-summary/opportunity-summary.vue'),
},
{
path: 'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/quotes/:quote?/edit_datapanelview/:edit_datapanelview?',
meta: {
caption: 'entities.quote.views.edit_datapanelview.title',
info:'',
parameters: [
{ pathName: 'central', parameterName: 'central' },
{ pathName: 'accounts', parameterName: 'account' },
{ pathName: 'contacts', parameterName: 'contact' },
{ pathName: 'opportunities', parameterName: 'opportunity' },
{ pathName: 'quotes', parameterName: 'quote' },
{ pathName: 'edit_datapanelview', parameterName: 'edit_datapanelview' },
],
requireAuth: true,
},
component: () => import('@pages/sales/quote-edit-data-panel-view/quote-edit-data-panel-view.vue'),
},
{
path: 'contacts/:contact?/opportunities/:opportunity?/quotes/:quote?/edit_datapanelview/:edit_datapanelview?',
meta: {
caption: 'entities.quote.views.edit_datapanelview.title',
info:'',
parameters: [
{ pathName: 'central', parameterName: 'central' },
{ pathName: 'contacts', parameterName: 'contact' },
{ pathName: 'opportunities', parameterName: 'opportunity' },
{ pathName: 'quotes', parameterName: 'quote' },
{ pathName: 'edit_datapanelview', parameterName: 'edit_datapanelview' },
],
requireAuth: true,
},
component: () => import('@pages/sales/quote-edit-data-panel-view/quote-edit-data-panel-view.vue'),
},
{
path: 'accounts/:account?/opportunities/:opportunity?/quotes/:quote?/edit_datapanelview/:edit_datapanelview?',
meta: {
caption: 'entities.quote.views.edit_datapanelview.title',
info:'',
parameters: [
{ pathName: 'central', parameterName: 'central' },
{ pathName: 'accounts', parameterName: 'account' },
{ pathName: 'opportunities', parameterName: 'opportunity' },
{ pathName: 'quotes', parameterName: 'quote' },
{ pathName: 'edit_datapanelview', parameterName: 'edit_datapanelview' },
],
requireAuth: true,
},
component: () => import('@pages/sales/quote-edit-data-panel-view/quote-edit-data-panel-view.vue'),
},
{
path: 'opportunities/:opportunity?/quotes/:quote?/edit_datapanelview/:edit_datapanelview?',
meta: {
caption: 'entities.quote.views.edit_datapanelview.title',
info:'',
parameters: [
{ pathName: 'central', parameterName: 'central' },
{ pathName: 'opportunities', parameterName: 'opportunity' },
{ pathName: 'quotes', parameterName: 'quote' },
{ pathName: 'edit_datapanelview', parameterName: 'edit_datapanelview' },
],
requireAuth: true,
},
component: () => import('@pages/sales/quote-edit-data-panel-view/quote-edit-data-panel-view.vue'),
},
{
path: 'quotes/:quote?/edit_datapanelview/:edit_datapanelview?',
meta: {
caption: 'entities.quote.views.edit_datapanelview.title',
info:'',
parameters: [
{ pathName: 'central', parameterName: 'central' },
{ pathName: 'quotes', parameterName: 'quote' },
{ pathName: 'edit_datapanelview', parameterName: 'edit_datapanelview' },
],
requireAuth: true,
},
component: () => import('@pages/sales/quote-edit-data-panel-view/quote-edit-data-panel-view.vue'),
},
{
path: 'goals/:goal?/pickupgridview/:pickupgridview?',
meta: {
......
......@@ -79,21 +79,6 @@ export default class AccountServiceBase extends EntityService {
}
}
masterData.opportunities = opportunitiesData;
let leadsData:any = [];
if(!Object.is(this.tempStorage.getItem(context.srfsessionkey+'_leads'),'undefined')){
leadsData = JSON.parse(this.tempStorage.getItem(context.srfsessionkey+'_leads') as any);
if(leadsData && leadsData.length && leadsData.length > 0){
leadsData.forEach((item:any) => {
if(item.srffrontuf){
if(Object.is(item.srffrontuf,"0")){
item.leadid = null;
}
delete item.srffrontuf;
}
});
}
}
masterData.leads = leadsData;
let listaccountsData:any = [];
if(!Object.is(this.tempStorage.getItem(context.srfsessionkey+'_listaccounts'),'undefined')){
listaccountsData = JSON.parse(this.tempStorage.getItem(context.srfsessionkey+'_listaccounts') as any);
......@@ -124,6 +109,21 @@ export default class AccountServiceBase extends EntityService {
}
}
masterData.contacts = contactsData;
let leadsData:any = [];
if(!Object.is(this.tempStorage.getItem(context.srfsessionkey+'_leads'),'undefined')){
leadsData = JSON.parse(this.tempStorage.getItem(context.srfsessionkey+'_leads') as any);
if(leadsData && leadsData.length && leadsData.length > 0){
leadsData.forEach((item:any) => {
if(item.srffrontuf){
if(Object.is(item.srffrontuf,"0")){
item.leadid = null;
}
delete item.srffrontuf;
}
});
}
}
masterData.leads = leadsData;
Object.assign(data,masterData);
if(!data.srffrontuf || data.srffrontuf !== "1"){
data[this.APPDEKEY] = null;
......@@ -134,9 +134,9 @@ export default class AccountServiceBase extends EntityService {
let tempContext:any = JSON.parse(JSON.stringify(context));
let res:any = await Http.getInstance().post(`/accounts`,data,isloading);
this.tempStorage.setItem(tempContext.srfsessionkey+'_opportunities',JSON.stringify(res.data.opportunities));
this.tempStorage.setItem(tempContext.srfsessionkey+'_leads',JSON.stringify(res.data.leads));
this.tempStorage.setItem(tempContext.srfsessionkey+'_listaccounts',JSON.stringify(res.data.listaccounts));
this.tempStorage.setItem(tempContext.srfsessionkey+'_contacts',JSON.stringify(res.data.contacts));
this.tempStorage.setItem(tempContext.srfsessionkey+'_leads',JSON.stringify(res.data.leads));
return res;
}
......@@ -166,21 +166,6 @@ export default class AccountServiceBase extends EntityService {
}
}
masterData.opportunities = opportunitiesData;
let leadsData:any = [];
if(!Object.is(this.tempStorage.getItem(context.srfsessionkey+'_leads'),'undefined')){
leadsData = JSON.parse(this.tempStorage.getItem(context.srfsessionkey+'_leads') as any);
if(leadsData && leadsData.length && leadsData.length > 0){
leadsData.forEach((item:any) => {
if(item.srffrontuf){
if(Object.is(item.srffrontuf,"0")){
item.leadid = null;
}
delete item.srffrontuf;
}
});
}
}
masterData.leads = leadsData;
let listaccountsData:any = [];
if(!Object.is(this.tempStorage.getItem(context.srfsessionkey+'_listaccounts'),'undefined')){
listaccountsData = JSON.parse(this.tempStorage.getItem(context.srfsessionkey+'_listaccounts') as any);
......@@ -211,12 +196,27 @@ export default class AccountServiceBase extends EntityService {
}
}
masterData.contacts = contactsData;
let leadsData:any = [];
if(!Object.is(this.tempStorage.getItem(context.srfsessionkey+'_leads'),'undefined')){
leadsData = JSON.parse(this.tempStorage.getItem(context.srfsessionkey+'_leads') as any);
if(leadsData && leadsData.length && leadsData.length > 0){
leadsData.forEach((item:any) => {
if(item.srffrontuf){
if(Object.is(item.srffrontuf,"0")){
item.leadid = null;
}
delete item.srffrontuf;
}
});
}
}
masterData.leads = leadsData;
Object.assign(data,masterData);
let res:any = await Http.getInstance().put(`/accounts/${context.account}`,data,isloading);
this.tempStorage.setItem(context.srfsessionkey+'_opportunities',JSON.stringify(res.data.opportunities));
this.tempStorage.setItem(context.srfsessionkey+'_leads',JSON.stringify(res.data.leads));
this.tempStorage.setItem(context.srfsessionkey+'_listaccounts',JSON.stringify(res.data.listaccounts));
this.tempStorage.setItem(context.srfsessionkey+'_contacts',JSON.stringify(res.data.contacts));
this.tempStorage.setItem(context.srfsessionkey+'_leads',JSON.stringify(res.data.leads));
return res;
}
......@@ -245,9 +245,9 @@ export default class AccountServiceBase extends EntityService {
public async Get(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let res:any = await Http.getInstance().get(`/accounts/${context.account}`,isloading);
this.tempStorage.setItem(context.srfsessionkey+'_opportunities',JSON.stringify(res.data.opportunities));
this.tempStorage.setItem(context.srfsessionkey+'_leads',JSON.stringify(res.data.leads));
this.tempStorage.setItem(context.srfsessionkey+'_listaccounts',JSON.stringify(res.data.listaccounts));
this.tempStorage.setItem(context.srfsessionkey+'_contacts',JSON.stringify(res.data.contacts));
this.tempStorage.setItem(context.srfsessionkey+'_leads',JSON.stringify(res.data.leads));
return res;
}
......@@ -264,9 +264,9 @@ export default class AccountServiceBase extends EntityService {
let res:any = await Http.getInstance().get(`/accounts/getdraft`,isloading);
res.data.account = data.account;
this.tempStorage.setItem(context.srfsessionkey+'_opportunities',JSON.stringify(res.data.opportunities));
this.tempStorage.setItem(context.srfsessionkey+'_leads',JSON.stringify(res.data.leads));
this.tempStorage.setItem(context.srfsessionkey+'_listaccounts',JSON.stringify(res.data.listaccounts));
this.tempStorage.setItem(context.srfsessionkey+'_contacts',JSON.stringify(res.data.contacts));
this.tempStorage.setItem(context.srfsessionkey+'_leads',JSON.stringify(res.data.leads));
return res;
}
......@@ -352,21 +352,6 @@ export default class AccountServiceBase extends EntityService {
}
}
masterData.opportunities = opportunitiesData;
let leadsData:any = [];
if(!Object.is(this.tempStorage.getItem(context.srfsessionkey+'_leads'),'undefined')){
leadsData = JSON.parse(this.tempStorage.getItem(context.srfsessionkey+'_leads') as any);
if(leadsData && leadsData.length && leadsData.length > 0){
leadsData.forEach((item:any) => {
if(item.srffrontuf){
if(Object.is(item.srffrontuf,"0")){
item.leadid = null;
}
delete item.srffrontuf;
}
});
}
}
masterData.leads = leadsData;
let listaccountsData:any = [];
if(!Object.is(this.tempStorage.getItem(context.srfsessionkey+'_listaccounts'),'undefined')){
listaccountsData = JSON.parse(this.tempStorage.getItem(context.srfsessionkey+'_listaccounts') as any);
......@@ -397,12 +382,27 @@ export default class AccountServiceBase extends EntityService {
}
}
masterData.contacts = contactsData;
let leadsData:any = [];
if(!Object.is(this.tempStorage.getItem(context.srfsessionkey+'_leads'),'undefined')){
leadsData = JSON.parse(this.tempStorage.getItem(context.srfsessionkey+'_leads') as any);
if(leadsData && leadsData.length && leadsData.length > 0){
leadsData.forEach((item:any) => {
if(item.srffrontuf){
if(Object.is(item.srffrontuf,"0")){
item.leadid = null;
}
delete item.srffrontuf;
}
});
}
}
masterData.leads = leadsData;
Object.assign(data,masterData);
let res:any = await Http.getInstance().post(`/accounts/${context.account}/save`,data,isloading);
this.tempStorage.setItem(context.srfsessionkey+'_opportunities',JSON.stringify(res.data.opportunities));
this.tempStorage.setItem(context.srfsessionkey+'_leads',JSON.stringify(res.data.leads));
this.tempStorage.setItem(context.srfsessionkey+'_listaccounts',JSON.stringify(res.data.listaccounts));
this.tempStorage.setItem(context.srfsessionkey+'_contacts',JSON.stringify(res.data.contacts));
this.tempStorage.setItem(context.srfsessionkey+'_leads',JSON.stringify(res.data.leads));
return res;
}
......
......@@ -89,6 +89,7 @@ export class EntityServiceRegister {
this.allEntityService.set('contact', () => import('@/service/contact/contact-service'));
this.allEntityService.set('product', () => import('@/service/product/product-service'));
this.allEntityService.set('competitor', () => import('@/service/competitor/competitor-service'));
this.allEntityService.set('incidentcustomer', () => import('@/service/incident-customer/incident-customer-service'));
this.allEntityService.set('competitorproduct', () => import('@/service/competitor-product/competitor-product-service'));
this.allEntityService.set('account', () => import('@/service/account/account-service'));
this.allEntityService.set('salesorder', () => import('@/service/sales-order/sales-order-service'));
......
import { Http,Util } from '@/utils';
import EntityService from '../entity-service';
/**
* 案例客户服务对象基类
*
* @export
* @class IncidentCustomerServiceBase
* @extends {EntityServie}
*/
export default class IncidentCustomerServiceBase extends EntityService {
/**
* Creates an instance of IncidentCustomerServiceBase.
*
* @param {*} [opts={}]
* @memberof IncidentCustomerServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 初始化基础数据
*
* @memberof IncidentCustomerServiceBase
*/
public initBasicData(){
this.APPLYDEKEY ='incidentcustomer';
this.APPDEKEY = 'customerid';
this.APPDENAME = 'incidentcustomers';
this.APPDETEXT = 'customeridyominame';
this.APPNAME = 'crm';
this.SYSTEMNAME = 'ibizbusinesscentral';
}
// 实体接口
/**
* Select接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof IncidentCustomerServiceBase
*/
public async Select(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
return Http.getInstance().get(`/incidentcustomers/${context.incidentcustomer}/select`,isloading);
}
/**
* Create接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof IncidentCustomerServiceBase
*/
public async Create(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let masterData:any = {};
Object.assign(data,masterData);
if(!data.srffrontuf || data.srffrontuf !== "1"){
data[this.APPDEKEY] = null;
}
if(data.srffrontuf){
delete data.srffrontuf;
}
let tempContext:any = JSON.parse(JSON.stringify(context));
let res:any = await Http.getInstance().post(`/incidentcustomers`,data,isloading);
return res;
}
/**
* Update接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof IncidentCustomerServiceBase
*/
public async Update(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let masterData:any = {};
Object.assign(data,masterData);
let res:any = await Http.getInstance().put(`/incidentcustomers/${context.incidentcustomer}`,data,isloading);
return res;
}
/**
* Remove接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof IncidentCustomerServiceBase
*/
public async Remove(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
return Http.getInstance().delete(`/incidentcustomers/${context.incidentcustomer}`,isloading);
}
/**
* Get接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof IncidentCustomerServiceBase
*/
public async Get(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let res:any = await Http.getInstance().get(`/incidentcustomers/${context.incidentcustomer}`,isloading);
return res;
}
/**
* GetDraft接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof IncidentCustomerServiceBase
*/
public async GetDraft(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let res:any = await Http.getInstance().get(`/incidentcustomers/getdraft`,isloading);
res.data.incidentcustomer = data.incidentcustomer;
return res;
}
/**
* CheckKey接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof IncidentCustomerServiceBase
*/
public async CheckKey(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
return Http.getInstance().post(`/incidentcustomers/${context.incidentcustomer}/checkkey`,data,isloading);
}
/**
* Save接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof IncidentCustomerServiceBase
*/
public async Save(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let masterData:any = {};
Object.assign(data,masterData);
let res:any = await Http.getInstance().post(`/incidentcustomers/${context.incidentcustomer}/save`,data,isloading);
return res;
}
/**
* FetchDefault接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof IncidentCustomerServiceBase
*/
public async FetchDefault(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().get(`/incidentcustomers/fetchdefault`,tempData,isloading);
}
}
\ No newline at end of file
import { Http,Util } from '@/utils';
import IncidentCustomerServiceBase from './incident-customer-service-base';
/**
* 案例客户服务对象
*
* @export
* @class IncidentCustomerService
* @extends {IncidentCustomerServiceBase}
*/
export default class IncidentCustomerService extends IncidentCustomerServiceBase {
/**
* Creates an instance of IncidentCustomerService.
*
* @param {*} [opts={}]
* @memberof IncidentCustomerService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
......@@ -2052,6 +2052,8 @@ export const viewstate: any = {
viewdatachange: false,
refviews: [
'aa23fa84c3ac813a5ff15ae12795ca52',
'dfc0051ae4813115e03f3d095f8cd7d3',
'e1b0831107ec5781d66db9c0f32f016d',
'2ac0427fe43e02ce2aade11aad712eb5',
],
},
......@@ -2282,6 +2284,15 @@ export const viewstate: any = {
refviews: [
],
},
{
viewtag: 'e1b0831107ec5781d66db9c0f32f016d',
viewmodule: 'Sales',
viewname: 'QuoteEdit_DataPanelView',
viewaction: '',
viewdatachange: false,
refviews: [
],
},
{
viewtag: 'e404dc93e70d6284d4e1a083017625ed',
viewmodule: 'Base',
......
......@@ -500,6 +500,85 @@ export default class AccountUIServiceBase extends UIService {
openIndexViewTab(data);
}
/**
* 删除并关闭
*
* @param {any[]} args 当前数据
* @param {any} context 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @param {*} [srfParentDeName] 父实体名称
* @returns {Promise<any>}
*/
public async Account_Remove(args: any[],context:any = {}, params:any = {}, $event?: any, xData?: any,actionContext?: any,srfParentDeName?:string){
let confirmResult:boolean = await new Promise((resolve: any, reject: any) => {
actionContext.$Modal.confirm({
title: '警告',
content: '确认删除?',
onOk: () => {resolve(true);},
onCancel: () => {resolve(false);}
});
});
if(!confirmResult){
return;
}
let data: any = {};
let parentContext:any = {};
let parentViewParam:any = {};
const _this: any = actionContext;
const _args: any[] = Util.deepCopy(args);
const actionTarget: string | null = 'SINGLEKEY';
Object.assign(context, { account: '%account%' });
Object.assign(params, { accountid: '%account%' });
Object.assign(params, { accountname: '%accountname%' });
if(_this.context){
parentContext = _this.context;
}
if(_this.viewparams){
parentViewParam = _this.viewparams;
}
context = UIActionTool.handleContextParam(actionTarget,_args,parentContext,parentViewParam,context);
data = UIActionTool.handleActionParam(actionTarget,_args,parentContext,parentViewParam,params);
context = Object.assign({},actionContext.context,context);
let parentObj:any = {srfparentdename:srfParentDeName?srfParentDeName:null,srfparentkey:srfParentDeName?context[srfParentDeName.toLowerCase()]:null};
Object.assign(data,parentObj);
Object.assign(context,parentObj);
// 直接调实体服务需要转换的数据
if(context && context.srfsessionid){
context.srfsessionkey = context.srfsessionid;
delete context.srfsessionid;
}
actionContext.closeView(null);
const backend = () => {
const curService:AccountService = new AccountService();
curService.Remove(context,data, true).then((response: any) => {
if (!response || response.status !== 200) {
actionContext.$Notice.error({ title: '错误', desc: response.message });
return;
}
actionContext.$Notice.success({ title: '成功', desc: '删除成功' });
const _this: any = actionContext;
if (xData && xData.refresh && xData.refresh instanceof Function) {
xData.refresh(args);
}
return response;
}).catch((response: any) => {
if (!response || !response.status || !response.data) {
actionContext.$Notice.error({ title: '错误', desc: '系统异常!' });
return;
}
if (response.status === 401) {
return;
}
return response;
});
};
backend();
}
/**
* 编辑
*
......
import { Environment } from '@/environments/environment';
import { UIActionTool,Util } from '@/utils';
import UIService from '../ui-service';
import { Subject } from 'rxjs';
import IncidentCustomerService from '@/service/incident-customer/incident-customer-service';
/**
* 案例客户UI服务对象基类
*
* @export
* @class IncidentCustomerUIServiceBase
*/
export default class IncidentCustomerUIServiceBase extends UIService {
/**
* 是否支持工作流
*
* @memberof IncidentCustomerUIServiceBase
*/
public isEnableWorkflow:boolean = false;
/**
* 当前UI服务对应的数据服务对象
*
* @memberof IncidentCustomerUIServiceBase
*/
public dataService:IncidentCustomerService = new IncidentCustomerService();
/**
* 所有关联视图
*
* @memberof IncidentCustomerUIServiceBase
*/
public allViewMap: Map<string, Object> = new Map();
/**
* 状态值
*
* @memberof IncidentCustomerUIServiceBase
*/
public stateValue: number = 0;
/**
* 状态属性
*
* @memberof IncidentCustomerUIServiceBase
*/
public stateField: string = "";
/**
* 主状态属性集合
*
* @memberof IncidentCustomerUIServiceBase
*/
public mainStateFields:Array<any> = [];
/**
* 主状态集合Map
*
* @memberof IncidentCustomerUIServiceBase
*/
public allDeMainStateMap:Map<string,string> = new Map();
/**
* Creates an instance of IncidentCustomerUIServiceBase.
*
* @param {*} [opts={}]
* @memberof IncidentCustomerUIServiceBase
*/
constructor(opts: any = {}) {
super(opts);
this.initViewMap();
this.initDeMainStateMap();
}
/**
* 初始化视图Map
*
* @memberof IncidentCustomerUIServiceBase
*/
public initViewMap(){
}
/**
* 初始化主状态集合
*
* @memberof IncidentCustomerUIServiceBase
*/
public initDeMainStateMap(){
}
/**
* 获取指定数据的重定向页面
*
* @param srfkey 数据主键
* @param isEnableWorkflow 重定向视图是否需要处理流程中的数据
* @memberof IncidentCustomerUIServiceBase
*/
public async getRDAppView(srfkey:string,isEnableWorkflow:boolean){
this.isEnableWorkflow = isEnableWorkflow;
// 进行数据查询
let result:any = await this.dataService.Get({incidentcustomer:srfkey});
const curData:any = result.data;
//判断当前数据模式,默认为true,todo
const iRealDEModel:boolean = true;
let bDataInWF:boolean = false;
let bWFMode:any = false;
// 计算数据模式
if (this.isEnableWorkflow) {
bDataInWF = await this.dataService.testDataInWF({stateValue:this.stateValue,stateField:this.stateField},curData);
if (bDataInWF) {
bDataInWF = true;
bWFMode = await this.dataService.testUserExistWorklist(null,curData);
}
}
let strPDTViewParam:string = await this.getDESDDEViewPDTParam(curData, bDataInWF, bWFMode);
//若不是当前数据模式,处理strPDTViewParam,todo
//查找视图
//返回视图
return this.allViewMap.get(strPDTViewParam);
}
/**
* 获取实际的数据类型
*
* @memberof IncidentCustomerUIServiceBase
*/
public getRealDEType(entity:any){
}
/**
* 获取实体单数据实体视图预定义参数
*
* @param curData 当前数据
* @param bDataInWF 是否有数据在工作流中
* @param bWFMode 是否工作流模式
* @memberof IncidentCustomerUIServiceBase
*/
public async getDESDDEViewPDTParam(curData:any, bDataInWF:boolean, bWFMode:boolean){
let strPDTParam:string = '';
if (bDataInWF) {
// 判断数据是否在流程中
}
//多表单,todo
const isEnableMultiForm:boolean = false;
const multiFormDEField:string|null =null;
if (isEnableMultiForm && multiFormDEField) {
const objFormValue:string = curData[multiFormDEField];
if(!Environment.isAppMode){
return 'MOBEDITVIEW'+objFormValue;
}
return 'EDITVIEW'+objFormValue;
}
if(!Environment.isAppMode){
if(this.getDEMainStateTag(curData)){
return `MOBEDITVIEW:MSTAG:${ await this.getDEMainStateTag(curData)}`;
}
return 'MOBEDITVIEW:';
}
if(this.getDEMainStateTag(curData)){
return `EDITVIEW:MSTAG:${ await this.getDEMainStateTag(curData)}`;
}
return 'EDITVIEW:';
}
/**
* 获取数据对象的主状态标识
*
* @param curData 当前数据
* @memberof IncidentCustomerUIServiceBase
*/
public async getDEMainStateTag(curData:any){
if(this.mainStateFields.length === 0) return null;
this.mainStateFields.forEach((singleMainField:any) =>{
if(!(singleMainField in curData)){
console.error(`当前数据对象不包含属性singleMainField,可能会发生错误`);
}
})
let strTag:String = "";
for (let i = 0; i <= 1; i++) {
let strTag:string = (curData[this.mainStateFields[0]])?(i == 0) ? curData[this.mainStateFields[0]] : "":"";
if (this.mainStateFields.length >= 2) {
for (let j = 0; j <= 1; j++) {
let strTag2:string = (curData[this.mainStateFields[1]])?`${strTag}__${(j == 0) ? curData[this.mainStateFields[1]] : ""}`:strTag;
if (this.mainStateFields.length >= 3) {
for (let k = 0; k <= 1; k++) {
let strTag3:string = (curData[this.mainStateFields[2]])?`${strTag2}__${(k == 0) ? curData[this.mainStateFields[2]] : ""}`:strTag2;
// 判断是否存在
return this.allDeMainStateMap.get(strTag3);
}
}else{
return this.allDeMainStateMap.get(strTag2);
}
}
}else{
return this.allDeMainStateMap.get(strTag);
}
}
return null;
}
}
\ No newline at end of file
......@@ -89,6 +89,7 @@ export class UIServiceRegister {
this.allUIService.set('contact', () => import('@/uiservice/contact/contact-ui-service'));
this.allUIService.set('product', () => import('@/uiservice/product/product-ui-service'));
this.allUIService.set('competitor', () => import('@/uiservice/competitor/competitor-ui-service'));
this.allUIService.set('incidentcustomer', () => import('@/uiservice/incident-customer/incident-customer-ui-service'));
this.allUIService.set('competitorproduct', () => import('@/uiservice/competitor-product/competitor-product-ui-service'));
this.allUIService.set('account', () => import('@/uiservice/account/account-ui-service'));
this.allUIService.set('salesorder', () => import('@/uiservice/sales-order/sales-order-ui-service'));
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册