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

Mosher 发布系统代码 [后台服务,演示应用]

上级 e7d61e30
......@@ -88,7 +88,11 @@ export default class AppPresetText extends Vue {
*/
get imagePath() {
const layoutModel = this.layoutModelDetails[this.name];
return layoutModel.imagePath;
let imagePath = '';
if (layoutModel.sysImage) {
imagePath = layoutModel.sysImage.imagePath;
}
return imagePath;
}
/**
......@@ -98,6 +102,10 @@ export default class AppPresetText extends Vue {
*/
get cssClass() {
const layoutModel = this.layoutModelDetails[this.name];
let cssClass = '';
if (layoutModel.sysImage) {
cssClass = layoutModel.sysImage.iconcls;
}
return layoutModel.iconcls;
}
......
......@@ -64,28 +64,6 @@
@load="drbar_load($event)"
@selectionchange="drbar_selectionchange($event)"
@closeview="closeView($event)">
<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'
@load="form_load($event)"
@save="form_save($event)"
@remove="form_remove($event)"
@closeview="closeView($event)">
</view_form>
</view_drbar>
</sider>
<content class="edit-view2-content" :style="{ width: 'calc(100% - 241px)' }">
......
......@@ -62,28 +62,6 @@
@load="drbar_load($event)"
@selectionchange="drbar_selectionchange($event)"
@closeview="closeView($event)">
<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'
@load="form_load($event)"
@save="form_save($event)"
@remove="form_remove($event)"
@closeview="closeView($event)">
</view_form>
</view_drbar>
</sider>
<content class="edit-view2-content" :style="{ width: 'calc(100% - 241px)' }">
......
......@@ -62,28 +62,6 @@
@load="drbar_load($event)"
@selectionchange="drbar_selectionchange($event)"
@closeview="closeView($event)">
<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'
@load="form_load($event)"
@save="form_save($event)"
@remove="form_remove($event)"
@closeview="closeView($event)">
</view_form>
</view_drbar>
</sider>
<content class="edit-view2-content" :style="{ width: 'calc(100% - 241px)' }">
......
......@@ -62,28 +62,6 @@
@load="drbar_load($event)"
@selectionchange="drbar_selectionchange($event)"
@closeview="closeView($event)">
<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'
@load="form_load($event)"
@save="form_save($event)"
@remove="form_remove($event)"
@closeview="closeView($event)">
</view_form>
</view_drbar>
</sider>
<content class="edit-view2-content" :style="{ width: 'calc(100% - 241px)' }">
......
......@@ -621,7 +621,7 @@ export default class QUICKSEARCHFORMBase extends Vue implements ControlInterface
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKListView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKCalendarView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
return;
}
const arg: any = { ...opt };
......@@ -657,7 +657,7 @@ export default class QUICKSEARCHFORMBase extends Vue implements ControlInterface
*/
public loadDraft(opt: any = {},mode?:string): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKListView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKCalendarView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
return;
}
const arg: any = { ...opt } ;
......
<template>
<layout class='app-dr-bar'>
<sider :width="width">
<el-menu
:default-openeds="defaultOpeneds"
:default-active="items[0].id"
@select="onSelect"
@open="onOpen"
@close="onClose">
<app-sider-menus :menus="items"></app-sider-menus>
</el-menu>
</sider>
<content :style="{ width: `calc(100% - ${this.width + 1}px)` }">
<div class='main-data' v-show="Object.is(this.selection.id, 'form')">
<slot></slot>
</div>
<component
v-if="!Object.is(this.selection.id, 'form') && this.selection.view && !Object.is(this.selection.view.viewname, '')"
:is="selection.view.viewname"
class="viewcontainer2"
:viewDefaultUsage="false"
:viewdata="JSON.stringify(selection.data)"
:viewparam="JSON.stringify(selection.param)"
:key="this.$util.createUUID()">
</component>
</content>
</layout>
</template>
<template>
<div class='app-dr-bar' :style="{ width: `${width}px` }">
</div>
<el-menu
:mode="menuDir"
:default-openeds="defaultOpeneds"
:default-active="items[0].id"
@select="onSelect"
@open="onOpen"
@close="onClose">
<app-sider-menus :menus="items"></app-sider-menus>
</el-menu>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-property-decorator';
import { CreateElement } from 'vue';
......@@ -174,349 +159,352 @@ export default class DefaultBase extends Vue implements ControlInterface {
}
}
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof DefaultBase
*/
public getDatas(): any[] {
return this.items;
}
/**
* 获取单项树
*
* @returns {*}
* @memberof DefaultBase
*/
public getData(): any {
return this.selection;
}
/**
* 加载行为
*
* @type {string}
* @memberof DefaultBase
*/
@Prop() public loadAction?: string;
/**
* 表单数据
*
* @type {*}
* @memberof DefaultBase
*/
@Prop({default:{}}) public formData?:any;
/**
* 数据选中项
*
* @type {*}
* @memberof DefaultBase
*/
public selection: any = {};
/**
* 关系栏数据项
*
* @type {any[]}
* @memberof DefaultBase
*/
public items: any[] = [
{
text: "主表单",
disabled: false,
id: "form",
},
{
text: "订单明细",
disabled: false,
id: "dritem2",
},
];
/**
* 关系栏数据项导航参数集合
*
* @type {any[]}
* @memberof DefaultBase
*/
public navParamsArray:Array<any> = [
{
id:'dritem2',
localContext:{CONTEXTPARAM1:"%orderstate%"},
localViewParam:{param2:"%orderstate%"}
}
];
/**
* 默认打开项
*
* @type {string[]}
* @memberof DefaultBase
*/
public defaultOpeneds: string[] = [];
/**
* 父数据
*
* @public
* @type {*}
* @memberof DefaultBase
*/
public parentData: any = {};
/**
* 宽度
*
* @type {number}
* @memberof DefaultBase
*/
public width: number = 240;
/**
* 生命周期
*
* @memberof DefaultBase
*/
public created(): void {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof DefaultBase
*/
public afterCreated(){
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
if (Object.is('state', action)) {
const state = !this.context.ibizorder ? true : false;
this.setItemDisabled(this.items, state);
}
});
}
this.$nextTick(() => {
this.onSelect(this.items[0].id)
this.$emit('selectionchange', [this.items[0]]);
});
}
/**
* vue 生命周期
*
* @memberof DefaultBase
*/
public destroyed() {
this.afterDestroy();
}
/**
* 执行destroyed后的逻辑
*
* @memberof DefaultBase
*/
public afterDestroy() {
if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe();
}
}
/**
* 获取关系项
*
* @public
* @param {*} [arg={}]
* @returns {*}
* @memberof DefaultBase
*/
public getDRBarItem(arg: any = {}): any {
let expmode = arg.nodetype;
if (!expmode) {
expmode = '';
}
if (Object.is(expmode, 'dritem2')) {
return {
viewname: 'ibizorder-detail-sgrid-view',
parentdatajo: {},
};
}
return undefined;
}
/**
* 处理数据
*
* @public
* @param {any[]} items
* @memberof DefaultBase
*/
public dataProcess(items: any[]): void {
items.forEach((_item: any) => {
if (_item.expanded) {
this.defaultOpeneds.push(_item.id);
}
_item.disabled = false;
if (_item.items && Array.isArray(_item.items) && _item.items.length > 0) {
this.dataProcess(_item.items);
}
});
}
/**
* 获取子项
*
* @param {any[]} items
* @param {string} id
* @returns {*}
* @memberof DefaultBase
*/
public getItem(items: any[], id: string): any {
const item: any = {};
items.some((_item: any) => {
if (Object.is(_item.id, id)) {
Object.assign(item, _item);
return true;
}
if (_item.items && _item.items.length > 0) {
const subItem = this.getItem(_item.items, id);
if (Object.keys(subItem).length > 0) {
Object.assign(item, subItem);
return true;
}
}
return false;
});
return item;
}
/**
* 初始化导航参数
*
* @param {*} drItem
* @memberof DefaultBase
*/
public initNavParam(drItem:any){
let returnNavParam:any = {};
if(drItem && drItem.id){
let curDRItem:any = this.navParamsArray.find((item:any) =>{
return Object.is(item.id,drItem.id);
})
if(curDRItem){
let localContext:any = curDRItem.localContext;
let localViewParam:any = curDRItem.localViewParam;
if(localContext && Object.keys(localContext).length >0){
let _context:any = this.$util.computedNavData(this.formData,this.context,this.viewparams,localContext);
returnNavParam.localContext = _context;
}
if(localViewParam && Object.keys(localViewParam).length >0){
let _params:any = this.$util.computedNavData(this.formData,this.context,this.viewparams,localViewParam);
returnNavParam.localViewParam = _params;
}
return returnNavParam;
}else{
return null;
}
}
}
/**
* 节点选中
*
* @param {*} $event
* @memberof DefaultBase
*/
public onSelect($event: any): void {
const item = this.getItem(this.items, $event);
if (Object.is(item.id, this.selection.id)) {
return;
}
this.$emit('selectionchange', [item]);
let localNavParam:any = this.initNavParam(item);
const refview = this.getDRBarItem({ nodetype: item.id });
this.selection = {};
const _context: any = { ...JSON.parse(JSON.stringify(this.context)) };
if(localNavParam && localNavParam.localContext){
Object.assign(_context,localNavParam.localContext);
}
const _params: any = {};
if(localNavParam && localNavParam.localViewParam){
Object.assign(_params,localNavParam.localViewParam);
}
if (refview && refview.parentdatajo) {
Object.assign(_context, refview.parentdatajo);
Object.assign(this.selection, { view: { viewname: refview.viewname }, data: _context, param: _params });
}
Object.assign(this.selection, item);
}
/**
* 子节点打开
*
* @param {*} $event
* @memberof DefaultBase
*/
public onOpen($event: any): void {
const item = this.getItem(this.items, $event);
if (Object.is(item.id, this.selection.id)) {
return;
}
this.selection = {};
Object.assign(this.selection, item);
if (Object.is(item.id, 'form') || (item.viewname && !Object.is(item.viewname, ''))) {
this.$emit('selectionchange', [this.selection]);
}
}
/**
* 子节点关闭
*
* @param {*} $event
* @memberof DefaultBase
*/
public onClose($event: any): void {
const item = this.getItem(this.items, $event);
if (Object.is(item.id, this.selection.id)) {
return;
}
this.selection = {};
Object.assign(this.selection, item);
if (Object.is(item.id, 'form') || (item.viewname && !Object.is(item.viewname, ''))) {
this.$emit('selectionchange', [this.selection]);
}
}
/**
* 设置关系项状态
*
* @param {any[]} items
* @param {boolean} state
* @memberof DefaultBase
*/
public setItemDisabled(items: any[], state: boolean) {
items.forEach((item: any) => {
if (!Object.is(item.id, 'form')) {
item.disabled = state;
}
if (item.items && Array.isArray(item.items)) {
this.setItemDisabled(item.items, state);
}
});
}
/**
* 菜单方向
* @type {('horizontal' | 'vertical')}
* @memberof DefaultBase
*/
@Prop({ default: 'vertical' }) public menuDir?: 'horizontal' | 'vertical';
/**
* 获取多项数据
*
* @returns {any[]}
* @memberof DefaultBase
*/
public getDatas(): any[] {
return this.items;
}
/**
* 获取单项树
*
* @returns {*}
* @memberof DefaultBase
*/
public getData(): any {
return this.selection;
}
/**
* 加载行为
*
* @type {string}
* @memberof DefaultBase
*/
@Prop() public loadAction?: string;
/**
* 表单数据
*
* @type {*}
* @memberof DefaultBase
*/
@Prop({default:{}}) public formData?:any;
/**
* 数据选中项
*
* @type {*}
* @memberof DefaultBase
*/
public selection: any = {};
/**
* 关系栏数据项
*
* @type {any[]}
* @memberof DefaultBase
*/
public items: any[] = [
{
text: "订单明细",
disabled: false,
id: "dritem2",
},
];
/**
* 关系栏数据项导航参数集合
*
* @type {any[]}
* @memberof DefaultBase
*/
public navParamsArray:Array<any> = [
{
id:'dritem2',
localContext:{CONTEXTPARAM1:"%orderstate%"},
localViewParam:{param2:"%orderstate%"}
}
];
/**
* 默认打开项
*
* @type {string[]}
* @memberof DefaultBase
*/
public defaultOpeneds: string[] = [];
/**
* 父数据
*
* @public
* @type {*}
* @memberof DefaultBase
*/
public parentData: any = {};
/**
* 宽度
*
* @type {number}
* @memberof DefaultBase
*/
public width: number = 240;
/**
* 生命周期
*
* @memberof DefaultBase
*/
public created(): void {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof DefaultBase
*/
public afterCreated(){
if (this.viewState) {
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
if (!Object.is(tag, this.name)) {
return;
}
if (Object.is('state', action)) {
const state = !this.context.ibizorder ? true : false;
this.setItemDisabled(this.items, state);
}
});
}
this.$nextTick(() => {
this.onSelect(this.items[0].id)
this.$emit('selectionchange', [this.items[0]]);
});
}
/**
* vue 生命周期
*
* @memberof DefaultBase
*/
public destroyed() {
this.afterDestroy();
}
/**
* 执行destroyed后的逻辑
*
* @memberof DefaultBase
*/
public afterDestroy() {
if (this.viewStateEvent) {
this.viewStateEvent.unsubscribe();
}
}
/**
* 获取关系项
*
* @public
* @param {*} [arg={}]
* @returns {*}
* @memberof DefaultBase
*/
public getDRBarItem(arg: any = {}): any {
let expmode = arg.nodetype;
if (!expmode) {
expmode = '';
}
if (Object.is(expmode, 'dritem2')) {
return {
viewname: 'ibizorder-detail-sgrid-view',
parentdatajo: {},
};
}
return undefined;
}
/**
* 处理数据
*
* @public
* @param {any[]} items
* @memberof DefaultBase
*/
public dataProcess(items: any[]): void {
items.forEach((_item: any) => {
if (_item.expanded) {
this.defaultOpeneds.push(_item.id);
}
_item.disabled = false;
if (_item.items && Array.isArray(_item.items) && _item.items.length > 0) {
this.dataProcess(_item.items);
}
});
}
/**
* 获取子项
*
* @param {any[]} items
* @param {string} id
* @returns {*}
* @memberof DefaultBase
*/
public getItem(items: any[], id: string): any {
const item: any = {};
items.some((_item: any) => {
if (Object.is(_item.id, id)) {
Object.assign(item, _item);
return true;
}
if (_item.items && _item.items.length > 0) {
const subItem = this.getItem(_item.items, id);
if (Object.keys(subItem).length > 0) {
Object.assign(item, subItem);
return true;
}
}
return false;
});
return item;
}
/**
* 初始化导航参数
*
* @param {*} drItem
* @memberof DefaultBase
*/
public initNavParam(drItem:any){
let returnNavParam:any = {};
if(drItem && drItem.id){
let curDRItem:any = this.navParamsArray.find((item:any) =>{
return Object.is(item.id,drItem.id);
})
if(curDRItem){
let localContext:any = curDRItem.localContext;
let localViewParam:any = curDRItem.localViewParam;
if(localContext && Object.keys(localContext).length >0){
let _context:any = this.$util.computedNavData(this.formData,this.context,this.viewparams,localContext);
returnNavParam.localContext = _context;
}
if(localViewParam && Object.keys(localViewParam).length >0){
let _params:any = this.$util.computedNavData(this.formData,this.context,this.viewparams,localViewParam);
returnNavParam.localViewParam = _params;
}
return returnNavParam;
}else{
return null;
}
}
}
/**
* 节点选中
*
* @param {*} $event
* @memberof DefaultBase
*/
public onSelect($event: any): void {
const item = this.getItem(this.items, $event);
if (Object.is(item.id, this.selection.id)) {
return;
}
this.$emit('selectionchange', [item]);
let localNavParam:any = this.initNavParam(item);
const refview = this.getDRBarItem({ nodetype: item.id });
this.selection = {};
const _context: any = { ...JSON.parse(JSON.stringify(this.context)) };
if(localNavParam && localNavParam.localContext){
Object.assign(_context,localNavParam.localContext);
}
const _params: any = {};
if(localNavParam && localNavParam.localViewParam){
Object.assign(_params,localNavParam.localViewParam);
}
if (refview && refview.parentdatajo) {
Object.assign(_context, refview.parentdatajo);
Object.assign(this.selection, { view: { viewname: refview.viewname }, data: _context, param: _params });
}
Object.assign(this.selection, item);
}
/**
* 子节点打开
*
* @param {*} $event
* @memberof DefaultBase
*/
public onOpen($event: any): void {
const item = this.getItem(this.items, $event);
if (Object.is(item.id, this.selection.id)) {
return;
}
this.selection = {};
Object.assign(this.selection, item);
if (Object.is(item.id, 'form') || (item.viewname && !Object.is(item.viewname, ''))) {
this.$emit('selectionchange', [this.selection]);
}
}
/**
* 子节点关闭
*
* @param {*} $event
* @memberof DefaultBase
*/
public onClose($event: any): void {
const item = this.getItem(this.items, $event);
if (Object.is(item.id, this.selection.id)) {
return;
}
this.selection = {};
Object.assign(this.selection, item);
if (Object.is(item.id, 'form') || (item.viewname && !Object.is(item.viewname, ''))) {
this.$emit('selectionchange', [this.selection]);
}
}
/**
* 设置关系项状态
*
* @param {any[]} items
* @param {boolean} state
* @memberof DefaultBase
*/
public setItemDisabled(items: any[], state: boolean) {
items.forEach((item: any) => {
if (!Object.is(item.id, 'form')) {
item.disabled = state;
}
if (item.items && Array.isArray(item.items)) {
this.setItemDisabled(item.items, state);
}
});
}
}
</script>
</script>
<style lang='less'>
@import './default-drbar.less';
</style>
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册