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

zhujiamin 发布系统代码 [TrainSys,网页端]

上级 6a55311f
...@@ -13,13 +13,13 @@ ...@@ -13,13 +13,13 @@
"dependencies": { "dependencies": {
"@floating-ui/dom": "^1.0.11", "@floating-ui/dom": "^1.0.11",
"@ibiz-template/command": "^0.0.1-beta.50", "@ibiz-template/command": "^0.0.1-beta.50",
"@ibiz-template/controller": "^0.0.1-beta.103", "@ibiz-template/controller": "^0.0.1-beta.104",
"@ibiz-template/core": "^0.0.1-beta.103", "@ibiz-template/core": "^0.0.1-beta.104",
"@ibiz-template/model": "^0.0.1-beta.103", "@ibiz-template/model": "^0.0.1-beta.104",
"@ibiz-template/runtime": "^0.0.1-beta.103", "@ibiz-template/runtime": "^0.0.1-beta.104",
"@ibiz-template/service": "^0.0.1-beta.103", "@ibiz-template/service": "^0.0.1-beta.104",
"@ibiz-template/theme": "^0.0.1-beta.103", "@ibiz-template/theme": "^0.0.1-beta.104",
"@ibiz-template/vue-util": "^0.0.1-beta.103", "@ibiz-template/vue-util": "^0.0.1-beta.104",
"@ibiz/dynamic-model-api": "^2.1.24", "@ibiz/dynamic-model-api": "^2.1.24",
"@riophae/vue-treeselect": "^0.4.0", "@riophae/vue-treeselect": "^0.4.0",
"dayjs": "^1.11.7", "dayjs": "^1.11.7",
......
...@@ -12,26 +12,26 @@ dependencies: ...@@ -12,26 +12,26 @@ dependencies:
specifier: ^0.0.1-beta.50 specifier: ^0.0.1-beta.50
version: 0.0.1-beta.50 version: 0.0.1-beta.50
'@ibiz-template/controller': '@ibiz-template/controller':
specifier: ^0.0.1-beta.103 specifier: ^0.0.1-beta.104
version: 0.0.1-beta.103(@ibiz-template/core@0.0.1-beta.103)(@ibiz-template/model@0.0.1-beta.103)(@ibiz-template/runtime@0.0.1-beta.103)(@ibiz-template/service@0.0.1-beta.103)(lodash-es@4.17.21)(qs@6.11.1)(qx-util@0.4.8) version: 0.0.1-beta.104(@ibiz-template/core@0.0.1-beta.104)(@ibiz-template/model@0.0.1-beta.104)(@ibiz-template/runtime@0.0.1-beta.104)(@ibiz-template/service@0.0.1-beta.104)(lodash-es@4.17.21)(qs@6.11.1)(qx-util@0.4.8)
'@ibiz-template/core': '@ibiz-template/core':
specifier: ^0.0.1-beta.103 specifier: ^0.0.1-beta.104
version: 0.0.1-beta.103(lodash-es@4.17.21)(qx-util@0.4.8)(ramda@0.28.0) version: 0.0.1-beta.104(lodash-es@4.17.21)(qx-util@0.4.8)(ramda@0.28.0)
'@ibiz-template/model': '@ibiz-template/model':
specifier: ^0.0.1-beta.103 specifier: ^0.0.1-beta.104
version: 0.0.1-beta.103(@ibiz/dynamic-model-api@2.1.24)(lodash-es@4.17.21)(qx-util@0.4.8) version: 0.0.1-beta.104(@ibiz/dynamic-model-api@2.1.24)(lodash-es@4.17.21)(qx-util@0.4.8)
'@ibiz-template/runtime': '@ibiz-template/runtime':
specifier: ^0.0.1-beta.103 specifier: ^0.0.1-beta.104
version: 0.0.1-beta.103(@ibiz-template/core@0.0.1-beta.103)(@ibiz-template/model@0.0.1-beta.103)(@ibiz-template/service@0.0.1-beta.103)(qx-util@0.4.8) version: 0.0.1-beta.104(@ibiz-template/core@0.0.1-beta.104)(@ibiz-template/model@0.0.1-beta.104)(@ibiz-template/service@0.0.1-beta.104)(qx-util@0.4.8)
'@ibiz-template/service': '@ibiz-template/service':
specifier: ^0.0.1-beta.103 specifier: ^0.0.1-beta.104
version: 0.0.1-beta.103(@ibiz-template/core@0.0.1-beta.103)(@ibiz-template/model@0.0.1-beta.103)(qx-util@0.4.8)(ramda@0.28.0) version: 0.0.1-beta.104(@ibiz-template/core@0.0.1-beta.104)(@ibiz-template/model@0.0.1-beta.104)(qx-util@0.4.8)(ramda@0.28.0)
'@ibiz-template/theme': '@ibiz-template/theme':
specifier: ^0.0.1-beta.103 specifier: ^0.0.1-beta.104
version: 0.0.1-beta.103 version: 0.0.1-beta.104
'@ibiz-template/vue-util': '@ibiz-template/vue-util':
specifier: ^0.0.1-beta.103 specifier: ^0.0.1-beta.104
version: 0.0.1-beta.103(@ibiz-template/controller@0.0.1-beta.103)(@ibiz-template/core@0.0.1-beta.103)(@ibiz-template/model@0.0.1-beta.103)(@ibiz-template/service@0.0.1-beta.103)(qs@6.11.1)(qx-util@0.4.8)(ramda@0.28.0)(vue-router@3.6.5)(vue@2.7.14) version: 0.0.1-beta.104(@ibiz-template/controller@0.0.1-beta.104)(@ibiz-template/core@0.0.1-beta.104)(@ibiz-template/model@0.0.1-beta.104)(@ibiz-template/service@0.0.1-beta.104)(qs@6.11.1)(qx-util@0.4.8)(ramda@0.28.0)(vue-router@3.6.5)(vue@2.7.14)
'@ibiz/dynamic-model-api': '@ibiz/dynamic-model-api':
specifier: ^2.1.24 specifier: ^2.1.24
version: 2.1.24(qx-util@0.4.8) version: 2.1.24(qx-util@0.4.8)
...@@ -939,8 +939,8 @@ packages: ...@@ -939,8 +939,8 @@ packages:
qx-util: 0.4.8 qx-util: 0.4.8
dev: false dev: false
/@ibiz-template/controller@0.0.1-beta.103(@ibiz-template/core@0.0.1-beta.103)(@ibiz-template/model@0.0.1-beta.103)(@ibiz-template/runtime@0.0.1-beta.103)(@ibiz-template/service@0.0.1-beta.103)(lodash-es@4.17.21)(qs@6.11.1)(qx-util@0.4.8): /@ibiz-template/controller@0.0.1-beta.104(@ibiz-template/core@0.0.1-beta.104)(@ibiz-template/model@0.0.1-beta.104)(@ibiz-template/runtime@0.0.1-beta.104)(@ibiz-template/service@0.0.1-beta.104)(lodash-es@4.17.21)(qs@6.11.1)(qx-util@0.4.8):
resolution: {integrity: sha512-RC4ZnaZMVZ7hQ4QCdOUznVOouqx9EnObetjM67DcKR6wblTlExsJxPnGJftlQD5bEzbkcPuGjG8Afi9YyNhuqg==} resolution: {integrity: sha512-F2mhXXQoeejMhHMS15fcwvcou/WH7vMWYEDSWdxb/gpVHsm3mAVHa9kTQYFsJoCTjs2ukKQcQDy1bLOeeuILXA==}
peerDependencies: peerDependencies:
'@ibiz-template/core': ^0.0.1-beta.30 '@ibiz-template/core': ^0.0.1-beta.30
'@ibiz-template/model': ^0.0.1-beta.30 '@ibiz-template/model': ^0.0.1-beta.30
...@@ -950,10 +950,10 @@ packages: ...@@ -950,10 +950,10 @@ packages:
qs: ^6.11.0 qs: ^6.11.0
qx-util: ^0.4.8 qx-util: ^0.4.8
dependencies: dependencies:
'@ibiz-template/core': 0.0.1-beta.103(lodash-es@4.17.21)(qx-util@0.4.8)(ramda@0.28.0) '@ibiz-template/core': 0.0.1-beta.104(lodash-es@4.17.21)(qx-util@0.4.8)(ramda@0.28.0)
'@ibiz-template/model': 0.0.1-beta.103(@ibiz/dynamic-model-api@2.1.24)(lodash-es@4.17.21)(qx-util@0.4.8) '@ibiz-template/model': 0.0.1-beta.104(@ibiz/dynamic-model-api@2.1.24)(lodash-es@4.17.21)(qx-util@0.4.8)
'@ibiz-template/runtime': 0.0.1-beta.103(@ibiz-template/core@0.0.1-beta.103)(@ibiz-template/model@0.0.1-beta.103)(@ibiz-template/service@0.0.1-beta.103)(qx-util@0.4.8) '@ibiz-template/runtime': 0.0.1-beta.104(@ibiz-template/core@0.0.1-beta.104)(@ibiz-template/model@0.0.1-beta.104)(@ibiz-template/service@0.0.1-beta.104)(qx-util@0.4.8)
'@ibiz-template/service': 0.0.1-beta.103(@ibiz-template/core@0.0.1-beta.103)(@ibiz-template/model@0.0.1-beta.103)(qx-util@0.4.8)(ramda@0.28.0) '@ibiz-template/service': 0.0.1-beta.104(@ibiz-template/core@0.0.1-beta.104)(@ibiz-template/model@0.0.1-beta.104)(qx-util@0.4.8)(ramda@0.28.0)
async-validator: 4.2.5 async-validator: 4.2.5
dayjs: 1.11.7 dayjs: 1.11.7
lodash-es: 4.17.21 lodash-es: 4.17.21
...@@ -961,8 +961,8 @@ packages: ...@@ -961,8 +961,8 @@ packages:
qx-util: 0.4.8 qx-util: 0.4.8
dev: false dev: false
/@ibiz-template/core@0.0.1-beta.103(lodash-es@4.17.21)(qx-util@0.4.8)(ramda@0.28.0): /@ibiz-template/core@0.0.1-beta.104(lodash-es@4.17.21)(qx-util@0.4.8)(ramda@0.28.0):
resolution: {integrity: sha512-87QGDegNOv/+tiIGprKMls60QKy/rmiRMlEuQXNg3aorgF5mKHFDeS6Bk+aysSOZNmdLKk1Daz4H1/cQgY7K7Q==} resolution: {integrity: sha512-2TvQq+9azhEAVh1HPxMBjVrZCKsf5bPTwoCMt7YRHW4gzi4QJWxhMqIyOJcQ5V47EoXah6zkF7pSqh4of5CLUg==}
peerDependencies: peerDependencies:
lodash-es: ^4.17.21 lodash-es: ^4.17.21
qx-util: ^0.4.8 qx-util: ^0.4.8
...@@ -979,8 +979,8 @@ packages: ...@@ -979,8 +979,8 @@ packages:
- debug - debug
dev: false dev: false
/@ibiz-template/model@0.0.1-beta.103(@ibiz/dynamic-model-api@2.1.24)(lodash-es@4.17.21)(qx-util@0.4.8): /@ibiz-template/model@0.0.1-beta.104(@ibiz/dynamic-model-api@2.1.24)(lodash-es@4.17.21)(qx-util@0.4.8):
resolution: {integrity: sha512-i/b1pI92lUpu9ShVMyXTh5j6j0RGeiW1qM6IjcsaBIvGA2r6w5XyajeGc5EFA6FxDFVvnarpgMO5XT8DdBLsXA==} resolution: {integrity: sha512-b3uHha6RtMe2QT+9jzE0jlP1AVetIyoCXXPDzUrlexOYKeT0UDbBHPrSNdaNODE6G/MyILHEIqunypFqfvGBgw==}
peerDependencies: peerDependencies:
'@ibiz/dynamic-model-api': ^2.1.24 '@ibiz/dynamic-model-api': ^2.1.24
lodash-es: ^4.17.21 lodash-es: ^4.17.21
...@@ -992,8 +992,8 @@ packages: ...@@ -992,8 +992,8 @@ packages:
qx-util: 0.4.8 qx-util: 0.4.8
dev: false dev: false
/@ibiz-template/runtime@0.0.1-beta.103(@ibiz-template/core@0.0.1-beta.103)(@ibiz-template/model@0.0.1-beta.103)(@ibiz-template/service@0.0.1-beta.103)(qx-util@0.4.8): /@ibiz-template/runtime@0.0.1-beta.104(@ibiz-template/core@0.0.1-beta.104)(@ibiz-template/model@0.0.1-beta.104)(@ibiz-template/service@0.0.1-beta.104)(qx-util@0.4.8):
resolution: {integrity: sha512-4EzcTcOKsgPQmmsrqxkfi8WHs7DwiVExUdK8eW80feUB1ioYYvy1owMTJ3NjPvw2MKt1kDRnRYLDLn8zLNOTgQ==} resolution: {integrity: sha512-s3EcpTkQn1c9NtmBByNrGxMut+AawVyCv7Lqn+EJSqQtUw09n1MJekrSkuzWoQcbiYIrjltFTXIkApEz5/lUpw==}
peerDependencies: peerDependencies:
'@ibiz-template/core': ^0.0.1-beta.30 '@ibiz-template/core': ^0.0.1-beta.30
'@ibiz-template/model': ^0.0.1-beta.30 '@ibiz-template/model': ^0.0.1-beta.30
...@@ -1001,33 +1001,33 @@ packages: ...@@ -1001,33 +1001,33 @@ packages:
qx-util: ^0.4.8 qx-util: ^0.4.8
dependencies: dependencies:
'@ibiz-template/command': 0.0.1-beta.50 '@ibiz-template/command': 0.0.1-beta.50
'@ibiz-template/core': 0.0.1-beta.103(lodash-es@4.17.21)(qx-util@0.4.8)(ramda@0.28.0) '@ibiz-template/core': 0.0.1-beta.104(lodash-es@4.17.21)(qx-util@0.4.8)(ramda@0.28.0)
'@ibiz-template/model': 0.0.1-beta.103(@ibiz/dynamic-model-api@2.1.24)(lodash-es@4.17.21)(qx-util@0.4.8) '@ibiz-template/model': 0.0.1-beta.104(@ibiz/dynamic-model-api@2.1.24)(lodash-es@4.17.21)(qx-util@0.4.8)
'@ibiz-template/service': 0.0.1-beta.103(@ibiz-template/core@0.0.1-beta.103)(@ibiz-template/model@0.0.1-beta.103)(qx-util@0.4.8)(ramda@0.28.0) '@ibiz-template/service': 0.0.1-beta.104(@ibiz-template/core@0.0.1-beta.104)(@ibiz-template/model@0.0.1-beta.104)(qx-util@0.4.8)(ramda@0.28.0)
qs: 6.11.1 qs: 6.11.1
qx-util: 0.4.8 qx-util: 0.4.8
dev: false dev: false
/@ibiz-template/service@0.0.1-beta.103(@ibiz-template/core@0.0.1-beta.103)(@ibiz-template/model@0.0.1-beta.103)(qx-util@0.4.8)(ramda@0.28.0): /@ibiz-template/service@0.0.1-beta.104(@ibiz-template/core@0.0.1-beta.104)(@ibiz-template/model@0.0.1-beta.104)(qx-util@0.4.8)(ramda@0.28.0):
resolution: {integrity: sha512-ba2VOEOLc/XYMAqFhNotlCCcS3HPKXCoNBCll2xovrxzMi4BoFO6l/fUxv8V1bMjbTB7gt0S2q84TWeTiuVo5A==} resolution: {integrity: sha512-njI1+c+y6FZkJL+l3C1LGpGfoSvfdgkmZAWeN6klnjvwVSmuIbbbfpebXn6uLhwE22tUDim4FxGFNg7Gn06Edg==}
peerDependencies: peerDependencies:
'@ibiz-template/core': ^0.0.1-beta.30 '@ibiz-template/core': ^0.0.1-beta.30
'@ibiz-template/model': ^0.0.1-beta.30 '@ibiz-template/model': ^0.0.1-beta.30
qx-util: ^0.4.8 qx-util: ^0.4.8
ramda: ^0.28.0 ramda: ^0.28.0
dependencies: dependencies:
'@ibiz-template/core': 0.0.1-beta.103(lodash-es@4.17.21)(qx-util@0.4.8)(ramda@0.28.0) '@ibiz-template/core': 0.0.1-beta.104(lodash-es@4.17.21)(qx-util@0.4.8)(ramda@0.28.0)
'@ibiz-template/model': 0.0.1-beta.103(@ibiz/dynamic-model-api@2.1.24)(lodash-es@4.17.21)(qx-util@0.4.8) '@ibiz-template/model': 0.0.1-beta.104(@ibiz/dynamic-model-api@2.1.24)(lodash-es@4.17.21)(qx-util@0.4.8)
qx-util: 0.4.8 qx-util: 0.4.8
ramda: 0.28.0 ramda: 0.28.0
dev: false dev: false
/@ibiz-template/theme@0.0.1-beta.103: /@ibiz-template/theme@0.0.1-beta.104:
resolution: {integrity: sha512-2Mi1Clj+T0Gv4tY1Mv61o44l+EiXZgMencz15lQTgsrGBOpyL7lMQE+pGqjNnr1IEKqTx7HKL5hMQo3PBrLmAA==} resolution: {integrity: sha512-ysMtxUifaYIbVNLdN7zmka4hk7Th3vvMhqlx1B5Ks8jjYoSIWtJB+YGEA5x+u303lfwGzTmCpSDiWZAXOnn7Lg==}
dev: false dev: false
/@ibiz-template/vue-util@0.0.1-beta.103(@ibiz-template/controller@0.0.1-beta.103)(@ibiz-template/core@0.0.1-beta.103)(@ibiz-template/model@0.0.1-beta.103)(@ibiz-template/service@0.0.1-beta.103)(qs@6.11.1)(qx-util@0.4.8)(ramda@0.28.0)(vue-router@3.6.5)(vue@2.7.14): /@ibiz-template/vue-util@0.0.1-beta.104(@ibiz-template/controller@0.0.1-beta.104)(@ibiz-template/core@0.0.1-beta.104)(@ibiz-template/model@0.0.1-beta.104)(@ibiz-template/service@0.0.1-beta.104)(qs@6.11.1)(qx-util@0.4.8)(ramda@0.28.0)(vue-router@3.6.5)(vue@2.7.14):
resolution: {integrity: sha512-dU2XCXKTev76/eP+src99fORXNYSLiuvyVlQD40vWlLuZnpk+O/yD2sleK1wVSI9NyJggqzIjCvNofWAZ3OmwA==} resolution: {integrity: sha512-F5c/pGscCXS1180tvzyacI6eEi3dNP1FdT2OG1+clBkknEPyvHe8CDW/BMESCau0ux6S0nTbt8nanzNfRIMAFw==}
peerDependencies: peerDependencies:
'@ibiz-template/controller': ^0.0.1-beta.30 '@ibiz-template/controller': ^0.0.1-beta.30
'@ibiz-template/core': ^0.0.1-beta.30 '@ibiz-template/core': ^0.0.1-beta.30
...@@ -1039,10 +1039,10 @@ packages: ...@@ -1039,10 +1039,10 @@ packages:
vue: ^2.7.14 vue: ^2.7.14
vue-router: ^3.6.5 vue-router: ^3.6.5
dependencies: dependencies:
'@ibiz-template/controller': 0.0.1-beta.103(@ibiz-template/core@0.0.1-beta.103)(@ibiz-template/model@0.0.1-beta.103)(@ibiz-template/runtime@0.0.1-beta.103)(@ibiz-template/service@0.0.1-beta.103)(lodash-es@4.17.21)(qs@6.11.1)(qx-util@0.4.8) '@ibiz-template/controller': 0.0.1-beta.104(@ibiz-template/core@0.0.1-beta.104)(@ibiz-template/model@0.0.1-beta.104)(@ibiz-template/runtime@0.0.1-beta.104)(@ibiz-template/service@0.0.1-beta.104)(lodash-es@4.17.21)(qs@6.11.1)(qx-util@0.4.8)
'@ibiz-template/core': 0.0.1-beta.103(lodash-es@4.17.21)(qx-util@0.4.8)(ramda@0.28.0) '@ibiz-template/core': 0.0.1-beta.104(lodash-es@4.17.21)(qx-util@0.4.8)(ramda@0.28.0)
'@ibiz-template/model': 0.0.1-beta.103(@ibiz/dynamic-model-api@2.1.24)(lodash-es@4.17.21)(qx-util@0.4.8) '@ibiz-template/model': 0.0.1-beta.104(@ibiz/dynamic-model-api@2.1.24)(lodash-es@4.17.21)(qx-util@0.4.8)
'@ibiz-template/service': 0.0.1-beta.103(@ibiz-template/core@0.0.1-beta.103)(@ibiz-template/model@0.0.1-beta.103)(qx-util@0.4.8)(ramda@0.28.0) '@ibiz-template/service': 0.0.1-beta.104(@ibiz-template/core@0.0.1-beta.104)(@ibiz-template/model@0.0.1-beta.104)(qx-util@0.4.8)(ramda@0.28.0)
qs: 6.11.1 qs: 6.11.1
qx-util: 0.4.8 qx-util: 0.4.8
ramda: 0.28.0 ramda: 0.28.0
......
...@@ -6,11 +6,18 @@ import '@ibiz-template/theme/style/components/layout/app-layout/app-layout.scss' ...@@ -6,11 +6,18 @@ import '@ibiz-template/theme/style/components/layout/app-layout/app-layout.scss'
function renderLogo(ns: Namespace, model: IndexViewModel) { function renderLogo(ns: Namespace, model: IndexViewModel) {
return ( return (
<div class={ns.e('logo')}> <div class={[ns.e('logo'), model.source?.mainMenuAlign?.toLowerCase()]}>
{model.appIconPath ? ( {model.appIconPath ? (
<img class={ns.e('logo-img')} src={model.appIconPath}></img> <img class={ns.e('logo-img')} src={model.appIconPath}></img>
) : null} ) : null}
<div class={ns.e('logo-caption')}>{model.caption}</div> <div
class={[
ns.e('logo-caption'),
model.source?.mainMenuAlign?.toLowerCase(),
]}
>
{model.caption}
</div>
</div> </div>
); );
} }
...@@ -58,52 +65,76 @@ export const AppLayout = defineComponent({ ...@@ -58,52 +65,76 @@ export const AppLayout = defineComponent({
this.ns.is('tab', this.isShowTabPageExp), this.ns.is('tab', this.isShowTabPageExp),
]} ]}
> >
<i-sider {this.model.source.mainMenuAlign === 'CENTER' && this.$slots.menu}
hide-trigger {this.model.source.mainMenuAlign !== 'CENTER' && (
class={[ <i-sider
this.ns.b('nav'), hide-trigger
this.ns.is('collapse', this.collapseChange), class={[
]} this.ns.b('nav'),
value={this.collapseChange} this.ns.is('collapse', this.collapseChange),
> this.model.source?.mainMenuAlign?.toLowerCase(),
{renderLogo(this.ns, this.model)} ]}
{this.$slots.menu} value={this.collapseChange}
</i-sider> >
<i-layout class={[this.ns.b('content')]}> {renderLogo(this.ns, this.model)}
<i-header class={this.ns.b('header')}> {this.$slots.menu}
<div class={this.ns.be('header', 'left')}> </i-sider>
{renderLogo(this.ns, this.model)} )}
<div class={this.ns.be('header', 'collapse-icon')}> {this.model.source.mainMenuAlign === 'CENTER' && (
{!this.collapseChange ? ( <i-layout class={[this.ns.b('content')]}>
<ion-icon <i-header
src={'./assets/img/menu-fold.svg'} class={[
on-click={() => this.collapseMenus()} this.ns.b('header'),
/> this.model.source?.mainMenuAlign?.toLowerCase(),
) : ( ]}
<ion-icon >
src={'./assets/img/menu-unfold.svg'} <div class={this.ns.be('header', 'left')}>
on-click={() => this.collapseMenus()} {renderLogo(this.ns, this.model)}
/> </div>
)} </i-header>
<i-content class={this.ns.be('content', 'main')}>
{this.$slots.tabPageExp}
{this.$slots.default}
</i-content>
</i-layout>
)}
{this.model.source.mainMenuAlign !== 'CENTER' && (
<i-layout class={[this.ns.b('content')]}>
<i-header class={this.ns.b('header')}>
<div class={this.ns.be('header', 'left')}>
{renderLogo(this.ns, this.model)}
<div class={this.ns.be('header', 'collapse-icon')}>
{!this.collapseChange ? (
<ion-icon
src={'./assets/img/menu-fold.svg'}
on-click={() => this.collapseMenus()}
/>
) : (
<ion-icon
src={'./assets/img/menu-unfold.svg'}
on-click={() => this.collapseMenus()}
/>
)}
</div>
{this.model.source.mainMenuAlign === 'TOP' ? (
<i-menu
class={this.ns.be('header', 'menu')}
mode='horizontal'
active-name='1'
></i-menu>
) : null}
</div>
<div class={this.ns.be('header', 'right')}>
<app-user />
</div> </div>
{this.model.source.mainMenuAlign === 'TOP' ? ( </i-header>
<i-menu <i-content class={this.ns.be('content', 'main')}>
class={this.ns.be('header', 'menu')} {this.$slots.tabPageExp}
mode='horizontal' {this.$slots.default}
active-name='1' </i-content>
></i-menu> {/* <i-footer class={this.ns.b('footer')}>Footer</i-footer> */}
) : null} </i-layout>
</div> )}
<div class={this.ns.be('header', 'right')}>
<app-user />
</div>
</i-header>
<i-content class={this.ns.be('content', 'main')}>
{this.$slots.tabPageExp}
{this.$slots.default}
</i-content>
{/* <i-footer class={this.ns.b('footer')}>Footer</i-footer> */}
</i-layout>
</i-layout> </i-layout>
) : null; ) : null;
}, },
......
...@@ -3,6 +3,7 @@ import { ...@@ -3,6 +3,7 @@ import {
AppMenuModel, AppMenuModel,
AppMenuItemModel, AppMenuItemModel,
IPSAppMenuItem, IPSAppMenuItem,
IPSAppIndexView,
} from '@ibiz-template/model'; } from '@ibiz-template/model';
import { import {
useAppMenuController, useAppMenuController,
...@@ -94,6 +95,72 @@ function renderMenuItem( ...@@ -94,6 +95,72 @@ function renderMenuItem(
); );
} }
/**
* 绘制中间菜单项
* @author fzh
* @date 2022-08-29 14:08:20
* @param {IData} menu
* @returns {*}
*/
function renderCenterChildren(
menu: IData,
ns: Namespace,
c: AppMenuController,
counterData: IData,
click: Function,
) {
return (
<div class={ns.e('cchildren')} onClick={() => click(menu.key)}>
<app-icon class={ns.e('cchildrenIcon')} icon={menu.image}></app-icon>
<div class={ns.em('cchildren', 'title')}>
<span>{menu.label}</span>
</div>
{typeof counterData[menu.counterId] === 'number' ? (
<i-badge
class={ns.e('counter')}
count={counterData[menu.counterId]}
></i-badge>
) : null}
</div>
);
}
/**
* 绘制中间菜单分组
* @author fzh
* @date 2022-08-29 14:08:20
* @param {IData} menu
* @returns {*}
*/
function renderCenterMenuItem(
menu: IData,
ns: Namespace,
c: AppMenuController,
counterData: IData,
click: Function,
) {
if (!c.menuItemsState[menu.key].visible) {
return;
}
return (
<div class={ns.e('cmenu')}>
<div class={ns.em('cmenu', 'title')}>{menu.label}</div>
{typeof counterData[menu.counterId] === 'number' ? (
<i-badge
class={ns.e('counter')}
count={counterData[menu.counterId]}
></i-badge>
) : null}
<div class={ns.e('cmenucontent')}>
{menu.children?.length > 0 &&
menu.children.map((item: IData) => {
return renderCenterChildren(item, ns, c, counterData, click);
})}
</div>
</div>
);
}
/** /**
* 绘制收缩分组菜单项 * 绘制收缩分组菜单项
* @param {IData} menu * @param {IData} menu
...@@ -209,6 +276,7 @@ export const AppMenu = defineComponent({ ...@@ -209,6 +276,7 @@ export const AppMenu = defineComponent({
context: { type: Object as PropType<IContext>, required: true }, context: { type: Object as PropType<IContext>, required: true },
collapseChange: Boolean, collapseChange: Boolean,
currentPath: String, currentPath: String,
menuModel: { type: Object as PropType<IPSAppIndexView>, required: true },
}, },
setup(props, { emit }) { setup(props, { emit }) {
const { proxy } = getCurrentInstance()!; const { proxy } = getCurrentInstance()!;
...@@ -224,6 +292,8 @@ export const AppMenu = defineComponent({ ...@@ -224,6 +292,8 @@ export const AppMenu = defineComponent({
let counter: AppCounter | null = null; let counter: AppCounter | null = null;
const counterData = ref<IData>({}); const counterData = ref<IData>({});
const menuDirection = props.menuModel.mainMenuAlign;
c.nerve.self.evt.on('created', () => { c.nerve.self.evt.on('created', () => {
menus.value = getMenus(c.model.items); menus.value = getMenus(c.model.items);
}); });
...@@ -352,9 +422,33 @@ export const AppMenu = defineComponent({ ...@@ -352,9 +422,33 @@ export const AppMenu = defineComponent({
counter?.destroy(); counter?.destroy();
}); });
return { menus, c, onClick, ns, defaultActive, defaultOpens, counterData }; return {
menus,
c,
onClick,
ns,
defaultActive,
defaultOpens,
counterData,
menuDirection,
};
}, },
render() { render() {
if (this.menuDirection === 'CENTER') {
return (
<div class={[this.ns.b(), this.menuDirection?.toLowerCase()]}>
{this.menus.map(item => {
return renderCenterMenuItem(
item,
this.ns,
this.c,
this.counterData,
this.onClick,
);
})}
</div>
);
}
return ( return (
<i-menu <i-menu
ref={'menu'} ref={'menu'}
......
...@@ -166,6 +166,7 @@ const collapseChange = (collapse: boolean) => { ...@@ -166,6 +166,7 @@ const collapseChange = (collapse: boolean) => {
<AppLayout <AppLayout
:is-complete="c.complete" :is-complete="c.complete"
:model="c.model" :model="c.model"
:class="c.model?.source?.mainMenuAlign?.toLowerCase()"
:is-show-tab-page-exp="isShowTabPageExp" :is-show-tab-page-exp="isShowTabPageExp"
@onCollapseChange="collapseChange" @onCollapseChange="collapseChange"
> >
...@@ -177,6 +178,7 @@ const collapseChange = (collapse: boolean) => { ...@@ -177,6 +178,7 @@ const collapseChange = (collapse: boolean) => {
:model-data="c.model.appMenu" :model-data="c.model.appMenu"
:context="c.context" :context="c.context"
:collapse-change="c.collapseChange" :collapse-change="c.collapseChange"
:menu-model="c.model?.source"
@menuRouteChange="onMenuRouteChange" @menuRouteChange="onMenuRouteChange"
></app-menu> ></app-menu>
<tab-page-exp <tab-page-exp
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册