component_ryl_v3 1.1.20 → 1.1.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -28,8 +28,6 @@ Learn more about IDE Support for Vue in the [Vue Docs Scaling up Guide](https://
|
|
|
28
28
|
{Function} getMenu() - 处理传入的导航菜单
|
|
29
29
|
{Function} setMenuActive(path) - 设置菜单选中状态,参数 path 为菜单路径
|
|
30
30
|
{Function} setNormal(value) - 判断是否在 content inner_content 类名上添加 normal 类名
|
|
31
|
-
{Function} loadImg(content) - 等待图片加载完成后获取主容器高度,参数 content 为 HTML 内容
|
|
32
|
-
{Function} getMainHeight(flag) - 获取内容模块的滚动条状态,参数 flag 为是否跳过滚动条置顶
|
|
33
31
|
|
|
34
32
|
|
|
35
33
|
# 询问窗口组件
|
|
@@ -162,3 +160,6 @@ Learn more about IDE Support for Vue in the [Vue Docs Scaling up Guide](https://
|
|
|
162
160
|
<el-input v-model="inputMoney" v-money="{max:100,min:0}" placeholder="请输入"></el-input>
|
|
163
161
|
# 数字格式指令
|
|
164
162
|
<el-input v-model="inputNumber" v-number="{max:100,min:0}" placeholder="请输入"></el-input>
|
|
163
|
+
|
|
164
|
+
# 更新版本的信息
|
|
165
|
+
# 1.1.40 handHeader 组件布局更改,去掉了 getMainHeight 和 loadImg 方法,不需要了
|
package/dist/component_ryl_v3.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
!function(){"use strict";try{if("undefined"!=typeof document){var e=document.createElement("style");e.appendChild(document.createTextNode('@charset "UTF-8";*:not(svg),#app,html,body{margin:0;padding:0;font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,微软雅黑,Arial,sans-serif;font-size:12px}a{text-decoration:none;color:#5a5a5a}li{list-style:none}.flex{display:-webkit-flex;display:flex;display:-moz-box;display:-ms-flexbox}.flex_row{flex-direction:row}.flex_col{flex-direction:column}.initTextarea>.el-textarea__inner{resize:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent;border-radius:4px}::-webkit-scrollbar-thumb{background-color:transparent;border-radius:0}::-webkit-scrollbar-thumb:hover{background:#c2c2c2}::-webkit-scrollbar-corner{background:transparent}.common_show_scroll::-webkit-scrollbar-thumb{background:#c2c2c2}.tinymce-editor-JustOne *:not(h1,h2,h3,h4,h5,h6){font-size:inherit}.tinymce-editor-JustOne h1{font-size:32px}.tinymce-editor-JustOne h2{font-size:28px}.tinymce-editor-JustOne h3{font-size:24px}.tinymce-editor-JustOne h4{font-size:20px}.tinymce-editor-JustOne h5{font-size:16px}.tinymce-editor-JustOne h6{font-size:12px}.jddsDialog.el-dialog{border-radius:4px}.jddsDialog .el-dialog__title,.jddsDialog .zbt{font-size:16px;color:#272727;line-height:normal}.jddsDialog .el-dialog__body .el-form-item:last-child{margin-bottom:0}.jddsDialog .el-dialog__headerbtn{top:5px;right:0}.jddsDialog .btn{min-width:68px;height:32px;line-height:32px;border-radius:4px;padding:0}.jddsDialog .exit{font-size:14px}.jddsDialog .header-title{display:flex;align-items:center}.jddsDialog.el-dialog--center .header-title{justify-content:center}.JD_table.el-table:before{height:0!important}.JD_table.el-table{width:100%}.JD_table.el-table th,.JD_table.el-table th.el-table__cell{background-color:#eff2f580;padding:0;height:40px;line-height:40px;border-bottom:none!important}.JD_table.el-table th .cell,.JD_table.el-table th.el-table__cell .cell{font-weight:400;color:#999;text-align:left;white-space:nowrap}.JD_table.el-table td,.JD_table.el-table td.el-table__cell{padding:0;height:48px;line-height:48px}.JD_table.el-table td .cell,.JD_table.el-table td.el-table__cell .cell{line-height:normal}.el-table--group,.el-table--border{border:none!important}.el-table--group:after,.el-table--border:after{width:0!important}.el-table--border .el-table__cell,.el-table--border td{border-right:none!important}.el-table--border th.el-table__cell{border-right:1px solid #ebeef5!important}.el-table .cell{text-align:center!important}.el-table__header,.el-table__empty-block,.el-table__body{width:100%!important}.el-sub-menu__title{text-align:left!important}.el-sub-menu .el-menu-item{min-width:auto!important;padding-left:46px!important;position:relative}.el-sub-menu .el-menu-item:after{content:"";width:4px;height:4px;background:#7c878e;border-radius:50%;position:absolute;top:17px;left:26px}.el-sub-menu .el-menu .el-sub-menu .el-sub-menu__title{padding-left:46px!important}.el-sub-menu .el-menu .el-menu .el-menu-item{padding-left:60px!important}.el-sub-menu .el-menu .el-menu .el-menu-item:after{left:46px!important}.el-menu{border-right:none!important}.el-menu-item,.el-sub-menu__title{height:38px!important;line-height:38px!important;margin-top:2px}.el-menu-item *,.el-sub-menu__title *{vertical-align:middle}.el-submenu__title i.el-sub-menu__icon-arrow{color:#c0c5c7;font-weight:700}.el-message-box{width:400px!important}.initMsg_in{padding:20px 0!important}.initMsg_in .el-message-box__header{padding:0!important}.initMsg_in .el-message-box__header .el-message-box__headerbtn{display:none}.initMsg_in .el-message-box__header .el-message-box__status{font-size:50px!important}.initMsg_in .el-message-box__content{padding:20px 30px!important}.initMsg_in .el-message-box__content .el-message-box__message{letter-spacing:1px}.initMsg_in .el-message-box__btns{padding:0!important}.initMsg_in .el-message-box__btns button{min-width:100px;height:40px;border-radius:4px}.initMsg_in .el-message-box__btns button:nth-child(2){margin-left:20px!important}.defaultMsg_in .el-message-box__container{align-items:flex-start}.defaultMsg_in .el-message-box__title span{font-size:14px;font-weight:700}.defaultMsg_in .el-message-box__headerbtn{top:7px}.defaultMsg_in .el-message-box__status{top:0;transform:none;font-size:24px!important}.defaultMsg_in .el-message-box__btns button{min-width:68px;height:32px;border-radius:4px;border:none}.ieBro{position:fixed;padding:10px;z-index:9999;top:0;left:0;right:0;background:#fffade;border:1px solid #f9d878;justify-content:space-between}.ieBro span,.ieBro a{font-size:12px}.ieBro .color{text-decoration:underline}.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks):before{content:""!important}.mainMenu[data-v-e79ba81c]{display:inline-block;position:relative}.mainMenu .elbadge[data-v-e79ba81c]{color:red;font-style:normal}.mainMenu .elbadge.hot[data-v-e79ba81c]:after{display:inline-block;content:"";width:8px;height:8px;background-color:red;border-radius:100%;transform:scale(.9);position:absolute;top:10px;right:-10px}.mainMenu .elbadge.new[data-v-e79ba81c]:after{display:inline-block;content:"new";background-color:red;color:#fff;padding:0 4px 1px;line-height:16px;border-radius:4px;transform:scale(.9);position:absolute;top:6px;right:-32px}.mainMenu .elbadge.run[data-v-e79ba81c]{display:inline-block;color:#fff;background-color:red;min-width:20px;padding:0 2px;text-align:center;height:16px;line-height:16px;border-radius:4px;animation:changeRun 1.5s ease-in-out 0s infinite}.mainMenu .elbadge.num[data-v-e79ba81c]{display:inline-block;background-color:red;color:#fff;width:20px;text-align:center;height:16px;line-height:16px;border-radius:4px;transform:scale(.9);position:absolute;top:6px;right:-22px}.mainMenu .elbadge.num.nine[data-v-e79ba81c]{width:26px;right:-28px}.mainMenu .elbadge.num.nine em[data-v-e79ba81c]{position:relative;top:-4px}.el-menu-item span[data-v-e79ba81c],.el-sub-menu__title span[data-v-e79ba81c]{font-size:14px}.handHeaderContent{position:relative;z-index:999;height:100vh}.handHeaderContent .el-container.is-vertical{position:relative}.handHeaderContent .inner_header{padding:0;background:#fff;justify-content:space-between;align-items:center;height:50px!important}.handHeaderContent .inner_header .colSpan{width:60px;background-color:transparent;justify-content:center;align-items:center}.handHeaderContent .inner_header .colSpan .hide{width:16px;height:16px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAA2hJREFUeF7t3Vtu5DAMRFFlZ9nZzKwsS0ugTBswGnnYLkqkVddAkC+1Q9YBrXb68dJae28cth14AYBt9p+FA8A7fwCY5w8AALAJtDbAHsA6fjaB5vEDAADcB/A2wB7AO3+eBprnDwAAcB/A2gB7AOv4eRpoHv9/AK/2XTBuQAfAYdwBABiHv70gxLwF3uUzAbzz/9wEchh3AADG4bMHMA8fAABgD+BugD2AuQAAAMC8A+blMwEAYN4B8/IrTIC/rbX+w5HQgWwAW/AASAg/+0ZQD/1Pa+0fEyAp/cfnA2ScfQu/nxsAGQk8zplxCdiHD4DE8DMuAc/hKwB4LWMAnpkT4KvwVQBvAT2wfohZAL4LHwDJ/GYA+Cl8ACwO4LfwAbAwgCPhA2BRAEfDB8CCAM6ED4DFAJwNHwALAbgSPgAWAXA1fAAsAEAJHwA3B6CGD4AbA4gIHwA3BRAVPgBuCCAyfADcDEB0+AC4EYAR4SsAklu3xumP/jt4VPgASHZ0BMDI8AFQHMDo8AFQGMCM8AFQFMCs8AFQEMDM8AFQDMDs8AFQCEBG+AAoAiArfAAUAJAZPgAAwLuDMw1sdwIzpwBvD08UsL8VnIUAAEUA9D8jAwEACgHIQACAYgBmIwBAQQAzEQCgKIBZCABQGMAMBAAoDmA0AgDcAMBIBFcB9E8J40OiRDxHXhO4P8WI+wQAEENUlp8FMGISAEBJUFx7BUA0AgCIISrLrwKIRAAAJUFxrQIgCgEAxBCV5SqACAQAUBIU10YAUBEAQAxRWR4FQEEAACVBcW0kgKsIACCGqCyPBnAFAQCUBMW1IwCcRQAAMURl+SgAZxAAQElQXDsSwFEEABBDVJaPBnAEAQCUBMW1MwD8hgAAYojK8lkAfkKgAFBqZ23CF0dGfm0cAQZ0YOYE2P7cZwRXJ0BA+TxEBoDnywEAEh1mAdgjAIApgA3B/ndiKzxPnTkB9nuCvi/gSOhABQAJZXPKrQMAMLcAAACYd8C8fCYAAMw7YF4+EwAA5h0wL58JAADzDpiXzwQAgHkHzMtnAgDAvAPm5fcJ0D9sicO0Ax3Au2ntlP14VTAAjCkwAYzD76UDAADsAZwNMAGc0+cSYJ4+AADAJcDcAAAAwLMAZwNMAOf02QSapw8AAHAJMDcAAHMAH9uzwUGCPXdSAAAAAElFTkSuQmCC) no-repeat;background-size:contain;cursor:pointer;transition:all .2s}.handHeaderContent .inner_header .colSpan .hide.rotate{transform:rotate(180deg)}.handHeaderContent .inner_header .saasInfo .img{align-items:center;justify-content:center;height:50px;margin-right:20px;cursor:pointer}.handHeaderContent .inner_header .saasInfo .img:hover .dropDown{display:block}.handHeaderContent .inner_header .saasInfo .img img{width:33px;height:33px;border-radius:50%;margin-right:5px;border:1px solid #eff2f5}.handHeaderContent .dropDown{position:absolute;right:10px;top:50px;width:170px;background:#fff;box-shadow:0 0 4px #1919191a;border-radius:2px;display:none;z-index:999}.handHeaderContent .dropDown .san{display:inline-block;width:10px;height:10px;border:1px solid #fff;border-top-style:none;border-right-style:none;transform:rotate(135deg);position:absolute;top:-4px;right:38px;background:#fff}.handHeaderContent .dropDown .user{padding:11px;align-items:center;border-bottom:1px solid #f5f5f5}.handHeaderContent .dropDown .user span{line-height:normal;font-size:14px}.handHeaderContent .dropDown .exit{font-size:14px;line-height:39px;height:39px;border-top:1px solid #EFF2F5;text-align:center;padding:0;color:#5a5a5a}.handHeaderContent .aside{height:100%;transition:all .2s;overflow:overlay;z-index:999;position:relative}.handHeaderContent .aside .init-el-menu{padding-bottom:38px}.handHeaderContent .aside.hideMenu .el-tooltip{text-align:center}.handHeaderContent .aside.hideMenu .el-submenu__title{text-align:center!important}.handHeaderContent .aside.hideMenu i.iconfont{margin-right:0}.handHeaderContent .aside.hideMenu .deldom,.handHeaderContent .aside.hideMenu .el-submenu__icon-arrow{display:none}.handHeaderContent .aside i.iconfont{font-size:18px;display:inline-block;width:18px;margin-right:8px;color:#747c81}.handHeaderContent .main{padding:0;background-color:#eff2f5}.handHeaderContent .main.scroll{overflow-y:scroll}.handHeaderContent .main.scroll .inner_content,.handHeaderContent .main.scroll .inner_content.normal{height:auto}.handHeaderContent .main.scrollX{overflow-x:scroll}.handHeaderContent .main .content_mar{padding:18px}.handHeaderContent .main .inner_content{background-color:#fff;height:calc(100vh - 86px);border-radius:4px}.handHeaderContent .main .inner_content.normal{background-color:transparent}.handHeaderContent .inner_footer{color:#666;text-align:center;padding-top:18px;justify-content:center}@keyframes changeRun{0%{transform:translateY(0) scale(.9)}25%{transform:translateY(-6px) scale(.9)}50%{transform:translateY(0) scale(.9)}75%{transform:translateY(-2px) scale(.9)}to{transform:translateY(0) scale(.9)}}.initNoData[data-v-0b0e3718]{width:100%;align-items:center;justify-content:center}.initNoData .inner[data-v-0b0e3718]{text-align:center}.initNoData .inner p[data-v-0b0e3718]{color:#666;margin-top:12px;line-height:normal}.initPaging[data-v-1d8ef8c9] .el-select__placeholder{text-align:center}.previewFix[data-v-14d38dc6]{width:100%;height:100%;position:fixed;top:0;left:0;z-index:9999;background-color:#00000080;display:flex;justify-content:center;align-items:center}.previewFix img[data-v-14d38dc6]{max-width:98%;max-height:98%}.status_search[data-v-e6bbcf18]{display:inline-block}.status_search span[data-v-e6bbcf18]{min-width:40px;height:30px;padding:0 10px;display:inline-block;text-align:center;line-height:30px;border:1px solid #d9d9d9;border-right:1px solid transparent;cursor:pointer}.status_search span[data-v-e6bbcf18]:first-child{border-radius:2px 0 0 2px}.status_search span[data-v-e6bbcf18]:last-child{border-radius:0 2px 2px 0;border-right:1px solid #d9d9d9}.status_search .active[data-v-e6bbcf18]{background:#06f;color:#fff;border-color:#06f}')),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}}();
|
|
1
|
+
!function(){"use strict";try{if("undefined"!=typeof document){var e=document.createElement("style");e.appendChild(document.createTextNode('@charset "UTF-8";*:not(svg),#app,html,body{margin:0;padding:0;font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,微软雅黑,Arial,sans-serif;font-size:12px}a{text-decoration:none;color:#5a5a5a}li{list-style:none}.flex{display:-webkit-flex;display:flex;display:-moz-box;display:-ms-flexbox}.flex_row{flex-direction:row}.flex_col{flex-direction:column}.initTextarea>.el-textarea__inner{resize:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent;border-radius:4px}::-webkit-scrollbar-thumb{background-color:transparent;border-radius:0}::-webkit-scrollbar-thumb:hover{background:#c2c2c2}::-webkit-scrollbar-corner{background:transparent}.common_show_scroll::-webkit-scrollbar-thumb{background:#c2c2c2}.tinymce-editor-JustOne *:not(h1,h2,h3,h4,h5,h6){font-size:inherit}.tinymce-editor-JustOne h1{font-size:32px}.tinymce-editor-JustOne h2{font-size:28px}.tinymce-editor-JustOne h3{font-size:24px}.tinymce-editor-JustOne h4{font-size:20px}.tinymce-editor-JustOne h5{font-size:16px}.tinymce-editor-JustOne h6{font-size:12px}.jddsDialog.el-dialog{border-radius:4px}.jddsDialog .el-dialog__title,.jddsDialog .zbt{font-size:16px;color:#272727;line-height:normal}.jddsDialog .el-dialog__body .el-form-item:last-child{margin-bottom:0}.jddsDialog .el-dialog__headerbtn{top:5px;right:0}.jddsDialog .btn{min-width:68px;height:32px;line-height:32px;border-radius:4px;padding:0}.jddsDialog .exit{font-size:14px}.jddsDialog .header-title{display:flex;align-items:center}.jddsDialog.el-dialog--center .header-title{justify-content:center}.JD_table.el-table:before{height:0!important}.JD_table.el-table{width:100%}.JD_table.el-table th,.JD_table.el-table th.el-table__cell{background-color:#eff2f580;padding:0;height:40px;line-height:40px;border-bottom:none!important}.JD_table.el-table th .cell,.JD_table.el-table th.el-table__cell .cell{font-weight:400;color:#999;text-align:left;white-space:nowrap}.JD_table.el-table td,.JD_table.el-table td.el-table__cell{padding:0;height:48px;line-height:48px}.JD_table.el-table td .cell,.JD_table.el-table td.el-table__cell .cell{line-height:normal}.el-table--group,.el-table--border{border:none!important}.el-table--group:after,.el-table--border:after{width:0!important}.el-table--border .el-table__cell,.el-table--border td{border-right:none!important}.el-table--border th.el-table__cell{border-right:1px solid #ebeef5!important}.el-table .cell{text-align:center!important}.el-table__header,.el-table__empty-block,.el-table__body{width:100%!important}.el-sub-menu__title{text-align:left!important}.el-sub-menu .el-menu-item{min-width:auto!important;padding-left:46px!important;position:relative}.el-sub-menu .el-menu-item:after{content:"";width:4px;height:4px;background:#7c878e;border-radius:50%;position:absolute;top:17px;left:26px}.el-sub-menu .el-menu .el-sub-menu .el-sub-menu__title{padding-left:46px!important}.el-sub-menu .el-menu .el-menu .el-menu-item{padding-left:60px!important}.el-sub-menu .el-menu .el-menu .el-menu-item:after{left:46px!important}.el-menu{border-right:none!important}.el-menu-item,.el-sub-menu__title{height:38px!important;line-height:38px!important;margin-top:2px}.el-menu-item *,.el-sub-menu__title *{vertical-align:middle}.el-submenu__title i.el-sub-menu__icon-arrow{color:#c0c5c7;font-weight:700}.el-message-box{width:400px!important}.initMsg_in{padding:20px 0!important}.initMsg_in .el-message-box__header{padding:0!important}.initMsg_in .el-message-box__header .el-message-box__headerbtn{display:none}.initMsg_in .el-message-box__header .el-message-box__status{font-size:50px!important}.initMsg_in .el-message-box__content{padding:20px 30px!important}.initMsg_in .el-message-box__content .el-message-box__message{letter-spacing:1px}.initMsg_in .el-message-box__btns{padding:0!important}.initMsg_in .el-message-box__btns button{min-width:100px;height:40px;border-radius:4px}.initMsg_in .el-message-box__btns button:nth-child(2){margin-left:20px!important}.defaultMsg_in .el-message-box__container{align-items:flex-start}.defaultMsg_in .el-message-box__title span{font-size:14px;font-weight:700}.defaultMsg_in .el-message-box__headerbtn{top:7px}.defaultMsg_in .el-message-box__status{top:0;transform:none;font-size:24px!important}.defaultMsg_in .el-message-box__btns button{min-width:68px;height:32px;border-radius:4px;border:none}.ieBro{position:fixed;padding:10px;z-index:9999;top:0;left:0;right:0;background:#fffade;border:1px solid #f9d878;justify-content:space-between}.ieBro span,.ieBro a{font-size:12px}.ieBro .color{text-decoration:underline}.mce-content-body[data-mce-placeholder]:not(.mce-visualblocks):before{content:""!important}.mainMenu[data-v-e79ba81c]{display:inline-block;position:relative}.mainMenu .elbadge[data-v-e79ba81c]{color:red;font-style:normal}.mainMenu .elbadge.hot[data-v-e79ba81c]:after{display:inline-block;content:"";width:8px;height:8px;background-color:red;border-radius:100%;transform:scale(.9);position:absolute;top:10px;right:-10px}.mainMenu .elbadge.new[data-v-e79ba81c]:after{display:inline-block;content:"new";background-color:red;color:#fff;padding:0 4px 1px;line-height:16px;border-radius:4px;transform:scale(.9);position:absolute;top:6px;right:-32px}.mainMenu .elbadge.run[data-v-e79ba81c]{display:inline-block;color:#fff;background-color:red;min-width:20px;padding:0 2px;text-align:center;height:16px;line-height:16px;border-radius:4px;animation:changeRun 1.5s ease-in-out 0s infinite}.mainMenu .elbadge.num[data-v-e79ba81c]{display:inline-block;background-color:red;color:#fff;width:20px;text-align:center;height:16px;line-height:16px;border-radius:4px;transform:scale(.9);position:absolute;top:6px;right:-22px}.mainMenu .elbadge.num.nine[data-v-e79ba81c]{width:26px;right:-28px}.mainMenu .elbadge.num.nine em[data-v-e79ba81c]{position:relative;top:-4px}.el-menu-item span[data-v-e79ba81c],.el-sub-menu__title span[data-v-e79ba81c]{font-size:14px}.handHeaderContent{position:relative;z-index:999;height:100vh}.handHeaderContent .el-container.is-vertical{position:relative}.handHeaderContent .inner_header{padding:0;background:#fff;justify-content:space-between;align-items:center;height:50px!important}.handHeaderContent .inner_header .colSpan{width:60px;background-color:transparent;justify-content:center;align-items:center}.handHeaderContent .inner_header .colSpan .hide{width:16px;height:16px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAA2hJREFUeF7t3Vtu5DAMRFFlZ9nZzKwsS0ugTBswGnnYLkqkVddAkC+1Q9YBrXb68dJae28cth14AYBt9p+FA8A7fwCY5w8AALAJtDbAHsA6fjaB5vEDAADcB/A2wB7AO3+eBprnDwAAcB/A2gB7AOv4eRpoHv9/AK/2XTBuQAfAYdwBABiHv70gxLwF3uUzAbzz/9wEchh3AADG4bMHMA8fAABgD+BugD2AuQAAAMC8A+blMwEAYN4B8/IrTIC/rbX+w5HQgWwAW/AASAg/+0ZQD/1Pa+0fEyAp/cfnA2ScfQu/nxsAGQk8zplxCdiHD4DE8DMuAc/hKwB4LWMAnpkT4KvwVQBvAT2wfohZAL4LHwDJ/GYA+Cl8ACwO4LfwAbAwgCPhA2BRAEfDB8CCAM6ED4DFAJwNHwALAbgSPgAWAXA1fAAsAEAJHwA3B6CGD4AbA4gIHwA3BRAVPgBuCCAyfADcDEB0+AC4EYAR4SsAklu3xumP/jt4VPgASHZ0BMDI8AFQHMDo8AFQGMCM8AFQFMCs8AFQEMDM8AFQDMDs8AFQCEBG+AAoAiArfAAUAJAZPgAAwLuDMw1sdwIzpwBvD08UsL8VnIUAAEUA9D8jAwEACgHIQACAYgBmIwBAQQAzEQCgKIBZCABQGMAMBAAoDmA0AgDcAMBIBFcB9E8J40OiRDxHXhO4P8WI+wQAEENUlp8FMGISAEBJUFx7BUA0AgCIISrLrwKIRAAAJUFxrQIgCgEAxBCV5SqACAQAUBIU10YAUBEAQAxRWR4FQEEAACVBcW0kgKsIACCGqCyPBnAFAQCUBMW1IwCcRQAAMURl+SgAZxAAQElQXDsSwFEEABBDVJaPBnAEAQCUBMW1MwD8hgAAYojK8lkAfkKgAFBqZ23CF0dGfm0cAQZ0YOYE2P7cZwRXJ0BA+TxEBoDnywEAEh1mAdgjAIApgA3B/ndiKzxPnTkB9nuCvi/gSOhABQAJZXPKrQMAMLcAAACYd8C8fCYAAMw7YF4+EwAA5h0wL58JAADzDpiXzwQAgHkHzMtnAgDAvAPm5fcJ0D9sicO0Ax3Au2ntlP14VTAAjCkwAYzD76UDAADsAZwNMAGc0+cSYJ4+AADAJcDcAAAAwLMAZwNMAOf02QSapw8AAHAJMDcAAHMAH9uzwUGCPXdSAAAAAElFTkSuQmCC) no-repeat;background-size:contain;cursor:pointer;transition:all .2s}.handHeaderContent .inner_header .colSpan .hide.rotate{transform:rotate(180deg)}.handHeaderContent .inner_header .saasInfo .img{align-items:center;justify-content:center;height:50px;margin-right:20px;cursor:pointer}.handHeaderContent .inner_header .saasInfo .img:hover .dropDown{display:block}.handHeaderContent .inner_header .saasInfo .img img{width:33px;height:33px;border-radius:50%;margin-right:5px;border:1px solid #eff2f5}.handHeaderContent .dropDown{position:absolute;right:10px;top:50px;width:170px;background:#fff;box-shadow:0 0 4px #1919191a;border-radius:2px;display:none;z-index:999}.handHeaderContent .dropDown .san{display:inline-block;width:10px;height:10px;border:1px solid #fff;border-top-style:none;border-right-style:none;transform:rotate(135deg);position:absolute;top:-4px;right:38px;background:#fff}.handHeaderContent .dropDown .user{padding:11px;align-items:center;border-bottom:1px solid #f5f5f5}.handHeaderContent .dropDown .user span{line-height:normal;font-size:14px}.handHeaderContent .dropDown .exit{font-size:14px;line-height:39px;height:39px;border-top:1px solid #EFF2F5;text-align:center;padding:0;color:#5a5a5a}.handHeaderContent .aside{height:100%;transition:all .2s;overflow:overlay;z-index:999;position:relative}.handHeaderContent .aside .init-el-menu{padding-bottom:38px}.handHeaderContent .aside.hideMenu .el-tooltip{text-align:center}.handHeaderContent .aside.hideMenu .el-submenu__title{text-align:center!important}.handHeaderContent .aside.hideMenu i.iconfont{margin-right:0}.handHeaderContent .aside.hideMenu .deldom,.handHeaderContent .aside.hideMenu .el-submenu__icon-arrow{display:none}.handHeaderContent .aside i.iconfont{font-size:18px;display:inline-block;width:18px;margin-right:8px;color:#747c81}.handHeaderContent .main{padding:0;background-color:#eff2f5}.handHeaderContent .main.scrollX{overflow-x:scroll}.handHeaderContent .main .content_mar{padding:18px 18px 0;display:flex;flex-direction:column;height:calc(100vh - 18px)}.handHeaderContent .main .contentTop{flex-shrink:0}.handHeaderContent .main .inner_content{background-color:#fff;flex:1;border-radius:4px}.handHeaderContent .main .inner_content.normal{background-color:transparent}.handHeaderContent .inner_footer{flex-shrink:0;color:#666;text-align:center;padding:18px 0;height:32px;justify-content:center}@keyframes changeRun{0%{transform:translateY(0) scale(.9)}25%{transform:translateY(-6px) scale(.9)}50%{transform:translateY(0) scale(.9)}75%{transform:translateY(-2px) scale(.9)}to{transform:translateY(0) scale(.9)}}.initNoData[data-v-0b0e3718]{width:100%;align-items:center;justify-content:center}.initNoData .inner[data-v-0b0e3718]{text-align:center}.initNoData .inner p[data-v-0b0e3718]{color:#666;margin-top:12px;line-height:normal}.initPaging[data-v-1d8ef8c9] .el-select__placeholder{text-align:center}.previewFix[data-v-14d38dc6]{width:100%;height:100%;position:fixed;top:0;left:0;z-index:9999;background-color:#00000080;display:flex;justify-content:center;align-items:center}.previewFix img[data-v-14d38dc6]{max-width:98%;max-height:98%}.status_search[data-v-e6bbcf18]{display:inline-block}.status_search span[data-v-e6bbcf18]{min-width:40px;height:30px;padding:0 10px;display:inline-block;text-align:center;line-height:30px;border:1px solid #d9d9d9;border-right:1px solid transparent;cursor:pointer}.status_search span[data-v-e6bbcf18]:first-child{border-radius:2px 0 0 2px}.status_search span[data-v-e6bbcf18]:last-child{border-radius:0 2px 2px 0;border-right:1px solid #d9d9d9}.status_search .active[data-v-e6bbcf18]{background:#06f;color:#fff;border-color:#06f}')),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}}();
|
|
2
2
|
import { ref, watch, openBlock, createElementBlock, createVNode, unref, withCtx, renderSlot, Fragment, normalizeStyle, normalizeClass, createTextVNode, toDisplayString, createCommentVNode, createBlock, createElementVNode, resolveComponent, renderList, computed, onMounted, nextTick } from "vue";
|
|
3
3
|
import { ElDialog, ElButton, ElMenuItem, ElSubMenu, ElContainer, ElAside, ElMenu, ElMain, ElHeader, ElIcon, ElConfigProvider, ElPagination, ElMessageBox } from "element-plus";
|
|
4
4
|
import { ArrowDown } from "@element-plus/icons-vue";
|
|
@@ -201,7 +201,7 @@ const _hoisted_8$1 = {
|
|
|
201
201
|
key: 0,
|
|
202
202
|
class: "elbadge hot"
|
|
203
203
|
};
|
|
204
|
-
const _hoisted_9 = {
|
|
204
|
+
const _hoisted_9$1 = {
|
|
205
205
|
key: 1,
|
|
206
206
|
class: "elbadge new"
|
|
207
207
|
};
|
|
@@ -294,7 +294,7 @@ const _sfc_main$5 = {
|
|
|
294
294
|
!__props.hideMenu ? (openBlock(), createElementBlock("div", _hoisted_7$1, [
|
|
295
295
|
createElementVNode("span", null, toDisplayString(__props.item.meta.title), 1),
|
|
296
296
|
__props.item.tips && __props.item.tips.name === "hot" ? (openBlock(), createElementBlock("em", _hoisted_8$1)) : createCommentVNode("", true),
|
|
297
|
-
__props.item.tips && __props.item.tips.name === "new" ? (openBlock(), createElementBlock("em", _hoisted_9)) : createCommentVNode("", true),
|
|
297
|
+
__props.item.tips && __props.item.tips.name === "new" ? (openBlock(), createElementBlock("em", _hoisted_9$1)) : createCommentVNode("", true),
|
|
298
298
|
__props.item.tips && __props.item.tips.name === "run" ? (openBlock(), createElementBlock("em", _hoisted_10, toDisplayString(__props.item.tips.value), 1)) : createCommentVNode("", true),
|
|
299
299
|
__props.item.tips && __props.item.tips.name === "num" && Number(__props.item.tips.value) < 100 ? (openBlock(), createElementBlock("em", _hoisted_11, toDisplayString(__props.item.tips.value), 1)) : createCommentVNode("", true),
|
|
300
300
|
__props.item.tips && __props.item.tips.name === "num" && Number(__props.item.tips.value) >= 100 ? (openBlock(), createElementBlock("em", _hoisted_12, [..._cache[1] || (_cache[1] = [
|
|
@@ -354,7 +354,8 @@ const _hoisted_4 = { class: "img flex flex_row" };
|
|
|
354
354
|
const _hoisted_5 = { class: "dropDown" };
|
|
355
355
|
const _hoisted_6 = { class: "user flex flex_row" };
|
|
356
356
|
const _hoisted_7 = { class: "content_mar" };
|
|
357
|
-
const _hoisted_8 =
|
|
357
|
+
const _hoisted_8 = { class: "contentTop" };
|
|
358
|
+
const _hoisted_9 = ["innerHTML"];
|
|
358
359
|
const _sfc_main$4 = {
|
|
359
360
|
__name: "handHeader",
|
|
360
361
|
props: {
|
|
@@ -391,17 +392,14 @@ const _sfc_main$4 = {
|
|
|
391
392
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
392
393
|
const props = __props;
|
|
393
394
|
const emit = __emit;
|
|
394
|
-
const addClass = ref(false);
|
|
395
395
|
const isScrollX = ref(false);
|
|
396
396
|
const newMenuList = ref([]);
|
|
397
397
|
const defaultOpen = ref([]);
|
|
398
398
|
const isIE = ref(false);
|
|
399
399
|
const hideMenu = ref(false);
|
|
400
|
-
const showFooter = ref(false);
|
|
401
400
|
const isNormal = ref(false);
|
|
402
401
|
const minWidth = ref(props.contentWidth);
|
|
403
402
|
const localDefaultActive = ref(props.defaultActive);
|
|
404
|
-
const mainRef = ref(null);
|
|
405
403
|
const completeWidth = computed(() => {
|
|
406
404
|
return hideMenu.value ? "64px" : `${props.width}px`;
|
|
407
405
|
});
|
|
@@ -445,51 +443,6 @@ const _sfc_main$4 = {
|
|
|
445
443
|
}
|
|
446
444
|
}
|
|
447
445
|
};
|
|
448
|
-
const loadImg = (content) => {
|
|
449
|
-
let mulitImg = [];
|
|
450
|
-
if (content.includes("<img")) {
|
|
451
|
-
content.replace(
|
|
452
|
-
/<img [^>]*src=['"]([^'"]+)[^>]*>/gi,
|
|
453
|
-
(matcherStr, capture) => {
|
|
454
|
-
mulitImg.push(capture);
|
|
455
|
-
}
|
|
456
|
-
);
|
|
457
|
-
let promiseAll = [], img = [];
|
|
458
|
-
for (let i = 0; i < mulitImg.length; i++) {
|
|
459
|
-
promiseAll[i] = new Promise((resolve) => {
|
|
460
|
-
img[i] = new Image();
|
|
461
|
-
img[i].src = mulitImg[i];
|
|
462
|
-
img[i].onload = function() {
|
|
463
|
-
resolve(img[i]);
|
|
464
|
-
};
|
|
465
|
-
});
|
|
466
|
-
}
|
|
467
|
-
Promise.all(promiseAll).then(() => {
|
|
468
|
-
getMainHeight();
|
|
469
|
-
});
|
|
470
|
-
} else {
|
|
471
|
-
getMainHeight();
|
|
472
|
-
}
|
|
473
|
-
};
|
|
474
|
-
const getMainHeight = (flag) => {
|
|
475
|
-
addClass.value = false;
|
|
476
|
-
setTimeout(() => {
|
|
477
|
-
const mainContainer = document.querySelector(".main_container");
|
|
478
|
-
if (mainContainer) {
|
|
479
|
-
const innerContent = document.querySelector(".main_container .inner_content");
|
|
480
|
-
const contentDiv = document.querySelector(".main_container .inner_content>div");
|
|
481
|
-
if (innerContent && contentDiv) {
|
|
482
|
-
const mainHeight = innerContent.offsetHeight;
|
|
483
|
-
const conHeight = contentDiv.offsetHeight;
|
|
484
|
-
addClass.value = conHeight > mainHeight;
|
|
485
|
-
showFooter.value = true;
|
|
486
|
-
if (!flag && addClass.value && mainRef.value) {
|
|
487
|
-
mainRef.value.scrollTop = 0;
|
|
488
|
-
}
|
|
489
|
-
}
|
|
490
|
-
}
|
|
491
|
-
}, 0);
|
|
492
|
-
};
|
|
493
446
|
const setMinWidth = (width) => {
|
|
494
447
|
isScrollX.value = width < minWidth.value;
|
|
495
448
|
const innerHeader = document.querySelector(".main_container .inner_header");
|
|
@@ -533,23 +486,17 @@ const _sfc_main$4 = {
|
|
|
533
486
|
minWidth.value = windowWidth > minWidth.value ? minWidth.value - props.width : windowWidth - props.width;
|
|
534
487
|
browser();
|
|
535
488
|
nextTick(() => {
|
|
536
|
-
getMenu();
|
|
537
489
|
setMinWidth(mainDefalutWidth);
|
|
538
490
|
window.addEventListener("resize", debounce2(() => {
|
|
539
491
|
mainDefalutWidth = document.body.clientWidth - props.width;
|
|
540
492
|
setMinWidth(mainDefalutWidth);
|
|
541
|
-
setTimeout(() => {
|
|
542
|
-
getMainHeight();
|
|
543
|
-
}, 0);
|
|
544
493
|
}));
|
|
545
494
|
});
|
|
546
495
|
});
|
|
547
496
|
__expose({
|
|
548
497
|
getMenu,
|
|
549
498
|
setMenuActive,
|
|
550
|
-
setNormal
|
|
551
|
-
loadImg,
|
|
552
|
-
getMainHeight
|
|
499
|
+
setNormal
|
|
553
500
|
});
|
|
554
501
|
return (_ctx, _cache) => {
|
|
555
502
|
return openBlock(), createBlock(unref(ElContainer), { class: "handHeaderContent" }, {
|
|
@@ -599,9 +546,7 @@ const _sfc_main$4 = {
|
|
|
599
546
|
_: 3
|
|
600
547
|
}, 8, ["class", "width"]),
|
|
601
548
|
createVNode(unref(ElMain), {
|
|
602
|
-
class: normalizeClass(["main main_container", {
|
|
603
|
-
ref_key: "mainRef",
|
|
604
|
-
ref: mainRef
|
|
549
|
+
class: normalizeClass(["main main_container", { scrollX: isScrollX.value }])
|
|
605
550
|
}, {
|
|
606
551
|
default: withCtx(() => [
|
|
607
552
|
createVNode(unref(ElHeader), { class: "header flex flex_row inner_header" }, {
|
|
@@ -652,6 +597,9 @@ const _sfc_main$4 = {
|
|
|
652
597
|
_: 3
|
|
653
598
|
}),
|
|
654
599
|
createElementVNode("div", _hoisted_7, [
|
|
600
|
+
createElementVNode("div", _hoisted_8, [
|
|
601
|
+
renderSlot(_ctx.$slots, "contentTop")
|
|
602
|
+
]),
|
|
655
603
|
createElementVNode("div", {
|
|
656
604
|
class: normalizeClass(["content inner_content", { normal: isNormal.value }])
|
|
657
605
|
}, [
|
|
@@ -659,11 +607,10 @@ const _sfc_main$4 = {
|
|
|
659
607
|
renderSlot(_ctx.$slots, "content")
|
|
660
608
|
])
|
|
661
609
|
], 2),
|
|
662
|
-
|
|
663
|
-
key: 0,
|
|
610
|
+
createElementVNode("div", {
|
|
664
611
|
class: "footer flex flex_col inner_footer",
|
|
665
612
|
innerHTML: __props.userInfo.copyRight
|
|
666
|
-
}, null, 8,
|
|
613
|
+
}, null, 8, _hoisted_9)
|
|
667
614
|
])
|
|
668
615
|
]),
|
|
669
616
|
_: 3
|
package/package.json
CHANGED
package/src/App.vue
CHANGED
|
@@ -32,6 +32,13 @@
|
|
|
32
32
|
<li>2</li>
|
|
33
33
|
</ul>
|
|
34
34
|
</template>
|
|
35
|
+
<template #contentTop>
|
|
36
|
+
<div class="ttt" style="background-color: red;margin-bottom:18px;">
|
|
37
|
+
<h6>内容展示区域头部</h6>
|
|
38
|
+
<h6>内容展示区域头部</h6>
|
|
39
|
+
<h6>内容展示区域头部</h6>
|
|
40
|
+
</div>
|
|
41
|
+
</template>
|
|
35
42
|
<template #content>
|
|
36
43
|
<div class="lll">
|
|
37
44
|
<h6>Tab</h6>
|
|
@@ -43,7 +50,12 @@
|
|
|
43
50
|
<div>
|
|
44
51
|
<hand-paging :currentPage="handPagingRef.page" :total="handPagingRef.total" :pageSize="handPagingRef.pageSize" :size="handPagingRef.size" @page-change="handlePageChange" />
|
|
45
52
|
</div>
|
|
46
|
-
|
|
53
|
+
<div v-if="showImg">
|
|
54
|
+
<div v-for="(item,index) in 10" :key="index">
|
|
55
|
+
<p>{{index}}+ {{new Date().toLocaleString()}}</p>
|
|
56
|
+
<img src="https://v2-saas-1259468876.cos.ap-shanghai.myqcloud.com/system/admin/3c82217d4753dd50ccd9ae19d939f1b9.jpg" alt="" style="width:120px;height: 120px;">
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
47
59
|
<h6>空数据提示</h6>
|
|
48
60
|
<hand-no-data title="暂无数据" />
|
|
49
61
|
<h6>弹窗</h6>
|
|
@@ -229,8 +241,14 @@ const copyBack = (err, success) => {
|
|
|
229
241
|
//#endregion 自定义指令
|
|
230
242
|
//#region 菜单组件
|
|
231
243
|
const menuRef = ref(null)
|
|
244
|
+
|
|
245
|
+
const showImg = ref(false)
|
|
232
246
|
onMounted(() => {
|
|
233
|
-
menuRef.value.
|
|
247
|
+
menuRef.value.getMenu()
|
|
248
|
+
// menuRef.value.setNormal(true)
|
|
249
|
+
// setTimeout(() => {
|
|
250
|
+
// showImg.value = true
|
|
251
|
+
// }, 3000)
|
|
234
252
|
})
|
|
235
253
|
//#endregion 菜单组件
|
|
236
254
|
const inputNumber = ref('')
|
|
@@ -0,0 +1,565 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<ElContainer class="handHeaderContent">
|
|
3
|
+
<!-- 左右两边分 -->
|
|
4
|
+
<div class="ieBro flex flex_row" v-if="isIE">
|
|
5
|
+
<span>
|
|
6
|
+
当前浏览器版本过低,使用效果可能欠佳,建议前往下载
|
|
7
|
+
<a href="http://chrome.wlxb49.cn/" target="_blank" class="color"
|
|
8
|
+
>谷歌浏览器</a
|
|
9
|
+
></span
|
|
10
|
+
>
|
|
11
|
+
<span>
|
|
12
|
+
<a href="javascript:;" @click="closeIETips">x</a>
|
|
13
|
+
</span>
|
|
14
|
+
</div>
|
|
15
|
+
<!-- el-aside -->
|
|
16
|
+
<ElAside class="aside" :class="{'hideMenu': hideMenu}" :width="completeWidth">
|
|
17
|
+
<!-- 侧边栏系统名称展示区域 -->
|
|
18
|
+
<slot name="headElseTitle"></slot>
|
|
19
|
+
<ElMenu
|
|
20
|
+
class="el-menu-vertical-demo init-el-menu"
|
|
21
|
+
:default-active="localDefaultActive"
|
|
22
|
+
router
|
|
23
|
+
:default-openeds="defaultOpen"
|
|
24
|
+
:collapse="hideMenu"
|
|
25
|
+
:collapse-transition="false"
|
|
26
|
+
>
|
|
27
|
+
<sidebar-item v-for="menu in newMenuList" :key="menu.path" :item="menu" :hideMenu="hideMenu" />
|
|
28
|
+
</ElMenu>
|
|
29
|
+
</ElAside>
|
|
30
|
+
<ElMain :class="['main main_container',{ scroll: addClass, scrollX: isScrollX}]" ref="mainRef">
|
|
31
|
+
<ElHeader class="header flex flex_row inner_header">
|
|
32
|
+
<div class="imLeft flex flex_row">
|
|
33
|
+
<template v-if="collapse">
|
|
34
|
+
<div class="colSpan flex flex_row" @click="toggleHide">
|
|
35
|
+
<i :class="['hide', { rotate: hideMenu }]"></i>
|
|
36
|
+
</div>
|
|
37
|
+
</template>
|
|
38
|
+
<!-- 头部信息补充展示区域 -- 左边 -->
|
|
39
|
+
<slot name="headElseInfo"></slot>
|
|
40
|
+
</div>
|
|
41
|
+
<ul class="saasInfo flex flex_row">
|
|
42
|
+
<!-- 头部信息补充展示区域 -- 右边 -->
|
|
43
|
+
<slot name="headElseInfoRight"></slot>
|
|
44
|
+
<li class="img flex flex_row">
|
|
45
|
+
<img src="@/assets/img/portrait.jpg" alt />
|
|
46
|
+
<el-icon size="14"><ArrowDown /></el-icon>
|
|
47
|
+
<!-- 下拉框 -->
|
|
48
|
+
<div class="dropDown">
|
|
49
|
+
<em class="san"></em>
|
|
50
|
+
<div class="user flex flex_row">
|
|
51
|
+
<img src="@/assets/img/portrait.jpg" alt />
|
|
52
|
+
<span>{{ userInfo.name }}</span>
|
|
53
|
+
</div>
|
|
54
|
+
<!-- 头部信息操作展示区域 -->
|
|
55
|
+
<slot name="headElseHand"></slot>
|
|
56
|
+
<div class="exit" @click="outSystem">退出</div>
|
|
57
|
+
</div>
|
|
58
|
+
</li>
|
|
59
|
+
</ul>
|
|
60
|
+
</ElHeader>
|
|
61
|
+
<div class="content_mar">
|
|
62
|
+
<div class="content inner_content" :class="{ normal: isNormal }">
|
|
63
|
+
<!-- 内容展示区域 -->
|
|
64
|
+
<div>
|
|
65
|
+
<slot name="content"></slot>
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
<div class="footer flex flex_col inner_footer" v-html="userInfo.copyRight" v-if="showFooter"></div>
|
|
69
|
+
</div>
|
|
70
|
+
</ElMain>
|
|
71
|
+
</ElContainer>
|
|
72
|
+
</template>
|
|
73
|
+
|
|
74
|
+
<script setup>
|
|
75
|
+
/**
|
|
76
|
+
* 头部布局组件
|
|
77
|
+
* 功能:包含侧边栏菜单、头部导航、用户信息和内容区域的完整布局
|
|
78
|
+
*/
|
|
79
|
+
|
|
80
|
+
// 导入Vue响应式API
|
|
81
|
+
import { ref, computed, onMounted, nextTick } from 'vue'
|
|
82
|
+
// 导入Element Plus组件
|
|
83
|
+
import { ElContainer, ElAside, ElMenu, ElMain, ElHeader ,ElIcon} from 'element-plus'
|
|
84
|
+
import { ArrowDown } from '@element-plus/icons-vue'
|
|
85
|
+
|
|
86
|
+
// 导入子组件
|
|
87
|
+
import sidebarItem from './sidebarItem.vue'
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* 组件属性定义
|
|
91
|
+
* @property {Object} menuList - 导航列表(包含name系统名称和list菜单列表)
|
|
92
|
+
* @property {string} defaultActive - 默认选中的菜单路径
|
|
93
|
+
* @property {boolean} collapse - 是否启用折叠功能
|
|
94
|
+
* @property {number} width - 侧边栏宽度
|
|
95
|
+
* @property {number} contentWidth - 内容模块宽度
|
|
96
|
+
* @property {Object} userInfo - 用户信息
|
|
97
|
+
* @property {boolean} showDefaltOpen - 是否默认展开所有菜单项
|
|
98
|
+
*/
|
|
99
|
+
const props = defineProps({
|
|
100
|
+
menuList: {
|
|
101
|
+
type: Object,
|
|
102
|
+
default: () => ({})
|
|
103
|
+
},
|
|
104
|
+
defaultActive: {
|
|
105
|
+
type: String,
|
|
106
|
+
default: "/"
|
|
107
|
+
},
|
|
108
|
+
collapse: {
|
|
109
|
+
type: Boolean,
|
|
110
|
+
default: false
|
|
111
|
+
},
|
|
112
|
+
width: {
|
|
113
|
+
type: Number,
|
|
114
|
+
default: 180
|
|
115
|
+
},
|
|
116
|
+
contentWidth: {
|
|
117
|
+
type: Number,
|
|
118
|
+
default: 1200
|
|
119
|
+
},
|
|
120
|
+
userInfo: {
|
|
121
|
+
type: Object,
|
|
122
|
+
default: () => ({})
|
|
123
|
+
},
|
|
124
|
+
showDefaltOpen: {
|
|
125
|
+
type: Boolean,
|
|
126
|
+
default: true
|
|
127
|
+
}
|
|
128
|
+
})
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* 事件定义
|
|
132
|
+
* @event toggleHide - 折叠/展开事件
|
|
133
|
+
* @event exitSystem - 退出系统事件
|
|
134
|
+
*/
|
|
135
|
+
const emit = defineEmits(['toggleHide', 'exitSystem'])
|
|
136
|
+
|
|
137
|
+
// 响应式数据定义
|
|
138
|
+
const addClass = ref(false) // 动态添加是否有滚动
|
|
139
|
+
const isScrollX = ref(false) // 判断是否出现横向滚动条
|
|
140
|
+
const newMenuList = ref([]) // 获取新的菜单
|
|
141
|
+
const defaultOpen = ref([]) // 默认打开的菜单
|
|
142
|
+
const isIE = ref(false) // 是否是ie浏览器
|
|
143
|
+
const hideMenu = ref(false) // 是否隐藏菜单
|
|
144
|
+
const showFooter = ref(false) // 效果展示优化
|
|
145
|
+
const isNormal = ref(false) // 是否需要透明背景
|
|
146
|
+
const minWidth = ref(props.contentWidth) // 内容模块的默认最小宽度
|
|
147
|
+
const localDefaultActive = ref(props.defaultActive) // 本地默认选中菜单
|
|
148
|
+
const mainRef = ref(null) // main容器引用
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* 收起和展开时 aside 的宽度
|
|
152
|
+
* @returns {string} 宽度值
|
|
153
|
+
*/
|
|
154
|
+
const completeWidth = computed(() => {
|
|
155
|
+
return hideMenu.value ? '64px' : `${props.width}px`
|
|
156
|
+
})
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* 主模块默认宽度
|
|
160
|
+
* @type {number}
|
|
161
|
+
*/
|
|
162
|
+
let mainDefalutWidth = document.body.clientWidth - props.width
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* 函数防抖
|
|
166
|
+
* @param {Function} fn - 需要防抖的函数
|
|
167
|
+
* @param {number} delay - 延迟时间(默认200ms)
|
|
168
|
+
* @returns {Function} 防抖后的函数
|
|
169
|
+
*/
|
|
170
|
+
const debounce = (fn, delay = 200) => {
|
|
171
|
+
let timer = null
|
|
172
|
+
return function () {
|
|
173
|
+
clearTimeout(timer)
|
|
174
|
+
timer = setTimeout(() => {
|
|
175
|
+
fn.apply(this, arguments)
|
|
176
|
+
}, delay)
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* 过滤隐藏的菜单项并递归处理子菜单
|
|
182
|
+
* @param {Array} datas - 菜单数据
|
|
183
|
+
* @returns {Array} 过滤后的菜单列表
|
|
184
|
+
*/
|
|
185
|
+
const getAllName = (datas) => {
|
|
186
|
+
return datas.filter(item => !item.hidden).map(item => {
|
|
187
|
+
item = Object.assign({}, item)
|
|
188
|
+
if (item.children) {
|
|
189
|
+
item.children = getAllName(item.children)
|
|
190
|
+
}
|
|
191
|
+
return item
|
|
192
|
+
})
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* 处理传入的导航菜单
|
|
197
|
+
*/
|
|
198
|
+
const getMenu = () => {
|
|
199
|
+
newMenuList.value = getAllName(props.menuList.list || [])
|
|
200
|
+
defaultOpen.value = []
|
|
201
|
+
getOpen()
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* 折叠/展开菜单
|
|
206
|
+
*/
|
|
207
|
+
const toggleHide = () => {
|
|
208
|
+
hideMenu.value = !hideMenu.value
|
|
209
|
+
defaultOpen.value = []
|
|
210
|
+
getOpen()
|
|
211
|
+
emit('toggleHide', hideMenu.value)
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* 获取默认打开的菜单项
|
|
216
|
+
* @param {Array} datas - 菜单数据(默认为newMenuList)
|
|
217
|
+
*/
|
|
218
|
+
const getOpen = (datas = newMenuList.value) => {
|
|
219
|
+
if (props.showDefaltOpen) {
|
|
220
|
+
for (const i in datas) {
|
|
221
|
+
defaultOpen.value.push(datas[i].path)
|
|
222
|
+
if (datas[i].children) {
|
|
223
|
+
getOpen(datas[i].children)
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* 等待图片加载完成后获取主容器高度
|
|
231
|
+
* @param {string} content - HTML内容
|
|
232
|
+
*/
|
|
233
|
+
const loadImg = (content) => {
|
|
234
|
+
let mulitImg = []
|
|
235
|
+
if (content.includes("<img")) {
|
|
236
|
+
content.replace(
|
|
237
|
+
/<img [^>]*src=['"]([^'"]+)[^>]*>/gi,
|
|
238
|
+
(matcherStr, capture) => {
|
|
239
|
+
mulitImg.push(capture)
|
|
240
|
+
}
|
|
241
|
+
)
|
|
242
|
+
let promiseAll = [], img = []
|
|
243
|
+
for (let i = 0; i < mulitImg.length; i++) {
|
|
244
|
+
promiseAll[i] = new Promise((resolve) => {
|
|
245
|
+
img[i] = new Image()
|
|
246
|
+
img[i].src = mulitImg[i]
|
|
247
|
+
img[i].onload = function () {
|
|
248
|
+
resolve(img[i])
|
|
249
|
+
}
|
|
250
|
+
})
|
|
251
|
+
}
|
|
252
|
+
Promise.all(promiseAll).then(() => {
|
|
253
|
+
getMainHeight()
|
|
254
|
+
})
|
|
255
|
+
} else {
|
|
256
|
+
getMainHeight()
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* 获取内容模块的滚动条状态
|
|
262
|
+
* @param {boolean} flag - 是否跳过滚动条置顶
|
|
263
|
+
*/
|
|
264
|
+
const getMainHeight = (flag) => {
|
|
265
|
+
addClass.value = false
|
|
266
|
+
setTimeout(() => {
|
|
267
|
+
const mainContainer = document.querySelector(".main_container")
|
|
268
|
+
if (mainContainer) {
|
|
269
|
+
const innerContent = document.querySelector(".main_container .inner_content")
|
|
270
|
+
const contentDiv = document.querySelector(".main_container .inner_content>div")
|
|
271
|
+
|
|
272
|
+
if (innerContent && contentDiv) {
|
|
273
|
+
const mainHeight = innerContent.offsetHeight
|
|
274
|
+
const conHeight = contentDiv.offsetHeight
|
|
275
|
+
|
|
276
|
+
addClass.value = conHeight > mainHeight
|
|
277
|
+
showFooter.value = true
|
|
278
|
+
|
|
279
|
+
if (!flag && addClass.value && mainRef.value) {
|
|
280
|
+
mainRef.value.scrollTop = 0
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}, 0)
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* 设置内容模块最小宽度
|
|
289
|
+
* @param {number} width - 当前窗口宽度
|
|
290
|
+
*/
|
|
291
|
+
const setMinWidth = (width) => {
|
|
292
|
+
isScrollX.value = width < minWidth.value
|
|
293
|
+
|
|
294
|
+
const innerHeader = document.querySelector(".main_container .inner_header")
|
|
295
|
+
const contentMar = document.querySelector(".main_container .content_mar")
|
|
296
|
+
|
|
297
|
+
if (isScrollX.value) {
|
|
298
|
+
if (innerHeader) {
|
|
299
|
+
innerHeader.setAttribute("style", `min-width:${minWidth.value}px;`)
|
|
300
|
+
}
|
|
301
|
+
if (contentMar) {
|
|
302
|
+
contentMar.setAttribute("style", `min-width:${minWidth.value - 36}px;`)
|
|
303
|
+
}
|
|
304
|
+
} else {
|
|
305
|
+
if (innerHeader) {
|
|
306
|
+
innerHeader.removeAttribute("style")
|
|
307
|
+
}
|
|
308
|
+
if (contentMar) {
|
|
309
|
+
contentMar.removeAttribute("style")
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* 设置菜单选中状态
|
|
316
|
+
* @param {string} path - 菜单路径
|
|
317
|
+
*/
|
|
318
|
+
const setMenuActive = (path) => {
|
|
319
|
+
localDefaultActive.value = ''
|
|
320
|
+
nextTick(() => {
|
|
321
|
+
localDefaultActive.value = path
|
|
322
|
+
})
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
/**
|
|
326
|
+
* 判断是否在 content inner_content 类名上添加 normal 类名
|
|
327
|
+
*/
|
|
328
|
+
const setNormal = (value) => {
|
|
329
|
+
isNormal.value = value
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
/**
|
|
333
|
+
* 退出系统
|
|
334
|
+
*/
|
|
335
|
+
const outSystem = () => {
|
|
336
|
+
emit('exitSystem')
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
* 判断是否是 IE 浏览器
|
|
341
|
+
*/
|
|
342
|
+
const browser = () => {
|
|
343
|
+
isIE.value = !!window.ActiveXObject || "ActiveXObject" in window
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* 关闭 IE 提示
|
|
348
|
+
*/
|
|
349
|
+
const closeIETips = () => {
|
|
350
|
+
isIE.value = false
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
/**
|
|
354
|
+
* 组件挂载时初始化
|
|
355
|
+
*/
|
|
356
|
+
onMounted(() => {
|
|
357
|
+
const windowWidth = window.screen.availWidth
|
|
358
|
+
minWidth.value = windowWidth > minWidth.value ? (minWidth.value - props.width) : (windowWidth - props.width)
|
|
359
|
+
|
|
360
|
+
browser()
|
|
361
|
+
|
|
362
|
+
nextTick(() => {
|
|
363
|
+
getMenu()
|
|
364
|
+
setMinWidth(mainDefalutWidth)
|
|
365
|
+
// 监听窗口大小变化
|
|
366
|
+
window.addEventListener('resize', debounce(() => {
|
|
367
|
+
mainDefalutWidth = document.body.clientWidth - props.width
|
|
368
|
+
setMinWidth(mainDefalutWidth)
|
|
369
|
+
setTimeout(() => {
|
|
370
|
+
getMainHeight()
|
|
371
|
+
}, 0)
|
|
372
|
+
}))
|
|
373
|
+
})
|
|
374
|
+
})
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* 暴露方法给父组件调用
|
|
378
|
+
*/
|
|
379
|
+
defineExpose({
|
|
380
|
+
getMenu,
|
|
381
|
+
setMenuActive,
|
|
382
|
+
setNormal,
|
|
383
|
+
loadImg,
|
|
384
|
+
getMainHeight
|
|
385
|
+
})
|
|
386
|
+
</script>
|
|
387
|
+
|
|
388
|
+
<style lang="scss">
|
|
389
|
+
.handHeaderContent {
|
|
390
|
+
position: relative;
|
|
391
|
+
z-index: 999;
|
|
392
|
+
height: 100vh;
|
|
393
|
+
.el-container.is-vertical{
|
|
394
|
+
position: relative;
|
|
395
|
+
}
|
|
396
|
+
.inner_header {
|
|
397
|
+
padding: 0;
|
|
398
|
+
background: #fff;
|
|
399
|
+
justify-content: space-between;
|
|
400
|
+
align-items: center;
|
|
401
|
+
height: 50px !important;
|
|
402
|
+
.colSpan {
|
|
403
|
+
width: 60px;
|
|
404
|
+
background-color: transparent;
|
|
405
|
+
justify-content: center;
|
|
406
|
+
align-items: center;
|
|
407
|
+
.hide {
|
|
408
|
+
width: 16px;
|
|
409
|
+
height: 16px;
|
|
410
|
+
background: url("@/assets/img/hide.png") no-repeat;
|
|
411
|
+
background-size: contain;
|
|
412
|
+
cursor: pointer;
|
|
413
|
+
transition: all 0.2s;
|
|
414
|
+
&.rotate {
|
|
415
|
+
transform: rotateZ(180deg);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
.saasInfo {
|
|
420
|
+
.img {
|
|
421
|
+
align-items: center;
|
|
422
|
+
justify-content: center;
|
|
423
|
+
height: 50px;
|
|
424
|
+
margin-right: 20px;
|
|
425
|
+
cursor: pointer;
|
|
426
|
+
&:hover .dropDown {
|
|
427
|
+
display: block;
|
|
428
|
+
}
|
|
429
|
+
img {
|
|
430
|
+
width: 33px;
|
|
431
|
+
height: 33px;
|
|
432
|
+
border-radius: 50%;
|
|
433
|
+
margin-right: 5px;
|
|
434
|
+
border: 1px solid #eff2f5;
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
.dropDown {
|
|
440
|
+
position: absolute;
|
|
441
|
+
right: 10px;
|
|
442
|
+
top: 50px;
|
|
443
|
+
width: 170px;
|
|
444
|
+
background: #ffffff;
|
|
445
|
+
box-shadow: 0px 0px 4px 0px rgba(25, 25, 25, 0.1);
|
|
446
|
+
border-radius: 2px;
|
|
447
|
+
display: none;
|
|
448
|
+
z-index: 999;
|
|
449
|
+
.san {
|
|
450
|
+
display: inline-block;
|
|
451
|
+
width: 10px;
|
|
452
|
+
height: 10px;
|
|
453
|
+
border: 1px solid #fff;
|
|
454
|
+
border-top-style: none;
|
|
455
|
+
border-right-style: none;
|
|
456
|
+
transform: rotate(135deg);
|
|
457
|
+
position: absolute;
|
|
458
|
+
top: -4px;
|
|
459
|
+
right: 38px;
|
|
460
|
+
background: #fff;
|
|
461
|
+
}
|
|
462
|
+
.user {
|
|
463
|
+
padding: 11px;
|
|
464
|
+
align-items: center;
|
|
465
|
+
border-bottom: 1px solid #f5f5f5;
|
|
466
|
+
span {
|
|
467
|
+
line-height: normal;
|
|
468
|
+
font-size: 14px;
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
.exit {
|
|
472
|
+
font-size: 14px;
|
|
473
|
+
line-height: 39px;
|
|
474
|
+
height: 39px;
|
|
475
|
+
border-top: 1px solid #EFF2F5;
|
|
476
|
+
text-align: center;
|
|
477
|
+
padding: 0;
|
|
478
|
+
color: #5a5a5a;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
.aside {
|
|
482
|
+
height: 100%;
|
|
483
|
+
transition: all .2s;
|
|
484
|
+
overflow: overlay;
|
|
485
|
+
// background-color: #0d1829;
|
|
486
|
+
z-index: 999;
|
|
487
|
+
position: relative;
|
|
488
|
+
.init-el-menu{
|
|
489
|
+
padding-bottom: 38px;
|
|
490
|
+
}
|
|
491
|
+
&.hideMenu{
|
|
492
|
+
.el-tooltip{
|
|
493
|
+
text-align: center;
|
|
494
|
+
}
|
|
495
|
+
.el-submenu__title{
|
|
496
|
+
text-align: center !important;
|
|
497
|
+
}
|
|
498
|
+
i.iconfont{
|
|
499
|
+
margin-right: 0;
|
|
500
|
+
}
|
|
501
|
+
.deldom,.el-submenu__icon-arrow{
|
|
502
|
+
display: none;
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
i.iconfont {
|
|
506
|
+
font-size: 18px;
|
|
507
|
+
display: inline-block;
|
|
508
|
+
width: 18px;
|
|
509
|
+
margin-right: 8px;
|
|
510
|
+
color: #747C81;
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
.main {
|
|
514
|
+
padding: 0;
|
|
515
|
+
background-color: #eff2f5;
|
|
516
|
+
&.scroll {
|
|
517
|
+
overflow-y: scroll;
|
|
518
|
+
.inner_content {
|
|
519
|
+
height: auto;
|
|
520
|
+
&.normal {
|
|
521
|
+
height: auto;
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
&.scrollX {
|
|
526
|
+
overflow-x: scroll;
|
|
527
|
+
}
|
|
528
|
+
.content_mar{
|
|
529
|
+
padding: 18px;
|
|
530
|
+
}
|
|
531
|
+
.inner_content {
|
|
532
|
+
background-color: #fff;
|
|
533
|
+
height: calc(100vh - 50px - 36px);
|
|
534
|
+
border-radius: 4px;
|
|
535
|
+
&.normal {
|
|
536
|
+
background-color: transparent;
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
.inner_footer {
|
|
541
|
+
color: #666666;
|
|
542
|
+
text-align: center;
|
|
543
|
+
padding-top: 18px;
|
|
544
|
+
justify-content: center;
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
@keyframes changeRun {
|
|
549
|
+
0% {
|
|
550
|
+
transform: translateY(0) scale(.9);
|
|
551
|
+
}
|
|
552
|
+
25% {
|
|
553
|
+
transform: translateY(-6px) scale(.9);
|
|
554
|
+
}
|
|
555
|
+
50% {
|
|
556
|
+
transform: translateY(0) scale(.9);
|
|
557
|
+
}
|
|
558
|
+
75% {
|
|
559
|
+
transform: translateY(-2px) scale(.9);
|
|
560
|
+
}
|
|
561
|
+
100% {
|
|
562
|
+
transform: translateY(0) scale(.9);
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
</style>
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
<sidebar-item v-for="menu in newMenuList" :key="menu.path" :item="menu" :hideMenu="hideMenu" />
|
|
28
28
|
</ElMenu>
|
|
29
29
|
</ElAside>
|
|
30
|
-
<ElMain :class="['main main_container',{
|
|
30
|
+
<ElMain :class="['main main_container',{ scrollX: isScrollX}]">
|
|
31
31
|
<ElHeader class="header flex flex_row inner_header">
|
|
32
32
|
<div class="imLeft flex flex_row">
|
|
33
33
|
<template v-if="collapse">
|
|
@@ -59,13 +59,17 @@
|
|
|
59
59
|
</ul>
|
|
60
60
|
</ElHeader>
|
|
61
61
|
<div class="content_mar">
|
|
62
|
+
<!-- 内容展示区域头部 -->
|
|
63
|
+
<div class="contentTop">
|
|
64
|
+
<slot name="contentTop"></slot>
|
|
65
|
+
</div>
|
|
62
66
|
<div class="content inner_content" :class="{ normal: isNormal }">
|
|
63
67
|
<!-- 内容展示区域 -->
|
|
64
68
|
<div>
|
|
65
69
|
<slot name="content"></slot>
|
|
66
70
|
</div>
|
|
67
71
|
</div>
|
|
68
|
-
<div class="footer flex flex_col inner_footer" v-html="userInfo.copyRight"
|
|
72
|
+
<div class="footer flex flex_col inner_footer" v-html="userInfo.copyRight"></div>
|
|
69
73
|
</div>
|
|
70
74
|
</ElMain>
|
|
71
75
|
</ElContainer>
|
|
@@ -135,17 +139,14 @@ const props = defineProps({
|
|
|
135
139
|
const emit = defineEmits(['toggleHide', 'exitSystem'])
|
|
136
140
|
|
|
137
141
|
// 响应式数据定义
|
|
138
|
-
const addClass = ref(false) // 动态添加是否有滚动
|
|
139
142
|
const isScrollX = ref(false) // 判断是否出现横向滚动条
|
|
140
143
|
const newMenuList = ref([]) // 获取新的菜单
|
|
141
144
|
const defaultOpen = ref([]) // 默认打开的菜单
|
|
142
145
|
const isIE = ref(false) // 是否是ie浏览器
|
|
143
146
|
const hideMenu = ref(false) // 是否隐藏菜单
|
|
144
|
-
const showFooter = ref(false) // 效果展示优化
|
|
145
147
|
const isNormal = ref(false) // 是否需要透明背景
|
|
146
148
|
const minWidth = ref(props.contentWidth) // 内容模块的默认最小宽度
|
|
147
149
|
const localDefaultActive = ref(props.defaultActive) // 本地默认选中菜单
|
|
148
|
-
const mainRef = ref(null) // main容器引用
|
|
149
150
|
|
|
150
151
|
/**
|
|
151
152
|
* 收起和展开时 aside 的宽度
|
|
@@ -226,64 +227,6 @@ const getOpen = (datas = newMenuList.value) => {
|
|
|
226
227
|
}
|
|
227
228
|
}
|
|
228
229
|
|
|
229
|
-
/**
|
|
230
|
-
* 等待图片加载完成后获取主容器高度
|
|
231
|
-
* @param {string} content - HTML内容
|
|
232
|
-
*/
|
|
233
|
-
const loadImg = (content) => {
|
|
234
|
-
let mulitImg = []
|
|
235
|
-
if (content.includes("<img")) {
|
|
236
|
-
content.replace(
|
|
237
|
-
/<img [^>]*src=['"]([^'"]+)[^>]*>/gi,
|
|
238
|
-
(matcherStr, capture) => {
|
|
239
|
-
mulitImg.push(capture)
|
|
240
|
-
}
|
|
241
|
-
)
|
|
242
|
-
let promiseAll = [], img = []
|
|
243
|
-
for (let i = 0; i < mulitImg.length; i++) {
|
|
244
|
-
promiseAll[i] = new Promise((resolve) => {
|
|
245
|
-
img[i] = new Image()
|
|
246
|
-
img[i].src = mulitImg[i]
|
|
247
|
-
img[i].onload = function () {
|
|
248
|
-
resolve(img[i])
|
|
249
|
-
}
|
|
250
|
-
})
|
|
251
|
-
}
|
|
252
|
-
Promise.all(promiseAll).then(() => {
|
|
253
|
-
getMainHeight()
|
|
254
|
-
})
|
|
255
|
-
} else {
|
|
256
|
-
getMainHeight()
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
/**
|
|
261
|
-
* 获取内容模块的滚动条状态
|
|
262
|
-
* @param {boolean} flag - 是否跳过滚动条置顶
|
|
263
|
-
*/
|
|
264
|
-
const getMainHeight = (flag) => {
|
|
265
|
-
addClass.value = false
|
|
266
|
-
setTimeout(() => {
|
|
267
|
-
const mainContainer = document.querySelector(".main_container")
|
|
268
|
-
if (mainContainer) {
|
|
269
|
-
const innerContent = document.querySelector(".main_container .inner_content")
|
|
270
|
-
const contentDiv = document.querySelector(".main_container .inner_content>div")
|
|
271
|
-
|
|
272
|
-
if (innerContent && contentDiv) {
|
|
273
|
-
const mainHeight = innerContent.offsetHeight
|
|
274
|
-
const conHeight = contentDiv.offsetHeight
|
|
275
|
-
|
|
276
|
-
addClass.value = conHeight > mainHeight
|
|
277
|
-
showFooter.value = true
|
|
278
|
-
|
|
279
|
-
if (!flag && addClass.value && mainRef.value) {
|
|
280
|
-
mainRef.value.scrollTop = 0
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
}, 0)
|
|
285
|
-
}
|
|
286
|
-
|
|
287
230
|
/**
|
|
288
231
|
* 设置内容模块最小宽度
|
|
289
232
|
* @param {number} width - 当前窗口宽度
|
|
@@ -360,15 +303,11 @@ onMounted(() => {
|
|
|
360
303
|
browser()
|
|
361
304
|
|
|
362
305
|
nextTick(() => {
|
|
363
|
-
getMenu()
|
|
364
306
|
setMinWidth(mainDefalutWidth)
|
|
365
307
|
// 监听窗口大小变化
|
|
366
308
|
window.addEventListener('resize', debounce(() => {
|
|
367
309
|
mainDefalutWidth = document.body.clientWidth - props.width
|
|
368
310
|
setMinWidth(mainDefalutWidth)
|
|
369
|
-
setTimeout(() => {
|
|
370
|
-
getMainHeight()
|
|
371
|
-
}, 0)
|
|
372
311
|
}))
|
|
373
312
|
})
|
|
374
313
|
})
|
|
@@ -379,9 +318,7 @@ onMounted(() => {
|
|
|
379
318
|
defineExpose({
|
|
380
319
|
getMenu,
|
|
381
320
|
setMenuActive,
|
|
382
|
-
setNormal
|
|
383
|
-
loadImg,
|
|
384
|
-
getMainHeight
|
|
321
|
+
setNormal
|
|
385
322
|
})
|
|
386
323
|
</script>
|
|
387
324
|
|
|
@@ -513,24 +450,22 @@ defineExpose({
|
|
|
513
450
|
.main {
|
|
514
451
|
padding: 0;
|
|
515
452
|
background-color: #eff2f5;
|
|
516
|
-
&.scroll {
|
|
517
|
-
overflow-y: scroll;
|
|
518
|
-
.inner_content {
|
|
519
|
-
height: auto;
|
|
520
|
-
&.normal {
|
|
521
|
-
height: auto;
|
|
522
|
-
}
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
453
|
&.scrollX {
|
|
526
454
|
overflow-x: scroll;
|
|
527
455
|
}
|
|
528
456
|
.content_mar{
|
|
529
|
-
padding: 18px;
|
|
457
|
+
padding: 18px 18px 0;
|
|
458
|
+
display: flex;
|
|
459
|
+
flex-direction: column;
|
|
460
|
+
height: calc(100vh - 18px);
|
|
461
|
+
}
|
|
462
|
+
.contentTop {
|
|
463
|
+
flex-shrink: 0;
|
|
530
464
|
}
|
|
531
465
|
.inner_content {
|
|
532
466
|
background-color: #fff;
|
|
533
|
-
|
|
467
|
+
flex: 1;
|
|
468
|
+
// overflow-y: auto;
|
|
534
469
|
border-radius: 4px;
|
|
535
470
|
&.normal {
|
|
536
471
|
background-color: transparent;
|
|
@@ -538,9 +473,11 @@ defineExpose({
|
|
|
538
473
|
}
|
|
539
474
|
}
|
|
540
475
|
.inner_footer {
|
|
476
|
+
flex-shrink: 0;
|
|
541
477
|
color: #666666;
|
|
542
478
|
text-align: center;
|
|
543
|
-
padding
|
|
479
|
+
padding: 18px 0;
|
|
480
|
+
height: 32px;
|
|
544
481
|
justify-content: center;
|
|
545
482
|
}
|
|
546
483
|
}
|