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

xignzi006 发布系统代码

上级 ce9705e5
......@@ -18,6 +18,7 @@ export const PageComponents = {
Vue.component('knowledge-article-incident-edit-view', () => import('@pages/service/knowledge-article-incident-edit-view/knowledge-article-incident-edit-view.vue'));
Vue.component('sales-order-invoice-grid-view', () => import('@pages/sales/sales-order-invoice-grid-view/sales-order-invoice-grid-view.vue'));
Vue.component('sales-order-edit-data-panel-view', () => import('@pages/sales/sales-order-edit-data-panel-view/sales-order-edit-data-panel-view.vue'));
Vue.component('opportunity-competitor-opp-comp-grid-view', () => import('@pages/sales/opportunity-competitor-opp-comp-grid-view/opportunity-competitor-opp-comp-grid-view.vue'));
Vue.component('invoice-by-parent-key', () => import('@pages/finance/invoice-by-parent-key/invoice-by-parent-key.vue'));
Vue.component('goal-info-goal-view', () => import('@pages/sales/goal-info-goal-view/goal-info-goal-view.vue'));
Vue.component('invoice-paid-grid-view', () => import('@pages/finance/invoice-paid-grid-view/invoice-paid-grid-view.vue'));
......@@ -111,6 +112,7 @@ export const PageComponents = {
Vue.component('product-revise-grid-view', () => import('@pages/product/product-revise-grid-view/product-revise-grid-view.vue'));
Vue.component('transaction-currency-edit-view', () => import('@pages/base/transaction-currency-edit-view/transaction-currency-edit-view.vue'));
Vue.component('sales-order-detail-soproduct-grid-view', () => import('@pages/sales/sales-order-detail-soproduct-grid-view/sales-order-detail-soproduct-grid-view.vue'));
Vue.component('opportunity-competitor-edit-view', () => import('@pages/sales/opportunity-competitor-edit-view/opportunity-competitor-edit-view.vue'));
Vue.component('incident-info-incident-view', () => import('@pages/service/incident-info-incident-view/incident-info-incident-view.vue'));
Vue.component('account-usable-grid-view', () => import('@pages/base/account-usable-grid-view/account-usable-grid-view.vue'));
Vue.component('sales-order-info-soview', () => import('@pages/sales/sales-order-info-soview/sales-order-info-soview.vue'));
......
import { Subject } from 'rxjs';
import { EditViewBase } from '@/studio-core';
import OpportunityCompetitorService from '@/service/opportunity-competitor/opportunity-competitor-service';
import OpportunityCompetitorAuthService from '@/authservice/opportunity-competitor/opportunity-competitor-auth-service';
import EditViewEngine from '@engine/view/edit-view-engine';
import OpportunityCompetitorUIService from '@/uiservice/opportunity-competitor/opportunity-competitor-ui-service';
/**
* 商机对手编辑视图视图基类
......@@ -46,6 +48,14 @@ export class OpportunityCompetitorEditViewBase extends EditViewBase {
*/
protected appEntityService: OpportunityCompetitorService = new OpportunityCompetitorService;
/**
* 实体权限服务对象
*
* @type OpportunityCompetitorUIService
* @memberof OpportunityCompetitorEditViewBase
*/
public appUIService: OpportunityCompetitorUIService = new OpportunityCompetitorUIService(this.$store);
/**
* 计数器服务对象集合
......@@ -89,16 +99,7 @@ export class OpportunityCompetitorEditViewBase extends EditViewBase {
* @memberof OpportunityCompetitorEditView
*/
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: '' },
tbitem12: { name: 'tbitem12', caption: '关闭', 'isShowCaption': true, 'isShowIcon': true, tooltip: '关闭', iconcls: 'fa fa-sign-out', icon: '', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'Exit', target: '', class: '' } },
};
......@@ -148,15 +149,6 @@ export class OpportunityCompetitorEditViewBase extends EditViewBase {
* @memberof OpportunityCompetitorEditViewBase
*/
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);
}
......@@ -195,90 +187,6 @@ export class OpportunityCompetitorEditViewBase extends EditViewBase {
this.engine.onCtrlEvent('form', 'load', $event);
}
/**
* 逻辑事件
*
* @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 = {};
xData = this.$refs.form;
if (xData.getDatas && xData.getDatas instanceof Function) {
datas = [...xData.getDatas()];
}
if(params){
datas = [params];
}
// 界面行为
this.Edit(datas, contextJO,paramJO, $event, xData,this,"OpportunityCompetitor");
}
/**
* 逻辑事件
*
* @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 = {};
xData = this.$refs.form;
if (xData.getDatas && xData.getDatas instanceof Function) {
datas = [...xData.getDatas()];
}
if(params){
datas = [params];
}
// 界面行为
this.RemoveAndExit(datas, contextJO,paramJO, $event, xData,this,"OpportunityCompetitor");
}
/**
* 逻辑事件
*
* @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.Refresh(datas, contextJO,paramJO, $event, xData,this,"OpportunityCompetitor");
}
/**
* 逻辑事件
*
......@@ -307,84 +215,6 @@ export class OpportunityCompetitorEditViewBase extends EditViewBase {
this.Exit(datas, contextJO,paramJO, $event, xData,this,"OpportunityCompetitor");
}
/**
* 编辑
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof OpportunityCompetitorEditViewBase
*/
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, { opportunitycompetitor: args[0].opportunitycompetitor })
}
_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 OpportunityCompetitorEditViewBase
*/
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 OpportunityCompetitorEditViewBase
*/
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);
}
}
/**
* 关闭
*
......
......@@ -2,7 +2,9 @@
import { Subject } from 'rxjs';
import { GridViewBase } from '@/studio-core';
import OpportunityCompetitorService from '@/service/opportunity-competitor/opportunity-competitor-service';
import OpportunityCompetitorAuthService from '@/authservice/opportunity-competitor/opportunity-competitor-auth-service';
import GridViewEngine from '@engine/view/grid-view-engine';
import OpportunityCompetitorUIService from '@/uiservice/opportunity-competitor/opportunity-competitor-ui-service';
import CodeListService from "@service/app/codelist-service";
......@@ -49,6 +51,14 @@ export class OpportunityCompetitorOppCompGridViewBase extends GridViewBase {
*/
protected appEntityService: OpportunityCompetitorService = new OpportunityCompetitorService;
/**
* 实体权限服务对象
*
* @type OpportunityCompetitorUIService
* @memberof OpportunityCompetitorOppCompGridViewBase
*/
public appUIService: OpportunityCompetitorUIService = new OpportunityCompetitorUIService(this.$store);
/**
* 计数器服务对象集合
......@@ -93,18 +103,18 @@ export class OpportunityCompetitorOppCompGridViewBase extends GridViewBase {
* @memberof OpportunityCompetitorOppCompGridView
*/
public toolBarModels: any = {
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: '' },
tbitem4: { name: 'tbitem4', caption: '编辑', 'isShowCaption': true, 'isShowIcon': true, tooltip: '编辑', iconcls: 'fa fa-edit', icon: '', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'Edit', target: 'SINGLEKEY', class: '' } },
tbitem6: { name: 'tbitem6', caption: '拷贝','isShowCaption':true,'isShowIcon':true, tooltip: '拷贝', iconcls: 'fa fa-copy', icon: '', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'Copy', target: 'SINGLEKEY' }, class: '' },
tbitem6: { name: 'tbitem6', caption: '拷贝', 'isShowCaption': true, 'isShowIcon': true, tooltip: '拷贝', iconcls: 'fa fa-copy', icon: '', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'Copy', target: 'SINGLEKEY', class: '' } },
tbitem7: { name: 'tbitem7', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
tbitem8: { name: 'tbitem8', caption: '删除','isShowCaption':true,'isShowIcon':true, tooltip: '删除', iconcls: 'fa fa-remove', icon: '', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'Remove', target: 'MULTIKEY' }, class: '' },
tbitem8: { name: 'tbitem8', caption: '删除', 'isShowCaption': true, 'isShowIcon': true, tooltip: '删除', iconcls: 'fa fa-remove', icon: '', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'Remove', target: 'MULTIKEY', class: '' } },
tbitem9: { name: 'tbitem9', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
tbitem13: { name: 'tbitem13', caption: '导出','isShowCaption':true,'isShowIcon':true, tooltip: '导出', iconcls: 'fa fa-file-excel-o', icon: '', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'ExportExcel', target: '' }, MaxRowCount: 1000, class: '' },
tbitem13: { name: 'tbitem13', caption: '导出', 'isShowCaption': true, 'isShowIcon': true, tooltip: '导出', iconcls: 'fa fa-file-excel-o', icon: '', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'ExportExcel', target: '' }, MaxRowCount: 1000, class: '' },
tbitem10: { name: 'tbitem10', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
tbitem19: { name: 'tbitem19', caption: '过滤','isShowCaption':true,'isShowIcon':true, tooltip: '过滤', iconcls: 'fa fa-filter', icon: '', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'ToggleFilter', target: '' }, class: '' },
tbitem19: { name: 'tbitem19', caption: '过滤', 'isShowCaption': true, 'isShowIcon': true, tooltip: '过滤', iconcls: 'fa fa-filter', icon: '', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'ToggleFilter', target: '', class: '' } },
};
......@@ -490,8 +500,8 @@ export class OpportunityCompetitorOppCompGridViewBase extends GridViewBase {
* @memberof OpportunityCompetitorOppCompGridView
*/
public opendata(args: any[],fullargs?:any[],params?: any, $event?: any, xData?: any) {
let localContext:any = null;
let localViewParam:any =null;
const localContext: any = null;
const localViewParam: any =null;
const data: any = {};
let tempContext = JSON.parse(JSON.stringify(this.context));
if(args.length >0){
......
......@@ -28,15 +28,15 @@
:showBusyIndicator="true"
:isOpenEdit="false"
:gridRowActiveMode="gridRowActiveMode"
@save="onSave"
@save="onSave.apply(_self, arguments)"
updateAction=""
removeAction="Remove"
loaddraftAction=""
loadAction=""
createAction=""
fetchAction="FetchDefault"
:newdata="newdata"
:opendata="opendata"
:newdata="newdata.bind(_self)"
:opendata="opendata.bind(_self)"
name="grid"
ref='grid'
@selectionchange="grid_selectionchange($event)"
......
......@@ -1099,6 +1099,16 @@ export const viewstate: any = {
refviews: [
],
},
{
viewtag: '5de2a290b5d079445ad825f6d6418dd6',
viewmodule: 'Sales',
viewname: 'OpportunityCompetitorOppCompGridView',
viewaction: '',
viewdatachange: false,
refviews: [
'c420212fae385872d6ae89e3d237350a',
],
},
{
viewtag: '5f8f689d5dccc3db6d2b74a24a8b24ef',
viewmodule: 'Sales',
......@@ -1629,9 +1639,11 @@ export const viewstate: any = {
viewaction: '',
viewdatachange: false,
refviews: [
'5de2a290b5d079445ad825f6d6418dd6',
'dd0334d4dac239bca7b007cb50d8b640',
'177c00d1674621e8933efe6db68bce0e',
'7bf35293fd1d9db7816755a74c4d575e',
'44f1244c0a9e78981a151dc7f247e867',
'78862ad65295f145e7520291f1183604',
'6c67094479c2f8af7ea1575eee584056',
],
......@@ -2356,6 +2368,16 @@ export const viewstate: any = {
'e52af970c14fd89546ac8ccaecab460c',
],
},
{
viewtag: 'c420212fae385872d6ae89e3d237350a',
viewmodule: 'Sales',
viewname: 'OpportunityCompetitorEditView',
viewaction: '',
viewdatachange: false,
refviews: [
'b153b539b40b2ff7a9d81b6c0329cf25',
],
},
{
viewtag: 'c67b638daa17df2f9ecf99fc1c396e2f',
viewmodule: 'Product',
......
......@@ -3,6 +3,7 @@ import { Subject, Subscription } from 'rxjs';
import { Watch, EditFormControlBase } from '@/studio-core';
import OpportunityCompetitorService from '@/service/opportunity-competitor/opportunity-competitor-service';
import MainService from './main-form-service';
import OpportunityCompetitorUIService from '@/uiservice/opportunity-competitor/opportunity-competitor-ui-service';
import { FormButtonModel, FormPageModel, FormItemModel, FormDRUIPartModel, FormPartModel, FormGroupPanelModel, FormIFrameModel, FormRowItemModel, FormTabPageModel, FormTabPanelModel, FormUserControlModel } from '@/model/form-detail';
......@@ -49,6 +50,15 @@ export class MainEditFormBase extends EditFormControlBase {
*/
protected appDeName: string = 'opportunitycompetitor';
/**
* 界面UI服务对象
*
* @type {OpportunityCompetitorUIService}
* @memberof MainEditFormBase
*/
public appUIService:OpportunityCompetitorUIService = new OpportunityCompetitorUIService(this.$store);
/**
* 表单数据对象
*
......@@ -90,39 +100,39 @@ export class MainEditFormBase extends EditFormControlBase {
* @memberof MainEditFormBase
*/
public detailsModel: any = {
group1: new FormGroupPanelModel({ caption: '商机对手基本信息', detailType: 'GROUPPANEL', name: 'group1', visible: true, isShowCaption: true, form: this, uiActionGroup: { caption: '', langbase: 'entities.opportunitycompetitor.main_form', extractMode: 'ITEM', details: [] } }),
group1: new FormGroupPanelModel({ caption: '商机对手基本信息', detailType: 'GROUPPANEL', name: 'group1', visible: true, isShowCaption: true, form: this, showMoreMode: 0, uiActionGroup: { caption: '', langbase: 'entities.opportunitycompetitor.main_form', extractMode: 'ITEM', details: [] } }),
formpage1: new FormPageModel({ caption: '基本信息', detailType: 'FORMPAGE', name: 'formpage1', visible: true, isShowCaption: true, form: this }),
formpage1: new FormPageModel({ caption: '基本信息', detailType: 'FORMPAGE', name: 'formpage1', visible: true, isShowCaption: true, form: this, showMoreMode: 0 }),
srfupdatedate: new FormItemModel({ caption: '更新时间', detailType: 'FORMITEM', name: 'srfupdatedate', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 0 }),
srfupdatedate: new FormItemModel({ caption: '更新时间', detailType: 'FORMITEM', name: 'srfupdatedate', visible: true, isShowCaption: true, form: this, showMoreMode: 0, disabled: false, enableCond: 0 }),
srforikey: new FormItemModel({ caption: '', detailType: 'FORMITEM', name: 'srforikey', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
srforikey: new FormItemModel({ caption: '', detailType: 'FORMITEM', name: 'srforikey', visible: true, isShowCaption: true, form: this, showMoreMode: 0, disabled: false, enableCond: 3 }),
srfkey: new FormItemModel({ caption: '关系标识', detailType: 'FORMITEM', name: 'srfkey', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
srfkey: new FormItemModel({ caption: '关系标识', detailType: 'FORMITEM', name: 'srfkey', visible: true, isShowCaption: true, form: this, showMoreMode: 0, disabled: false, enableCond: 3 }),
srfmajortext: new FormItemModel({ caption: '关系名称', detailType: 'FORMITEM', name: 'srfmajortext', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
srfmajortext: new FormItemModel({ caption: '关系名称', detailType: 'FORMITEM', name: 'srfmajortext', visible: true, isShowCaption: true, form: this, showMoreMode: 0, disabled: false, enableCond: 3 }),
srftempmode: new FormItemModel({ caption: '', detailType: 'FORMITEM', name: 'srftempmode', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
srftempmode: new FormItemModel({ caption: '', detailType: 'FORMITEM', name: 'srftempmode', visible: true, isShowCaption: true, form: this, showMoreMode: 0, disabled: false, enableCond: 3 }),
srfuf: new FormItemModel({ caption: '', detailType: 'FORMITEM', name: 'srfuf', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
srfuf: new FormItemModel({ caption: '', detailType: 'FORMITEM', name: 'srfuf', visible: true, isShowCaption: true, form: this, showMoreMode: 0, disabled: false, enableCond: 3 }),
srfdeid: new FormItemModel({ caption: '', detailType: 'FORMITEM', name: 'srfdeid', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
srfdeid: new FormItemModel({ caption: '', detailType: 'FORMITEM', name: 'srfdeid', visible: true, isShowCaption: true, form: this, showMoreMode: 0, disabled: false, enableCond: 3 }),
srfsourcekey: new FormItemModel({ caption: '', detailType: 'FORMITEM', name: 'srfsourcekey', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
srfsourcekey: new FormItemModel({ caption: '', detailType: 'FORMITEM', name: 'srfsourcekey', visible: true, isShowCaption: true, form: this, showMoreMode: 0, disabled: false, enableCond: 3 }),
entityid: new FormItemModel({ caption: '商机', detailType: 'FORMITEM', name: 'entityid', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
entityid: new FormItemModel({ caption: '商机', detailType: 'FORMITEM', name: 'entityid', visible: true, isShowCaption: true, form: this, showMoreMode: 0, disabled: false, enableCond: 3 }),
entity2name: new FormItemModel({ caption: '竞争对手', detailType: 'FORMITEM', name: 'entity2name', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
entity2name: new FormItemModel({ caption: '竞争对手', detailType: 'FORMITEM', name: 'entity2name', visible: true, isShowCaption: true, form: this, showMoreMode: 0, disabled: false, enableCond: 3 }),
estimatedvalue: new FormItemModel({ caption: '预计收入', detailType: 'FORMITEM', name: 'estimatedvalue', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
estimatedvalue: new FormItemModel({ caption: '预计收入', detailType: 'FORMITEM', name: 'estimatedvalue', visible: true, isShowCaption: true, form: this, showMoreMode: 0, disabled: false, enableCond: 3 }),
estimatedclosedate: new FormItemModel({ caption: '预计结束日期', detailType: 'FORMITEM', name: 'estimatedclosedate', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
estimatedclosedate: new FormItemModel({ caption: '预计结束日期', detailType: 'FORMITEM', name: 'estimatedclosedate', visible: true, isShowCaption: true, form: this, showMoreMode: 0, disabled: false, enableCond: 3 }),
statecode: new FormItemModel({ caption: '状态', detailType: 'FORMITEM', name: 'statecode', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
statecode: new FormItemModel({ caption: '状态', detailType: 'FORMITEM', name: 'statecode', visible: true, isShowCaption: true, form: this, showMoreMode: 0, disabled: false, enableCond: 3 }),
entity2id: new FormItemModel({ caption: '竞争对手', detailType: 'FORMITEM', name: 'entity2id', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
entity2id: new FormItemModel({ caption: '竞争对手', detailType: 'FORMITEM', name: 'entity2id', visible: true, isShowCaption: true, form: this, showMoreMode: 0, disabled: false, enableCond: 3 }),
relationshipsid: new FormItemModel({ caption: '关系标识', detailType: 'FORMITEM', name: 'relationshipsid', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
relationshipsid: new FormItemModel({ caption: '关系标识', detailType: 'FORMITEM', name: 'relationshipsid', visible: true, isShowCaption: true, form: this, showMoreMode: 0, disabled: false, enableCond: 3 }),
};
}
\ No newline at end of file
......@@ -3,7 +3,8 @@
<row >
<i-col v-show="detailsModel.group1.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-group layoutType="TABLE_24COL" titleStyle="" class='' :uiActionGroup="detailsModel.group1.uiActionGroup" @groupuiactionclick="groupUIActionClick($event)" :caption="$t('entities.opportunitycompetitor.main_form.details.group1')" :isShowCaption="true" uiStyle="DEFAULT" :titleBarCloseMode="0" :isInfoGroupMode="false" >
<app-form-group :model="detailsModel.group1" layoutType="TABLE_24COL" titleStyle="" class='' :uiActionGroup="detailsModel.group1.uiActionGroup" @groupuiactionclick="groupUIActionClick($event)" :caption="$t('entities.opportunitycompetitor.main_form.details.group1')" :isShowCaption="true" uiStyle="DEFAULT" :titleBarCloseMode="0" :isInfoGroupMode="false" >
<app-form-group-data-panel slot="dataInfoPanel" :model="detailsModel.group1" :data="data" :context="context" :viewparams="viewparams"/>
<row>
<i-col v-show="detailsModel.entity2name.visible" :style="{}" :md="{ span: 12, offset: 0 }" :lg="{ span: 8, offset: 0 }" :xl="{ span: 6, offset: 0 }">
<app-form-item name='entity2name' :itemRules="this.rules.entity2name" class='' :caption="$t('entities.opportunitycompetitor.main_form.details.entity2name')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.entity2name.error" :isEmptyCaption="false" labelPos="LEFT">
......
......@@ -59,6 +59,8 @@ export class InfotabexppanelTabexppanelBase extends TabExpPanelControlBase {
tabviewpanel: true ,
tabviewpanel2: false ,
tabviewpanel3: false ,
tabviewpanel4: false ,
tabviewpanel5: false ,
}
/**
......
......@@ -90,5 +90,65 @@
@closeview="closeView($event)">
</view_tabviewpanel3>
</tab-pane>
<tab-pane :index="3" name='tabviewpanel4' tab='infotabexppanel' class=''
:label="(h) =>{
return h('div', [
h('i',{
class:'fa fa-user-secret',
style:{
'margin-right' : '2px'
}
}),
h('span', '对手'),
h('Badge', {
props: {
count: undefined,
type: 'primary'
}
})
])
}" >
<view_tabviewpanel4
:viewState="viewState"
:viewparams="JSON.parse(JSON.stringify(viewparams))"
:context="JSON.parse(JSON.stringify(context))"
v-if="isInit.tabviewpanel4"
name="tabviewpanel4"
ref='tabviewpanel4'
:expActive="activatedTabViewPanel === 'tabviewpanel4'"
@viewpanelDatasChange = "tabViewPanelDatasChange"
@closeview="closeView($event)">
</view_tabviewpanel4>
</tab-pane>
<tab-pane :index="4" name='tabviewpanel5' tab='infotabexppanel' class=''
:label="(h) =>{
return h('div', [
h('i',{
class:'fa fa-user-md',
style:{
'margin-right' : '2px'
}
}),
h('span', '干系人'),
h('Badge', {
props: {
count: undefined,
type: 'primary'
}
})
])
}" >
<view_tabviewpanel5
:viewState="viewState"
:viewparams="JSON.parse(JSON.stringify(viewparams))"
:context="JSON.parse(JSON.stringify(context))"
v-if="isInit.tabviewpanel5"
name="tabviewpanel5"
ref='tabviewpanel5'
:expActive="activatedTabViewPanel === 'tabviewpanel5'"
@viewpanelDatasChange = "tabViewPanelDatasChange"
@closeview="closeView($event)">
</view_tabviewpanel5>
</tab-pane>
</tabs>
</div>
\ No newline at end of file
......@@ -6,6 +6,8 @@ import { InfotabexppanelTabexppanelBase } from './infotabexppanel-tabexppanel-ba
import view_tabviewpanel from '@widgets/opportunity/infotabviewpanel-tabviewpanel/infotabviewpanel-tabviewpanel.vue';
import view_tabviewpanel2 from '@widgets/opportunity/infotabviewpanel2-tabviewpanel/infotabviewpanel2-tabviewpanel.vue';
import view_tabviewpanel3 from '@widgets/opportunity/infotabviewpanel3-tabviewpanel/infotabviewpanel3-tabviewpanel.vue';
import view_tabviewpanel4 from '@widgets/opportunity/infotabviewpanel4-tabviewpanel/infotabviewpanel4-tabviewpanel.vue';
import view_tabviewpanel5 from '@widgets/opportunity/infotabviewpanel5-tabviewpanel/infotabviewpanel5-tabviewpanel.vue';
/**
......@@ -20,6 +22,8 @@ import view_tabviewpanel3 from '@widgets/opportunity/infotabviewpanel3-tabviewpa
view_tabviewpanel,
view_tabviewpanel2,
view_tabviewpanel3,
view_tabviewpanel4,
view_tabviewpanel5,
}
})
......
import { Prop, Provide, Emit, Model } from 'vue-property-decorator';
import { Subject, Subscription } from 'rxjs';
import { Watch, MainControlBase } from '@/studio-core';
import OpportunityService from '@/service/opportunity/opportunity-service';
import Infotabviewpanel4Service from './infotabviewpanel4-tabviewpanel-service';
import OpportunityUIService from '@/uiservice/opportunity/opportunity-ui-service';
/**
* tabviewpanel4部件基类
*
* @export
* @class MainControlBase
* @extends {Infotabviewpanel4TabviewpanelBase}
*/
export class Infotabviewpanel4TabviewpanelBase extends MainControlBase {
/**
* 获取部件类型
*
* @protected
* @type {string}
* @memberof Infotabviewpanel4TabviewpanelBase
*/
protected controlType: string = 'TABVIEWPANEL';
/**
* 建构部件服务对象
*
* @type {Infotabviewpanel4Service}
* @memberof Infotabviewpanel4TabviewpanelBase
*/
public service: Infotabviewpanel4Service = new Infotabviewpanel4Service({ $store: this.$store });
/**
* 实体服务对象
*
* @type {OpportunityService}
* @memberof Infotabviewpanel4TabviewpanelBase
*/
public appEntityService: OpportunityService = new OpportunityService({ $store: this.$store });
/**
* 应用实体名称
*
* @protected
* @type {string}
* @memberof Infotabviewpanel4TabviewpanelBase
*/
protected appDeName: string = 'opportunity';
/**
* 导航模式下项是否激活
*
* @type {*}
* @memberof Infotabviewpanel4
*/
@Prop()
public expActive!: any;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof Infotabviewpanel4
*/
public getDatas(): any[] {
return [];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof Infotabviewpanel4
*/
public getData(): any {
return null;
}
/**
* 是否被激活
*
* @type {boolean}
* @memberof Infotabviewpanel4
*/
public isActivied: boolean = true;
/**
* 局部上下文
*
* @type {*}
* @memberof Infotabviewpanel4
*/
public localContext: any = null;
/**
* 局部视图参数
*
* @type {*}
* @memberof Infotabviewpanel4
*/
public localViewParam: any = null;
/**
* 传入上下文
*
* @type {string}
* @memberof TabExpViewtabviewpanel
*/
public viewdata: string = JSON.stringify(this.context);
/**
* 传入视图参数
*
* @type {string}
* @memberof PickupViewpickupviewpanel
*/
public viewparam: string = JSON.stringify(this.viewparams);
/**
* 视图面板过滤项
*
* @type {string}
* @memberof Infotabviewpanel4
*/
public navfilter: string = "";
/**
* vue 生命周期
*
* @returns
* @memberof Infotabviewpanel4
*/
public created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof Infotabviewpanel4
*/
public afterCreated(){
this.initNavParam();
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
this.$forceUpdate();
this.initNavParam();
});
}
}
/**
* 初始化导航参数
*
* @memberof Infotabviewpanel4
*/
public initNavParam(){
if(!Object.is(this.navfilter,"")){
Object.assign(this.viewparams,{[this.navfilter]:this.context['majorentity']})
}
if(this.localContext && Object.keys(this.localContext).length >0){
let _context:any = this.$util.computedNavData({},this.context,this.viewparams,this.localContext);
Object.assign(this.context,_context);
}
if(this.localViewParam && Object.keys(this.localViewParam).length >0){
let _param:any = this.$util.computedNavData({},this.context,this.viewparams,this.localViewParam);
Object.assign(this.viewparams,_param);
}
this.viewdata =JSON.stringify(this.context);
this.viewparam = JSON.stringify(this.viewparams);
}
/**
* 视图数据变化
*
* @memberof Infotabviewpanel4
*/
public viewDatasChange($event:any){
this.$emit('viewpanelDatasChange',$event);
}
/**
* vue 生命周期
*
* @memberof Infotabviewpanel4
*/
public destroyed() {
this.afterDestroy();
}
/**
* 执行destroyed后的逻辑
*
* @memberof Infotabviewpanel4
*/
public afterDestroy() {
if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe();
}
}
}
\ No newline at end of file
/**
* Infotabviewpanel4 部件模型
*
* @export
* @class Infotabviewpanel4Model
*/
export default class Infotabviewpanel4Model {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof Infotabviewpanel4Model
*/
public getDataItems(): any[] {
return [
{
name: 'decisionmaker',
},
{
name: 'totallineitemamount',
},
{
name: 'processid',
},
{
name: 'discountpercentage',
},
{
name: 'pricingerrorcode',
},
{
name: 'totalamount',
},
{
name: 'totaltax_base',
},
{
name: 'totaltax',
},
{
name: 'updateman',
},
{
name: 'estimatedvalue_base',
},
{
name: 'presentfinalproposal',
},
{
name: 'developproposal',
},
{
name: 'opportunityratingcode',
},
{
name: 'totalamount_base',
},
{
name: 'totalamountlessfreight',
},
{
name: 'description',
},
{
name: 'identifycompetitors',
},
{
name: 'updatedate',
},
{
name: 'sendthankyounote',
},
{
name: 'totaldiscountamount_base',
},
{
name: 'totallineitemdiscountamount',
},
{
name: 'purchaseprocess',
},
{
name: 'traversedpath',
},
{
name: 'captureproposalfeedback',
},
{
name: 'finaldecisiondate',
},
{
name: 'stepid',
},
{
name: 'resolvefeedback',
},
{
name: 'budgetamount_base',
},
{
name: 'ownername',
},
{
name: 'pursuitdecision',
},
{
name: 'revenuesystemcalculated',
},
{
name: 'scheduleproposalmeeting',
},
{
name: 'closeprobability',
},
{
name: 'utcconversiontimezonecode',
},
{
name: 'presentproposal',
},
{
name: 'schedulefollowup_prospect',
},
{
name: 'statuscode',
},
{
name: 'actualclosedate',
},
{
name: 'confirminterest',
},
{
name: 'customerid',
},
{
name: 'salesstage',
},
{
name: 'opportunity',
prop: 'opportunityid',
},
{
name: 'onholdtime',
},
{
name: 'qualificationcomments',
},
{
name: 'accountname',
},
{
name: 'schedulefollowup_qualify',
},
{
name: 'participatesinworkflow',
},
{
name: 'exchangerate',
},
{
name: 'stepname',
},
{
name: 'customerneed',
},
{
name: 'importsequencenumber',
},
{
name: 'completeinternalreview',
},
{
name: 'evaluatefit',
},
{
name: 'salesstagecode',
},
{
name: 'identifypursuitteam',
},
{
name: 'contactname',
},
{
name: 'initialcommunication',
},
{
name: 'versionnumber',
},
{
name: 'freightamount_base',
},
{
name: 'teamsfollowed',
},
{
name: 'proposedsolution',
},
{
name: 'filedebrief',
},
{
name: 'budgetamount',
},
{
name: 'budgetstatus',
},
{
name: 'discountamount_base',
},
{
name: 'completefinalproposal',
},
{
name: 'discountamount',
},
{
name: 'customername',
},
{
name: 'need',
},
{
name: 'stageid',
},
{
name: 'freightamount',
},
{
name: 'actualvalue',
},
{
name: 'ibizprivate',
},
{
name: 'timezoneruleversionnumber',
},
{
name: 'createdate',
},
{
name: 'prioritycode',
},
{
name: 'totallineitemamount_base',
},
{
name: 'estimatedclosedate',
},
{
name: 'currentsituation',
},
{
name: 'actualvalue_base',
},
{
name: 'customerpainpoints',
},
{
name: 'totaldiscountamount',
},
{
name: 'opportunityname',
},
{
name: 'ownertype',
},
{
name: 'identifycustomercontacts',
},
{
name: 'timeline',
},
{
name: 'lastonholdtime',
},
{
name: 'totalamountlessfreight_base',
},
{
name: 'estimatedvalue',
},
{
name: 'emailaddress',
},
{
name: 'statecode',
},
{
name: 'purchasetimeframe',
},
{
name: 'createman',
},
{
name: 'quotecomments',
},
{
name: 'customertype',
},
{
name: 'overriddencreatedon',
},
{
name: 'ownerid',
},
{
name: 'slaname',
},
{
name: 'parentcontactid',
},
{
name: 'campaignid',
},
{
name: 'transactioncurrencyid',
},
{
name: 'parentaccountid',
},
{
name: 'pricelevelid',
},
{
name: 'originatingleadid',
},
{
name: 'slaid',
},
{
name: 'originatingleadname',
},
{
name: 'parentaccountname',
},
{
name: 'campaignname',
},
{
name: 'parentcontactname',
},
{
name: 'transactioncurrencyname',
},
{
name: 'pricelevelname',
},
]
}
}
\ No newline at end of file
import { Http } from '@/utils';
import ControlService from '@/widgets/control-service';
/**
* Infotabviewpanel4 部件服务对象
*
* @export
* @class Infotabviewpanel4Service
*/
export default class Infotabviewpanel4Service extends ControlService {
}
\ No newline at end of file
<div class='tabviewpanel' v-if='isActivied'>
<opportunity-competitor-opp-comp-grid-view
class='viewcontainer2'
:viewdata="viewdata"
:viewparam="viewparam"
@viewload="viewDatasChange($event)"
:viewDefaultUsage="false"
:viewUsage="7"
:expActive="expActive"
/>
</div>
\ No newline at end of file
<template src="./infotabviewpanel4-tabviewpanel.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { Infotabviewpanel4TabviewpanelBase } from './infotabviewpanel4-tabviewpanel-base';
/**
* tabviewpanel4部件
*
* @export
* @class Infotabviewpanel4Tabviewpanel
* @extends {Infotabviewpanel4TabviewpanelBase}
*/
@Component({
components: {
}
})
@VueLifeCycleProcessing()
export default class Infotabviewpanel4Tabviewpanel extends Infotabviewpanel4TabviewpanelBase { }
</script>
import { Http } from '@/utils';
import ControlService from '@/widgets/control-service';
/**
* Infotabviewpanel5 部件服务对象
*
* @export
* @class Infotabviewpanel5Service
*/
export default class Infotabviewpanel5Service extends ControlService {
}
\ No newline at end of file
<div class='tabviewpanel' v-if='isActivied'>
<connection-by-parent-key
class='viewcontainer2'
:viewdata="viewdata"
:viewparam="viewparam"
@viewload="viewDatasChange($event)"
:viewDefaultUsage="false"
:viewUsage="7"
:expActive="expActive"
/>
</div>
\ No newline at end of file
<template src="./infotabviewpanel5-tabviewpanel.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { Infotabviewpanel5TabviewpanelBase } from './infotabviewpanel5-tabviewpanel-base';
/**
* tabviewpanel5部件
*
* @export
* @class Infotabviewpanel5Tabviewpanel
* @extends {Infotabviewpanel5TabviewpanelBase}
*/
@Component({
components: {
}
})
@VueLifeCycleProcessing()
export default class Infotabviewpanel5Tabviewpanel extends Infotabviewpanel5TabviewpanelBase { }
</script>
......@@ -6467,7 +6467,7 @@
<!--输出实体[OPPORTUNITY]数据结构 -->
<changeSet author="a_LAB01_e85d8801c" id="tab-opportunity-195-80">
<changeSet author="a_LAB01_e85d8801c" id="tab-opportunity-196-80">
<createTable tableName="OPPORTUNITY">
<column name="DECISIONMAKER" remarks="" type="INT">
</column>
......@@ -11531,25 +11531,25 @@
</changeSet>
<!--输出实体[MULTIPICKDATA]外键关系 -->
<!--输出实体[OPPORTUNITY]外键关系 -->
<changeSet author="a_LAB01_e85d8801c" id="fk-opportunity-195-315">
<changeSet author="a_LAB01_e85d8801c" id="fk-opportunity-196-315">
<addForeignKeyConstraint baseColumnNames="PARENTACCOUNTID" baseTableName="OPPORTUNITY" constraintName="DER1N_OPPORTUNITY__ACCOUNT__PA" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="ACCOUNTID" referencedTableName="ACCOUNT" validate="true"/>
</changeSet>
<changeSet author="a_LAB01_e85d8801c" id="fk-opportunity-195-316">
<changeSet author="a_LAB01_e85d8801c" id="fk-opportunity-196-316">
<addForeignKeyConstraint baseColumnNames="CAMPAIGNID" baseTableName="OPPORTUNITY" constraintName="DER1N_OPPORTUNITY__CAMPAIGN__C" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="CAMPAIGNID" referencedTableName="CAMPAIGN" validate="true"/>
</changeSet>
<changeSet author="a_LAB01_e85d8801c" id="fk-opportunity-195-317">
<changeSet author="a_LAB01_e85d8801c" id="fk-opportunity-196-317">
<addForeignKeyConstraint baseColumnNames="PARENTCONTACTID" baseTableName="OPPORTUNITY" constraintName="DER1N_OPPORTUNITY__CONTACT__PA" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="CONTACTID" referencedTableName="CONTACT" validate="true"/>
</changeSet>
<changeSet author="a_LAB01_e85d8801c" id="fk-opportunity-195-318">
<changeSet author="a_LAB01_e85d8801c" id="fk-opportunity-196-318">
<addForeignKeyConstraint baseColumnNames="ORIGINATINGLEADID" baseTableName="OPPORTUNITY" constraintName="DER1N_OPPORTUNITY__LEAD__ORIGI" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="LEADID" referencedTableName="LEAD" validate="true"/>
</changeSet>
<changeSet author="a_LAB01_e85d8801c" id="fk-opportunity-195-319">
<changeSet author="a_LAB01_e85d8801c" id="fk-opportunity-196-319">
<addForeignKeyConstraint baseColumnNames="PRICELEVELID" baseTableName="OPPORTUNITY" constraintName="DER1N_OPPORTUNITY__PRICELEVEL_" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="PRICELEVELID" referencedTableName="PRICELEVEL" validate="true"/>
</changeSet>
<changeSet author="a_LAB01_e85d8801c" id="fk-opportunity-195-320">
<changeSet author="a_LAB01_e85d8801c" id="fk-opportunity-196-320">
<addForeignKeyConstraint baseColumnNames="SLAID" baseTableName="OPPORTUNITY" constraintName="DER1N_OPPORTUNITY__SLA__SLAID" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="SLAID" referencedTableName="SLA" validate="true"/>
</changeSet>
<changeSet author="a_LAB01_e85d8801c" id="fk-opportunity-195-321">
<changeSet author="a_LAB01_e85d8801c" id="fk-opportunity-196-321">
<addForeignKeyConstraint baseColumnNames="TRANSACTIONCURRENCYID" baseTableName="OPPORTUNITY" constraintName="DER1N_OPPORTUNITY__TRANSACTION" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="TRANSACTIONCURRENCYID" referencedTableName="TRANSACTIONCURRENCY" validate="true"/>
</changeSet>
<!--输出实体[OPPORTUNITYCLOSE]外键关系 -->
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册