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

lab_gzf 发布系统代码

上级 9a30d8d5
...@@ -569,6 +569,16 @@ ...@@ -569,6 +569,16 @@
"viewtag": "31f2ad06ced735d250dfa5f309b5aea4", "viewtag": "31f2ad06ced735d250dfa5f309b5aea4",
"memo": "" "memo": ""
}, },
"leadstatustabview": {
"title": "潜在顾客状态分页视图",
"caption": "潜在顾客",
"viewtype": "DETABEXPVIEW",
"viewmodule": "Sales",
"viewname": "LeadStatusTabView",
"viewfilename": "lead-status-tab-view",
"viewtag": "3202f3f503424c7a2c549b2c5186dc36",
"memo": ""
},
"leadinfo": { "leadinfo": {
"title": "潜在顾客", "title": "潜在顾客",
"caption": "潜在顾客", "caption": "潜在顾客",
...@@ -769,6 +779,16 @@ ...@@ -769,6 +779,16 @@
"viewtag": "49e5e89fb51fa9929925b532841b2549", "viewtag": "49e5e89fb51fa9929925b532841b2549",
"memo": "" "memo": ""
}, },
"leadongridview": {
"title": "潜在顾客信息",
"caption": "潜在顾客信息",
"viewtype": "DEGRIDVIEW",
"viewmodule": "Sales",
"viewname": "LeadOnGridView",
"viewfilename": "lead-on-grid-view",
"viewtag": "4ab71df980f390b6663b8912f64ede02",
"memo": "系统自动添加"
},
"salesorderinfoview": { "salesorderinfoview": {
"title": "订单信息", "title": "订单信息",
"caption": "订单", "caption": "订单",
...@@ -1469,6 +1489,16 @@ ...@@ -1469,6 +1489,16 @@
"viewtag": "96cc644d7d763e47f3644aed0d9850f0", "viewtag": "96cc644d7d763e47f3644aed0d9850f0",
"memo": "" "memo": ""
}, },
"leadexcludedgridview": {
"title": "潜在顾客信息",
"caption": "潜在顾客信息",
"viewtype": "DEGRIDVIEW",
"viewmodule": "Sales",
"viewname": "LeadExcludedGridView",
"viewfilename": "lead-excluded-grid-view",
"viewtag": "976e7a90095f22af96879a4f46b79b7c",
"memo": "系统自动添加"
},
"serviceappointmenteditview": { "serviceappointmenteditview": {
"title": "服务活动编辑视图", "title": "服务活动编辑视图",
"caption": "服务活动", "caption": "服务活动",
...@@ -2079,6 +2109,16 @@ ...@@ -2079,6 +2109,16 @@
"viewtag": "e0705f7fd9afd10e3f38b1ff03edba8b", "viewtag": "e0705f7fd9afd10e3f38b1ff03edba8b",
"memo": "" "memo": ""
}, },
"contactusablegridview": {
"title": "联系人信息",
"caption": "联系人信息",
"viewtype": "DEGRIDVIEW",
"viewmodule": "Base",
"viewname": "ContactUsableGridView",
"viewfilename": "contact-usable-grid-view",
"viewtag": "e09386cdc26ec75d235aeecf7b59bbca",
"memo": "系统自动添加"
},
"invoicegridview": { "invoicegridview": {
"title": "发票信息", "title": "发票信息",
"caption": "发票", "caption": "发票",
......
...@@ -273,6 +273,10 @@ export default { ...@@ -273,6 +273,10 @@ export default {
caption: "联系人", caption: "联系人",
title: "联系人数据选择视图", title: "联系人数据选择视图",
}, },
usablegridview: {
caption: "联系人信息",
title: "联系人信息",
},
quickcreate: { quickcreate: {
caption: "联系人", caption: "联系人",
title: "快速新建", title: "快速新建",
......
...@@ -272,6 +272,10 @@ export default { ...@@ -272,6 +272,10 @@ export default {
caption: "联系人", caption: "联系人",
title: "联系人数据选择视图", title: "联系人数据选择视图",
}, },
usablegridview: {
caption: "联系人信息",
title: "联系人信息",
},
quickcreate: { quickcreate: {
caption: "联系人", caption: "联系人",
title: "快速新建", title: "快速新建",
......
...@@ -170,6 +170,10 @@ export default { ...@@ -170,6 +170,10 @@ export default {
caption: "潜在顾客", caption: "潜在顾客",
title: "潜在顾客编辑视图", title: "潜在顾客编辑视图",
}, },
statustabview: {
caption: "潜在顾客",
title: "潜在顾客状态分页视图",
},
info: { info: {
caption: "潜在顾客", caption: "潜在顾客",
title: "潜在顾客", title: "潜在顾客",
...@@ -182,6 +186,10 @@ export default { ...@@ -182,6 +186,10 @@ export default {
caption: "潜在顾客", caption: "潜在顾客",
title: "潜在顾客编辑视图", title: "潜在顾客编辑视图",
}, },
ongridview: {
caption: "潜在顾客信息",
title: "潜在顾客信息",
},
conleadgridview: { conleadgridview: {
caption: "潜在顾客信息", caption: "潜在顾客信息",
title: "潜在顾客信息", title: "潜在顾客信息",
...@@ -194,6 +202,10 @@ export default { ...@@ -194,6 +202,10 @@ export default {
caption: "潜在顾客", caption: "潜在顾客",
title: "潜在顾客选择表格视图", title: "潜在顾客选择表格视图",
}, },
excludedgridview: {
caption: "潜在顾客信息",
title: "潜在顾客信息",
},
info_company: { info_company: {
caption: "潜在顾客", caption: "潜在顾客",
title: "潜在顾客编辑视图", title: "潜在顾客编辑视图",
...@@ -600,4 +612,108 @@ export default { ...@@ -600,4 +612,108 @@ export default {
tip: "Copy {0}", tip: "Copy {0}",
}, },
}, },
ongridviewtoolbar_toolbar: {
tbitem1_openquickcreateview: {
caption: "新建",
tip: "新建",
},
tbitem2: {
caption: "-",
tip: "",
},
tbitem4: {
caption: "Edit",
tip: "Edit {0}",
},
tbitem6: {
caption: "Copy",
tip: "Copy {0}",
},
tbitem7: {
caption: "-",
tip: "",
},
tbitem8: {
caption: "Remove",
tip: "Remove {0}",
},
tbitem9: {
caption: "-",
tip: "",
},
tbitem13: {
caption: "Export",
tip: "Export {0} Data To Excel",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem14_lostorder: {
caption: "丢单",
tip: "丢单",
},
tbitem14_unable: {
caption: "无法联系",
tip: "无法联系",
},
tbitem14_nointerested: {
caption: "不再感兴趣",
tip: "不再感兴趣",
},
tbitem14_cancel: {
caption: "取消",
tip: "取消",
},
tbitem15: {
caption: "-",
tip: "",
},
tbitem19: {
caption: "Filter",
tip: "Filter",
},
},
excludedgridviewtoolbar_toolbar: {
tbitem1_openquickcreateview: {
caption: "新建",
tip: "新建",
},
tbitem2: {
caption: "-",
tip: "",
},
tbitem4: {
caption: "Edit",
tip: "Edit {0}",
},
tbitem6: {
caption: "Copy",
tip: "Copy {0}",
},
tbitem7: {
caption: "-",
tip: "",
},
tbitem8: {
caption: "Remove",
tip: "Remove {0}",
},
tbitem9: {
caption: "-",
tip: "",
},
tbitem13: {
caption: "Export",
tip: "Export {0} Data To Excel",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem19: {
caption: "Filter",
tip: "Filter",
},
},
}; };
\ No newline at end of file
...@@ -169,6 +169,10 @@ export default { ...@@ -169,6 +169,10 @@ export default {
caption: "潜在顾客", caption: "潜在顾客",
title: "潜在顾客编辑视图", title: "潜在顾客编辑视图",
}, },
statustabview: {
caption: "潜在顾客",
title: "潜在顾客状态分页视图",
},
info: { info: {
caption: "潜在顾客", caption: "潜在顾客",
title: "潜在顾客", title: "潜在顾客",
...@@ -181,6 +185,10 @@ export default { ...@@ -181,6 +185,10 @@ export default {
caption: "潜在顾客", caption: "潜在顾客",
title: "潜在顾客编辑视图", title: "潜在顾客编辑视图",
}, },
ongridview: {
caption: "潜在顾客信息",
title: "潜在顾客信息",
},
conleadgridview: { conleadgridview: {
caption: "潜在顾客信息", caption: "潜在顾客信息",
title: "潜在顾客信息", title: "潜在顾客信息",
...@@ -193,6 +201,10 @@ export default { ...@@ -193,6 +201,10 @@ export default {
caption: "潜在顾客", caption: "潜在顾客",
title: "潜在顾客选择表格视图", title: "潜在顾客选择表格视图",
}, },
excludedgridview: {
caption: "潜在顾客信息",
title: "潜在顾客信息",
},
info_company: { info_company: {
caption: "潜在顾客", caption: "潜在顾客",
title: "潜在顾客编辑视图", title: "潜在顾客编辑视图",
...@@ -599,4 +611,108 @@ export default { ...@@ -599,4 +611,108 @@ export default {
tip: "拷贝", tip: "拷贝",
}, },
}, },
ongridviewtoolbar_toolbar: {
tbitem1_openquickcreateview: {
caption: "新建",
tip: "新建",
},
tbitem2: {
caption: "-",
tip: "",
},
tbitem4: {
caption: "编辑",
tip: "编辑",
},
tbitem6: {
caption: "拷贝",
tip: "拷贝",
},
tbitem7: {
caption: "-",
tip: "",
},
tbitem8: {
caption: "删除",
tip: "删除",
},
tbitem9: {
caption: "-",
tip: "",
},
tbitem13: {
caption: "导出",
tip: "导出",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem14_lostorder: {
caption: "丢单",
tip: "丢单",
},
tbitem14_unable: {
caption: "无法联系",
tip: "无法联系",
},
tbitem14_nointerested: {
caption: "不再感兴趣",
tip: "不再感兴趣",
},
tbitem14_cancel: {
caption: "取消",
tip: "取消",
},
tbitem15: {
caption: "-",
tip: "",
},
tbitem19: {
caption: "过滤",
tip: "过滤",
},
},
excludedgridviewtoolbar_toolbar: {
tbitem1_openquickcreateview: {
caption: "新建",
tip: "新建",
},
tbitem2: {
caption: "-",
tip: "",
},
tbitem4: {
caption: "编辑",
tip: "编辑",
},
tbitem6: {
caption: "拷贝",
tip: "拷贝",
},
tbitem7: {
caption: "-",
tip: "",
},
tbitem8: {
caption: "删除",
tip: "删除",
},
tbitem9: {
caption: "-",
tip: "",
},
tbitem13: {
caption: "导出",
tip: "导出",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem19: {
caption: "过滤",
tip: "过滤",
},
},
}; };
\ No newline at end of file
...@@ -463,6 +463,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => { ...@@ -463,6 +463,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "AccountInfo_All", "viewname": "AccountInfo_All",
"viewtag": "31f2ad06ced735d250dfa5f309b5aea4" "viewtag": "31f2ad06ced735d250dfa5f309b5aea4"
}, },
"leadstatustabview": {
"title": "潜在顾客状态分页视图",
"caption": "潜在顾客",
"viewtype": "DETABEXPVIEW",
"viewmodule": "Sales",
"viewname": "LeadStatusTabView",
"viewtag": "3202f3f503424c7a2c549b2c5186dc36"
},
"leadinfo": { "leadinfo": {
"title": "潜在顾客", "title": "潜在顾客",
"caption": "潜在顾客", "caption": "潜在顾客",
...@@ -623,6 +631,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => { ...@@ -623,6 +631,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "LeadInfo_Market", "viewname": "LeadInfo_Market",
"viewtag": "49e5e89fb51fa9929925b532841b2549" "viewtag": "49e5e89fb51fa9929925b532841b2549"
}, },
"leadongridview": {
"title": "潜在顾客信息",
"caption": "潜在顾客信息",
"viewtype": "DEGRIDVIEW",
"viewmodule": "Sales",
"viewname": "LeadOnGridView",
"viewtag": "4ab71df980f390b6663b8912f64ede02"
},
"salesorderinfoview": { "salesorderinfoview": {
"title": "订单信息", "title": "订单信息",
"caption": "订单", "caption": "订单",
...@@ -1183,6 +1199,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => { ...@@ -1183,6 +1199,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ProductSalesLiteratureSalLitProGridView", "viewname": "ProductSalesLiteratureSalLitProGridView",
"viewtag": "96cc644d7d763e47f3644aed0d9850f0" "viewtag": "96cc644d7d763e47f3644aed0d9850f0"
}, },
"leadexcludedgridview": {
"title": "潜在顾客信息",
"caption": "潜在顾客信息",
"viewtype": "DEGRIDVIEW",
"viewmodule": "Sales",
"viewname": "LeadExcludedGridView",
"viewtag": "976e7a90095f22af96879a4f46b79b7c"
},
"serviceappointmenteditview": { "serviceappointmenteditview": {
"title": "服务活动编辑视图", "title": "服务活动编辑视图",
"caption": "服务活动", "caption": "服务活动",
...@@ -1671,6 +1695,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => { ...@@ -1671,6 +1695,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "LeadQualification", "viewname": "LeadQualification",
"viewtag": "e0705f7fd9afd10e3f38b1ff03edba8b" "viewtag": "e0705f7fd9afd10e3f38b1ff03edba8b"
}, },
"contactusablegridview": {
"title": "联系人信息",
"caption": "联系人信息",
"viewtype": "DEGRIDVIEW",
"viewmodule": "Base",
"viewname": "ContactUsableGridView",
"viewtag": "e09386cdc26ec75d235aeecf7b59bbca"
},
"invoicegridview": { "invoicegridview": {
"title": "发票信息", "title": "发票信息",
"caption": "发票", "caption": "发票",
......
<studio-view-style2 viewName="contactstopgridview" viewTitle="联系人信息" class='degridview contact-stop-grid-view'>
<i-input slot="quickSearch" v-show="!isExpandSearchForm" v-model="query" search @on-search="onSearch($event)"/>
<template slot="toolbar">
<view-toolbar mode="STYLE2" :model="toolBarModels" @item-click="toolbar_click($event)"/> </template>
<template slot="searchForm">
<view_searchform
:viewState="viewState"
:viewparams="viewparams"
:context="context"
:showBusyIndicator="true"
v-show="isExpandSearchForm"
loaddraftAction="FilterGetDraft"
loadAction="FilterGet"
name="searchform"
ref='searchform'
@save="searchform_save($event)"
@search="searchform_search($event)"
@load="searchform_load($event)"
@closeview="closeView($event)">
</view_searchform>
</template>
<view_grid
:viewState="viewState"
:viewparams="viewparams"
:context="context"
:isSingleSelect="isGridSingleSelect"
:showBusyIndicator="true"
:isOpenEdit="false"
:gridRowActiveMode="gridRowActiveMode"
@save="onSave"
updateAction=""
removeAction="Remove"
loaddraftAction=""
loadAction=""
createAction=""
fetchAction="FetchStop"
:newdata="newdata"
:opendata="opendata"
name="grid"
ref='grid'
@selectionchange="grid_selectionchange($event)"
@beforeload="grid_beforeload($event)"
@rowdblclick="grid_rowdblclick($event)"
@remove="grid_remove($event)"
@load="grid_load($event)"
@closeview="closeView($event)">
</view_grid>
</studio-view-style2>
\ No newline at end of file
<template src="./contact-stop-grid-view.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { ContactStopGridViewBase } from './contact-stop-grid-view-base';
import view_grid from '@widgets/contact/main-grid/main-grid.vue';
import view_searchform from '@widgets/contact/default-searchform/default-searchform.vue';
/**
* 联系人信息视图
*
* @export
* @class ContactStopGridView
* @extends {ContactStopGridViewBase}
*/
@Component({
components: {
view_grid,
view_searchform,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
vm.$appService.navHistory.setViewTag(vm.viewtag, to);
vm.$appService.navHistory.setViewContext(vm.context, to);
});
}
})
@VueLifeCycleProcessing()
export default class ContactStopGridView extends ContactStopGridViewBase { }
</script>
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 ContactTabExpViewBase
* @extends {TabExpViewBase}
*/
export class ContactTabExpViewBase extends TabExpViewBase {
/**
* 实体服务对象
*
* @type {ContactService}
* @memberof ContactTabExpViewBase
*/
protected appEntityService: ContactService = new ContactService;
/**
* 计数器服务对象集合
*
* @protected
* @type {Array<*>}
* @memberof ContactTabExpViewBase
*/
protected counterServiceArray: Array<any> = [];
/**
* 视图模型数据
*
* @protected
* @type {*}
* @memberof ContactTabExpViewBase
*/
protected model: any = {
srfCaption: 'entities.contact.views.tabexpview.caption',
srfTitle: 'entities.contact.views.tabexpview.title',
srfSubTitle: 'entities.contact.views.tabexpview.subtitle',
dataInfo: ''
}
/**
* 容器模型
*
* @protected
* @type {*}
* @memberof ContactTabExpViewBase
*/
protected containerModel: any = {
view_tabexppanel: { name: 'tabexppanel', type: 'TABEXPPANEL' },
};
/**
* 视图唯一标识
*
* @protected
* @type {string}
* @memberof ViewBase
*/
protected viewtag: string = '0e4d8b949764a2c40c2b93261aed6fd8';
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof ContactTabExpViewBase
*/
public engine: TabExpViewEngine = new TabExpViewEngine();
/**
* 引擎初始化
*
* @public
* @memberof ContactTabExpViewBase
*/
public engineInit(): void {
this.engine.init({
view: this,
keyPSDEField: 'contact',
majorPSDEField: 'fullname',
isLoadDefault: true,
});
}
/**
* 加载模型
*
* @protected
* @memberof ContactTabExpViewBase
*/
protected async loadModel(): Promise<any> {
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}` });
this.$appService.navHistory.setCaption({ route: this.$route, info: this.model.dataInfo });
}
})
}
}
}
\ No newline at end of file
<studio-view-style2 viewName="contacttabexpview" viewTitle="联系人状态分页视图" class='detabexpview contact-tab-exp-view'>
<view_tabexppanel
:viewState="viewState"
:viewparams="viewparams"
:context="context"
name="tabexppanel"
ref='tabexppanel'
@closeview="closeView($event)">
</view_tabexppanel>
</studio-view-style2>
\ No newline at end of file
<template src="./contact-tab-exp-view.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { ContactTabExpViewBase } from './contact-tab-exp-view-base';
import view_tabexppanel from '@widgets/contact/tab-exp-viewtabexppanel-tabexppanel/tab-exp-viewtabexppanel-tabexppanel.vue';
/**
* 联系人状态分页视图视图
*
* @export
* @class ContactTabExpView
* @extends {ContactTabExpViewBase}
*/
@Component({
components: {
view_tabexppanel,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
vm.$appService.navHistory.setViewTag(vm.viewtag, to);
vm.$appService.navHistory.setViewContext(vm.context, to);
});
}
})
@VueLifeCycleProcessing()
export default class ContactTabExpView extends ContactTabExpViewBase { }
</script>
<studio-view-style2 viewName="contactusablegridview" viewTitle="联系人信息" class='degridview contact-usable-grid-view'>
<i-input slot="quickSearch" v-show="!isExpandSearchForm" v-model="query" search @on-search="onSearch($event)"/>
<template slot="toolbar">
<view-toolbar mode="STYLE2" :model="toolBarModels" @item-click="toolbar_click($event)"/> </template>
<template slot="searchForm">
<view_searchform
:viewState="viewState"
:viewparams="viewparams"
:context="context"
:showBusyIndicator="true"
v-show="isExpandSearchForm"
loaddraftAction="FilterGetDraft"
loadAction="FilterGet"
name="searchform"
ref='searchform'
@save="searchform_save($event)"
@search="searchform_search($event)"
@load="searchform_load($event)"
@closeview="closeView($event)">
</view_searchform>
</template>
<view_grid
:viewState="viewState"
:viewparams="viewparams"
:context="context"
:isSingleSelect="isGridSingleSelect"
:showBusyIndicator="true"
:isOpenEdit="false"
:gridRowActiveMode="gridRowActiveMode"
@save="onSave"
updateAction=""
removeAction="Remove"
loaddraftAction=""
loadAction=""
createAction=""
fetchAction="FetchUsable"
:newdata="newdata"
:opendata="opendata"
name="grid"
ref='grid'
@selectionchange="grid_selectionchange($event)"
@beforeload="grid_beforeload($event)"
@rowdblclick="grid_rowdblclick($event)"
@remove="grid_remove($event)"
@load="grid_load($event)"
@closeview="closeView($event)">
</view_grid>
</studio-view-style2>
\ No newline at end of file
<template src="./contact-usable-grid-view.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { ContactUsableGridViewBase } from './contact-usable-grid-view-base';
import view_grid from '@widgets/contact/main-grid/main-grid.vue';
import view_searchform from '@widgets/contact/default-searchform/default-searchform.vue';
/**
* 联系人信息视图
*
* @export
* @class ContactUsableGridView
* @extends {ContactUsableGridViewBase}
*/
@Component({
components: {
view_grid,
view_searchform,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
vm.$appService.navHistory.setViewTag(vm.viewtag, to);
vm.$appService.navHistory.setViewContext(vm.context, to);
});
}
})
@VueLifeCycleProcessing()
export default class ContactUsableGridView extends ContactUsableGridViewBase { }
</script>
<studio-view-style2 viewName="leadgridview" viewTitle="潜在顾客信息" class='degridview lead-grid-view'> <studio-view-style2 viewName="leadgridview" viewTitle="潜在顾客信息" class='degridview lead-grid-view'>
<template slot='title'>
<span class='caption-info'>{{$t(model.srfTitle)}}</span>
</template>
<i-input slot="quickSearch" v-show="!isExpandSearchForm" v-model="query" search @on-search="onSearch($event)"/> <i-input slot="quickSearch" v-show="!isExpandSearchForm" v-model="query" search @on-search="onSearch($event)"/>
<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>
......
<studio-view-style2 viewName="leadongridview" viewTitle="潜在顾客信息" class='degridview lead-on-grid-view'>
<i-input slot="quickSearch" v-show="!isExpandSearchForm" v-model="query" search @on-search="onSearch($event)"/>
<template slot="toolbar">
<view-toolbar mode="STYLE2" :model="toolBarModels" @item-click="toolbar_click($event)"/> </template>
<template slot="searchForm">
<view_searchform
:viewState="viewState"
:viewparams="viewparams"
:context="context"
:showBusyIndicator="true"
v-show="isExpandSearchForm"
loaddraftAction="FilterGetDraft"
loadAction="FilterGet"
name="searchform"
ref='searchform'
@save="searchform_save($event)"
@search="searchform_search($event)"
@load="searchform_load($event)"
@closeview="closeView($event)">
</view_searchform>
</template>
<view_grid
:viewState="viewState"
:viewparams="viewparams"
:context="context"
:isSingleSelect="isGridSingleSelect"
:showBusyIndicator="true"
:isOpenEdit="false"
:gridRowActiveMode="gridRowActiveMode"
@save="onSave"
updateAction=""
removeAction="Remove"
loaddraftAction=""
loadAction=""
createAction=""
fetchAction="FetchOn"
:newdata="newdata"
:opendata="opendata"
name="grid"
ref='grid'
@selectionchange="grid_selectionchange($event)"
@beforeload="grid_beforeload($event)"
@rowdblclick="grid_rowdblclick($event)"
@remove="grid_remove($event)"
@load="grid_load($event)"
@closeview="closeView($event)">
</view_grid>
</studio-view-style2>
\ No newline at end of file
<template src="./lead-on-grid-view.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { LeadOnGridViewBase } from './lead-on-grid-view-base';
import view_grid from '@widgets/lead/main-grid/main-grid.vue';
import view_searchform from '@widgets/lead/default-searchform/default-searchform.vue';
/**
* 潜在顾客信息视图
*
* @export
* @class LeadOnGridView
* @extends {LeadOnGridViewBase}
*/
@Component({
components: {
view_grid,
view_searchform,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
vm.$appService.navHistory.setViewTag(vm.viewtag, to);
vm.$appService.navHistory.setViewContext(vm.context, to);
});
}
})
@VueLifeCycleProcessing()
export default class LeadOnGridView extends LeadOnGridViewBase { }
</script>
import { Subject } from 'rxjs';
import { TabExpViewBase } from '@/studio-core';
import LeadService from '@/service/lead/lead-service';
import TabExpViewEngine from '@engine/view/tab-exp-view-engine';
/**
* 潜在顾客状态分页视图视图基类
*
* @export
* @class LeadStatusTabViewBase
* @extends {TabExpViewBase}
*/
export class LeadStatusTabViewBase extends TabExpViewBase {
/**
* 实体服务对象
*
* @type {LeadService}
* @memberof LeadStatusTabViewBase
*/
protected appEntityService: LeadService = new LeadService;
/**
* 计数器服务对象集合
*
* @protected
* @type {Array<*>}
* @memberof LeadStatusTabViewBase
*/
protected counterServiceArray: Array<any> = [];
/**
* 视图模型数据
*
* @protected
* @type {*}
* @memberof LeadStatusTabViewBase
*/
protected model: any = {
srfCaption: 'entities.lead.views.statustabview.caption',
srfTitle: 'entities.lead.views.statustabview.title',
srfSubTitle: 'entities.lead.views.statustabview.subtitle',
dataInfo: ''
}
/**
* 容器模型
*
* @protected
* @type {*}
* @memberof LeadStatusTabViewBase
*/
protected containerModel: any = {
view_tabexppanel: { name: 'tabexppanel', type: 'TABEXPPANEL' },
};
/**
* 视图唯一标识
*
* @protected
* @type {string}
* @memberof ViewBase
*/
protected viewtag: string = '3202f3f503424c7a2c549b2c5186dc36';
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof LeadStatusTabViewBase
*/
public engine: TabExpViewEngine = new TabExpViewEngine();
/**
* 引擎初始化
*
* @public
* @memberof LeadStatusTabViewBase
*/
public engineInit(): void {
this.engine.init({
view: this,
keyPSDEField: 'lead',
majorPSDEField: 'fullname',
isLoadDefault: true,
});
}
/**
* 加载模型
*
* @protected
* @memberof LeadStatusTabViewBase
*/
protected async loadModel(): Promise<any> {
if(this.context.lead){
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}` });
this.$appService.navHistory.setCaption({ route: this.$route, info: this.model.dataInfo });
}
})
}
}
}
\ No newline at end of file
<studio-view-style2 viewName="leadstatustabview" viewTitle="潜在顾客状态分页视图" class='detabexpview lead-status-tab-view'>
<view_tabexppanel
:viewState="viewState"
:viewparams="viewparams"
:context="context"
name="tabexppanel"
ref='tabexppanel'
@closeview="closeView($event)">
</view_tabexppanel>
</studio-view-style2>
\ No newline at end of file
<template src="./lead-status-tab-view.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { LeadStatusTabViewBase } from './lead-status-tab-view-base';
import view_tabexppanel from '@widgets/lead/status-tab-viewtabexppanel-tabexppanel/status-tab-viewtabexppanel-tabexppanel.vue';
/**
* 潜在顾客状态分页视图视图
*
* @export
* @class LeadStatusTabView
* @extends {LeadStatusTabViewBase}
*/
@Component({
components: {
view_tabexppanel,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
vm.$appService.navHistory.setViewTag(vm.viewtag, to);
vm.$appService.navHistory.setViewContext(vm.context, to);
});
}
})
@VueLifeCycleProcessing()
export default class LeadStatusTabView extends LeadStatusTabViewBase { }
</script>
...@@ -41,6 +41,7 @@ export const PageComponents = { ...@@ -41,6 +41,7 @@ export const PageComponents = {
Vue.component('sales-literature-quick-create-view', () => import('@pages/sales/sales-literature-quick-create-view/sales-literature-quick-create-view.vue')); Vue.component('sales-literature-quick-create-view', () => import('@pages/sales/sales-literature-quick-create-view/sales-literature-quick-create-view.vue'));
Vue.component('subject-pickup-grid-view', () => import('@pages/base/subject-pickup-grid-view/subject-pickup-grid-view.vue')); Vue.component('subject-pickup-grid-view', () => import('@pages/base/subject-pickup-grid-view/subject-pickup-grid-view.vue'));
Vue.component('quote-info', () => import('@pages/sales/quote-info/quote-info.vue')); Vue.component('quote-info', () => import('@pages/sales/quote-info/quote-info.vue'));
Vue.component('contact-usable-grid-view', () => import('@pages/base/contact-usable-grid-view/contact-usable-grid-view.vue'));
Vue.component('product-info-view', () => import('@pages/product/product-info-view/product-info-view.vue')); Vue.component('product-info-view', () => import('@pages/product/product-info-view/product-info-view.vue'));
Vue.component('competitor-summary', () => import('@pages/sales/competitor-summary/competitor-summary.vue')); Vue.component('competitor-summary', () => import('@pages/sales/competitor-summary/competitor-summary.vue'));
Vue.component('goal-edit-child-goal-view', () => import('@pages/sales/goal-edit-child-goal-view/goal-edit-child-goal-view.vue')); Vue.component('goal-edit-child-goal-view', () => import('@pages/sales/goal-edit-child-goal-view/goal-edit-child-goal-view.vue'));
...@@ -68,6 +69,7 @@ export const PageComponents = { ...@@ -68,6 +69,7 @@ export const PageComponents = {
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'));
Vue.component('metric-pickup-view', () => import('@pages/base/metric-pickup-view/metric-pickup-view.vue')); Vue.component('metric-pickup-view', () => import('@pages/base/metric-pickup-view/metric-pickup-view.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('lead-status-tab-view', () => import('@pages/sales/lead-status-tab-view/lead-status-tab-view.vue'));
Vue.component('phone-call-edit-view', () => import('@pages/base/phone-call-edit-view/phone-call-edit-view.vue')); Vue.component('phone-call-edit-view', () => import('@pages/base/phone-call-edit-view/phone-call-edit-view.vue'));
Vue.component('sales-order-quick-create-view', () => import('@pages/sales/sales-order-quick-create-view/sales-order-quick-create-view.vue')); Vue.component('sales-order-quick-create-view', () => import('@pages/sales/sales-order-quick-create-view/sales-order-quick-create-view.vue'));
Vue.component('lead-quick-create', () => import('@pages/sales/lead-quick-create/lead-quick-create.vue')); Vue.component('lead-quick-create', () => import('@pages/sales/lead-quick-create/lead-quick-create.vue'));
...@@ -83,6 +85,7 @@ export const PageComponents = { ...@@ -83,6 +85,7 @@ export const PageComponents = {
Vue.component('sales-literature-info-view', () => import('@pages/sales/sales-literature-info-view/sales-literature-info-view.vue')); Vue.component('sales-literature-info-view', () => import('@pages/sales/sales-literature-info-view/sales-literature-info-view.vue'));
Vue.component('ibiz-list-quick-create', () => import('@pages/marketing/ibiz-list-quick-create/ibiz-list-quick-create.vue')); Vue.component('ibiz-list-quick-create', () => import('@pages/marketing/ibiz-list-quick-create/ibiz-list-quick-create.vue'));
Vue.component('opportunity-product-opp-opp-pro-grid-view', () => import('@pages/sales/opportunity-product-opp-opp-pro-grid-view/opportunity-product-opp-opp-pro-grid-view.vue')); Vue.component('opportunity-product-opp-opp-pro-grid-view', () => import('@pages/sales/opportunity-product-opp-opp-pro-grid-view/opportunity-product-opp-opp-pro-grid-view.vue'));
Vue.component('contact-tab-exp-view', () => import('@pages/base/contact-tab-exp-view/contact-tab-exp-view.vue'));
Vue.component('product-association-grid-view', () => import('@pages/product/product-association-grid-view/product-association-grid-view.vue')); Vue.component('product-association-grid-view', () => import('@pages/product/product-association-grid-view/product-association-grid-view.vue'));
Vue.component('appointment-quick-create', () => import('@pages/base/appointment-quick-create/appointment-quick-create.vue')); Vue.component('appointment-quick-create', () => import('@pages/base/appointment-quick-create/appointment-quick-create.vue'));
Vue.component('quote-detail-quo-detail-grid-view', () => import('@pages/sales/quote-detail-quo-detail-grid-view/quote-detail-quo-detail-grid-view.vue')); Vue.component('quote-detail-quo-detail-grid-view', () => import('@pages/sales/quote-detail-quo-detail-grid-view/quote-detail-quo-detail-grid-view.vue'));
...@@ -117,8 +120,8 @@ export const PageComponents = { ...@@ -117,8 +120,8 @@ export const PageComponents = {
Vue.component('entitlement-pickup-grid-view', () => import('@pages/service/entitlement-pickup-grid-view/entitlement-pickup-grid-view.vue')); Vue.component('entitlement-pickup-grid-view', () => import('@pages/service/entitlement-pickup-grid-view/entitlement-pickup-grid-view.vue'));
Vue.component('opportunity-info', () => import('@pages/sales/opportunity-info/opportunity-info.vue')); Vue.component('opportunity-info', () => import('@pages/sales/opportunity-info/opportunity-info.vue'));
Vue.component('transaction-currency-pickup-grid-view', () => import('@pages/base/transaction-currency-pickup-grid-view/transaction-currency-pickup-grid-view.vue')); Vue.component('transaction-currency-pickup-grid-view', () => import('@pages/base/transaction-currency-pickup-grid-view/transaction-currency-pickup-grid-view.vue'));
Vue.component('service-appointment-edit-view', () => import('@pages/service/service-appointment-edit-view/service-appointment-edit-view.vue'));
Vue.component('contact-grid-view', () => import('@pages/base/contact-grid-view/contact-grid-view.vue')); Vue.component('contact-grid-view', () => import('@pages/base/contact-grid-view/contact-grid-view.vue'));
Vue.component('service-appointment-edit-view', () => import('@pages/service/service-appointment-edit-view/service-appointment-edit-view.vue'));
Vue.component('product-substitute-edit-view', () => import('@pages/product/product-substitute-edit-view/product-substitute-edit-view.vue')); Vue.component('product-substitute-edit-view', () => import('@pages/product/product-substitute-edit-view/product-substitute-edit-view.vue'));
Vue.component('campaign-activity-by-parent-key', () => import('@pages/marketing/campaign-activity-by-parent-key/campaign-activity-by-parent-key.vue')); Vue.component('campaign-activity-by-parent-key', () => import('@pages/marketing/campaign-activity-by-parent-key/campaign-activity-by-parent-key.vue'));
Vue.component('activity-pointer-grid-view', () => import('@pages/base/activity-pointer-grid-view/activity-pointer-grid-view.vue')); Vue.component('activity-pointer-grid-view', () => import('@pages/base/activity-pointer-grid-view/activity-pointer-grid-view.vue'));
...@@ -138,7 +141,9 @@ export const PageComponents = { ...@@ -138,7 +141,9 @@ export const PageComponents = {
Vue.component('list-account-quick-create-by-list', () => import('@pages/marketing/list-account-quick-create-by-list/list-account-quick-create-by-list.vue')); Vue.component('list-account-quick-create-by-list', () => import('@pages/marketing/list-account-quick-create-by-list/list-account-quick-create-by-list.vue'));
Vue.component('campaign-list-edit-view', () => import('@pages/marketing/campaign-list-edit-view/campaign-list-edit-view.vue')); Vue.component('campaign-list-edit-view', () => import('@pages/marketing/campaign-list-edit-view/campaign-list-edit-view.vue'));
Vue.component('competitor-info', () => import('@pages/sales/competitor-info/competitor-info.vue')); Vue.component('competitor-info', () => import('@pages/sales/competitor-info/competitor-info.vue'));
Vue.component('lead-excluded-grid-view', () => import('@pages/sales/lead-excluded-grid-view/lead-excluded-grid-view.vue'));
Vue.component('account-pickup-grid-view', () => import('@pages/base/account-pickup-grid-view/account-pickup-grid-view.vue')); Vue.component('account-pickup-grid-view', () => import('@pages/base/account-pickup-grid-view/account-pickup-grid-view.vue'));
Vue.component('lead-on-grid-view', () => import('@pages/sales/lead-on-grid-view/lead-on-grid-view.vue'));
Vue.component('lead-info', () => import('@pages/sales/lead-info/lead-info.vue')); Vue.component('lead-info', () => import('@pages/sales/lead-info/lead-info.vue'));
Vue.component('product-pickup-grid-view', () => import('@pages/product/product-pickup-grid-view/product-pickup-grid-view.vue')); Vue.component('product-pickup-grid-view', () => import('@pages/product/product-pickup-grid-view/product-pickup-grid-view.vue'));
Vue.component('list-lead-quick-create-by-list', () => import('@pages/marketing/list-lead-quick-create-by-list/list-lead-quick-create-by-list.vue')); Vue.component('list-lead-quick-create-by-list', () => import('@pages/marketing/list-lead-quick-create-by-list/list-lead-quick-create-by-list.vue'));
...@@ -148,6 +153,7 @@ export const PageComponents = { ...@@ -148,6 +153,7 @@ export const PageComponents = {
Vue.component('account-info-all', () => import('@pages/base/account-info-all/account-info-all.vue')); Vue.component('account-info-all', () => import('@pages/base/account-info-all/account-info-all.vue'));
Vue.component('opportunity-competitor-edit-view', () => import('@pages/sales/opportunity-competitor-edit-view/opportunity-competitor-edit-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('incident-info-incident-view', () => import('@pages/service/incident-info-incident-view/incident-info-incident-view.vue'));
Vue.component('contact-stop-grid-view', () => import('@pages/base/contact-stop-grid-view/contact-stop-grid-view.vue'));
Vue.component('competitor-sales-literature-sal-lit-comp-edit-view', () => import('@pages/sales/competitor-sales-literature-sal-lit-comp-edit-view/competitor-sales-literature-sal-lit-comp-edit-view.vue')); Vue.component('competitor-sales-literature-sal-lit-comp-edit-view', () => import('@pages/sales/competitor-sales-literature-sal-lit-comp-edit-view/competitor-sales-literature-sal-lit-comp-edit-view.vue'));
Vue.component('account-usable-grid-view', () => import('@pages/base/account-usable-grid-view/account-usable-grid-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')); Vue.component('sales-order-info-soview', () => import('@pages/sales/sales-order-info-soview/sales-order-info-soview.vue'));
......
...@@ -120,6 +120,18 @@ export const viewstate: any = { ...@@ -120,6 +120,18 @@ export const viewstate: any = {
'190c4bc310209f379ac5d63277dac0a5', '190c4bc310209f379ac5d63277dac0a5',
], ],
}, },
{
viewtag: '0e4d8b949764a2c40c2b93261aed6fd8',
viewmodule: 'Base',
viewname: 'ContactTabExpView',
viewaction: '',
viewdatachange: false,
refviews: [
'64d89dce67b0136bef31d6ff25eeb89a',
'0326a502bb574cddc41da4323786dcb5',
'e09386cdc26ec75d235aeecf7b59bbca',
],
},
{ {
viewtag: '0f4dc7da727ad15a2cad62fe966a633c', viewtag: '0f4dc7da727ad15a2cad62fe966a633c',
viewmodule: 'Sales', viewmodule: 'Sales',
...@@ -486,6 +498,18 @@ export const viewstate: any = { ...@@ -486,6 +498,18 @@ export const viewstate: any = {
'fcdb236b65d78c4a8ae64e74f9483a63', 'fcdb236b65d78c4a8ae64e74f9483a63',
], ],
}, },
{
viewtag: '3202f3f503424c7a2c549b2c5186dc36',
viewmodule: 'Sales',
viewname: 'LeadStatusTabView',
viewaction: '',
viewdatachange: false,
refviews: [
'4ab71df980f390b6663b8912f64ede02',
'15d12c1173fcb6e742b6a6d92cbc53ed',
'976e7a90095f22af96879a4f46b79b7c',
],
},
{ {
viewtag: '35728a12ceecb647982051842853547c', viewtag: '35728a12ceecb647982051842853547c',
viewmodule: 'Sales', viewmodule: 'Sales',
...@@ -672,6 +696,17 @@ export const viewstate: any = { ...@@ -672,6 +696,17 @@ export const viewstate: any = {
refviews: [ refviews: [
], ],
}, },
{
viewtag: '4ab71df980f390b6663b8912f64ede02',
viewmodule: 'Sales',
viewname: 'LeadOnGridView',
viewaction: '',
viewdatachange: false,
refviews: [
'35728a12ceecb647982051842853547c',
'4745ca10fe4421ea043cb9ace1840224',
],
},
{ {
viewtag: '4f45c8798db273fefeef7c02541fab6c', viewtag: '4f45c8798db273fefeef7c02541fab6c',
viewmodule: 'Sales', viewmodule: 'Sales',
...@@ -823,6 +858,17 @@ export const viewstate: any = { ...@@ -823,6 +858,17 @@ export const viewstate: any = {
'521acee07c15c72e914d3ca538cb26fc', '521acee07c15c72e914d3ca538cb26fc',
], ],
}, },
{
viewtag: '64d89dce67b0136bef31d6ff25eeb89a',
viewmodule: 'Base',
viewname: 'ContactStopGridView',
viewaction: '',
viewdatachange: false,
refviews: [
'e404dc93e70d6284d4e1a083017625ed',
'fcdb236b65d78c4a8ae64e74f9483a63',
],
},
{ {
viewtag: '661e0045037121d27f78b71049dc0d8a', viewtag: '661e0045037121d27f78b71049dc0d8a',
viewmodule: 'Marketing', viewmodule: 'Marketing',
...@@ -1111,15 +1157,15 @@ export const viewstate: any = { ...@@ -1111,15 +1157,15 @@ export const viewstate: any = {
viewdatachange: false, viewdatachange: false,
refviews: [ refviews: [
'07c5035fbb847e889f3dbb9657723f30', '07c5035fbb847e889f3dbb9657723f30',
'0e4d8b949764a2c40c2b93261aed6fd8',
'24a93674ec4c976c08902a3e95421ca6', '24a93674ec4c976c08902a3e95421ca6',
'b38bc0256ecd5be1a58a3c2210a98d05', 'b38bc0256ecd5be1a58a3c2210a98d05',
'25bf5f8c2ebd1ce2be6d06717ed08a96', '25bf5f8c2ebd1ce2be6d06717ed08a96',
'5f8f689d5dccc3db6d2b74a24a8b24ef', '5f8f689d5dccc3db6d2b74a24a8b24ef',
'dfc0051ae4813115e03f3d095f8cd7d3', 'dfc0051ae4813115e03f3d095f8cd7d3',
'3202f3f503424c7a2c549b2c5186dc36',
'2f0540af5db76052cee0e8e91f0204c4', '2f0540af5db76052cee0e8e91f0204c4',
'631a4276161c551802f3aaf4bd7e607c', '631a4276161c551802f3aaf4bd7e607c',
'15d12c1173fcb6e742b6a6d92cbc53ed',
'0326a502bb574cddc41da4323786dcb5',
'90b48a107932f432e0dde42791a51887', '90b48a107932f432e0dde42791a51887',
'9af073dea1ea05903d52e8bdc5a03dd5', '9af073dea1ea05903d52e8bdc5a03dd5',
'45fdc8ee4d1401d2d625e80177395ddc', '45fdc8ee4d1401d2d625e80177395ddc',
...@@ -1797,6 +1843,17 @@ export const viewstate: any = { ...@@ -1797,6 +1843,17 @@ export const viewstate: any = {
'29bfcd628ab25e297248ff0524d12908', '29bfcd628ab25e297248ff0524d12908',
], ],
}, },
{
viewtag: 'e09386cdc26ec75d235aeecf7b59bbca',
viewmodule: 'Base',
viewname: 'ContactUsableGridView',
viewaction: '',
viewdatachange: false,
refviews: [
'e404dc93e70d6284d4e1a083017625ed',
'fcdb236b65d78c4a8ae64e74f9483a63',
],
},
{ {
viewtag: 'e0aef8c0d1f1ae28f628a0541b118961', viewtag: 'e0aef8c0d1f1ae28f628a0541b118961',
viewmodule: 'Finance', viewmodule: 'Finance',
......
...@@ -96,6 +96,7 @@ export default class ContactUIServiceBase extends UIService { ...@@ -96,6 +96,7 @@ export default class ContactUIServiceBase extends UIService {
this.allViewMap.set('EDITVIEW:',{viewname:'editview',srfappde:'contacts'}); this.allViewMap.set('EDITVIEW:',{viewname:'editview',srfappde:'contacts'});
this.allViewMap.set(':',{viewname:'editbook',srfappde:'contacts'}); this.allViewMap.set(':',{viewname:'editbook',srfappde:'contacts'});
this.allViewMap.set('PICKUPVIEW:',{viewname:'pickupview',srfappde:'contacts'}); this.allViewMap.set('PICKUPVIEW:',{viewname:'pickupview',srfappde:'contacts'});
this.allViewMap.set(':',{viewname:'usablegridview',srfappde:'contacts'});
this.allViewMap.set(':',{viewname:'quickcreate',srfappde:'contacts'}); this.allViewMap.set(':',{viewname:'quickcreate',srfappde:'contacts'});
this.allViewMap.set(':',{viewname:'editperson',srfappde:'contacts'}); this.allViewMap.set(':',{viewname:'editperson',srfappde:'contacts'});
this.allViewMap.set(':',{viewname:'info',srfappde:'contacts'}); this.allViewMap.set(':',{viewname:'info',srfappde:'contacts'});
......
...@@ -327,7 +327,7 @@ export class CentralBase extends Vue { ...@@ -327,7 +327,7 @@ export class CentralBase extends Vue {
const deResParameters: any[] = []; const deResParameters: any[] = [];
const parameters: any[] = [ const parameters: any[] = [
{ pathName: 'leads', parameterName: 'lead' }, { pathName: 'leads', parameterName: 'lead' },
{ pathName: 'gridview', parameterName: 'gridview' }, { pathName: 'statustabview', parameterName: 'statustabview' },
]; ];
const path: string = this.$viewTool.buildUpRoutePath(this.$route, {}, deResParameters, parameters, [], viewparam); const path: string = this.$viewTool.buildUpRoutePath(this.$route, {}, deResParameters, parameters, [], viewparam);
if(Object.is(this.$route.fullPath,path)){ if(Object.is(this.$route.fullPath,path)){
...@@ -418,7 +418,7 @@ export class CentralBase extends Vue { ...@@ -418,7 +418,7 @@ export class CentralBase extends Vue {
const deResParameters: any[] = []; const deResParameters: any[] = [];
const parameters: any[] = [ const parameters: any[] = [
{ pathName: 'contacts', parameterName: 'contact' }, { pathName: 'contacts', parameterName: 'contact' },
{ pathName: 'gridview', parameterName: 'gridview' }, { pathName: 'tabexpview', parameterName: 'tabexpview' },
]; ];
const path: string = this.$viewTool.buildUpRoutePath(this.$route, {}, deResParameters, parameters, [], viewparam); const path: string = this.$viewTool.buildUpRoutePath(this.$route, {}, deResParameters, parameters, [], viewparam);
if(Object.is(this.$route.fullPath,path)){ if(Object.is(this.$route.fullPath,path)){
......
...@@ -286,7 +286,7 @@ export default class CentralModel { ...@@ -286,7 +286,7 @@ export default class CentralModel {
textcls: '', textcls: '',
appfunctag: 'Auto7', appfunctag: 'Auto7',
appfuncyype: 'APPVIEW', appfuncyype: 'APPVIEW',
viewname: 'contact-grid-view', viewname: 'contact-tab-exp-view',
resourcetag: '', resourcetag: '',
} }
, ,
...@@ -328,7 +328,7 @@ export default class CentralModel { ...@@ -328,7 +328,7 @@ export default class CentralModel {
textcls: '', textcls: '',
appfunctag: 'Auto14', appfunctag: 'Auto14',
appfuncyype: 'APPVIEW', appfuncyype: 'APPVIEW',
viewname: 'lead-grid-view', viewname: 'lead-status-tab-view',
resourcetag: '', resourcetag: '',
} }
, ,
...@@ -974,12 +974,12 @@ export default class CentralModel { ...@@ -974,12 +974,12 @@ export default class CentralModel {
appfunctag: 'Auto14', appfunctag: 'Auto14',
appfuncyype: 'APPVIEW', appfuncyype: 'APPVIEW',
openmode: '', openmode: '',
codename: 'leadgridview', codename: 'leadstatustabview',
deResParameters: [], deResParameters: [],
routepath: '/central/:central?/leads/:lead?/gridview/:gridview?', routepath: '/central/:central?/leads/:lead?/statustabview/:statustabview?',
parameters: [ parameters: [
{ pathName: 'leads', parameterName: 'lead' }, { pathName: 'leads', parameterName: 'lead' },
{ pathName: 'gridview', parameterName: 'gridview' }, { pathName: 'statustabview', parameterName: 'statustabview' },
], ],
}, },
{ {
...@@ -1021,12 +1021,12 @@ export default class CentralModel { ...@@ -1021,12 +1021,12 @@ export default class CentralModel {
appfunctag: 'Auto7', appfunctag: 'Auto7',
appfuncyype: 'APPVIEW', appfuncyype: 'APPVIEW',
openmode: '', openmode: '',
codename: 'contactgridview', codename: 'contacttabexpview',
deResParameters: [], deResParameters: [],
routepath: '/central/:central?/contacts/:contact?/gridview/:gridview?', routepath: '/central/:central?/contacts/:contact?/tabexpview/:tabexpview?',
parameters: [ parameters: [
{ pathName: 'contacts', parameterName: 'contact' }, { pathName: 'contacts', parameterName: 'contact' },
{ pathName: 'gridview', parameterName: 'gridview' }, { pathName: 'tabexpview', parameterName: 'tabexpview' },
], ],
}, },
{ {
......
import { Prop, Provide, Emit, Model } from 'vue-property-decorator';
import { Subject, Subscription } from 'rxjs';
import { Watch, TabExpPanelControlBase } from '@/studio-core';
import ContactService from '@/service/contact/contact-service';
import TabExpViewtabexppanelService from './tab-exp-viewtabexppanel-tabexppanel-service';
/**
* tabexppanel部件基类
*
* @export
* @class TabExpPanelControlBase
* @extends {TabExpViewtabexppanelTabexppanelBase}
*/
export class TabExpViewtabexppanelTabexppanelBase extends TabExpPanelControlBase {
/**
* 建构部件服务对象
*
* @type {TabExpViewtabexppanelService}
* @memberof TabExpViewtabexppanelTabexppanelBase
*/
public service: TabExpViewtabexppanelService = new TabExpViewtabexppanelService({ $store: this.$store });
/**
* 实体服务对象
*
* @type {ContactService}
* @memberof TabExpViewtabexppanelTabexppanelBase
*/
public appEntityService: ContactService = new ContactService({ $store: this.$store });
/**
* 应用实体名称
*
* @protected
* @type {string}
* @memberof TabExpViewtabexppanelTabexppanelBase
*/
protected appDeName: string = 'contact';
/**
* 是否初始化
*
* @protected
* @returns {any}
* @memberof TabExpViewtabexppanel
*/
protected isInit: any = {
tabviewpanel: true ,
tabviewpanel3: false ,
tabviewpanel2: false ,
}
/**
* 被激活的分页面板
*
* @protected
* @type {string}
* @memberof TabExpViewtabexppanel
*/
protected activatedTabViewPanel: string = 'tabviewpanel';
/**
* 组件创建完毕
*
* @protected
* @memberof TabExpViewtabexppanel
*/
protected ctrlCreated(): void {
//设置分页导航srfparentdename和srfparentkey
if (this.context.contact) {
Object.assign(this.context, { srfparentdename: 'Contact', srfparentkey: this.context.contact });
}
super.ctrlCreated();
}
}
\ No newline at end of file
import { Http,Util,Errorlog } from '@/utils';
import ControlService from '@/widgets/control-service';
import ContactService from '@/service/contact/contact-service';
import TabExpViewtabexppanelModel from './tab-exp-viewtabexppanel-tabexppanel-model';
/**
* TabExpViewtabexppanel 部件服务对象
*
* @export
* @class TabExpViewtabexppanelService
*/
export default class TabExpViewtabexppanelService extends ControlService {
/**
* 联系人服务对象
*
* @type {ContactService}
* @memberof TabExpViewtabexppanelService
*/
public appEntityService: ContactService = new ContactService({ $store: this.getStore() });
/**
* 设置从数据模式
*
* @type {boolean}
* @memberof TabExpViewtabexppanelService
*/
public setTempMode(){
this.isTempMode = false;
}
/**
* Creates an instance of TabExpViewtabexppanelService.
*
* @param {*} [opts={}]
* @memberof TabExpViewtabexppanelService
*/
constructor(opts: any = {}) {
super(opts);
this.model = new TabExpViewtabexppanelModel();
}
}
\ No newline at end of file
<div class='tabviewpanel'>
<tabs :value="activatedTabViewPanel" :animated="false" class='tabexppanel' name='tabexpviewtabexppanel' @on-click="tabPanelClick($event)">
<tab-pane :index="0" name='tabviewpanel' tab='tabexpviewtabexppanel' class=''
:label="(h) =>{
return h('div', [
h('span', '全部联系人'),
h('Badge', {
props: {
count: undefined,
type: 'primary'
}
})
])
}" >
<view_tabviewpanel
:viewState="viewState"
:viewparams="JSON.parse(JSON.stringify(viewparams))"
:context="JSON.parse(JSON.stringify(context))"
v-if="isInit.tabviewpanel"
name="tabviewpanel"
ref='tabviewpanel'
:expActive="activatedTabViewPanel === 'tabviewpanel'"
@viewpanelDatasChange = "tabViewPanelDatasChange"
@closeview="closeView($event)">
</view_tabviewpanel>
</tab-pane>
<tab-pane :index="1" name='tabviewpanel3' tab='tabexpviewtabexppanel' class=''
:label="(h) =>{
return h('div', [
h('span', '停用联系人'),
h('Badge', {
props: {
count: undefined,
type: 'primary'
}
})
])
}" >
<view_tabviewpanel3
:viewState="viewState"
:viewparams="JSON.parse(JSON.stringify(viewparams))"
:context="JSON.parse(JSON.stringify(context))"
v-if="isInit.tabviewpanel3"
name="tabviewpanel3"
ref='tabviewpanel3'
:expActive="activatedTabViewPanel === 'tabviewpanel3'"
@viewpanelDatasChange = "tabViewPanelDatasChange"
@closeview="closeView($event)">
</view_tabviewpanel3>
</tab-pane>
<tab-pane :index="2" name='tabviewpanel2' tab='tabexpviewtabexppanel' class=''
:label="(h) =>{
return h('div', [
h('span', '可用联系人'),
h('Badge', {
props: {
count: undefined,
type: 'primary'
}
})
])
}" >
<view_tabviewpanel2
:viewState="viewState"
:viewparams="JSON.parse(JSON.stringify(viewparams))"
:context="JSON.parse(JSON.stringify(context))"
v-if="isInit.tabviewpanel2"
name="tabviewpanel2"
ref='tabviewpanel2'
:expActive="activatedTabViewPanel === 'tabviewpanel2'"
@viewpanelDatasChange = "tabViewPanelDatasChange"
@closeview="closeView($event)">
</view_tabviewpanel2>
</tab-pane>
</tabs>
</div>
\ No newline at end of file
<template src="./tab-exp-viewtabexppanel-tabexppanel.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { TabExpViewtabexppanelTabexppanelBase } from './tab-exp-viewtabexppanel-tabexppanel-base';
import view_tabviewpanel from '@widgets/contact/tab-exp-viewtabviewpanel-tabviewpanel/tab-exp-viewtabviewpanel-tabviewpanel.vue';
import view_tabviewpanel3 from '@widgets/contact/tab-exp-viewtabviewpanel3-tabviewpanel/tab-exp-viewtabviewpanel3-tabviewpanel.vue';
import view_tabviewpanel2 from '@widgets/contact/tab-exp-viewtabviewpanel2-tabviewpanel/tab-exp-viewtabviewpanel2-tabviewpanel.vue';
/**
* tabexppanel部件
*
* @export
* @class TabExpViewtabexppanelTabexppanel
* @extends {TabExpViewtabexppanelTabexppanelBase}
*/
@Component({
components: {
view_tabviewpanel,
view_tabviewpanel3,
view_tabviewpanel2,
}
})
@VueLifeCycleProcessing()
export default class TabExpViewtabexppanelTabexppanel extends TabExpViewtabexppanelTabexppanelBase { }
</script>
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册