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

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

上级 7c202bd5
......@@ -2913,7 +2913,7 @@ mock.onGet('v7/main-menuappmenu').reply((config: any) => {
iconcls: '',
icon: '',
textcls: '',
appfunctag: '',
appfunctag: 'AppFunc99',
resourcetag: '',
},
],
......
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import IBIZOrderUsr2GridViewBase from './ibizorder-usr2-grid-view-base.vue';
import view_grid from '@widgets/ibizorder/main-grid/main-grid.vue';
import view_searchform from '@widgets/ibizorder/default-searchform/default-searchform.vue';
import view_searchbar from '@widgets/ibizorder/-searchbar/-searchbar.vue';
@Component({
components: {
view_grid,
view_searchform,
view_searchbar,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
if(!Object.is(vm.navModel,"route")){
vm.initNavDataWithTab(vm.viewCacheData);
}
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
})
export default class IBIZOrderUsr2GridView extends IBIZOrderUsr2GridViewBase {
}
</script>
\ No newline at end of file
......@@ -104,6 +104,7 @@ export const PageComponents = {
Vue.component('ibizbookdata-view-exp-view', () => import('@pages/sample/ibizbookdata-view-exp-view/ibizbookdata-view-exp-view.vue'));
Vue.component('ibizbookusr4-edit-view', () => import('@pages/sample/ibizbookusr4-edit-view/ibizbookusr4-edit-view.vue'));
Vue.component('ibizorder-detail-usr3-edit-view', () => import('@pages/sample/ibizorder-detail-usr3-edit-view/ibizorder-detail-usr3-edit-view.vue'));
Vue.component('ibizorder-usr2-grid-view', () => import('@pages/sample/ibizorder-usr2-grid-view/ibizorder-usr2-grid-view.vue'));
Vue.component('ibizappviewgrid-view', () => import('@pages/sample/ibizappviewgrid-view/ibizappviewgrid-view.vue'));
Vue.component('ibizappviewlist-view', () => import('@pages/sample/ibizappviewlist-view/ibizappviewlist-view.vue'));
Vue.component('ibizappctrlgrid-view', () => import('@pages/sample/ibizappctrlgrid-view/ibizappctrlgrid-view.vue'));
......
......@@ -1609,6 +1609,20 @@ const router = new Router({
},
component: () => import('@pages/sample/ibizorder-detail-usr3-edit-view/ibizorder-detail-usr3-edit-view.vue'),
},
{
path: 'ibizorders/:ibizorder?/usr2gridview/:usr2gridview?',
meta: {
caption: 'entities.ibizorder.views.usr2gridview.caption',
info:'',
parameters: [
{ pathName: 'index', parameterName: 'index' },
{ pathName: 'ibizorders', parameterName: 'ibizorder' },
{ pathName: 'usr2gridview', parameterName: 'usr2gridview' },
],
requireAuth: true,
},
component: () => import('@pages/sample/ibizorder-usr2-grid-view/ibizorder-usr2-grid-view.vue'),
},
{
path: 'ibizappviews/:ibizappview?/gridview/:gridview?',
meta: {
......@@ -3499,6 +3513,19 @@ const router = new Router({
},
component: () => import('@pages/sample/ibiztaskteamgrid-view9/ibiztaskteamgrid-view9.vue'),
},
{
path: '/ibizorders/:ibizorder?/usr2gridview/:usr2gridview?',
meta: {
caption: 'entities.ibizorder.views.usr2gridview.caption',
info:'',
parameters: [
{ pathName: 'ibizorders', parameterName: 'ibizorder' },
{ pathName: 'usr2gridview', parameterName: 'usr2gridview' },
],
requireAuth: true,
},
component: () => import('@pages/sample/ibizorder-usr2-grid-view/ibizorder-usr2-grid-view.vue'),
},
{
path: '/ibizbooks/:ibizbook?/wizardiwithstateview/:wizardiwithstateview?',
meta: {
......
......@@ -6,43 +6,39 @@
<app-standard-container name="page_container" :layoutModelDetails="layoutModelDetails">
<template #container1>
<app-standard-container name="container1" :layoutModelDetails="layoutModelDetails">
<template #app_apptitle>
<template #auth_userid>
<span>属性项</span>
</template>
<template #auth_password>
<span>属性项</span>
</template>
<template #container_grid1>
<app-simpleflex-container name="container_grid1" :layoutModelDetails="layoutModelDetails">
<template #container4>
<app-simpleflex-container name="container4" :layoutModelDetails="layoutModelDetails">
<template #auth_orgpick>
<span>属性项</span>
</template>
<template #auth_loginbutton1>
<span>按钮</span>
</template>
</app-simpleflex-container>
<template #auth_registbutton1>
<span>按钮</span>
</template>
<template #container5>
<app-simpleflex-container name="container5" :layoutModelDetails="layoutModelDetails">
<template #auth_resetinput1>
<span>按钮</span>
</template>
</app-simpleflex-container>
</template>
</app-simpleflex-container>
</template>
<template #container3>
<app-standard-container name="container3" :layoutModelDetails="layoutModelDetails">
<template #static_text1>
<span>直接内容</span>
<template #auth_logout1>
<span>按钮</span>
</template>
<template #auth_sso1>
<template #auth_captcha1>
<span>用户自定义控件</span>
</template>
</app-standard-container>
<template #auth_verificationcode>
<span>属性项</span>
</template>
<template #auth_userid>
<template #auth_loginmsg>
<span>属性项</span>
</template>
<template #auth_sso1>
<span>用户自定义控件</span>
</template>
</app-standard-container>
</template>
</app-standard-container>
......@@ -233,71 +229,67 @@ export default class AppLoginViewBase extends Vue {
* @memberof AppLoginViewBase
*/
public layoutModelDetails:any = {
app_apptitle:new PanelFieldModel({ name: 'app_apptitle',caption: '应用标题',itemType: 'FIELD',visible: true,
auth_userid:new PanelFieldModel({ name: 'auth_userid',caption: '用户名',itemType: 'FIELD',visible: true,
disabled: false,layout:'FLEX',
layoutPos:'',layoutHeight:0,heightMode:'',
layoutWidth:0,widthMode:'',spacingBottom:'',spacingLeft:'',
spacingRight:'',spacingTop:'',hAlignSelf:'CENTER',vAlignSelf:'',
spacingRight:'',spacingTop:'',hAlignSelf:'',vAlignSelf:'',
flexGrow:-1,panel: this }),
auth_password:new PanelFieldModel({ name: 'auth_password',caption: '密码',itemType: 'FIELD',visible: true,
disabled: false,layout:'FLEX',
layoutPos:'',layoutHeight:0,heightMode:'FULL',
layoutPos:'',layoutHeight:0,heightMode:'',
layoutWidth:0,widthMode:'',spacingBottom:'',spacingLeft:'',
spacingRight:'',spacingTop:'',hAlignSelf:'',vAlignSelf:'',
flexGrow:-1,panel: this }),
auth_loginbutton1:new PanelButtonModel({ name: 'auth_loginbutton1',caption: '登陆',itemType: 'BUTTON',visible: true,
disabled: false,layout:'SIMPLEFLEX',
layoutPos:'',layoutHeight:0,heightMode:'FULL',
auth_orgpick:new PanelFieldModel({ name: 'auth_orgpick',caption: '组织',itemType: 'FIELD',visible: true,
disabled: false,layout:'FLEX',
layoutPos:'',layoutHeight:0,heightMode:'',
layoutWidth:0,widthMode:'',spacingBottom:'',spacingLeft:'',
spacingRight:'',spacingTop:'',hAlignSelf:'',vAlignSelf:'',
flexGrow:-1,panel: this }),
container4:new PanelContainerModel({ name: 'container4',caption: '面板容器',itemType: 'CONTAINER',visible: true,
disabled: false,layout:'SIMPLEFLEX',
auth_loginbutton1:new PanelButtonModel({ name: 'auth_loginbutton1',caption: '登陆',itemType: 'BUTTON',visible: true,
disabled: false,layout:'FLEX',
layoutPos:'',layoutHeight:0,heightMode:'',
layoutWidth:0,widthMode:'',spacingBottom:'',spacingLeft:'',
spacingRight:'',spacingTop:'',hAlignSelf:'',vAlignSelf:'',
flexGrow:6,panel: this,
details:['auth_loginbutton1']}),
auth_resetinput1:new PanelButtonModel({ name: 'auth_resetinput1',caption: '重置',itemType: 'BUTTON',visible: true,
disabled: false,layout:'SIMPLEFLEX',
layoutPos:'',layoutHeight:0,heightMode:'FULL',
flexGrow:-1,panel: this }),
auth_registbutton1:new PanelButtonModel({ name: 'auth_registbutton1',caption: '注册',itemType: 'BUTTON',visible: true,
disabled: false,layout:'FLEX',
layoutPos:'',layoutHeight:0,heightMode:'',
layoutWidth:0,widthMode:'',spacingBottom:'',spacingLeft:'',
spacingRight:'',spacingTop:'',hAlignSelf:'',vAlignSelf:'',
flexGrow:-1,panel: this }),
container5:new PanelContainerModel({ name: 'container5',caption: '面板容器',itemType: 'CONTAINER',visible: true,
disabled: false,layout:'SIMPLEFLEX',
auth_resetinput1:new PanelButtonModel({ name: 'auth_resetinput1',caption: '重置',itemType: 'BUTTON',visible: true,
disabled: false,layout:'FLEX',
layoutPos:'',layoutHeight:0,heightMode:'',
layoutWidth:0,widthMode:'',spacingBottom:'',spacingLeft:'',
spacingRight:'',spacingTop:'',hAlignSelf:'',vAlignSelf:'',
flexGrow:6,panel: this,
details:['auth_resetinput1']}),
container_grid1:new PanelContainerModel({ name: 'container_grid1',caption: '栅格容器',itemType: 'CONTAINER',visible: true,
flexGrow:-1,panel: this }),
auth_logout1:new PanelButtonModel({ name: 'auth_logout1',caption: '登出',itemType: 'BUTTON',visible: true,
disabled: false,layout:'FLEX',
layoutPos:'',layoutHeight:0,heightMode:'',
layoutWidth:0,widthMode:'',spacingBottom:'',spacingLeft:'',
spacingRight:'',spacingTop:'',hAlignSelf:'',vAlignSelf:'',
flexGrow:-1,panel: this,
details:['container4','container5']}),
static_text1:new PanelRawitemModel({ name: 'static_text1',caption: '文本',itemType: 'RAWITEM',visible: true,
flexGrow:-1,panel: this }),
auth_captcha1:new PanelUserControlModel({ name: 'auth_captcha1',caption: '人机识别',itemType: 'USERCONTROL',visible: true,
disabled: false,layout:'FLEX',
layoutPos:'',layoutHeight:0,heightMode:'FULL',
layoutWidth:0,widthMode:'FULL',spacingBottom:'',spacingLeft:'',
layoutPos:'',layoutHeight:0,heightMode:'',
layoutWidth:0,widthMode:'',spacingBottom:'',spacingLeft:'',
spacingRight:'',spacingTop:'',hAlignSelf:'',vAlignSelf:'',
flexGrow:-1,panel: this }),
auth_sso1:new PanelUserControlModel({ name: 'auth_sso1',caption: '第三方登陆',itemType: 'USERCONTROL',visible: true,
auth_verificationcode:new PanelFieldModel({ name: 'auth_verificationcode',caption: '短信验证码',itemType: 'FIELD',visible: true,
disabled: false,layout:'FLEX',
layoutPos:'',layoutHeight:0,heightMode:'FULL',
layoutPos:'',layoutHeight:0,heightMode:'',
layoutWidth:0,widthMode:'',spacingBottom:'',spacingLeft:'',
spacingRight:'',spacingTop:'',hAlignSelf:'',vAlignSelf:'',
flexGrow:-1,panel: this }),
container3:new PanelContainerModel({ name: 'container3',caption: '容器',itemType: 'CONTAINER',visible: true,
auth_loginmsg:new PanelFieldModel({ name: 'auth_loginmsg',caption: '登陆校验信息',itemType: 'FIELD',visible: true,
disabled: false,layout:'FLEX',
layoutPos:'',layoutHeight:0,heightMode:'FULL',
layoutPos:'',layoutHeight:0,heightMode:'',
layoutWidth:0,widthMode:'',spacingBottom:'',spacingLeft:'',
spacingRight:'',spacingTop:'',hAlignSelf:'',vAlignSelf:'',
flexGrow:-1,panel: this,
details:['static_text1','auth_sso1']}),
auth_userid:new PanelFieldModel({ name: 'auth_userid',caption: '用户名',itemType: 'FIELD',visible: true,
flexGrow:-1,panel: this }),
auth_sso1:new PanelUserControlModel({ name: 'auth_sso1',caption: '第三方登陆',itemType: 'USERCONTROL',visible: true,
disabled: false,layout:'FLEX',
layoutPos:'',layoutHeight:0,heightMode:'',
layoutWidth:0,widthMode:'',spacingBottom:'',spacingLeft:'',
......@@ -305,11 +297,11 @@ export default class AppLoginViewBase extends Vue {
flexGrow:-1,panel: this }),
container1:new PanelContainerModel({ name: 'container1',caption: '容器',itemType: 'CONTAINER',visible: true,
disabled: false,layout:'FLEX',
layoutPos:'',layoutHeight:0,heightMode:'FULL',
layoutWidth:450,widthMode:'PX',spacingBottom:'',spacingLeft:'',
layoutPos:'',layoutHeight:0,heightMode:'',
layoutWidth:600,widthMode:'PX',spacingBottom:'',spacingLeft:'',
spacingRight:'',spacingTop:'',hAlignSelf:'CENTER',vAlignSelf:'',
flexGrow:-1,panel: this,
details:['app_apptitle','auth_password','container_grid1','container3','auth_userid']}),
details:['auth_userid','auth_password','auth_orgpick','auth_loginbutton1','auth_registbutton1','auth_resetinput1','auth_logout1','auth_captcha1','auth_verificationcode','auth_loginmsg','auth_sso1']}),
page_container:new PanelContainerModel({ name: 'page_container',caption: '图片背景容器',itemType: 'CONTAINER',visible: true,
disabled: false,layout:'FLEX',
layoutPos:'',layoutHeight:100,heightMode:'PERCENTAGE',
......
......@@ -559,6 +559,18 @@ export const viewstate: any = {
'd985337c61d3832ea28781561622a1cd',
],
},
{
viewtag: '504c018faa34b2d0fce7c4c56569e02e',
viewmodule: 'Sample',
viewname: 'IBIZOrderUsr2GridView',
viewaction: '',
viewdatachange: false,
refviews: [
'd827fd85e8d9be1bb9348765c09cd465',
'56738595155756fd86c36e20af24f056',
'e6b9fc2b5a23e89827909ccc050eb381',
],
},
{
viewtag: '517580eb2dc02c481b306635c52fb1a3',
viewmodule: 'Sample',
......@@ -759,6 +771,7 @@ export const viewstate: any = {
'bb3b65cf9ba40413db60adce27a94db7',
'f0e584392d060bfef6ad4cec29f73d0d',
'd1e103c50de1fa941638bec77683936c',
'504c018faa34b2d0fce7c4c56569e02e',
],
},
{
......
......@@ -913,6 +913,9 @@ export default class MainMenuBase extends Vue implements ControlInterface {
case 'AppFunc98':
this.clickAppFunc98(item);
return;
case 'AppFunc99':
this.clickAppFunc99(item);
return;
default:
console.warn('未指定应用功能');
}
......@@ -3331,6 +3334,29 @@ export default class MainMenuBase extends Vue implements ControlInterface {
this.$router.push(path);
})
}
/**
* 测试表格布局面板
*
* @param {*} [item={}]
* @memberof MainMenu
*/
public clickAppFunc99(item: any = {}) {
const viewparam: any = {};
Object.assign(viewparam, {});
const deResParameters: any[] = [];
const parameters: any[] = [
{ pathName: 'ibizorders', parameterName: 'ibizorder' },
{ pathName: 'usr2gridview', parameterName: 'usr2gridview' },
];
const path: string = this.$viewTool.buildUpRoutePath(this.$route, {}, deResParameters, parameters, [], viewparam);
if(Object.is(this.$route.fullPath,path)){
return;
}
this.$nextTick(function(){
this.$router.push(path);
})
}
/**
* 数据加载
......
......@@ -3074,7 +3074,7 @@ export default class MainMenuModel {
iconcls: '',
icon: '',
textcls: '',
appfunctag: '',
appfunctag: 'AppFunc99',
resourcetag: '',
authtag:'Web-MainMenu-menuitem122',
},
......@@ -4344,6 +4344,18 @@ export default class MainMenuModel {
{ pathName: 'usr3editview', parameterName: 'usr3editview' },
],
},
{
appfunctag: 'AppFunc99',
appfuncyype: 'APPVIEW',
openmode: '',
codename: 'ibizorderusr2gridview',
deResParameters: [],
routepath: '/index/:index?/ibizorders/:ibizorder?/usr2gridview/:usr2gridview?',
parameters: [
{ pathName: 'ibizorders', parameterName: 'ibizorder' },
{ pathName: 'usr2gridview', parameterName: 'usr2gridview' },
],
},
];
/**
......
......@@ -663,7 +663,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr9GridView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKGroupByCodelistListView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
return;
}
const arg: any = { ...opt };
......@@ -699,7 +699,7 @@ export default class DefaultBase 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: 'IBIZBOOKUsr9GridView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKGroupByCodelistListView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
return;
}
const arg: any = { ...opt } ;
......
/**
* 部件模型
*
* @export
* @class Model
*/
export default class Model {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof SearchbarMode
*/
public getDataItems(): any[] {
return [
]
}
}
\ No newline at end of file
import { Http,Util,Errorlog } from '@/utils';
import ControlService from '@/widgets/control-service';
import IBIZOrderService from '@/service/ibizorder/ibizorder-service';
import Model from './-searchbar-model';
import UtilService from '@/utilservice/util-service';
/**
* 部件服务对象
*
* @export
* @class Service
*/
export default class Service extends ControlService {
/**
* 订单服务对象
*
* @type {IBIZOrderService}
* @memberof Service
*/
public appEntityService: IBIZOrderService = new IBIZOrderService();
/**
* 设置从数据模式
*
* @type {boolean}
* @memberof Service
*/
public setTempMode(){
this.isTempMode = false;
}
/**
* Creates an instance of Service.
*
* @param {*} [opts={}]
* @memberof Service
*/
constructor(opts: any = {}) {
super(opts);
this.model = new Model();
}
/**
* 工具服务对象
*
* @protected
* @type {UtilService}
* @memberof Service
*/
protected utilService: UtilService = new UtilService();
/**
* 加载数据模型
*
* @param {string} serviceName
* @param {*} context
* @param {*} viewparams
* @memberof Service
*/
public loadModel(serviceName: string, context: any, viewparams: any) {
return new Promise((resolve: any, reject: any) => {
this.utilService.getService(serviceName).then((service: any) => {
service.loadModelData(JSON.stringify(context), viewparams).then((response: any) => {
resolve(response);
}).catch((response: any) => {
reject(response);
});
}).catch((response: any) => {
reject(response);
});
});
}
/**
* 保存模型
*
* @param {string} serviceName
* @param {*} context
* @param {*} viewparams
* @returns
* @memberof Service
*/
public saveModel(serviceName: string, context: any, viewparams: any) {
return new Promise((resolve: any, reject: any) => {
this.utilService.getService(serviceName).then((service: any) => {
service.saveModelData(JSON.stringify(context), '', viewparams).then((response: any) => {
resolve(response);
}).catch((response: any) => {
reject(response);
});
}).catch((response: any) => {
reject(response);
});
});
}
}
\ No newline at end of file
.search-bar-footer {
height: 32px;
margin-bottom: 6px;
.search-bar-action {
float: right;
display: flex;
align-items: center;
> * {
margin-left: 5px;
.save-action {
text-align: right;
margin-top: 10px;
> * {
margin-left: 5px;
}
}
}
}
}
// this is less
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import Base from './-searchbar-base.vue';
@Component({
components: {
}
})
export default class extends Base {
}
</script>
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册