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

xignzi006 发布系统代码

上级 fb87d4d7
......@@ -309,13 +309,13 @@
"viewtag": "5f8f689d5dccc3db6d2b74a24a8b24ef",
"memo": ""
},
"contactdetailinfoeditview9": {
"contactinfo_detail": {
"title": "联系人编辑视图",
"caption": "联系人",
"viewtype": "DEEDITVIEW9",
"viewmodule": "Base",
"viewname": "ContactDetailInfoEditView9",
"viewfilename": "contact-detail-info-edit-view9",
"viewname": "ContactInfo_Detail",
"viewfilename": "contact-info-detail",
"viewtag": "60093dd36f07238d7a7e72e9ed372942",
"memo": ""
},
......@@ -489,13 +489,13 @@
"viewtag": "9224b0b14d2d99014e051f8035ba5cbf",
"memo": "系统自动添加"
},
"contactabstracteditview9": {
"contactinfo_abstract": {
"title": "联系人编辑视图",
"caption": "联系人",
"viewtype": "DEEDITVIEW9",
"viewmodule": "Base",
"viewname": "ContactAbstractEditView9",
"viewfilename": "contact-abstract-edit-view9",
"viewname": "ContactInfo_Abstract",
"viewfilename": "contact-info-abstract",
"viewtag": "928f354b1e67a8b855b7f19f485299b0",
"memo": ""
},
......
......@@ -215,7 +215,7 @@ export default {
caption: "联系人",
title: '联系人数据看板视图',
},
detailinfoeditview9: {
info_detail: {
caption: "联系人",
title: '联系人编辑视图',
},
......@@ -227,7 +227,7 @@ export default {
caption: "联系人列表",
title: '联系人列表',
},
abstracteditview9: {
info_abstract: {
caption: "联系人",
title: '联系人编辑视图',
},
......@@ -480,7 +480,7 @@ export default {
tip: "Filter",
},
},
abstracteditview9toolbar_toolbar: {
info_abstracttoolbar_toolbar: {
deuiaction2: {
caption: "编辑",
tip: "编辑",
......
......@@ -214,7 +214,7 @@ export default {
caption: '联系人',
title: '联系人数据看板视图',
},
detailinfoeditview9: {
info_detail: {
caption: '联系人',
title: '联系人编辑视图',
},
......@@ -226,7 +226,7 @@ export default {
caption: '联系人列表',
title: '联系人列表',
},
abstracteditview9: {
info_abstract: {
caption: '联系人',
title: '联系人编辑视图',
},
......@@ -479,7 +479,7 @@ export default {
tip: '过滤',
},
},
abstracteditview9toolbar_toolbar: {
info_abstracttoolbar_toolbar: {
deuiaction2: {
caption: '编辑',
tip: '编辑',
......
......@@ -255,12 +255,12 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "OpportunityGridView",
"viewtag": "5f8f689d5dccc3db6d2b74a24a8b24ef"
},
"contactdetailinfoeditview9": {
"contactinfo_detail": {
"title": "联系人编辑视图",
"caption": "联系人",
"viewtype": "DEEDITVIEW9",
"viewmodule": "Base",
"viewname": "ContactDetailInfoEditView9",
"viewname": "ContactInfo_Detail",
"viewtag": "60093dd36f07238d7a7e72e9ed372942"
},
"goalgridview": {
......@@ -399,12 +399,12 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "ContactByAccount",
"viewtag": "9224b0b14d2d99014e051f8035ba5cbf"
},
"contactabstracteditview9": {
"contactinfo_abstract": {
"title": "联系人编辑视图",
"caption": "联系人",
"viewtype": "DEEDITVIEW9",
"viewmodule": "Base",
"viewname": "ContactAbstractEditView9",
"viewname": "ContactInfo_Abstract",
"viewtag": "928f354b1e67a8b855b7f19f485299b0"
},
"serviceappointmenteditview": {
......
<template>
<studio-embed-view viewName="contactdashboardview9" viewTitle="联系人数据看板视图" class='deportalview9 contact-dashboard-view9'>
<view_dashboard
:viewState="viewState"
:viewparams="viewparams"
:context="JSON.parse(JSON.stringify(context))"
:isEnableCustomized = "false"
name="dashboard"
ref='dashboard'
@load="dashboard_load($event)"
@closeview="closeView($event)">
</view_dashboard>
</studio-embed-view>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import { Subject } from 'rxjs';
import ContactService from '@/service/contact/contact-service';
import PortalView9Engine from '@engine/view/portal-view9-engine';
@Component({
components: {
},
})
export default class ContactDashboardView9Base extends Vue {
/**
* 实体服务对象
*
* @type {ContactService}
* @memberof ContactDashboardView9Base
*/
public appEntityService: ContactService = new ContactService;
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof ContactDashboardView9Base
*/
public counterServiceArray:Array<any> = [];
/**
* 数据变化
*
* @param {*} val
* @returns {*}
* @memberof ContactDashboardView9Base
*/
@Emit()
public viewDatasChange(val: any):any {
return val;
}
/**
* 传入视图上下文
*
* @type {string}
* @memberof ContactDashboardView9Base
*/
@Prop() public viewdata!: string;
/**
* 传入视图参数
*
* @type {string}
* @memberof ContactDashboardView9Base
*/
@Prop() public viewparam!: string;
/**
* 视图默认使用
*
* @type {boolean}
* @memberof ContactDashboardView9Base
*/
@Prop({ default: true }) public viewDefaultUsage!: boolean;
/**
* 视图标识
*
* @type {string}
* @memberof ContactDashboardView9Base
*/
public viewtag: string = '5f858bcdc7f62dbe7c0b05a5e3924240';
/**
* 自定义视图导航上下文集合
*
* @type {*}
* @memberof ContactDashboardView9Base
*/
public customViewNavContexts:any ={
};
/**
* 自定义视图导航参数集合
*
* @type {*}
* @memberof ContactDashboardView9Base
*/
public customViewParams:any ={
};
/**
* 视图模型数据
*
* @type {*}
* @memberof ContactDashboardView9Base
*/
public model: any = {
srfCaption: 'entities.contact.views.dashboardview9.caption',
srfTitle: 'entities.contact.views.dashboardview9.title',
srfSubTitle: 'entities.contact.views.dashboardview9.subtitle',
dataInfo: ''
}
/**
* 视图参数变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof ContactDashboardView9Base
*/
@Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) {
if(newVal){
for(let key in this.viewparams){
delete this.viewparams[key];
}
Object.assign(this.viewparams, JSON.parse(this.viewparam));
}
}
/**
* 处理应用上下文变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof ContactDashboardView9Base
*/
@Watch('viewdata')
onViewData(newVal: any, oldVal: any) {
const _this: any = this;
if (!Object.is(newVal, oldVal) && _this.engine) {
this.$nextTick(()=>{
_this.parseViewParam();
_this.engine.load();
});
}
}
/**
* 容器模型
*
* @type {*}
* @memberof ContactDashboardView9Base
*/
public containerModel: any = {
view_dashboard: { name: 'dashboard', type: 'DASHBOARD' },
};
/**
* 计数器刷新
*
* @memberof ContactDashboardView9Base
*/
public counterRefresh(){
const _this:any =this;
if(_this.counterServiceArray && _this.counterServiceArray.length >0){
_this.counterServiceArray.forEach((item:any) =>{
if(item.refreshData && item.refreshData instanceof Function){
item.refreshData();
}
})
}
}
/**
* 视图状态订阅对象
*
* @public
* @type {Subject<{action: string, data: any}>}
* @memberof ContactDashboardView9Base
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof ContactDashboardView9Base
*/
public engine: PortalView9Engine = new PortalView9Engine();
/**
* 引擎初始化
*
* @public
* @memberof ContactDashboardView9Base
*/
public engineInit(): void {
this.engine.init({
view: this,
dashboard: this.$refs.dashboard,
keyPSDEField: 'contact',
majorPSDEField: 'fullname',
isLoadDefault: true,
});
}
/**
* 应用上下文
*
* @type {*}
* @memberof ContactDashboardView9Base
*/
public context:any = {};
/**
* 视图参数
*
* @type {*}
* @memberof ContactDashboardView9Base
*/
public viewparams:any = {};
/**
* 解析视图参数
*
* @public
* @memberof ContactDashboardView9Base
*/
public parseViewParam(): void {
for(let key in this.context){
delete this.context[key];
}
if (!this.viewDefaultUsage && this.viewdata && !Object.is(this.viewdata, '')) {
Object.assign(this.context, JSON.parse(this.viewdata));
if(this.context && this.context.srfparentdename){
Object.assign(this.viewparams,{srfparentdename:this.context.srfparentdename});
}
if(this.context && this.context.srfparentkey){
Object.assign(this.viewparams,{srfparentkey:this.context.srfparentkey});
}
if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
Object.assign(this.context,this.$store.getters.getAppData().context);
}
this.handleCustomViewData();
this.$forceUpdate();
return;
}
const path = (this.$route.matched[this.$route.matched.length - 1]).path;
const keys: Array<any> = [];
const curReg = this.$pathToRegExp.pathToRegexp(path, keys);
const matchArray = curReg.exec(this.$route.path);
let tempValue: Object = {};
keys.forEach((item: any, index: number) => {
Object.defineProperty(tempValue, item.name, {
enumerable: true,
value: matchArray[index + 1]
});
});
this.$viewTool.formatRouteParams(tempValue,this.$route,this.context,this.viewparams);
if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
Object.assign(this.context,this.$store.getters.getAppData().context);
}
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
}
/**
* 处理自定义视图数据
*
* @memberof ContactDashboardView9Base
*/
public handleCustomViewData(){
if(Object.keys(this.customViewNavContexts).length > 0){
Object.keys(this.customViewNavContexts).forEach((item:any) =>{
let tempContext:any = {};
let curNavContext:any = this.customViewNavContexts[item];
this.handleCustomDataLogic(curNavContext,tempContext,item);
Object.assign(this.context,tempContext);
})
}
if(Object.keys(this.customViewParams).length > 0){
Object.keys(this.customViewParams).forEach((item:any) =>{
let tempParam:any = {};
let curNavParam:any = this.customViewParams[item];
this.handleCustomDataLogic(curNavParam,tempParam,item);
Object.assign(this.viewparams,tempParam);
})
}
}
/**
* 处理自定义视图数据逻辑
*
* @memberof ContactDashboardView9Base
*/
public handleCustomDataLogic(curNavData:any,tempData:any,item:string){
// 直接值直接赋值
if(curNavData.isRawValue){
if(Object.is(curNavData.value,"null") || Object.is(curNavData.value,"")){
Object.defineProperty(tempData, item.toLowerCase(), {
value: null,
writable : true,
enumerable : true,
configurable : true
});
}else{
Object.defineProperty(tempData, item.toLowerCase(), {
value: curNavData.value,
writable : true,
enumerable : true,
configurable : true
});
}
}else{
// 先从导航上下文取数,没有再从导航参数(URL)取数,如果导航上下文和导航参数都没有则为null
if(this.context[(curNavData.value).toLowerCase()]){
Object.defineProperty(tempData, item.toLowerCase(), {
value: this.context[(curNavData.value).toLowerCase()],
writable : true,
enumerable : true,
configurable : true
});
}else{
if(this.viewparams[(curNavData.value).toLowerCase()]){
Object.defineProperty(tempData, item.toLowerCase(), {
value: this.viewparams[(curNavData.value).toLowerCase()],
writable : true,
enumerable : true,
configurable : true
});
}else{
Object.defineProperty(tempData, item.toLowerCase(), {
value: null,
writable : true,
enumerable : true,
configurable : true
});
}
}
}
}
/**
* Vue声明周期
*
* @memberof ContactDashboardView9Base
*/
public created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof ContactDashboardView9Base
*/
public afterCreated(){
const secondtag = this.$util.createUUID();
this.$store.commit('viewaction/createdView', { viewtag: this.viewtag, secondtag: secondtag });
this.viewtag = secondtag;
this.parseViewParam();
if(this.formDruipart){
this.formDruipart.subscribe((res:any) =>{
if(Object.is(res.action,'load')){
const _this: any = this;
_this.engine.load(res.data,true);
}
});
}
}
/**
* 销毁之前
*
* @memberof ContactDashboardView9Base
*/
public beforeDestroy() {
this.$store.commit('viewaction/removeView', this.viewtag);
}
/**
* Vue声明周期(组件初始化完毕)
*
* @memberof ContactDashboardView9Base
*/
public mounted() {
this.afterMounted();
}
/**
* 执行mounted后的逻辑
*
* @memberof ContactDashboardView9Base
*/
public afterMounted(){
const _this: any = this;
_this.engineInit();
if (_this.loadModel && _this.loadModel instanceof Function) {
_this.loadModel();
}
}
/**
* dashboard 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactDashboardView9Base
*/
public dashboard_load($event: any, $event2?: any) {
this.engine.onCtrlEvent('dashboard', 'load', $event);
}
/**
* 关闭视图
*
* @param {any[]} args
* @memberof ContactDashboardView9Base
*/
public closeView(args: any[]): void {
let _view: any = this;
if (_view.viewdata) {
_view.$emit('viewdataschange', [args]);
_view.$emit('close', [args]);
} else if (_view.$tabPageExp) {
_view.$tabPageExp.onClose(_view.$route.fullPath);
}
}
/**
* 销毁视图回调
*
* @memberof ContactDashboardView9Base
*/
public destroyed(){
this.afterDestroyed();
}
/**
* 执行destroyed后的逻辑
*
* @memberof ContactDashboardView9Base
*/
public afterDestroyed(){
if(this.viewDefaultUsage){
let localStoreLength = Object.keys(localStorage);
if(localStoreLength.length > 0){
localStoreLength.forEach((item:string) =>{
if(item.startsWith(this.context.srfsessionid)){
localStorage.removeItem(item);
}
})
}
}
}
/**
* 是否嵌入关系界面
*
* @type {boolean}
* @memberof ContactDashboardView9Base
*/
@Prop({default:false}) public isformDruipart?: boolean;
/**
* 界面关系通讯对象
*
* @type {Subject<ViewState>}
* @memberof ContactDashboardView9Base
*/
@Prop() public formDruipart!: Subject<ViewState>;
}
</script>
<style lang='less'>
@import './contact-dashboard-view9.less';
</style>
\ No newline at end of file
// 避免空文件,后台不让空文件过
.contact-dashboard-view9 {
--contact-dashboard-view9: 0;
}
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import ContactDashboardView9Base from './contact-dashboard-view9-base.vue';
import view_dashboard from '@widgets/contact/con-abs-dashboard/con-abs-dashboard.vue';
@Component({
components: {
view_dashboard,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
vm.$store.commit('addCurPageViewtag', { route: to, viewtag: vm.viewtag });
});
},
})
export default class ContactDashboardView9 extends ContactDashboardView9Base {
}
</script>
\ No newline at end of file
<template>
<studio-embed-view viewName="contactinfo_abstract" viewTitle="联系人编辑视图" class='deeditview9 contact-info-abstract'>
<template slot="toolbar">
<div class='toolbar-container'>
<i-button :title="$t('entities.contact.info_abstracttoolbar_toolbar.deuiaction2.tip')" v-show="toolBarModels.deuiaction2.visabled" :disabled="toolBarModels.deuiaction2.disabled" class='' @click="toolbar_click({ tag: 'deuiaction2' }, $event)">
<i class='fa fa-edit'></i>
<span class='caption'>{{$t('entities.contact.info_abstracttoolbar_toolbar.deuiaction2.caption')}}</span>
</i-button>
</div>
</template>
<view_form
: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="form"
ref='form'
@save="form_save($event)"
@remove="form_remove($event)"
@load="form_load($event)"
@closeview="closeView($event)">
</view_form>
</studio-embed-view>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import { Subject } from 'rxjs';
import ContactService from '@/service/contact/contact-service';
import EditView9Engine from '@engine/view/edit-view9-engine';
@Component({
components: {
},
})
export default class ContactInfo_AbstractBase extends Vue {
/**
* 实体服务对象
*
* @type {ContactService}
* @memberof ContactInfo_AbstractBase
*/
public appEntityService: ContactService = new ContactService;
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof ContactInfo_AbstractBase
*/
public counterServiceArray:Array<any> = [];
/**
* 数据变化
*
* @param {*} val
* @returns {*}
* @memberof ContactInfo_AbstractBase
*/
@Emit()
public viewDatasChange(val: any):any {
return val;
}
/**
* 传入视图上下文
*
* @type {string}
* @memberof ContactInfo_AbstractBase
*/
@Prop() public viewdata!: string;
/**
* 传入视图参数
*
* @type {string}
* @memberof ContactInfo_AbstractBase
*/
@Prop() public viewparam!: string;
/**
* 视图默认使用
*
* @type {boolean}
* @memberof ContactInfo_AbstractBase
*/
@Prop({ default: true }) public viewDefaultUsage!: boolean;
/**
* 视图标识
*
* @type {string}
* @memberof ContactInfo_AbstractBase
*/
public viewtag: string = '928f354b1e67a8b855b7f19f485299b0';
/**
* 自定义视图导航上下文集合
*
* @type {*}
* @memberof ContactInfo_AbstractBase
*/
public customViewNavContexts:any ={
};
/**
* 自定义视图导航参数集合
*
* @type {*}
* @memberof ContactInfo_AbstractBase
*/
public customViewParams:any ={
};
/**
* 视图模型数据
*
* @type {*}
* @memberof ContactInfo_AbstractBase
*/
public model: any = {
srfCaption: 'entities.contact.views.info_abstract.caption',
srfTitle: 'entities.contact.views.info_abstract.title',
srfSubTitle: 'entities.contact.views.info_abstract.subtitle',
dataInfo: ''
}
/**
* 视图参数变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof ContactInfo_AbstractBase
*/
@Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) {
if(newVal){
for(let key in this.viewparams){
delete this.viewparams[key];
}
Object.assign(this.viewparams, JSON.parse(this.viewparam));
}
}
/**
* 处理应用上下文变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof ContactInfo_AbstractBase
*/
@Watch('viewdata')
onViewData(newVal: any, oldVal: any) {
const _this: any = this;
if (!Object.is(newVal, oldVal) && _this.engine) {
this.$nextTick(()=>{
_this.parseViewParam();
_this.engine.load();
});
}
}
/**
* 容器模型
*
* @type {*}
* @memberof ContactInfo_AbstractBase
*/
public containerModel: any = {
view_toolbar: { name: 'toolbar', type: 'TOOLBAR' },
view_form: { name: 'form', type: 'FORM' },
};
/**
* 计数器刷新
*
* @memberof ContactInfo_AbstractBase
*/
public counterRefresh(){
const _this:any =this;
if(_this.counterServiceArray && _this.counterServiceArray.length >0){
_this.counterServiceArray.forEach((item:any) =>{
if(item.refreshData && item.refreshData instanceof Function){
item.refreshData();
}
})
}
}
/**
* 视图状态订阅对象
*
* @public
* @type {Subject<{action: string, data: any}>}
* @memberof ContactInfo_AbstractBase
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 工具栏模型
*
* @type {*}
* @memberof ContactInfo_Abstract
*/
public toolBarModels: any = {
deuiaction2: { name: 'deuiaction2', caption: '编辑', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'OpenEditMode', target: 'SINGLEKEY' } },
};
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof ContactInfo_AbstractBase
*/
public engine: EditView9Engine = new EditView9Engine();
/**
* 引擎初始化
*
* @public
* @memberof ContactInfo_AbstractBase
*/
public engineInit(): void {
this.engine.init({
view: this,
form: this.$refs.form,
p2k: '0',
keyPSDEField: 'contact',
majorPSDEField: 'fullname',
isLoadDefault: true,
});
}
/**
* 应用上下文
*
* @type {*}
* @memberof ContactInfo_AbstractBase
*/
public context:any = {};
/**
* 视图参数
*
* @type {*}
* @memberof ContactInfo_AbstractBase
*/
public viewparams:any = {};
/**
* 解析视图参数
*
* @public
* @memberof ContactInfo_AbstractBase
*/
public parseViewParam(): void {
for(let key in this.context){
delete this.context[key];
}
if (!this.viewDefaultUsage && this.viewdata && !Object.is(this.viewdata, '')) {
Object.assign(this.context, JSON.parse(this.viewdata));
if(this.context && this.context.srfparentdename){
Object.assign(this.viewparams,{srfparentdename:this.context.srfparentdename});
}
if(this.context && this.context.srfparentkey){
Object.assign(this.viewparams,{srfparentkey:this.context.srfparentkey});
}
if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
Object.assign(this.context,this.$store.getters.getAppData().context);
}
this.handleCustomViewData();
return;
}
const path = (this.$route.matched[this.$route.matched.length - 1]).path;
const keys: Array<any> = [];
const curReg = this.$pathToRegExp.pathToRegexp(path, keys);
const matchArray = curReg.exec(this.$route.path);
let tempValue: Object = {};
keys.forEach((item: any, index: number) => {
Object.defineProperty(tempValue, item.name, {
enumerable: true,
value: matchArray[index + 1]
});
});
this.$viewTool.formatRouteParams(tempValue,this.$route,this.context,this.viewparams);
if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
Object.assign(this.context,this.$store.getters.getAppData().context);
}
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
}
/**
* 处理自定义视图数据
*
* @memberof ContactInfo_AbstractBase
*/
public handleCustomViewData(){
if(Object.keys(this.customViewNavContexts).length > 0){
Object.keys(this.customViewNavContexts).forEach((item:any) =>{
let tempContext:any = {};
let curNavContext:any = this.customViewNavContexts[item];
this.handleCustomDataLogic(curNavContext,tempContext,item);
Object.assign(this.context,tempContext);
})
}
if(Object.keys(this.customViewParams).length > 0){
Object.keys(this.customViewParams).forEach((item:any) =>{
let tempParam:any = {};
let curNavParam:any = this.customViewParams[item];
this.handleCustomDataLogic(curNavParam,tempParam,item);
Object.assign(this.viewparams,tempParam);
})
}
}
/**
* 处理自定义视图数据逻辑
*
* @memberof ContactInfo_AbstractBase
*/
public handleCustomDataLogic(curNavData:any,tempData:any,item:string){
// 直接值直接赋值
if(curNavData.isRawValue){
if(Object.is(curNavData.value,"null") || Object.is(curNavData.value,"")){
Object.defineProperty(tempData, item.toLowerCase(), {
value: null,
writable : true,
enumerable : true,
configurable : true
});
}else{
Object.defineProperty(tempData, item.toLowerCase(), {
value: curNavData.value,
writable : true,
enumerable : true,
configurable : true
});
}
}else{
// 先从导航上下文取数,没有再从导航参数(URL)取数,如果导航上下文和导航参数都没有则为null
if(this.context[(curNavData.value).toLowerCase()]){
Object.defineProperty(tempData, item.toLowerCase(), {
value: this.context[(curNavData.value).toLowerCase()],
writable : true,
enumerable : true,
configurable : true
});
}else{
if(this.viewparams[(curNavData.value).toLowerCase()]){
Object.defineProperty(tempData, item.toLowerCase(), {
value: this.viewparams[(curNavData.value).toLowerCase()],
writable : true,
enumerable : true,
configurable : true
});
}else{
Object.defineProperty(tempData, item.toLowerCase(), {
value: null,
writable : true,
enumerable : true,
configurable : true
});
}
}
}
}
/**
* Vue声明周期
*
* @memberof ContactInfo_AbstractBase
*/
public created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof ContactInfo_AbstractBase
*/
public afterCreated(){
const secondtag = this.$util.createUUID();
this.$store.commit('viewaction/createdView', { viewtag: this.viewtag, secondtag: secondtag });
this.viewtag = secondtag;
this.parseViewParam();
}
/**
* 销毁之前
*
* @memberof ContactInfo_AbstractBase
*/
public beforeDestroy() {
this.$store.commit('viewaction/removeView', this.viewtag);
}
/**
* Vue声明周期(组件初始化完毕)
*
* @memberof ContactInfo_AbstractBase
*/
public mounted() {
this.afterMounted();
}
/**
* 执行mounted后的逻辑
*
* @memberof ContactInfo_AbstractBase
*/
public afterMounted(){
const _this: any = this;
_this.engineInit();
if (_this.loadModel && _this.loadModel instanceof Function) {
_this.loadModel();
}
if(this.panelState){
this.panelState.subscribe((res:any) =>{
if(Object.is(res.tag,'meditviewpanel')){
if(Object.is(res.action,'save')){
this.viewState.next({ tag:'form', action: 'save', data:res.data});
}
if(Object.is(res.action,'remove')){
this.viewState.next({ tag:'form', action: 'remove', data:res.data});
}
}
});
}
}
/**
* toolbar 部件 click 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactInfo_AbstractBase
*/
public toolbar_click($event: any, $event2?: any) {
if (Object.is($event.tag, 'deuiaction2')) {
this.toolbar_deuiaction2_click(null, '', $event2);
}
}
/**
* form 部件 save 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactInfo_AbstractBase
*/
public form_save($event: any, $event2?: any) {
this.engine.onCtrlEvent('form', 'save', $event);
}
/**
* form 部件 remove 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactInfo_AbstractBase
*/
public form_remove($event: any, $event2?: any) {
this.engine.onCtrlEvent('form', 'remove', $event);
}
/**
* form 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactInfo_AbstractBase
*/
public form_load($event: any, $event2?: any) {
this.engine.onCtrlEvent('form', 'load', $event);
}
/**
* 逻辑事件
*
* @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.OpenEditMode(datas, contextJO,paramJO, $event, xData,this,"Contact");
}
/**
* 编辑
*
* @param {any[]} args 当前数据
* @param {any} context 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @param {*} [srfParentDeName] 父实体名称
* @returns {Promise<any>}
*/
public async OpenEditMode(args: any[], context:any = {} ,params: any={}, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
xData = $event;
$event = params;
params = context;
let context2: any = {};
let data: any = {};
let parentContext:any = {};
let parentViewParam:any = {};
const _args: any[] = this.$util.deepCopy(args);
const _this: any = this;
const actionTarget: string | null = 'SINGLEKEY';
Object.assign(context2, { res_partner: '%id%' });
Object.assign(params, { id: '%id%' });
Object.assign(params, { name: '%name%' })
if(actionContext.context){
parentContext = actionContext.context;
}
if(actionContext.viewparams){
parentViewParam = actionContext.viewparams;
}
context = UIActionTool.handleContextParam(actionTarget,_args,parentContext,parentViewParam,context);
data = UIActionTool.handleActionParam(actionTarget,_args,parentContext,parentViewParam,params);
Object.assign(context,this.context,context);
if(context && context.srfsessionid){
context.srfsessionkey = context.srfsessionid;
delete context.srfsessionid;
}
const parameters: any[] = [
{ pathName: 'res_partners', parameterName: 'res_partner' },
];
const openDrawer = (view: any, data: any) => {
let container: Subject<any> = this.$appdrawer.openDrawer(view, context,data);
container.subscribe((result: any) => {
if (!result || !Object.is(result.ret, 'OK')) {
return;
}
const _this: any = this;
if (xData && xData.refresh && xData.refresh instanceof Function) {
xData.refresh(args);
}
return result.datas;
});
}
const view: any = {
viewname: 'contact-info-abstract-edit-mode',
height: 0,
width: 0,
title: '联系人编辑视图',
placement: 'DRAWER_TOP',
};
openDrawer(view, data);
}
/**
* 关闭视图
*
* @param {any[]} args
* @memberof ContactInfo_AbstractBase
*/
public closeView(args: any[]): void {
let _view: any = this;
if (_view.viewdata) {
_view.$emit('viewdataschange', [args]);
_view.$emit('close', [args]);
} else if (_view.$tabPageExp) {
_view.$tabPageExp.onClose(_view.$route.fullPath);
}
}
/**
* 销毁视图回调
*
* @memberof ContactInfo_AbstractBase
*/
public destroyed(){
this.afterDestroyed();
}
/**
* 执行destroyed后的逻辑
*
* @memberof ContactInfo_AbstractBase
*/
public afterDestroyed(){
if(this.viewDefaultUsage){
let localStoreLength = Object.keys(localStorage);
if(localStoreLength.length > 0){
localStoreLength.forEach((item:string) =>{
if(item.startsWith(this.context.srfsessionid)){
localStorage.removeItem(item);
}
})
}
}
}
/**
* meditview9状态下发变量
*
* @memberof IBZSAM02MobEditView
*/
@Prop() public panelState ?:Subject<ViewState>;
}
</script>
<style lang='less'>
@import './contact-info-abstract.less';
</style>
\ No newline at end of file
// 避免空文件,后台不让空文件过
.contact-info-abstract {
--contact-info-abstract: 0;
}
// 视图样式
// this is less
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import ContactInfo_AbstractBase from './contact-info-abstract-base.vue';
import view_form from '@widgets/contact/abstract-info-form/abstract-info-form.vue';
@Component({
components: {
view_form,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
vm.$store.commit('addCurPageViewtag', { route: to, viewtag: vm.viewtag });
});
},
})
export default class ContactInfo_Abstract extends ContactInfo_AbstractBase {
}
</script>
\ No newline at end of file
<template>
<studio-embed-view viewName="contactinfo_detail" viewTitle="联系人编辑视图" class='deeditview9 contact-info-detail'>
<view_form
: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="form"
ref='form'
@save="form_save($event)"
@remove="form_remove($event)"
@load="form_load($event)"
@closeview="closeView($event)">
</view_form>
</studio-embed-view>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import { Subject } from 'rxjs';
import ContactService from '@/service/contact/contact-service';
import EditView9Engine from '@engine/view/edit-view9-engine';
@Component({
components: {
},
})
export default class ContactInfo_DetailBase extends Vue {
/**
* 实体服务对象
*
* @type {ContactService}
* @memberof ContactInfo_DetailBase
*/
public appEntityService: ContactService = new ContactService;
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof ContactInfo_DetailBase
*/
public counterServiceArray:Array<any> = [];
/**
* 数据变化
*
* @param {*} val
* @returns {*}
* @memberof ContactInfo_DetailBase
*/
@Emit()
public viewDatasChange(val: any):any {
return val;
}
/**
* 传入视图上下文
*
* @type {string}
* @memberof ContactInfo_DetailBase
*/
@Prop() public viewdata!: string;
/**
* 传入视图参数
*
* @type {string}
* @memberof ContactInfo_DetailBase
*/
@Prop() public viewparam!: string;
/**
* 视图默认使用
*
* @type {boolean}
* @memberof ContactInfo_DetailBase
*/
@Prop({ default: true }) public viewDefaultUsage!: boolean;
/**
* 视图标识
*
* @type {string}
* @memberof ContactInfo_DetailBase
*/
public viewtag: string = '60093dd36f07238d7a7e72e9ed372942';
/**
* 自定义视图导航上下文集合
*
* @type {*}
* @memberof ContactInfo_DetailBase
*/
public customViewNavContexts:any ={
};
/**
* 自定义视图导航参数集合
*
* @type {*}
* @memberof ContactInfo_DetailBase
*/
public customViewParams:any ={
};
/**
* 视图模型数据
*
* @type {*}
* @memberof ContactInfo_DetailBase
*/
public model: any = {
srfCaption: 'entities.contact.views.info_detail.caption',
srfTitle: 'entities.contact.views.info_detail.title',
srfSubTitle: 'entities.contact.views.info_detail.subtitle',
dataInfo: ''
}
/**
* 视图参数变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof ContactInfo_DetailBase
*/
@Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) {
if(newVal){
for(let key in this.viewparams){
delete this.viewparams[key];
}
Object.assign(this.viewparams, JSON.parse(this.viewparam));
}
}
/**
* 处理应用上下文变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof ContactInfo_DetailBase
*/
@Watch('viewdata')
onViewData(newVal: any, oldVal: any) {
const _this: any = this;
if (!Object.is(newVal, oldVal) && _this.engine) {
this.$nextTick(()=>{
_this.parseViewParam();
_this.engine.load();
});
}
}
/**
* 容器模型
*
* @type {*}
* @memberof ContactInfo_DetailBase
*/
public containerModel: any = {
view_form: { name: 'form', type: 'FORM' },
};
/**
* 计数器刷新
*
* @memberof ContactInfo_DetailBase
*/
public counterRefresh(){
const _this:any =this;
if(_this.counterServiceArray && _this.counterServiceArray.length >0){
_this.counterServiceArray.forEach((item:any) =>{
if(item.refreshData && item.refreshData instanceof Function){
item.refreshData();
}
})
}
}
/**
* 视图状态订阅对象
*
* @public
* @type {Subject<{action: string, data: any}>}
* @memberof ContactInfo_DetailBase
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof ContactInfo_DetailBase
*/
public engine: EditView9Engine = new EditView9Engine();
/**
* 引擎初始化
*
* @public
* @memberof ContactInfo_DetailBase
*/
public engineInit(): void {
this.engine.init({
view: this,
form: this.$refs.form,
p2k: '0',
keyPSDEField: 'contact',
majorPSDEField: 'fullname',
isLoadDefault: true,
});
}
/**
* 应用上下文
*
* @type {*}
* @memberof ContactInfo_DetailBase
*/
public context:any = {};
/**
* 视图参数
*
* @type {*}
* @memberof ContactInfo_DetailBase
*/
public viewparams:any = {};
/**
* 解析视图参数
*
* @public
* @memberof ContactInfo_DetailBase
*/
public parseViewParam(): void {
for(let key in this.context){
delete this.context[key];
}
if (!this.viewDefaultUsage && this.viewdata && !Object.is(this.viewdata, '')) {
Object.assign(this.context, JSON.parse(this.viewdata));
if(this.context && this.context.srfparentdename){
Object.assign(this.viewparams,{srfparentdename:this.context.srfparentdename});
}
if(this.context && this.context.srfparentkey){
Object.assign(this.viewparams,{srfparentkey:this.context.srfparentkey});
}
if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
Object.assign(this.context,this.$store.getters.getAppData().context);
}
this.handleCustomViewData();
return;
}
const path = (this.$route.matched[this.$route.matched.length - 1]).path;
const keys: Array<any> = [];
const curReg = this.$pathToRegExp.pathToRegexp(path, keys);
const matchArray = curReg.exec(this.$route.path);
let tempValue: Object = {};
keys.forEach((item: any, index: number) => {
Object.defineProperty(tempValue, item.name, {
enumerable: true,
value: matchArray[index + 1]
});
});
this.$viewTool.formatRouteParams(tempValue,this.$route,this.context,this.viewparams);
if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
Object.assign(this.context,this.$store.getters.getAppData().context);
}
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
}
/**
* 处理自定义视图数据
*
* @memberof ContactInfo_DetailBase
*/
public handleCustomViewData(){
if(Object.keys(this.customViewNavContexts).length > 0){
Object.keys(this.customViewNavContexts).forEach((item:any) =>{
let tempContext:any = {};
let curNavContext:any = this.customViewNavContexts[item];
this.handleCustomDataLogic(curNavContext,tempContext,item);
Object.assign(this.context,tempContext);
})
}
if(Object.keys(this.customViewParams).length > 0){
Object.keys(this.customViewParams).forEach((item:any) =>{
let tempParam:any = {};
let curNavParam:any = this.customViewParams[item];
this.handleCustomDataLogic(curNavParam,tempParam,item);
Object.assign(this.viewparams,tempParam);
})
}
}
/**
* 处理自定义视图数据逻辑
*
* @memberof ContactInfo_DetailBase
*/
public handleCustomDataLogic(curNavData:any,tempData:any,item:string){
// 直接值直接赋值
if(curNavData.isRawValue){
if(Object.is(curNavData.value,"null") || Object.is(curNavData.value,"")){
Object.defineProperty(tempData, item.toLowerCase(), {
value: null,
writable : true,
enumerable : true,
configurable : true
});
}else{
Object.defineProperty(tempData, item.toLowerCase(), {
value: curNavData.value,
writable : true,
enumerable : true,
configurable : true
});
}
}else{
// 先从导航上下文取数,没有再从导航参数(URL)取数,如果导航上下文和导航参数都没有则为null
if(this.context[(curNavData.value).toLowerCase()]){
Object.defineProperty(tempData, item.toLowerCase(), {
value: this.context[(curNavData.value).toLowerCase()],
writable : true,
enumerable : true,
configurable : true
});
}else{
if(this.viewparams[(curNavData.value).toLowerCase()]){
Object.defineProperty(tempData, item.toLowerCase(), {
value: this.viewparams[(curNavData.value).toLowerCase()],
writable : true,
enumerable : true,
configurable : true
});
}else{
Object.defineProperty(tempData, item.toLowerCase(), {
value: null,
writable : true,
enumerable : true,
configurable : true
});
}
}
}
}
/**
* Vue声明周期
*
* @memberof ContactInfo_DetailBase
*/
public created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof ContactInfo_DetailBase
*/
public afterCreated(){
const secondtag = this.$util.createUUID();
this.$store.commit('viewaction/createdView', { viewtag: this.viewtag, secondtag: secondtag });
this.viewtag = secondtag;
this.parseViewParam();
}
/**
* 销毁之前
*
* @memberof ContactInfo_DetailBase
*/
public beforeDestroy() {
this.$store.commit('viewaction/removeView', this.viewtag);
}
/**
* Vue声明周期(组件初始化完毕)
*
* @memberof ContactInfo_DetailBase
*/
public mounted() {
this.afterMounted();
}
/**
* 执行mounted后的逻辑
*
* @memberof ContactInfo_DetailBase
*/
public afterMounted(){
const _this: any = this;
_this.engineInit();
if (_this.loadModel && _this.loadModel instanceof Function) {
_this.loadModel();
}
if(this.panelState){
this.panelState.subscribe((res:any) =>{
if(Object.is(res.tag,'meditviewpanel')){
if(Object.is(res.action,'save')){
this.viewState.next({ tag:'form', action: 'save', data:res.data});
}
if(Object.is(res.action,'remove')){
this.viewState.next({ tag:'form', action: 'remove', data:res.data});
}
}
});
}
}
/**
* form 部件 save 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactInfo_DetailBase
*/
public form_save($event: any, $event2?: any) {
this.engine.onCtrlEvent('form', 'save', $event);
}
/**
* form 部件 remove 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactInfo_DetailBase
*/
public form_remove($event: any, $event2?: any) {
this.engine.onCtrlEvent('form', 'remove', $event);
}
/**
* form 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactInfo_DetailBase
*/
public form_load($event: any, $event2?: any) {
this.engine.onCtrlEvent('form', 'load', $event);
}
/**
* 关闭视图
*
* @param {any[]} args
* @memberof ContactInfo_DetailBase
*/
public closeView(args: any[]): void {
let _view: any = this;
if (_view.viewdata) {
_view.$emit('viewdataschange', [args]);
_view.$emit('close', [args]);
} else if (_view.$tabPageExp) {
_view.$tabPageExp.onClose(_view.$route.fullPath);
}
}
/**
* 销毁视图回调
*
* @memberof ContactInfo_DetailBase
*/
public destroyed(){
this.afterDestroyed();
}
/**
* 执行destroyed后的逻辑
*
* @memberof ContactInfo_DetailBase
*/
public afterDestroyed(){
if(this.viewDefaultUsage){
let localStoreLength = Object.keys(localStorage);
if(localStoreLength.length > 0){
localStoreLength.forEach((item:string) =>{
if(item.startsWith(this.context.srfsessionid)){
localStorage.removeItem(item);
}
})
}
}
}
/**
* meditview9状态下发变量
*
* @memberof IBZSAM02MobEditView
*/
@Prop() public panelState ?:Subject<ViewState>;
}
</script>
<style lang='less'>
@import './contact-info-detail.less';
</style>
\ No newline at end of file
// 避免空文件,后台不让空文件过
.contact-info-detail {
--contact-info-detail: 0;
}
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import ContactInfo_DetailBase from './contact-info-detail-base.vue';
import view_form from '@widgets/contact/detail-info-form/detail-info-form.vue';
@Component({
components: {
view_form,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
vm.$store.commit('addCurPageViewtag', { route: to, viewtag: vm.viewtag });
});
},
})
export default class ContactInfo_Detail extends ContactInfo_DetailBase {
}
</script>
\ No newline at end of file
......@@ -19,6 +19,7 @@ export const PageComponents = {
Vue.component('quote-grid-view', () => import('@pages/sales/quote-grid-view/quote-grid-view.vue'));
Vue.component('account-info-account', () => import('@pages/base/account-info-account/account-info-account.vue'));
Vue.component('invoice-edit-view', () => import('@pages/finance/invoice-edit-view/invoice-edit-view.vue'));
Vue.component('contact-dashboard-view9', () => import('@pages/base/contact-dashboard-view9/contact-dashboard-view9.vue'));
Vue.component('campaign-info-schedule', () => import('@pages/marketing/campaign-info-schedule/campaign-info-schedule.vue'));
Vue.component('account-info-contact-setting', () => import('@pages/base/account-info-contact-setting/account-info-contact-setting.vue'));
Vue.component('campaign-edit-view', () => import('@pages/marketing/campaign-edit-view/campaign-edit-view.vue'));
......@@ -67,9 +68,9 @@ export const PageComponents = {
Vue.component('incident-grid-view', () => import('@pages/service/incident-grid-view/incident-grid-view.vue'));
Vue.component('account-summary', () => import('@pages/base/account-summary/account-summary.vue'));
Vue.component('campaign-summary-head', () => import('@pages/marketing/campaign-summary-head/campaign-summary-head.vue'));
Vue.component('contact-detail-info-edit-view9', () => import('@pages/base/contact-detail-info-edit-view9/contact-detail-info-edit-view9.vue'));
Vue.component('contact-info-detail', () => import('@pages/base/contact-info-detail/contact-info-detail.vue'));
Vue.component('account-edit-account-info', () => import('@pages/base/account-edit-account-info/account-edit-account-info.vue'));
Vue.component('contact-abstract-edit-view9', () => import('@pages/base/contact-abstract-edit-view9/contact-abstract-edit-view9.vue'));
Vue.component('contact-info-abstract', () => import('@pages/base/contact-info-abstract/contact-info-abstract.vue'));
Vue.component('campaign-summary', () => import('@pages/marketing/campaign-summary/campaign-summary.vue'));
Vue.component('contact-pickup-view', () => import('@pages/base/contact-pickup-view/contact-pickup-view.vue'));
Vue.component('account-edit-address', () => import('@pages/base/account-edit-address/account-edit-address.vue'));
......
......@@ -134,18 +134,18 @@ const router = new Router({
component: () => import('@pages/base/account-edit-view/account-edit-view.vue'),
},
{
path: 'contacts/:contact?/abstracteditview9/:abstracteditview9?',
path: 'contacts/:contact?/info_abstract/:info_abstract?',
meta: {
caption: 'entities.contact.views.abstracteditview9.title',
caption: 'entities.contact.views.info_abstract.title',
info:'',
parameters: [
{ pathName: 'central', parameterName: 'central' },
{ pathName: 'contacts', parameterName: 'contact' },
{ pathName: 'abstracteditview9', parameterName: 'abstracteditview9' },
{ pathName: 'info_abstract', parameterName: 'info_abstract' },
],
requireAuth: true,
},
component: () => import('@pages/base/contact-abstract-edit-view9/contact-abstract-edit-view9.vue'),
component: () => import('@pages/base/contact-info-abstract/contact-info-abstract.vue'),
},
{
path: 'faxes/:fax?/editview/:editview?',
......@@ -343,6 +343,20 @@ const router = new Router({
},
component: () => import('@pages/finance/invoice-edit-view/invoice-edit-view.vue'),
},
{
path: 'contacts/:contact?/dashboardview9/:dashboardview9?',
meta: {
caption: 'entities.contact.views.dashboardview9.title',
info:'',
parameters: [
{ pathName: 'central', parameterName: 'central' },
{ pathName: 'contacts', parameterName: 'contact' },
{ pathName: 'dashboardview9', parameterName: 'dashboardview9' },
],
requireAuth: true,
},
component: () => import('@pages/base/contact-dashboard-view9/contact-dashboard-view9.vue'),
},
{
path: 'campaigns/:campaign?/info_schedule/:info_schedule?',
meta: {
......@@ -470,18 +484,18 @@ const router = new Router({
component: () => import('@pages/base/account-info-address/account-info-address.vue'),
},
{
path: 'contacts/:contact?/detailinfoeditview9/:detailinfoeditview9?',
path: 'contacts/:contact?/info_detail/:info_detail?',
meta: {
caption: 'entities.contact.views.detailinfoeditview9.title',
caption: 'entities.contact.views.info_detail.title',
info:'',
parameters: [
{ pathName: 'central', parameterName: 'central' },
{ pathName: 'contacts', parameterName: 'contact' },
{ pathName: 'detailinfoeditview9', parameterName: 'detailinfoeditview9' },
{ pathName: 'info_detail', parameterName: 'info_detail' },
],
requireAuth: true,
},
component: () => import('@pages/base/contact-detail-info-edit-view9/contact-detail-info-edit-view9.vue'),
component: () => import('@pages/base/contact-info-detail/contact-info-detail.vue'),
},
{
path: 'appointments/:appointment?/editview/:editview?',
......@@ -1440,6 +1454,19 @@ const router = new Router({
},
component: () => import('@pages/base/account-grid-view/account-grid-view.vue'),
},
{
path: '/contacts/:contact?/dashboardview9/:dashboardview9?',
meta: {
caption: 'entities.contact.views.dashboardview9.title',
info:'',
parameters: [
{ pathName: 'contacts', parameterName: 'contact' },
{ pathName: 'dashboardview9', parameterName: 'dashboardview9' },
],
requireAuth: true,
},
component: () => import('@pages/base/contact-dashboard-view9/contact-dashboard-view9.vue'),
},
{
path: '/opportunities/:opportunity?/gridview/:gridview?',
meta: {
......@@ -1454,17 +1481,17 @@ const router = new Router({
component: () => import('@pages/sales/opportunity-grid-view/opportunity-grid-view.vue'),
},
{
path: '/contacts/:contact?/detailinfoeditview9/:detailinfoeditview9?',
path: '/contacts/:contact?/info_detail/:info_detail?',
meta: {
caption: 'entities.contact.views.detailinfoeditview9.title',
caption: 'entities.contact.views.info_detail.title',
info:'',
parameters: [
{ pathName: 'contacts', parameterName: 'contact' },
{ pathName: 'detailinfoeditview9', parameterName: 'detailinfoeditview9' },
{ pathName: 'info_detail', parameterName: 'info_detail' },
],
requireAuth: true,
},
component: () => import('@pages/base/contact-detail-info-edit-view9/contact-detail-info-edit-view9.vue'),
component: () => import('@pages/base/contact-info-detail/contact-info-detail.vue'),
},
{
path: '/goals/:goal?/gridview/:gridview?',
......@@ -1661,17 +1688,17 @@ const router = new Router({
component: () => import('@pages/base/contact-by-account/contact-by-account.vue'),
},
{
path: '/contacts/:contact?/abstracteditview9/:abstracteditview9?',
path: '/contacts/:contact?/info_abstract/:info_abstract?',
meta: {
caption: 'entities.contact.views.abstracteditview9.title',
caption: 'entities.contact.views.info_abstract.title',
info:'',
parameters: [
{ pathName: 'contacts', parameterName: 'contact' },
{ pathName: 'abstracteditview9', parameterName: 'abstracteditview9' },
{ pathName: 'info_abstract', parameterName: 'info_abstract' },
],
requireAuth: true,
},
component: () => import('@pages/base/contact-abstract-edit-view9/contact-abstract-edit-view9.vue'),
component: () => import('@pages/base/contact-info-abstract/contact-info-abstract.vue'),
},
{
path: '/serviceappointments/:serviceappointment?/editview/:editview?',
......
......@@ -285,6 +285,16 @@ export const viewstate: any = {
'6e18ac74e5685439110f9b4e534ee005',
],
},
{
viewtag: '5f858bcdc7f62dbe7c0b05a5e3924240',
viewmodule: 'Base',
viewname: 'ContactDashboardView9',
viewaction: '',
viewdatachange: false,
refviews: [
'928f354b1e67a8b855b7f19f485299b0',
],
},
{
viewtag: '5f8f689d5dccc3db6d2b74a24a8b24ef',
viewmodule: 'Sales',
......@@ -298,7 +308,7 @@ export const viewstate: any = {
{
viewtag: '60093dd36f07238d7a7e72e9ed372942',
viewmodule: 'Base',
viewname: 'ContactDetailInfoEditView9',
viewname: 'ContactInfo_Detail',
viewaction: '',
viewdatachange: false,
refviews: [
......@@ -476,7 +486,7 @@ export const viewstate: any = {
{
viewtag: '928f354b1e67a8b855b7f19f485299b0',
viewmodule: 'Base',
viewname: 'ContactAbstractEditView9',
viewname: 'ContactInfo_Abstract',
viewaction: '',
viewdatachange: false,
refviews: [
......@@ -790,7 +800,7 @@ export const viewstate: any = {
viewdatachange: false,
refviews: [
'60093dd36f07238d7a7e72e9ed372942',
'928f354b1e67a8b855b7f19f485299b0',
'5f858bcdc7f62dbe7c0b05a5e3924240',
],
},
],
......
......@@ -82,10 +82,10 @@ export default class ContactUIServiceBase extends UIService {
this.allViewMap.set('MDATAVIEW:',{viewname:'gridview',srfappde:'contacts'});
this.allViewMap.set(':',{viewname:'abstracteditview9_editmode',srfappde:'contacts'});
this.allViewMap.set(':',{viewname:'dashboardview9',srfappde:'contacts'});
this.allViewMap.set(':',{viewname:'detailinfoeditview9',srfappde:'contacts'});
this.allViewMap.set(':',{viewname:'info_detail',srfappde:'contacts'});
this.allViewMap.set(':',{viewname:'pickupgridview',srfappde:'contacts'});
this.allViewMap.set(':',{viewname:'byaccount',srfappde:'contacts'});
this.allViewMap.set(':',{viewname:'abstracteditview9',srfappde:'contacts'});
this.allViewMap.set(':',{viewname:'info_abstract',srfappde:'contacts'});
this.allViewMap.set('EDITVIEW:',{viewname:'editview',srfappde:'contacts'});
this.allViewMap.set('PICKUPVIEW:',{viewname:'pickupview',srfappde:'contacts'});
this.allViewMap.set(':',{viewname:'optionview',srfappde:'contacts'});
......
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import SummaryBase from './summary-dashboard-base.vue';
import view_dashboard_sysportlet8 from '@widgets/activity-pointer/pt-by-parent-key-portlet/pt-by-parent-key-portlet.vue';
import view_dashboard_sysportlet4 from '@widgets/account/pt-contact-setting-portlet/pt-contact-setting-portlet.vue';
import view_dashboard_sysportlet5 from '@widgets/account/pt-distribution-portlet/pt-distribution-portlet.vue';
import view_dashboard_sysportlet2 from '@widgets/account/pt-address-portlet/pt-address-portlet.vue';
import view_dashboard_sysportlet3 from '@widgets/account/pt-introduction-portlet/pt-introduction-portlet.vue';
import view_dashboard_sysportlet1 from '@widgets/account/pt-account-info-portlet/pt-account-info-portlet.vue';
import view_dashboard_sysportlet8 from '@widgets/activity-pointer/list-by-parent-key-portlet/list-by-parent-key-portlet.vue';
import view_dashboard_sysportlet4 from '@widgets/account/view-contact-setting-portlet/view-contact-setting-portlet.vue';
import view_dashboard_sysportlet5 from '@widgets/account/view-distribution-portlet/view-distribution-portlet.vue';
import view_dashboard_sysportlet2 from '@widgets/account/view-address-portlet/view-address-portlet.vue';
import view_dashboard_sysportlet3 from '@widgets/account/view-introduction-portlet/view-introduction-portlet.vue';
import view_dashboard_sysportlet1 from '@widgets/account/view-account-info-portlet/view-account-info-portlet.vue';
@Component({
......
<template>
<div class='portlet view-account-info ' :style="{'height': 'auto',}">
<p class='portlet-title'>
<span>
账户信息
</span>
<span class="portlet-action">
<a @click="uiAction('uc040f39', $event)">
<span>编辑</span>
</a>
</span>
</p>
<div class="portlet-with-title">
<account-info-account :viewdata="JSON.stringify(context)" :viewDefaultUsage="false" ></account-info-account>
</div>
</div>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch, Model } from 'vue-property-decorator';
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import AccountService from '@/service/account/account-service';
import View_AccountInfoService from './view-account-info-portlet-service';
import AccountUIService from '@/uiservice/account/account-ui-service';
import { Environment } from '@/environments/environment';
@Component({
components: {
}
})
export default class AccountView_AccountInfoBase extends Vue implements ControlInterface {
/**
* 名称
*
* @type {string}
* @memberof View_AccountInfo
*/
@Prop() public name?: string;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_AccountInfo
*/
@Prop() public viewState!: Subject<ViewState>;
/**
* 应用上下文
*
* @type {*}
* @memberof View_AccountInfo
*/
@Prop() public context: any;
/**
* 视图参数
*
* @type {*}
* @memberof View_AccountInfo
*/
@Prop() public viewparams: any;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_AccountInfo
*/
public viewStateEvent: Subscription | undefined;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_AccountInfo
*/
public getControlType(): string {
return 'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_AccountInfo
*/
public counterServiceArray:Array<any> = [];
/**
* 建构部件服务对象
*
* @type {View_AccountInfoService}
* @memberof View_AccountInfo
*/
public service: View_AccountInfoService = new View_AccountInfoService({ $store: this.$store });
/**
* 实体服务对象
*
* @type {AccountService}
* @memberof View_AccountInfo
*/
public appEntityService: AccountService = new AccountService({ $store: this.$store });
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public dashboard_sysportlet1_uc040f39_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:AccountUIService = new AccountUIService();
curUIService.Account_Edit_AccountInfo(datas,contextJO, paramJO, $event, xData,this,"Account");
}
/**
* 关闭视图
*
* @param {any} args
* @memberof View_AccountInfo
*/
public closeView(args: any): void {
let _this: any = this;
_this.$emit('closeview', [args]);
}
/**
* 计数器刷新
*
* @memberof View_AccountInfo
*/
public counterRefresh(){
const _this:any =this;
if(_this.counterServiceArray && _this.counterServiceArray.length >0){
_this.counterServiceArray.forEach((item:any) =>{
if(item.refreshData && item.refreshData instanceof Function){
item.refreshData();
}
})
}
}
/**
* 长度
*
* @type {number}
* @memberof View_AccountInfo
*/
@Prop() public height?: number;
/**
* 宽度
*
* @type {number}
* @memberof View_AccountInfo
*/
@Prop() public width?: number;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_AccountInfoBase
*/
@Prop({default: false})public isAdaptiveSize!: boolean;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_AccountInfoBase
*/
public getDatas(): any[] {
return [];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_AccountInfoBase
*/
public getData(): any {
return {};
}
/**
* vue 生命周期
*
* @memberof View_AccountInfoBase
*/
public created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof View_AccountInfoBase
*/
public afterCreated(){
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
const refs: any = this.$refs;
Object.keys(refs).forEach((_name: string) => {
this.viewState.next({ tag: _name, action: action, data: data });
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_AccountInfoBase
*/
public destroyed() {
this.afterDestroy();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_AccountInfoBase
*/
public afterDestroy() {
if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe();
}
}
/**
* 执行界面行为
*
* @memberof View_AccountInfoBase
*/
public uiAction(tag:string,event:any){
if(Object.is(tag,'uc040f39')){
this.dashboard_sysportlet1_uc040f39_click(null,tag,event);
}
}
}
</script>
<style lang='less'>
@import './view-account-info-portlet.less';
</style>
/**
* View_AccountInfo 部件模型
*
* @export
* @class View_AccountInfoModel
*/
export default class View_AccountInfoModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_AccountInfoModel
*/
public getDataItems(): any[] {
return [
{
name: 'address1_primarycontactname',
},
{
name: 'openrevenue_date',
},
{
name: 'address2_utcoffset',
},
{
name: 'fax',
},
{
name: 'address1_composite',
},
{
name: 'entityimage',
},
{
name: 'emailaddress1',
},
{
name: 'overriddencreatedon',
},
{
name: 'address1_stateorprovince',
},
{
name: 'openrevenue',
},
{
name: 'address1_upszone',
},
{
name: 'followemail',
},
{
name: 'marketingonly',
},
{
name: 'numberofemployees',
},
{
name: 'telephone1',
},
{
name: 'aging60',
},
{
name: 'sharesoutstanding',
},
{
name: 'address2_freighttermscode',
},
{
name: 'entityimage_timestamp',
},
{
name: 'revenue_base',
},
{
name: 'accountratingcode',
},
{
name: 'donotbulkemail',
},
{
name: 'aging30',
},
{
name: 'donotbulkpostalmail',
},
{
name: 'creditlimit_base',
},
{
name: 'timezoneruleversionnumber',
},
{
name: 'customertypecode',
},
{
name: 'address2_longitude',
},
{
name: 'accountname',
},
{
name: 'participatesinworkflow',
},
{
name: 'preferredcontactmethodcode',
},
{
name: 'preferredappointmentdaycode',
},
{
name: 'marketcap',
},
{
name: 'address2_telephone1',
},
{
name: 'businesstypecode',
},
{
name: 'entityimageid',
},
{
name: 'address2_city',
},
{
name: 'ownershipcode',
},
{
name: 'utcconversiontimezonecode',
},
{
name: 'accountnumber',
},
{
name: 'address1_telephone2',
},
{
name: 'address1_line1',
},
{
name: 'donotphone',
},
{
name: 'address1_telephone3',
},
{
name: 'exchangerate',
},
{
name: 'address2_line2',
},
{
name: 'address2_telephone3',
},
{
name: 'address1_telephone1',
},
{
name: 'address1_fax',
},
{
name: 'address1_freighttermscode',
},
{
name: 'description',
},
{
name: 'merged',
},
{
name: 'address1_shippingmethodcode',
},
{
name: 'address1_name',
},
{
name: 'aging30_base',
},
{
name: 'address2_telephone2',
},
{
name: 'account',
prop: 'accountid',
},
{
name: 'primarytwitterid',
},
{
name: 'tickersymbol',
},
{
name: 'stockexchange',
},
{
name: 'address2_stateorprovince',
},
{
name: 'ftpsiteurl',
},
{
name: 'statuscode',
},
{
name: 'websiteurl',
},
{
name: 'donotpostalmail',
},
{
name: 'address1_city',
},
{
name: 'address2_fax',
},
{
name: 'aging90_base',
},
{
name: 'opendeals_date',
},
{
name: 'traversedpath',
},
{
name: 'shippingmethodcode',
},
{
name: 'address1_line2',
},
{
name: 'openrevenue_base',
},
{
name: 'updatedate',
},
{
name: 'preferredsystemuseridyominame',
},
{
name: 'address2_line3',
},
{
name: 'address1_postalcode',
},
{
name: 'address2_latitude',
},
{
name: 'ibizprivate',
},
{
name: 'territorycode',
},
{
name: 'teamsfollowed',
},
{
name: 'yominame',
},
{
name: 'address1_latitude',
},
{
name: 'telephone3',
},
{
name: 'ownerid',
},
{
name: 'address2_country',
},
{
name: 'masteraccountidyominame',
},
{
name: 'industrycode',
},
{
name: 'lastonholdtime',
},
{
name: 'address2_addressid',
},
{
name: 'onholdtime',
},
{
name: 'accountclassificationcode',
},
{
name: 'address1_country',
},
{
name: 'address1_addresstypecode',
},
{
name: 'statecode',
},
{
name: 'address2_addresstypecode',
},
{
name: 'accountcategorycode',
},
{
name: 'emailaddress2',
},
{
name: 'address2_shippingmethodcode',
},
{
name: 'importsequencenumber',
},
{
name: 'primarysatoriid',
},
{
name: 'customersizecode',
},
{
name: 'opendeals',
},
{
name: 'donotsendmm',
},
{
name: 'processid',
},
{
name: 'paymenttermscode',
},
{
name: 'sic',
},
{
name: 'address2_primarycontactname',
},
{
name: 'address1_utcoffset',
},
{
name: 'owneridyominame',
},
{
name: 'lastusedincampaign',
},
{
name: 'aging60_base',
},
{
name: 'donotfax',
},
{
name: 'updateman',
},
{
name: 'openrevenue_state',
},
{
name: 'opendeals_state',
},
{
name: 'versionnumber',
},
{
name: 'address1_longitude',
},
{
name: 'aging90',
},
{
name: 'entityimage_url',
},
{
name: 'creditlimit',
},
{
name: 'preferredsystemuserid',
},
{
name: 'revenue',
},
{
name: 'address1_county',
},
{
name: 'address1_line3',
},
{
name: 'stageid',
},
{
name: 'donotemail',
},
{
name: 'address2_postalcode',
},
{
name: 'preferredappointmenttimecode',
},
{
name: 'address2_upszone',
},
{
name: 'createdate',
},
{
name: 'address2_county',
},
{
name: 'owneridtype',
},
{
name: 'address2_composite',
},
{
name: 'address2_name',
},
{
name: 'address2_line1',
},
{
name: 'marketcap_base',
},
{
name: 'emailaddress3',
},
{
name: 'telephone2',
},
{
name: 'createman',
},
{
name: 'address1_postofficebox',
},
{
name: 'creditonhold',
},
{
name: 'address1_addressid',
},
{
name: 'address2_postofficebox',
},
{
name: 'slaname',
},
{
name: 'originatingleadid',
},
{
name: 'transactioncurrencyid',
},
{
name: 'defaultpricelevelid',
},
{
name: 'parentaccountid',
},
{
name: 'preferredequipmentid',
},
{
name: 'territoryid',
},
{
name: 'primarycontactid',
},
{
name: 'slaid',
},
{
name: 'preferredserviceid',
},
{
name: 'originatingleadname',
},
{
name: 'defaultpricelevelname',
},
{
name: 'territoryname',
},
{
name: 'parentaccountname',
},
{
name: 'preferredequipmentname',
},
{
name: 'preferredservicename',
},
{
name: 'primarycontactname',
},
{
name: 'transactioncurrencyname',
},
]
}
}
import { Http } from '@/utils';
import ControlService from '@/widgets/control-service';
/**
* View_AccountInfo 部件服务对象
*
* @export
* @class View_AccountInfoService
*/
export default class View_AccountInfoService extends ControlService {
}
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import AccountView_AccountInfoBase from './view-account-info-portlet-base.vue';
@Component({
components: {
}
})
export default class AccountView_AccountInfo extends AccountView_AccountInfoBase {
}
</script>
<template>
<div class='portlet view-address ' :style="{'height': 'auto',}">
<p class='portlet-title'>
<span>
地址信息
</span>
<span class="portlet-action">
<a @click="uiAction('u2ccbfc9', $event)">
<span>编辑</span>
</a>
</span>
</p>
<div class="portlet-with-title">
<account-info-address :viewdata="JSON.stringify(context)" :viewDefaultUsage="false" ></account-info-address>
</div>
</div>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch, Model } from 'vue-property-decorator';
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import AccountService from '@/service/account/account-service';
import View_AddressService from './view-address-portlet-service';
import AccountUIService from '@/uiservice/account/account-ui-service';
import { Environment } from '@/environments/environment';
@Component({
components: {
}
})
export default class AccountView_AddressBase extends Vue implements ControlInterface {
/**
* 名称
*
* @type {string}
* @memberof View_Address
*/
@Prop() public name?: string;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_Address
*/
@Prop() public viewState!: Subject<ViewState>;
/**
* 应用上下文
*
* @type {*}
* @memberof View_Address
*/
@Prop() public context: any;
/**
* 视图参数
*
* @type {*}
* @memberof View_Address
*/
@Prop() public viewparams: any;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_Address
*/
public viewStateEvent: Subscription | undefined;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_Address
*/
public getControlType(): string {
return 'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_Address
*/
public counterServiceArray:Array<any> = [];
/**
* 建构部件服务对象
*
* @type {View_AddressService}
* @memberof View_Address
*/
public service: View_AddressService = new View_AddressService({ $store: this.$store });
/**
* 实体服务对象
*
* @type {AccountService}
* @memberof View_Address
*/
public appEntityService: AccountService = new AccountService({ $store: this.$store });
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public dashboard_sysportlet2_u2ccbfc9_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:AccountUIService = new AccountUIService();
curUIService.Account_Edit_Address(datas,contextJO, paramJO, $event, xData,this,"Account");
}
/**
* 关闭视图
*
* @param {any} args
* @memberof View_Address
*/
public closeView(args: any): void {
let _this: any = this;
_this.$emit('closeview', [args]);
}
/**
* 计数器刷新
*
* @memberof View_Address
*/
public counterRefresh(){
const _this:any =this;
if(_this.counterServiceArray && _this.counterServiceArray.length >0){
_this.counterServiceArray.forEach((item:any) =>{
if(item.refreshData && item.refreshData instanceof Function){
item.refreshData();
}
})
}
}
/**
* 长度
*
* @type {number}
* @memberof View_Address
*/
@Prop() public height?: number;
/**
* 宽度
*
* @type {number}
* @memberof View_Address
*/
@Prop() public width?: number;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_AddressBase
*/
@Prop({default: false})public isAdaptiveSize!: boolean;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_AddressBase
*/
public getDatas(): any[] {
return [];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_AddressBase
*/
public getData(): any {
return {};
}
/**
* vue 生命周期
*
* @memberof View_AddressBase
*/
public created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof View_AddressBase
*/
public afterCreated(){
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
const refs: any = this.$refs;
Object.keys(refs).forEach((_name: string) => {
this.viewState.next({ tag: _name, action: action, data: data });
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_AddressBase
*/
public destroyed() {
this.afterDestroy();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_AddressBase
*/
public afterDestroy() {
if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe();
}
}
/**
* 执行界面行为
*
* @memberof View_AddressBase
*/
public uiAction(tag:string,event:any){
if(Object.is(tag,'u2ccbfc9')){
this.dashboard_sysportlet2_u2ccbfc9_click(null,tag,event);
}
}
}
</script>
<style lang='less'>
@import './view-address-portlet.less';
</style>
/**
* View_Address 部件模型
*
* @export
* @class View_AddressModel
*/
export default class View_AddressModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_AddressModel
*/
public getDataItems(): any[] {
return [
{
name: 'address1_primarycontactname',
},
{
name: 'openrevenue_date',
},
{
name: 'address2_utcoffset',
},
{
name: 'fax',
},
{
name: 'address1_composite',
},
{
name: 'entityimage',
},
{
name: 'emailaddress1',
},
{
name: 'overriddencreatedon',
},
{
name: 'address1_stateorprovince',
},
{
name: 'openrevenue',
},
{
name: 'address1_upszone',
},
{
name: 'followemail',
},
{
name: 'marketingonly',
},
{
name: 'numberofemployees',
},
{
name: 'telephone1',
},
{
name: 'aging60',
},
{
name: 'sharesoutstanding',
},
{
name: 'address2_freighttermscode',
},
{
name: 'entityimage_timestamp',
},
{
name: 'revenue_base',
},
{
name: 'accountratingcode',
},
{
name: 'donotbulkemail',
},
{
name: 'aging30',
},
{
name: 'donotbulkpostalmail',
},
{
name: 'creditlimit_base',
},
{
name: 'timezoneruleversionnumber',
},
{
name: 'customertypecode',
},
{
name: 'address2_longitude',
},
{
name: 'accountname',
},
{
name: 'participatesinworkflow',
},
{
name: 'preferredcontactmethodcode',
},
{
name: 'preferredappointmentdaycode',
},
{
name: 'marketcap',
},
{
name: 'address2_telephone1',
},
{
name: 'businesstypecode',
},
{
name: 'entityimageid',
},
{
name: 'address2_city',
},
{
name: 'ownershipcode',
},
{
name: 'utcconversiontimezonecode',
},
{
name: 'accountnumber',
},
{
name: 'address1_telephone2',
},
{
name: 'address1_line1',
},
{
name: 'donotphone',
},
{
name: 'address1_telephone3',
},
{
name: 'exchangerate',
},
{
name: 'address2_line2',
},
{
name: 'address2_telephone3',
},
{
name: 'address1_telephone1',
},
{
name: 'address1_fax',
},
{
name: 'address1_freighttermscode',
},
{
name: 'description',
},
{
name: 'merged',
},
{
name: 'address1_shippingmethodcode',
},
{
name: 'address1_name',
},
{
name: 'aging30_base',
},
{
name: 'address2_telephone2',
},
{
name: 'account',
prop: 'accountid',
},
{
name: 'primarytwitterid',
},
{
name: 'tickersymbol',
},
{
name: 'stockexchange',
},
{
name: 'address2_stateorprovince',
},
{
name: 'ftpsiteurl',
},
{
name: 'statuscode',
},
{
name: 'websiteurl',
},
{
name: 'donotpostalmail',
},
{
name: 'address1_city',
},
{
name: 'address2_fax',
},
{
name: 'aging90_base',
},
{
name: 'opendeals_date',
},
{
name: 'traversedpath',
},
{
name: 'shippingmethodcode',
},
{
name: 'address1_line2',
},
{
name: 'openrevenue_base',
},
{
name: 'updatedate',
},
{
name: 'preferredsystemuseridyominame',
},
{
name: 'address2_line3',
},
{
name: 'address1_postalcode',
},
{
name: 'address2_latitude',
},
{
name: 'ibizprivate',
},
{
name: 'territorycode',
},
{
name: 'teamsfollowed',
},
{
name: 'yominame',
},
{
name: 'address1_latitude',
},
{
name: 'telephone3',
},
{
name: 'ownerid',
},
{
name: 'address2_country',
},
{
name: 'masteraccountidyominame',
},
{
name: 'industrycode',
},
{
name: 'lastonholdtime',
},
{
name: 'address2_addressid',
},
{
name: 'onholdtime',
},
{
name: 'accountclassificationcode',
},
{
name: 'address1_country',
},
{
name: 'address1_addresstypecode',
},
{
name: 'statecode',
},
{
name: 'address2_addresstypecode',
},
{
name: 'accountcategorycode',
},
{
name: 'emailaddress2',
},
{
name: 'address2_shippingmethodcode',
},
{
name: 'importsequencenumber',
},
{
name: 'primarysatoriid',
},
{
name: 'customersizecode',
},
{
name: 'opendeals',
},
{
name: 'donotsendmm',
},
{
name: 'processid',
},
{
name: 'paymenttermscode',
},
{
name: 'sic',
},
{
name: 'address2_primarycontactname',
},
{
name: 'address1_utcoffset',
},
{
name: 'owneridyominame',
},
{
name: 'lastusedincampaign',
},
{
name: 'aging60_base',
},
{
name: 'donotfax',
},
{
name: 'updateman',
},
{
name: 'openrevenue_state',
},
{
name: 'opendeals_state',
},
{
name: 'versionnumber',
},
{
name: 'address1_longitude',
},
{
name: 'aging90',
},
{
name: 'entityimage_url',
},
{
name: 'creditlimit',
},
{
name: 'preferredsystemuserid',
},
{
name: 'revenue',
},
{
name: 'address1_county',
},
{
name: 'address1_line3',
},
{
name: 'stageid',
},
{
name: 'donotemail',
},
{
name: 'address2_postalcode',
},
{
name: 'preferredappointmenttimecode',
},
{
name: 'address2_upszone',
},
{
name: 'createdate',
},
{
name: 'address2_county',
},
{
name: 'owneridtype',
},
{
name: 'address2_composite',
},
{
name: 'address2_name',
},
{
name: 'address2_line1',
},
{
name: 'marketcap_base',
},
{
name: 'emailaddress3',
},
{
name: 'telephone2',
},
{
name: 'createman',
},
{
name: 'address1_postofficebox',
},
{
name: 'creditonhold',
},
{
name: 'address1_addressid',
},
{
name: 'address2_postofficebox',
},
{
name: 'slaname',
},
{
name: 'originatingleadid',
},
{
name: 'transactioncurrencyid',
},
{
name: 'defaultpricelevelid',
},
{
name: 'parentaccountid',
},
{
name: 'preferredequipmentid',
},
{
name: 'territoryid',
},
{
name: 'primarycontactid',
},
{
name: 'slaid',
},
{
name: 'preferredserviceid',
},
{
name: 'originatingleadname',
},
{
name: 'defaultpricelevelname',
},
{
name: 'territoryname',
},
{
name: 'parentaccountname',
},
{
name: 'preferredequipmentname',
},
{
name: 'preferredservicename',
},
{
name: 'primarycontactname',
},
{
name: 'transactioncurrencyname',
},
]
}
}
import { Http } from '@/utils';
import ControlService from '@/widgets/control-service';
/**
* View_Address 部件服务对象
*
* @export
* @class View_AddressService
*/
export default class View_AddressService extends ControlService {
}
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import AccountView_AddressBase from './view-address-portlet-base.vue';
@Component({
components: {
}
})
export default class AccountView_Address extends AccountView_AddressBase {
}
</script>
<template>
<div class='portlet view-contact-setting ' :style="{'height': 'auto',}">
<p class='portlet-title'>
<span>
联系人选项
</span>
</p>
<div class="portlet-with-title">
<account-info-contact-setting :viewdata="JSON.stringify(context)" :viewDefaultUsage="false" ></account-info-contact-setting>
</div>
</div>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch, Model } from 'vue-property-decorator';
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import AccountService from '@/service/account/account-service';
import View_ContactSettingService from './view-contact-setting-portlet-service';
import { Environment } from '@/environments/environment';
@Component({
components: {
}
})
export default class AccountView_ContactSettingBase extends Vue implements ControlInterface {
/**
* 名称
*
* @type {string}
* @memberof View_ContactSetting
*/
@Prop() public name?: string;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_ContactSetting
*/
@Prop() public viewState!: Subject<ViewState>;
/**
* 应用上下文
*
* @type {*}
* @memberof View_ContactSetting
*/
@Prop() public context: any;
/**
* 视图参数
*
* @type {*}
* @memberof View_ContactSetting
*/
@Prop() public viewparams: any;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_ContactSetting
*/
public viewStateEvent: Subscription | undefined;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_ContactSetting
*/
public getControlType(): string {
return 'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_ContactSetting
*/
public counterServiceArray:Array<any> = [];
/**
* 建构部件服务对象
*
* @type {View_ContactSettingService}
* @memberof View_ContactSetting
*/
public service: View_ContactSettingService = new View_ContactSettingService({ $store: this.$store });
/**
* 实体服务对象
*
* @type {AccountService}
* @memberof View_ContactSetting
*/
public appEntityService: AccountService = new AccountService({ $store: this.$store });
/**
* 关闭视图
*
* @param {any} args
* @memberof View_ContactSetting
*/
public closeView(args: any): void {
let _this: any = this;
_this.$emit('closeview', [args]);
}
/**
* 计数器刷新
*
* @memberof View_ContactSetting
*/
public counterRefresh(){
const _this:any =this;
if(_this.counterServiceArray && _this.counterServiceArray.length >0){
_this.counterServiceArray.forEach((item:any) =>{
if(item.refreshData && item.refreshData instanceof Function){
item.refreshData();
}
})
}
}
/**
* 长度
*
* @type {number}
* @memberof View_ContactSetting
*/
@Prop() public height?: number;
/**
* 宽度
*
* @type {number}
* @memberof View_ContactSetting
*/
@Prop() public width?: number;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_ContactSettingBase
*/
@Prop({default: false})public isAdaptiveSize!: boolean;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_ContactSettingBase
*/
public getDatas(): any[] {
return [];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_ContactSettingBase
*/
public getData(): any {
return {};
}
/**
* vue 生命周期
*
* @memberof View_ContactSettingBase
*/
public created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof View_ContactSettingBase
*/
public afterCreated(){
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
const refs: any = this.$refs;
Object.keys(refs).forEach((_name: string) => {
this.viewState.next({ tag: _name, action: action, data: data });
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_ContactSettingBase
*/
public destroyed() {
this.afterDestroy();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_ContactSettingBase
*/
public afterDestroy() {
if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe();
}
}
}
</script>
<style lang='less'>
@import './view-contact-setting-portlet.less';
</style>
/**
* View_ContactSetting 部件模型
*
* @export
* @class View_ContactSettingModel
*/
export default class View_ContactSettingModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_ContactSettingModel
*/
public getDataItems(): any[] {
return [
{
name: 'address1_primarycontactname',
},
{
name: 'openrevenue_date',
},
{
name: 'address2_utcoffset',
},
{
name: 'fax',
},
{
name: 'address1_composite',
},
{
name: 'entityimage',
},
{
name: 'emailaddress1',
},
{
name: 'overriddencreatedon',
},
{
name: 'address1_stateorprovince',
},
{
name: 'openrevenue',
},
{
name: 'address1_upszone',
},
{
name: 'followemail',
},
{
name: 'marketingonly',
},
{
name: 'numberofemployees',
},
{
name: 'telephone1',
},
{
name: 'aging60',
},
{
name: 'sharesoutstanding',
},
{
name: 'address2_freighttermscode',
},
{
name: 'entityimage_timestamp',
},
{
name: 'revenue_base',
},
{
name: 'accountratingcode',
},
{
name: 'donotbulkemail',
},
{
name: 'aging30',
},
{
name: 'donotbulkpostalmail',
},
{
name: 'creditlimit_base',
},
{
name: 'timezoneruleversionnumber',
},
{
name: 'customertypecode',
},
{
name: 'address2_longitude',
},
{
name: 'accountname',
},
{
name: 'participatesinworkflow',
},
{
name: 'preferredcontactmethodcode',
},
{
name: 'preferredappointmentdaycode',
},
{
name: 'marketcap',
},
{
name: 'address2_telephone1',
},
{
name: 'businesstypecode',
},
{
name: 'entityimageid',
},
{
name: 'address2_city',
},
{
name: 'ownershipcode',
},
{
name: 'utcconversiontimezonecode',
},
{
name: 'accountnumber',
},
{
name: 'address1_telephone2',
},
{
name: 'address1_line1',
},
{
name: 'donotphone',
},
{
name: 'address1_telephone3',
},
{
name: 'exchangerate',
},
{
name: 'address2_line2',
},
{
name: 'address2_telephone3',
},
{
name: 'address1_telephone1',
},
{
name: 'address1_fax',
},
{
name: 'address1_freighttermscode',
},
{
name: 'description',
},
{
name: 'merged',
},
{
name: 'address1_shippingmethodcode',
},
{
name: 'address1_name',
},
{
name: 'aging30_base',
},
{
name: 'address2_telephone2',
},
{
name: 'account',
prop: 'accountid',
},
{
name: 'primarytwitterid',
},
{
name: 'tickersymbol',
},
{
name: 'stockexchange',
},
{
name: 'address2_stateorprovince',
},
{
name: 'ftpsiteurl',
},
{
name: 'statuscode',
},
{
name: 'websiteurl',
},
{
name: 'donotpostalmail',
},
{
name: 'address1_city',
},
{
name: 'address2_fax',
},
{
name: 'aging90_base',
},
{
name: 'opendeals_date',
},
{
name: 'traversedpath',
},
{
name: 'shippingmethodcode',
},
{
name: 'address1_line2',
},
{
name: 'openrevenue_base',
},
{
name: 'updatedate',
},
{
name: 'preferredsystemuseridyominame',
},
{
name: 'address2_line3',
},
{
name: 'address1_postalcode',
},
{
name: 'address2_latitude',
},
{
name: 'ibizprivate',
},
{
name: 'territorycode',
},
{
name: 'teamsfollowed',
},
{
name: 'yominame',
},
{
name: 'address1_latitude',
},
{
name: 'telephone3',
},
{
name: 'ownerid',
},
{
name: 'address2_country',
},
{
name: 'masteraccountidyominame',
},
{
name: 'industrycode',
},
{
name: 'lastonholdtime',
},
{
name: 'address2_addressid',
},
{
name: 'onholdtime',
},
{
name: 'accountclassificationcode',
},
{
name: 'address1_country',
},
{
name: 'address1_addresstypecode',
},
{
name: 'statecode',
},
{
name: 'address2_addresstypecode',
},
{
name: 'accountcategorycode',
},
{
name: 'emailaddress2',
},
{
name: 'address2_shippingmethodcode',
},
{
name: 'importsequencenumber',
},
{
name: 'primarysatoriid',
},
{
name: 'customersizecode',
},
{
name: 'opendeals',
},
{
name: 'donotsendmm',
},
{
name: 'processid',
},
{
name: 'paymenttermscode',
},
{
name: 'sic',
},
{
name: 'address2_primarycontactname',
},
{
name: 'address1_utcoffset',
},
{
name: 'owneridyominame',
},
{
name: 'lastusedincampaign',
},
{
name: 'aging60_base',
},
{
name: 'donotfax',
},
{
name: 'updateman',
},
{
name: 'openrevenue_state',
},
{
name: 'opendeals_state',
},
{
name: 'versionnumber',
},
{
name: 'address1_longitude',
},
{
name: 'aging90',
},
{
name: 'entityimage_url',
},
{
name: 'creditlimit',
},
{
name: 'preferredsystemuserid',
},
{
name: 'revenue',
},
{
name: 'address1_county',
},
{
name: 'address1_line3',
},
{
name: 'stageid',
},
{
name: 'donotemail',
},
{
name: 'address2_postalcode',
},
{
name: 'preferredappointmenttimecode',
},
{
name: 'address2_upszone',
},
{
name: 'createdate',
},
{
name: 'address2_county',
},
{
name: 'owneridtype',
},
{
name: 'address2_composite',
},
{
name: 'address2_name',
},
{
name: 'address2_line1',
},
{
name: 'marketcap_base',
},
{
name: 'emailaddress3',
},
{
name: 'telephone2',
},
{
name: 'createman',
},
{
name: 'address1_postofficebox',
},
{
name: 'creditonhold',
},
{
name: 'address1_addressid',
},
{
name: 'address2_postofficebox',
},
{
name: 'slaname',
},
{
name: 'originatingleadid',
},
{
name: 'transactioncurrencyid',
},
{
name: 'defaultpricelevelid',
},
{
name: 'parentaccountid',
},
{
name: 'preferredequipmentid',
},
{
name: 'territoryid',
},
{
name: 'primarycontactid',
},
{
name: 'slaid',
},
{
name: 'preferredserviceid',
},
{
name: 'originatingleadname',
},
{
name: 'defaultpricelevelname',
},
{
name: 'territoryname',
},
{
name: 'parentaccountname',
},
{
name: 'preferredequipmentname',
},
{
name: 'preferredservicename',
},
{
name: 'primarycontactname',
},
{
name: 'transactioncurrencyname',
},
]
}
}
import { Http } from '@/utils';
import ControlService from '@/widgets/control-service';
/**
* View_ContactSetting 部件服务对象
*
* @export
* @class View_ContactSettingService
*/
export default class View_ContactSettingService extends ControlService {
}
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import AccountView_ContactSettingBase from './view-contact-setting-portlet-base.vue';
@Component({
components: {
}
})
export default class AccountView_ContactSetting extends AccountView_ContactSettingBase {
}
</script>
<template>
<div class='portlet view-distribution ' :style="{'height': 'auto',}">
<p class='portlet-title'>
<span>
配送
</span>
</p>
<div class="portlet-with-title">
<account-info-distribution :viewdata="JSON.stringify(context)" :viewDefaultUsage="false" ></account-info-distribution>
</div>
</div>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch, Model } from 'vue-property-decorator';
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import AccountService from '@/service/account/account-service';
import View_DistributionService from './view-distribution-portlet-service';
import { Environment } from '@/environments/environment';
@Component({
components: {
}
})
export default class AccountView_DistributionBase extends Vue implements ControlInterface {
/**
* 名称
*
* @type {string}
* @memberof View_Distribution
*/
@Prop() public name?: string;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_Distribution
*/
@Prop() public viewState!: Subject<ViewState>;
/**
* 应用上下文
*
* @type {*}
* @memberof View_Distribution
*/
@Prop() public context: any;
/**
* 视图参数
*
* @type {*}
* @memberof View_Distribution
*/
@Prop() public viewparams: any;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_Distribution
*/
public viewStateEvent: Subscription | undefined;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_Distribution
*/
public getControlType(): string {
return 'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_Distribution
*/
public counterServiceArray:Array<any> = [];
/**
* 建构部件服务对象
*
* @type {View_DistributionService}
* @memberof View_Distribution
*/
public service: View_DistributionService = new View_DistributionService({ $store: this.$store });
/**
* 实体服务对象
*
* @type {AccountService}
* @memberof View_Distribution
*/
public appEntityService: AccountService = new AccountService({ $store: this.$store });
/**
* 关闭视图
*
* @param {any} args
* @memberof View_Distribution
*/
public closeView(args: any): void {
let _this: any = this;
_this.$emit('closeview', [args]);
}
/**
* 计数器刷新
*
* @memberof View_Distribution
*/
public counterRefresh(){
const _this:any =this;
if(_this.counterServiceArray && _this.counterServiceArray.length >0){
_this.counterServiceArray.forEach((item:any) =>{
if(item.refreshData && item.refreshData instanceof Function){
item.refreshData();
}
})
}
}
/**
* 长度
*
* @type {number}
* @memberof View_Distribution
*/
@Prop() public height?: number;
/**
* 宽度
*
* @type {number}
* @memberof View_Distribution
*/
@Prop() public width?: number;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_DistributionBase
*/
@Prop({default: false})public isAdaptiveSize!: boolean;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_DistributionBase
*/
public getDatas(): any[] {
return [];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_DistributionBase
*/
public getData(): any {
return {};
}
/**
* vue 生命周期
*
* @memberof View_DistributionBase
*/
public created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof View_DistributionBase
*/
public afterCreated(){
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
const refs: any = this.$refs;
Object.keys(refs).forEach((_name: string) => {
this.viewState.next({ tag: _name, action: action, data: data });
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_DistributionBase
*/
public destroyed() {
this.afterDestroy();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_DistributionBase
*/
public afterDestroy() {
if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe();
}
}
}
</script>
<style lang='less'>
@import './view-distribution-portlet.less';
</style>
/**
* View_Distribution 部件模型
*
* @export
* @class View_DistributionModel
*/
export default class View_DistributionModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_DistributionModel
*/
public getDataItems(): any[] {
return [
{
name: 'address1_primarycontactname',
},
{
name: 'openrevenue_date',
},
{
name: 'address2_utcoffset',
},
{
name: 'fax',
},
{
name: 'address1_composite',
},
{
name: 'entityimage',
},
{
name: 'emailaddress1',
},
{
name: 'overriddencreatedon',
},
{
name: 'address1_stateorprovince',
},
{
name: 'openrevenue',
},
{
name: 'address1_upszone',
},
{
name: 'followemail',
},
{
name: 'marketingonly',
},
{
name: 'numberofemployees',
},
{
name: 'telephone1',
},
{
name: 'aging60',
},
{
name: 'sharesoutstanding',
},
{
name: 'address2_freighttermscode',
},
{
name: 'entityimage_timestamp',
},
{
name: 'revenue_base',
},
{
name: 'accountratingcode',
},
{
name: 'donotbulkemail',
},
{
name: 'aging30',
},
{
name: 'donotbulkpostalmail',
},
{
name: 'creditlimit_base',
},
{
name: 'timezoneruleversionnumber',
},
{
name: 'customertypecode',
},
{
name: 'address2_longitude',
},
{
name: 'accountname',
},
{
name: 'participatesinworkflow',
},
{
name: 'preferredcontactmethodcode',
},
{
name: 'preferredappointmentdaycode',
},
{
name: 'marketcap',
},
{
name: 'address2_telephone1',
},
{
name: 'businesstypecode',
},
{
name: 'entityimageid',
},
{
name: 'address2_city',
},
{
name: 'ownershipcode',
},
{
name: 'utcconversiontimezonecode',
},
{
name: 'accountnumber',
},
{
name: 'address1_telephone2',
},
{
name: 'address1_line1',
},
{
name: 'donotphone',
},
{
name: 'address1_telephone3',
},
{
name: 'exchangerate',
},
{
name: 'address2_line2',
},
{
name: 'address2_telephone3',
},
{
name: 'address1_telephone1',
},
{
name: 'address1_fax',
},
{
name: 'address1_freighttermscode',
},
{
name: 'description',
},
{
name: 'merged',
},
{
name: 'address1_shippingmethodcode',
},
{
name: 'address1_name',
},
{
name: 'aging30_base',
},
{
name: 'address2_telephone2',
},
{
name: 'account',
prop: 'accountid',
},
{
name: 'primarytwitterid',
},
{
name: 'tickersymbol',
},
{
name: 'stockexchange',
},
{
name: 'address2_stateorprovince',
},
{
name: 'ftpsiteurl',
},
{
name: 'statuscode',
},
{
name: 'websiteurl',
},
{
name: 'donotpostalmail',
},
{
name: 'address1_city',
},
{
name: 'address2_fax',
},
{
name: 'aging90_base',
},
{
name: 'opendeals_date',
},
{
name: 'traversedpath',
},
{
name: 'shippingmethodcode',
},
{
name: 'address1_line2',
},
{
name: 'openrevenue_base',
},
{
name: 'updatedate',
},
{
name: 'preferredsystemuseridyominame',
},
{
name: 'address2_line3',
},
{
name: 'address1_postalcode',
},
{
name: 'address2_latitude',
},
{
name: 'ibizprivate',
},
{
name: 'territorycode',
},
{
name: 'teamsfollowed',
},
{
name: 'yominame',
},
{
name: 'address1_latitude',
},
{
name: 'telephone3',
},
{
name: 'ownerid',
},
{
name: 'address2_country',
},
{
name: 'masteraccountidyominame',
},
{
name: 'industrycode',
},
{
name: 'lastonholdtime',
},
{
name: 'address2_addressid',
},
{
name: 'onholdtime',
},
{
name: 'accountclassificationcode',
},
{
name: 'address1_country',
},
{
name: 'address1_addresstypecode',
},
{
name: 'statecode',
},
{
name: 'address2_addresstypecode',
},
{
name: 'accountcategorycode',
},
{
name: 'emailaddress2',
},
{
name: 'address2_shippingmethodcode',
},
{
name: 'importsequencenumber',
},
{
name: 'primarysatoriid',
},
{
name: 'customersizecode',
},
{
name: 'opendeals',
},
{
name: 'donotsendmm',
},
{
name: 'processid',
},
{
name: 'paymenttermscode',
},
{
name: 'sic',
},
{
name: 'address2_primarycontactname',
},
{
name: 'address1_utcoffset',
},
{
name: 'owneridyominame',
},
{
name: 'lastusedincampaign',
},
{
name: 'aging60_base',
},
{
name: 'donotfax',
},
{
name: 'updateman',
},
{
name: 'openrevenue_state',
},
{
name: 'opendeals_state',
},
{
name: 'versionnumber',
},
{
name: 'address1_longitude',
},
{
name: 'aging90',
},
{
name: 'entityimage_url',
},
{
name: 'creditlimit',
},
{
name: 'preferredsystemuserid',
},
{
name: 'revenue',
},
{
name: 'address1_county',
},
{
name: 'address1_line3',
},
{
name: 'stageid',
},
{
name: 'donotemail',
},
{
name: 'address2_postalcode',
},
{
name: 'preferredappointmenttimecode',
},
{
name: 'address2_upszone',
},
{
name: 'createdate',
},
{
name: 'address2_county',
},
{
name: 'owneridtype',
},
{
name: 'address2_composite',
},
{
name: 'address2_name',
},
{
name: 'address2_line1',
},
{
name: 'marketcap_base',
},
{
name: 'emailaddress3',
},
{
name: 'telephone2',
},
{
name: 'createman',
},
{
name: 'address1_postofficebox',
},
{
name: 'creditonhold',
},
{
name: 'address1_addressid',
},
{
name: 'address2_postofficebox',
},
{
name: 'slaname',
},
{
name: 'originatingleadid',
},
{
name: 'transactioncurrencyid',
},
{
name: 'defaultpricelevelid',
},
{
name: 'parentaccountid',
},
{
name: 'preferredequipmentid',
},
{
name: 'territoryid',
},
{
name: 'primarycontactid',
},
{
name: 'slaid',
},
{
name: 'preferredserviceid',
},
{
name: 'originatingleadname',
},
{
name: 'defaultpricelevelname',
},
{
name: 'territoryname',
},
{
name: 'parentaccountname',
},
{
name: 'preferredequipmentname',
},
{
name: 'preferredservicename',
},
{
name: 'primarycontactname',
},
{
name: 'transactioncurrencyname',
},
]
}
}
import { Http } from '@/utils';
import ControlService from '@/widgets/control-service';
/**
* View_Distribution 部件服务对象
*
* @export
* @class View_DistributionService
*/
export default class View_DistributionService extends ControlService {
}
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import AccountView_DistributionBase from './view-distribution-portlet-base.vue';
@Component({
components: {
}
})
export default class AccountView_Distribution extends AccountView_DistributionBase {
}
</script>
<template>
<div class='portlet view-introduction ' :style="{'height': 'auto',}">
<p class='portlet-title'>
<span>
简介
</span>
</p>
<div class="portlet-with-title">
<account-info-introduction :viewdata="JSON.stringify(context)" :viewDefaultUsage="false" ></account-info-introduction>
</div>
</div>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch, Model } from 'vue-property-decorator';
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import AccountService from '@/service/account/account-service';
import View_IntroductionService from './view-introduction-portlet-service';
import { Environment } from '@/environments/environment';
@Component({
components: {
}
})
export default class AccountView_IntroductionBase extends Vue implements ControlInterface {
/**
* 名称
*
* @type {string}
* @memberof View_Introduction
*/
@Prop() public name?: string;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_Introduction
*/
@Prop() public viewState!: Subject<ViewState>;
/**
* 应用上下文
*
* @type {*}
* @memberof View_Introduction
*/
@Prop() public context: any;
/**
* 视图参数
*
* @type {*}
* @memberof View_Introduction
*/
@Prop() public viewparams: any;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_Introduction
*/
public viewStateEvent: Subscription | undefined;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_Introduction
*/
public getControlType(): string {
return 'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_Introduction
*/
public counterServiceArray:Array<any> = [];
/**
* 建构部件服务对象
*
* @type {View_IntroductionService}
* @memberof View_Introduction
*/
public service: View_IntroductionService = new View_IntroductionService({ $store: this.$store });
/**
* 实体服务对象
*
* @type {AccountService}
* @memberof View_Introduction
*/
public appEntityService: AccountService = new AccountService({ $store: this.$store });
/**
* 关闭视图
*
* @param {any} args
* @memberof View_Introduction
*/
public closeView(args: any): void {
let _this: any = this;
_this.$emit('closeview', [args]);
}
/**
* 计数器刷新
*
* @memberof View_Introduction
*/
public counterRefresh(){
const _this:any =this;
if(_this.counterServiceArray && _this.counterServiceArray.length >0){
_this.counterServiceArray.forEach((item:any) =>{
if(item.refreshData && item.refreshData instanceof Function){
item.refreshData();
}
})
}
}
/**
* 长度
*
* @type {number}
* @memberof View_Introduction
*/
@Prop() public height?: number;
/**
* 宽度
*
* @type {number}
* @memberof View_Introduction
*/
@Prop() public width?: number;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_IntroductionBase
*/
@Prop({default: false})public isAdaptiveSize!: boolean;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_IntroductionBase
*/
public getDatas(): any[] {
return [];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_IntroductionBase
*/
public getData(): any {
return {};
}
/**
* vue 生命周期
*
* @memberof View_IntroductionBase
*/
public created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof View_IntroductionBase
*/
public afterCreated(){
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
const refs: any = this.$refs;
Object.keys(refs).forEach((_name: string) => {
this.viewState.next({ tag: _name, action: action, data: data });
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_IntroductionBase
*/
public destroyed() {
this.afterDestroy();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_IntroductionBase
*/
public afterDestroy() {
if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe();
}
}
}
</script>
<style lang='less'>
@import './view-introduction-portlet.less';
</style>
/**
* View_Introduction 部件模型
*
* @export
* @class View_IntroductionModel
*/
export default class View_IntroductionModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_IntroductionModel
*/
public getDataItems(): any[] {
return [
{
name: 'address1_primarycontactname',
},
{
name: 'openrevenue_date',
},
{
name: 'address2_utcoffset',
},
{
name: 'fax',
},
{
name: 'address1_composite',
},
{
name: 'entityimage',
},
{
name: 'emailaddress1',
},
{
name: 'overriddencreatedon',
},
{
name: 'address1_stateorprovince',
},
{
name: 'openrevenue',
},
{
name: 'address1_upszone',
},
{
name: 'followemail',
},
{
name: 'marketingonly',
},
{
name: 'numberofemployees',
},
{
name: 'telephone1',
},
{
name: 'aging60',
},
{
name: 'sharesoutstanding',
},
{
name: 'address2_freighttermscode',
},
{
name: 'entityimage_timestamp',
},
{
name: 'revenue_base',
},
{
name: 'accountratingcode',
},
{
name: 'donotbulkemail',
},
{
name: 'aging30',
},
{
name: 'donotbulkpostalmail',
},
{
name: 'creditlimit_base',
},
{
name: 'timezoneruleversionnumber',
},
{
name: 'customertypecode',
},
{
name: 'address2_longitude',
},
{
name: 'accountname',
},
{
name: 'participatesinworkflow',
},
{
name: 'preferredcontactmethodcode',
},
{
name: 'preferredappointmentdaycode',
},
{
name: 'marketcap',
},
{
name: 'address2_telephone1',
},
{
name: 'businesstypecode',
},
{
name: 'entityimageid',
},
{
name: 'address2_city',
},
{
name: 'ownershipcode',
},
{
name: 'utcconversiontimezonecode',
},
{
name: 'accountnumber',
},
{
name: 'address1_telephone2',
},
{
name: 'address1_line1',
},
{
name: 'donotphone',
},
{
name: 'address1_telephone3',
},
{
name: 'exchangerate',
},
{
name: 'address2_line2',
},
{
name: 'address2_telephone3',
},
{
name: 'address1_telephone1',
},
{
name: 'address1_fax',
},
{
name: 'address1_freighttermscode',
},
{
name: 'description',
},
{
name: 'merged',
},
{
name: 'address1_shippingmethodcode',
},
{
name: 'address1_name',
},
{
name: 'aging30_base',
},
{
name: 'address2_telephone2',
},
{
name: 'account',
prop: 'accountid',
},
{
name: 'primarytwitterid',
},
{
name: 'tickersymbol',
},
{
name: 'stockexchange',
},
{
name: 'address2_stateorprovince',
},
{
name: 'ftpsiteurl',
},
{
name: 'statuscode',
},
{
name: 'websiteurl',
},
{
name: 'donotpostalmail',
},
{
name: 'address1_city',
},
{
name: 'address2_fax',
},
{
name: 'aging90_base',
},
{
name: 'opendeals_date',
},
{
name: 'traversedpath',
},
{
name: 'shippingmethodcode',
},
{
name: 'address1_line2',
},
{
name: 'openrevenue_base',
},
{
name: 'updatedate',
},
{
name: 'preferredsystemuseridyominame',
},
{
name: 'address2_line3',
},
{
name: 'address1_postalcode',
},
{
name: 'address2_latitude',
},
{
name: 'ibizprivate',
},
{
name: 'territorycode',
},
{
name: 'teamsfollowed',
},
{
name: 'yominame',
},
{
name: 'address1_latitude',
},
{
name: 'telephone3',
},
{
name: 'ownerid',
},
{
name: 'address2_country',
},
{
name: 'masteraccountidyominame',
},
{
name: 'industrycode',
},
{
name: 'lastonholdtime',
},
{
name: 'address2_addressid',
},
{
name: 'onholdtime',
},
{
name: 'accountclassificationcode',
},
{
name: 'address1_country',
},
{
name: 'address1_addresstypecode',
},
{
name: 'statecode',
},
{
name: 'address2_addresstypecode',
},
{
name: 'accountcategorycode',
},
{
name: 'emailaddress2',
},
{
name: 'address2_shippingmethodcode',
},
{
name: 'importsequencenumber',
},
{
name: 'primarysatoriid',
},
{
name: 'customersizecode',
},
{
name: 'opendeals',
},
{
name: 'donotsendmm',
},
{
name: 'processid',
},
{
name: 'paymenttermscode',
},
{
name: 'sic',
},
{
name: 'address2_primarycontactname',
},
{
name: 'address1_utcoffset',
},
{
name: 'owneridyominame',
},
{
name: 'lastusedincampaign',
},
{
name: 'aging60_base',
},
{
name: 'donotfax',
},
{
name: 'updateman',
},
{
name: 'openrevenue_state',
},
{
name: 'opendeals_state',
},
{
name: 'versionnumber',
},
{
name: 'address1_longitude',
},
{
name: 'aging90',
},
{
name: 'entityimage_url',
},
{
name: 'creditlimit',
},
{
name: 'preferredsystemuserid',
},
{
name: 'revenue',
},
{
name: 'address1_county',
},
{
name: 'address1_line3',
},
{
name: 'stageid',
},
{
name: 'donotemail',
},
{
name: 'address2_postalcode',
},
{
name: 'preferredappointmenttimecode',
},
{
name: 'address2_upszone',
},
{
name: 'createdate',
},
{
name: 'address2_county',
},
{
name: 'owneridtype',
},
{
name: 'address2_composite',
},
{
name: 'address2_name',
},
{
name: 'address2_line1',
},
{
name: 'marketcap_base',
},
{
name: 'emailaddress3',
},
{
name: 'telephone2',
},
{
name: 'createman',
},
{
name: 'address1_postofficebox',
},
{
name: 'creditonhold',
},
{
name: 'address1_addressid',
},
{
name: 'address2_postofficebox',
},
{
name: 'slaname',
},
{
name: 'originatingleadid',
},
{
name: 'transactioncurrencyid',
},
{
name: 'defaultpricelevelid',
},
{
name: 'parentaccountid',
},
{
name: 'preferredequipmentid',
},
{
name: 'territoryid',
},
{
name: 'primarycontactid',
},
{
name: 'slaid',
},
{
name: 'preferredserviceid',
},
{
name: 'originatingleadname',
},
{
name: 'defaultpricelevelname',
},
{
name: 'territoryname',
},
{
name: 'parentaccountname',
},
{
name: 'preferredequipmentname',
},
{
name: 'preferredservicename',
},
{
name: 'primarycontactname',
},
{
name: 'transactioncurrencyname',
},
]
}
}
import { Http } from '@/utils';
import ControlService from '@/widgets/control-service';
/**
* View_Introduction 部件服务对象
*
* @export
* @class View_IntroductionService
*/
export default class View_IntroductionService extends ControlService {
}
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import AccountView_IntroductionBase from './view-introduction-portlet-base.vue';
@Component({
components: {
}
})
export default class AccountView_Introduction extends AccountView_IntroductionBase {
}
</script>
<template>
<div class='portlet list-by-parent-key ' :style="{'height': isAdaptiveSize ? 'calc(100% - 16px)' : (height > 0 ? height+'px' :'300px'),}">
<p class='portlet-title'>
<span>
日程安排
</span>
<span class="portlet-action">
<a @click="uiAction('u222531e', $event)">
<span>任务</span>
</a>
<a @click="uiAction('ue577d64', $event)">
<span>电子邮件</span>
</a>
<a @click="uiAction('u654c060', $event)">
<span>约会</span>
</a>
<a @click="uiAction('u7019ad0', $event)">
<span>电话联络</span>
</a>
</span>
</p>
<div class="portlet-with-title">
<!-- 测试 -->
<view_dashboard_sysportlet8_list
:viewState="viewState"
:viewparams="viewparams"
:context="context"
createAction="Create"
removeAction="Remove"
updateAction="Update"
fetchAction="FetchByParentKey"
:showBusyIndicator="true"
name="dashboard_sysportlet8_list"
ref='dashboard_sysportlet8_list'
@closeview="closeView($event)">
</view_dashboard_sysportlet8_list>
</div>
</div>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch, Model } from 'vue-property-decorator';
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import ActivityPointerService from '@/service/activity-pointer/activity-pointer-service';
import List_ByParentKeyService from './list-by-parent-key-portlet-service';
import TaskUIService from '@/uiservice/task/task-ui-service';
import EmailUIService from '@/uiservice/email/email-ui-service';
import AppointmentUIService from '@/uiservice/appointment/appointment-ui-service';
import PhoneCallUIService from '@/uiservice/phone-call/phone-call-ui-service';
import { Environment } from '@/environments/environment';
@Component({
components: {
}
})
export default class ActivityPointerList_ByParentKeyBase extends Vue implements ControlInterface {
/**
* 名称
*
* @type {string}
* @memberof List_ByParentKey
*/
@Prop() public name?: string;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof List_ByParentKey
*/
@Prop() public viewState!: Subject<ViewState>;
/**
* 应用上下文
*
* @type {*}
* @memberof List_ByParentKey
*/
@Prop() public context: any;
/**
* 视图参数
*
* @type {*}
* @memberof List_ByParentKey
*/
@Prop() public viewparams: any;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof List_ByParentKey
*/
public viewStateEvent: Subscription | undefined;
/**
* 获取部件类型
*
* @returns {string}
* @memberof List_ByParentKey
*/
public getControlType(): string {
return 'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof List_ByParentKey
*/
public counterServiceArray:Array<any> = [];
/**
* 建构部件服务对象
*
* @type {List_ByParentKeyService}
* @memberof List_ByParentKey
*/
public service: List_ByParentKeyService = new List_ByParentKeyService({ $store: this.$store });
/**
* 实体服务对象
*
* @type {ActivityPointerService}
* @memberof List_ByParentKey
*/
public appEntityService: ActivityPointerService = new ActivityPointerService({ $store: this.$store });
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public dashboard_sysportlet8_u222531e_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:TaskUIService = new TaskUIService();
curUIService.Task_Create(datas,contextJO, paramJO, $event, xData,this,"ActivityPointer");
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public dashboard_sysportlet8_ue577d64_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:EmailUIService = new EmailUIService();
curUIService.Email_Create(datas,contextJO, paramJO, $event, xData,this,"ActivityPointer");
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public dashboard_sysportlet8_u654c060_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:AppointmentUIService = new AppointmentUIService();
curUIService.Appointment_Create(datas,contextJO, paramJO, $event, xData,this,"ActivityPointer");
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public dashboard_sysportlet8_u7019ad0_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:PhoneCallUIService = new PhoneCallUIService();
curUIService.PhoneCall_Create(datas,contextJO, paramJO, $event, xData,this,"ActivityPointer");
}
/**
* 关闭视图
*
* @param {any} args
* @memberof List_ByParentKey
*/
public closeView(args: any): void {
let _this: any = this;
_this.$emit('closeview', [args]);
}
/**
* 计数器刷新
*
* @memberof List_ByParentKey
*/
public counterRefresh(){
const _this:any =this;
if(_this.counterServiceArray && _this.counterServiceArray.length >0){
_this.counterServiceArray.forEach((item:any) =>{
if(item.refreshData && item.refreshData instanceof Function){
item.refreshData();
}
})
}
}
/**
* 长度
*
* @type {number}
* @memberof List_ByParentKey
*/
@Prop() public height?: number;
/**
* 宽度
*
* @type {number}
* @memberof List_ByParentKey
*/
@Prop() public width?: number;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof List_ByParentKeyBase
*/
@Prop({default: false})public isAdaptiveSize!: boolean;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof List_ByParentKeyBase
*/
public getDatas(): any[] {
return [];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof List_ByParentKeyBase
*/
public getData(): any {
return {};
}
/**
* vue 生命周期
*
* @memberof List_ByParentKeyBase
*/
public created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof List_ByParentKeyBase
*/
public afterCreated(){
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
const refs: any = this.$refs;
Object.keys(refs).forEach((_name: string) => {
this.viewState.next({ tag: _name, action: action, data: data });
});
});
}
}
/**
* vue 生命周期
*
* @memberof List_ByParentKeyBase
*/
public destroyed() {
this.afterDestroy();
}
/**
* 执行destroyed后的逻辑
*
* @memberof List_ByParentKeyBase
*/
public afterDestroy() {
if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe();
}
}
/**
* 执行界面行为
*
* @memberof List_ByParentKeyBase
*/
public uiAction(tag:string,event:any){
if(Object.is(tag,'u222531e')){
this.dashboard_sysportlet8_u222531e_click(null,tag,event);
}
if(Object.is(tag,'ue577d64')){
this.dashboard_sysportlet8_ue577d64_click(null,tag,event);
}
if(Object.is(tag,'u654c060')){
this.dashboard_sysportlet8_u654c060_click(null,tag,event);
}
if(Object.is(tag,'u7019ad0')){
this.dashboard_sysportlet8_u7019ad0_click(null,tag,event);
}
}
}
</script>
<style lang='less'>
@import './list-by-parent-key-portlet.less';
</style>
/**
* List_ByParentKey 部件模型
*
* @export
* @class List_ByParentKeyModel
*/
export default class List_ByParentKeyModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof List_ByParentKeyModel
*/
public getDataItems(): any[] {
return [
{
name: 'seriesid',
},
{
name: 'traversedpath',
},
{
name: 'deliveryprioritycode',
},
{
name: 'onholdtime',
},
{
name: 'workflowcreated',
},
{
name: 'senton',
},
{
name: 'lastonholdtime',
},
{
name: 'actualdurationminutes',
},
{
name: 'regardingobjectid',
},
{
name: 'deliverylastattemptedon',
},
{
name: 'mapiprivate',
},
{
name: 'actualend',
},
{
name: 'description',
},
{
name: 'prioritycode',
},
{
name: 'owneridtype',
},
{
name: 'billed',
},
{
name: 'regularactivity',
},
{
name: 'utcconversiontimezonecode',
},
{
name: 'createman',
},
{
name: 'scheduleddurationminutes',
},
{
name: 'activityadditionalparams',
},
{
name: 'activitypointer',
prop: 'activityid',
},
{
name: 'updatedate',
},
{
name: 'stageid',
},
{
name: 'leftvoicemail',
},
{
name: 'scheduledend',
},
{
name: 'exchangeitemid',
},
{
name: 'exchangerate',
},
{
name: 'scheduledstart',
},
{
name: 'instancetypecode',
},
{
name: 'regardingobjectidyominame',
},
{
name: 'regardingobjecttypecode',
},
{
name: 'sortdate',
},
{
name: 'createdate',
},
{
name: 'owneridyominame',
},
{
name: 'community',
},
{
name: 'ownerid',
},
{
name: 'processid',
},
{
name: 'slaname',
},
{
name: 'subject',
},
{
name: 'versionnumber',
},
{
name: 'allparties',
},
{
name: 'updateman',
},
{
name: 'exchangeweblink',
},
{
name: 'statuscode',
},
{
name: 'timezoneruleversionnumber',
},
{
name: 'actualstart',
},
{
name: 'activitytypecode',
},
{
name: 'regardingobjectidname',
},
{
name: 'statecode',
},
{
name: 'serviceid',
},
{
name: 'transactioncurrencyid',
},
{
name: 'slaid',
},
]
}
}
import { Http } from '@/utils';
import ControlService from '@/widgets/control-service';
/**
* List_ByParentKey 部件服务对象
*
* @export
* @class List_ByParentKeyService
*/
export default class List_ByParentKeyService extends ControlService {
}
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import ActivityPointerList_ByParentKeyBase from './list-by-parent-key-portlet-base.vue';
import view_dashboard_sysportlet8_list from '@widgets/activity-pointer/by-parent-key-list/by-parent-key-list.vue';
@Component({
components: {
view_dashboard_sysportlet8_list,
}
})
export default class ActivityPointerList_ByParentKey extends ActivityPointerList_ByParentKeyBase {
}
</script>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import Head_SummaryBase from './head-summary-dashboard-base.vue';
import view_dashboard_sysportlet2 from '@widgets/campaign/pt-info-portlet/pt-info-portlet.vue';
import view_dashboard_sysportlet1 from '@widgets/campaign/pt-info-head-portlet/pt-info-head-portlet.vue';
import view_dashboard_sysportlet2 from '@widgets/campaign/view-info-portlet/view-info-portlet.vue';
import view_dashboard_sysportlet1 from '@widgets/campaign/view-head-portlet/view-head-portlet.vue';
@Component({
......
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import SummaryBase from './summary-dashboard-base.vue';
import view_dashboard_sysportlet2 from '@widgets/campaign/pt-info-schedule-portlet/pt-info-schedule-portlet.vue';
import view_dashboard_sysportlet3 from '@widgets/campaign/pt-info-manager-portlet/pt-info-manager-portlet.vue';
import view_dashboard_sysportlet1 from '@widgets/campaign/pt-info-campagin-portlet/pt-info-campagin-portlet.vue';
import view_dashboard_sysportlet2 from '@widgets/campaign/view-schedule-portlet/view-schedule-portlet.vue';
import view_dashboard_sysportlet3 from '@widgets/campaign/view-manager-portlet/view-manager-portlet.vue';
import view_dashboard_sysportlet1 from '@widgets/campaign/view-campagin-portlet/view-campagin-portlet.vue';
@Component({
......
<template>
<div class='portlet view-campagin ' :style="{'height': 'auto',}">
<p class='portlet-title'>
<span>
信息_活动信息
</span>
</p>
<div class="portlet-with-title">
<campaign-info-campagin :viewdata="JSON.stringify(context)" :viewDefaultUsage="false" ></campaign-info-campagin>
</div>
</div>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch, Model } from 'vue-property-decorator';
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import CampaignService from '@/service/campaign/campaign-service';
import View_CampaginService from './view-campagin-portlet-service';
import { Environment } from '@/environments/environment';
@Component({
components: {
}
})
export default class CampaignView_CampaginBase extends Vue implements ControlInterface {
/**
* 名称
*
* @type {string}
* @memberof View_Campagin
*/
@Prop() public name?: string;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_Campagin
*/
@Prop() public viewState!: Subject<ViewState>;
/**
* 应用上下文
*
* @type {*}
* @memberof View_Campagin
*/
@Prop() public context: any;
/**
* 视图参数
*
* @type {*}
* @memberof View_Campagin
*/
@Prop() public viewparams: any;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_Campagin
*/
public viewStateEvent: Subscription | undefined;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_Campagin
*/
public getControlType(): string {
return 'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_Campagin
*/
public counterServiceArray:Array<any> = [];
/**
* 建构部件服务对象
*
* @type {View_CampaginService}
* @memberof View_Campagin
*/
public service: View_CampaginService = new View_CampaginService({ $store: this.$store });
/**
* 实体服务对象
*
* @type {CampaignService}
* @memberof View_Campagin
*/
public appEntityService: CampaignService = new CampaignService({ $store: this.$store });
/**
* 关闭视图
*
* @param {any} args
* @memberof View_Campagin
*/
public closeView(args: any): void {
let _this: any = this;
_this.$emit('closeview', [args]);
}
/**
* 计数器刷新
*
* @memberof View_Campagin
*/
public counterRefresh(){
const _this:any =this;
if(_this.counterServiceArray && _this.counterServiceArray.length >0){
_this.counterServiceArray.forEach((item:any) =>{
if(item.refreshData && item.refreshData instanceof Function){
item.refreshData();
}
})
}
}
/**
* 长度
*
* @type {number}
* @memberof View_Campagin
*/
@Prop() public height?: number;
/**
* 宽度
*
* @type {number}
* @memberof View_Campagin
*/
@Prop() public width?: number;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_CampaginBase
*/
@Prop({default: false})public isAdaptiveSize!: boolean;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_CampaginBase
*/
public getDatas(): any[] {
return [];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_CampaginBase
*/
public getData(): any {
return {};
}
/**
* vue 生命周期
*
* @memberof View_CampaginBase
*/
public created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof View_CampaginBase
*/
public afterCreated(){
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
const refs: any = this.$refs;
Object.keys(refs).forEach((_name: string) => {
this.viewState.next({ tag: _name, action: action, data: data });
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_CampaginBase
*/
public destroyed() {
this.afterDestroy();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_CampaginBase
*/
public afterDestroy() {
if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe();
}
}
}
</script>
<style lang='less'>
@import './view-campagin-portlet.less';
</style>
/**
* View_Campagin 部件模型
*
* @export
* @class View_CampaginModel
*/
export default class View_CampaginModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_CampaginModel
*/
public getDataItems(): any[] {
return [
{
name: 'expectedresponse',
},
{
name: 'typecode',
},
{
name: 'budgetedcost',
},
{
name: 'createdate',
},
{
name: 'totalactualcost',
},
{
name: 'utcconversiontimezonecode',
},
{
name: 'importsequencenumber',
},
{
name: 'othercost',
},
{
name: 'timezoneruleversionnumber',
},
{
name: 'campaignname',
},
{
name: 'entityimage_url',
},
{
name: 'statecode',
},
{
name: 'template',
},
{
name: 'exchangerate',
},
{
name: 'campaign',
prop: 'campaignid',
},
{
name: 'createman',
},
{
name: 'objective',
},
{
name: 'budgetedcost_base',
},
{
name: 'updateman',
},
{
name: 'expectedrevenue_base',
},
{
name: 'entityimage_timestamp',
},
{
name: 'owneridtype',
},
{
name: 'traversedpath',
},
{
name: 'othercost_base',
},
{
name: 'proposedend',
},
{
name: 'versionnumber',
},
{
name: 'entityimage',
},
{
name: 'codename',
},
{
name: 'description',
},
{
name: 'actualend',
},
{
name: 'expectedrevenue',
},
{
name: 'pricelistname',
},
{
name: 'entityimageid',
},
{
name: 'processid',
},
{
name: 'actualstart',
},
{
name: 'updatedate',
},
{
name: 'ownerid',
},
{
name: 'message',
},
{
name: 'owneridyominame',
},
{
name: 'stageid',
},
{
name: 'statuscode',
},
{
name: 'overriddencreatedon',
},
{
name: 'proposedstart',
},
{
name: 'totalactualcost_base',
},
{
name: 'emailaddress',
},
{
name: 'promotioncodename',
},
{
name: 'pricelistid',
},
{
name: 'transactioncurrencyid',
},
{
name: 'currencyname',
},
]
}
}
import { Http } from '@/utils';
import ControlService from '@/widgets/control-service';
/**
* View_Campagin 部件服务对象
*
* @export
* @class View_CampaginService
*/
export default class View_CampaginService extends ControlService {
}
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import CampaignView_CampaginBase from './view-campagin-portlet-base.vue';
@Component({
components: {
}
})
export default class CampaignView_Campagin extends CampaignView_CampaginBase {
}
</script>
<template>
<div class='portlet view-head ' :style="{'height': 'auto',}">
<div class="portlet-without-title">
<campaign-info-head :viewdata="JSON.stringify(context)" :viewDefaultUsage="false" ></campaign-info-head>
</div>
</div>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch, Model } from 'vue-property-decorator';
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import CampaignService from '@/service/campaign/campaign-service';
import View_HeadService from './view-head-portlet-service';
import { Environment } from '@/environments/environment';
@Component({
components: {
}
})
export default class CampaignView_HeadBase extends Vue implements ControlInterface {
/**
* 名称
*
* @type {string}
* @memberof View_Head
*/
@Prop() public name?: string;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_Head
*/
@Prop() public viewState!: Subject<ViewState>;
/**
* 应用上下文
*
* @type {*}
* @memberof View_Head
*/
@Prop() public context: any;
/**
* 视图参数
*
* @type {*}
* @memberof View_Head
*/
@Prop() public viewparams: any;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_Head
*/
public viewStateEvent: Subscription | undefined;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_Head
*/
public getControlType(): string {
return 'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_Head
*/
public counterServiceArray:Array<any> = [];
/**
* 建构部件服务对象
*
* @type {View_HeadService}
* @memberof View_Head
*/
public service: View_HeadService = new View_HeadService({ $store: this.$store });
/**
* 实体服务对象
*
* @type {CampaignService}
* @memberof View_Head
*/
public appEntityService: CampaignService = new CampaignService({ $store: this.$store });
/**
* 关闭视图
*
* @param {any} args
* @memberof View_Head
*/
public closeView(args: any): void {
let _this: any = this;
_this.$emit('closeview', [args]);
}
/**
* 计数器刷新
*
* @memberof View_Head
*/
public counterRefresh(){
const _this:any =this;
if(_this.counterServiceArray && _this.counterServiceArray.length >0){
_this.counterServiceArray.forEach((item:any) =>{
if(item.refreshData && item.refreshData instanceof Function){
item.refreshData();
}
})
}
}
/**
* 长度
*
* @type {number}
* @memberof View_Head
*/
@Prop() public height?: number;
/**
* 宽度
*
* @type {number}
* @memberof View_Head
*/
@Prop() public width?: number;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_HeadBase
*/
@Prop({default: false})public isAdaptiveSize!: boolean;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_HeadBase
*/
public getDatas(): any[] {
return [];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_HeadBase
*/
public getData(): any {
return {};
}
/**
* vue 生命周期
*
* @memberof View_HeadBase
*/
public created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof View_HeadBase
*/
public afterCreated(){
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
const refs: any = this.$refs;
Object.keys(refs).forEach((_name: string) => {
this.viewState.next({ tag: _name, action: action, data: data });
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_HeadBase
*/
public destroyed() {
this.afterDestroy();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_HeadBase
*/
public afterDestroy() {
if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe();
}
}
}
</script>
<style lang='less'>
@import './view-head-portlet.less';
</style>
/**
* View_Head 部件模型
*
* @export
* @class View_HeadModel
*/
export default class View_HeadModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_HeadModel
*/
public getDataItems(): any[] {
return [
{
name: 'expectedresponse',
},
{
name: 'typecode',
},
{
name: 'budgetedcost',
},
{
name: 'createdate',
},
{
name: 'totalactualcost',
},
{
name: 'utcconversiontimezonecode',
},
{
name: 'importsequencenumber',
},
{
name: 'othercost',
},
{
name: 'timezoneruleversionnumber',
},
{
name: 'campaignname',
},
{
name: 'entityimage_url',
},
{
name: 'statecode',
},
{
name: 'template',
},
{
name: 'exchangerate',
},
{
name: 'campaign',
prop: 'campaignid',
},
{
name: 'createman',
},
{
name: 'objective',
},
{
name: 'budgetedcost_base',
},
{
name: 'updateman',
},
{
name: 'expectedrevenue_base',
},
{
name: 'entityimage_timestamp',
},
{
name: 'owneridtype',
},
{
name: 'traversedpath',
},
{
name: 'othercost_base',
},
{
name: 'proposedend',
},
{
name: 'versionnumber',
},
{
name: 'entityimage',
},
{
name: 'codename',
},
{
name: 'description',
},
{
name: 'actualend',
},
{
name: 'expectedrevenue',
},
{
name: 'pricelistname',
},
{
name: 'entityimageid',
},
{
name: 'processid',
},
{
name: 'actualstart',
},
{
name: 'updatedate',
},
{
name: 'ownerid',
},
{
name: 'message',
},
{
name: 'owneridyominame',
},
{
name: 'stageid',
},
{
name: 'statuscode',
},
{
name: 'overriddencreatedon',
},
{
name: 'proposedstart',
},
{
name: 'totalactualcost_base',
},
{
name: 'emailaddress',
},
{
name: 'promotioncodename',
},
{
name: 'pricelistid',
},
{
name: 'transactioncurrencyid',
},
{
name: 'currencyname',
},
]
}
}
import { Http } from '@/utils';
import ControlService from '@/widgets/control-service';
/**
* View_Head 部件服务对象
*
* @export
* @class View_HeadService
*/
export default class View_HeadService extends ControlService {
}
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import CampaignView_HeadBase from './view-head-portlet-base.vue';
@Component({
components: {
}
})
export default class CampaignView_Head extends CampaignView_HeadBase {
}
</script>
<template>
<div class='portlet view-info ' :style="{'height': 'auto',}">
<div class="portlet-without-title">
<campaign-info :viewdata="JSON.stringify(context)" :viewDefaultUsage="false" ></campaign-info>
</div>
</div>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch, Model } from 'vue-property-decorator';
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import CampaignService from '@/service/campaign/campaign-service';
import View_InfoService from './view-info-portlet-service';
import { Environment } from '@/environments/environment';
@Component({
components: {
}
})
export default class CampaignView_InfoBase extends Vue implements ControlInterface {
/**
* 名称
*
* @type {string}
* @memberof View_Info
*/
@Prop() public name?: string;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_Info
*/
@Prop() public viewState!: Subject<ViewState>;
/**
* 应用上下文
*
* @type {*}
* @memberof View_Info
*/
@Prop() public context: any;
/**
* 视图参数
*
* @type {*}
* @memberof View_Info
*/
@Prop() public viewparams: any;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_Info
*/
public viewStateEvent: Subscription | undefined;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_Info
*/
public getControlType(): string {
return 'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_Info
*/
public counterServiceArray:Array<any> = [];
/**
* 建构部件服务对象
*
* @type {View_InfoService}
* @memberof View_Info
*/
public service: View_InfoService = new View_InfoService({ $store: this.$store });
/**
* 实体服务对象
*
* @type {CampaignService}
* @memberof View_Info
*/
public appEntityService: CampaignService = new CampaignService({ $store: this.$store });
/**
* 关闭视图
*
* @param {any} args
* @memberof View_Info
*/
public closeView(args: any): void {
let _this: any = this;
_this.$emit('closeview', [args]);
}
/**
* 计数器刷新
*
* @memberof View_Info
*/
public counterRefresh(){
const _this:any =this;
if(_this.counterServiceArray && _this.counterServiceArray.length >0){
_this.counterServiceArray.forEach((item:any) =>{
if(item.refreshData && item.refreshData instanceof Function){
item.refreshData();
}
})
}
}
/**
* 长度
*
* @type {number}
* @memberof View_Info
*/
@Prop() public height?: number;
/**
* 宽度
*
* @type {number}
* @memberof View_Info
*/
@Prop() public width?: number;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_InfoBase
*/
@Prop({default: false})public isAdaptiveSize!: boolean;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_InfoBase
*/
public getDatas(): any[] {
return [];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_InfoBase
*/
public getData(): any {
return {};
}
/**
* vue 生命周期
*
* @memberof View_InfoBase
*/
public created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof View_InfoBase
*/
public afterCreated(){
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
const refs: any = this.$refs;
Object.keys(refs).forEach((_name: string) => {
this.viewState.next({ tag: _name, action: action, data: data });
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_InfoBase
*/
public destroyed() {
this.afterDestroy();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_InfoBase
*/
public afterDestroy() {
if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe();
}
}
}
</script>
<style lang='less'>
@import './view-info-portlet.less';
</style>
/**
* View_Info 部件模型
*
* @export
* @class View_InfoModel
*/
export default class View_InfoModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_InfoModel
*/
public getDataItems(): any[] {
return [
{
name: 'expectedresponse',
},
{
name: 'typecode',
},
{
name: 'budgetedcost',
},
{
name: 'createdate',
},
{
name: 'totalactualcost',
},
{
name: 'utcconversiontimezonecode',
},
{
name: 'importsequencenumber',
},
{
name: 'othercost',
},
{
name: 'timezoneruleversionnumber',
},
{
name: 'campaignname',
},
{
name: 'entityimage_url',
},
{
name: 'statecode',
},
{
name: 'template',
},
{
name: 'exchangerate',
},
{
name: 'campaign',
prop: 'campaignid',
},
{
name: 'createman',
},
{
name: 'objective',
},
{
name: 'budgetedcost_base',
},
{
name: 'updateman',
},
{
name: 'expectedrevenue_base',
},
{
name: 'entityimage_timestamp',
},
{
name: 'owneridtype',
},
{
name: 'traversedpath',
},
{
name: 'othercost_base',
},
{
name: 'proposedend',
},
{
name: 'versionnumber',
},
{
name: 'entityimage',
},
{
name: 'codename',
},
{
name: 'description',
},
{
name: 'actualend',
},
{
name: 'expectedrevenue',
},
{
name: 'pricelistname',
},
{
name: 'entityimageid',
},
{
name: 'processid',
},
{
name: 'actualstart',
},
{
name: 'updatedate',
},
{
name: 'ownerid',
},
{
name: 'message',
},
{
name: 'owneridyominame',
},
{
name: 'stageid',
},
{
name: 'statuscode',
},
{
name: 'overriddencreatedon',
},
{
name: 'proposedstart',
},
{
name: 'totalactualcost_base',
},
{
name: 'emailaddress',
},
{
name: 'promotioncodename',
},
{
name: 'pricelistid',
},
{
name: 'transactioncurrencyid',
},
{
name: 'currencyname',
},
]
}
}
import { Http } from '@/utils';
import ControlService from '@/widgets/control-service';
/**
* View_Info 部件服务对象
*
* @export
* @class View_InfoService
*/
export default class View_InfoService extends ControlService {
}
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import CampaignView_InfoBase from './view-info-portlet-base.vue';
@Component({
components: {
}
})
export default class CampaignView_Info extends CampaignView_InfoBase {
}
</script>
<template>
<div class='portlet view-manager ' :style="{'height': 'auto',}">
<p class='portlet-title'>
<span>
管理信息
</span>
</p>
<div class="portlet-with-title">
<campaign-info-manager :viewdata="JSON.stringify(context)" :viewDefaultUsage="false" ></campaign-info-manager>
</div>
</div>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch, Model } from 'vue-property-decorator';
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import CampaignService from '@/service/campaign/campaign-service';
import View_ManagerService from './view-manager-portlet-service';
import { Environment } from '@/environments/environment';
@Component({
components: {
}
})
export default class CampaignView_ManagerBase extends Vue implements ControlInterface {
/**
* 名称
*
* @type {string}
* @memberof View_Manager
*/
@Prop() public name?: string;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_Manager
*/
@Prop() public viewState!: Subject<ViewState>;
/**
* 应用上下文
*
* @type {*}
* @memberof View_Manager
*/
@Prop() public context: any;
/**
* 视图参数
*
* @type {*}
* @memberof View_Manager
*/
@Prop() public viewparams: any;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_Manager
*/
public viewStateEvent: Subscription | undefined;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_Manager
*/
public getControlType(): string {
return 'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_Manager
*/
public counterServiceArray:Array<any> = [];
/**
* 建构部件服务对象
*
* @type {View_ManagerService}
* @memberof View_Manager
*/
public service: View_ManagerService = new View_ManagerService({ $store: this.$store });
/**
* 实体服务对象
*
* @type {CampaignService}
* @memberof View_Manager
*/
public appEntityService: CampaignService = new CampaignService({ $store: this.$store });
/**
* 关闭视图
*
* @param {any} args
* @memberof View_Manager
*/
public closeView(args: any): void {
let _this: any = this;
_this.$emit('closeview', [args]);
}
/**
* 计数器刷新
*
* @memberof View_Manager
*/
public counterRefresh(){
const _this:any =this;
if(_this.counterServiceArray && _this.counterServiceArray.length >0){
_this.counterServiceArray.forEach((item:any) =>{
if(item.refreshData && item.refreshData instanceof Function){
item.refreshData();
}
})
}
}
/**
* 长度
*
* @type {number}
* @memberof View_Manager
*/
@Prop() public height?: number;
/**
* 宽度
*
* @type {number}
* @memberof View_Manager
*/
@Prop() public width?: number;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_ManagerBase
*/
@Prop({default: false})public isAdaptiveSize!: boolean;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_ManagerBase
*/
public getDatas(): any[] {
return [];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_ManagerBase
*/
public getData(): any {
return {};
}
/**
* vue 生命周期
*
* @memberof View_ManagerBase
*/
public created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof View_ManagerBase
*/
public afterCreated(){
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
const refs: any = this.$refs;
Object.keys(refs).forEach((_name: string) => {
this.viewState.next({ tag: _name, action: action, data: data });
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_ManagerBase
*/
public destroyed() {
this.afterDestroy();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_ManagerBase
*/
public afterDestroy() {
if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe();
}
}
}
</script>
<style lang='less'>
@import './view-manager-portlet.less';
</style>
/**
* View_Manager 部件模型
*
* @export
* @class View_ManagerModel
*/
export default class View_ManagerModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_ManagerModel
*/
public getDataItems(): any[] {
return [
{
name: 'expectedresponse',
},
{
name: 'typecode',
},
{
name: 'budgetedcost',
},
{
name: 'createdate',
},
{
name: 'totalactualcost',
},
{
name: 'utcconversiontimezonecode',
},
{
name: 'importsequencenumber',
},
{
name: 'othercost',
},
{
name: 'timezoneruleversionnumber',
},
{
name: 'campaignname',
},
{
name: 'entityimage_url',
},
{
name: 'statecode',
},
{
name: 'template',
},
{
name: 'exchangerate',
},
{
name: 'campaign',
prop: 'campaignid',
},
{
name: 'createman',
},
{
name: 'objective',
},
{
name: 'budgetedcost_base',
},
{
name: 'updateman',
},
{
name: 'expectedrevenue_base',
},
{
name: 'entityimage_timestamp',
},
{
name: 'owneridtype',
},
{
name: 'traversedpath',
},
{
name: 'othercost_base',
},
{
name: 'proposedend',
},
{
name: 'versionnumber',
},
{
name: 'entityimage',
},
{
name: 'codename',
},
{
name: 'description',
},
{
name: 'actualend',
},
{
name: 'expectedrevenue',
},
{
name: 'pricelistname',
},
{
name: 'entityimageid',
},
{
name: 'processid',
},
{
name: 'actualstart',
},
{
name: 'updatedate',
},
{
name: 'ownerid',
},
{
name: 'message',
},
{
name: 'owneridyominame',
},
{
name: 'stageid',
},
{
name: 'statuscode',
},
{
name: 'overriddencreatedon',
},
{
name: 'proposedstart',
},
{
name: 'totalactualcost_base',
},
{
name: 'emailaddress',
},
{
name: 'promotioncodename',
},
{
name: 'pricelistid',
},
{
name: 'transactioncurrencyid',
},
{
name: 'currencyname',
},
]
}
}
import { Http } from '@/utils';
import ControlService from '@/widgets/control-service';
/**
* View_Manager 部件服务对象
*
* @export
* @class View_ManagerService
*/
export default class View_ManagerService extends ControlService {
}
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import CampaignView_ManagerBase from './view-manager-portlet-base.vue';
@Component({
components: {
}
})
export default class CampaignView_Manager extends CampaignView_ManagerBase {
}
</script>
<template>
<div class='portlet view-schedule ' :style="{'height': 'auto',}">
<p class='portlet-title'>
<span>
信息_日程安排
</span>
</p>
<div class="portlet-with-title">
<campaign-info-schedule :viewdata="JSON.stringify(context)" :viewDefaultUsage="false" ></campaign-info-schedule>
</div>
</div>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch, Model } from 'vue-property-decorator';
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import CampaignService from '@/service/campaign/campaign-service';
import View_ScheduleService from './view-schedule-portlet-service';
import { Environment } from '@/environments/environment';
@Component({
components: {
}
})
export default class CampaignView_ScheduleBase extends Vue implements ControlInterface {
/**
* 名称
*
* @type {string}
* @memberof View_Schedule
*/
@Prop() public name?: string;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_Schedule
*/
@Prop() public viewState!: Subject<ViewState>;
/**
* 应用上下文
*
* @type {*}
* @memberof View_Schedule
*/
@Prop() public context: any;
/**
* 视图参数
*
* @type {*}
* @memberof View_Schedule
*/
@Prop() public viewparams: any;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_Schedule
*/
public viewStateEvent: Subscription | undefined;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_Schedule
*/
public getControlType(): string {
return 'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_Schedule
*/
public counterServiceArray:Array<any> = [];
/**
* 建构部件服务对象
*
* @type {View_ScheduleService}
* @memberof View_Schedule
*/
public service: View_ScheduleService = new View_ScheduleService({ $store: this.$store });
/**
* 实体服务对象
*
* @type {CampaignService}
* @memberof View_Schedule
*/
public appEntityService: CampaignService = new CampaignService({ $store: this.$store });
/**
* 关闭视图
*
* @param {any} args
* @memberof View_Schedule
*/
public closeView(args: any): void {
let _this: any = this;
_this.$emit('closeview', [args]);
}
/**
* 计数器刷新
*
* @memberof View_Schedule
*/
public counterRefresh(){
const _this:any =this;
if(_this.counterServiceArray && _this.counterServiceArray.length >0){
_this.counterServiceArray.forEach((item:any) =>{
if(item.refreshData && item.refreshData instanceof Function){
item.refreshData();
}
})
}
}
/**
* 长度
*
* @type {number}
* @memberof View_Schedule
*/
@Prop() public height?: number;
/**
* 宽度
*
* @type {number}
* @memberof View_Schedule
*/
@Prop() public width?: number;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_ScheduleBase
*/
@Prop({default: false})public isAdaptiveSize!: boolean;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_ScheduleBase
*/
public getDatas(): any[] {
return [];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_ScheduleBase
*/
public getData(): any {
return {};
}
/**
* vue 生命周期
*
* @memberof View_ScheduleBase
*/
public created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof View_ScheduleBase
*/
public afterCreated(){
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
const refs: any = this.$refs;
Object.keys(refs).forEach((_name: string) => {
this.viewState.next({ tag: _name, action: action, data: data });
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_ScheduleBase
*/
public destroyed() {
this.afterDestroy();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_ScheduleBase
*/
public afterDestroy() {
if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe();
}
}
}
</script>
<style lang='less'>
@import './view-schedule-portlet.less';
</style>
/**
* View_Schedule 部件模型
*
* @export
* @class View_ScheduleModel
*/
export default class View_ScheduleModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_ScheduleModel
*/
public getDataItems(): any[] {
return [
{
name: 'expectedresponse',
},
{
name: 'typecode',
},
{
name: 'budgetedcost',
},
{
name: 'createdate',
},
{
name: 'totalactualcost',
},
{
name: 'utcconversiontimezonecode',
},
{
name: 'importsequencenumber',
},
{
name: 'othercost',
},
{
name: 'timezoneruleversionnumber',
},
{
name: 'campaignname',
},
{
name: 'entityimage_url',
},
{
name: 'statecode',
},
{
name: 'template',
},
{
name: 'exchangerate',
},
{
name: 'campaign',
prop: 'campaignid',
},
{
name: 'createman',
},
{
name: 'objective',
},
{
name: 'budgetedcost_base',
},
{
name: 'updateman',
},
{
name: 'expectedrevenue_base',
},
{
name: 'entityimage_timestamp',
},
{
name: 'owneridtype',
},
{
name: 'traversedpath',
},
{
name: 'othercost_base',
},
{
name: 'proposedend',
},
{
name: 'versionnumber',
},
{
name: 'entityimage',
},
{
name: 'codename',
},
{
name: 'description',
},
{
name: 'actualend',
},
{
name: 'expectedrevenue',
},
{
name: 'pricelistname',
},
{
name: 'entityimageid',
},
{
name: 'processid',
},
{
name: 'actualstart',
},
{
name: 'updatedate',
},
{
name: 'ownerid',
},
{
name: 'message',
},
{
name: 'owneridyominame',
},
{
name: 'stageid',
},
{
name: 'statuscode',
},
{
name: 'overriddencreatedon',
},
{
name: 'proposedstart',
},
{
name: 'totalactualcost_base',
},
{
name: 'emailaddress',
},
{
name: 'promotioncodename',
},
{
name: 'pricelistid',
},
{
name: 'transactioncurrencyid',
},
{
name: 'currencyname',
},
]
}
}
import { Http } from '@/utils';
import ControlService from '@/widgets/control-service';
/**
* View_Schedule 部件服务对象
*
* @export
* @class View_ScheduleService
*/
export default class View_ScheduleService extends ControlService {
}
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import CampaignView_ScheduleBase from './view-schedule-portlet-base.vue';
@Component({
components: {
}
})
export default class CampaignView_Schedule extends CampaignView_ScheduleBase {
}
</script>
......@@ -1305,7 +1305,7 @@ export default class AbstractInfoBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: '错误', desc: 'ContactAbstractEditView9视图表单loadAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'ContactInfo_Abstract视图表单loadAction参数未配置' });
return;
}
const arg: any = { ...opt };
......@@ -1340,7 +1340,7 @@ export default class AbstractInfoBase extends Vue implements ControlInterface {
*/
public loadDraft(opt: any = {}): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: '错误', desc: 'ContactAbstractEditView9视图表单loaddraftAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'ContactInfo_Abstract视图表单loaddraftAction参数未配置' });
return;
}
const arg: any = { ...opt } ;
......@@ -1402,7 +1402,7 @@ export default class AbstractInfoBase extends Vue implements ControlInterface {
const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction;
if(!action){
let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction";
this.$Notice.error({ title: '错误', desc: 'ContactAbstractEditView9视图表单'+actionName+'参数未配置' });
this.$Notice.error({ title: '错误', desc: 'ContactInfo_Abstract视图表单'+actionName+'参数未配置' });
return;
}
Object.assign(arg,{viewparams:this.viewparams});
......@@ -1466,7 +1466,7 @@ export default class AbstractInfoBase extends Vue implements ControlInterface {
const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction;
if(!action){
let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction";
this.$Notice.error({ title: '错误', desc: 'ContactAbstractEditView9视图表单'+actionName+'参数未配置' });
this.$Notice.error({ title: '错误', desc: 'ContactInfo_Abstract视图表单'+actionName+'参数未配置' });
return;
}
Object.assign(arg,{viewparams:this.viewparams});
......@@ -1516,7 +1516,7 @@ export default class AbstractInfoBase extends Vue implements ControlInterface {
public remove(opt:Array<any> = [],showResultInfo?: boolean): Promise<any> {
return new Promise((resolve: any, reject: any) => {
if(!this.removeAction){
this.$Notice.error({ title: '错误', desc: 'ContactAbstractEditView9视图表单removeAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'ContactInfo_Abstract视图表单removeAction参数未配置' });
return;
}
const arg: any = opt[0];
......
<template>
<div class='dashboard'>
<row v-if="isEnableCustomized">
<app-build @handleClick="handleClick"></app-build>
</row>
<row v-if="!isHasCustomized">
<i-col :md="{ span: 24, offset: 0 }">
<card class="portlet-card" :bordered="false" dis-hover :padding="0">
<span>
<view_dashboard_sysportlet1
:viewState="viewState"
:viewparams="viewparams"
:context="context"
:height="300"
name="dashboard_sysportlet1"
ref='dashboard_sysportlet1'
@closeview="closeView($event)">
</view_dashboard_sysportlet1>
</span>
</card>
</i-col>
</row>
<row v-if="isHasCustomized" style="width: 100%;min-height: calc(100% - 40px);">
<div class="portlet-container" style="position: relative;width:100%;">
<template v-for="(item, index) of modelDta">
<div :key="index" :style="{zIndex: 10, position: 'absolute', height: item.h*layoutRowH + 'px', width: `calc(100% / ${layoutColNum} * ${item.w})`,top: item.y*layoutRowH + 'px', left: `calc(100% / ${layoutColNum} * ${item.x})`}">
<component :key="$util.createUUID()" :is="item.componentName" :name="item.portletCodeName" :context="JSON.parse(JSON.stringify(context))" :viewDefaultUsage="false" :isAdaptiveSize="true" :viewState="viewState"></component>
</div>
</template>
</div>
</row>
</div>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch, Model } from 'vue-property-decorator';
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import ContactService from '@/service/contact/contact-service';
import ConAbsService from './con-abs-dashboard-service';
import UtilService from '@/utilservice/util-service';
@Component({
components: {
}
})
export default class ConAbsBase extends Vue implements ControlInterface {
/**
* 名称
*
* @type {string}
* @memberof ConAbs
*/
@Prop() public name?: string;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof ConAbs
*/
@Prop() public viewState!: Subject<ViewState>;
/**
* 应用上下文
*
* @type {*}
* @memberof ConAbs
*/
@Prop() public context: any;
/**
* 视图参数
*
* @type {*}
* @memberof ConAbs
*/
@Prop() public viewparams: any;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof ConAbs
*/
public viewStateEvent: Subscription | undefined;
/**
* 获取部件类型
*
* @returns {string}
* @memberof ConAbs
*/
public getControlType(): string {
return 'DASHBOARD'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof ConAbs
*/
public counterServiceArray:Array<any> = [];
/**
* 建构部件服务对象
*
* @type {ConAbsService}
* @memberof ConAbs
*/
public service: ConAbsService = new ConAbsService({ $store: this.$store });
/**
* 实体服务对象
*
* @type {ContactService}
* @memberof ConAbs
*/
public appEntityService: ContactService = new ContactService({ $store: this.$store });
/**
* 关闭视图
*
* @param {any} args
* @memberof ConAbs
*/
public closeView(args: any): void {
let _this: any = this;
_this.$emit('closeview', [args]);
}
/**
* 计数器刷新
*
* @memberof ConAbs
*/
public counterRefresh(){
const _this:any =this;
if(_this.counterServiceArray && _this.counterServiceArray.length >0){
_this.counterServiceArray.forEach((item:any) =>{
if(item.refreshData && item.refreshData instanceof Function){
item.refreshData();
}
})
}
}
/**
* 是否支持看板定制
*
* @public
* @type {(boolean)}
* @memberof ConAbs
*/
@Prop() public isEnableCustomized!:boolean;
/**
* 是否已有看板定制
*
* @public
* @type {(boolean)}
* @memberof ConAbs
*/
public isHasCustomized:boolean = false;
/**
* 模型数据
*
* @public
* @type {(*)}
* @memberof ConAbs
*/
public modelDta:any;
/**
* modleId
*
* @type {string}
* @memberof ConAbs
*/
public modelId:string = "dashboard_contact_conabs";
/**
* 建构功能服务对象
*
* @type {UtilService}
* @memberof ConAbs
*/
public utilService:UtilService = new UtilService();
/**
* 功能服务名称
*
* @type {string}
* @memberof ConAbs
*/
public utilServiceName:string = "";
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof ConAbs
*/
public getDatas(): any[] {
return [];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof ConAbs
*/
public getData(): any {
return {};
}
/**
* vue 生命周期
*
* @memberof ConAbs
*/
public created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof ConAbs
*/
public afterCreated(){
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
if (Object.is('load', action)) {
this.loadModel();
}
});
}
}
/**
* 动态设计水平列数
*
* @memberof ConAbs
*/
public layoutColNum:number = 12;
/**
* 动态设计单元格高度,80px
*
* @memberof ConAbs
*/
public layoutRowH:number = 80;
/**
* 通知状态
*
* @memberof ConAbs
*/
public notifyState(){
this.$nextTick(() =>{
if (this.isHasCustomized) {
if (this.modelDta && this.modelDta.length > 0) {
this.modelDta.forEach((item: any) => {
this.viewState.next({
tag: item.portletCodeName,
action: "load",
data: JSON.parse(JSON.stringify(this.viewparams))
});
});
}
} else {
if (this.viewState) {
const refs: any = this.$refs;
Object.keys(refs).forEach((name: string) => {
this.viewState.next({
tag: name,
action: "load",
data: JSON.parse(JSON.stringify(this.viewparams))
});
});
}
}
})
}
/**
* 加载布局与数据模型
*
* @memberof ConAbs
*/
public loadModel(){
if(this.isEnableCustomized){
this.utilService.getService(this.utilServiceName).then((service:any) =>{
service.loadModelData(JSON.parse(JSON.stringify(this.context)),{modelid:this.modelId,utilServiceName:this.utilServiceName}).then((res:any) =>{
if(res && res.status == 200){
const data:any = res.data;
if(data && data.length >0){
this.isHasCustomized = true;
this.modelDta = data;
this.$forceUpdate();
}else{
this.isHasCustomized = false;
}
this.notifyState();
}else{
console.error("加载面板模型异常");
this.isHasCustomized = false;
this.notifyState();
}
}).catch((error:any)=>{
console.error("加载面板模型异常");
console.error(error);
this.isHasCustomized = false;
this.notifyState();
});
})
}else{
this.notifyState();
}
}
/**
* 处理私人定制按钮
*
* @memberof ConAbs
*/
public handleClick(){
const view:any ={
viewname: 'app-portal-design',
title: '面板设计',
width: 1600,
placement: 'DRAWER_RIGHT'
}
const viewparam:any ={
modelid:this.modelId,
utilServiceName:this.utilServiceName,
appdeName:'Contact'
}
const appdrawer = this.$appdrawer.openDrawer(view, JSON.parse(JSON.stringify(this.context)), viewparam);
appdrawer.subscribe((result: any) => {
if(Object.is(result.ret,'OK')){
this.loadModel();
}
});
}
/**
* vue 生命周期
*
* @memberof ConAbs
*/
public destroyed() {
this.afterDestroy();
}
/**
* 执行destroyed后的逻辑
*
* @memberof ConAbs
*/
public afterDestroy() {
if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe();
}
}
}
</script>
<style lang='less'>
@import './con-abs-dashboard.less';
</style>
\ No newline at end of file
/**
* ConAbs 部件模型
*
* @export
* @class ConAbsModel
*/
export default class ConAbsModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof ConAbsModel
*/
public getDataItems(): any[] {
return [
{
name: 'address1_freighttermscode',
},
{
name: 'address3_city',
},
{
name: 'department',
},
{
name: 'parentcustomeridtype',
},
{
name: 'address1_stateorprovince',
},
{
name: 'aging90_base',
},
{
name: 'accountidyominame',
},
{
name: 'donotbulkpostalmail',
},
{
name: 'managername',
},
{
name: 'donotpostalmail',
},
{
name: 'spousesname',
},
{
name: 'familystatuscode',
},
{
name: 'owneridtype',
},
{
name: 'address3_composite',
},
{
name: 'address3_shippingmethodcode',
},
{
name: 'lastname',
},
{
name: 'lastonholdtime',
},
{
name: 'educationcode',
},
{
name: 'address2_line1',
},
{
name: 'birthdate',
},
{
name: 'owneridyominame',
},
{
name: 'haschildrencode',
},
{
name: 'company',
},
{
name: 'address2_fax',
},
{
name: 'assistantphone',
},
{
name: 'callback',
},
{
name: 'paymenttermscode',
},
{
name: 'address2_telephone1',
},
{
name: 'marketingonly',
},
{
name: 'address2_utcoffset',
},
{
name: 'address2_shippingmethodcode',
},
{
name: 'traversedpath',
},
{
name: 'employeeid',
},
{
name: 'creditlimit_base',
},
{
name: 'followemail',
},
{
name: 'address3_postalcode',
},
{
name: 'merged',
},
{
name: 'jobtitle',
},
{
name: 'address1_telephone1',
},
{
name: 'customersizecode',
},
{
name: 'address3_addresstypecode',
},
{
name: 'pager',
},
{
name: 'assistantname',
},
{
name: 'address1_composite',
},
{
name: 'address1_line1',
},
{
name: 'yomimiddlename',
},
{
name: 'address1_telephone3',
},
{
name: 'telephone2',
},
{
name: 'address2_addressid',
},
{
name: 'parentcontactidyominame',
},
{
name: 'leadsourcecode',
},
{
name: 'statecode',
},
{
name: 'address2_freighttermscode',
},
{
name: 'emailaddress1',
},
{
name: 'entityimage_timestamp',
},
{
name: 'address3_line1',
},
{
name: 'salutation',
},
{
name: 'address1_line3',
},
{
name: 'address3_primarycontactname',
},
{
name: 'ibizprivate',
},
{
name: 'donotfax',
},
{
name: 'createdate',
},
{
name: 'preferredsystemuseridyominame',
},
{
name: 'updatedate',
},
{
name: 'address3_stateorprovince',
},
{
name: 'address3_line3',
},
{
name: 'creditlimit',
},
{
name: 'timezoneruleversionnumber',
},
{
name: 'parentcustomerid',
},
{
name: 'childrensnames',
},
{
name: 'address1_addresstypecode',
},
{
name: 'accountrolecode',
},
{
name: 'donotphone',
},
{
name: 'managerphone',
},
{
name: 'creditonhold',
},
{
name: 'updateman',
},
{
name: 'address2_postalcode',
},
{
name: 'address1_line2',
},
{
name: 'nickname',
},
{
name: 'versionnumber',
},
{
name: 'yomifullname',
},
{
name: 'entityimage',
},
{
name: 'shippingmethodcode',
},
{
name: 'customertypecode',
},
{
name: 'address2_county',
},
{
name: 'aging90',
},
{
name: 'address2_stateorprovince',
},
{
name: 'address3_utcoffset',
},
{
name: 'fullname',
},
{
name: 'participatesinworkflow',
},
{
name: 'websiteurl',
},
{
name: 'description',
},
{
name: 'address3_telephone1',
},
{
name: 'address2_upszone',
},
{
name: 'address3_county',
},
{
name: 'entityimage_url',
},
{
name: 'address3_upszone',
},
{
name: 'address1_name',
},
{
name: 'mastercontactidyominame',
},
{
name: 'autocreate',
},
{
name: 'backofficecustomer',
},
{
name: 'address2_longitude',
},
{
name: 'address1_fax',
},
{
name: 'exchangerate',
},
{
name: 'address1_city',
},
{
name: 'entityimageid',
},
{
name: 'address1_telephone2',
},
{
name: 'address2_composite',
},
{
name: 'importsequencenumber',
},
{
name: 'gendercode',
},
{
name: 'annualincome',
},
{
name: 'subscriptionid',
},
{
name: 'territorycode',
},
{
name: 'firstname',
},
{
name: 'overriddencreatedon',
},
{
name: 'address3_country',
},
{
name: 'yomilastname',
},
{
name: 'donotbulkemail',
},
{
name: 'address3_telephone2',
},
{
name: 'ownerid',
},
{
name: 'externaluseridentifier',
},
{
name: 'teamsfollowed',
},
{
name: 'donotemail',
},
{
name: 'anniversary',
},
{
name: 'preferredappointmentdaycode',
},
{
name: 'middlename',
},
{
name: 'emailaddress3',
},
{
name: 'address2_telephone2',
},
{
name: 'fax',
},
{
name: 'mobilephone',
},
{
name: 'home2',
},
{
name: 'createman',
},
{
name: 'onholdtime',
},
{
name: 'preferredappointmenttimecode',
},
{
name: 'statuscode',
},
{
name: 'governmentid',
},
{
name: 'address3_telephone3',
},
{
name: 'business2',
},
{
name: 'preferredsystemuserid',
},
{
name: 'address1_upszone',
},
{
name: 'aging60',
},
{
name: 'yomifirstname',
},
{
name: 'address3_postofficebox',
},
{
name: 'address2_city',
},
{
name: 'processid',
},
{
name: 'annualincome_base',
},
{
name: 'address3_addressid',
},
{
name: 'parentcustomeridyominame',
},
{
name: 'contact',
prop: 'contactid',
},
{
name: 'aging60_base',
},
{
name: 'address3_latitude',
},
{
name: 'telephone3',
},
{
name: 'address1_primarycontactname',
},
{
name: 'address3_fax',
},
{
name: 'preferredcontactmethodcode',
},
{
name: 'address1_utcoffset',
},
{
name: 'donotsendmm',
},
{
name: 'address2_telephone3',
},
{
name: 'address2_country',
},
{
name: 'aging30',
},
{
name: 'address2_postofficebox',
},
{
name: 'telephone1',
},
{
name: 'address3_longitude',
},
{
name: 'lastusedincampaign',
},
{
name: 'ftpsiteurl',
},
{
name: 'aging30_base',
},
{
name: 'address2_name',
},
{
name: 'suffix',
},
{
name: 'address1_county',
},
{
name: 'address2_addresstypecode',
},
{
name: 'address1_longitude',
},
{
name: 'address3_line2',
},
{
name: 'address1_addressid',
},
{
name: 'address2_line3',
},
{
name: 'address2_latitude',
},
{
name: 'address2_line2',
},
{
name: 'address1_shippingmethodcode',
},
{
name: 'address3_freighttermscode',
},
{
name: 'address1_postofficebox',
},
{
name: 'utcconversiontimezonecode',
},
{
name: 'address3_name',
},
{
name: 'address1_latitude',
},
{
name: 'numberofchildren',
},
{
name: 'address2_primarycontactname',
},
{
name: 'address1_postalcode',
},
{
name: 'stageid',
},
{
name: 'address1_country',
},
{
name: 'emailaddress2',
},
{
name: 'slaname',
},
{
name: 'defaultpricelevelid',
},
{
name: 'preferredequipmentid',
},
{
name: 'transactioncurrencyid',
},
{
name: 'slaid',
},
{
name: 'originatingleadid',
},
{
name: 'preferredserviceid',
},
{
name: 'defaultpricelevelname',
},
{
name: 'originatingleadname',
},
{
name: 'transactioncurrencyname',
},
{
name: 'preferredservicename',
},
{
name: 'preferredequipmentname',
},
]
}
}
\ No newline at end of file
import { Http } from '@/utils';
import ControlService from '@/widgets/control-service';
/**
* ConAbs 部件服务对象
*
* @export
* @class ConAbsService
*/
export default class ConAbsService extends ControlService {
}
\ No newline at end of file
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import ConAbsBase from './con-abs-dashboard-base.vue';
import view_dashboard_sysportlet1 from '@widgets/contact/view-con-abs-portlet/view-con-abs-portlet.vue';
@Component({
components: {
view_dashboard_sysportlet1,
}
})
export default class ConAbs extends ConAbsBase {
}
</script>
\ No newline at end of file
......@@ -1385,7 +1385,7 @@ export default class DetailInfoBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: '错误', desc: 'ContactDetailInfoEditView9视图表单loadAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'ContactInfo_Detail视图表单loadAction参数未配置' });
return;
}
const arg: any = { ...opt };
......@@ -1420,7 +1420,7 @@ export default class DetailInfoBase extends Vue implements ControlInterface {
*/
public loadDraft(opt: any = {}): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: '错误', desc: 'ContactDetailInfoEditView9视图表单loaddraftAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'ContactInfo_Detail视图表单loaddraftAction参数未配置' });
return;
}
const arg: any = { ...opt } ;
......@@ -1482,7 +1482,7 @@ export default class DetailInfoBase extends Vue implements ControlInterface {
const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction;
if(!action){
let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction";
this.$Notice.error({ title: '错误', desc: 'ContactDetailInfoEditView9视图表单'+actionName+'参数未配置' });
this.$Notice.error({ title: '错误', desc: 'ContactInfo_Detail视图表单'+actionName+'参数未配置' });
return;
}
Object.assign(arg,{viewparams:this.viewparams});
......@@ -1546,7 +1546,7 @@ export default class DetailInfoBase extends Vue implements ControlInterface {
const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction;
if(!action){
let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction";
this.$Notice.error({ title: '错误', desc: 'ContactDetailInfoEditView9视图表单'+actionName+'参数未配置' });
this.$Notice.error({ title: '错误', desc: 'ContactInfo_Detail视图表单'+actionName+'参数未配置' });
return;
}
Object.assign(arg,{viewparams:this.viewparams});
......@@ -1596,7 +1596,7 @@ export default class DetailInfoBase extends Vue implements ControlInterface {
public remove(opt:Array<any> = [],showResultInfo?: boolean): Promise<any> {
return new Promise((resolve: any, reject: any) => {
if(!this.removeAction){
this.$Notice.error({ title: '错误', desc: 'ContactDetailInfoEditView9视图表单removeAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'ContactInfo_Detail视图表单removeAction参数未配置' });
return;
}
const arg: any = opt[0];
......
<template>
<div class='tabviewpanel' style="height:100%;" v-if = 'isActivied' >
<contact-abstract-edit-view9
<contact-dashboard-view9
class='viewcontainer2'
:viewdata="viewdata"
:viewparam="viewparam"
@viewload="viewDatasChange($event)"
:viewDefaultUsage="false" >
</contact-abstract-edit-view9>
</contact-dashboard-view9>
</div>
</template>
<script lang='tsx'>
......
<template>
<div class='tabviewpanel' style="height:100%;" v-if = 'isActivied' >
<contact-detail-info-edit-view9
<contact-info-detail
class='viewcontainer2'
:viewdata="viewdata"
:viewparam="viewparam"
@viewload="viewDatasChange($event)"
:viewDefaultUsage="false" >
</contact-detail-info-edit-view9>
</contact-info-detail>
</div>
</template>
<script lang='tsx'>
......
<template>
<div class='portlet view-con-abs ' :style="{'height': isAdaptiveSize ? 'calc(100% - 16px)' : (height > 0 ? height+'px' :'300px'),}">
<p class='portlet-title'>
<span>
联系人信息
</span>
</p>
<div class="portlet-with-title">
<contact-info-abstract :viewdata="JSON.stringify(context)" :viewDefaultUsage="false" ></contact-info-abstract>
</div>
</div>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch, Model } from 'vue-property-decorator';
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import ContactService from '@/service/contact/contact-service';
import View_ConAbsService from './view-con-abs-portlet-service';
import { Environment } from '@/environments/environment';
@Component({
components: {
}
})
export default class ContactView_ConAbsBase extends Vue implements ControlInterface {
/**
* 名称
*
* @type {string}
* @memberof View_ConAbs
*/
@Prop() public name?: string;
/**
* 视图通讯对象
*
* @type {Subject<ViewState>}
* @memberof View_ConAbs
*/
@Prop() public viewState!: Subject<ViewState>;
/**
* 应用上下文
*
* @type {*}
* @memberof View_ConAbs
*/
@Prop() public context: any;
/**
* 视图参数
*
* @type {*}
* @memberof View_ConAbs
*/
@Prop() public viewparams: any;
/**
* 视图状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof View_ConAbs
*/
public viewStateEvent: Subscription | undefined;
/**
* 获取部件类型
*
* @returns {string}
* @memberof View_ConAbs
*/
public getControlType(): string {
return 'PORTLET'
}
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof View_ConAbs
*/
public counterServiceArray:Array<any> = [];
/**
* 建构部件服务对象
*
* @type {View_ConAbsService}
* @memberof View_ConAbs
*/
public service: View_ConAbsService = new View_ConAbsService({ $store: this.$store });
/**
* 实体服务对象
*
* @type {ContactService}
* @memberof View_ConAbs
*/
public appEntityService: ContactService = new ContactService({ $store: this.$store });
/**
* 关闭视图
*
* @param {any} args
* @memberof View_ConAbs
*/
public closeView(args: any): void {
let _this: any = this;
_this.$emit('closeview', [args]);
}
/**
* 计数器刷新
*
* @memberof View_ConAbs
*/
public counterRefresh(){
const _this:any =this;
if(_this.counterServiceArray && _this.counterServiceArray.length >0){
_this.counterServiceArray.forEach((item:any) =>{
if(item.refreshData && item.refreshData instanceof Function){
item.refreshData();
}
})
}
}
/**
* 长度
*
* @type {number}
* @memberof View_ConAbs
*/
@Prop() public height?: number;
/**
* 宽度
*
* @type {number}
* @memberof View_ConAbs
*/
@Prop() public width?: number;
/**
* 是否自适应大小
*
* @returns {boolean}
* @memberof View_ConAbsBase
*/
@Prop({default: false})public isAdaptiveSize!: boolean;
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof View_ConAbsBase
*/
public getDatas(): any[] {
return [];
}
/**
* 获取单项树
*
* @returns {*}
* @memberof View_ConAbsBase
*/
public getData(): any {
return {};
}
/**
* vue 生命周期
*
* @memberof View_ConAbsBase
*/
public created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof View_ConAbsBase
*/
public afterCreated(){
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
const refs: any = this.$refs;
Object.keys(refs).forEach((_name: string) => {
this.viewState.next({ tag: _name, action: action, data: data });
});
});
}
}
/**
* vue 生命周期
*
* @memberof View_ConAbsBase
*/
public destroyed() {
this.afterDestroy();
}
/**
* 执行destroyed后的逻辑
*
* @memberof View_ConAbsBase
*/
public afterDestroy() {
if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe();
}
}
}
</script>
<style lang='less'>
@import './view-con-abs-portlet.less';
</style>
/**
* View_ConAbs 部件模型
*
* @export
* @class View_ConAbsModel
*/
export default class View_ConAbsModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof View_ConAbsModel
*/
public getDataItems(): any[] {
return [
{
name: 'address1_freighttermscode',
},
{
name: 'address3_city',
},
{
name: 'department',
},
{
name: 'parentcustomeridtype',
},
{
name: 'address1_stateorprovince',
},
{
name: 'aging90_base',
},
{
name: 'accountidyominame',
},
{
name: 'donotbulkpostalmail',
},
{
name: 'managername',
},
{
name: 'donotpostalmail',
},
{
name: 'spousesname',
},
{
name: 'familystatuscode',
},
{
name: 'owneridtype',
},
{
name: 'address3_composite',
},
{
name: 'address3_shippingmethodcode',
},
{
name: 'lastname',
},
{
name: 'lastonholdtime',
},
{
name: 'educationcode',
},
{
name: 'address2_line1',
},
{
name: 'birthdate',
},
{
name: 'owneridyominame',
},
{
name: 'haschildrencode',
},
{
name: 'company',
},
{
name: 'address2_fax',
},
{
name: 'assistantphone',
},
{
name: 'callback',
},
{
name: 'paymenttermscode',
},
{
name: 'address2_telephone1',
},
{
name: 'marketingonly',
},
{
name: 'address2_utcoffset',
},
{
name: 'address2_shippingmethodcode',
},
{
name: 'traversedpath',
},
{
name: 'employeeid',
},
{
name: 'creditlimit_base',
},
{
name: 'followemail',
},
{
name: 'address3_postalcode',
},
{
name: 'merged',
},
{
name: 'jobtitle',
},
{
name: 'address1_telephone1',
},
{
name: 'customersizecode',
},
{
name: 'address3_addresstypecode',
},
{
name: 'pager',
},
{
name: 'assistantname',
},
{
name: 'address1_composite',
},
{
name: 'address1_line1',
},
{
name: 'yomimiddlename',
},
{
name: 'address1_telephone3',
},
{
name: 'telephone2',
},
{
name: 'address2_addressid',
},
{
name: 'parentcontactidyominame',
},
{
name: 'leadsourcecode',
},
{
name: 'statecode',
},
{
name: 'address2_freighttermscode',
},
{
name: 'emailaddress1',
},
{
name: 'entityimage_timestamp',
},
{
name: 'address3_line1',
},
{
name: 'salutation',
},
{
name: 'address1_line3',
},
{
name: 'address3_primarycontactname',
},
{
name: 'ibizprivate',
},
{
name: 'donotfax',
},
{
name: 'createdate',
},
{
name: 'preferredsystemuseridyominame',
},
{
name: 'updatedate',
},
{
name: 'address3_stateorprovince',
},
{
name: 'address3_line3',
},
{
name: 'creditlimit',
},
{
name: 'timezoneruleversionnumber',
},
{
name: 'parentcustomerid',
},
{
name: 'childrensnames',
},
{
name: 'address1_addresstypecode',
},
{
name: 'accountrolecode',
},
{
name: 'donotphone',
},
{
name: 'managerphone',
},
{
name: 'creditonhold',
},
{
name: 'updateman',
},
{
name: 'address2_postalcode',
},
{
name: 'address1_line2',
},
{
name: 'nickname',
},
{
name: 'versionnumber',
},
{
name: 'yomifullname',
},
{
name: 'entityimage',
},
{
name: 'shippingmethodcode',
},
{
name: 'customertypecode',
},
{
name: 'address2_county',
},
{
name: 'aging90',
},
{
name: 'address2_stateorprovince',
},
{
name: 'address3_utcoffset',
},
{
name: 'fullname',
},
{
name: 'participatesinworkflow',
},
{
name: 'websiteurl',
},
{
name: 'description',
},
{
name: 'address3_telephone1',
},
{
name: 'address2_upszone',
},
{
name: 'address3_county',
},
{
name: 'entityimage_url',
},
{
name: 'address3_upszone',
},
{
name: 'address1_name',
},
{
name: 'mastercontactidyominame',
},
{
name: 'autocreate',
},
{
name: 'backofficecustomer',
},
{
name: 'address2_longitude',
},
{
name: 'address1_fax',
},
{
name: 'exchangerate',
},
{
name: 'address1_city',
},
{
name: 'entityimageid',
},
{
name: 'address1_telephone2',
},
{
name: 'address2_composite',
},
{
name: 'importsequencenumber',
},
{
name: 'gendercode',
},
{
name: 'annualincome',
},
{
name: 'subscriptionid',
},
{
name: 'territorycode',
},
{
name: 'firstname',
},
{
name: 'overriddencreatedon',
},
{
name: 'address3_country',
},
{
name: 'yomilastname',
},
{
name: 'donotbulkemail',
},
{
name: 'address3_telephone2',
},
{
name: 'ownerid',
},
{
name: 'externaluseridentifier',
},
{
name: 'teamsfollowed',
},
{
name: 'donotemail',
},
{
name: 'anniversary',
},
{
name: 'preferredappointmentdaycode',
},
{
name: 'middlename',
},
{
name: 'emailaddress3',
},
{
name: 'address2_telephone2',
},
{
name: 'fax',
},
{
name: 'mobilephone',
},
{
name: 'home2',
},
{
name: 'createman',
},
{
name: 'onholdtime',
},
{
name: 'preferredappointmenttimecode',
},
{
name: 'statuscode',
},
{
name: 'governmentid',
},
{
name: 'address3_telephone3',
},
{
name: 'business2',
},
{
name: 'preferredsystemuserid',
},
{
name: 'address1_upszone',
},
{
name: 'aging60',
},
{
name: 'yomifirstname',
},
{
name: 'address3_postofficebox',
},
{
name: 'address2_city',
},
{
name: 'processid',
},
{
name: 'annualincome_base',
},
{
name: 'address3_addressid',
},
{
name: 'parentcustomeridyominame',
},
{
name: 'contact',
prop: 'contactid',
},
{
name: 'aging60_base',
},
{
name: 'address3_latitude',
},
{
name: 'telephone3',
},
{
name: 'address1_primarycontactname',
},
{
name: 'address3_fax',
},
{
name: 'preferredcontactmethodcode',
},
{
name: 'address1_utcoffset',
},
{
name: 'donotsendmm',
},
{
name: 'address2_telephone3',
},
{
name: 'address2_country',
},
{
name: 'aging30',
},
{
name: 'address2_postofficebox',
},
{
name: 'telephone1',
},
{
name: 'address3_longitude',
},
{
name: 'lastusedincampaign',
},
{
name: 'ftpsiteurl',
},
{
name: 'aging30_base',
},
{
name: 'address2_name',
},
{
name: 'suffix',
},
{
name: 'address1_county',
},
{
name: 'address2_addresstypecode',
},
{
name: 'address1_longitude',
},
{
name: 'address3_line2',
},
{
name: 'address1_addressid',
},
{
name: 'address2_line3',
},
{
name: 'address2_latitude',
},
{
name: 'address2_line2',
},
{
name: 'address1_shippingmethodcode',
},
{
name: 'address3_freighttermscode',
},
{
name: 'address1_postofficebox',
},
{
name: 'utcconversiontimezonecode',
},
{
name: 'address3_name',
},
{
name: 'address1_latitude',
},
{
name: 'numberofchildren',
},
{
name: 'address2_primarycontactname',
},
{
name: 'address1_postalcode',
},
{
name: 'stageid',
},
{
name: 'address1_country',
},
{
name: 'emailaddress2',
},
{
name: 'slaname',
},
{
name: 'defaultpricelevelid',
},
{
name: 'preferredequipmentid',
},
{
name: 'transactioncurrencyid',
},
{
name: 'slaid',
},
{
name: 'originatingleadid',
},
{
name: 'preferredserviceid',
},
{
name: 'defaultpricelevelname',
},
{
name: 'originatingleadname',
},
{
name: 'transactioncurrencyname',
},
{
name: 'preferredservicename',
},
{
name: 'preferredequipmentname',
},
]
}
}
import { Http } from '@/utils';
import ControlService from '@/widgets/control-service';
/**
* View_ConAbs 部件服务对象
*
* @export
* @class View_ConAbsService
*/
export default class View_ConAbsService extends ControlService {
}
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import ContactView_ConAbsBase from './view-con-abs-portlet-base.vue';
@Component({
components: {
}
})
export default class ContactView_ConAbs extends ContactView_ConAbsBase {
}
</script>
......@@ -3152,7 +3152,7 @@
<!--输出实体[CONTACT]数据结构 -->
<changeSet author="a_LAB01_e85d8801c" id="tab-contact-78-42">
<changeSet author="a_LAB01_e85d8801c" id="tab-contact-82-42">
<createTable tableName="CONTACT">
<column name="ADDRESS1_FREIGHTTERMSCODE" remarks="" type="VARCHAR(30)">
</column>
......@@ -7334,7 +7334,7 @@
<!--输出实体[CAMPAIGN]数据结构 -->
<changeSet author="a_LAB01_e85d8801c" id="tab-campaign-76-75">
<changeSet author="a_LAB01_e85d8801c" id="tab-campaign-78-75">
<createTable tableName="CAMPAIGN">
<column name="EXPECTEDRESPONSE" remarks="" type="INT">
</column>
......@@ -10975,22 +10975,22 @@
<addForeignKeyConstraint baseColumnNames="TRANSACTIONCURRENCYID" baseTableName="MONTHLYFISCALCALENDAR" constraintName="DER1N_MONTHLYFISCALCALENDAR__T" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="TRANSACTIONCURRENCYID" referencedTableName="TRANSACTIONCURRENCY" validate="true"/>
</changeSet>
<!--输出实体[CONTACT]外键关系 -->
<changeSet author="a_LAB01_e85d8801c" id="fk-contact-78-206">
<changeSet author="a_LAB01_e85d8801c" id="fk-contact-82-206">
<addForeignKeyConstraint baseColumnNames="PREFERREDEQUIPMENTID" baseTableName="CONTACT" constraintName="DER1N_CONTACT__EQUIPMENT__PREF" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="EQUIPMENTID" referencedTableName="EQUIPMENT" validate="true"/>
</changeSet>
<changeSet author="a_LAB01_e85d8801c" id="fk-contact-78-207">
<changeSet author="a_LAB01_e85d8801c" id="fk-contact-82-207">
<addForeignKeyConstraint baseColumnNames="ORIGINATINGLEADID" baseTableName="CONTACT" constraintName="DER1N_CONTACT__LEAD__ORIGINATI" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="LEADID" referencedTableName="LEAD" validate="true"/>
</changeSet>
<changeSet author="a_LAB01_e85d8801c" id="fk-contact-78-208">
<changeSet author="a_LAB01_e85d8801c" id="fk-contact-82-208">
<addForeignKeyConstraint baseColumnNames="DEFAULTPRICELEVELID" baseTableName="CONTACT" constraintName="DER1N_CONTACT__PRICELEVEL__DEF" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="PRICELEVELID" referencedTableName="PRICELEVEL" validate="true"/>
</changeSet>
<changeSet author="a_LAB01_e85d8801c" id="fk-contact-78-209">
<changeSet author="a_LAB01_e85d8801c" id="fk-contact-82-209">
<addForeignKeyConstraint baseColumnNames="PREFERREDSERVICEID" baseTableName="CONTACT" constraintName="DER1N_CONTACT__SERVICE__PREFER" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="SERVICEID" referencedTableName="SERVICE" validate="true"/>
</changeSet>
<changeSet author="a_LAB01_e85d8801c" id="fk-contact-78-210">
<changeSet author="a_LAB01_e85d8801c" id="fk-contact-82-210">
<addForeignKeyConstraint baseColumnNames="SLAID" baseTableName="CONTACT" constraintName="DER1N_CONTACT__SLA__SLAID" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="SLAID" referencedTableName="SLA" validate="true"/>
</changeSet>
<changeSet author="a_LAB01_e85d8801c" id="fk-contact-78-211">
<changeSet author="a_LAB01_e85d8801c" id="fk-contact-82-211">
<addForeignKeyConstraint baseColumnNames="TRANSACTIONCURRENCYID" baseTableName="CONTACT" constraintName="DER1N_CONTACT__TRANSACTIONCURR" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="TRANSACTIONCURRENCYID" referencedTableName="TRANSACTIONCURRENCY" validate="true"/>
</changeSet>
<!--输出实体[TEAM]外键关系 -->
......@@ -11281,10 +11281,10 @@
<addForeignKeyConstraint baseColumnNames="BASECURRENCYID" baseTableName="ORGANIZATION" constraintName="DER1N_ORGANIZATION__TRANSACTIO" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="TRANSACTIONCURRENCYID" referencedTableName="TRANSACTIONCURRENCY" validate="true"/>
</changeSet>
<!--输出实体[CAMPAIGN]外键关系 -->
<changeSet author="a_LAB01_e85d8801c" id="fk-campaign-76-311">
<changeSet author="a_LAB01_e85d8801c" id="fk-campaign-78-311">
<addForeignKeyConstraint baseColumnNames="PRICELISTID" baseTableName="CAMPAIGN" constraintName="DER1N_CAMPAIGN__PRICELEVEL__PR" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="PRICELEVELID" referencedTableName="PRICELEVEL" validate="true"/>
</changeSet>
<changeSet author="a_LAB01_e85d8801c" id="fk-campaign-76-312">
<changeSet author="a_LAB01_e85d8801c" id="fk-campaign-78-312">
<addForeignKeyConstraint baseColumnNames="TRANSACTIONCURRENCYID" baseTableName="CAMPAIGN" constraintName="DER1N_CAMPAIGN__TRANSACTIONCUR" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="TRANSACTIONCURRENCYID" referencedTableName="TRANSACTIONCURRENCY" validate="true"/>
</changeSet>
<!--输出实体[BOOKABLERESCHARACTERISTIC]外键关系 -->
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册