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

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

上级 ed0752a5
...@@ -3255,7 +3255,7 @@ mock.onGet('v7/main-menuappmenu').reply((config: any) => { ...@@ -3255,7 +3255,7 @@ mock.onGet('v7/main-menuappmenu').reply((config: any) => {
iconcls: '', iconcls: '',
icon: '', icon: '',
textcls: '', textcls: '',
appfunctag: 'AppFunc45', appfunctag: 'AppFunc108',
resourcetag: '', resourcetag: '',
}, },
{ {
......
<template>
<div class="view-container deportalview ibizbookdashboard-view-layout entitydatakanbanviewcard">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizbookdashboardview_layout"></app-studioaction>
<card class='view-card view-no-toolbar' :disHover="true" :padding="0" :bordered="false">
<div slot='title' class="header-container">
<span class='caption-info' :title="$t(model.srfCaption)">{{$t(model.srfCaption)}}</span>
</div>
<div class='view-top-messages'>
<app-alert-group position='TOP' :context="context" :viewparam="viewparams" infoGroup='VMGroup70' viewname='ibizbookdashboardview_layout'></app-alert-group> </div>
<div class="content-container">
<view_dashboard
:viewState="viewState"
:viewparams="viewparams"
:context="JSON.parse(JSON.stringify(context))"
:isEnableCustomized = "false"
name="dashboard"
ref='dashboard'
@load="dashboard_load($event)"
@closeview="closeView($event)">
</view_dashboard>
</div>
</card>
</div>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch,Inject } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import { Subject,Subscription } from 'rxjs';
import IBIZBOOKService from '@/service/ibizbook/ibizbook-service';
import IBIZBOOKAuthService from '@/authservice/ibizbook/ibizbook-auth-service';
import PortalViewEngine from '@engine/view/portal-view-engine';
import IBIZBOOKUIService from '@/uiservice/ibizbook/ibizbook-ui-service';
@Component({
components: {
},
})
export default class IBIZBOOKDashboardView_layoutBase extends Vue {
/**
* 实体服务对象
*
* @type {IBIZBOOKService}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public appEntityService: IBIZBOOKService = new IBIZBOOKService;
/**
* 实体UI服务对象
*
* @type IBIZBOOKUIService
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public appUIService: IBIZBOOKUIService = new IBIZBOOKUIService();
/**
* 数据变化
*
* @param {*} val
* @returns {*}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
@Emit()
public viewDatasChange(val: any):any {
return val;
}
/**
* 传入视图上下文
*
* @type {string}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
@Prop() public viewdata!: string;
/**
* 传入视图参数
*
* @type {string}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
@Prop() public viewparam!: string;
/**
* 视图默认使用
*
* @type {boolean}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
@Prop({ default: true }) public viewDefaultUsage!: boolean;
/**
* 视图默认使用
*
* @type {string}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
@Inject({from:'navModel',default: 'tab'})
public navModel!:string;
/**
* 视图标识
*
* @type {string}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public viewtag: string = 'fd181f2767ed6c82915d092a2ff51e01';
/**
* 自定义视图导航上下文集合
*
* @type {*}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public customViewNavContexts:any ={
};
/**
* 自定义视图导航参数集合
*
* @type {*}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public customViewParams:any ={
};
/**
* 视图模型数据
*
* @type {*}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public model: any = {
srfCaption: 'entities.ibizbook.views.dashboardview_layout.caption',
srfTitle: 'entities.ibizbook.views.dashboardview_layout.title',
srfSubTitle: 'entities.ibizbook.views.dashboardview_layout.subtitle',
dataInfo: ''
}
/**
* 视图参数变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof IBIZBOOKDashboardView_layoutBase
*/
@Watch('viewparam',{immediate: true, deep: true})
onParamData(newVal: any, oldVal: any) {
if(newVal){
this.viewparams = {};
if(typeof newVal == 'string') {
Object.assign(this.viewparams, JSON.parse(this.viewparam));
}else{
this.viewparams = Util.deepCopy(this.viewparam);
}
}
}
/**
* 处理应用上下文变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof IBIZBOOKDashboardView_layoutBase
*/
@Watch('viewdata')
onViewData(newVal: any, oldVal: any) {
const _this: any = this;
if (!Object.is(newVal, oldVal) && _this.engine) {
this.$nextTick(()=>{
_this.parseViewParam();
_this.engine.load();
});
} else if(!Object.is(newVal, oldVal) && _this.refresh && _this.refresh instanceof Function) {
_this.refresh();
}
}
/**
* 容器模型
*
* @type {*}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public containerModel: any = {
view_dashboard: { name: 'dashboard', type: 'DASHBOARD' },
};
/**
* 计数器刷新
*
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public counterRefresh(){
const _this:any =this;
if(_this.counterServiceArray && _this.counterServiceArray.length >0){
_this.counterServiceArray.forEach((item:any) =>{
if(item.refreshData && item.refreshData instanceof Function){
item.refreshData();
}
})
}
}
/**
* 视图状态订阅对象
*
* @public
* @type {Subject<{action: string, data: any}>}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public engine: PortalViewEngine = new PortalViewEngine();
/**
* 引擎初始化
*
* @public
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public engineInit(): void {
this.engine.init({
view: this,
dashboard: this.$refs.dashboard,
keyPSDEField: 'ibizbook',
majorPSDEField: 'ibizbookname',
isLoadDefault: true,
});
}
/**
* 应用导航服务
*
* @type {*}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public navDataService = NavDataService.getInstance();
/**
* 导航服务事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public serviceStateEvent: Subscription | undefined;
/**
* 门户部件状态对象
*
* @type {*}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
@Prop() public portletState?: any;
/**
* 门户部件状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public portletStateEvent: Subscription | undefined;
/**
* 门户部件状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public formDruipartEvent: Subscription | undefined;
/**
* 应用上下文
*
* @type {*}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public context:any = {};
/**
* 视图参数
*
* @type {*}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public viewparams:any = {};
/**
* 视图缓存数据
*
* @type {*}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public viewCacheData:any;
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public counterServiceArray:Array<any> = [];
/**
* 解析视图参数
*
* @public
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public parseViewParam(inputvalue:any = null): void {
for(let key in this.context){
delete this.context[key];
}
if(this.$store.getters.getAppData() && this.$store.getters.getAppData().context){
Object.assign(this.context,this.$store.getters.getAppData().context);
}
if (!this.viewDefaultUsage && this.viewdata && !Object.is(this.viewdata, '')) {
if(typeof this.viewdata == 'string') {
Object.assign(this.context, JSON.parse(this.viewdata));
}
if(this.context && this.context.srfparentdename){
Object.assign(this.viewparams,{srfparentdename:this.context.srfparentdename});
}
if(this.context && this.context.srfparentkey){
Object.assign(this.viewparams,{srfparentkey:this.context.srfparentkey});
}
this.handleCustomViewData();
this.$forceUpdate();
return;
}
const path = (this.$route.matched[this.$route.matched.length - 1]).path;
const keys: Array<any> = [];
const curReg = this.$pathToRegExp.pathToRegexp(path, keys);
const matchArray = curReg.exec(this.$route.path);
let tempValue: Object = {};
keys.forEach((item: any, index: number) => {
if(matchArray[index + 1]){
Object.defineProperty(tempValue, item.name, {
enumerable: true,
value: decodeURIComponent(matchArray[index + 1])
});
}
});
this.$viewTool.formatRouteParams(tempValue,this.$route,this.context,this.viewparams);
if(inputvalue){
Object.assign(this.context,{'ibizbook':inputvalue});
}
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
//初始化导航数据
this.initNavDataWithRoute();
this.$forceUpdate();
}
/**
* 处理自定义视图数据
*
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public handleCustomViewData(){
if(Object.keys(this.customViewNavContexts).length > 0){
Object.keys(this.customViewNavContexts).forEach((item:any) =>{
let tempContext:any = {};
let curNavContext:any = this.customViewNavContexts[item];
this.handleCustomDataLogic(curNavContext,tempContext,item);
Object.assign(this.context,tempContext);
})
}
if(Object.keys(this.customViewParams).length > 0){
Object.keys(this.customViewParams).forEach((item:any) =>{
let tempParam:any = {};
let curNavParam:any = this.customViewParams[item];
this.handleCustomDataLogic(curNavParam,tempParam,item);
Object.assign(this.viewparams,tempParam);
})
}
}
/**
* 处理自定义视图数据逻辑
*
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public handleCustomDataLogic(curNavData:any,tempData:any,item:string){
// 直接值直接赋值
if(curNavData.isRawValue){
if(Object.is(curNavData.value,"null") || Object.is(curNavData.value,"")){
Object.defineProperty(tempData, item.toLowerCase(), {
value: null,
writable : true,
enumerable : true,
configurable : true
});
}else{
Object.defineProperty(tempData, item.toLowerCase(), {
value: curNavData.value,
writable : true,
enumerable : true,
configurable : true
});
}
}else{
// 先从导航上下文取数,没有再从导航参数(URL)取数,如果导航上下文和导航参数都没有则为null
if(this.context[(curNavData.value).toLowerCase()] != null){
Object.defineProperty(tempData, item.toLowerCase(), {
value: this.context[(curNavData.value).toLowerCase()],
writable : true,
enumerable : true,
configurable : true
});
}else{
if(this.viewparams[(curNavData.value).toLowerCase()] != null){
Object.defineProperty(tempData, item.toLowerCase(), {
value: this.viewparams[(curNavData.value).toLowerCase()],
writable : true,
enumerable : true,
configurable : true
});
}else{
Object.defineProperty(tempData, item.toLowerCase(), {
value: null,
writable : true,
enumerable : true,
configurable : true
});
}
}
}
}
/**
* 初始化导航数据(路由模式)
*
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){
this.navDataService.addNavData({id:'ibizbookdashboard-view-layout',tag:this.viewtag,srfkey:isNew ? null : this.context.ibizbook,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
/**
* 初始化导航数据(分页模式)
*
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){
this.navDataService.addNavDataByOnly({id:'ibizbookdashboard-view-layout',tag:this.viewtag,srfkey:this.context.ibizbook,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
}
}
/**
* Vue声明周期
*
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public created() {
this.afterCreated();
}
/**
* 执行created后的逻辑
*
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public afterCreated(){
let _this:any = this;
const secondtag = _this.$util.createUUID();
_this.$store.commit('viewaction/createdView', { viewtag: _this.viewtag, secondtag: secondtag });
_this.viewtag = secondtag;
_this.parseViewParam();
_this.serviceStateEvent = _this.navDataService.serviceState.subscribe(({ action,name, data }:{ action:string,name:any,data:any }) => {
if(!Object.is(name,'ibizbookdashboard-view-layout')){
return;
}
if (Object.is(action, 'viewrefresh')) {
_this.$nextTick(()=>{
_this.parseViewParam(data);
if(_this.engine){
_this.engine.load();
}
});
}
});
if(_this.portletState){
_this.portletStateEvent = _this.portletState.subscribe((res:any) =>{
if(!Object.is(res.name,'IBIZBOOKDashboardView_layout')){
return;
}
if(Object.is(res.action,'refresh') && _this.refresh && _this.refresh instanceof Function){
_this.refresh();
}
})
}
}
/**
* 销毁之前
*
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public beforeDestroy() {
this.$store.commit('viewaction/removeView', this.viewtag);
let _this: any = this
if (_this.serviceStateEvent) {
_this.serviceStateEvent.unsubscribe();
}
if (_this.portletStateEvent) {
_this.portletStateEvent.unsubscribe();
}
if (_this.engine) {
_this.engine.destroy();
}
}
/**
* Vue声明周期(组件初始化完毕)
*
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public mounted() {
this.afterMounted();
}
/**
* 执行mounted后的逻辑
*
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public afterMounted(){
const _this: any = this;
_this.engineInit();
if (_this.loadModel && _this.loadModel instanceof Function) {
_this.loadModel();
}
}
/**
* dashboard 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public dashboard_load($event: any, $event2?: any) {
this.engine.onCtrlEvent('dashboard', 'load', $event);
}
/**
* 关闭视图
*
* @param {any[]} args
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public closeView(args: any[]): void {
let _view: any = this;
if (_view.viewdata) {
_view.$emit('viewdataschange', Array.isArray(args)?args:[args]);
_view.$emit('close', Array.isArray(args)?args:[args]);
} else if (_view.$tabPageExp) {
_view.$tabPageExp.onClose(_view.$route.fullPath);
}
}
/**
* 销毁视图回调
*
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public destroyed(){
this.afterDestroyed();
}
/**
* 执行destroyed后的逻辑
*
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public afterDestroyed(){
if(this.viewDefaultUsage){
let localStoreLength = Object.keys(localStorage);
if(localStoreLength.length > 0){
localStoreLength.forEach((item:string) =>{
if(item.startsWith(this.context.srfsessionid)){
localStorage.removeItem(item);
}
})
}
if(Object.is(this.navModel,"tab")){
this.navDataService.removeNavDataByTag(this.viewtag);
}
}
if (this.serviceStateEvent) {
this.serviceStateEvent.unsubscribe();
}
// 销毁计数器定时器
if(this.counterServiceArray && this.counterServiceArray.length >0){
this.counterServiceArray.forEach((item:any) =>{
if(item.destroyCounter && item.destroyCounter instanceof Function){
item.destroyCounter();
}
})
}
if(this.portletStateEvent){
this.portletStateEvent.unsubscribe();
}
if (this.formDruipartEvent) {
this.formDruipartEvent.unsubscribe();
}
this.viewState.complete();
}
/**
* 加载数据
*
* @memberof IBIZBOOKDashboardView_layoutBase
*/
public loadModel(){
if(this.context.ibizbook){
this.appEntityService.getDataInfo(JSON.parse(JSON.stringify(this.context)),{},false).then((response:any) =>{
if (!response || response.status !== 200) {
return;
}
const { data: _data } = response;
this.viewState.next({ tag: 'all-portlet', action: 'loadmodel', data:_data});
if (_data.ibizbookname) {
Object.assign(this.model, { dataInfo: _data.ibizbookname });
if(this.$tabPageExp){
let _this:any = this;
this.$tabPageExp.setCurPageCaption(_this.$t(this.model.srfCaption), this.model.srfCaption, _this.model.dataInfo);
}
if(this.$route && this.$route.meta){
this.$route.meta.info = this.model.dataInfo;
}
Object.assign(this.model, { srfCaption: `${this.$t(this.model.srfCaption)} - ${this.$t(this.model.dataInfo)}` });
}
})
}
}
}
</script>
<style lang='less'>
@import './ibizbookdashboard-view-layout.less';
</style>
\ No newline at end of file
.ibizbookdashboard-view-layout{
position: relative;
}
.entitydatakanbanviewcard {
background-color: #F0F2F5;
box-shadow: none !important;
>.view-card {
background-color: #F0F2F5;
>.ivu-card-head{
display: none;
}
>.ivu-card-body {
height: 100%;
}
}
.portlet-card {
background-color: #f0f2f5;
}
.custom-card {
background-color: #ffffff;
margin: 5px;
box-shadow: 1px 1px 5px rgb(209, 205, 205);
.view-card {
background-color: #ffffff;
}
}
}
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import IBIZBOOKDashboardView_layoutBase from './ibizbookdashboard-view-layout-base.vue';
import view_dashboard from '@widgets/ibizbook/usr2-dashboard/usr2-dashboard.vue';
@Component({
components: {
view_dashboard,
},
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 IBIZBOOKDashboardView_layout extends IBIZBOOKDashboardView_layoutBase {
}
</script>
\ No newline at end of file
...@@ -120,6 +120,7 @@ export const PageComponents = { ...@@ -120,6 +120,7 @@ export const PageComponents = {
Vue.component('ibizorder-sedit-view4-layout', () => import('@pages/sample/ibizorder-sedit-view4-layout/ibizorder-sedit-view4-layout.vue')); Vue.component('ibizorder-sedit-view4-layout', () => import('@pages/sample/ibizorder-sedit-view4-layout/ibizorder-sedit-view4-layout.vue'));
Vue.component('ibizorder-sedit-view2-layout', () => import('@pages/sample/ibizorder-sedit-view2-layout/ibizorder-sedit-view2-layout.vue')); Vue.component('ibizorder-sedit-view2-layout', () => import('@pages/sample/ibizorder-sedit-view2-layout/ibizorder-sedit-view2-layout.vue'));
Vue.component('ibizsample0003-stab-exp-view-layout', () => import('@pages/sample/ibizsample0003-stab-exp-view-layout/ibizsample0003-stab-exp-view-layout.vue')); Vue.component('ibizsample0003-stab-exp-view-layout', () => import('@pages/sample/ibizsample0003-stab-exp-view-layout/ibizsample0003-stab-exp-view-layout.vue'));
Vue.component('ibizbookdashboard-view-layout', () => import('@pages/sample/ibizbookdashboard-view-layout/ibizbookdashboard-view-layout.vue'));
Vue.component('ibizappviewgrid-view', () => import('@pages/sample/ibizappviewgrid-view/ibizappviewgrid-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('ibizappviewlist-view', () => import('@pages/sample/ibizappviewlist-view/ibizappviewlist-view.vue'));
Vue.component('ibizappctrlgrid-view', () => import('@pages/sample/ibizappctrlgrid-view/ibizappctrlgrid-view.vue')); Vue.component('ibizappctrlgrid-view', () => import('@pages/sample/ibizappctrlgrid-view/ibizappctrlgrid-view.vue'));
......
...@@ -1846,6 +1846,20 @@ const router = new Router({ ...@@ -1846,6 +1846,20 @@ const router = new Router({
}, },
component: () => import('@pages/sample/ibizsample0003-stab-exp-view-layout/ibizsample0003-stab-exp-view-layout.vue'), component: () => import('@pages/sample/ibizsample0003-stab-exp-view-layout/ibizsample0003-stab-exp-view-layout.vue'),
}, },
{
path: 'ibizbooks/:ibizbook?/dashboardview_layout/:dashboardview_layout?',
meta: {
caption: 'entities.ibizbook.views.dashboardview_layout.caption',
info:'',
parameters: [
{ pathName: 'index', parameterName: 'index' },
{ pathName: 'ibizbooks', parameterName: 'ibizbook' },
{ pathName: 'dashboardview_layout', parameterName: 'dashboardview_layout' },
],
requireAuth: true,
},
component: () => import('@pages/sample/ibizbookdashboard-view-layout/ibizbookdashboard-view-layout.vue'),
},
{ {
path: 'ibizappviews/:ibizappview?/gridview/:gridview?', path: 'ibizappviews/:ibizappview?/gridview/:gridview?',
meta: { meta: {
...@@ -5741,6 +5755,19 @@ const router = new Router({ ...@@ -5741,6 +5755,19 @@ const router = new Router({
}, },
component: () => import('@pages/sample/ibizorder-dashboard-view/ibizorder-dashboard-view.vue'), component: () => import('@pages/sample/ibizorder-dashboard-view/ibizorder-dashboard-view.vue'),
}, },
{
path: '/ibizbooks/:ibizbook?/dashboardview_layout/:dashboardview_layout?',
meta: {
caption: 'entities.ibizbook.views.dashboardview_layout.caption',
info:'',
parameters: [
{ pathName: 'ibizbooks', parameterName: 'ibizbook' },
{ pathName: 'dashboardview_layout', parameterName: 'dashboardview_layout' },
],
requireAuth: true,
},
component: () => import('@pages/sample/ibizbookdashboard-view-layout/ibizbookdashboard-view-layout.vue'),
},
{ {
path: '/ibizorders/:ibizorder?/sf3editview/:sf3editview?', path: '/ibizorders/:ibizorder?/sf3editview/:sf3editview?',
meta: { meta: {
......
...@@ -2801,6 +2801,19 @@ const router = new Router({ ...@@ -2801,6 +2801,19 @@ const router = new Router({
}, },
component: () => import('@pages/sample/ibizorder-dashboard-view/ibizorder-dashboard-view.vue'), component: () => import('@pages/sample/ibizorder-dashboard-view/ibizorder-dashboard-view.vue'),
}, },
{
path: '/ibizbooks/:ibizbook?/dashboardview_layout/:dashboardview_layout?',
meta: {
caption: 'entities.ibizbook.views.dashboardview_layout.caption',
info:'',
parameters: [
{ pathName: 'ibizbooks', parameterName: 'ibizbook' },
{ pathName: 'dashboardview_layout', parameterName: 'dashboardview_layout' },
],
requireAuth: true,
},
component: () => import('@pages/sample/ibizbookdashboard-view-layout/ibizbookdashboard-view-layout.vue'),
},
{ {
path: '/ibizorders/:ibizorder?/sf3editview/:sf3editview?', path: '/ibizorders/:ibizorder?/sf3editview/:sf3editview?',
meta: { meta: {
......
...@@ -852,6 +852,7 @@ export const viewstate: any = { ...@@ -852,6 +852,7 @@ export const viewstate: any = {
'880efe9c98faa665c18ad955496112bf', '880efe9c98faa665c18ad955496112bf',
'1a158d1e7cdd8c8e17b54bfa91846b4c', '1a158d1e7cdd8c8e17b54bfa91846b4c',
'4a0d51e3bca39ffa8dc989e13a1a613f', '4a0d51e3bca39ffa8dc989e13a1a613f',
'fd181f2767ed6c82915d092a2ff51e01',
], ],
}, },
{ {
...@@ -2124,6 +2125,16 @@ export const viewstate: any = { ...@@ -2124,6 +2125,16 @@ export const viewstate: any = {
'8f04b48c970ed3c24154be374d6a023f', '8f04b48c970ed3c24154be374d6a023f',
], ],
}, },
{
viewtag: 'fd181f2767ed6c82915d092a2ff51e01',
viewmodule: 'Sample',
viewname: 'IBIZBOOKDashboardView_layout',
viewaction: '',
viewdatachange: false,
refviews: [
'd27b8d175939b908e96b44174c8adf9d',
],
},
{ {
viewtag: 'fe9a43198dae9a3e4c169b82abfc45d9', viewtag: 'fe9a43198dae9a3e4c169b82abfc45d9',
viewmodule: 'Sample', viewmodule: 'Sample',
......
...@@ -964,6 +964,9 @@ export default class MainMenuBase extends Vue implements ControlInterface { ...@@ -964,6 +964,9 @@ export default class MainMenuBase extends Vue implements ControlInterface {
case 'AppFunc107': case 'AppFunc107':
this.clickAppFunc107(item); this.clickAppFunc107(item);
return; return;
case 'AppFunc108':
this.clickAppFunc108(item);
return;
default: default:
console.warn('未指定应用功能'); console.warn('未指定应用功能');
} }
...@@ -3772,6 +3775,29 @@ export default class MainMenuBase extends Vue implements ControlInterface { ...@@ -3772,6 +3775,29 @@ export default class MainMenuBase extends Vue implements ControlInterface {
this.$router.push(path); this.$router.push(path);
}) })
} }
/**
* 实体数据看板(布局面板)
*
* @param {*} [item={}]
* @memberof MainMenu
*/
public clickAppFunc108(item: any = {}) {
const viewparam: any = {};
Object.assign(viewparam, {});
const deResParameters: any[] = [];
const parameters: any[] = [
{ pathName: 'ibizbooks', parameterName: 'ibizbook' },
{ pathName: 'dashboardview_layout', parameterName: 'dashboardview_layout' },
];
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);
})
}
/** /**
* 数据加载 * 数据加载
......
...@@ -3435,7 +3435,7 @@ export default class MainMenuModel { ...@@ -3435,7 +3435,7 @@ export default class MainMenuModel {
iconcls: '', iconcls: '',
icon: '', icon: '',
textcls: '', textcls: '',
appfunctag: 'AppFunc45', appfunctag: 'AppFunc108',
resourcetag: '', resourcetag: '',
authtag:'Web-MainMenu-menuitem198', authtag:'Web-MainMenu-menuitem198',
}, },
...@@ -5435,6 +5435,18 @@ export default class MainMenuModel { ...@@ -5435,6 +5435,18 @@ export default class MainMenuModel {
{ pathName: 'stabexpview_layout', parameterName: 'stabexpview_layout' }, { pathName: 'stabexpview_layout', parameterName: 'stabexpview_layout' },
], ],
}, },
{
appfunctag: 'AppFunc108',
appfuncyype: 'APPVIEW',
openmode: '',
codename: 'ibizbookdashboardview_layout',
deResParameters: [],
routepath: '/index/:index?/ibizbooks/:ibizbook?/dashboardview_layout/:dashboardview_layout?',
parameters: [
{ pathName: 'ibizbooks', parameterName: 'ibizbook' },
{ pathName: 'dashboardview_layout', parameterName: 'dashboardview_layout' },
],
},
]; ];
/** /**
......
...@@ -508,7 +508,7 @@ export default class BooklistBase extends Vue implements ControlInterface { ...@@ -508,7 +508,7 @@ export default class BooklistBase extends Vue implements ControlInterface {
*/ */
public load(opt: any = {}): void { public load(opt: any = {}): void {
if(!this.fetchAction){ if(!this.fetchAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKDashboardView' + (this.$t('app.list.notConfig.fetchAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKDashboardView_layout' + (this.$t('app.list.notConfig.fetchAction') as string) });
return; return;
} }
const arg: any = {...opt}; const arg: any = {...opt};
...@@ -624,7 +624,7 @@ export default class BooklistBase extends Vue implements ControlInterface { ...@@ -624,7 +624,7 @@ export default class BooklistBase extends Vue implements ControlInterface {
*/ */
public async remove(datas: any[]): Promise<any> { public async remove(datas: any[]): Promise<any> {
if(!this.removeAction){ if(!this.removeAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKDashboardView' + (this.$t('app.list.notConfig.removeAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKDashboardView_layout' + (this.$t('app.list.notConfig.removeAction') as string) });
return; return;
} }
if (datas.length === 0) { if (datas.length === 0) {
...@@ -719,7 +719,7 @@ export default class BooklistBase extends Vue implements ControlInterface { ...@@ -719,7 +719,7 @@ export default class BooklistBase extends Vue implements ControlInterface {
try { try {
if(Object.is(item.rowDataState, 'create')){ if(Object.is(item.rowDataState, 'create')){
if(!this.createAction){ if(!this.createAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKDashboardView' + (this.$t('app.list.notConfig.createAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKDashboardView_layout' + (this.$t('app.list.notConfig.createAction') as string) });
}else{ }else{
Object.assign(item,{viewparams:this.viewparams}); Object.assign(item,{viewparams:this.viewparams});
let response = await this.service.add(this.createAction, JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator); let response = await this.service.add(this.createAction, JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator);
...@@ -727,7 +727,7 @@ export default class BooklistBase extends Vue implements ControlInterface { ...@@ -727,7 +727,7 @@ export default class BooklistBase extends Vue implements ControlInterface {
} }
}else if(Object.is(item.rowDataState, 'update')){ }else if(Object.is(item.rowDataState, 'update')){
if(!this.updateAction){ if(!this.updateAction){
this.$Notice.error({ title: (this.$t('app.commonWords.warning') as string), desc: 'IBIZBOOKDashboardView' + (this.$t('app.list.notConfig.updateAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.warning') as string), desc: 'IBIZBOOKDashboardView_layout' + (this.$t('app.list.notConfig.updateAction') as string) });
}else{ }else{
Object.assign(item,{viewparams:this.viewparams}); Object.assign(item,{viewparams:this.viewparams});
if(item.ibizbook){ if(item.ibizbook){
......
<template> <template>
<div class="app-dr-tab"> <div class="app-dr-tab">
<div v-for="(item, index) in items" :class="{ 'app-dr-tab-item': true, 'dr-tab-item': true, 'is-disabled': item.disabled, 'is-active': selection.id === item.id"> <div v-for="(item, index) in items" :class="{ 'app-dr-tab-item': true, 'dr-tab-item': true, 'is-disabled': item.disabled, 'is-active': selection.id === item.id }">
<span class="text">{{ item.text }}</span> <span class="text">{{ item.text }}</span>
</div> </div>
</div> </div>
......
...@@ -7,13 +7,13 @@ ...@@ -7,13 +7,13 @@
<i-col :md="{ span: 24, offset: 0 }"> <i-col :md="{ span: 24, offset: 0 }">
<card class="portlet-card" :bordered="false" dis-hover :padding="0"> <card class="portlet-card" :bordered="false" dis-hover :padding="0">
<span> <span>
<div class='portlet-container dashboard-viewdashboard-container1 ' :style="{}"> <div class='portlet-container dashboard-view-layoutdashboard-container1 ' :style="{}">
<row> <row>
<i-col :md="{ span: 24, offset: 0 }"> <i-col :md="{ span: 24, offset: 0 }">
<div class="portlet-without-title"> <div class="portlet-without-title">
<card class="portlet-card" :bordered="false" dis-hover :padding="0"> <card class="portlet-card" :bordered="false" dis-hover :padding="0">
<span> <span>
<div class='portlet-container dashboard-viewdashboard-container2 ' :style="{}"> <div class='portlet-container dashboard-view-layoutdashboard-container2 ' :style="{}">
<row> <row>
<i-col :md="{ span: 24, offset: 0 }" :lg="{ span: 12, offset: 0 }"> <i-col :md="{ span: 24, offset: 0 }" :lg="{ span: 12, offset: 0 }">
<div class="portlet-without-title"> <div class="portlet-without-title">
......
...@@ -48,18 +48,18 @@ ...@@ -48,18 +48,18 @@
<div v-show="flag" class="batch-toolbar"> <div v-show="flag" class="batch-toolbar">
<div class='toolbar-container'> <div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600"> <tooltip :transfer="true" :max-width="600">
<i-button v-show="dataviewexpviewdataviewexpbar_dataview_batchtoolbarModels.deuiaction1.visabled" :disabled="dataviewexpviewdataviewexpbar_dataview_batchtoolbarModels.deuiaction1.disabled" class='' v-loading:i-button @click="dataviewexpbar_dataview_batchtoolbar_click({ tag: 'deuiaction1' }, $event)"> <i-button v-show="usr2dataviewdataview_batchtoolbarModels.deuiaction1.visabled" :disabled="usr2dataviewdataview_batchtoolbarModels.deuiaction1.disabled" class='' v-loading:i-button @click="dataview_batchtoolbar_click({ tag: 'deuiaction1' }, $event)">
<i class='fa fa-edit'></i> <i class='fa fa-edit'></i>
<span class='caption'>{{$t('entities.ibizbook.dataviewexpviewdataviewexpbar_dataview_batchtoolbar_toolbar.deuiaction1.caption')}}</span> <span class='caption'>{{$t('entities.ibizbook.usr2dataviewdataview_batchtoolbar_toolbar.deuiaction1.caption')}}</span>
</i-button> </i-button>
<div slot='content'>{{$t('entities.ibizbook.dataviewexpviewdataviewexpbar_dataview_batchtoolbar_toolbar.deuiaction1.tip')}}</div> <div slot='content'>{{$t('entities.ibizbook.usr2dataviewdataview_batchtoolbar_toolbar.deuiaction1.tip')}}</div>
</tooltip> </tooltip>
<tooltip :transfer="true" :max-width="600"> <tooltip :transfer="true" :max-width="600">
<i-button v-show="dataviewexpviewdataviewexpbar_dataview_batchtoolbarModels.deuiaction2.visabled" :disabled="dataviewexpviewdataviewexpbar_dataview_batchtoolbarModels.deuiaction2.disabled" class='' v-loading:i-button @click="dataviewexpbar_dataview_batchtoolbar_click({ tag: 'deuiaction2' }, $event)"> <i-button v-show="usr2dataviewdataview_batchtoolbarModels.deuiaction2.visabled" :disabled="usr2dataviewdataview_batchtoolbarModels.deuiaction2.disabled" class='' v-loading:i-button @click="dataview_batchtoolbar_click({ tag: 'deuiaction2' }, $event)">
<i class='fa fa-remove'></i> <i class='fa fa-remove'></i>
<span class='caption'>{{$t('entities.ibizbook.dataviewexpviewdataviewexpbar_dataview_batchtoolbar_toolbar.deuiaction2.caption')}}</span> <span class='caption'>{{$t('entities.ibizbook.usr2dataviewdataview_batchtoolbar_toolbar.deuiaction2.caption')}}</span>
</i-button> </i-button>
<div slot='content'>{{$t('entities.ibizbook.dataviewexpviewdataviewexpbar_dataview_batchtoolbar_toolbar.deuiaction2.tip')}}</div> <div slot='content'>{{$t('entities.ibizbook.usr2dataviewdataview_batchtoolbar_toolbar.deuiaction2.tip')}}</div>
</tooltip> </tooltip>
</div> </div>
</div> </div>
...@@ -174,18 +174,18 @@ export default class Usr2Base extends Vue implements ControlInterface { ...@@ -174,18 +174,18 @@ export default class Usr2Base extends Vue implements ControlInterface {
public appEntityService: IBIZBOOKEntityService = new IBIZBOOKEntityService({ $store: this.$store }); public appEntityService: IBIZBOOKEntityService = new IBIZBOOKEntityService({ $store: this.$store });
/** /**
* dataviewexpbar_dataview_batchtoolbar 部件 click 事件 * dataview_batchtoolbar 部件 click 事件
* *
* @param {*} [args={}] * @param {*} [args={}]
* @param {*} $event * @param {*} $event
* @memberof Usr2Base * @memberof Usr2Base
*/ */
public dataviewexpbar_dataview_batchtoolbar_click($event: any, $event2?: any) { public dataview_batchtoolbar_click($event: any, $event2?: any) {
if (Object.is($event.tag, 'deuiaction1')) { if (Object.is($event.tag, 'deuiaction1')) {
this.dataviewexpbar_dataview_batchtoolbar_deuiaction1_click(null, 'dataviewexpbar_dataview_batchtoolbar', $event2); this.dataview_batchtoolbar_deuiaction1_click(null, 'dataview_batchtoolbar', $event2);
} }
if (Object.is($event.tag, 'deuiaction2')) { if (Object.is($event.tag, 'deuiaction2')) {
this.dataviewexpbar_dataview_batchtoolbar_deuiaction2_click(null, 'dataviewexpbar_dataview_batchtoolbar', $event2); this.dataview_batchtoolbar_deuiaction2_click(null, 'dataview_batchtoolbar', $event2);
} }
} }
...@@ -198,7 +198,7 @@ export default class Usr2Base extends Vue implements ControlInterface { ...@@ -198,7 +198,7 @@ export default class Usr2Base extends Vue implements ControlInterface {
* @param {*} [$event] * @param {*} [$event]
* @memberof * @memberof
*/ */
public dataviewexpbar_dataview_batchtoolbar_deuiaction1_click(params: any = {}, tag?: any, $event?: any) { public dataview_batchtoolbar_deuiaction1_click(params: any = {}, tag?: any, $event?: any) {
// 参数 // 参数
// 取数 // 取数
let datas: any[] = []; let datas: any[] = [];
...@@ -226,7 +226,7 @@ export default class Usr2Base extends Vue implements ControlInterface { ...@@ -226,7 +226,7 @@ export default class Usr2Base extends Vue implements ControlInterface {
* @param {*} [$event] * @param {*} [$event]
* @memberof * @memberof
*/ */
public dataviewexpbar_dataview_batchtoolbar_deuiaction2_click(params: any = {}, tag?: any, $event?: any) { public dataview_batchtoolbar_deuiaction2_click(params: any = {}, tag?: any, $event?: any) {
// 参数 // 参数
// 取数 // 取数
let datas: any[] = []; let datas: any[] = [];
...@@ -254,7 +254,7 @@ export default class Usr2Base extends Vue implements ControlInterface { ...@@ -254,7 +254,7 @@ export default class Usr2Base extends Vue implements ControlInterface {
* @param {*} [$event] * @param {*} [$event]
* @memberof * @memberof
*/ */
public dataviewexpbar_dataview_memo1_u37f11a8_click(params: any = {}, tag?: any, $event?: any) { public dataview_memo1_u37f11a8_click(params: any = {}, tag?: any, $event?: any) {
// 取数 // 取数
let datas: any[] = []; let datas: any[] = [];
let xData: any = null; let xData: any = null;
...@@ -281,7 +281,7 @@ export default class Usr2Base extends Vue implements ControlInterface { ...@@ -281,7 +281,7 @@ export default class Usr2Base extends Vue implements ControlInterface {
* @param {*} [$event] * @param {*} [$event]
* @memberof * @memberof
*/ */
public dataviewexpbar_dataview_memo1_uc365542_click(params: any = {}, tag?: any, $event?: any) { public dataview_memo1_uc365542_click(params: any = {}, tag?: any, $event?: any) {
// 取数 // 取数
let datas: any[] = []; let datas: any[] = [];
let xData: any = null; let xData: any = null;
...@@ -309,7 +309,7 @@ export default class Usr2Base extends Vue implements ControlInterface { ...@@ -309,7 +309,7 @@ export default class Usr2Base extends Vue implements ControlInterface {
* @param {*} [$event] 事件源 * @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件 * @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文 * @param {*} [actionContext] 执行行为上下文
* @memberof IBIZBOOKDataViewExpViewBase * @memberof IBIZBOOKUsr2DataViewBase
*/ */
public Edit(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) { public Edit(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
if (args.length === 0) { if (args.length === 0) {
...@@ -335,7 +335,7 @@ export default class Usr2Base extends Vue implements ControlInterface { ...@@ -335,7 +335,7 @@ export default class Usr2Base extends Vue implements ControlInterface {
* @param {*} [$event] 事件源 * @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件 * @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文 * @param {*} [actionContext] 执行行为上下文
* @memberof IBIZBOOKDataViewExpViewBase * @memberof IBIZBOOKUsr2DataViewBase
*/ */
public Remove(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) { public Remove(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
const _this: any = this; const _this: any = this;
...@@ -629,9 +629,9 @@ export default class Usr2Base extends Vue implements ControlInterface { ...@@ -629,9 +629,9 @@ export default class Usr2Base extends Vue implements ControlInterface {
* 工具栏模型 * 工具栏模型
* *
* @type {*} * @type {*}
* @memberof IBIZBOOKDataViewExpView * @memberof IBIZBOOKUsr2DataView
*/ */
public dataviewexpviewdataviewexpbar_dataview_batchtoolbarModels: any = { public usr2dataviewdataview_batchtoolbarModels: any = {
deuiaction1: { name: 'deuiaction1', actiontarget: 'NONE', caption: '编辑', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'Edit', target: 'SINGLEKEY' } }, deuiaction1: { name: 'deuiaction1', actiontarget: 'NONE', caption: '编辑', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'Edit', target: 'SINGLEKEY' } },
deuiaction2: { name: 'deuiaction2', actiontarget: 'NONE', caption: '删除', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'Remove', target: 'MULTIKEY' } }, deuiaction2: { name: 'deuiaction2', actiontarget: 'NONE', caption: '删除', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'Remove', target: 'MULTIKEY' } },
...@@ -956,7 +956,7 @@ export default class Usr2Base extends Vue implements ControlInterface { ...@@ -956,7 +956,7 @@ export default class Usr2Base extends Vue implements ControlInterface {
*/ */
public load(opt: any = {}, isReset: boolean = false): void { public load(opt: any = {}, isReset: boolean = false): void {
if(!this.fetchAction){ if(!this.fetchAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKDataViewExpView' + (this.$t('app.list.notConfig.fetchAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr2DataView' + (this.$t('app.list.notConfig.fetchAction') as string) });
return; return;
} }
const arg: any = {...opt}; const arg: any = {...opt};
...@@ -1036,7 +1036,7 @@ export default class Usr2Base extends Vue implements ControlInterface { ...@@ -1036,7 +1036,7 @@ export default class Usr2Base extends Vue implements ControlInterface {
*/ */
public async remove(datas: any[]): Promise<any> { public async remove(datas: any[]): Promise<any> {
if(!this.removeAction){ if(!this.removeAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKDataViewExpView' + (this.$t('app.gridpage.notConfig.removeAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr2DataView' + (this.$t('app.gridpage.notConfig.removeAction') as string) });
return; return;
} }
let _datas:any[] = []; let _datas:any[] = [];
...@@ -1146,7 +1146,7 @@ export default class Usr2Base extends Vue implements ControlInterface { ...@@ -1146,7 +1146,7 @@ export default class Usr2Base extends Vue implements ControlInterface {
try { try {
if(Object.is(item.rowDataState, 'create')){ if(Object.is(item.rowDataState, 'create')){
if(!this.createAction){ if(!this.createAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKDataViewExpView' + (this.$t('app.list.notConfig.createAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr2DataView' + (this.$t('app.list.notConfig.createAction') as string) });
}else{ }else{
Object.assign(item,{viewparams:this.viewparams}); Object.assign(item,{viewparams:this.viewparams});
let response = await this.service.add(this.createAction, JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator); let response = await this.service.add(this.createAction, JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator);
...@@ -1154,7 +1154,7 @@ export default class Usr2Base extends Vue implements ControlInterface { ...@@ -1154,7 +1154,7 @@ export default class Usr2Base extends Vue implements ControlInterface {
} }
}else if(Object.is(item.rowDataState, 'update')){ }else if(Object.is(item.rowDataState, 'update')){
if(!this.updateAction){ if(!this.updateAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKDataViewExpView' + (this.$t('app.list.notConfig.updateAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr2DataView' + (this.$t('app.list.notConfig.updateAction') as string) });
}else{ }else{
Object.assign(item,{viewparams:this.viewparams}); Object.assign(item,{viewparams:this.viewparams});
if(item.ibizbook){ if(item.ibizbook){
...@@ -1245,16 +1245,16 @@ export default class Usr2Base extends Vue implements ControlInterface { ...@@ -1245,16 +1245,16 @@ export default class Usr2Base extends Vue implements ControlInterface {
public uiAction(data: any, tag: any, $event: any) { public uiAction(data: any, tag: any, $event: any) {
$event.stopPropagation(); $event.stopPropagation();
if(Object.is('Edit', tag)) { if(Object.is('Edit', tag)) {
this.dataviewexpbar_dataview_batchtoolbar_deuiaction1_click(data, tag, $event); this.dataview_batchtoolbar_deuiaction1_click(data, tag, $event);
} }
if(Object.is('Remove', tag)) { if(Object.is('Remove', tag)) {
this.dataviewexpbar_dataview_batchtoolbar_deuiaction2_click(data, tag, $event); this.dataview_batchtoolbar_deuiaction2_click(data, tag, $event);
} }
if(Object.is('Edit', tag)) { if(Object.is('Edit', tag)) {
this.dataviewexpbar_dataview_memo1_u37f11a8_click(data, tag, $event); this.dataview_memo1_u37f11a8_click(data, tag, $event);
} }
if(Object.is('Remove', tag)) { if(Object.is('Remove', tag)) {
this.dataviewexpbar_dataview_memo1_uc365542_click(data, tag, $event); this.dataview_memo1_uc365542_click(data, tag, $event);
} }
} }
......
...@@ -10,7 +10,7 @@ export default class Usr2Model { ...@@ -10,7 +10,7 @@ export default class Usr2Model {
* 获取数据项集合 * 获取数据项集合
* *
* @returns {any[]} * @returns {any[]}
* @memberof Usr2Dataviewexpbar_dataviewMode * @memberof Usr2DataViewMode
*/ */
public getDataItems(): any[] { public getDataItems(): any[] {
return [ return [
...@@ -39,6 +39,17 @@ export default class Usr2Model { ...@@ -39,6 +39,17 @@ export default class Usr2Model {
dataType: 'FONTKEY', dataType: 'FONTKEY',
}, },
{
name: 'n_ibizbookname_like',
prop: 'n_ibizbookname_like',
dataType: 'QUERYPARAM'
},
{
name: 'n_price_gtandeq',
prop: 'n_price_gtandeq',
dataType: 'QUERYPARAM'
},
{ {
name:'size', name:'size',
......
<template> <template>
<div class="app-data-chart"> <div class="app-data-chart">
<div v-show="isNoData" class="chart-no-data"><i class="el-icon-data-analysis"></i>{{$t('entities.ibizorder.area_chart.nodata')}}</div> <div v-show="isNoData" class="chart-no-data"><i class="el-icon-data-analysis"></i>{{$t('entities.ibizorder.area_chart.nodata')}}</div>
<div v-show="!isNoData" class="app-charts" :id="chartId" style="height: 100%;padding: 6px 0;"></div> <div v-show="!isNoData" class="app-charts" :id="chartId" style="height: 300px;padding: 6px 0;"></div>
</div> </div>
</template> </template>
...@@ -234,7 +234,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -234,7 +234,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* *
* @public * @public
* @type {boolean} * @type {boolean}
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public isNoData: boolean = false; public isNoData: boolean = false;
...@@ -242,7 +242,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -242,7 +242,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* 图表div绑定的id * 图表div绑定的id
* *
* @type {} * @type {}
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public chartId:string = this.$util.createUUID(); public chartId:string = this.$util.createUUID();
...@@ -250,7 +250,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -250,7 +250,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* echarts图表对象 * echarts图表对象
* *
* @type {} * @type {}
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public myChart:any; public myChart:any;
...@@ -258,7 +258,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -258,7 +258,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* 代码表服务对象 * 代码表服务对象
* *
* @type {CodeListService} * @type {CodeListService}
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public codeListService:CodeListService = new CodeListService(); public codeListService:CodeListService = new CodeListService();
...@@ -266,7 +266,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -266,7 +266,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* 序列模型 * 序列模型
* *
* @type {} * @type {}
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public seriesModel:any = { public seriesModel:any = {
area:new ChartLineSeries({ area:new ChartLineSeries({
...@@ -320,7 +320,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -320,7 +320,7 @@ export default class AreaBase extends Vue implements ControlInterface {
/** /**
* 图表自定义参数集合 * 图表自定义参数集合
* *
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public chartUserParams:any ={ public chartUserParams:any ={
color:"#f4516c" color:"#f4516c"
...@@ -329,14 +329,14 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -329,14 +329,14 @@ export default class AreaBase extends Vue implements ControlInterface {
/** /**
* 图表基础动态模型 * 图表基础动态模型
* *
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public chartBaseOPtion:any = {}; public chartBaseOPtion:any = {};
/** /**
* 图表绘制最终参数 * 图表绘制最终参数
* *
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public chartRenderOption:any = {}; public chartRenderOption:any = {};
...@@ -344,7 +344,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -344,7 +344,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* 初始化图表所需参数 * 初始化图表所需参数
* *
* @type {} * @type {}
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public chartOption:any = { public chartOption:any = {
title:{ title:{
...@@ -402,7 +402,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -402,7 +402,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* 刷新 * 刷新
* *
* @param {*} [args={}] * @param {*} [args={}]
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public refresh(args?: any) { public refresh(args?: any) {
this.load(args); this.load(args);
...@@ -412,7 +412,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -412,7 +412,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* 获取图表数据 * 获取图表数据
* *
* @returns {*} * @returns {*}
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public load(opt?:any) { public load(opt?:any) {
let _this = this; let _this = this;
...@@ -438,7 +438,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -438,7 +438,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* 绘制图表 * 绘制图表
* *
* @returns {*} * @returns {*}
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public drawCharts(codelist:any){ public drawCharts(codelist:any){
if(!this.myChart){ if(!this.myChart){
...@@ -454,7 +454,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -454,7 +454,7 @@ export default class AreaBase extends Vue implements ControlInterface {
/** /**
* 处理图表参数 * 处理图表参数
* *
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public handleChartOPtion(allcodelist:any){ public handleChartOPtion(allcodelist:any){
let _chartOption:any = JSON.parse(JSON.stringify(this.chartOption)); let _chartOption:any = JSON.parse(JSON.stringify(this.chartOption));
...@@ -523,7 +523,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -523,7 +523,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* *
* @param {*} data 实体数据集 * @param {*} data 实体数据集
* @param {Function} callback 回调 * @param {Function} callback 回调
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public async transformToBasicChartSetData(data:any,callback:Function){ public async transformToBasicChartSetData(data:any,callback:Function){
if(!data || !Array.isArray(data) || data.length === 0){ if(!data || !Array.isArray(data) || data.length === 0){
...@@ -617,7 +617,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -617,7 +617,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* @param {Array<any>} callback 回调 * @param {Array<any>} callback 回调
* @param {*} allCodeList 所有代码表 * @param {*} allCodeList 所有代码表
* *
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public transformToChartSeriesDataSet(data:any,item:any,callback:Function,allCodeList:any):any{ public transformToChartSeriesDataSet(data:any,item:any,callback:Function,allCodeList:any):any{
if(item.seriesIdField){ if(item.seriesIdField){
...@@ -670,7 +670,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -670,7 +670,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* @param {*} groupFieldModel 分组属性模型 * @param {*} groupFieldModel 分组属性模型
* @param {*} allCodeList 所有代码表 * @param {*} allCodeList 所有代码表
* *
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public groupAndAdd(groupField:Array<any>,seriesField:Array<any>,valueField:Array<any>,data:any,item:any,groupFieldModel:any,allCodeList:any){ public groupAndAdd(groupField:Array<any>,seriesField:Array<any>,valueField:Array<any>,data:any,item:any,groupFieldModel:any,allCodeList:any){
let tempMap:Map<string,any> = new Map(); let tempMap:Map<string,any> = new Map();
...@@ -798,7 +798,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -798,7 +798,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* @param {*} groupField 分组属性 * @param {*} groupField 分组属性
* @param {*} allCodeList 所有代码表 * @param {*} allCodeList 所有代码表
* *
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public sortReturnArray(arr:Array<any>,groupField:any,allCodeList:any){ public sortReturnArray(arr:Array<any>,groupField:any,allCodeList:any){
let returnArray:Array<any> = []; let returnArray:Array<any> = [];
...@@ -865,7 +865,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -865,7 +865,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* @param {Array<any>} groupField 分组属性 * @param {Array<any>} groupField 分组属性
* @param {Array<any>} label label标签 * @param {Array<any>} label label标签
* *
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public handleSortGroupData(arr:Array<any>,groupField:any,label:string){ public handleSortGroupData(arr:Array<any>,groupField:any,label:string){
arr.forEach((item:any) =>{ arr.forEach((item:any) =>{
...@@ -899,7 +899,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -899,7 +899,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* @param {Array<any>} item 单个序列 * @param {Array<any>} item 单个序列
* @param {Array<any>} allCodeList 所有的代码表 * @param {Array<any>} allCodeList 所有的代码表
* *
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public completeDataSet(data:any,item:any,allCodeList:any){ public completeDataSet(data:any,item:any,allCodeList:any){
// 分组属性 // 分组属性
...@@ -924,7 +924,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -924,7 +924,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* *
* @param {Array<any>} tempTimeArray 传入数据 * @param {Array<any>} tempTimeArray 传入数据
* *
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public getRangeData(tempTimeArray:Array<any>){ public getRangeData(tempTimeArray:Array<any>){
tempTimeArray.forEach((item:any) =>{ tempTimeArray.forEach((item:any) =>{
...@@ -948,7 +948,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -948,7 +948,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* @param {Array<any>} allCodeList 所有的代码表 * @param {Array<any>} allCodeList 所有的代码表
* @param {Array<any>} groupField 分组属性 * @param {Array<any>} groupField 分组属性
* *
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public handleTimeData(data:any,item:any,allCodeList:any,groupField:any){ public handleTimeData(data:any,item:any,allCodeList:any,groupField:any){
let valueField = item.dataSetFields.find((datasetField:any) =>{ let valueField = item.dataSetFields.find((datasetField:any) =>{
...@@ -1080,7 +1080,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -1080,7 +1080,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* @param {Array<any>} item 单个序列 * @param {Array<any>} item 单个序列
* @param {Array<any>} allCodeList 所有的代码表 * @param {Array<any>} allCodeList 所有的代码表
* *
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public completeCodeList(data:any,item:any,allCodeList:any){ public completeCodeList(data:any,item:any,allCodeList:any){
let groupField = item.dataSetFields.find((datasetField:any) =>{ let groupField = item.dataSetFields.find((datasetField:any) =>{
...@@ -1124,7 +1124,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -1124,7 +1124,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* @param {*} allCodeList 所有代码表 * @param {*} allCodeList 所有代码表
* @param {*} result 结果值 * @param {*} result 结果值
* *
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public handleSingleDataSetField(input:any,field:any,allCodeList:any,result:any,groupField:any){ public handleSingleDataSetField(input:any,field:any,allCodeList:any,result:any,groupField:any){
let tempFieldObj:any = {}; let tempFieldObj:any = {};
...@@ -1160,7 +1160,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -1160,7 +1160,7 @@ export default class AreaBase extends Vue implements ControlInterface {
/** /**
* 获取图表所需代码表 * 获取图表所需代码表
* *
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public getChartAllCodeList():Promise<any>{ public getChartAllCodeList():Promise<any>{
return new Promise((resolve:any,reject:any) =>{ return new Promise((resolve:any,reject:any) =>{
...@@ -1207,7 +1207,7 @@ export default class AreaBase extends Vue implements ControlInterface { ...@@ -1207,7 +1207,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* 获取代码表 * 获取代码表
* *
* @returns {Promise<any>} * @returns {Promise<any>}
* @memberof ChartBase * @memberof Dashboard_sysportlet1_chartBase
*/ */
public getCodeList(codeListObject:any):Promise<any>{ public getCodeList(codeListObject:any):Promise<any>{
return new Promise((resolve:any,reject:any) =>{ return new Promise((resolve:any,reject:any) =>{
......
...@@ -10,7 +10,7 @@ export default class AreaModel { ...@@ -10,7 +10,7 @@ export default class AreaModel {
* 获取数据项集合 * 获取数据项集合
* *
* @returns {any[]} * @returns {any[]}
* @memberof AreaChartMode * @memberof AreaDashboard_sysportlet1_chartMode
*/ */
public getDataItems(): any[] { public getDataItems(): any[] {
return [ return [
......
<template> <template>
<div class="app-dr-tab"> <div class="app-dr-tab">
<div v-for="(item, index) in items" :class="{ 'app-dr-tab-item': true, 'dr-tab-item': true, 'is-disabled': item.disabled, 'is-active': selection.id === item.id"> <div v-for="(item, index) in items" :class="{ 'app-dr-tab-item': true, 'dr-tab-item': true, 'is-disabled': item.disabled, 'is-active': selection.id === item.id }">
<span class="text">{{ item.text }}</span> <span class="text">{{ item.text }}</span>
</div> </div>
</div> </div>
......
...@@ -172,7 +172,7 @@ ...@@ -172,7 +172,7 @@
<!--输出实体[IBIZBOOK]数据结构 --> <!--输出实体[IBIZBOOK]数据结构 -->
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizbook-84-7"> <changeSet author="a_LAB01_df847bdfd" id="tab-ibizbook-86-7">
<createTable tableName="T_IBIZBOOK"> <createTable tableName="T_IBIZBOOK">
<column name="CREATEMAN" remarks="" type="VARCHAR(60)"> <column name="CREATEMAN" remarks="" type="VARCHAR(60)">
</column> </column>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册