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

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

上级 ed0752a5
......@@ -3255,7 +3255,7 @@ mock.onGet('v7/main-menuappmenu').reply((config: any) => {
iconcls: '',
icon: '',
textcls: '',
appfunctag: 'AppFunc45',
appfunctag: 'AppFunc108',
resourcetag: '',
},
{
......
.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 = {
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('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('ibizappviewlist-view', () => import('@pages/sample/ibizappviewlist-view/ibizappviewlist-view.vue'));
Vue.component('ibizappctrlgrid-view', () => import('@pages/sample/ibizappctrlgrid-view/ibizappctrlgrid-view.vue'));
......
......@@ -1846,6 +1846,20 @@ const router = new Router({
},
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?',
meta: {
......@@ -5741,6 +5755,19 @@ const router = new Router({
},
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?',
meta: {
......
......@@ -2801,6 +2801,19 @@ const router = new Router({
},
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?',
meta: {
......
......@@ -852,6 +852,7 @@ export const viewstate: any = {
'880efe9c98faa665c18ad955496112bf',
'1a158d1e7cdd8c8e17b54bfa91846b4c',
'4a0d51e3bca39ffa8dc989e13a1a613f',
'fd181f2767ed6c82915d092a2ff51e01',
],
},
{
......@@ -2124,6 +2125,16 @@ export const viewstate: any = {
'8f04b48c970ed3c24154be374d6a023f',
],
},
{
viewtag: 'fd181f2767ed6c82915d092a2ff51e01',
viewmodule: 'Sample',
viewname: 'IBIZBOOKDashboardView_layout',
viewaction: '',
viewdatachange: false,
refviews: [
'd27b8d175939b908e96b44174c8adf9d',
],
},
{
viewtag: 'fe9a43198dae9a3e4c169b82abfc45d9',
viewmodule: 'Sample',
......
......@@ -964,6 +964,9 @@ export default class MainMenuBase extends Vue implements ControlInterface {
case 'AppFunc107':
this.clickAppFunc107(item);
return;
case 'AppFunc108':
this.clickAppFunc108(item);
return;
default:
console.warn('未指定应用功能');
}
......@@ -3772,6 +3775,29 @@ export default class MainMenuBase extends Vue implements ControlInterface {
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 {
iconcls: '',
icon: '',
textcls: '',
appfunctag: 'AppFunc45',
appfunctag: 'AppFunc108',
resourcetag: '',
authtag:'Web-MainMenu-menuitem198',
},
......@@ -5435,6 +5435,18 @@ export default class MainMenuModel {
{ 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 {
*/
public load(opt: any = {}): void {
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;
}
const arg: any = {...opt};
......@@ -624,7 +624,7 @@ export default class BooklistBase extends Vue implements ControlInterface {
*/
public async remove(datas: any[]): Promise<any> {
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;
}
if (datas.length === 0) {
......@@ -719,7 +719,7 @@ export default class BooklistBase extends Vue implements ControlInterface {
try {
if(Object.is(item.rowDataState, 'create')){
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{
Object.assign(item,{viewparams:this.viewparams});
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 {
}
}else if(Object.is(item.rowDataState, 'update')){
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{
Object.assign(item,{viewparams:this.viewparams});
if(item.ibizbook){
......
<template>
<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>
</div>
</div>
......
......@@ -7,13 +7,13 @@
<i-col :md="{ span: 24, offset: 0 }">
<card class="portlet-card" :bordered="false" dis-hover :padding="0">
<span>
<div class='portlet-container dashboard-viewdashboard-container1 ' :style="{}">
<div class='portlet-container dashboard-view-layoutdashboard-container1 ' :style="{}">
<row>
<i-col :md="{ span: 24, offset: 0 }">
<div class="portlet-without-title">
<card class="portlet-card" :bordered="false" dis-hover :padding="0">
<span>
<div class='portlet-container dashboard-viewdashboard-container2 ' :style="{}">
<div class='portlet-container dashboard-view-layoutdashboard-container2 ' :style="{}">
<row>
<i-col :md="{ span: 24, offset: 0 }" :lg="{ span: 12, offset: 0 }">
<div class="portlet-without-title">
......
......@@ -10,7 +10,7 @@ export default class Usr2Model {
* 获取数据项集合
*
* @returns {any[]}
* @memberof Usr2Dataviewexpbar_dataviewMode
* @memberof Usr2DataViewMode
*/
public getDataItems(): any[] {
return [
......@@ -39,6 +39,17 @@ export default class Usr2Model {
dataType: 'FONTKEY',
},
{
name: 'n_ibizbookname_like',
prop: 'n_ibizbookname_like',
dataType: 'QUERYPARAM'
},
{
name: 'n_price_gtandeq',
prop: 'n_price_gtandeq',
dataType: 'QUERYPARAM'
},
{
name:'size',
......
<template>
<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="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>
</template>
......@@ -234,7 +234,7 @@ export default class AreaBase extends Vue implements ControlInterface {
*
* @public
* @type {boolean}
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public isNoData: boolean = false;
......@@ -242,7 +242,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* 图表div绑定的id
*
* @type {}
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public chartId:string = this.$util.createUUID();
......@@ -250,7 +250,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* echarts图表对象
*
* @type {}
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public myChart:any;
......@@ -258,7 +258,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* 代码表服务对象
*
* @type {CodeListService}
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public codeListService:CodeListService = new CodeListService();
......@@ -266,7 +266,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* 序列模型
*
* @type {}
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public seriesModel:any = {
area:new ChartLineSeries({
......@@ -320,7 +320,7 @@ export default class AreaBase extends Vue implements ControlInterface {
/**
* 图表自定义参数集合
*
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public chartUserParams:any ={
color:"#f4516c"
......@@ -329,14 +329,14 @@ export default class AreaBase extends Vue implements ControlInterface {
/**
* 图表基础动态模型
*
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public chartBaseOPtion:any = {};
/**
* 图表绘制最终参数
*
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public chartRenderOption:any = {};
......@@ -344,7 +344,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* 初始化图表所需参数
*
* @type {}
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public chartOption:any = {
title:{
......@@ -402,7 +402,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* 刷新
*
* @param {*} [args={}]
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public refresh(args?: any) {
this.load(args);
......@@ -412,7 +412,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* 获取图表数据
*
* @returns {*}
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public load(opt?:any) {
let _this = this;
......@@ -438,7 +438,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* 绘制图表
*
* @returns {*}
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public drawCharts(codelist:any){
if(!this.myChart){
......@@ -454,7 +454,7 @@ export default class AreaBase extends Vue implements ControlInterface {
/**
* 处理图表参数
*
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public handleChartOPtion(allcodelist:any){
let _chartOption:any = JSON.parse(JSON.stringify(this.chartOption));
......@@ -523,7 +523,7 @@ export default class AreaBase extends Vue implements ControlInterface {
*
* @param {*} data 实体数据集
* @param {Function} callback 回调
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public async transformToBasicChartSetData(data:any,callback:Function){
if(!data || !Array.isArray(data) || data.length === 0){
......@@ -617,7 +617,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* @param {Array<any>} callback 回调
* @param {*} allCodeList 所有代码表
*
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public transformToChartSeriesDataSet(data:any,item:any,callback:Function,allCodeList:any):any{
if(item.seriesIdField){
......@@ -670,7 +670,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* @param {*} groupFieldModel 分组属性模型
* @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){
let tempMap:Map<string,any> = new Map();
......@@ -798,7 +798,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* @param {*} groupField 分组属性
* @param {*} allCodeList 所有代码表
*
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public sortReturnArray(arr:Array<any>,groupField:any,allCodeList:any){
let returnArray:Array<any> = [];
......@@ -865,7 +865,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* @param {Array<any>} groupField 分组属性
* @param {Array<any>} label label标签
*
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public handleSortGroupData(arr:Array<any>,groupField:any,label:string){
arr.forEach((item:any) =>{
......@@ -899,7 +899,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* @param {Array<any>} item 单个序列
* @param {Array<any>} allCodeList 所有的代码表
*
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public completeDataSet(data:any,item:any,allCodeList:any){
// 分组属性
......@@ -924,7 +924,7 @@ export default class AreaBase extends Vue implements ControlInterface {
*
* @param {Array<any>} tempTimeArray 传入数据
*
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public getRangeData(tempTimeArray:Array<any>){
tempTimeArray.forEach((item:any) =>{
......@@ -948,7 +948,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* @param {Array<any>} allCodeList 所有的代码表
* @param {Array<any>} groupField 分组属性
*
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public handleTimeData(data:any,item:any,allCodeList:any,groupField:any){
let valueField = item.dataSetFields.find((datasetField:any) =>{
......@@ -1080,7 +1080,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* @param {Array<any>} item 单个序列
* @param {Array<any>} allCodeList 所有的代码表
*
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public completeCodeList(data:any,item:any,allCodeList:any){
let groupField = item.dataSetFields.find((datasetField:any) =>{
......@@ -1124,7 +1124,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* @param {*} allCodeList 所有代码表
* @param {*} result 结果值
*
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public handleSingleDataSetField(input:any,field:any,allCodeList:any,result:any,groupField:any){
let tempFieldObj:any = {};
......@@ -1160,7 +1160,7 @@ export default class AreaBase extends Vue implements ControlInterface {
/**
* 获取图表所需代码表
*
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public getChartAllCodeList():Promise<any>{
return new Promise((resolve:any,reject:any) =>{
......@@ -1207,7 +1207,7 @@ export default class AreaBase extends Vue implements ControlInterface {
* 获取代码表
*
* @returns {Promise<any>}
* @memberof ChartBase
* @memberof Dashboard_sysportlet1_chartBase
*/
public getCodeList(codeListObject:any):Promise<any>{
return new Promise((resolve:any,reject:any) =>{
......
......@@ -10,7 +10,7 @@ export default class AreaModel {
* 获取数据项集合
*
* @returns {any[]}
* @memberof AreaChartMode
* @memberof AreaDashboard_sysportlet1_chartMode
*/
public getDataItems(): any[] {
return [
......
<template>
<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>
</div>
</div>
......
......@@ -172,7 +172,7 @@
<!--输出实体[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">
<column name="CREATEMAN" remarks="" type="VARCHAR(60)">
</column>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册