提交 5d89738b 编写于 作者: ibizdev's avatar ibizdev

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

上级 973a1fa1
...@@ -138,8 +138,8 @@ import AppFieldImageDynamic from './components/layout-element/media/app-field-im ...@@ -138,8 +138,8 @@ import AppFieldImageDynamic from './components/layout-element/media/app-field-im
import AppTodoList from './components/app-todo-list/app-todo-list.vue'; import AppTodoList from './components/app-todo-list/app-todo-list.vue';
import ExtendActionTimeline from './components/extend-action-timeline/extend-action-timeline.vue'; import ExtendActionTimeline from './components/extend-action-timeline/extend-action-timeline.vue';
// 布局组件 // 布局组件
import AppIndexViewLayoutLeft from './components/view-layout/index-view-layout/index-view-layout-left/index-view-layout-left.vue'; import AppIndexViewLayoutLeft from './layout/index-view-layout-left/index-view-layout-left.vue';
import AppIndexViewLayoutTop from './components/view-layout/index-view-layout/index-view-layout-top/index-view-layout-top.vue'; import AppIndexViewLayoutTop from './layout/index-view-layout-top/index-view-layout-top.vue';
// 全局挂载UI实体服务注册中心 // 全局挂载UI实体服务注册中心
window['uiServiceRegister'] = uiServiceRegister; window['uiServiceRegister'] = uiServiceRegister;
// 全局挂载实体权限服务注册中心 // 全局挂载实体权限服务注册中心
......
.index-view-layout-left {
.header-right {
display: flex;
align-items: center;
justify-content: space-between;
}
.index_sider {
background-color:#FFF;
}
}
\ No newline at end of file
<template>
<layout class="index_view index-view-layout-left" id="movebox">
<sider class="index_sider" :width="collapseChange ? 64 : 200" hide-trigger id="left_move">
<div class="sider-top">
<slot name="siderTop" />
</div>
<slot name="siderContent" />
</sider>
<div v-show="!collapseChange" id="move_axis"></div>
<layout id="right_move">
<header class="index_header">
<div class="header-left">
<slot name="headerLeft" />
</div>
<div class="header-center">
<slot name="headerCenter" />
</div>
<div class="header-right">
<slot name="headerRight" />
</div>
</header>
<content :class="{ 'index_content': true, 'index_tab_content': Object.is(navModel,'tab') ? true : false, 'index_route_content': Object.is(navModel,'route') ? true : false }">
<slot name="tabPageExp" />
<slot name="navPos" />
</content>
</layout>
</layout>
</template>
<script lang="ts">
import { Vue, Component, Watch, Prop } from 'vue-property-decorator';
@Component({})
export default class AppIndexViewLayoutLeft extends Vue {
/**
* 导航模式
*
* @memberof AppIndexViewLayoutLeft
*/
@Prop({ default: 'tab' })
public navModel!: string;
/**
* 是否折叠
*
* @memberof AppIndexViewLayoutLeft
*/
@Prop({ default: false })
public collapseChange!: boolean;
}
</script>
<style lang="scss">
@import "./index-view-layout-left.scss";
</style>
.index-view-layout--top {
.index-view-layout-header {
height: 64px;
display: flex;
justify-content: space-between;
align-items: center;
background-color: var(--app-color-black);
color: var(--app-color-white);
.header__left {
font-size: 21px;
font-weight: 700;
margin-left: 50px;
.app-icon {
width: 36px;
height: 37px;
margin-right: 6px;
}
}
.header__right {
display: flex;
align-items: center;
}
}
.index-view-layout-content {
height: calc(100% - 64px);
overflow: auto;
padding: 20px 38px 0 38px;
background-color: var(--app-color-gray-400);
}
}
\ No newline at end of file
<template>
<layout class="index-view-layout index-view-layout--top">
<header class="index-view-layout-header">
<div class="header__left">
<slot name="headerLeft" />
</div>
<div class="header__center">
<slot name="headerCenter" />
</div>
<div class="header__right">
<slot name="headerRight" />
</div>
</header>
<content class="index-view-layout-content">
<slot name="navPos" />
</content>
<footer class="layout-footer-center">
<slot name="footer"></slot>
</footer>
</layout>
</template>
<script lang="ts">
import { Vue, Component } from 'vue-property-decorator';
@Component({})
export default class AppIndexViewLayoutTop extends Vue {
}
</script>
<style lang="scss">
@import "./index-view-layout-top.scss";
</style>
...@@ -67,23 +67,23 @@ ...@@ -67,23 +67,23 @@
// 安永灰1 // 安永灰1
--app-color-gray-100: #747480; --app-color-gray-100: #747480;
// 安永灰2 // 安永灰2
--app-color-gray-gray-200: #C4C4CD; --app-color-gray-200: #C4C4CD;
// 安永灰2 50% // 安永灰2 50%
--app-color-gray-gray-250: #E1E1E6; --app-color-gray-250: #E1E1E6;
// 安永灰4 // 安永灰4
--app-color-gray-gray-400: #F6F6FA; --app-color-gray-400: #F6F6FA;
// 安永白 // 安永白
--app-color-gray-white: #FFFFFF; --app-color-white: #FFFFFF;
// 安永蓝 // 安永蓝
--app-color-gray-blue: #188CE5; --app-color-blue: #188CE5;
// 安永黄 // 安永黄
--app-color-gray-yellow: #FFE600; --app-color-yellow: #FFE600;
// 安永红 // 安永红
--app-color-gray-red: #B9251C; --app-color-red: #B9251C;
// 安永橙 // 安永橙
--app-color-gray-orange: #FF810A; --app-color-orange: #FF810A;
// 安永绿 // 安永绿
--app-color-gray-green: #2DB757; --app-color-green: #2DB757;
// 安永蓝绿 // 安永蓝绿
--app-color-gray-blue-green: #27ACAA; --app-color-blue-green: #27ACAA;
} }
<template> <template>
<div class="app-app-menu">
<el-menu <el-menu
class="app-menu" class="app-menu"
:default-openeds="defaultOpeneds" :default-openeds="defaultOpeneds"
:mode="mode" background-color="#FFFFFF"
:menu-trigger="trigger" text-color="#747480"
:collapse="isCollapse" active-text-color="#188CE5"
@select="select" :mode="mode"
:default-active="defaultActive"> :menu-trigger="trigger"
:collapse="isCollapse"
<template v-if="Object.is(mode,'horizontal')"> @select="select"
:default-active="defaultActive">
<template v-if="Object.is(mode,'horizontal')">
<template v-for="item0 in menus"> <template v-for="item0 in menus">
<template v-if="item0.items && Array.isArray(item0.items) && item0.items.length > 0"> <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"> <el-submenu v-show="!item0.hidden" :index="item0.name" :popper-class="popperClass" :key="item0.id" :class="item0.textcls">
...@@ -108,9 +109,7 @@ ...@@ -108,9 +109,7 @@
</template> </template>
</template> </template>
<app-menu-item v-else :isCollapse="isCollapse" :menus="menus" :ctrlName="'appindexview'" :isFirst="true" :counterdata="counterdata" :popper-class="popperClass"></app-menu-item> <app-menu-item v-else :isCollapse="isCollapse" :menus="menus" :ctrlName="'appindexview'" :isFirst="true" :counterdata="counterdata" :popper-class="popperClass"></app-menu-item>
</el-menu> </el-menu>
</div>
</template> </template>
// 基于 @CONTROL/应用菜单/CONTROL-BASE.vue.ftl 生成 // 基于 @CONTROL/应用菜单/CONTROL-BASE.vue.ftl 生成
<script lang='tsx'> <script lang='tsx'>
......
// 基于 @CONTROL/应用菜单/CONTROL.scss.ftl 生成 // 基于 @CONTROL/应用菜单/CONTROL.scss.ftl 生成
/*** BRGIN:菜单样式 ***/ .app-menu {
.app-app-menu { .app-menu-icon {
overflow-y: auto; width: 20px;
overflow-x: hidden; font-size: 14px;
height: calc(100% - 58px); margin-right: 6px;
.ivu-divider{
background-color: #b3b3b3;
height: 2px;
} }
> .el-menu { &.el-menu--horizontal {
border-right: 0;
.el-menu-item { .el-menu-item {
white-space: nowrap; height: 64px;
text-overflow: ellipsis; &.is-active {
overflow: hidden; border-bottom: 4px solid var(--app-color-yellow);
word-break: break-all; border-bottom-color: var(--app-color-yellow) !important;
.ivu-badge {
.ivu-badge-count {
box-shadow: 0 0 0 0px #fff;
}
} }
} }
.el-submenu__title i, .el-menu-item i {
font-size: 12px;
width: 18px;
}
.el-submenu__title .app-menu-icon,.el-menu-item .app-menu-icon{
width:20px;
font-size: 14px;
}
.el-submenu__title .text {
font-size: 16px;
}
.el-submenu__title .app-menu-circle,.el-menu-item .app-menu-circle {
display: inline-block;
border-radius: 50%;
width: 20px;
height: 20px;
line-height: 36px;
vertical-align:middle;
border: 1px solid #fff;
text-align: center;
font: 12px Arial, sans-serif;
}
.el-submenu__title, .el-menu-item {
height: 50px;
font-size: 14px;
line-height: 50px;
border-left: 4px !important;
}
.el-menu-item .el-tooltip {
padding-left: 12px !important;
}
.isCollpase .el-submenu__title{
padding-left: 12px !important;
}
.isFirst > .text {
font-size: 16px !important;
}
.el-menu-item, .el-submenu, .el-menu {
border-top: 1px solid #fff;
}
> .el-menu-item, > .el-submenu > .el-submenu__title {
height: 56px;
line-height: 56px;
padding-left: 16px !important;
}
.app-menu-icon {
margin: 4px;
text-align: center;
}
> .el-submenu {
> .el-menu {
> .el-menu-item, > .el-submenu > .el-submenu__title {
padding-left: 44px !important;
}
> .el-submenu {
> .el-menu {
> .el-menu-item, > .el-submenu > .el-submenu__title {
padding-left: 68px !important;
}
}
}
}
}
.active-icon {
font-size: 40px !important;
position: absolute;
right: 0;
line-height: 42px;
color: #fff !important;
display: none;
width: 24px !important;
overflow: hidden;
}
}
.el-menu--horizontal{
display: flex;
width: calc(100vw - 1100px);
height: 65px;
flex-wrap: nowrap;
overflow-x:scroll;
padding-top: 3px;
.el-menu-item{
overflow: visible;
}
.el-submenu{
.el-submenu__title{
padding-right: 0px !important;
padding-left: 0px !important;
}
}
}
.ivu-divider-horizontal {
width: 100%;
min-width: 100%;
margin: 4px auto;
margin-bottom: 1px;
}
}
.app-popper-menu {
.el-menu-item, .el-submenu__title {
height: 36px;
font-size: 16px;
line-height: 36px;
}
> .el-menu-item, > .el-submenu > .el-submenu__title {
height: 40px;
line-height: 40px;
}
.el-menu-item {
.ivu-badge {
.ivu-badge-count {
box-shadow: 0 0 0 0px #fff;
}
}
> span{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.ivu-divider-horizontal {
width: 100%;
min-width: 100%;
margin: 4px auto;
margin-bottom: 1px;
} }
} }
......
<template> <template>
<div class="app-app-menu"> <app-icon-menus :menus = "menus" :ctrlName = "'iconmenu'" @menuClick="select"></app-icon-menus>
<app-icon-menus :menus = "menus" :ctrlName = "'iconmenu'" @menuClick="select"></app-icon-menus>
</div>
</template> </template>
// 基于 @CONTROL/应用菜单/CONTROL-BASE.vue.ftl 生成 // 基于 @CONTROL/应用菜单/CONTROL-BASE.vue.ftl 生成
<script lang='tsx'> <script lang='tsx'>
......
// 基于 @CONTROL/应用菜单/CONTROL.scss.ftl 生成 // 基于 @CONTROL/应用菜单/CONTROL.scss.ftl 生成
/*** BRGIN:菜单样式 ***/ .app-menu {
.app-app-menu { .app-menu-icon {
overflow-y: auto; width: 20px;
overflow-x: hidden; font-size: 14px;
height: calc(100% - 58px); margin-right: 6px;
.ivu-divider{
background-color: #b3b3b3;
height: 2px;
} }
> .el-menu { &.el-menu--horizontal {
border-right: 0;
.el-menu-item { .el-menu-item {
white-space: nowrap; height: 64px;
text-overflow: ellipsis; &.is-active {
overflow: hidden; border-bottom: 4px solid var(--app-color-yellow);
word-break: break-all; border-bottom-color: var(--app-color-yellow) !important;
.ivu-badge {
.ivu-badge-count {
box-shadow: 0 0 0 0px #fff;
}
} }
} }
.el-submenu__title i, .el-menu-item i {
font-size: 12px;
width: 18px;
}
.el-submenu__title .app-menu-icon,.el-menu-item .app-menu-icon{
width:20px;
font-size: 14px;
}
.el-submenu__title .text {
font-size: 16px;
}
.el-submenu__title .app-menu-circle,.el-menu-item .app-menu-circle {
display: inline-block;
border-radius: 50%;
width: 20px;
height: 20px;
line-height: 36px;
vertical-align:middle;
border: 1px solid #fff;
text-align: center;
font: 12px Arial, sans-serif;
}
.el-submenu__title, .el-menu-item {
height: 50px;
font-size: 14px;
line-height: 50px;
border-left: 4px !important;
}
.el-menu-item .el-tooltip {
padding-left: 12px !important;
}
.isCollpase .el-submenu__title{
padding-left: 12px !important;
}
.isFirst > .text {
font-size: 16px !important;
}
.el-menu-item, .el-submenu, .el-menu {
border-top: 1px solid #fff;
}
> .el-menu-item, > .el-submenu > .el-submenu__title {
height: 56px;
line-height: 56px;
padding-left: 16px !important;
}
.app-menu-icon {
margin: 4px;
text-align: center;
}
> .el-submenu {
> .el-menu {
> .el-menu-item, > .el-submenu > .el-submenu__title {
padding-left: 44px !important;
}
> .el-submenu {
> .el-menu {
> .el-menu-item, > .el-submenu > .el-submenu__title {
padding-left: 68px !important;
}
}
}
}
}
.active-icon {
font-size: 40px !important;
position: absolute;
right: 0;
line-height: 42px;
color: #fff !important;
display: none;
width: 24px !important;
overflow: hidden;
}
}
.el-menu--horizontal{
display: flex;
width: calc(100vw - 1100px);
height: 65px;
flex-wrap: nowrap;
overflow-x:scroll;
padding-top: 3px;
.el-menu-item{
overflow: visible;
}
.el-submenu{
.el-submenu__title{
padding-right: 0px !important;
padding-left: 0px !important;
}
}
}
.ivu-divider-horizontal {
width: 100%;
min-width: 100%;
margin: 4px auto;
margin-bottom: 1px;
}
}
.app-popper-menu {
.el-menu-item, .el-submenu__title {
height: 36px;
font-size: 16px;
line-height: 36px;
}
> .el-menu-item, > .el-submenu > .el-submenu__title {
height: 40px;
line-height: 40px;
}
.el-menu-item {
.ivu-badge {
.ivu-badge-count {
box-shadow: 0 0 0 0px #fff;
}
}
> span{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.ivu-divider-horizontal {
width: 100%;
min-width: 100%;
margin: 4px auto;
margin-bottom: 1px;
} }
} }
......
<template> <template>
<div class="app-app-menu">
<el-menu <el-menu
class="app-menu" class="app-menu"
background-color="#2E2E38"
:mode="mode" text-color="#FFFFFF"
:menu-trigger="trigger" active-text-color="#FFFFFF"
:collapse="isCollapse" :mode="mode"
@select="select" :menu-trigger="trigger"
:default-active="defaultActive"> :collapse="isCollapse"
@select="select"
<template v-if="Object.is(mode,'horizontal')"> :default-active="defaultActive">
<template v-if="Object.is(mode,'horizontal')">
<template v-for="item0 in menus"> <template v-for="item0 in menus">
<template v-if="item0.items && Array.isArray(item0.items) && item0.items.length > 0"> <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"> <el-submenu v-show="!item0.hidden" :index="item0.name" :popper-class="popperClass" :key="item0.id" :class="item0.textcls">
...@@ -108,9 +108,7 @@ ...@@ -108,9 +108,7 @@
</template> </template>
</template> </template>
<app-menu-item v-else :isCollapse="isCollapse" :menus="menus" :ctrlName="'mainmenu'" :isFirst="true" :counterdata="counterdata" :popper-class="popperClass"></app-menu-item> <app-menu-item v-else :isCollapse="isCollapse" :menus="menus" :ctrlName="'mainmenu'" :isFirst="true" :counterdata="counterdata" :popper-class="popperClass"></app-menu-item>
</el-menu> </el-menu>
</div>
</template> </template>
// 基于 @CONTROL/应用菜单/CONTROL-BASE.vue.ftl 生成 // 基于 @CONTROL/应用菜单/CONTROL-BASE.vue.ftl 生成
<script lang='tsx'> <script lang='tsx'>
......
// 基于 @CONTROL/应用菜单/CONTROL.scss.ftl 生成 // 基于 @CONTROL/应用菜单/CONTROL.scss.ftl 生成
/*** BRGIN:菜单样式 ***/ .app-menu {
.app-app-menu { .app-menu-icon {
overflow-y: auto; width: 20px;
overflow-x: hidden; font-size: 14px;
height: calc(100% - 58px); margin-right: 6px;
.ivu-divider{
background-color: #b3b3b3;
height: 2px;
} }
> .el-menu { &.el-menu--horizontal {
border-right: 0;
.el-menu-item { .el-menu-item {
white-space: nowrap; height: 64px;
text-overflow: ellipsis; &.is-active {
overflow: hidden; border-bottom: 4px solid var(--app-color-yellow);
word-break: break-all; border-bottom-color: var(--app-color-yellow) !important;
.ivu-badge {
.ivu-badge-count {
box-shadow: 0 0 0 0px #fff;
}
} }
} }
.el-submenu__title i, .el-menu-item i {
font-size: 12px;
width: 18px;
}
.el-submenu__title .app-menu-icon,.el-menu-item .app-menu-icon{
width:20px;
font-size: 14px;
}
.el-submenu__title .text {
font-size: 16px;
}
.el-submenu__title .app-menu-circle,.el-menu-item .app-menu-circle {
display: inline-block;
border-radius: 50%;
width: 20px;
height: 20px;
line-height: 36px;
vertical-align:middle;
border: 1px solid #fff;
text-align: center;
font: 12px Arial, sans-serif;
}
.el-submenu__title, .el-menu-item {
height: 50px;
font-size: 14px;
line-height: 50px;
border-left: 4px !important;
}
.el-menu-item .el-tooltip {
padding-left: 12px !important;
}
.isCollpase .el-submenu__title{
padding-left: 12px !important;
}
.isFirst > .text {
font-size: 16px !important;
}
.el-menu-item, .el-submenu, .el-menu {
border-top: 1px solid #fff;
}
> .el-menu-item, > .el-submenu > .el-submenu__title {
height: 56px;
line-height: 56px;
padding-left: 16px !important;
}
.app-menu-icon {
margin: 4px;
text-align: center;
}
> .el-submenu {
> .el-menu {
> .el-menu-item, > .el-submenu > .el-submenu__title {
padding-left: 44px !important;
}
> .el-submenu {
> .el-menu {
> .el-menu-item, > .el-submenu > .el-submenu__title {
padding-left: 68px !important;
}
}
}
}
}
.active-icon {
font-size: 40px !important;
position: absolute;
right: 0;
line-height: 42px;
color: #fff !important;
display: none;
width: 24px !important;
overflow: hidden;
}
}
.el-menu--horizontal{
display: flex;
width: calc(100vw - 1100px);
height: 65px;
flex-wrap: nowrap;
overflow-x:scroll;
padding-top: 3px;
.el-menu-item{
overflow: visible;
}
.el-submenu{
.el-submenu__title{
padding-right: 0px !important;
padding-left: 0px !important;
}
}
}
.ivu-divider-horizontal {
width: 100%;
min-width: 100%;
margin: 4px auto;
margin-bottom: 1px;
}
}
.app-popper-menu {
.el-menu-item, .el-submenu__title {
height: 36px;
font-size: 16px;
line-height: 36px;
}
> .el-menu-item, > .el-submenu > .el-submenu__title {
height: 40px;
line-height: 40px;
}
.el-menu-item {
.ivu-badge {
.ivu-badge-count {
box-shadow: 0 0 0 0px #fff;
}
}
> span{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.ivu-divider-horizontal {
width: 100%;
min-width: 100%;
margin: 4px auto;
margin-bottom: 1px;
} }
} }
......
<template> <template>
<div class="app-app-menu">
<el-menu <el-menu
class="app-menu" class="app-menu"
:default-openeds="defaultOpeneds" :default-openeds="defaultOpeneds"
:mode="mode" background-color="#FFFFFF"
:menu-trigger="trigger" text-color="#747480"
:collapse="isCollapse" active-text-color="#188CE5"
@select="select" :mode="mode"
:default-active="defaultActive"> :menu-trigger="trigger"
:collapse="isCollapse"
<template v-if="Object.is(mode,'horizontal')"> @select="select"
:default-active="defaultActive">
<template v-if="Object.is(mode,'horizontal')">
<template v-for="item0 in menus"> <template v-for="item0 in menus">
<template v-if="item0.items && Array.isArray(item0.items) && item0.items.length > 0"> <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"> <el-submenu v-show="!item0.hidden" :index="item0.name" :popper-class="popperClass" :key="item0.id" :class="item0.textcls">
...@@ -108,9 +109,7 @@ ...@@ -108,9 +109,7 @@
</template> </template>
</template> </template>
<app-menu-item v-else :isCollapse="isCollapse" :menus="menus" :ctrlName="'usr1207222915menu'" :isFirst="true" :counterdata="counterdata" :popper-class="popperClass"></app-menu-item> <app-menu-item v-else :isCollapse="isCollapse" :menus="menus" :ctrlName="'usr1207222915menu'" :isFirst="true" :counterdata="counterdata" :popper-class="popperClass"></app-menu-item>
</el-menu> </el-menu>
</div>
</template> </template>
// 基于 @CONTROL/应用菜单/CONTROL-BASE.vue.ftl 生成 // 基于 @CONTROL/应用菜单/CONTROL-BASE.vue.ftl 生成
<script lang='tsx'> <script lang='tsx'>
......
// 基于 @CONTROL/应用菜单/CONTROL.scss.ftl 生成 // 基于 @CONTROL/应用菜单/CONTROL.scss.ftl 生成
/*** BRGIN:菜单样式 ***/ .app-menu {
.app-app-menu { .app-menu-icon {
overflow-y: auto; width: 20px;
overflow-x: hidden; font-size: 14px;
height: calc(100% - 58px); margin-right: 6px;
.ivu-divider{
background-color: #b3b3b3;
height: 2px;
} }
> .el-menu { &.el-menu--horizontal {
border-right: 0;
.el-menu-item { .el-menu-item {
white-space: nowrap; height: 64px;
text-overflow: ellipsis; &.is-active {
overflow: hidden; border-bottom: 4px solid var(--app-color-yellow);
word-break: break-all; border-bottom-color: var(--app-color-yellow) !important;
.ivu-badge {
.ivu-badge-count {
box-shadow: 0 0 0 0px #fff;
}
} }
} }
.el-submenu__title i, .el-menu-item i {
font-size: 12px;
width: 18px;
}
.el-submenu__title .app-menu-icon,.el-menu-item .app-menu-icon{
width:20px;
font-size: 14px;
}
.el-submenu__title .text {
font-size: 16px;
}
.el-submenu__title .app-menu-circle,.el-menu-item .app-menu-circle {
display: inline-block;
border-radius: 50%;
width: 20px;
height: 20px;
line-height: 36px;
vertical-align:middle;
border: 1px solid #fff;
text-align: center;
font: 12px Arial, sans-serif;
}
.el-submenu__title, .el-menu-item {
height: 50px;
font-size: 14px;
line-height: 50px;
border-left: 4px !important;
}
.el-menu-item .el-tooltip {
padding-left: 12px !important;
}
.isCollpase .el-submenu__title{
padding-left: 12px !important;
}
.isFirst > .text {
font-size: 16px !important;
}
.el-menu-item, .el-submenu, .el-menu {
border-top: 1px solid #fff;
}
> .el-menu-item, > .el-submenu > .el-submenu__title {
height: 56px;
line-height: 56px;
padding-left: 16px !important;
}
.app-menu-icon {
margin: 4px;
text-align: center;
}
> .el-submenu {
> .el-menu {
> .el-menu-item, > .el-submenu > .el-submenu__title {
padding-left: 44px !important;
}
> .el-submenu {
> .el-menu {
> .el-menu-item, > .el-submenu > .el-submenu__title {
padding-left: 68px !important;
}
}
}
}
}
.active-icon {
font-size: 40px !important;
position: absolute;
right: 0;
line-height: 42px;
color: #fff !important;
display: none;
width: 24px !important;
overflow: hidden;
}
}
.el-menu--horizontal{
display: flex;
width: calc(100vw - 1100px);
height: 65px;
flex-wrap: nowrap;
overflow-x:scroll;
padding-top: 3px;
.el-menu-item{
overflow: visible;
}
.el-submenu{
.el-submenu__title{
padding-right: 0px !important;
padding-left: 0px !important;
}
}
}
.ivu-divider-horizontal {
width: 100%;
min-width: 100%;
margin: 4px auto;
margin-bottom: 1px;
}
}
.app-popper-menu {
.el-menu-item, .el-submenu__title {
height: 36px;
font-size: 16px;
line-height: 36px;
}
> .el-menu-item, > .el-submenu > .el-submenu__title {
height: 40px;
line-height: 40px;
}
.el-menu-item {
.ivu-badge {
.ivu-badge-count {
box-shadow: 0 0 0 0px #fff;
}
}
> span{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.ivu-divider-horizontal {
width: 100%;
min-width: 100%;
margin: 4px auto;
margin-bottom: 1px;
} }
} }
......
...@@ -26,11 +26,11 @@ ...@@ -26,11 +26,11 @@
<span class="quick-toolbar"> <span class="quick-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="usr4listview_layoutlist_quicktoolbarModels.deuiaction1.visabled" :disabled="usr4listview_layoutlist_quicktoolbarModels.deuiaction1.disabled" class='' v-button-loading:i-button @click="list_quicktoolbar_click({ tag: 'deuiaction1' }, $event)"> <i-button v-show="listviewlist_quicktoolbarModels.deuiaction1.visabled" :disabled="listviewlist_quicktoolbarModels.deuiaction1.disabled" class='' v-button-loading:i-button @click="list_quicktoolbar_click({ tag: 'deuiaction1' }, $event)">
<i class='fa fa-file-text-o'></i> <i class='fa fa-file-text-o'></i>
<span class='caption'>{{$t('entities.ibizbook.usr4listview_layoutlist_quicktoolbar_toolbar.deuiaction1.caption')}}</span> <span class='caption'>{{$t('entities.ibizbook.listviewlist_quicktoolbar_toolbar.deuiaction1.caption')}}</span>
</i-button> </i-button>
<div slot='content'>{{$t('entities.ibizbook.usr4listview_layoutlist_quicktoolbar_toolbar.deuiaction1.tip')}}</div> <div slot='content'>{{$t('entities.ibizbook.listviewlist_quicktoolbar_toolbar.deuiaction1.tip')}}</div>
</tooltip> </tooltip>
</div> </div>
</span> </span>
...@@ -41,18 +41,18 @@ ...@@ -41,18 +41,18 @@
<span class="batch-toolbar"> <span 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="usr4listview_layoutlist_batchtoolbarModels.deuiaction1.visabled" :disabled="usr4listview_layoutlist_batchtoolbarModels.deuiaction1.disabled" class='' v-button-loading:i-button @click="list_batchtoolbar_click({ tag: 'deuiaction1' }, $event)"> <i-button v-show="listviewlist_batchtoolbarModels.deuiaction1.visabled" :disabled="listviewlist_batchtoolbarModels.deuiaction1.disabled" class='' v-button-loading:i-button @click="list_batchtoolbar_click({ tag: 'deuiaction1' }, $event)">
<i class='fa fa-edit'></i> <i class='fa fa-edit'></i>
<span class='caption'>{{$t('entities.ibizbook.usr4listview_layoutlist_batchtoolbar_toolbar.deuiaction1.caption')}}</span> <span class='caption'>{{$t('entities.ibizbook.listviewlist_batchtoolbar_toolbar.deuiaction1.caption')}}</span>
</i-button> </i-button>
<div slot='content'>{{$t('entities.ibizbook.usr4listview_layoutlist_batchtoolbar_toolbar.deuiaction1.tip')}}</div> <div slot='content'>{{$t('entities.ibizbook.listviewlist_batchtoolbar_toolbar.deuiaction1.tip')}}</div>
</tooltip> </tooltip>
<tooltip :transfer="true" :max-width="600"> <tooltip :transfer="true" :max-width="600">
<i-button v-show="usr4listview_layoutlist_batchtoolbarModels.deuiaction2.visabled" :disabled="usr4listview_layoutlist_batchtoolbarModels.deuiaction2.disabled" class='' v-button-loading:i-button @click="list_batchtoolbar_click({ tag: 'deuiaction2' }, $event)"> <i-button v-show="listviewlist_batchtoolbarModels.deuiaction2.visabled" :disabled="listviewlist_batchtoolbarModels.deuiaction2.disabled" class='' v-button-loading:i-button @click="list_batchtoolbar_click({ tag: 'deuiaction2' }, $event)">
<i class='fa fa-remove'></i> <i class='fa fa-remove'></i>
<span class='caption'>{{$t('entities.ibizbook.usr4listview_layoutlist_batchtoolbar_toolbar.deuiaction2.caption')}}</span> <span class='caption'>{{$t('entities.ibizbook.listviewlist_batchtoolbar_toolbar.deuiaction2.caption')}}</span>
</i-button> </i-button>
<div slot='content'>{{$t('entities.ibizbook.usr4listview_layoutlist_batchtoolbar_toolbar.deuiaction2.tip')}}</div> <div slot='content'>{{$t('entities.ibizbook.listviewlist_batchtoolbar_toolbar.deuiaction2.tip')}}</div>
</tooltip> </tooltip>
</div> </div>
</span> </span>
...@@ -362,7 +362,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac ...@@ -362,7 +362,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac
* @param {*} [$event] 事件源 * @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件 * @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文 * @param {*} [actionContext] 执行行为上下文
* @memberof IBIZBOOKUsr4ListView_layoutBase * @memberof IBIZBOOKListViewBase
*/ */
public New(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) { public New(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
const _this: any = this; const _this: any = this;
...@@ -382,7 +382,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac ...@@ -382,7 +382,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac
* @param {*} [$event] 事件源 * @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件 * @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文 * @param {*} [actionContext] 执行行为上下文
* @memberof IBIZBOOKUsr4ListView_layoutBase * @memberof IBIZBOOKListViewBase
*/ */
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) {
...@@ -408,7 +408,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac ...@@ -408,7 +408,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac
* @param {*} [$event] 事件源 * @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件 * @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文 * @param {*} [actionContext] 执行行为上下文
* @memberof IBIZBOOKUsr4ListView_layoutBase * @memberof IBIZBOOKListViewBase
*/ */
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;
...@@ -604,9 +604,9 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac ...@@ -604,9 +604,9 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac
* 工具栏模型 * 工具栏模型
* *
* @type {*} * @type {*}
* @memberof IBIZBOOKUsr4ListView_layout * @memberof IBIZBOOKListView
*/ */
public usr4listview_layoutlist_quicktoolbarModels: any = { public listviewlist_quicktoolbarModels: any = {
deuiaction1: { name: 'deuiaction1', actiontarget: 'NONE', caption: '新建', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'New', target: '' } }, deuiaction1: { name: 'deuiaction1', actiontarget: 'NONE', caption: '新建', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'New', target: '' } },
}; };
...@@ -616,9 +616,9 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac ...@@ -616,9 +616,9 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac
* 工具栏模型 * 工具栏模型
* *
* @type {*} * @type {*}
* @memberof IBIZBOOKUsr4ListView_layout * @memberof IBIZBOOKListView
*/ */
public usr4listview_layoutlist_batchtoolbarModels: any = { public listviewlist_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' } },
...@@ -841,7 +841,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac ...@@ -841,7 +841,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac
*/ */
public async load(opt: any = {}): Promise<any> { public async load(opt: any = {}): Promise<any> {
if(!this.fetchAction){ if(!this.fetchAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr4ListView_layout' + (this.$t('app.list.notConfig.fetchAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKListView' + (this.$t('app.list.notConfig.fetchAction') as string) });
return; return;
} }
const arg: any = {...opt}; const arg: any = {...opt};
...@@ -971,7 +971,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac ...@@ -971,7 +971,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac
*/ */
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: 'IBIZBOOKUsr4ListView_layout' + (this.$t('app.list.notConfig.removeAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKListView' + (this.$t('app.list.notConfig.removeAction') as string) });
return; return;
} }
if (datas.length === 0) { if (datas.length === 0) {
...@@ -1076,7 +1076,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac ...@@ -1076,7 +1076,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac
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: 'IBIZBOOKUsr4ListView_layout' + (this.$t('app.list.notConfig.createAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKListView' + (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);
...@@ -1084,7 +1084,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac ...@@ -1084,7 +1084,7 @@ export default class LnternalFuncListBase extends Vue implements ControlInterfac
} }
}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: 'IBIZBOOKUsr4ListView_layout' + (this.$t('app.list.notConfig.updateAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.warning') as string), desc: 'IBIZBOOKListView' + (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){
......
...@@ -11,7 +11,7 @@ export default class Usr2Model { ...@@ -11,7 +11,7 @@ export default class Usr2Model {
* 获取数据项集合 * 获取数据项集合
* *
* @returns {any[]} * @returns {any[]}
* @memberof Usr2Dataviewexpbar_dataviewMode * @memberof Usr2DataViewMode
*/ */
public getDataItems(): any[] { public getDataItems(): any[] {
return [ return [
...@@ -40,6 +40,17 @@ export default class Usr2Model { ...@@ -40,6 +40,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',
......
...@@ -698,7 +698,7 @@ export default class Usr4Base extends Vue implements ControlInterface { ...@@ -698,7 +698,7 @@ export default class Usr4Base extends Vue implements ControlInterface {
*/ */
public async load(opt: any = {}, isReset: boolean = false): Promise<any> { public async load(opt: any = {}, isReset: boolean = false): Promise<any> {
if(!this.fetchAction){ if(!this.fetchAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKTestCLDataView' + (this.$t('app.list.notConfig.fetchAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr4DataView' + (this.$t('app.list.notConfig.fetchAction') as string) });
return; return;
} }
const arg: any = {...opt}; const arg: any = {...opt};
...@@ -792,7 +792,7 @@ export default class Usr4Base extends Vue implements ControlInterface { ...@@ -792,7 +792,7 @@ export default class Usr4Base 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: 'IBIZBOOKTestCLDataView' + (this.$t('app.gridpage.notConfig.removeAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr4DataView' + (this.$t('app.gridpage.notConfig.removeAction') as string) });
return; return;
} }
let _datas:any[] = []; let _datas:any[] = [];
...@@ -908,7 +908,7 @@ export default class Usr4Base extends Vue implements ControlInterface { ...@@ -908,7 +908,7 @@ export default class Usr4Base 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: 'IBIZBOOKTestCLDataView' + (this.$t('app.list.notConfig.createAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr4DataView' + (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);
...@@ -916,7 +916,7 @@ export default class Usr4Base extends Vue implements ControlInterface { ...@@ -916,7 +916,7 @@ export default class Usr4Base 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: 'IBIZBOOKTestCLDataView' + (this.$t('app.list.notConfig.updateAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr4DataView' + (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){
......
...@@ -70,6 +70,11 @@ export default class Usr4Model { ...@@ -70,6 +70,11 @@ export default class Usr4Model {
prop: 'n_ibizbookname_like', prop: 'n_ibizbookname_like',
dataType: 'QUERYPARAM' dataType: 'QUERYPARAM'
}, },
{
name: 'n_price_gtandeq',
prop: 'n_price_gtandeq',
dataType: 'QUERYPARAM'
},
{ {
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册