提交 9fe872e8 编写于 作者: ibizdev's avatar ibizdev

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

上级 1c12b183
......@@ -28,4 +28,182 @@
margin: 0 5px;
}
}
}
// 应用菜单样式
.app-menu {
.app-menu-icon {
width: 20px;
font-size: 14px;
margin-right: 6px;
}
&.app-menu--horizontal {
display: flex;
>.app-menu-item {
display: flex;
height: 64px;
}
.el-menu-item,
.el-submenu__title {
height: 64px;
line-height: 64px;
background-color: var(--app-color-black);
color: var(--app-color-white) !important;
.fa {
color: var(--app-color-white);
}
&:hover,
&.is-active {
background: #202027;
}
}
.el-menu-item {
&.is-active {
border-bottom: 4px solid var(--app-color-yellow);
border-bottom-color: var(--app-color-yellow);
}
}
.el-submenu {
&.is-active,
&.is-opened {
.el-submenu__title {
border-bottom: 4px solid var(--app-color-yellow);
border-bottom-color: var(--app-color-yellow) !important;
}
}
}
.el-submenu {
&.is-active {
>.el-submenu__title {
background: #202027;
}
}
}
.el-submenu__icon-arrow {
display: none;
}
}
&.app-menu--vertical {
color: var(--app-color-white);
background-color: #001529;
border-right: none;
.el-menu-item,
.el-submenu__title {
height: 40px;
line-height: 40px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
color: var(--app-color-white);
background-color: #001529;
.fa,
.el-submenu__icon-arrow {
color: var(--app-color-white);
}
&:hover,
&.is-active {
background-color: var(--app-color-blue);
}
}
.el-submenu {
&.is-active {
>.el-submenu__title {
background-color: var(--app-color-blue);
}
}
}
&.el-menu--collapse {
.el-menu-item,
.el-submenu__title {
overflow: visible;
}
.el-submenu__icon-arrow {
display: none;
}
}
}
}
.app-popper-menu--horizontal {
.el-menu--popup {
padding: 0;
.el-submenu__icon-arrow {
display: none;
}
.el-menu-item,
.el-submenu__title {
height: 40px;
line-height: 40px;
padding: 0 12px;
background-color: var(--app-color-black);
color: var(--app-color-white) !important;
border-bottom: 1px solid var(--app-color-gray-250);
border-bottom-color: var(--app-color-gray-250) !important;
}
.el-submenu {
&.is-active {
>.el-submenu__title {
background: #202027;
}
}
}
.el-menu-item {
&.is-active {
background: #202027;
}
}
}
}
.app-popper-menu--vertical {
.el-menu--popup {
padding: 0;
.el-submenu__icon-arrow {
display: none;
}
.el-menu-item,
.el-submenu__title {
height: 40px;
line-height: 40px;
padding: 0 12px;
color: var(--app-color-white) !important;
background-color: #001529;
border-bottom: 1px solid var(--app-color-gray-250);
border-bottom-color: var(--app-color-gray-250) !important;
}
.el-submenu {
&.is-active {
>.el-submenu__title {
background-color: var(--app-color-blue);
}
}
}
.el-menu-item {
&.is-active {
background-color: var(--app-color-blue);
}
}
}
}
\ No newline at end of file
@import './radio-group.scss';
@import './menu.scss';
@import './autocomplete.scss';
@import './input.scss';
@import './select.scss';
......
......@@ -5,107 +5,10 @@
:mode="mode"
:menu-trigger="trigger"
:collapse="isCollapse"
@select="select"
:default-active="defaultActive">
<template v-if="Object.is(mode,'horizontal')">
<template v-for="item0 in menus">
<template v-if="item0.items && Array.isArray(item0.items) && item0.items.length > 0">
<el-submenu v-show="!item0.hidden" :index="item0.name" :popper-class="popperClass" :key="item0.id" :class="item0.textcls">
<template slot='title'>
<template v-if="item0.icon && item0.icon != ''">
<img :src="item0.icon" class='app-menu-icon' />
</template>
<template v-else-if="item0.iconcls && item0.iconcls != ''">
<i :class="[item0.iconcls, 'app-menu-icon']"></i>
</template>
<template v-else>
<i class='app-menu-icon'></i>
</template>
<span class='text' :title="$t('app.menus.appindexview.' + item0.name)">{{$t('app.menus.appindexview.' + item0.name)}}</span>
</template>
<template v-for="item1 in item0.items">
<template v-if="item1.items && Array.isArray(item1.items) && item1.items.length > 0">
<el-submenu v-show="!item1.hidden" :index="item1.name" :popper-class="popperClass" :key="item1.id" :class="item1.textcls">
<template slot='title'>
<template v-if="item1.icon && item1.icon != ''">
<img :src="item1.icon" class='app-menu-icon' />
</template>
<template v-else-if="item1.iconcls && item1.iconcls != ''">
<i :class="[item1.iconcls, 'app-menu-icon']"></i>
</template>
<span class='text' :title="$t('app.menus.appindexview.' + item1.name)">{{$t('app.menus.appindexview.' + item1.name)}}</span>
</template>
<template v-for="item2 in item1.items">
<template v-if="item2.type =='MENUITEM'">
<el-menu-item v-show="!item2.hidden" :index="item2.name" :key="item2.id" :class="item2.textcls">
<template v-if="item2.icon && item2.icon != ''">
<img :src="item2.icon" class='app-menu-icon' />
</template>
<template v-else-if="item2.iconcls && item2.iconcls != ''">
<i :class="[item2.iconcls, 'app-menu-icon']"></i>
</template>
<template slot="title">
<span class="text" :title="$t('app.menus.appindexview.' + item2.name)">{{$t('app.menus.appindexview.' + item2.name)}}</span>
<template v-if="counterdata && counterdata[item2.counterid] && counterdata[item2.counterid] > 0">
<span class="pull-right">
<badge :count="counterdata[item2.counterid]" :overflow-count="9999"></badge>
</span>
</template>
</template>
</el-menu-item>
</template>
</template>
</el-submenu>
</template>
<template v-else>
<template v-if="item1.type =='MENUITEM'">
<el-menu-item v-show="!item1.hidden" :index="item1.name" :key="item1.id" :class="item1.textcls">
<template v-if="item1.icon && item1.icon != ''">
<img :src="item1.icon" class='app-menu-icon' />
</template>
<template v-else-if="item1.iconcls && item1.iconcls != ''">
<i :class="[item1.iconcls, 'app-menu-icon']"></i>
</template>
<template slot="title">
<span class="text" :title="$t('app.menus.appindexview.' + item1.name)">{{$t('app.menus.appindexview.' + item1.name)}} </span>
<template v-if="counterdata && counterdata[item1.counterid] && counterdata[item1.counterid] > 0">
<span class="pull-right">
<badge :count="counterdata[item1.counterid]" :overflow-count="9999"></badge>
</span>
</template>
</template>
</el-menu-item>
</template>
</template>
</template>
</el-submenu>
</template>
<template v-else>
<template v-if="item0.type =='MENUITEM'">
<el-menu-item v-show="!item0.hidden" :index="item0.name" :key="item0.id" :class="item0.textcls">
<template v-if="item0.icon && item0.icon != ''">
<img :src="item0.icon" class='app-menu-icon' />
</template>
<template v-else-if="item0.iconcls && item0.iconcls != ''">
<i :class="[item0.iconcls, 'app-menu-icon']"></i>
</template>
<template v-else>
<i class='app-menu-icon'></i>
</template>
<template slot="title">
<span class="text" :title="$t('app.menus.appindexview.' + item0.name)">{{$t('app.menus.appindexview.' + item0.name)}}</span>
<template v-if="counterdata && counterdata[item0.counterid] && counterdata[item0.counterid] > 0">
<span class="pull-right">
<badge :count="counterdata[item0.counterid]" :overflow-count="9999"></badge>
</span>
</template>
</template>
</el-menu-item>
</template>
</template>
</template>
</template>
<app-menu-item v-else class="el-menu--vertical" :isCollapse="isCollapse" :menus="menus" :ctrlName="'appindexview'" :isFirst="true" :counterdata="counterdata" :popper-class="popperClass"></app-menu-item>
:collapse-transition="false"
:default-active="defaultActive"
@select="select">
<app-menu-item :isCollapse="isCollapse" :menus="menus" ctrlName="appindexview" :isFirst="true" :counterdata="counterdata" :popper-class="popperClass"></app-menu-item>
</el-menu>
</template>
// 基于 @CONTROL/应用菜单/CONTROL-BASE.vue.ftl 生成
......@@ -672,7 +575,7 @@ export default class AppIndexViewBase extends Vue implements ControlInterface {
* @memberof AppIndexViewBase
*/
get popperClass(): string {
return 'app-popper-menu ' + this.selectTheme;
return `app-popper-menu app-popper-menu--${this.mode}`;
}
}
......
// 基于 @CONTROL/应用菜单/CONTROL.scss.ftl 生成
.app-menu {
.app-menu-icon {
width: 20px;
font-size: 14px;
margin-right: 6px;
}
&.app-menu--vertical {
border-right: none;
background-color: #001529;
&.el-menu--collapse {
.el-menu-item,
.el-submenu__title {
overflow: auto;
}
.el-submenu__icon-arrow {
display: none;
}
}
}
}
// this is scss
......@@ -579,7 +579,7 @@ export default class IconMenuBase extends Vue implements ControlInterface {
* @memberof IconMenuBase
*/
get popperClass(): string {
return 'app-popper-menu ' + this.selectTheme;
return `app-popper-menu app-popper-menu--${this.mode}`;
}
}
......
// 基于 @CONTROL/应用菜单/CONTROL.scss.ftl 生成
.app-menu {
.app-menu-icon {
width: 20px;
font-size: 14px;
margin-right: 6px;
}
&.app-menu--vertical {
border-right: none;
background-color: #001529;
&.el-menu--collapse {
.el-menu-item,
.el-submenu__title {
overflow: auto;
}
.el-submenu__icon-arrow {
display: none;
}
}
}
}
// this is scss
......@@ -5,107 +5,10 @@
:mode="mode"
:menu-trigger="trigger"
:collapse="isCollapse"
@select="select"
:default-active="defaultActive">
<template v-if="Object.is(mode,'horizontal')">
<template v-for="item0 in menus">
<template v-if="item0.items && Array.isArray(item0.items) && item0.items.length > 0">
<el-submenu v-show="!item0.hidden" :index="item0.name" :popper-class="popperClass" :key="item0.id" :class="item0.textcls">
<template slot='title'>
<template v-if="item0.icon && item0.icon != ''">
<img :src="item0.icon" class='app-menu-icon' />
</template>
<template v-else-if="item0.iconcls && item0.iconcls != ''">
<i :class="[item0.iconcls, 'app-menu-icon']"></i>
</template>
<template v-else>
<i class='app-menu-icon'></i>
</template>
<span class='text' :title="$t('app.menus.mainmenu.' + item0.name)">{{$t('app.menus.mainmenu.' + item0.name)}}</span>
</template>
<template v-for="item1 in item0.items">
<template v-if="item1.items && Array.isArray(item1.items) && item1.items.length > 0">
<el-submenu v-show="!item1.hidden" :index="item1.name" :popper-class="popperClass" :key="item1.id" :class="item1.textcls">
<template slot='title'>
<template v-if="item1.icon && item1.icon != ''">
<img :src="item1.icon" class='app-menu-icon' />
</template>
<template v-else-if="item1.iconcls && item1.iconcls != ''">
<i :class="[item1.iconcls, 'app-menu-icon']"></i>
</template>
<span class='text' :title="$t('app.menus.mainmenu.' + item1.name)">{{$t('app.menus.mainmenu.' + item1.name)}}</span>
</template>
<template v-for="item2 in item1.items">
<template v-if="item2.type =='MENUITEM'">
<el-menu-item v-show="!item2.hidden" :index="item2.name" :key="item2.id" :class="item2.textcls">
<template v-if="item2.icon && item2.icon != ''">
<img :src="item2.icon" class='app-menu-icon' />
</template>
<template v-else-if="item2.iconcls && item2.iconcls != ''">
<i :class="[item2.iconcls, 'app-menu-icon']"></i>
</template>
<template slot="title">
<span class="text" :title="$t('app.menus.mainmenu.' + item2.name)">{{$t('app.menus.mainmenu.' + item2.name)}}</span>
<template v-if="counterdata && counterdata[item2.counterid] && counterdata[item2.counterid] > 0">
<span class="pull-right">
<badge :count="counterdata[item2.counterid]" :overflow-count="9999"></badge>
</span>
</template>
</template>
</el-menu-item>
</template>
</template>
</el-submenu>
</template>
<template v-else>
<template v-if="item1.type =='MENUITEM'">
<el-menu-item v-show="!item1.hidden" :index="item1.name" :key="item1.id" :class="item1.textcls">
<template v-if="item1.icon && item1.icon != ''">
<img :src="item1.icon" class='app-menu-icon' />
</template>
<template v-else-if="item1.iconcls && item1.iconcls != ''">
<i :class="[item1.iconcls, 'app-menu-icon']"></i>
</template>
<template slot="title">
<span class="text" :title="$t('app.menus.mainmenu.' + item1.name)">{{$t('app.menus.mainmenu.' + item1.name)}} </span>
<template v-if="counterdata && counterdata[item1.counterid] && counterdata[item1.counterid] > 0">
<span class="pull-right">
<badge :count="counterdata[item1.counterid]" :overflow-count="9999"></badge>
</span>
</template>
</template>
</el-menu-item>
</template>
</template>
</template>
</el-submenu>
</template>
<template v-else>
<template v-if="item0.type =='MENUITEM'">
<el-menu-item v-show="!item0.hidden" :index="item0.name" :key="item0.id" :class="item0.textcls">
<template v-if="item0.icon && item0.icon != ''">
<img :src="item0.icon" class='app-menu-icon' />
</template>
<template v-else-if="item0.iconcls && item0.iconcls != ''">
<i :class="[item0.iconcls, 'app-menu-icon']"></i>
</template>
<template v-else>
<i class='app-menu-icon'></i>
</template>
<template slot="title">
<span class="text" :title="$t('app.menus.mainmenu.' + item0.name)">{{$t('app.menus.mainmenu.' + item0.name)}}</span>
<template v-if="counterdata && counterdata[item0.counterid] && counterdata[item0.counterid] > 0">
<span class="pull-right">
<badge :count="counterdata[item0.counterid]" :overflow-count="9999"></badge>
</span>
</template>
</template>
</el-menu-item>
</template>
</template>
</template>
</template>
<app-menu-item v-else class="el-menu--vertical" :isCollapse="isCollapse" :menus="menus" :ctrlName="'mainmenu'" :isFirst="true" :counterdata="counterdata" :popper-class="popperClass"></app-menu-item>
:collapse-transition="false"
:default-active="defaultActive"
@select="select">
<app-menu-item :isCollapse="isCollapse" :menus="menus" ctrlName="mainmenu" :isFirst="true" :counterdata="counterdata" :popper-class="popperClass"></app-menu-item>
</el-menu>
</template>
// 基于 @CONTROL/应用菜单/CONTROL-BASE.vue.ftl 生成
......@@ -4991,7 +4894,7 @@ export default class MainMenuBase extends Vue implements ControlInterface {
* @memberof MainMenuBase
*/
get popperClass(): string {
return 'app-popper-menu ' + this.selectTheme;
return `app-popper-menu app-popper-menu--${this.mode}`;
}
}
......
// 基于 @CONTROL/应用菜单/CONTROL.scss.ftl 生成
.app-menu {
.app-menu-icon {
width: 20px;
font-size: 14px;
margin-right: 6px;
}
&.app-menu--vertical {
border-right: none;
background-color: #001529;
&.el-menu--collapse {
.el-menu-item,
.el-submenu__title {
overflow: auto;
}
.el-submenu__icon-arrow {
display: none;
}
}
}
}
// this is scss
......@@ -5,107 +5,10 @@
:mode="mode"
:menu-trigger="trigger"
:collapse="isCollapse"
@select="select"
:default-active="defaultActive">
<template v-if="Object.is(mode,'horizontal')">
<template v-for="item0 in menus">
<template v-if="item0.items && Array.isArray(item0.items) && item0.items.length > 0">
<el-submenu v-show="!item0.hidden" :index="item0.name" :popper-class="popperClass" :key="item0.id" :class="item0.textcls">
<template slot='title'>
<template v-if="item0.icon && item0.icon != ''">
<img :src="item0.icon" class='app-menu-icon' />
</template>
<template v-else-if="item0.iconcls && item0.iconcls != ''">
<i :class="[item0.iconcls, 'app-menu-icon']"></i>
</template>
<template v-else>
<i class='app-menu-icon'></i>
</template>
<span class='text' :title="$t('app.menus.usr1207222915menu.' + item0.name)">{{$t('app.menus.usr1207222915menu.' + item0.name)}}</span>
</template>
<template v-for="item1 in item0.items">
<template v-if="item1.items && Array.isArray(item1.items) && item1.items.length > 0">
<el-submenu v-show="!item1.hidden" :index="item1.name" :popper-class="popperClass" :key="item1.id" :class="item1.textcls">
<template slot='title'>
<template v-if="item1.icon && item1.icon != ''">
<img :src="item1.icon" class='app-menu-icon' />
</template>
<template v-else-if="item1.iconcls && item1.iconcls != ''">
<i :class="[item1.iconcls, 'app-menu-icon']"></i>
</template>
<span class='text' :title="$t('app.menus.usr1207222915menu.' + item1.name)">{{$t('app.menus.usr1207222915menu.' + item1.name)}}</span>
</template>
<template v-for="item2 in item1.items">
<template v-if="item2.type =='MENUITEM'">
<el-menu-item v-show="!item2.hidden" :index="item2.name" :key="item2.id" :class="item2.textcls">
<template v-if="item2.icon && item2.icon != ''">
<img :src="item2.icon" class='app-menu-icon' />
</template>
<template v-else-if="item2.iconcls && item2.iconcls != ''">
<i :class="[item2.iconcls, 'app-menu-icon']"></i>
</template>
<template slot="title">
<span class="text" :title="$t('app.menus.usr1207222915menu.' + item2.name)">{{$t('app.menus.usr1207222915menu.' + item2.name)}}</span>
<template v-if="counterdata && counterdata[item2.counterid] && counterdata[item2.counterid] > 0">
<span class="pull-right">
<badge :count="counterdata[item2.counterid]" :overflow-count="9999"></badge>
</span>
</template>
</template>
</el-menu-item>
</template>
</template>
</el-submenu>
</template>
<template v-else>
<template v-if="item1.type =='MENUITEM'">
<el-menu-item v-show="!item1.hidden" :index="item1.name" :key="item1.id" :class="item1.textcls">
<template v-if="item1.icon && item1.icon != ''">
<img :src="item1.icon" class='app-menu-icon' />
</template>
<template v-else-if="item1.iconcls && item1.iconcls != ''">
<i :class="[item1.iconcls, 'app-menu-icon']"></i>
</template>
<template slot="title">
<span class="text" :title="$t('app.menus.usr1207222915menu.' + item1.name)">{{$t('app.menus.usr1207222915menu.' + item1.name)}} </span>
<template v-if="counterdata && counterdata[item1.counterid] && counterdata[item1.counterid] > 0">
<span class="pull-right">
<badge :count="counterdata[item1.counterid]" :overflow-count="9999"></badge>
</span>
</template>
</template>
</el-menu-item>
</template>
</template>
</template>
</el-submenu>
</template>
<template v-else>
<template v-if="item0.type =='MENUITEM'">
<el-menu-item v-show="!item0.hidden" :index="item0.name" :key="item0.id" :class="item0.textcls">
<template v-if="item0.icon && item0.icon != ''">
<img :src="item0.icon" class='app-menu-icon' />
</template>
<template v-else-if="item0.iconcls && item0.iconcls != ''">
<i :class="[item0.iconcls, 'app-menu-icon']"></i>
</template>
<template v-else>
<i class='app-menu-icon'></i>
</template>
<template slot="title">
<span class="text" :title="$t('app.menus.usr1207222915menu.' + item0.name)">{{$t('app.menus.usr1207222915menu.' + item0.name)}}</span>
<template v-if="counterdata && counterdata[item0.counterid] && counterdata[item0.counterid] > 0">
<span class="pull-right">
<badge :count="counterdata[item0.counterid]" :overflow-count="9999"></badge>
</span>
</template>
</template>
</el-menu-item>
</template>
</template>
</template>
</template>
<app-menu-item v-else class="el-menu--vertical" :isCollapse="isCollapse" :menus="menus" :ctrlName="'usr1207222915menu'" :isFirst="true" :counterdata="counterdata" :popper-class="popperClass"></app-menu-item>
:collapse-transition="false"
:default-active="defaultActive"
@select="select">
<app-menu-item :isCollapse="isCollapse" :menus="menus" ctrlName="usr1207222915menu" :isFirst="true" :counterdata="counterdata" :popper-class="popperClass"></app-menu-item>
</el-menu>
</template>
// 基于 @CONTROL/应用菜单/CONTROL-BASE.vue.ftl 生成
......@@ -724,7 +627,7 @@ export default class Usr1207222915MenuBase extends Vue implements ControlInterfa
* @memberof Usr1207222915MenuBase
*/
get popperClass(): string {
return 'app-popper-menu ' + this.selectTheme;
return `app-popper-menu app-popper-menu--${this.mode}`;
}
}
......
// 基于 @CONTROL/应用菜单/CONTROL.scss.ftl 生成
.app-menu {
.app-menu-icon {
width: 20px;
font-size: 14px;
margin-right: 6px;
}
&.app-menu--vertical {
border-right: none;
background-color: #001529;
&.el-menu--collapse {
.el-menu-item,
.el-submenu__title {
overflow: auto;
}
.el-submenu__icon-arrow {
display: none;
}
}
}
}
// this is scss
......@@ -541,7 +541,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public async load(data: any) {
if(!this.fetchAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKMEditView9' + (this.$t('app.multiEditView.notConfig.fetchAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr2MEditView9_layout' + (this.$t('app.multiEditView.notConfig.fetchAction') as string) });
return;
}
let arg: any = {};
......@@ -592,7 +592,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public handleAdd(){
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKMEditView9' + (this.$t('app.multiEditView.notConfig.loaddraftAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr2MEditView9_layout' + (this.$t('app.multiEditView.notConfig.loaddraftAction') as string) });
return;
}
const promice: Promise<any> = this.service.loadDraft(this.loaddraftAction,JSON.parse(JSON.stringify(this.context)),{viewparams:this.viewparams}, this.showBusyIndicator);
......
......@@ -11,7 +11,7 @@ export default class Usr2Model {
* 获取数据项集合
*
* @returns {any[]}
* @memberof Usr2Dataviewexpbar_dataviewMode
* @memberof Usr2DataViewMode
*/
public getDataItems(): any[] {
return [
......@@ -40,6 +40,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',
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册