| ¶Ô±ÈÐÂÎļþ | 
 |  |  | 
 |  |  | <template> | 
 |  |  |   <el-drawer | 
 |  |  |     class="global-window" | 
 |  |  |     title="title" | 
 |  |  |     :visible="visible" | 
 |  |  |     :with-header="true" | 
 |  |  |     :size="width" | 
 |  |  |     :close-on-press-escape="false" | 
 |  |  |     :wrapper-closable="false" | 
 |  |  |     :append-to-body="true" | 
 |  |  |     @close="close" | 
 |  |  |   > | 
 |  |  |     <div slot="title" class="window__header"> | 
 |  |  |       <span class="header__btn-back" @click="close"><i class="el-icon-arrow-left"></i></span>{{title}} | 
 |  |  |     </div> | 
 |  |  |     <div class="window__body"> | 
 |  |  |       <slot></slot> | 
 |  |  |     </div> | 
 |  |  |     <div v-if="withFooter" class="window__footer"> | 
 |  |  |       <slot name="footer"> | 
 |  |  |         <el-button @click="confirm" :loading="confirmWorking" type="primary">{{confirmText}}</el-button> | 
 |  |  |         <el-button @click="close">{{cancelText}}</el-button> | 
 |  |  |       </slot> | 
 |  |  |     </div> | 
 |  |  |   </el-drawer> | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | <script> | 
 |  |  | export default { | 
 |  |  |   name: 'GlobalWindow', | 
 |  |  |   props: { | 
 |  |  |     width: { | 
 |  |  |       type: String, | 
 |  |  |       default: '36%' | 
 |  |  |     }, | 
 |  |  |     // æ¯å¦å
å«åºé¨æä½ | 
 |  |  |     withFooter: { | 
 |  |  |       type: Boolean, | 
 |  |  |       default: true | 
 |  |  |     }, | 
 |  |  |     // ç¡®è®¤æé®loadingç¶æ | 
 |  |  |     confirmWorking: { | 
 |  |  |       type: Boolean, | 
 |  |  |       default: false | 
 |  |  |     }, | 
 |  |  |     // ç¡®è®¤æé®ææ¡ | 
 |  |  |     confirmText: { | 
 |  |  |       default: 'ç¡®å®' | 
 |  |  |     }, | 
 |  |  |     // åæ¶æé®ææ¡ | 
 |  |  |     cancelText: { | 
 |  |  |       default: 'åæ¶' | 
 |  |  |     }, | 
 |  |  |     // æ é¢ | 
 |  |  |     title: { | 
 |  |  |       type: String, | 
 |  |  |       default: '' | 
 |  |  |     }, | 
 |  |  |     // æ¯å¦å±ç¤º | 
 |  |  |     visible: { | 
 |  |  |       type: Boolean, | 
 |  |  |       required: true | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  |   methods: { | 
 |  |  |     /** | 
 |  |  |      * ç¡®è®¤ | 
 |  |  |      */ | 
 |  |  |     confirm () { | 
 |  |  |       this.$emit('confirm') | 
 |  |  |     }, | 
 |  |  |     /** | 
 |  |  |      * å
³é | 
 |  |  |      */ | 
 |  |  |     close () { | 
 |  |  |       this.$emit('update:visible', false) | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  | <style scoped lang="scss"> | 
 |  |  | @import "@/assets/style/variables.scss"; | 
 |  |  | // è¾å
¥æ¡é«åº¦ | 
 |  |  | $input-height: 32px; | 
 |  |  | .global-window { | 
 |  |  |   // å¤´é¨æ é¢ | 
 |  |  |   /deep/ .el-drawer__header { | 
 |  |  |     padding: 0 10px 0 0; | 
 |  |  |     line-height: 40px; | 
 |  |  |     border-bottom: 1px solid #eee; | 
 |  |  |     // è¿åæé® | 
 |  |  |     .header__btn-back { | 
 |  |  |       display: inline-block; | 
 |  |  |       width: 30px; | 
 |  |  |       background: $primary-color; | 
 |  |  |       color: #fff; | 
 |  |  |       text-align: center; | 
 |  |  |       margin-right: 12px; | 
 |  |  |       border-right: 1px solid #eee; | 
 |  |  |     } | 
 |  |  |     .el-drawer__close-btn:focus { | 
 |  |  |       outline: none; | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  |   // ä¸»ä½ | 
 |  |  |   /deep/ .el-drawer__body { | 
 |  |  |     display: flex; | 
 |  |  |     flex-direction: column; | 
 |  |  |     position: absolute; | 
 |  |  |     top: 40px; | 
 |  |  |     bottom: 0; | 
 |  |  |     width: 100%; | 
 |  |  |     overflow: hidden; | 
 |  |  |     // å
容 | 
 |  |  |     .window__body { | 
 |  |  |       height: 100%; | 
 |  |  |       overflow-y: auto; | 
 |  |  |       padding: 12px 16px; | 
 |  |  |       // æ ç¾ | 
 |  |  |       .el-form-item__label { | 
 |  |  |         float: none; | 
 |  |  |       } | 
 |  |  |       // å
素宽度为100% | 
 |  |  |       .el-form-item__content{ | 
 |  |  |         & > * { | 
 |  |  |           width: 100%; | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  |       // å¼å
³è¡¨å项 | 
 |  |  |       .form-item-switch { | 
 |  |  |         .el-form-item__content > * { | 
 |  |  |           width: auto !important; | 
 |  |  |         } | 
 |  |  |         .switch-text { | 
 |  |  |           color: #999; | 
 |  |  |           margin-left: 6px; | 
 |  |  |           font-size: 13px; | 
 |  |  |           vertical-align: middle; | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |     // å°¾é¨ | 
 |  |  |     .window__footer { | 
 |  |  |       user-select: none; | 
 |  |  |       border-top: 1px solid #eee; | 
 |  |  |       height: 60px; | 
 |  |  |       line-height: 60px; | 
 |  |  |       text-align: center; | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | </style> |