提交 8c837340 编写于 作者: ibizdev's avatar ibizdev

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

上级 11c65b51
......@@ -251,6 +251,7 @@ export default {
menuitem118: "编辑视图(分页关系)",
menuitem125: "数据看板",
menuitem126: "实体数据看板",
menuitem136: "订单明细柱状图",
menuitem127: "导航视图",
menuitem128: "表格导航",
menuitem129: "选项操作",
......
......@@ -251,6 +251,7 @@ export default {
menuitem118: "编辑视图(分页关系)",
menuitem125: "数据看板",
menuitem126: "实体数据看板",
menuitem136: "订单明细柱状图",
menuitem127: "导航视图",
menuitem128: "表格导航",
menuitem129: "选项操作",
......
......@@ -198,12 +198,12 @@ export default {
srfdeid: "",
srfsourcekey: "",
ibizbookname: "图书名称",
ibizbookid: "图书标识",
author: "图书作者",
booknumber: "图书数量",
press: "图书出版社",
price: "图书价格",
borrowstatus: "图书借阅状态",
ibizbookid: "图书标识",
},
uiactions: {
},
......
......@@ -197,12 +197,12 @@ export default {
srfdeid: "",
srfsourcekey: "",
ibizbookname: "图书名称",
ibizbookid: "图书标识",
author: "图书作者",
booknumber: "图书数量",
press: "图书出版社",
price: "图书价格",
borrowstatus: "图书借阅状态",
ibizbookid: "图书标识",
},
uiactions: {
},
......
......@@ -1623,6 +1623,24 @@ mock.onGet('v7/main-menuappmenu').reply((config: any) => {
textcls: '',
appfunctag: 'AppFunc50',
resourcetag: '',
},
{
id: '9AF2AE71-4228-4404-A271-0B8A97EDD5A3',
name: 'menuitem136',
text: '订单明细柱状图',
type: 'MENUITEM',
counterid: '',
tooltip: '订单明细柱状图',
expanded: false,
separator: false,
hidden: false,
hidesidebar: false,
opendefault: false,
iconcls: '',
icon: '',
textcls: '',
appfunctag: 'AppFunc52',
resourcetag: '',
},
],
},
......
.ibizorder-detail-chart-view{
position: relative;
}
.ibizorder-detail-chart-view{
display: block;
> .view-card > .ivu-card-body > .content-container > .app-data-chart {
overflow: auto;
}
}
\ No newline at end of file
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import IBIZOrderDetailChartViewBase from './ibizorder-detail-chart-view-base.vue';
import view_chart from '@widgets/ibizorder-detail/histogram-chart/histogram-chart.vue';
import view_searchform from '@widgets/ibizorder-detail/default-searchform/default-searchform.vue';
@Component({
components: {
view_chart,
view_searchform,
},
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 IBIZOrderDetailChartView extends IBIZOrderDetailChartViewBase {
}
</script>
\ No newline at end of file
......@@ -106,6 +106,7 @@ export const PageComponents = {
Vue.component('ibizorder-f10-edit-view', () => import('@pages/sample/ibizorder-f10-edit-view/ibizorder-f10-edit-view.vue'));
Vue.component('ibizsample0003-stree-exp-view', () => import('@pages/sample/ibizsample0003-stree-exp-view/ibizsample0003-stree-exp-view.vue'));
Vue.component('ibizorder-dashboard-view', () => import('@pages/sample/ibizorder-dashboard-view/ibizorder-dashboard-view.vue'));
Vue.component('ibizorder-detail-chart-view', () => import('@pages/sample/ibizorder-detail-chart-view/ibizorder-detail-chart-view.vue'));
Vue.component('ibizorder-sedit-view4', () => import('@pages/sample/ibizorder-sedit-view4/ibizorder-sedit-view4.vue'));
Vue.component('ibizsoftware-suit-grid-view9', () => import('@pages/sample/ibizsoftware-suit-grid-view9/ibizsoftware-suit-grid-view9.vue'));
Vue.component('ibizbookhas-panel-list-view', () => import('@pages/sample/ibizbookhas-panel-list-view/ibizbookhas-panel-list-view.vue'));
......
......@@ -1624,6 +1624,20 @@ const router = new Router({
},
component: () => import('@pages/sample/ibizorder-dashboard-view/ibizorder-dashboard-view.vue'),
},
{
path: 'ibizorderdetails/:ibizorderdetail?/chartview/:chartview?',
meta: {
caption: 'entities.ibizorderdetail.views.chartview.caption',
info:'',
parameters: [
{ pathName: 'index', parameterName: 'index' },
{ pathName: 'ibizorderdetails', parameterName: 'ibizorderdetail' },
{ pathName: 'chartview', parameterName: 'chartview' },
],
requireAuth: true,
},
component: () => import('@pages/sample/ibizorder-detail-chart-view/ibizorder-detail-chart-view.vue'),
},
{
path: 'ibizorders/:ibizorder?/seditview4/:seditview4?',
meta: {
......@@ -4055,6 +4069,19 @@ const router = new Router({
},
component: () => import('@pages/sample/ibizsoftware-suit-sgrid-view/ibizsoftware-suit-sgrid-view.vue'),
},
{
path: '/ibizorderdetails/:ibizorderdetail?/chartview/:chartview?',
meta: {
caption: 'entities.ibizorderdetail.views.chartview.caption',
info:'',
parameters: [
{ pathName: 'ibizorderdetails', parameterName: 'ibizorderdetail' },
{ pathName: 'chartview', parameterName: 'chartview' },
],
requireAuth: true,
},
component: () => import('@pages/sample/ibizorder-detail-chart-view/ibizorder-detail-chart-view.vue'),
},
{
path: '/ibizorderdetails/:ibizorderdetail?/f6gridview/:f6gridview?',
meta: {
......
......@@ -225,6 +225,7 @@ export const viewstate: any = {
'f4c5c766fd5755b694e0401dddc4d1ad',
'7f65e6161c444d29e1f53f1cb76e92de',
'e7441fa67d425df343d996c745fb5d6b',
'ca12f5e01b107fe4af5b19b4f5ab1c4f',
'756fecec409c3a955f0cd737259d27c7',
'2ccd29eeaeded3ea5a713a19cd67a83e',
'490f607f17e7cc8ceccc77f2d0b9a70d',
......@@ -1322,6 +1323,15 @@ export const viewstate: any = {
'54c2461e07dd79fdbecc2c1e3aec8096',
],
},
{
viewtag: 'ca12f5e01b107fe4af5b19b4f5ab1c4f',
viewmodule: 'Sample',
viewname: 'IBIZOrderDetailChartView',
viewaction: '',
viewdatachange: false,
refviews: [
],
},
{
viewtag: 'd1ee943cf3137dc4d57ad59aa8c4b8cb',
viewmodule: 'Sample',
......
......@@ -587,6 +587,9 @@ export default class MainMenuBase extends Vue implements ControlInterface {
case 'Auto286':
this.clickAuto286(item);
return;
case 'AppFunc52':
this.clickAppFunc52(item);
return;
case 'Auto375':
this.clickAuto375(item);
return;
......@@ -1365,6 +1368,29 @@ export default class MainMenuBase extends Vue implements ControlInterface {
})
}
/**
* 功能名称
*
* @param {*} [item={}]
* @memberof MainMenu
*/
public clickAppFunc52(item: any = {}) {
const viewparam: any = {};
Object.assign(viewparam, {});
const deResParameters: any[] = [];
const parameters: any[] = [
{ pathName: 'ibizorderdetails', parameterName: 'ibizorderdetail' },
{ pathName: 'chartview', parameterName: 'chartview' },
];
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);
})
}
/**
* 静态节点
*
......
......@@ -1715,6 +1715,25 @@ export default class MainMenuModel {
appfunctag: 'AppFunc50',
resourcetag: '',
authtag:'Web-MainMenu-menuitem126',
},
{
id: '9AF2AE71-4228-4404-A271-0B8A97EDD5A3',
name: 'menuitem136',
text: '订单明细柱状图',
type: 'MENUITEM',
counterid: '',
tooltip: '订单明细柱状图',
expanded: false,
separator: false,
hidden: false,
hidesidebar: false,
opendefault: false,
iconcls: '',
icon: '',
textcls: '',
appfunctag: 'AppFunc52',
resourcetag: '',
authtag:'Web-MainMenu-menuitem136',
},
],
},
......
......@@ -5,14 +5,14 @@
<i-col v-show="detailsModel.group1.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-group :uiService="appUIService" :data="transformData(data)" :manageContainerStatus="detailsModel.group1.manageContainerStatus" :isManageContainer="detailsModel.group1.isManageContainer" @managecontainerclick="manageContainerClick('group1')" layoutType="TABLE_24COL" titleStyle="" class='' :uiActionGroup="detailsModel.group1.uiActionGroup" @groupuiactionclick="groupUIActionClick($event)" :caption="$t('entities.ibizbook.guideborrowform_form.details.group1')" :isShowCaption="true" uiStyle="DEFAULT" :titleBarCloseMode="0" :isInfoGroupMode="false" >
<row>
<i-col v-show="detailsModel.lendouttime.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<i-col v-show="detailsModel.lendouttime.visible" :style="{}" :sm="{ span: 12, offset: 0 }" :md="{ span: 12, offset: 0 }" :lg="{ span: 12, offset: 0 }" :xl="{ span: 12, offset: 0 }">
<app-form-item name='lendouttime' :itemRules="this.rules().lendouttime" class='' :caption="$t('entities.ibizbook.guideborrowform_form.details.lendouttime')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.lendouttime.error" :isEmptyCaption="false" labelPos="LEFT">
<date-picker type="date" :transfer="true" format="yyyy-MM-dd" :value="data.lendouttime" :disabled="detailsModel.lendouttime.disabled" style="min-width: 150px; width:100px;" @on-change="(val1, val2) => { this.data.lendouttime = val1 }"></date-picker>
</app-form-item>
</i-col>
<i-col v-show="detailsModel.borrowstatus.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<i-col v-show="detailsModel.borrowstatus.visible" :style="{}" :sm="{ span: 12, offset: 0 }" :md="{ span: 12, offset: 0 }" :lg="{ span: 12, offset: 0 }" :xl="{ span: 12, offset: 0 }">
<app-form-item name='borrowstatus' :itemRules="this.rules().borrowstatus" class='' :caption="$t('entities.ibizbook.guideborrowform_form.details.borrowstatus')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.borrowstatus.error" :isEmptyCaption="false" labelPos="LEFT">
<dropdown-list
......@@ -25,6 +25,8 @@
:disabled="detailsModel.borrowstatus.disabled"
valueType="number"
style="width:100px;width: 100px;"
tag='YesNo'
codelistType='STATIC'
placeholder='请选择...'>
</dropdown-list>
......
......@@ -5,7 +5,7 @@
<i-col v-show="detailsModel.group1.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-group :uiService="appUIService" :data="transformData(data)" :manageContainerStatus="detailsModel.group1.manageContainerStatus" :isManageContainer="detailsModel.group1.isManageContainer" @managecontainerclick="manageContainerClick('group1')" layoutType="TABLE_24COL" titleStyle="" class='' :uiActionGroup="detailsModel.group1.uiActionGroup" @groupuiactionclick="groupUIActionClick($event)" :caption="$t('entities.ibizbook.guideviewform_form.details.group1')" :isShowCaption="true" uiStyle="DEFAULT" :titleBarCloseMode="0" :isInfoGroupMode="false" >
<row>
<i-col v-show="detailsModel.ibizbookname.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<i-col v-show="detailsModel.ibizbookname.visible" :style="{}" :sm="{ span: 8, offset: 0 }" :md="{ span: 8, offset: 0 }" :lg="{ span: 8, offset: 0 }" :xl="{ span: 8, offset: 0 }">
<app-form-item name='ibizbookname' :itemRules="this.rules().ibizbookname" class='' :caption="$t('entities.ibizbook.guideviewform_form.details.ibizbookname')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.ibizbookname.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box
v-model="data.ibizbookname"
......@@ -19,7 +19,7 @@
</app-form-item>
</i-col>
<i-col v-show="detailsModel.author.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<i-col v-show="detailsModel.author.visible" :style="{}" :sm="{ span: 8, offset: 0 }" :md="{ span: 8, offset: 0 }" :lg="{ span: 8, offset: 0 }" :xl="{ span: 8, offset: 0 }">
<app-form-item name='author' :itemRules="this.rules().author" class='' :caption="$t('entities.ibizbook.guideviewform_form.details.author')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.author.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box
v-model="data.author"
......@@ -33,7 +33,7 @@
</app-form-item>
</i-col>
<i-col v-show="detailsModel.booknumber.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<i-col v-show="detailsModel.booknumber.visible" :style="{}" :sm="{ span: 8, offset: 0 }" :md="{ span: 8, offset: 0 }" :lg="{ span: 8, offset: 0 }" :xl="{ span: 8, offset: 0 }">
<app-form-item name='booknumber' :itemRules="this.rules().booknumber" class='' :caption="$t('entities.ibizbook.guideviewform_form.details.booknumber')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.booknumber.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box
v-model="data.booknumber"
......@@ -47,7 +47,7 @@
</app-form-item>
</i-col>
<i-col v-show="detailsModel.press.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<i-col v-show="detailsModel.press.visible" :style="{}" :sm="{ span: 8, offset: 0 }" :md="{ span: 8, offset: 0 }" :lg="{ span: 8, offset: 0 }" :xl="{ span: 8, offset: 0 }">
<app-form-item name='press' :itemRules="this.rules().press" class='' :caption="$t('entities.ibizbook.guideviewform_form.details.press')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.press.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box
v-model="data.press"
......@@ -61,7 +61,7 @@
</app-form-item>
</i-col>
<i-col v-show="detailsModel.price.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<i-col v-show="detailsModel.price.visible" :style="{}" :sm="{ span: 8, offset: 0 }" :md="{ span: 8, offset: 0 }" :lg="{ span: 8, offset: 0 }" :xl="{ span: 8, offset: 0 }">
<app-form-item name='price' :itemRules="this.rules().price" class='' :caption="$t('entities.ibizbook.guideviewform_form.details.price')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.price.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box
v-model="data.price"
......@@ -76,7 +76,7 @@
</app-form-item>
</i-col>
<i-col v-show="detailsModel.borrowstatus.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<i-col v-show="detailsModel.borrowstatus.visible" :style="{}" :sm="{ span: 8, offset: 0 }" :md="{ span: 8, offset: 0 }" :lg="{ span: 8, offset: 0 }" :xl="{ span: 8, offset: 0 }">
<app-form-item name='borrowstatus' :itemRules="this.rules().borrowstatus" class='' :caption="$t('entities.ibizbook.guideviewform_form.details.borrowstatus')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.borrowstatus.error" :isEmptyCaption="false" labelPos="LEFT">
<dropdown-list
......@@ -89,6 +89,8 @@
:disabled="detailsModel.borrowstatus.disabled"
valueType="number"
style="width:100px;width: 100px;"
tag='YesNo'
codelistType='STATIC'
placeholder='请选择...'>
</dropdown-list>
......@@ -496,12 +498,12 @@ export default class GuideViewFormBase extends Vue implements ControlInterface {
srfdeid: null,
srfsourcekey: null,
ibizbookname: null,
ibizbookid: null,
author: null,
booknumber: null,
press: null,
price: null,
borrowstatus: null,
ibizbookid: null,
ibizbook:null,
};
......@@ -703,8 +705,6 @@ export default class GuideViewFormBase extends Vue implements ControlInterface {
srfsourcekey: new FormItemModel({ caption: '', detailType: 'FORMITEM', name: 'srfsourcekey', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
ibizbookname: new FormItemModel({ caption: '图书名称', detailType: 'FORMITEM', name: 'ibizbookname', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:true, disabled: false, enableCond: 3 })
,
ibizbookid: new FormItemModel({ caption: '图书标识', detailType: 'FORMITEM', name: 'ibizbookid', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
author: new FormItemModel({ caption: '图书作者', detailType: 'FORMITEM', name: 'author', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
......@@ -715,6 +715,8 @@ export default class GuideViewFormBase extends Vue implements ControlInterface {
price: new FormItemModel({ caption: '图书价格', detailType: 'FORMITEM', name: 'price', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
borrowstatus: new FormItemModel({ caption: '图书借阅状态', detailType: 'FORMITEM', name: 'borrowstatus', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
ibizbookid: new FormItemModel({ caption: '图书标识', detailType: 'FORMITEM', name: 'ibizbookid', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
};
......@@ -826,18 +828,6 @@ export default class GuideViewFormBase extends Vue implements ControlInterface {
this.formDataChange({ name: 'ibizbookname', newVal: newVal, oldVal: oldVal });
}
/**
* 监控表单属性 ibizbookid 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof GuideViewFormBase
*/
@Watch('data.ibizbookid')
onIbizbookidChange(newVal: any, oldVal: any) {
this.formDataChange({ name: 'ibizbookid', newVal: newVal, oldVal: oldVal });
}
/**
* 监控表单属性 author 值
*
......@@ -898,6 +888,18 @@ export default class GuideViewFormBase extends Vue implements ControlInterface {
this.formDataChange({ name: 'borrowstatus', newVal: newVal, oldVal: oldVal });
}
/**
* 监控表单属性 ibizbookid 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof GuideViewFormBase
*/
@Watch('data.ibizbookid')
onIbizbookidChange(newVal: any, oldVal: any) {
this.formDataChange({ name: 'ibizbookid', newVal: newVal, oldVal: oldVal });
}
/**
* 显示更多模式切换操作
......
......@@ -60,11 +60,6 @@ export default class GuideViewFormModel {
prop: 'ibizbookname',
dataType: 'TEXT',
},
{
name: 'ibizbookid',
prop: 'ibizbookid',
dataType: 'GUID',
},
{
name: 'author',
prop: 'author',
......@@ -90,6 +85,11 @@ export default class GuideViewFormModel {
prop: 'borrowstatus',
dataType: 'TRUEFALSE',
},
{
name: 'ibizbookid',
prop: 'ibizbookid',
dataType: 'GUID',
},
{
name: 'ibizbook',
prop: 'ibizbookid',
......
/**
* Histogram 部件模型
*
* @export
* @class HistogramModel
*/
export default class HistogramModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof HistogramChartMode
*/
public getDataItems(): any[] {
return [
{
name:'size',
prop:'size'
},
{
name:'query',
prop:'query'
},
{
name:'page',
prop:'page'
},
{
name:'sort',
prop:'sort'
}
]
}
}
\ No newline at end of file
import { Http,Util,Errorlog } from '@/utils';
import ControlService from '@/widgets/control-service';
import IBIZOrderDetailService from '@/service/ibizorder-detail/ibizorder-detail-service';
import HistogramModel from './histogram-chart-model';
/**
* Histogram 部件服务对象
*
* @export
* @class HistogramService
*/
export default class HistogramService extends ControlService {
/**
* 订单明细服务对象
*
* @type {IBIZOrderDetailService}
* @memberof HistogramService
*/
public appEntityService: IBIZOrderDetailService = new IBIZOrderDetailService({ $store: this.getStore() });
/**
* 设置从数据模式
*
* @type {boolean}
* @memberof HistogramService
*/
public setTempMode(){
this.isTempMode = false;
}
/**
* Creates an instance of HistogramService.
*
* @param {*} [opts={}]
* @memberof HistogramService
*/
constructor(opts: any = {}) {
super(opts);
this.model = new HistogramModel();
}
/**
* 查询数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof HistogramService
*/
@Errorlog
public search(action: string,context: any = {}, data: any = {}, isloading?: boolean): Promise<any> {
const {data:Data,context:Context} = this.handleRequestData(action,context,data,true);
return new Promise((resolve: any, reject: any) => {
const _appEntityService: any = this.appEntityService;
let result: Promise<any>;
if (_appEntityService[action] && _appEntityService[action] instanceof Function) {
result = _appEntityService[action](Context,Data, isloading);
}else{
result =_appEntityService.FetchDefault(Context,Data, isloading);
}
result.then((response) => {
resolve(response);
}).catch(response => {
reject(response);
});
});
}
}
\ No newline at end of file
// this is less
.app-data-chart {
width: 100%;
height: 100%;
.chart-no-data{
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
i{
margin-right: 5px;
}
}
}
\ No newline at end of file
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import HistogramBase from './histogram-chart-base.vue';
@Component({
components: {
}
})
export default class Histogram extends HistogramBase {
}
</script>
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册