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

lab_gzf 发布系统代码

上级 2f64e7b3
...@@ -3282,6 +3282,33 @@ ...@@ -3282,6 +3282,33 @@
} }
] ]
}, },
{
"srfkey": "Campaign__StateCode",
"emptytext": "未定义",
"codelisttype":"static",
"items": [
{
"id": "1",
"label": "停用",
"text": "停用",
"data":"",
"codename":"Item_1",
"value": "1",
"disabled": false
}
, {
"id": "0",
"label": "有效",
"text": "有效",
"data":"",
"codename":"Item_0",
"value": "0",
"disabled": false
}
]
},
{ {
"srfkey": "Quote__FreightTermsCode", "srfkey": "Quote__FreightTermsCode",
"emptytext": "未定义", "emptytext": "未定义",
......
...@@ -1089,16 +1089,6 @@ ...@@ -1089,16 +1089,6 @@
"viewtag": "540213698dac06ea2ef3193da7fe9b11", "viewtag": "540213698dac06ea2ef3193da7fe9b11",
"memo": "" "memo": ""
}, },
"campaignedit_head": {
"title": "编辑_头信息",
"caption": "编辑_头信息",
"viewtype": "DEOPTVIEW",
"viewmodule": "Marketing",
"viewname": "CampaignEdit_Head",
"viewfilename": "campaign-edit-head",
"viewtag": "546a88448f9751bcbfb37734514ef2d8",
"memo": ""
},
"producteditview": { "producteditview": {
"title": "产品编辑视图", "title": "产品编辑视图",
"caption": "产品", "caption": "产品",
...@@ -1149,6 +1139,16 @@ ...@@ -1149,6 +1139,16 @@
"viewtag": "5c7e90ccfaeb49b5bd84ae6c17b479e3", "viewtag": "5c7e90ccfaeb49b5bd84ae6c17b479e3",
"memo": "" "memo": ""
}, },
"campaignedit_datapanelview": {
"title": "头部信息编辑",
"caption": "市场活动",
"viewtype": "DEEDITVIEW",
"viewmodule": "Marketing",
"viewname": "CampaignEdit_DataPanelView",
"viewfilename": "campaign-edit-data-panel-view",
"viewtag": "5d5216ccfd26fd9ce1119a44263e3f2f",
"memo": ""
},
"opportunitycompetitoroppcompgridview": { "opportunitycompetitoroppcompgridview": {
"title": "商机对手表格视图", "title": "商机对手表格视图",
"caption": "商机对手", "caption": "商机对手",
......
...@@ -419,6 +419,11 @@ export default { ...@@ -419,6 +419,11 @@ export default {
"5": "无法联系", "5": "无法联系",
"empty": "" "empty": ""
}, },
Campaign__StateCode: {
"1": "停用",
"0": "有效",
"empty": ""
},
Quote__FreightTermsCode: { Quote__FreightTermsCode: {
"1": "FOB", "1": "FOB",
"2": "免收费用", "2": "免收费用",
......
...@@ -419,6 +419,11 @@ export default { ...@@ -419,6 +419,11 @@ export default {
"5": "无法联系", "5": "无法联系",
"empty": "", "empty": "",
}, },
Campaign__StateCode: {
"1": "停用",
"0": "有效",
"empty": "",
},
Quote__FreightTermsCode: { Quote__FreightTermsCode: {
"1": "FOB", "1": "FOB",
"2": "免收费用", "2": "免收费用",
......
...@@ -80,9 +80,9 @@ export default { ...@@ -80,9 +80,9 @@ export default {
caption: "市场活动概览", caption: "市场活动概览",
title: "市场活动概览", title: "市场活动概览",
}, },
edit_head: { edit_datapanelview: {
caption: "编辑_头信息", caption: "市场活动",
title: "编辑_头信息", title: "头部信息编辑",
}, },
info_manager: { info_manager: {
caption: "管理信息", caption: "管理信息",
...@@ -113,9 +113,9 @@ export default { ...@@ -113,9 +113,9 @@ export default {
title: "日程安排", title: "日程安排",
}, },
}, },
edit_head_form: { edit_datapanel_form: {
details: { details: {
grouppanel4: "分组面板", group1: "市场活动基本信息",
formpage1: "基本信息", formpage1: "基本信息",
srfupdatedate: "更新时间", srfupdatedate: "更新时间",
srforikey: "", srforikey: "",
...@@ -127,7 +127,7 @@ export default { ...@@ -127,7 +127,7 @@ export default {
srfsourcekey: "", srfsourcekey: "",
template: "模板", template: "模板",
expectedrevenue: "估计收入", expectedrevenue: "估计收入",
statuscode: "状态描述", statecode: "状态",
ownername: "负责人", ownername: "负责人",
campaignid: "市场活动", campaignid: "市场活动",
}, },
...@@ -251,6 +251,30 @@ export default { ...@@ -251,6 +251,30 @@ export default {
uiactions: { uiactions: {
}, },
}, },
datapanel_form: {
details: {
button1: "头编辑",
grouppanel1: "分组面板",
group1: "市场活动基本信息",
formpage1: "基本信息",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "市场活动",
srfmajortext: "活动名称",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
template: "模板",
expectedrevenue: "估计收入",
statecode: "状态",
ownername: "负责人",
campaignid: "市场活动",
},
uiactions: {
campaign_edit_head: "头编辑",
},
},
main_form: { main_form: {
details: { details: {
group1: "市场活动", group1: "市场活动",
......
...@@ -79,9 +79,9 @@ export default { ...@@ -79,9 +79,9 @@ export default {
caption: "市场活动概览", caption: "市场活动概览",
title: "市场活动概览", title: "市场活动概览",
}, },
edit_head: { edit_datapanelview: {
caption: "编辑_头信息", caption: "市场活动",
title: "编辑_头信息", title: "头部信息编辑",
}, },
info_manager: { info_manager: {
caption: "管理信息", caption: "管理信息",
...@@ -112,9 +112,9 @@ export default { ...@@ -112,9 +112,9 @@ export default {
title: "日程安排", title: "日程安排",
}, },
}, },
edit_head_form: { edit_datapanel_form: {
details: { details: {
grouppanel4: "分组面板", group1: "市场活动基本信息",
formpage1: "基本信息", formpage1: "基本信息",
srfupdatedate: "更新时间", srfupdatedate: "更新时间",
srforikey: "", srforikey: "",
...@@ -126,7 +126,7 @@ export default { ...@@ -126,7 +126,7 @@ export default {
srfsourcekey: "", srfsourcekey: "",
template: "模板", template: "模板",
expectedrevenue: "估计收入", expectedrevenue: "估计收入",
statuscode: "状态描述", statecode: "状态",
ownername: "负责人", ownername: "负责人",
campaignid: "市场活动", campaignid: "市场活动",
}, },
...@@ -250,6 +250,30 @@ export default { ...@@ -250,6 +250,30 @@ export default {
uiactions: { uiactions: {
}, },
}, },
datapanel_form: {
details: {
button1: "头编辑",
grouppanel1: "分组面板",
group1: "市场活动基本信息",
formpage1: "基本信息",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "市场活动",
srfmajortext: "活动名称",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
template: "模板",
expectedrevenue: "估计收入",
statecode: "状态",
ownername: "负责人",
campaignid: "市场活动",
},
uiactions: {
campaign_edit_head: "头编辑",
},
},
main_form: { main_form: {
details: { details: {
group1: "市场活动", group1: "市场活动",
......
...@@ -3290,6 +3290,33 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => { ...@@ -3290,6 +3290,33 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
}, },
] ]
}, },
{
srfkey: "Campaign__StateCode",
emptytext: "未定义",
"codelisttype":"static",
items: [
{
id: "1",
label: "停用",
text: "停用",
"data":"",
"codename":"Item_1",
value: "1",
disabled: false,
},
{
id: "0",
label: "有效",
text: "有效",
"data":"",
"codename":"Item_0",
value: "0",
disabled: false,
},
]
},
{ {
srfkey: "Quote__FreightTermsCode", srfkey: "Quote__FreightTermsCode",
emptytext: "未定义", emptytext: "未定义",
......
...@@ -879,14 +879,6 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => { ...@@ -879,14 +879,6 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "IncidentQuickCreateView", "viewname": "IncidentQuickCreateView",
"viewtag": "540213698dac06ea2ef3193da7fe9b11" "viewtag": "540213698dac06ea2ef3193da7fe9b11"
}, },
"campaignedit_head": {
"title": "编辑_头信息",
"caption": "编辑_头信息",
"viewtype": "DEOPTVIEW",
"viewmodule": "Marketing",
"viewname": "CampaignEdit_Head",
"viewtag": "546a88448f9751bcbfb37734514ef2d8"
},
"producteditview": { "producteditview": {
"title": "产品编辑视图", "title": "产品编辑视图",
"caption": "产品", "caption": "产品",
...@@ -927,6 +919,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => { ...@@ -927,6 +919,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "AccountGridView", "viewname": "AccountGridView",
"viewtag": "5c7e90ccfaeb49b5bd84ae6c17b479e3" "viewtag": "5c7e90ccfaeb49b5bd84ae6c17b479e3"
}, },
"campaignedit_datapanelview": {
"title": "头部信息编辑",
"caption": "市场活动",
"viewtype": "DEEDITVIEW",
"viewmodule": "Marketing",
"viewname": "CampaignEdit_DataPanelView",
"viewtag": "5d5216ccfd26fd9ce1119a44263e3f2f"
},
"opportunitycompetitoroppcompgridview": { "opportunitycompetitoroppcompgridview": {
"title": "商机对手表格视图", "title": "商机对手表格视图",
"caption": "商机对手", "caption": "商机对手",
......
...@@ -16,8 +16,8 @@ export const PageComponents = { ...@@ -16,8 +16,8 @@ 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('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-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('sales-order-edit-data-panel-view', () => import('@pages/sales/sales-order-edit-data-panel-view/sales-order-edit-data-panel-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('goal-info-goal-view', () => import('@pages/sales/goal-info-goal-view/goal-info-goal-view.vue'));
Vue.component('invoice-by-parent-key', () => import('@pages/finance/invoice-by-parent-key/invoice-by-parent-key.vue'));
Vue.component('invoice-paid-grid-view', () => import('@pages/finance/invoice-paid-grid-view/invoice-paid-grid-view.vue')); Vue.component('invoice-paid-grid-view', () => import('@pages/finance/invoice-paid-grid-view/invoice-paid-grid-view.vue'));
Vue.component('goal-info-view', () => import('@pages/sales/goal-info-view/goal-info-view.vue')); Vue.component('goal-info-view', () => import('@pages/sales/goal-info-view/goal-info-view.vue'));
Vue.component('opportunity-grid-view', () => import('@pages/sales/opportunity-grid-view/opportunity-grid-view.vue')); Vue.component('opportunity-grid-view', () => import('@pages/sales/opportunity-grid-view/opportunity-grid-view.vue'));
...@@ -49,6 +49,7 @@ export const PageComponents = { ...@@ -49,6 +49,7 @@ export const PageComponents = {
Vue.component('lead-competitor-competitor-grid-view', () => import('@pages/sales/lead-competitor-competitor-grid-view/lead-competitor-competitor-grid-view.vue')); Vue.component('lead-competitor-competitor-grid-view', () => import('@pages/sales/lead-competitor-competitor-grid-view/lead-competitor-competitor-grid-view.vue'));
Vue.component('campaign-activity-edit-view', () => import('@pages/marketing/campaign-activity-edit-view/campaign-activity-edit-view.vue')); Vue.component('campaign-activity-edit-view', () => import('@pages/marketing/campaign-activity-edit-view/campaign-activity-edit-view.vue'));
Vue.component('contact-quick-create', () => import('@pages/base/contact-quick-create/contact-quick-create.vue')); Vue.component('contact-quick-create', () => import('@pages/base/contact-quick-create/contact-quick-create.vue'));
Vue.component('campaign-edit-data-panel-view', () => import('@pages/marketing/campaign-edit-data-panel-view/campaign-edit-data-panel-view.vue'));
Vue.component('quote-by-parent-key', () => import('@pages/sales/quote-by-parent-key/quote-by-parent-key.vue')); Vue.component('quote-by-parent-key', () => import('@pages/sales/quote-by-parent-key/quote-by-parent-key.vue'));
Vue.component('metric-edit-view', () => import('@pages/base/metric-edit-view/metric-edit-view.vue')); Vue.component('metric-edit-view', () => import('@pages/base/metric-edit-view/metric-edit-view.vue'));
Vue.component('competitor-info-abstract', () => import('@pages/sales/competitor-info-abstract/competitor-info-abstract.vue')); Vue.component('competitor-info-abstract', () => import('@pages/sales/competitor-info-abstract/competitor-info-abstract.vue'));
......
...@@ -758,6 +758,20 @@ const router = new Router({ ...@@ -758,6 +758,20 @@ const router = new Router({
}, },
component: () => import('@pages/sales/sales-order-edit-data-panel-view/sales-order-edit-data-panel-view.vue'), component: () => import('@pages/sales/sales-order-edit-data-panel-view/sales-order-edit-data-panel-view.vue'),
}, },
{
path: 'goals/:goal?/info_goalview/:info_goalview?',
meta: {
caption: 'entities.goal.views.info_goalview.title',
info:'',
parameters: [
{ pathName: 'central', parameterName: 'central' },
{ pathName: 'goals', parameterName: 'goal' },
{ pathName: 'info_goalview', parameterName: 'info_goalview' },
],
requireAuth: true,
},
component: () => import('@pages/sales/goal-info-goal-view/goal-info-goal-view.vue'),
},
{ {
path: 'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/quotes/:quote?/salesorders/:salesorder?/invoices/:invoice?/byparentkey/:byparentkey?', path: 'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/quotes/:quote?/salesorders/:salesorder?/invoices/:invoice?/byparentkey/:byparentkey?',
meta: { meta: {
...@@ -875,20 +889,6 @@ const router = new Router({ ...@@ -875,20 +889,6 @@ const router = new Router({
}, },
component: () => import('@pages/finance/invoice-by-parent-key/invoice-by-parent-key.vue'), component: () => import('@pages/finance/invoice-by-parent-key/invoice-by-parent-key.vue'),
}, },
{
path: 'goals/:goal?/info_goalview/:info_goalview?',
meta: {
caption: 'entities.goal.views.info_goalview.title',
info:'',
parameters: [
{ pathName: 'central', parameterName: 'central' },
{ pathName: 'goals', parameterName: 'goal' },
{ pathName: 'info_goalview', parameterName: 'info_goalview' },
],
requireAuth: true,
},
component: () => import('@pages/sales/goal-info-goal-view/goal-info-goal-view.vue'),
},
{ {
path: 'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/quotes/:quote?/salesorders/:salesorder?/invoices/:invoice?/paidgridview/:paidgridview?', path: 'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/quotes/:quote?/salesorders/:salesorder?/invoices/:invoice?/paidgridview/:paidgridview?',
meta: { meta: {
...@@ -2281,6 +2281,20 @@ const router = new Router({ ...@@ -2281,6 +2281,20 @@ const router = new Router({
}, },
component: () => import('@pages/base/contact-quick-create/contact-quick-create.vue'), component: () => import('@pages/base/contact-quick-create/contact-quick-create.vue'),
}, },
{
path: 'campaigns/:campaign?/edit_datapanelview/:edit_datapanelview?',
meta: {
caption: 'entities.campaign.views.edit_datapanelview.title',
info:'',
parameters: [
{ pathName: 'central', parameterName: 'central' },
{ pathName: 'campaigns', parameterName: 'campaign' },
{ pathName: 'edit_datapanelview', parameterName: 'edit_datapanelview' },
],
requireAuth: true,
},
component: () => import('@pages/marketing/campaign-edit-data-panel-view/campaign-edit-data-panel-view.vue'),
},
{ {
path: 'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/quotes/:quote?/byparentkey/:byparentkey?', path: 'accounts/:account?/contacts/:contact?/opportunities/:opportunity?/quotes/:quote?/byparentkey/:byparentkey?',
meta: { meta: {
......
import { Subject } from 'rxjs';
import { EditViewBase } from '@/studio-core';
import CampaignService from '@/service/campaign/campaign-service';
import EditViewEngine from '@engine/view/edit-view-engine';
/**
* 头部信息编辑视图基类
*
* @export
* @class CampaignEdit_DataPanelViewBase
* @extends {EditViewBase}
*/
export class CampaignEdit_DataPanelViewBase extends EditViewBase {
/**
* 视图对应应用实体名称
*
* @protected
* @type {string}
* @memberof CampaignEdit_DataPanelViewBase
*/
protected appDeName: string = 'campaign';
/**
* 应用实体主键
*
* @protected
* @type {string}
* @memberof CampaignEdit_DataPanelViewBase
*/
protected appDeKey: string = 'campaignid';
/**
* 应用实体主信息
*
* @protected
* @type {string}
* @memberof CampaignEdit_DataPanelViewBase
*/
protected appDeMajor: string = 'campaignname';
/**
* 实体服务对象
*
* @type {CampaignService}
* @memberof CampaignEdit_DataPanelViewBase
*/
protected appEntityService: CampaignService = new CampaignService;
/**
* 计数器服务对象集合
*
* @protected
* @type {Array<*>}
* @memberof CampaignEdit_DataPanelViewBase
*/
protected counterServiceArray: Array<any> = [];
/**
* 视图模型数据
*
* @protected
* @type {*}
* @memberof CampaignEdit_DataPanelViewBase
*/
protected model: any = {
srfCaption: 'entities.campaign.views.edit_datapanelview.caption',
srfTitle: 'entities.campaign.views.edit_datapanelview.title',
srfSubTitle: 'entities.campaign.views.edit_datapanelview.subtitle',
dataInfo: ''
}
/**
* 容器模型
*
* @protected
* @type {*}
* @memberof CampaignEdit_DataPanelViewBase
*/
protected containerModel: any = {
view_form: { name: 'form', type: 'FORM' },
};
/**
* 视图唯一标识
*
* @protected
* @type {string}
* @memberof ViewBase
*/
protected viewtag: string = '5d5216ccfd26fd9ce1119a44263e3f2f';
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof CampaignEdit_DataPanelViewBase
*/
public engine: EditViewEngine = new EditViewEngine();
/**
* 引擎初始化
*
* @public
* @memberof CampaignEdit_DataPanelViewBase
*/
public engineInit(): void {
this.engine.init({
view: this,
form: this.$refs.form,
p2k: '0',
keyPSDEField: 'campaign',
majorPSDEField: 'campaignname',
isLoadDefault: true,
});
}
/**
* form 部件 save 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof CampaignEdit_DataPanelViewBase
*/
public form_save($event: any, $event2?: any): void {
this.engine.onCtrlEvent('form', 'save', $event);
}
/**
* form 部件 remove 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof CampaignEdit_DataPanelViewBase
*/
public form_remove($event: any, $event2?: any): void {
this.engine.onCtrlEvent('form', 'remove', $event);
}
/**
* form 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof CampaignEdit_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="campaignedit_datapanelview" viewTitle="头部信息编辑" class='deeditview campaign-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="./campaign-edit-data-panel-view.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { CampaignEdit_DataPanelViewBase } from './campaign-edit-data-panel-view-base';
import view_form from '@widgets/campaign/edit-data-panel-form/edit-data-panel-form.vue';
/**
* 头部信息编辑视图
*
* @export
* @class CampaignEdit_DataPanelView
* @extends {CampaignEdit_DataPanelViewBase}
*/
@Component({
components: {
view_form,
}
})
@VueLifeCycleProcessing()
export default class CampaignEdit_DataPanelView extends CampaignEdit_DataPanelViewBase { }
</script>
...@@ -2,6 +2,7 @@ import { Subject } from 'rxjs'; ...@@ -2,6 +2,7 @@ import { Subject } from 'rxjs';
import { TabExpViewBase } from '@/studio-core'; import { TabExpViewBase } from '@/studio-core';
import CampaignService from '@/service/campaign/campaign-service'; import CampaignService from '@/service/campaign/campaign-service';
import TabExpViewEngine from '@engine/view/tab-exp-view-engine'; import TabExpViewEngine from '@engine/view/tab-exp-view-engine';
import DataPanelEngine from '@engine/ctrl/data-panel-engine';
/** /**
* 市场活动信息视图基类 * 市场活动信息视图基类
...@@ -78,6 +79,7 @@ export class CampaignInfoBase extends TabExpViewBase { ...@@ -78,6 +79,7 @@ export class CampaignInfoBase extends TabExpViewBase {
* @memberof CampaignInfoBase * @memberof CampaignInfoBase
*/ */
protected containerModel: any = { protected containerModel: any = {
view_datapanel: { name: 'datapanel', type: 'FORM' },
view_toolbar: { name: 'toolbar', type: 'TOOLBAR' }, view_toolbar: { name: 'toolbar', type: 'TOOLBAR' },
view_tabexppanel: { name: 'tabexppanel', type: 'TABEXPPANEL' }, view_tabexppanel: { name: 'tabexppanel', type: 'TABEXPPANEL' },
}; };
...@@ -114,6 +116,15 @@ export class CampaignInfoBase extends TabExpViewBase { ...@@ -114,6 +116,15 @@ export class CampaignInfoBase extends TabExpViewBase {
*/ */
public engine: TabExpViewEngine = new TabExpViewEngine(); public engine: TabExpViewEngine = new TabExpViewEngine();
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof CampaignInfoBase
*/
public datapanel: DataPanelEngine = new DataPanelEngine();
/** /**
* 引擎初始化 * 引擎初始化
* *
...@@ -127,6 +138,13 @@ export class CampaignInfoBase extends TabExpViewBase { ...@@ -127,6 +138,13 @@ export class CampaignInfoBase extends TabExpViewBase {
majorPSDEField: 'campaignname', majorPSDEField: 'campaignname',
isLoadDefault: true, isLoadDefault: true,
}); });
this.datapanel.init({
view: this,
datapanel: this.$refs.datapanel,
keyPSDEField: 'campaign',
majorPSDEField: 'campaignname',
isLoadDefault: true,
});
} }
/** /**
......
...@@ -2,6 +2,27 @@ ...@@ -2,6 +2,27 @@
<template slot='title'> <template slot='title'>
<span class='caption-info'>{{$t(model.srfTitle)}}</span> <span class='caption-info'>{{$t(model.srfTitle)}}</span>
</template> </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"> <template slot="toolbar">
<view-toolbar mode="STYLE2" :model="toolBarModels" @item-click="toolbar_click($event)"/> </template> <view-toolbar mode="STYLE2" :model="toolBarModels" @item-click="toolbar_click($event)"/> </template>
<view_tabexppanel <view_tabexppanel
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
import { Component } from 'vue-property-decorator'; import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core'; import { VueLifeCycleProcessing } from '@/studio-core';
import { CampaignInfoBase } from './campaign-info-base'; import { CampaignInfoBase } from './campaign-info-base';
import view_datapanel from '@widgets/campaign/data-panel-form/data-panel-form.vue';
import view_tabexppanel from '@widgets/campaign/infotabexppanel-tabexppanel/infotabexppanel-tabexppanel.vue'; import view_tabexppanel from '@widgets/campaign/infotabexppanel-tabexppanel/infotabexppanel-tabexppanel.vue';
/** /**
...@@ -14,6 +15,7 @@ import view_tabexppanel from '@widgets/campaign/infotabexppanel-tabexppanel/info ...@@ -14,6 +15,7 @@ import view_tabexppanel from '@widgets/campaign/infotabexppanel-tabexppanel/info
*/ */
@Component({ @Component({
components: { components: {
view_datapanel,
view_tabexppanel, view_tabexppanel,
} }
}) })
......
...@@ -143,7 +143,7 @@ export const viewstate: any = { ...@@ -143,7 +143,7 @@ export const viewstate: any = {
viewaction: '', viewaction: '',
viewdatachange: false, viewdatachange: false,
refviews: [ refviews: [
'546a88448f9751bcbfb37734514ef2d8', '5d5216ccfd26fd9ce1119a44263e3f2f',
], ],
}, },
{ {
...@@ -1039,15 +1039,6 @@ export const viewstate: any = { ...@@ -1039,15 +1039,6 @@ export const viewstate: any = {
'0dff48c04927315f77dd70a9a2767b59', '0dff48c04927315f77dd70a9a2767b59',
], ],
}, },
{
viewtag: '546a88448f9751bcbfb37734514ef2d8',
viewmodule: 'Marketing',
viewname: 'CampaignEdit_Head',
viewaction: '',
viewdatachange: false,
refviews: [
],
},
{ {
viewtag: '5894d33141cc9c307a54134def213332', viewtag: '5894d33141cc9c307a54134def213332',
viewmodule: 'Marketing', viewmodule: 'Marketing',
...@@ -1078,6 +1069,15 @@ export const viewstate: any = { ...@@ -1078,6 +1069,15 @@ export const viewstate: any = {
'ab653866ca40a1cefde21241ac5ba44c', 'ab653866ca40a1cefde21241ac5ba44c',
], ],
}, },
{
viewtag: '5d5216ccfd26fd9ce1119a44263e3f2f',
viewmodule: 'Marketing',
viewname: 'CampaignEdit_DataPanelView',
viewaction: '',
viewdatachange: false,
refviews: [
],
},
{ {
viewtag: '5f8f689d5dccc3db6d2b74a24a8b24ef', viewtag: '5f8f689d5dccc3db6d2b74a24a8b24ef',
viewmodule: 'Sales', viewmodule: 'Sales',
...@@ -2489,6 +2489,7 @@ export const viewstate: any = { ...@@ -2489,6 +2489,7 @@ export const viewstate: any = {
'661e0045037121d27f78b71049dc0d8a', '661e0045037121d27f78b71049dc0d8a',
'15d12c1173fcb6e742b6a6d92cbc53ed', '15d12c1173fcb6e742b6a6d92cbc53ed',
'5894d33141cc9c307a54134def213332', '5894d33141cc9c307a54134def213332',
'5d5216ccfd26fd9ce1119a44263e3f2f',
'10c5d33db64f3a1bda18c7571a679438', '10c5d33db64f3a1bda18c7571a679438',
'b53373df8bf30a970e738602c7a83666', 'b53373df8bf30a970e738602c7a83666',
], ],
......
...@@ -86,7 +86,7 @@ export default class CampaignUIServiceBase extends UIService { ...@@ -86,7 +86,7 @@ export default class CampaignUIServiceBase extends UIService {
this.allViewMap.set(':',{viewname:'stopgridview',srfappde:'campaigns'}); this.allViewMap.set(':',{viewname:'stopgridview',srfappde:'campaigns'});
this.allViewMap.set('EDITVIEW:',{viewname:'editview',srfappde:'campaigns'}); this.allViewMap.set('EDITVIEW:',{viewname:'editview',srfappde:'campaigns'});
this.allViewMap.set(':',{viewname:'summary_head',srfappde:'campaigns'}); this.allViewMap.set(':',{viewname:'summary_head',srfappde:'campaigns'});
this.allViewMap.set(':',{viewname:'edit_head',srfappde:'campaigns'}); this.allViewMap.set(':',{viewname:'edit_datapanelview',srfappde:'campaigns'});
this.allViewMap.set(':',{viewname:'info_manager',srfappde:'campaigns'}); this.allViewMap.set(':',{viewname:'info_manager',srfappde:'campaigns'});
this.allViewMap.set(':',{viewname:'quickcreateview',srfappde:'campaigns'}); this.allViewMap.set(':',{viewname:'quickcreateview',srfappde:'campaigns'});
this.allViewMap.set(':',{viewname:'effectivegridview',srfappde:'campaigns'}); this.allViewMap.set(':',{viewname:'effectivegridview',srfappde:'campaigns'});
...@@ -293,10 +293,10 @@ export default class CampaignUIServiceBase extends UIService { ...@@ -293,10 +293,10 @@ export default class CampaignUIServiceBase extends UIService {
}); });
} }
const view: any = { const view: any = {
viewname: 'campaign-edit-head', viewname: 'campaign-edit-data-panel-view',
height: 200, height: 300,
width: 300, width: 300,
title: actionContext.$t('entities.campaign.views.edit_head.title'), title: actionContext.$t('entities.campaign.views.edit_datapanelview.title'),
placement: 'POPOVER', placement: 'POPOVER',
}; };
openPopOver(view, data); openPopOver(view, data);
......
import { Prop, Provide, Emit, Model } from 'vue-property-decorator';
import { Subject, Subscription } from 'rxjs';
import { Watch, EditFormControlBase } from '@/studio-core';
import CampaignService from '@/service/campaign/campaign-service';
import DataPanelService from './data-panel-form-service';
import CampaignUIService from '@/uiservice/campaign/campaign-ui-service';
import { FormButtonModel, FormPageModel, FormItemModel, FormDRUIPartModel, FormPartModel, FormGroupPanelModel, FormIFrameModel, FormRowItemModel, FormTabPageModel, FormTabPanelModel, FormUserControlModel } from '@/model/form-detail';
/**
* datapanel部件基类
*
* @export
* @class EditFormControlBase
* @extends {DataPanelEditFormBase}
*/
export class DataPanelEditFormBase extends EditFormControlBase {
/**
* 获取部件类型
*
* @protected
* @type {string}
* @memberof DataPanelEditFormBase
*/
protected controlType: string = 'FORM';
/**
* 建构部件服务对象
*
* @type {DataPanelService}
* @memberof DataPanelEditFormBase
*/
public service: DataPanelService = new DataPanelService({ $store: this.$store });
/**
* 实体服务对象
*
* @type {CampaignService}
* @memberof DataPanelEditFormBase
*/
public appEntityService: CampaignService = new CampaignService({ $store: this.$store });
/**
* 应用实体名称
*
* @protected
* @type {string}
* @memberof DataPanelEditFormBase
*/
protected appDeName: string = 'campaign';
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public datapanel_button1_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;
if (_this.getDatas && _this.getDatas instanceof Function) {
datas = [..._this.getDatas()];
}
if(params){
datas = [params];
}
// 界面行为
const curUIService:CampaignUIService = new CampaignUIService();
curUIService.Campaign_Edit_Head(datas,contextJO, paramJO, $event, xData,this,"Campaign");
}
/**
* 表单数据对象
*
* @type {*}
* @memberof DataPanelEditFormBase
*/
public data: any = {
srfupdatedate: null,
srforikey: null,
srfkey: null,
srfmajortext: null,
srftempmode: null,
srfuf: null,
srfdeid: null,
srfsourcekey: null,
template: null,
expectedrevenue: null,
statecode: null,
ownername: null,
campaignid: null,
campaign:null,
};
/**
* 属性值规则
*
* @type {*}
* @memberof DataPanelEditFormBase
*/
public rules: any = {
}
/**
* 详情模型集合
*
* @type {*}
* @memberof DataPanelEditFormBase
*/
public detailsModel: any = {
button1: new FormButtonModel({ caption: '头编辑', detailType: 'BUTTON', name: 'button1', visible: true, isShowCaption: false, form: this, showMoreMode: 0, uiaction: { type: 'DEUIACTION', tag: 'Edit_Head', actiontarget: 'SINGLEKEY' } }),
grouppanel1: new FormGroupPanelModel({ caption: '分组面板', detailType: 'GROUPPANEL', name: 'grouppanel1', visible: true, isShowCaption: false, form: this, showMoreMode: 0, uiActionGroup: { caption: '', langbase: 'entities.campaign.datapanel_form', extractMode: 'ITEM', details: [] } }),
group1: new FormGroupPanelModel({ caption: '市场活动基本信息', detailType: 'GROUPPANEL', name: 'group1', visible: true, isShowCaption: false, form: this, showMoreMode: 0, uiActionGroup: { caption: '', langbase: 'entities.campaign.datapanel_form', extractMode: 'ITEM', details: [] } }),
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, showMoreMode: 0, disabled: false, enableCond: 0 }),
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, showMoreMode: 0, 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, showMoreMode: 0, 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, showMoreMode: 0, disabled: false, enableCond: 3 }),
srfsourcekey: new FormItemModel({ caption: '', detailType: 'FORMITEM', name: 'srfsourcekey', visible: true, isShowCaption: true, form: this, showMoreMode: 0, disabled: false, enableCond: 3 }),
template: new FormItemModel({ caption: '模板', detailType: 'FORMITEM', name: 'template', visible: true, isShowCaption: true, form: this, showMoreMode: 0, disabled: false, enableCond: 3 }),
expectedrevenue: new FormItemModel({ caption: '估计收入', detailType: 'FORMITEM', name: 'expectedrevenue', 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, showMoreMode: 0, disabled: false, enableCond: 3 }),
ownername: new FormItemModel({ caption: '负责人', detailType: 'FORMITEM', name: 'ownername', visible: true, isShowCaption: true, form: this, showMoreMode: 0, disabled: false, enableCond: 3 }),
campaignid: new FormItemModel({ caption: '市场活动', detailType: 'FORMITEM', name: 'campaignid', visible: true, isShowCaption: true, form: this, showMoreMode: 0, disabled: false, enableCond: 3 }),
};
/**
* 表单 头编辑 事件
*
* @memberof @memberof DataPanelEditFormBase
*/
public button1_click($event: any): void {
this.datapanel_button1_click(null, null, $event);
}
}
\ No newline at end of file
/**
* DataPanel 部件模型
*
* @export
* @class DataPanelModel
*/
export default class DataPanelModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof DataPanelModel
*/
public getDataItems(): any[] {
return [
{
name: 'srfwfmemo',
prop: 'srfwfmemo',
dataType: 'TEXT',
},
// 前端新增修改标识,新增为"0",修改为"1"或未设值
{
name: 'srffrontuf',
prop: 'srffrontuf',
dataType: 'TEXT',
},
{
name: 'srfupdatedate',
prop: 'updatedate',
dataType: 'DATETIME',
},
{
name: 'srforikey',
},
{
name: 'srfkey',
prop: 'campaignid',
dataType: 'GUID',
},
{
name: 'srfmajortext',
prop: 'campaignname',
dataType: 'TEXT',
},
{
name: 'srftempmode',
},
{
name: 'srfuf',
},
{
name: 'srfdeid',
},
{
name: 'srfsourcekey',
},
{
name: 'template',
prop: 'template',
dataType: 'YESNO',
},
{
name: 'expectedrevenue',
prop: 'expectedrevenue',
dataType: 'BIGDECIMAL',
},
{
name: 'statecode',
prop: 'statecode',
dataType: 'NSCODELIST',
},
{
name: 'ownername',
prop: 'ownername',
dataType: 'TEXT',
},
{
name: 'campaignid',
prop: 'campaignid',
dataType: 'GUID',
},
{
name: 'campaign',
prop: 'campaignid',
dataType: 'FONTKEY',
},
]
}
}
\ No newline at end of file
<i-form :model="this.data" class='app-form info-form-mode' ref='datapanel' id='campaign_datapanel' style="">
<input style="display:none;" />
<row >
<i-col v-show="detailsModel.group1.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-group :model="detailsModel.group1" layoutType="FLEX" titleStyle="" class='' :uiActionGroup="detailsModel.group1.uiActionGroup" @groupuiactionclick="groupUIActionClick($event)" :caption="$t('entities.campaign.datapanel_form.details.group1')" :isShowCaption="false" uiStyle="DEFAULT" :titleBarCloseMode="0" :isInfoGroupMode="true" >
<app-radio-group-data-panel slot="dataInfoPanel" :model="detailsModel.group1" :data="data" :context="context" :viewparams="viewparams"/>
<div style="height: 100%;display: flex;">
<div v-show="detailsModel.template.visible" :style="{}">
<app-form-item name='template' :itemRules="this.rules.template" class='datapanel-style' :caption="$t('entities.campaign.datapanel_form.details.template')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.template.error" :isEmptyCaption="false" labelPos="BOTTOM">
<app-span name='template' :value="data.template" tag='YesNo' codelistType='STATIC' :data="data" :context="context" :viewparams="viewparams" :localContext ='{ }' :localParam ='{ }' style=""></app-span>
</app-form-item>
</div>
<div v-show="detailsModel.expectedrevenue.visible" :style="{}">
<app-form-item name='expectedrevenue' :itemRules="this.rules.expectedrevenue" class='datapanel-style' :caption="$t('entities.campaign.datapanel_form.details.expectedrevenue')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.expectedrevenue.error" :isEmptyCaption="false" labelPos="BOTTOM">
<app-span name='expectedrevenue' :value="data.expectedrevenue" :data="data" :context="context" :viewparams="viewparams" :localContext ='{ }' :localParam ='{ }' style=""></app-span>
</app-form-item>
</div>
<div v-show="detailsModel.statecode.visible" :style="{}">
<app-form-item name='statecode' :itemRules="this.rules.statecode" class='datapanel-style' :caption="$t('entities.campaign.datapanel_form.details.statecode')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.statecode.error" :isEmptyCaption="false" labelPos="BOTTOM">
<app-span name='statecode' :value="data.statecode" tag='Campaign__StateCode' codelistType='STATIC' :data="data" :context="context" :viewparams="viewparams" :localContext ='{ }' :localParam ='{ }' style=""></app-span>
</app-form-item>
</div>
<div v-show="detailsModel.ownername.visible" :style="{}">
<app-form-item name='ownername' :itemRules="this.rules.ownername" class='datapanel-style' :caption="$t('entities.campaign.datapanel_form.details.ownername')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.ownername.error" :isEmptyCaption="false" labelPos="BOTTOM">
<app-span name='ownername' :value="data.ownername" :data="data" :context="context" :viewparams="viewparams" :localContext ='{ }' :localParam ='{ }' style=""></app-span>
</app-form-item>
</div>
<div v-show="detailsModel.grouppanel1.visible" :style="{}">
<app-form-group :model="detailsModel.grouppanel1" layoutType="FLEX" titleStyle="" class='' :uiActionGroup="detailsModel.grouppanel1.uiActionGroup" @groupuiactionclick="groupUIActionClick($event)" :caption="$t('entities.campaign.datapanel_form.details.grouppanel1')" :isShowCaption="false" uiStyle="DEFAULT" :titleBarCloseMode="0" :isInfoGroupMode="true" >
<app-radio-group-data-panel slot="dataInfoPanel" :model="detailsModel.grouppanel1" :data="data" :context="context" :viewparams="viewparams"/>
<div style="height: 100%;display: flex;">
<div v-show="detailsModel.button1.visible" :style="{}">
<i-button type="primary" @click="button1_click($event)" class="form-btn-noborder-transparent"
style="">
<i class="fa fa-angle-down" style="margin-right: 2px;"></i>
</i-button>
</div>
</div>
</app-form-group>
</div>
</div>
</app-form-group>
</i-col>
</row>
</i-form>
\ No newline at end of file
.datapanel-style {
font-size:20px;font-weight:bold;text-align:left
}
.datapanel-style {
height: 48px;
margin-top: 2px;
margin-bottom: 0px!important;
margin-right: 5px;
padding-right: 5px;
border-right: 2px solid var(--app-dividing-line-color-bright) ;
}
.label-bottom {
.editor-wrapper {
height: 24px!important;
}
.app-form-item-label {
font-size: 12px;
font-weight: bold;
height: 24px!important;
line-height: 24px!important;
}
}
.form-btn-noborder-transparent {
background-color:rgba(255, 0, 0, 0);border-style:none;margin:0px 10px 0px 0px
}
.form-btn-noborder-transparent {
background-color:transparent!important;
border-style:none;
margin:0px 5px 0px 5px
}
<template src="./data-panel-form.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { DataPanelEditFormBase } from './data-panel-form-base';
/**
* datapanel部件
*
* @export
* @class DataPanelEditForm
* @extends {DataPanelEditFormBase}
*/
@Component({
components: {
}
})
@VueLifeCycleProcessing()
export default class DataPanelEditForm extends DataPanelEditFormBase { }
</script>
<style lang='less'>
@import './data-panel-form.less';
</style>
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册