123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- <template>
- <div>
- <div class="box">
- <div class="left">
- <mailLeft ref="leftDom"></mailLeft>
- </div>
- <div class="right">
- <mailMain @changeFloderId="handleChangeFloderId"></mailMain>
- </div>
- </div>
- <div>
- <!-- 右边弹窗 -->
- <div :class="mailCon">
- <div class="changeBox" @click="handleClose()">
- <span
- v-if="showRight"
- class="iconfont icon-icomx_rightt1"
- style="color: #fff; font-size: 20px"
- ></span>
- <span
- v-if="!showRight"
- class="iconfont icon-iconm_leftt1"
- style="color: #fff; font-size: 20px"
- ></span>
- </div>
- <mailRight v-show="showRight" />
- </div>
- </div>
- </div>
- </template>
- <script setup>
- import mailLeft from "./com/left.vue";
- import mailMain from "./com/main.vue";
- import mailRight from "./com/right.vue";
- const mailCon = ref("mail-right-con");
- const showRight = ref(true);
- const handleClose = () => {
- if (showRight.value) {
- mailCon.value = "mail-right-con move-to-close";
- } else {
- mailCon.value = "mail-right-con";
- }
- showRight.value = !showRight.value;
- };
- const route = useRoute();
- const leftDom = ref(null);
- const handleChangeFloderId = (val) => {
- leftDom.value.changeFloderId(val);
- };
- onMounted(() => {
- if (route.query.mail) {
- leftDom.value.handleGoWrite({ email: route.query.mail, personal: null });
- }
- });
- </script>
- <style lang="scss" scoped>
- .box {
- width: calc(100vw - 0px);
- height: calc(100vh - 50px - 50px);
- padding: 10px;
- display: flex;
- position: relative;
- .left,
- .right {
- background: #fff;
- }
- .left {
- width: 300px;
- margin-right: 10px;
- box-sizing: border-box;
- }
- .right {
- flex: 1;
- }
- .mail-right {
- position: absolute;
- right: 0px;
- }
- }
- .mail-right-con {
- .changeBox {
- width: 40px;
- height: 40px;
- position: absolute;
- text-align: center;
- line-height: 40px;
- left: -40px;
- top: 5px;
- background: #ff9315;
- border-radius: 10px 0px 0px 10px;
- cursor: pointer;
- }
- // border-radius: 5px;
- border-top-left-radius: 5px;
- border-bottom-left-radius: 5px;
- z-index: 1000;
- position: fixed;
- margin-top: 50px;
- top: 0;
- width: 400px;
- transition: all cubic-bezier(0.05, 0.91, 0.22, 1.03) 0.5s;
- padding: 10px 15px 0px 15px;
- height: calc(100vh - 50px - 10px);
- background: white;
- left: 100%;
- margin-left: -398px;
- box-shadow: var(--devui-shadow-fullscreen-overlay, 0 10px 20px 0)
- var(--devui-shadow, rgba(0, 0, 0, 0.08));
- i {
- cursor: pointer;
- transition: all cubic-bezier(0, 0.88, 0, 1.29) 1s;
- font-size: 15px;
- position: relative;
- &:hover {
- color: #169bd5;
- transform: rotate(360deg);
- }
- }
- }
- .move-to-close {
- transform: translateX(400px);
- .mail-right {
- transition: all linear 0.3s;
- padding-left: 20px;
- }
- }
- </style>
|