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

xignzi006 发布系统代码

上级 e8e10476
...@@ -1583,7 +1583,7 @@ ...@@ -1583,7 +1583,7 @@
"title": "企业中心", "title": "企业中心",
"caption": "企业中心", "caption": "企业中心",
"viewtype": "APPINDEXVIEW", "viewtype": "APPINDEXVIEW",
"viewmodule": "Ungroup", "viewmodule": "Base",
"viewname": "Central", "viewname": "Central",
"viewfilename": "central", "viewfilename": "central",
"viewtag": "8b173077897bf865fe035e56073b763d", "viewtag": "8b173077897bf865fe035e56073b763d",
......
...@@ -386,6 +386,56 @@ export default { ...@@ -386,6 +386,56 @@ export default {
uiactions: { uiactions: {
}, },
}, },
edit_abstract_form: {
details: {
group1: "联系人基本信息",
grouppanel1: "地址信息",
grouppanel2: "个人信息",
grouppanel3: "市场营销信息",
grouppanel4: "记账信息",
formpage1: "基本信息",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "联系人",
srfmajortext: "全名",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
fullname: "全名",
jobtitle: "职务",
customername: "客户",
emailaddress1: "电子邮件",
telephone1: "商务电话",
mobilephone: "移动电话",
fax: "传真",
address1_country: "国家/地区",
address1_stateorprovince: "省/市/自治区",
address1_city: "市/县",
address1_line1: "街道",
address1_postalcode: "邮政编码",
gendercode: "性别",
familystatuscode: "婚姻状况",
spousesname: "配偶/伴侣姓名",
birthdate: "生日",
anniversary: "纪念日",
description: "说明",
originatingleadname: "原始潜在顾客",
lastusedincampaign: "上次参与市场活动的日期",
donotsendmm: "发送市场营销资料",
shippingmethodcode: "送货方式",
transactioncurrencyname: "货币",
creditlimit: "信用额度",
creditonhold: "信用冻结",
paymenttermscode: "付款方式",
customerid: "客户",
originatingleadid: "原始潜在顾客",
transactioncurrencyid: "货币",
contactid: "联系人",
},
uiactions: {
},
},
edit_datapanel_form: { edit_datapanel_form: {
details: { details: {
group1: "联系人基本信息", group1: "联系人基本信息",
...@@ -560,30 +610,6 @@ export default { ...@@ -560,30 +610,6 @@ export default {
uiactions: { uiactions: {
}, },
}, },
main_form: {
details: {
group1: "contact基本信息",
formpage1: "基本信息",
group2: "操作信息",
formpage2: "其它",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "联系人",
srfmajortext: "全名",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
fullname: "全名",
createman: "建立人",
createdate: "建立时间",
updateman: "更新人",
updatedate: "更新时间",
contactid: "联系人",
},
uiactions: {
},
},
bookedit_form: { bookedit_form: {
details: { details: {
grouppanel2: "记账", grouppanel2: "记账",
...@@ -661,7 +687,29 @@ export default { ...@@ -661,7 +687,29 @@ export default {
uiactions: { uiactions: {
}, },
}, },
editviewtoolbar_toolbar: {
tbitem12: {
caption: "关闭",
tip: "关闭",
},
},
infotoolbar_toolbar: { infotoolbar_toolbar: {
tbitem1_openmaineditview: {
caption: "编辑",
tip: "编辑",
},
tbitem1_remove_sep: {
caption: "",
tip: "",
},
tbitem1_remove: {
caption: "删除并关闭",
tip: "删除并关闭",
},
seperator4: {
caption: "",
tip: "",
},
tbitem17_inactive: { tbitem17_inactive: {
caption: "停用", caption: "停用",
tip: "停用", tip: "停用",
...@@ -833,42 +881,4 @@ export default { ...@@ -833,42 +881,4 @@ export default {
tip: "Filter", tip: "Filter",
}, },
}, },
editviewtoolbar_toolbar: {
tbitem3: {
caption: "Save",
tip: "Save",
},
tbitem4: {
caption: "Save And New",
tip: "Save And New",
},
tbitem5: {
caption: "Save And Close",
tip: "Save And Close Window",
},
tbitem6: {
caption: "-",
tip: "",
},
tbitem7: {
caption: "Remove And Close",
tip: "Remove And Close Window",
},
tbitem8: {
caption: "-",
tip: "",
},
tbitem12: {
caption: "New",
tip: "New",
},
tbitem13: {
caption: "-",
tip: "",
},
tbitem14: {
caption: "Copy",
tip: "Copy {0}",
},
},
}; };
\ No newline at end of file
...@@ -385,6 +385,56 @@ export default { ...@@ -385,6 +385,56 @@ export default {
uiactions: { uiactions: {
}, },
}, },
edit_abstract_form: {
details: {
group1: "联系人基本信息",
grouppanel1: "地址信息",
grouppanel2: "个人信息",
grouppanel3: "市场营销信息",
grouppanel4: "记账信息",
formpage1: "基本信息",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "联系人",
srfmajortext: "全名",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
fullname: "全名",
jobtitle: "职务",
customername: "客户",
emailaddress1: "电子邮件",
telephone1: "商务电话",
mobilephone: "移动电话",
fax: "传真",
address1_country: "国家/地区",
address1_stateorprovince: "省/市/自治区",
address1_city: "市/县",
address1_line1: "街道",
address1_postalcode: "邮政编码",
gendercode: "性别",
familystatuscode: "婚姻状况",
spousesname: "配偶/伴侣姓名",
birthdate: "生日",
anniversary: "纪念日",
description: "说明",
originatingleadname: "原始潜在顾客",
lastusedincampaign: "上次参与市场活动的日期",
donotsendmm: "发送市场营销资料",
shippingmethodcode: "送货方式",
transactioncurrencyname: "货币",
creditlimit: "信用额度",
creditonhold: "信用冻结",
paymenttermscode: "付款方式",
customerid: "客户",
originatingleadid: "原始潜在顾客",
transactioncurrencyid: "货币",
contactid: "联系人",
},
uiactions: {
},
},
edit_datapanel_form: { edit_datapanel_form: {
details: { details: {
group1: "联系人基本信息", group1: "联系人基本信息",
...@@ -559,30 +609,6 @@ export default { ...@@ -559,30 +609,6 @@ export default {
uiactions: { uiactions: {
}, },
}, },
main_form: {
details: {
group1: "contact基本信息",
formpage1: "基本信息",
group2: "操作信息",
formpage2: "其它",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "联系人",
srfmajortext: "全名",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
fullname: "全名",
createman: "建立人",
createdate: "建立时间",
updateman: "更新人",
updatedate: "更新时间",
contactid: "联系人",
},
uiactions: {
},
},
bookedit_form: { bookedit_form: {
details: { details: {
grouppanel2: "记账", grouppanel2: "记账",
...@@ -660,7 +686,29 @@ export default { ...@@ -660,7 +686,29 @@ export default {
uiactions: { uiactions: {
}, },
}, },
editviewtoolbar_toolbar: {
tbitem12: {
caption: "关闭",
tip: "关闭",
},
},
infotoolbar_toolbar: { infotoolbar_toolbar: {
tbitem1_openmaineditview: {
caption: "编辑",
tip: "编辑",
},
tbitem1_remove_sep: {
caption: "",
tip: "",
},
tbitem1_remove: {
caption: "删除并关闭",
tip: "删除并关闭",
},
seperator4: {
caption: "",
tip: "",
},
tbitem17_inactive: { tbitem17_inactive: {
caption: "停用", caption: "停用",
tip: "停用", tip: "停用",
...@@ -832,42 +880,4 @@ export default { ...@@ -832,42 +880,4 @@ export default {
tip: "过滤", tip: "过滤",
}, },
}, },
editviewtoolbar_toolbar: {
tbitem3: {
caption: "保存",
tip: "保存",
},
tbitem4: {
caption: "保存并新建",
tip: "保存并新建",
},
tbitem5: {
caption: "保存并关闭",
tip: "保存并关闭",
},
tbitem6: {
caption: "-",
tip: "",
},
tbitem7: {
caption: "删除并关闭",
tip: "删除并关闭",
},
tbitem8: {
caption: "-",
tip: "",
},
tbitem12: {
caption: "新建",
tip: "新建",
},
tbitem13: {
caption: "-",
tip: "",
},
tbitem14: {
caption: "拷贝",
tip: "拷贝",
},
},
}; };
\ No newline at end of file
...@@ -1275,7 +1275,7 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => { ...@@ -1275,7 +1275,7 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"title": "企业中心", "title": "企业中心",
"caption": "企业中心", "caption": "企业中心",
"viewtype": "APPINDEXVIEW", "viewtype": "APPINDEXVIEW",
"viewmodule": "Ungroup", "viewmodule": "Base",
"viewname": "Central", "viewname": "Central",
"viewtag": "8b173077897bf865fe035e56073b763d" "viewtag": "8b173077897bf865fe035e56073b763d"
}, },
......
import { Vue } from 'vue-property-decorator';
import { FooterItemsService } from '@/studio-core/service/FooterItemsService';
import { AppService } from '@/studio-core/service/app-service/AppService';
import AppMenusModel from '@/widgets/app/central-appmenu/central-appmenu-model';
/**
* 应用首页基类
*/
export class CentralBase extends Vue {
/**
* 计数器服务对象集合
*
* @type {any[]}
* @memberof CentralBase
*/
protected counterServiceArray: any[] = [];
/**
* 应用服务
*
* @protected
* @type {AppService}
* @memberof CentralBase
*/
protected appService: AppService = new AppService();
/**
* 应用菜单集合
*
* @type {AppMenusModel}
* @memberof CentralBase
*/
protected appMenuModel: AppMenusModel = new AppMenusModel();
/**
* 左侧导航菜单
*
* @type {*}
* @memberof CentralBase
*/
protected left_exp: any = this.appMenuModel.getMenuGroup('left_exp') || {};
/**
* 底部导航菜单
*
* @type {*}
* @memberof CentralBase
*/
protected bottom_exp: any = this.appMenuModel.getMenuGroup('bottom_exp') || {};
/**
* 标题栏菜单
*
* @type {*}
* @memberof CentralBase
*/
protected top_menus: any = this.appMenuModel.getMenuGroup('top_menus') || {};
/**
* 用户菜单
*
* @type {*}
* @memberof CentralBase
*/
protected user_menus: any = this.appMenuModel.getMenuGroup('user_menus') || {};
/**
* 底部项绘制服务
*
* @type {FooterItemsService}
* @memberof CentralBase
*/
protected footerItemsService: FooterItemsService = new FooterItemsService();
/**
* 视图标识
*
* @type {string}
* @memberof CentralBase
*/
protected viewtag: string = '8b173077897bf865fe035e56073b763d';
/**
* 视图模型数据
*
* @type {*}
* @memberof CentralBase
*/
protected model: any = {
srfCaption: 'app.views.central.caption',
srfTitle: 'app.views.central.title',
srfSubTitle: 'app.views.central.subtitle',
dataInfo: ''
}
/**
* 应用上下文
*
* @type {*}
* @memberof CentralBase
*/
protected context: any = {};
/**
* 视图参数
*
* @type {*}
* @memberof CentralBase
*/
protected viewparams: any = {};
/**
* 注册底部项
*
* @memberof CentralBase
*/
protected registerFooterItems(): void {
const leftItems: any = this.appMenuModel.getMenuGroup('footer_left');
const centerItems: any = this.appMenuModel.getMenuGroup('footer_center');
const rightItems: any = this.appMenuModel.getMenuGroup('footer_right');
if (leftItems && leftItems.items) {
leftItems.items.forEach((item: any) => {
this.footerItemsService.registerLeftItem((h: any) => {
return <div class='action-item' title={item.tooltip} on-click={() => this.click(item)}>
<menu-icon item={item}/>
{item.text}
</div>;
});
});
}
if (centerItems && centerItems.items) {
centerItems.items.forEach((item: any) => {
this.footerItemsService.registerCenterItem((h: any) => {
return <div class='action-item' title={item.tooltip} on-click={() => this.click(item)}>
<menu-icon item={item}/>
{item.text}
</div>;
});
});
}
if (rightItems && rightItems.items) {
rightItems.items.forEach((item: any) => {
this.footerItemsService.registerRightItem((h: any) => {
return <div class='action-item' title={item.tooltip} on-click={() => this.click(item)}>
<menu-icon item={item}/>
{item.text}
</div>;
});
});
}
}
/**
* 项点击触发界面行为
*
* @protected
* @param {*} item
* @memberof CentralBase
*/
protected click(item: any): void {
const appMenu: any = this.$refs.appmenu;
if (appMenu) {
appMenu.click(item);
}
}
/**
* 组件创建完毕
*
* @memberof CentralBase
*/
protected created() {
const secondtag = this.$util.createUUID();
this.$store.commit("viewaction/createdView", {
viewtag: this.viewtag,
secondtag: secondtag
});
this.viewtag = secondtag;
this.parseViewParam();
this.$uiState.changeLayoutState({
styleMode: 'STYLE2'
});
this.registerFooterItems();
}
/**
* 销毁之前
*
* @memberof CentralBase
*/
protected beforeDestroy() {
this.$store.commit("viewaction/removeView", this.viewtag);
}
/**
* Vue声明周期(组件初始化完毕)
*
* @memberof CentralBase
*/
protected mounted() {
this.$viewTool.setIndexParameters([
{ pathName: 'central', parameterName: 'central' }
]);
this.$viewTool.setIndexViewParam(this.context);
setTimeout(() => {
const el = document.getElementById('app-loading-x');
if (el) {
el.remove();
}
}, 300);
}
/**
* 解析视图参数
*
* @private
* @memberof CentralBase
*/
private parseViewParam(): void {
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);
}
}
/**
* 绘制内容
*/
public render(): any {
const styleMode = this.$uiState.layoutState.styleMode;
let leftContent: any;
switch (styleMode) {
case 'DEFAULT':
leftContent = <app-content-left-exp ref="leftExp" menus={this.left_exp.items} />;
break;
case 'STYLE2':
leftContent = <app-content-left-nav-menu ref="leftNavMenu" menus={this.left_exp.items} on-menu-click={(item: any) => this.click(item)}/>;
}
return (
<app-layout ref="appLayout">
<template slot="header">
<app-header>
<template slot="header_left">
<div class="title">
企业中心
</div>
</template>
<template slot="header_right">
<app-header-menus ref="headerMenus" menus={this.top_menus.items} on-menu-click={(item: any) => this.click(item)}/>
<user-info ref="userInfo" menus={this.user_menus.items} on-menu-click={(item: any) => this.click(item)}/>
</template>
</app-header>
<view_appmenu ref='appmenu'/>
</template>
<app-content>
{this.left_exp.items ? <template slot="content_left">
{leftContent}
</template> : null}
{styleMode === 'DEFAULT' ? <tab-page-exp ref="tabExp"></tab-page-exp> : null}
<div class="view-warp">
<app-keep-alive routerList={this.appService.navHistory.historyList}>
<router-view key={this.$route.fullPath}></router-view>
</app-keep-alive>
</div>
{this.bottom_exp.items ? <template slot="content_bottom">
<app-content-bottom-exp ref="bootomExp" menus={this.bottom_exp.items} />
</template> : null}
</app-content>
<template slot="footer">
<app-footer ref="footer"/>
</template>
</app-layout>
);
}
}
\ No newline at end of file
<script lang='tsx'>
import { Component } from "vue-property-decorator";
import { VueLifeCycleProcessing } from '@/studio-core/decorators/VueLifeCycleProcessing';
import { CentralBase } from './central-base';
import view_appmenu from '@widgets/app/central-appmenu/central-appmenu.vue';
/**
* 应用首页
*/
@Component({
components: {
view_appmenu,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
vm.$appService.navHistory.setViewTag(vm.viewtag, to);
vm.$appService.navHistory.setViewContext(vm.context, to);
});
},
})
@VueLifeCycleProcessing()
export default class Central extends CentralBase { }
</script>
\ No newline at end of file
import Vue from 'vue';
import Vuex from 'vuex';
import VueRouter from 'vue-router';
import App from '@/App.vue';
import ElementUi from 'element-ui';
import ViewUI from 'view-design';
// import ibizLab from 'ibiz-vue-lib';
import { Interceptors } from '@/utils';
import { Print } from '@/utils/print';
import i18n from '@/locale'
import 'element-ui/lib/theme-chalk/index.css';
import 'view-design/dist/styles/iview.css';
// import 'ibiz-vue-lib/lib/ibiz-vue-lib.css';
import '@/styles/default.less';
// 模拟数据
// if (process.env.NODE_ENV === 'development') {
// require('@/mock');
// }
const pathToRegExp = require('path-to-regexp');
import { AppComponents } from '@/app-register';
import { PageComponents } from './page-register';
import { UserComponent } from '@/user-register';
import { PortletComponent } from '@/portlet-register';
import store from '@/store';
import router from './router';
Vue.config.errorHandler = function (err: any, vm: any, info: any) {
console.error(err);
}
Vue.config.productionTip = false;
Vue.use(Print);
// Vue.use(ibizLab);
Vue.use(Vuex);
Vue.use(VueRouter);;
Vue.use(ElementUi, {
i18n: (key: any, value: any) => i18n.t(key, value)
});
Vue.use(ViewUI, {
i18n: (key: any, value: any) => i18n.t(key, value)
});
// Vue.use(utils);
Vue.prototype.$pathToRegExp = pathToRegExp;
Vue.use(AppComponents);
Vue.use(PageComponents);
Vue.use(UserComponent);
Vue.use(PortletComponent);
Interceptors.getInstance(router, store);
const init = async () => {
new Vue({
i18n,
store,
router,
render: (h: any) => h(App),
}).$mount('#app');
};
init();
\ No newline at end of file
此差异已折叠。
此差异已折叠。
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 ContactEditViewBase
* @extends {EditViewBase}
*/
export class ContactEditViewBase extends EditViewBase {
/**
* 视图对应应用实体名称
*
* @protected
* @type {string}
* @memberof ContactEditViewBase
*/
protected appDeName: string = 'contact';
/**
* 应用实体主键
*
* @protected
* @type {string}
* @memberof ContactEditViewBase
*/
protected appDeKey: string = 'contactid';
/**
* 应用实体主信息
*
* @protected
* @type {string}
* @memberof ContactEditViewBase
*/
protected appDeMajor: string = 'fullname';
/**
* 实体服务对象
*
* @type {ContactService}
* @memberof ContactEditViewBase
*/
protected appEntityService: ContactService = new ContactService;
/**
* 计数器服务对象集合
*
* @protected
* @type {Array<*>}
* @memberof ContactEditViewBase
*/
protected counterServiceArray: Array<any> = [];
/**
* 视图模型数据
*
* @protected
* @type {*}
* @memberof ContactEditViewBase
*/
protected model: any = {
srfCaption: 'entities.contact.views.editview.caption',
srfTitle: 'entities.contact.views.editview.title',
srfSubTitle: 'entities.contact.views.editview.subtitle',
dataInfo: ''
}
/**
* 容器模型
*
* @protected
* @type {*}
* @memberof ContactEditViewBase
*/
protected containerModel: any = {
view_toolbar: { name: 'toolbar', type: 'TOOLBAR' },
view_form: { name: 'form', type: 'FORM' },
};
/**
* 工具栏模型
*
* @type {*}
* @memberof ContactEditView
*/
public toolBarModels: any = {
tbitem12: { name: 'tbitem12', caption: '关闭','isShowCaption':true,'isShowIcon':true, tooltip: '关闭', iconcls: 'fa fa-sign-out', icon: '', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'Exit', target: '' }, class: '' },
};
/**
* 视图唯一标识
*
* @protected
* @type {string}
* @memberof ViewBase
*/
protected viewtag: string = '9a96ebf2e57358b3590b9d4479edb77a';
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof ContactEditViewBase
*/
public engine: EditViewEngine = new EditViewEngine();
/**
* 引擎初始化
*
* @public
* @memberof ContactEditViewBase
*/
public engineInit(): void {
this.engine.init({
view: this,
form: this.$refs.form,
p2k: '0',
keyPSDEField: 'contact',
majorPSDEField: 'fullname',
isLoadDefault: true,
});
}
/**
* toolbar 部件 click 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactEditViewBase
*/
public toolbar_click($event: any, $event2?: any): void {
if (Object.is($event.tag, 'tbitem12')) {
this.toolbar_tbitem12_click(null, '', $event2);
}
}
/**
* form 部件 save 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactEditViewBase
*/
public form_save($event: any, $event2?: any): void {
this.engine.onCtrlEvent('form', 'save', $event);
}
/**
* form 部件 remove 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactEditViewBase
*/
public form_remove($event: any, $event2?: any): void {
this.engine.onCtrlEvent('form', 'remove', $event);
}
/**
* form 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof ContactEditViewBase
*/
public form_load($event: any, $event2?: any): void {
this.engine.onCtrlEvent('form', 'load', $event);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public toolbar_tbitem12_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.Exit(datas, contextJO,paramJO, $event, xData,this,"Contact");
}
/**
* 关闭
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof ContactEditViewBase
*/
public Exit(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
this.closeView(args);
if(window.parent){
window.parent.postMessage([{ ...args }],'*');
}
}
}
\ No newline at end of file
<studio-view-style2 viewName="contacteditview" viewTitle="联系人编辑视图" class='deeditview contact-edit-view'>
<template slot='title'>
<span class='caption-info'>{{$t(model.srfTitle)}}</span>
</template>
<template slot="toolbar">
<view-toolbar mode="STYLE2" :model="toolBarModels" @item-click="toolbar_click($event)"/> </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-view-style2>
\ No newline at end of file
<template src="./contact-edit-view.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { ContactEditViewBase } from './contact-edit-view-base';
import view_form from '@widgets/contact/edit-abstract-form/edit-abstract-form.vue';
/**
* 联系人编辑视图视图
*
* @export
* @class ContactEditView
* @extends {ContactEditViewBase}
*/
@Component({
components: {
view_form,
}
})
@VueLifeCycleProcessing()
export default class ContactEditView extends ContactEditViewBase { }
</script>
...@@ -105,6 +105,12 @@ export class ContactInfoBase extends TabExpViewBase { ...@@ -105,6 +105,12 @@ export class ContactInfoBase extends TabExpViewBase {
* @memberof ContactInfo * @memberof ContactInfo
*/ */
public toolBarModels: any = { public toolBarModels: any = {
tbitem1_openmaineditview: { name: 'tbitem1_openmaineditview', caption: '编辑','isShowCaption':true,'isShowIcon':true, tooltip: '编辑', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'OpenMainEditView', target: 'SINGLEKEY' }, class: '' },
tbitem1_remove_sep: { name: 'tbitem1_remove_sep', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
tbitem1_remove: { name: 'tbitem1_remove', caption: '删除并关闭','isShowCaption':true,'isShowIcon':true, tooltip: '删除并关闭', iconcls: 'fa fa-remove', icon: '', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'Remove', target: 'SINGLEKEY' }, class: '' },
seperator4: { name: 'seperator4', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
tbitem17_inactive: { name: 'tbitem17_inactive', caption: '停用','isShowCaption':true,'isShowIcon':true, tooltip: '停用', iconcls: 'fa fa-minus-circle', icon: '', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'Inactive', target: 'SINGLEKEY' }, class: '' }, tbitem17_inactive: { name: 'tbitem17_inactive', caption: '停用','isShowCaption':true,'isShowIcon':true, tooltip: '停用', iconcls: 'fa fa-minus-circle', icon: '', disabled: false, type: 'DEUIACTION', visabled: true, dataaccaction: '', uiaction: { tag: 'Inactive', target: 'SINGLEKEY' }, class: '' },
tbitem17_active_sep: { name: 'tbitem17_active_sep', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } }, tbitem17_active_sep: { name: 'tbitem17_active_sep', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
...@@ -178,6 +184,12 @@ export class ContactInfoBase extends TabExpViewBase { ...@@ -178,6 +184,12 @@ export class ContactInfoBase extends TabExpViewBase {
* @memberof ContactInfoBase * @memberof ContactInfoBase
*/ */
public toolbar_click($event: any, $event2?: any): void { public toolbar_click($event: any, $event2?: any): void {
if (Object.is($event.tag, 'tbitem1_openmaineditview')) {
this.toolbar_tbitem1_openmaineditview_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem1_remove')) {
this.toolbar_tbitem1_remove_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem17_inactive')) { if (Object.is($event.tag, 'tbitem17_inactive')) {
this.toolbar_tbitem17_inactive_click(null, '', $event2); this.toolbar_tbitem17_inactive_click(null, '', $event2);
} }
...@@ -192,6 +204,62 @@ export class ContactInfoBase extends TabExpViewBase { ...@@ -192,6 +204,62 @@ export class ContactInfoBase extends TabExpViewBase {
} }
} }
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public toolbar_tbitem1_openmaineditview_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 = {};
if (_this.getDatas && _this.getDatas instanceof Function) {
datas = [..._this.getDatas()];
}
if(params){
datas = [params];
}
// 界面行为
const curUIService:ContactUIService = new ContactUIService();
curUIService.Contact_OpenMainEditView(datas,contextJO, paramJO, $event, xData,this,"Contact");
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public toolbar_tbitem1_remove_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 = {};
if (_this.getDatas && _this.getDatas instanceof Function) {
datas = [..._this.getDatas()];
}
if(params){
datas = [params];
}
// 界面行为
const curUIService:ContactUIService = new ContactUIService();
curUIService.Contact_Remove(datas,contextJO, paramJO, $event, xData,this,"Contact");
}
/** /**
* 逻辑事件 * 逻辑事件
* *
......
...@@ -1446,7 +1446,7 @@ export const viewstate: any = { ...@@ -1446,7 +1446,7 @@ export const viewstate: any = {
}, },
{ {
viewtag: '8b173077897bf865fe035e56073b763d', viewtag: '8b173077897bf865fe035e56073b763d',
viewmodule: 'Ungroup', viewmodule: 'Base',
viewname: 'Central', viewname: 'Central',
viewaction: '', viewaction: '',
viewdatachange: false, viewdatachange: false,
...@@ -1664,6 +1664,18 @@ export const viewstate: any = { ...@@ -1664,6 +1664,18 @@ export const viewstate: any = {
'6debde861c6e6f91eeb442cb869e9737', '6debde861c6e6f91eeb442cb869e9737',
], ],
}, },
{
viewtag: '9a96ebf2e57358b3590b9d4479edb77a',
viewmodule: 'Base',
viewname: 'ContactEditView',
viewaction: '',
viewdatachange: false,
refviews: [
'da3f8c1f20f440f3df54d6c13a8de586',
'29bfcd628ab25e297248ff0524d12908',
'1bc48b15dbe69c5f30dafe489f58aacb',
],
},
{ {
viewtag: '9AE386A9-53DE-4F99-BCCA-747AEFE666A4', viewtag: '9AE386A9-53DE-4F99-BCCA-747AEFE666A4',
viewmodule: 'Ungroup', viewmodule: 'Ungroup',
...@@ -2532,6 +2544,7 @@ export const viewstate: any = { ...@@ -2532,6 +2544,7 @@ export const viewstate: any = {
'6f35f461b53398775ff2f1a563776fa3', '6f35f461b53398775ff2f1a563776fa3',
'26e0707950d8676b9a9363c6bc46ee89', '26e0707950d8676b9a9363c6bc46ee89',
'bae77557d2f7a7852b634dc5d5a93435', 'bae77557d2f7a7852b634dc5d5a93435',
'9a96ebf2e57358b3590b9d4479edb77a',
'50138c2b066081ec8b6fe67c88af5371', '50138c2b066081ec8b6fe67c88af5371',
'6168a7e787ead13b1e0f9a55007bc68c', '6168a7e787ead13b1e0f9a55007bc68c',
'791f1cf310878383aaec921c83adb1d5', '791f1cf310878383aaec921c83adb1d5',
......
...@@ -372,6 +372,59 @@ export default class ContactUIServiceBase extends UIService { ...@@ -372,6 +372,59 @@ export default class ContactUIServiceBase extends UIService {
openIndexViewTab(data); openIndexViewTab(data);
} }
/**
* 编辑
*
* @param {any[]} args 当前数据
* @param {any} context 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @param {*} [srfParentDeName] 父实体名称
* @returns {Promise<any>}
*/
public async Contact_OpenMainEditView(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' },
{ pathName: 'editview', parameterName: 'editview' },
];
const openIndexViewTab = (data: any) => {
const routePath = actionContext.$viewTool.buildUpRoutePath(actionContext.$route, context, deResParameters, parameters, _args, data);
actionContext.$router.push(routePath);
return null;
}
openIndexViewTab(data);
}
/** /**
* 停用 * 停用
* *
...@@ -503,6 +556,74 @@ export default class ContactUIServiceBase extends UIService { ...@@ -503,6 +556,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_Remove(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);
// 直接调实体服务需要转换的数据
if(context && context.srfsessionid){
context.srfsessionkey = context.srfsessionid;
delete context.srfsessionid;
}
actionContext.closeView(null);
const backend = () => {
const curService:ContactService = new ContactService();
curService.Remove(context,data, true).then((response: any) => {
if (!response || response.status !== 200) {
actionContext.$Notice.error({ title: '错误', desc: response.message });
return;
}
actionContext.$Notice.success({ title: '成功', desc: '删除并关闭成功!' });
const _this: any = actionContext;
if (xData && xData.refresh && xData.refresh instanceof Function) {
xData.refresh(args);
}
return response;
}).catch((response: any) => {
if (!response || !response.status || !response.data) {
actionContext.$Notice.error({ title: '错误', desc: '系统异常!' });
return;
}
if (response.status === 401) {
return;
}
return response;
});
};
backend();
}
/** /**
* 激活 * 激活
* *
......
<template src="./edit-abstract-form.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { Edit_AbstractEditFormBase } from './edit-abstract-form-base';
/**
* form部件
*
* @export
* @class Edit_AbstractEditForm
* @extends {Edit_AbstractEditFormBase}
*/
@Component({
components: {
}
})
@VueLifeCycleProcessing()
export default class Edit_AbstractEditForm extends Edit_AbstractEditFormBase { }
</script>
...@@ -20,7 +20,7 @@ module.exports = { ...@@ -20,7 +20,7 @@ module.exports = {
pages: { pages: {
index: { index: {
// page 的入口 // page 的入口
entry: 'src/pages/ungroup/central/main.ts', entry: 'src/pages/base/central/main.ts',
// 模板来源 // 模板来源
template: 'src/template.html', template: 'src/template.html',
// 在 dist/index.html 的输出 // 在 dist/index.html 的输出
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册