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

xignzi006 发布系统代码

上级 2763f456
...@@ -391,8 +391,30 @@ export default { ...@@ -391,8 +391,30 @@ export default {
uiactions: { uiactions: {
}, },
}, },
edit_datapanel_form: {
details: {
group1: "联系人基本信息",
formpage1: "基本信息",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "联系人",
srfmajortext: "全名",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
customersizecode: "客户规模",
statuscode: "状态",
owneridyominame: "负责人",
contactid: "联系人",
},
uiactions: {
},
},
datepanel_form: { datepanel_form: {
details: { details: {
button1: "头信息编辑",
grouppanel1: "分组面板",
group1: "联系人基本信息", group1: "联系人基本信息",
formpage1: "基本信息", formpage1: "基本信息",
srfupdatedate: "更新时间", srfupdatedate: "更新时间",
...@@ -409,6 +431,7 @@ export default { ...@@ -409,6 +431,7 @@ export default {
contactid: "联系人", contactid: "联系人",
}, },
uiactions: { uiactions: {
contact_openedit_datapanel: "头信息编辑",
}, },
}, },
marketedit_form: { marketedit_form: {
...@@ -520,26 +543,6 @@ export default { ...@@ -520,26 +543,6 @@ export default {
uiactions: { uiactions: {
}, },
}, },
edit_datapanel_form: {
details: {
group1: "联系人基本信息",
formpage1: "基本信息",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "联系人",
srfmajortext: "全名",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
customersizecode: "客户规模",
statuscode: "状态",
owneridyominame: "负责人",
contactid: "联系人",
},
uiactions: {
},
},
addressinfo_form: { addressinfo_form: {
details: { details: {
group1: "联系人基本信息", group1: "联系人基本信息",
......
...@@ -390,8 +390,30 @@ export default { ...@@ -390,8 +390,30 @@ export default {
uiactions: { uiactions: {
}, },
}, },
edit_datapanel_form: {
details: {
group1: "联系人基本信息",
formpage1: "基本信息",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "联系人",
srfmajortext: "全名",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
customersizecode: "客户规模",
statuscode: "状态",
owneridyominame: "负责人",
contactid: "联系人",
},
uiactions: {
},
},
datepanel_form: { datepanel_form: {
details: { details: {
button1: "头信息编辑",
grouppanel1: "分组面板",
group1: "联系人基本信息", group1: "联系人基本信息",
formpage1: "基本信息", formpage1: "基本信息",
srfupdatedate: "更新时间", srfupdatedate: "更新时间",
...@@ -408,6 +430,7 @@ export default { ...@@ -408,6 +430,7 @@ export default {
contactid: "联系人", contactid: "联系人",
}, },
uiactions: { uiactions: {
contact_openedit_datapanel: "头信息编辑",
}, },
}, },
marketedit_form: { marketedit_form: {
...@@ -519,26 +542,6 @@ export default { ...@@ -519,26 +542,6 @@ export default {
uiactions: { uiactions: {
}, },
}, },
edit_datapanel_form: {
details: {
group1: "联系人基本信息",
formpage1: "基本信息",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "联系人",
srfmajortext: "全名",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
customersizecode: "客户规模",
statuscode: "状态",
owneridyominame: "负责人",
contactid: "联系人",
},
uiactions: {
},
},
addressinfo_form: { addressinfo_form: {
details: { details: {
group1: "联系人基本信息", group1: "联系人基本信息",
......
import { Subject } from 'rxjs';
import { EditViewBase } from '@/studio-core';
import ContactService from '@/service/contact/contact-service';
import EditViewEngine from '@engine/view/edit-view-engine';
/**
* 头部信息编辑视图基类
*
* @export
* @class ContactEdit_DataPanelViewBase
* @extends {EditViewBase}
*/
export class ContactEdit_DataPanelViewBase extends EditViewBase {
/**
* 视图对应应用实体名称
*
* @protected
* @type {string}
* @memberof ContactEdit_DataPanelViewBase
*/
protected appDeName: string = 'contact';
/**
* 应用实体主键
*
* @protected
* @type {string}
* @memberof ContactEdit_DataPanelViewBase
*/
protected appDeKey: string = 'contactid';
/**
* 应用实体主信息
*
* @protected
* @type {string}
* @memberof ContactEdit_DataPanelViewBase
*/
protected appDeMajor: string = 'fullname';
/**
* 实体服务对象
*
* @type {ContactService}
* @memberof ContactEdit_DataPanelViewBase
*/
protected appEntityService: ContactService = new ContactService;
/**
* 计数器服务对象集合
*
* @protected
* @type {Array<*>}
* @memberof ContactEdit_DataPanelViewBase
*/
protected counterServiceArray: Array<any> = [];
/**
* 视图模型数据
*
* @protected
* @type {*}
* @memberof ContactEdit_DataPanelViewBase
*/
protected model: any = {
srfCaption: 'entities.contact.views.edit_datapanelview.caption',
srfTitle: 'entities.contact.views.edit_datapanelview.title',
srfSubTitle: 'entities.contact.views.edit_datapanelview.subtitle',
dataInfo: ''
}
/**
* 容器模型
*
* @protected
* @type {*}
* @memberof ContactEdit_DataPanelViewBase
*/
protected containerModel: any = {
view_form: { name: 'form', type: 'FORM' },
};
/**
* 视图唯一标识
*
* @protected
* @type {string}
* @memberof ViewBase
*/
protected viewtag: string = '791f1cf310878383aaec921c83adb1d5';
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof ContactEdit_DataPanelViewBase
*/
public engine: EditViewEngine = new EditViewEngine();
/**
* 引擎初始化
*
* @public
* @memberof ContactEdit_DataPanelViewBase
*/
public engineInit(): void {
this.engine.init({
view: this,
form: this.$refs.form,
p2k: '0',
keyPSDEField: 'contact',
majorPSDEField: 'fullname',
isLoadDefault: true,
});
}
/**
* form 部件 save 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactEdit_DataPanelViewBase
*/
public form_save($event: any, $event2?: any): void {
this.engine.onCtrlEvent('form', 'save', $event);
}
/**
* form 部件 remove 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactEdit_DataPanelViewBase
*/
public form_remove($event: any, $event2?: any): void {
this.engine.onCtrlEvent('form', 'remove', $event);
}
/**
* form 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactEdit_DataPanelViewBase
*/
public form_load($event: any, $event2?: any): void {
this.engine.onCtrlEvent('form', 'load', $event);
}
}
\ No newline at end of file
<studio-view-style2 viewName="contactedit_datapanelview" viewTitle="头部信息编辑" class='deeditview contact-edit-data-panel-view'>
<template slot='title'>
<span class='caption-info'>{{$t(model.srfTitle)}}</span>
</template>
<view_form
:viewState="viewState"
:viewparams="viewparams"
:context="context"
:autosave="true"
:viewtag="viewtag"
:showBusyIndicator="true"
updateAction="Update"
removeAction="Remove"
loaddraftAction="GetDraft"
loadAction="Get"
createAction="Create"
WFSubmitAction=""
WFStartAction=""
style=''
name="form"
ref='form'
@save="form_save($event)"
@remove="form_remove($event)"
@load="form_load($event)"
@closeview="closeView($event)">
</view_form>
</studio-view-style2>
\ No newline at end of file
<template src="./contact-edit-data-panel-view.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { ContactEdit_DataPanelViewBase } from './contact-edit-data-panel-view-base';
import view_form from '@widgets/contact/edit-data-panel-form/edit-data-panel-form.vue';
/**
* 头部信息编辑视图
*
* @export
* @class ContactEdit_DataPanelView
* @extends {ContactEdit_DataPanelViewBase}
*/
@Component({
components: {
view_form,
}
})
@VueLifeCycleProcessing()
export default class ContactEdit_DataPanelView extends ContactEdit_DataPanelViewBase { }
</script>
...@@ -186,6 +186,7 @@ export const PageComponents = { ...@@ -186,6 +186,7 @@ export const PageComponents = {
Vue.component('list-lead-quick-create-by-list', () => import('@pages/marketing/list-lead-quick-create-by-list/list-lead-quick-create-by-list.vue')); Vue.component('list-lead-quick-create-by-list', () => import('@pages/marketing/list-lead-quick-create-by-list/list-lead-quick-create-by-list.vue'));
Vue.component('connection-role-grid-view', () => import('@pages/runtime/connection-role-grid-view/connection-role-grid-view.vue')); Vue.component('connection-role-grid-view', () => import('@pages/runtime/connection-role-grid-view/connection-role-grid-view.vue'));
Vue.component('incident-pickup-view', () => import('@pages/service/incident-pickup-view/incident-pickup-view.vue')); Vue.component('incident-pickup-view', () => import('@pages/service/incident-pickup-view/incident-pickup-view.vue'));
Vue.component('contact-edit-data-panel-view', () => import('@pages/base/contact-edit-data-panel-view/contact-edit-data-panel-view.vue'));
Vue.component('account-info-all', () => import('@pages/base/account-info-all/account-info-all.vue')); Vue.component('account-info-all', () => import('@pages/base/account-info-all/account-info-all.vue'));
Vue.component('contact-stop-grid-view', () => import('@pages/base/contact-stop-grid-view/contact-stop-grid-view.vue')); Vue.component('contact-stop-grid-view', () => import('@pages/base/contact-stop-grid-view/contact-stop-grid-view.vue'));
Vue.component('competitor-sales-literature-sal-lit-comp-edit-view', () => import('@pages/sales/competitor-sales-literature-sal-lit-comp-edit-view/competitor-sales-literature-sal-lit-comp-edit-view.vue')); Vue.component('competitor-sales-literature-sal-lit-comp-edit-view', () => import('@pages/sales/competitor-sales-literature-sal-lit-comp-edit-view/competitor-sales-literature-sal-lit-comp-edit-view.vue'));
......
...@@ -6142,6 +6142,35 @@ const router = new Router({ ...@@ -6142,6 +6142,35 @@ const router = new Router({
}, },
component: () => import('@pages/service/incident-pickup-view/incident-pickup-view.vue'), component: () => import('@pages/service/incident-pickup-view/incident-pickup-view.vue'),
}, },
{
path: 'accounts/:account?/contacts/:contact?/edit_datapanelview/:edit_datapanelview?',
meta: {
caption: 'entities.contact.views.edit_datapanelview.title',
info:'',
parameters: [
{ pathName: 'central', parameterName: 'central' },
{ pathName: 'accounts', parameterName: 'account' },
{ pathName: 'contacts', parameterName: 'contact' },
{ pathName: 'edit_datapanelview', parameterName: 'edit_datapanelview' },
],
requireAuth: true,
},
component: () => import('@pages/base/contact-edit-data-panel-view/contact-edit-data-panel-view.vue'),
},
{
path: 'contacts/:contact?/edit_datapanelview/:edit_datapanelview?',
meta: {
caption: 'entities.contact.views.edit_datapanelview.title',
info:'',
parameters: [
{ pathName: 'central', parameterName: 'central' },
{ pathName: 'contacts', parameterName: 'contact' },
{ pathName: 'edit_datapanelview', parameterName: 'edit_datapanelview' },
],
requireAuth: true,
},
component: () => import('@pages/base/contact-edit-data-panel-view/contact-edit-data-panel-view.vue'),
},
{ {
path: 'accounts/:account?/info_all/:info_all?', path: 'accounts/:account?/info_all/:info_all?',
meta: { meta: {
......
...@@ -1163,6 +1163,15 @@ export const viewstate: any = { ...@@ -1163,6 +1163,15 @@ export const viewstate: any = {
'ad6abf83dc1bc466b988194cd868d98a', 'ad6abf83dc1bc466b988194cd868d98a',
], ],
}, },
{
viewtag: '791f1cf310878383aaec921c83adb1d5',
viewmodule: 'Base',
viewname: 'ContactEdit_DataPanelView',
viewaction: '',
viewdatachange: false,
refviews: [
],
},
{ {
viewtag: '795099de0273f3172b18315bc3dae5e1', viewtag: '795099de0273f3172b18315bc3dae5e1',
viewmodule: 'Sales', viewmodule: 'Sales',
...@@ -2334,6 +2343,7 @@ export const viewstate: any = { ...@@ -2334,6 +2343,7 @@ export const viewstate: any = {
'bae77557d2f7a7852b634dc5d5a93435', 'bae77557d2f7a7852b634dc5d5a93435',
'50138c2b066081ec8b6fe67c88af5371', '50138c2b066081ec8b6fe67c88af5371',
'6168a7e787ead13b1e0f9a55007bc68c', '6168a7e787ead13b1e0f9a55007bc68c',
'791f1cf310878383aaec921c83adb1d5',
], ],
}, },
{ {
......
...@@ -179,6 +179,74 @@ export default class ContactUIServiceBase extends UIService { ...@@ -179,6 +179,74 @@ export default class ContactUIServiceBase extends UIService {
backend(); backend();
} }
/**
* 头信息编辑
*
* @param {any[]} args 当前数据
* @param {any} context 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @param {*} [srfParentDeName] 父实体名称
* @returns {Promise<any>}
*/
public async Contact_OpenEdit_DataPanel(args: any[], context:any = {} ,params: any={}, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
let data: any = {};
let parentContext:any = {};
let parentViewParam:any = {};
const _this: any = actionContext;
const _args: any[] = Util.deepCopy(args);
const actionTarget: string | null = 'SINGLEKEY';
Object.assign(context, { contact: '%contact%' });
Object.assign(params, { contactid: '%contact%' });
Object.assign(params, { fullname: '%fullname%' });
if(_this.context){
parentContext = _this.context;
}
if(_this.viewparams){
parentViewParam = _this.viewparams;
}
context = UIActionTool.handleContextParam(actionTarget,_args,parentContext,parentViewParam,context);
data = UIActionTool.handleActionParam(actionTarget,_args,parentContext,parentViewParam,params);
context = Object.assign({},actionContext.context,context);
let parentObj:any = {srfparentdename:srfParentDeName?srfParentDeName:null,srfparentkey:srfParentDeName?context[srfParentDeName.toLowerCase()]:null};
Object.assign(data,parentObj);
Object.assign(context,parentObj);
let deResParameters: any[] = [];
if(context.account && true){
deResParameters = [
{ pathName: 'accounts', parameterName: 'account' },
]
}
const parameters: any[] = [
{ pathName: 'contacts', parameterName: 'contact' },
];
const openPopOver = (view: any, data: any) => {
let container: Subject<any> = actionContext.$apppopover.openPop($event, view, context,data);
container.subscribe((result: any) => {
if (!result || !Object.is(result.ret, 'OK')) {
return;
}
const _this: any = actionContext;
if(window.opener){
window.opener.postMessage({status:'OK',identification:'WF'},Environment.uniteAddress);
window.close();
}
return result.datas;
});
}
const view: any = {
viewname: 'contact-edit-data-panel-view',
height: 300,
width: 300,
title: actionContext.$t('entities.contact.views.edit_datapanelview.title'),
placement: 'POPOVER',
};
openPopOver(view, data);
}
/** /**
* 新建 * 新建
* *
......
...@@ -3,6 +3,7 @@ import { Subject, Subscription } from 'rxjs'; ...@@ -3,6 +3,7 @@ import { Subject, Subscription } from 'rxjs';
import { Watch, EditFormControlBase } from '@/studio-core'; import { Watch, EditFormControlBase } from '@/studio-core';
import ContactService from '@/service/contact/contact-service'; import ContactService from '@/service/contact/contact-service';
import DatePanelService from './date-panel-form-service'; import DatePanelService from './date-panel-form-service';
import ContactUIService from '@/uiservice/contact/contact-ui-service';
import { FormButtonModel, FormPageModel, FormItemModel, FormDRUIPartModel, FormPartModel, FormGroupPanelModel, FormIFrameModel, FormRowItemModel, FormTabPageModel, FormTabPanelModel, FormUserControlModel } from '@/model/form-detail'; import { FormButtonModel, FormPageModel, FormItemModel, FormDRUIPartModel, FormPartModel, FormGroupPanelModel, FormIFrameModel, FormRowItemModel, FormTabPageModel, FormTabPanelModel, FormUserControlModel } from '@/model/form-detail';
...@@ -49,6 +50,34 @@ export class DatePanelEditFormBase extends EditFormControlBase { ...@@ -49,6 +50,34 @@ export class DatePanelEditFormBase extends EditFormControlBase {
*/ */
protected appDeName: string = 'contact'; protected appDeName: string = 'contact';
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public datapanel_button1_click(params: any = {}, tag?: any, $event?: any) {
// 取数
let datas: any[] = [];
let xData: any = null;
// _this 指向容器对象
const _this: any = this;
let paramJO:any = {};
let contextJO:any = {};
xData = this;
if (_this.getDatas && _this.getDatas instanceof Function) {
datas = [..._this.getDatas()];
}
if(params){
datas = [params];
}
// 界面行为
const curUIService:ContactUIService = new ContactUIService();
curUIService.Contact_OpenEdit_DataPanel(datas,contextJO, paramJO, $event, xData,this,"Contact");
}
/** /**
* 表单数据对象 * 表单数据对象
* *
...@@ -87,6 +116,10 @@ export class DatePanelEditFormBase extends EditFormControlBase { ...@@ -87,6 +116,10 @@ export class DatePanelEditFormBase extends EditFormControlBase {
* @memberof DatePanelEditFormBase * @memberof DatePanelEditFormBase
*/ */
public detailsModel: any = { public detailsModel: any = {
button1: new FormButtonModel({ caption: '头信息编辑', detailType: 'BUTTON', name: 'button1', visible: true, isShowCaption: true, form: this, uiaction: { type: 'DEUIACTION', tag: 'OpenEdit_DataPanel', actiontarget: 'SINGLEKEY' } }),
grouppanel1: new FormGroupPanelModel({ caption: '分组面板', detailType: 'GROUPPANEL', name: 'grouppanel1', visible: true, isShowCaption: false, form: this, uiActionGroup: { caption: '', langbase: 'entities.contact.datepanel_form', extractMode: 'ITEM', details: [] } }),
group1: new FormGroupPanelModel({ caption: '联系人基本信息', detailType: 'GROUPPANEL', name: 'group1', visible: true, isShowCaption: false, form: this, uiActionGroup: { caption: '', langbase: 'entities.contact.datepanel_form', extractMode: 'ITEM', details: [] } }), group1: new FormGroupPanelModel({ caption: '联系人基本信息', detailType: 'GROUPPANEL', name: 'group1', visible: true, isShowCaption: false, form: this, uiActionGroup: { caption: '', langbase: 'entities.contact.datepanel_form', extractMode: 'ITEM', details: [] } }),
formpage1: new FormPageModel({ caption: '基本信息', detailType: 'FORMPAGE', name: 'formpage1', visible: true, isShowCaption: true, form: this }), formpage1: new FormPageModel({ caption: '基本信息', detailType: 'FORMPAGE', name: 'formpage1', visible: true, isShowCaption: true, form: this }),
...@@ -116,4 +149,14 @@ export class DatePanelEditFormBase extends EditFormControlBase { ...@@ -116,4 +149,14 @@ export class DatePanelEditFormBase extends EditFormControlBase {
contactid: new FormItemModel({ caption: '联系人', detailType: 'FORMITEM', name: 'contactid', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }), contactid: new FormItemModel({ caption: '联系人', detailType: 'FORMITEM', name: 'contactid', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
}; };
/**
* 表单 头信息编辑 事件
*
* @memberof @memberof DatePanelEditFormBase
*/
public button1_click($event: any): void {
this.datapanel_button1_click(null, null, $event);
}
} }
\ No newline at end of file
...@@ -25,6 +25,22 @@ ...@@ -25,6 +25,22 @@
<app-span name='owneridyominame' :value="data.owneridyominame" :data="data" :context="context" :viewparams="viewparams" :localContext ='{ }' :localParam ='{ }' style=""></app-span> <app-span name='owneridyominame' :value="data.owneridyominame" :data="data" :context="context" :viewparams="viewparams" :localContext ='{ }' :localParam ='{ }' style=""></app-span>
</app-form-item> </app-form-item>
</div>
<div v-show="detailsModel.grouppanel1.visible" :style="{}">
<app-form-group layoutType="FLEX" titleStyle="" class='' :uiActionGroup="detailsModel.grouppanel1.uiActionGroup" @groupuiactionclick="groupUIActionClick($event)" :caption="$t('entities.contact.datepanel_form.details.grouppanel1')" :isShowCaption="false" uiStyle="DEFAULT" :titleBarCloseMode="0" :isInfoGroupMode="true" >
<div style="height: 100%;display: flex;align-items: center;">
<div v-show="detailsModel.button1.visible" :style="{}">
<i-button type="primary" @click="button1_click($event)"
style="">
<span >{{$t('entities.contact.datepanel_form.details.button1')}}</span>
</i-button>
</div>
</div>
</app-form-group>
</div> </div>
</div> </div>
......
import { Prop, Provide, Emit, Model } from 'vue-property-decorator';
import { Subject, Subscription } from 'rxjs';
import { Watch, EditFormControlBase } from '@/studio-core';
import ContactService from '@/service/contact/contact-service';
import Edit_DataPanelService from './edit-data-panel-form-service';
import { FormButtonModel, FormPageModel, FormItemModel, FormDRUIPartModel, FormPartModel, FormGroupPanelModel, FormIFrameModel, FormRowItemModel, FormTabPageModel, FormTabPanelModel, FormUserControlModel } from '@/model/form-detail';
/**
* form部件基类
*
* @export
* @class EditFormControlBase
* @extends {Edit_DataPanelEditFormBase}
*/
export class Edit_DataPanelEditFormBase extends EditFormControlBase {
/**
* 获取部件类型
*
* @protected
* @type {string}
* @memberof Edit_DataPanelEditFormBase
*/
protected controlType: string = 'FORM';
/**
* 建构部件服务对象
*
* @type {Edit_DataPanelService}
* @memberof Edit_DataPanelEditFormBase
*/
public service: Edit_DataPanelService = new Edit_DataPanelService({ $store: this.$store });
/**
* 实体服务对象
*
* @type {ContactService}
* @memberof Edit_DataPanelEditFormBase
*/
public appEntityService: ContactService = new ContactService({ $store: this.$store });
/**
* 应用实体名称
*
* @protected
* @type {string}
* @memberof Edit_DataPanelEditFormBase
*/
protected appDeName: string = 'contact';
/**
* 表单数据对象
*
* @type {*}
* @memberof Edit_DataPanelEditFormBase
*/
public data: any = {
srfupdatedate: null,
srforikey: null,
srfkey: null,
srfmajortext: null,
srftempmode: null,
srfuf: null,
srfdeid: null,
srfsourcekey: null,
customersizecode: null,
statuscode: null,
owneridyominame: null,
contactid: null,
contact:null,
};
/**
* 属性值规则
*
* @type {*}
* @memberof Edit_DataPanelEditFormBase
*/
public rules: any = {
owneridyominame: [
{ required: true, type: 'string', message: '负责人 值不能为空', trigger: 'change' },
{ required: true, type: 'string', message: '负责人 值不能为空', trigger: 'blur' },
],
}
/**
* 详情模型集合
*
* @type {*}
* @memberof Edit_DataPanelEditFormBase
*/
public detailsModel: any = {
group1: new FormGroupPanelModel({ caption: '联系人基本信息', detailType: 'GROUPPANEL', name: 'group1', visible: true, isShowCaption: false, form: this, uiActionGroup: { caption: '', langbase: 'entities.contact.edit_datapanel_form', extractMode: 'ITEM', details: [] } }),
formpage1: new FormPageModel({ caption: '基本信息', detailType: 'FORMPAGE', name: 'formpage1', visible: true, isShowCaption: true, form: this }),
srfupdatedate: new FormItemModel({ caption: '更新时间', detailType: 'FORMITEM', name: 'srfupdatedate', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 0 }),
srforikey: new FormItemModel({ caption: '', detailType: 'FORMITEM', name: 'srforikey', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
srfkey: new FormItemModel({ caption: '联系人', detailType: 'FORMITEM', name: 'srfkey', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
srfmajortext: new FormItemModel({ caption: '全名', detailType: 'FORMITEM', name: 'srfmajortext', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
srftempmode: new FormItemModel({ caption: '', detailType: 'FORMITEM', name: 'srftempmode', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
srfuf: new FormItemModel({ caption: '', detailType: 'FORMITEM', name: 'srfuf', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
srfdeid: new FormItemModel({ caption: '', detailType: 'FORMITEM', name: 'srfdeid', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
srfsourcekey: new FormItemModel({ caption: '', detailType: 'FORMITEM', name: 'srfsourcekey', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
customersizecode: new FormItemModel({ caption: '客户规模', detailType: 'FORMITEM', name: 'customersizecode', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
statuscode: new FormItemModel({ caption: '状态', detailType: 'FORMITEM', name: 'statuscode', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
owneridyominame: new FormItemModel({ caption: '负责人', detailType: 'FORMITEM', name: 'owneridyominame', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
contactid: new FormItemModel({ caption: '联系人', detailType: 'FORMITEM', name: 'contactid', visible: true, isShowCaption: true, form: this, disabled: false, enableCond: 3 }),
};
}
\ No newline at end of file
/**
* Edit_DataPanel 部件模型
*
* @export
* @class Edit_DataPanelModel
*/
export default class Edit_DataPanelModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof Edit_DataPanelModel
*/
public getDataItems(): any[] {
return [
{
name: 'srfwfmemo',
prop: 'srfwfmemo',
dataType: 'TEXT',
},
// 前端新增修改标识,新增为"0",修改为"1"或未设值
{
name: 'srffrontuf',
prop: 'srffrontuf',
dataType: 'TEXT',
},
{
name: 'srfupdatedate',
prop: 'updatedate',
dataType: 'DATETIME',
},
{
name: 'srforikey',
},
{
name: 'srfkey',
prop: 'contactid',
dataType: 'GUID',
},
{
name: 'srfmajortext',
prop: 'fullname',
dataType: 'TEXT',
},
{
name: 'srftempmode',
},
{
name: 'srfuf',
},
{
name: 'srfdeid',
},
{
name: 'srfsourcekey',
},
{
name: 'customersizecode',
prop: 'customersizecode',
dataType: 'SSCODELIST',
},
{
name: 'statuscode',
prop: 'statuscode',
dataType: 'NSCODELIST',
},
{
name: 'owneridyominame',
prop: 'owneridyominame',
dataType: 'TEXT',
},
{
name: 'contactid',
prop: 'contactid',
dataType: 'GUID',
},
{
name: 'contact',
prop: 'contactid',
dataType: 'FONTKEY',
},
]
}
}
\ No newline at end of file
import { Http,Util,Errorlog } from '@/utils';
import ControlService from '@/widgets/control-service';
import ContactService from '@/service/contact/contact-service';
import Edit_DataPanelModel from './edit-data-panel-form-model';
/**
* Edit_DataPanel 部件服务对象
*
* @export
* @class Edit_DataPanelService
*/
export default class Edit_DataPanelService extends ControlService {
/**
* 联系人服务对象
*
* @type {ContactService}
* @memberof Edit_DataPanelService
*/
public appEntityService: ContactService = new ContactService({ $store: this.getStore() });
/**
* 设置从数据模式
*
* @type {boolean}
* @memberof Edit_DataPanelService
*/
public setTempMode(){
this.isTempMode = false;
}
/**
* Creates an instance of Edit_DataPanelService.
*
* @param {*} [opts={}]
* @memberof Edit_DataPanelService
*/
constructor(opts: any = {}) {
super(opts);
this.model = new Edit_DataPanelModel();
}
/**
* 处理数据
*
* @private
* @param {Promise<any>} promise
* @returns {Promise<any>}
* @memberof Edit_DataPanelService
*/
private doItems(promise: Promise<any>, deKeyField: string, deName: string): Promise<any> {
return new Promise((resolve, reject) => {
promise.then((response: any) => {
if (response && response.status === 200) {
const data = response.data;
data.forEach((item:any,index:number) =>{
item[deName] = item[deKeyField];
data[index] = item;
});
resolve(data);
} else {
reject([])
}
}).catch((response: any) => {
reject([])
});
});
}
/**
* 获取跨实体数据集合
*
* @param {string} serviceName 服务名称
* @param {string} interfaceName 接口名称
* @param {*} data
* @param {boolean} [isloading]
* @returns {Promise<any[]>}
* @memberof Edit_DataPanelService
*/
@Errorlog
public getItems(serviceName: string, interfaceName: string, context: any = {}, data: any, isloading?: boolean): Promise<any[]> {
return Promise.reject([])
}
/**
* 启动工作流
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @param {*} [localdata]
* @returns {Promise<any>}
* @memberof Edit_DataPanelService
*/
@Errorlog
public wfstart(action: string,context: any = {},data: any = {}, isloading?: boolean,localdata?:any): Promise<any> {
data = this.handleWFData(data);
context = this.handleRequestData(action,context,data).context;
return new Promise((resolve: any, reject: any) => {
let result: Promise<any>;
const _appEntityService: any = this.appEntityService;
if (_appEntityService[action] && _appEntityService[action] instanceof Function) {
result = _appEntityService[action](context,data, isloading,localdata);
} else {
result = this.appEntityService.WFStart(context,data, isloading,localdata);
}
result.then((response) => {
this.handleResponse(action, response);
resolve(response);
}).catch(response => {
reject(response);
});
});
}
/**
* 提交工作流
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @param {*} [localdata]
* @returns {Promise<any>}
* @memberof Edit_DataPanelService
*/
@Errorlog
public wfsubmit(action: string,context: any = {}, data: any = {}, isloading?: boolean,localdata?:any): Promise<any> {
data = this.handleWFData(data,true);
context = this.handleRequestData(action,context,data,true).context;
return new Promise((resolve: any, reject: any) => {
let result: Promise<any>;
const _appEntityService: any = this.appEntityService;
if (_appEntityService[action] && _appEntityService[action] instanceof Function) {
result = _appEntityService[action](context,data, isloading,localdata);
} else {
result = this.appEntityService.WFSubmit(context,data, isloading,localdata);
}
result.then((response) => {
this.handleResponse(action, response);
resolve(response);
}).catch(response => {
reject(response);
});
});
}
/**
* 添加数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof Edit_DataPanelService
*/
@Errorlog
public add(action: string, context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
const {data:Data,context:Context} = this.handleRequestData(action,context,data);
return new Promise((resolve: any, reject: any) => {
let result: Promise<any>;
const _appEntityService: any = this.appEntityService;
if (_appEntityService[action] && _appEntityService[action] instanceof Function) {
result = _appEntityService[action](Context,Data, isloading);
} else {
result = this.appEntityService.Create(Context,Data, isloading);
}
result.then((response) => {
this.handleResponse(action, response);
resolve(response);
}).catch(response => {
reject(response);
});
});
}
/**
* 删除数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof Edit_DataPanelService
*/
@Errorlog
public delete(action: string, context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
const {data:Data,context:Context} = this.handleRequestData(action,context,data);
return new Promise((resolve: any, reject: any) => {
let result: Promise<any>;
const _appEntityService: any = this.appEntityService;
if (_appEntityService[action] && _appEntityService[action] instanceof Function) {
result = _appEntityService[action](Context,Data, isloading);
} else {
result = this.appEntityService.Remove(Context,Data, isloading);
}
result.then((response) => {
resolve(response);
}).catch(response => {
reject(response);
});
});
}
/**
* 修改数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof Edit_DataPanelService
*/
@Errorlog
public update(action: string, context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
const {data:Data,context:Context} = this.handleRequestData(action,context,data);
return new Promise((resolve: any, reject: any) => {
let result: Promise<any>;
const _appEntityService: any = this.appEntityService;
if (_appEntityService[action] && _appEntityService[action] instanceof Function) {
result = _appEntityService[action](Context,Data, isloading);
} else {
result = this.appEntityService.Update(Context,Data, isloading);
}
result.then((response) => {
this.handleResponse(action, response);
resolve(response);
}).catch(response => {
reject(response);
});
});
}
/**
* 查询数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof Edit_DataPanelService
*/
@Errorlog
public get(action: string,context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
const {data:Data,context:Context} = this.handleRequestData(action,context,data);
return new Promise((resolve: any, reject: any) => {
let result: Promise<any>;
const _appEntityService: any = this.appEntityService;
if (_appEntityService[action] && _appEntityService[action] instanceof Function) {
result = _appEntityService[action](Context,Data, isloading);
} else {
result = this.appEntityService.Get(Context,Data, isloading);
}
result.then((response) => {
this.handleResponse(action, response);
resolve(response);
}).catch(response => {
reject(response);
});
});
}
/**
* 加载草稿
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof Edit_DataPanelService
*/
@Errorlog
public loadDraft(action: string,context: any = {}, data: any = {}, isloading?: boolean): Promise<any> {
const {data:Data,context:Context} = this.handleRequestData(action,context,data);
//仿真主键数据
const PrimaryKey = Util.createUUID();
Data.contactid = PrimaryKey;
Data.contact = PrimaryKey;
return new Promise((resolve: any, reject: any) => {
let result: Promise<any>;
const _appEntityService: any = this.appEntityService;
if (_appEntityService[action] && _appEntityService[action] instanceof Function) {
result = _appEntityService[action](Context,Data, isloading);
} else {
result = this.appEntityService.GetDraft(Context,Data, isloading);
}
result.then((response) => {
response.data.contactid = PrimaryKey;
this.handleResponse(action, response, true);
resolve(response);
}).catch(response => {
reject(response);
});
});
}
/**
* 前台逻辑
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof Edit_DataPanelService
*/
@Errorlog
public frontLogic(action:string,context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
const {data:Data,context:Context} = this.handleRequestData(action,context,data);
return new Promise((resolve: any, reject: any)=>{
let result: Promise<any>;
const _appEntityService: any = this.appEntityService;
if (_appEntityService[action] && _appEntityService[action] instanceof Function) {
result = _appEntityService[action](Context,Data, isloading);
} else {
return Promise.reject({ status: 500, data: { title: '失败', message: '系统异常' } });
}
result.then((response) => {
this.handleResponse(action, response,true);
resolve(response);
}).catch(response => {
reject(response);
});
})
}
/**
* 处理请求数据
*
* @param action 行为
* @param data 数据
* @memberof Edit_DataPanelService
*/
public handleRequestData(action: string,context:any, data: any = {},isMerge:boolean = false){
let mode: any = this.getMode();
if (!mode && mode.getDataItems instanceof Function) {
return data;
}
let formItemItems: any[] = mode.getDataItems();
let requestData:any = {};
if(isMerge && (data && data.viewparams)){
Object.assign(requestData,data.viewparams);
}
formItemItems.forEach((item:any) =>{
if(item && item.dataType && Object.is(item.dataType,'FONTKEY')){
if(item && item.prop){
requestData[item.prop] = context[item.name];
}
}else{
if(item && item.prop){
requestData[item.prop] = data[item.name];
}
}
});
let tempContext:any = JSON.parse(JSON.stringify(context));
if(tempContext && tempContext.srfsessionid){
tempContext.srfsessionkey = tempContext.srfsessionid;
delete tempContext.srfsessionid;
}
return {context:tempContext,data:requestData};
}
}
\ No newline at end of file
<i-form :model="this.data" class='app-form' ref='form' id='contact_edit_datapanel' style="">
<input style="display:none;" />
<row >
<i-col v-show="detailsModel.group1.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-group layoutType="TABLE_24COL" titleStyle="" class='' :uiActionGroup="detailsModel.group1.uiActionGroup" @groupuiactionclick="groupUIActionClick($event)" :caption="$t('entities.contact.edit_datapanel_form.details.group1')" :isShowCaption="false" uiStyle="DEFAULT" :titleBarCloseMode="0" :isInfoGroupMode="false" >
<row>
<i-col v-show="detailsModel.customersizecode.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='customersizecode' :itemRules="this.rules.customersizecode" class='' :caption="$t('entities.contact.edit_datapanel_form.details.customersizecode')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.customersizecode.error" :isEmptyCaption="false" labelPos="LEFT">
<dropdown-list
v-model="data.customersizecode"
:data="data"
:context="context"
:viewparams="viewparams"
:localContext ='{ }'
:localParam ='{ }'
:disabled="detailsModel.customersizecode.disabled"
tag='Contact__CustomerSizeCode'
codelistType='STATIC'
placeholder='请选择...' style="">
</dropdown-list>
</app-form-item>
</i-col>
<i-col v-show="detailsModel.statuscode.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='statuscode' :itemRules="this.rules.statuscode" class='' :caption="$t('entities.contact.edit_datapanel_form.details.statuscode')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.statuscode.error" :isEmptyCaption="false" labelPos="LEFT">
<dropdown-list
v-model="data.statuscode"
:data="data"
:context="context"
:viewparams="viewparams"
:localContext ='{ }'
:localParam ='{ }'
:disabled="detailsModel.statuscode.disabled"
tag='Contact__StatusCode'
codelistType='STATIC'
placeholder='请选择...' style="">
</dropdown-list>
</app-form-item>
</i-col>
<i-col v-show="detailsModel.owneridyominame.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='owneridyominame' :itemRules="this.rules.owneridyominame" class='' :caption="$t('entities.contact.edit_datapanel_form.details.owneridyominame')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.owneridyominame.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box v-model="data.owneridyominame" @enter="onEnter($event)" unit="" :disabled="detailsModel.owneridyominame.disabled" type='text' style=""></input-box>
</app-form-item>
</i-col>
</row>
</app-form-group>
</i-col>
</row>
</i-form>
\ No newline at end of file
<template src="./edit-data-panel-form.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { Edit_DataPanelEditFormBase } from './edit-data-panel-form-base';
/**
* form部件
*
* @export
* @class Edit_DataPanelEditForm
* @extends {Edit_DataPanelEditFormBase}
*/
@Component({
components: {
}
})
@VueLifeCycleProcessing()
export default class Edit_DataPanelEditForm extends Edit_DataPanelEditFormBase { }
</script>
...@@ -20,23 +20,26 @@ ...@@ -20,23 +20,26 @@
<i-col v-show="detailsModel.owneridyominame.visible" :style="{}" :lg="{ span: 24, offset: 0 }"> <i-col v-show="detailsModel.owneridyominame.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='owneridyominame' :itemRules="this.rules.owneridyominame" class='' :caption="$t('entities.task.quickcreate_form.details.owneridyominame')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.owneridyominame.error" :isEmptyCaption="false" labelPos="LEFT"> <app-form-item name='owneridyominame' :itemRules="this.rules.owneridyominame" class='' :caption="$t('entities.task.quickcreate_form.details.owneridyominame')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.owneridyominame.error" :isEmptyCaption="false" labelPos="LEFT">
<app-mpicker <app-picker
:activeData="data" :formState="formState"
:disabled="detailsModel.owneridyominame.disabled" :data="data"
:curvalue="data.owneridyominame" :context="context"
name="owneridyominame" :viewparams="viewparams"
:context="context" :localContext ='{ }'
:viewparams="viewparams" :localParam ='{ }'
:localContext ='{ }' :disabled="detailsModel.owneridyominame.disabled"
:localParam ='{ }' name='owneridyominame'
:service="service" deMajorField='pickdataname'
deMajorField='pickdataname' deKeyField='multipickdata'
deKeyField='multipickdata' :service="service"
:acParams="{ serviceName: 'MultiPickDataService', interfaceName: 'FetchAC'}" :acParams="{ serviceName: 'MultiPickDataService', interfaceName: 'FetchAC'}"
:pickupView="{ viewname: 'multi-pick-data-ac', title: $t('entities.multipickdata.views.ac.title'), deResParameters: [], parameters: [{ pathName: 'multipickdata', parameterName: 'multipickdata' }, { pathName: 'ac', parameterName: 'ac' } ], width: 1024, placement:'' }" valueitem='ownerid'
@formitemvaluechange="onFormItemValueChange($event)" :value="data.owneridyominame"
style=""> editortype=""
</app-mpicker> :pickupView="{ viewname: 'multi-pick-data-ac', title: $t('entities.multipickdata.views.ac.title'), deResParameters: [], parameters: [{ pathName: 'multipickdata', parameterName: 'multipickdata' }, { pathName: 'ac', parameterName: 'ac' } ], width: 1024, placement:'' }"
style=""
@formitemvaluechange="onFormItemValueChange($event)">
</app-picker>
</app-form-item> </app-form-item>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册