import { Subject } from 'rxjs'; import { TabExpViewBase } from '@/studio-core'; import ContactService from '@/service/contact/contact-service'; import TabExpViewEngine from '@engine/view/tab-exp-view-engine'; /** * 联系人信息视图基类 * * @export * @class ContactInfoBase * @extends {TabExpViewBase} */ export class ContactInfoBase extends TabExpViewBase { /** * 实体服务对象 * * @type {ContactService} * @memberof ContactInfoBase */ protected appEntityService: ContactService = new ContactService; /** * 计数器服务对象集合 * * @protected * @type {Array<*>} * @memberof ContactInfoBase */ protected counterServiceArray: Array = []; /** * 视图模型数据 * * @protected * @type {*} * @memberof ContactInfoBase */ protected model: any = { srfCaption: 'entities.contact.views.info.caption', srfTitle: 'entities.contact.views.info.title', srfSubTitle: 'entities.contact.views.info.subtitle', dataInfo: '' } /** * 容器模型 * * @protected * @type {*} * @memberof ContactInfoBase */ protected containerModel: any = { view_toolbar: { name: 'toolbar', type: 'TOOLBAR' }, view_tabexppanel: { name: 'tabexppanel', type: 'TABEXPPANEL' }, }; /** * 工具栏模型 * * @type {*} * @memberof ContactInfo */ public toolBarModels: any = { deuiaction4: { name: 'deuiaction4', caption: '编辑','isShowCaption':true,'isShowIcon':true, tooltip: '编辑', iconcls: 'fa fa-edit', icon: '', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'Edit', target: 'SINGLEKEY' }, class: '' }, seperator4: { name: 'seperator4', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } }, deuiaction1: { name: 'deuiaction1', caption: '删除并关闭','isShowCaption':true,'isShowIcon':true, tooltip: '删除并关闭', iconcls: 'fa fa-remove', icon: '', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'RemoveAndExit', target: 'SINGLEKEY' }, class: '' }, seperator2: { name: 'seperator2', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } }, deuiaction2: { name: 'deuiaction2', caption: '刷新','isShowCaption':true,'isShowIcon':true, tooltip: '刷新', iconcls: 'fa fa-refresh', icon: '', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'Refresh', target: 'SINGLEKEY' }, class: '' }, seperator1: { name: 'seperator1', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } }, tbitem12: { name: 'tbitem12', caption: '关闭','isShowCaption':true,'isShowIcon':true, tooltip: '关闭', iconcls: 'fa fa-sign-out', icon: '', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'Exit', target: '' }, class: '' }, }; /** * 视图唯一标识 * * @protected * @type {string} * @memberof ViewBase */ protected viewtag: string = 'fcdb236b65d78c4a8ae64e74f9483a63'; /** * 视图引擎 * * @public * @type {Engine} * @memberof ContactInfoBase */ public engine: TabExpViewEngine = new TabExpViewEngine(); /** * 引擎初始化 * * @public * @memberof ContactInfoBase */ public engineInit(): void { this.engine.init({ view: this, keyPSDEField: 'contact', majorPSDEField: 'fullname', isLoadDefault: true, }); } /** * toolbar 部件 click 事件 * * @param {*} [args={}] * @param {*} $event * @memberof ContactInfoBase */ public toolbar_click($event: any, $event2?: any): void { if (Object.is($event.tag, 'deuiaction4')) { this.toolbar_deuiaction4_click(null, '', $event2); } if (Object.is($event.tag, 'deuiaction1')) { this.toolbar_deuiaction1_click(null, '', $event2); } if (Object.is($event.tag, 'deuiaction2')) { this.toolbar_deuiaction2_click(null, '', $event2); } if (Object.is($event.tag, 'tbitem12')) { this.toolbar_tbitem12_click(null, '', $event2); } } /** * 逻辑事件 * * @param {*} [params={}] * @param {*} [tag] * @param {*} [$event] * @memberof */ public toolbar_deuiaction4_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 = {}; if (_this.getDatas && _this.getDatas instanceof Function) { datas = [..._this.getDatas()]; } if(params){ datas = [params]; } // 界面行为 this.Edit(datas, contextJO,paramJO, $event, xData,this,"Contact"); } /** * 逻辑事件 * * @param {*} [params={}] * @param {*} [tag] * @param {*} [$event] * @memberof */ public toolbar_deuiaction1_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 = {}; if (_this.getDatas && _this.getDatas instanceof Function) { datas = [..._this.getDatas()]; } if(params){ datas = [params]; } // 界面行为 this.RemoveAndExit(datas, contextJO,paramJO, $event, xData,this,"Contact"); } /** * 逻辑事件 * * @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 = {}; if (_this.getDatas && _this.getDatas instanceof Function) { datas = [..._this.getDatas()]; } if(params){ datas = [params]; } // 界面行为 this.Refresh(datas, contextJO,paramJO, $event, xData,this,"Contact"); } /** * 逻辑事件 * * @param {*} [params={}] * @param {*} [tag] * @param {*} [$event] * @memberof */ public toolbar_tbitem12_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 = {}; if (_this.getDatas && _this.getDatas instanceof Function) { datas = [..._this.getDatas()]; } if(params){ datas = [params]; } // 界面行为 this.Exit(datas, contextJO,paramJO, $event, xData,this,"Contact"); } /** * 编辑 * * @param {any[]} args 当前数据 * @param {any} contextJO 行为附加上下文 * @param {*} [params] 附加参数 * @param {*} [$event] 事件源 * @param {*} [xData] 执行行为所需当前部件 * @param {*} [actionContext] 执行行为上下文 * @memberof ContactInfoBase */ public Edit(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) { if (args.length === 0) { return; } const _this: any = this; if (_this.opendata && _this.opendata instanceof Function) { const data: any = { }; if (args.length > 0) { Object.assign(data, { contact: args[0].contact }) } _this.opendata([{ ...data }], params, $event, xData); } else { _this.$Notice.error({ title: '错误', desc: 'opendata 视图处理逻辑不存在,请添加!' }); } } /** * 删除并关闭 * * @param {any[]} args 当前数据 * @param {any} contextJO 行为附加上下文 * @param {*} [params] 附加参数 * @param {*} [$event] 事件源 * @param {*} [xData] 执行行为所需当前部件 * @param {*} [actionContext] 执行行为上下文 * @memberof ContactInfoBase */ 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 }],'*'); } }); } } /** * 刷新 * * @param {any[]} args 当前数据 * @param {any} contextJO 行为附加上下文 * @param {*} [params] 附加参数 * @param {*} [$event] 事件源 * @param {*} [xData] 执行行为所需当前部件 * @param {*} [actionContext] 执行行为上下文 * @memberof ContactInfoBase */ public Refresh(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) { const _this: any = this; if (xData && xData.refresh && xData.refresh instanceof Function) { xData.refresh(args); } else if (_this.refresh && _this.refresh instanceof Function) { _this.refresh(args); } } /** * 关闭 * * @param {any[]} args 当前数据 * @param {any} contextJO 行为附加上下文 * @param {*} [params] 附加参数 * @param {*} [$event] 事件源 * @param {*} [xData] 执行行为所需当前部件 * @param {*} [actionContext] 执行行为上下文 * @memberof ContactInfoBase */ public Exit(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) { this.closeView(args); if(window.parent){ window.parent.postMessage([{ ...args }],'*'); } } /** * 加载模型 * * @protected * @memberof ContactInfoBase */ protected async loadModel(): Promise { if(this.context.contact){ this.appEntityService.getDataInfo(JSON.parse(JSON.stringify(this.context)),{},false).then((response:any) =>{ if (!response || response.status !== 200) { return; } const { data: _data } = response; if (_data.fullname) { Object.assign(this.model, { dataInfo: _data.fullname }); if (this.$tabPageExp) { this.$tabPageExp.setCurPageCaption(this.model.srfTitle, this.model.srfTitle, this.model.dataInfo); } if(this.$route){ this.$route.meta.info = this.model.dataInfo; } Object.assign(this.model, { srfTitle: `${this.$t(this.model.srfTitle)} - ${this.model.dataInfo}` }); } }) } } }