zoukankan      html  css  js  c++  java
  • vue中使用transition做动画(在方法中改变元素样式的时候,外边需要包裹个定时器)

    <template>
      <div class="casehistory">
        <jzrlist :isup="isup" :lastOrder="lastOrder" :djs="djs" @getjzrinfo="getjzrinfo"></jzrlist>
        <div class="classCaseHsitoryBox" :style="{height: 'calc(100vh - ' + chagePatient + ')'}">
          <div class="contentBox">
            <!-- 无病历信息 -->
            <div style="display:none" class="noMsg">
              <img src="../../assets/img/no_case.png" alt />
              <p>您暂无病历信息~</p>
            </div>
            <!-- 有就诊人且有就诊人病历信息 -->
            <div class="havePatient">
              <div class="time">2019-05-01 星期三</div>
              <!-- 病历信息(检查单) -->
              <div class="reportBox reportCensor">
                <h4>病历信息(检查单)</h4>
                <ul>
                  <li>
                    <img
                      src="https://file.syrjia.com/uploadFiles/uploadImgs/20200528/20200528120247.png"
                      alt
                    />
                  </li>
                  <li>
                    <img
                      src="https://file.syrjia.com/uploadFiles/uploadImgs/20200528/20200528120247.png"
                      alt
                    />
                  </li>
                  <li>
                    <img
                      src="https://file.syrjia.com/uploadFiles/uploadImgs/20200528/20200528120247.png"
                      alt
                    />
                  </li>
                  <li>
                    <img
                      src="https://file.syrjia.com/uploadFiles/uploadImgs/20200528/20200528120247.png"
                      alt
                    />
                  </li>
                </ul>
              </div>
              <!-- 病历信息(处方单) -->
              <div class="reportBox reportPrescription">
                <h4>病历信息(处方)</h4>
               
                  <ul>
                    <img
                      class="msgMor"
                      @click=" type ? type = false : type =true"
                      src="../../assets/img/msgMore.png"
                      alt
                    />
                     <transition-group name="slide">
                      <!-- type代表数据的长度如果是3为真,为6(需要改为数据的.length)为假  -->
                    <li class="more" v-for="(n,index) in 6" v-if="index < (!type ? 3 : 6)" :key="index">
                      <img
                        src="https://file.syrjia.com/uploadFiles/uploadImgs/20200528/20200528120247.png"
                        alt
                      />
                    </li>
                     </transition-group>
                  </ul>
              
              </div>
              <div class="remark">
                <h4>备注</h4>
                <p>备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注备注</p>
              </div>
              <div class="time">2019-05-01 星期三</div>
              <div class="doctor">
                <div class="docPro">
                  <img
                    src="https://file.syrjia.com/uploadFiles/uploadImgs/20200528/20200528120247.png"
                    alt
                  />
                  <h5>张萌医生</h5>
                </div>
                <h4>诊断:腰间盘突出</h4>
                <p>点此查看为您开具的调理方案>></p>
              </div>
            </div>
            <!-- 无就诊人 ——创建就诊人-->
            <div style="display:none" class="createPaitent">
              <p>您还没有创建就诊人</p>
              <span>点击创建</span>
            </div>
            <!-- 无就诊人——填写就诊人信息 -->
            <div style="display:none" class="fillInMsg">
              <div class="tip">请添加就诊人,和我建立联系</div>
              <peopleInfo :isDescript="true" ref="peopleInfo" @getData="getData"></peopleInfo>
            </div>
    
            <!-- 更新病历信息按钮  -->
            <footer>
              <div class="updateMsg">更新病历信息</div>
              <div class="createSubmit">提交</div>
            </footer>
          </div>
        </div>
      </div>
    </template>
    
    <script>
    import { Toast } from "vant";
    export default {
      name: "casehistory",
      data() {
        return {
          chagePatient: "1.9rem",
          isup: false,
          lastOrder: {},
          djs: "",
          jzrinfo: "",
          type: false
        };
      },
      mounted() {},
      methods: {
        getjzrinfo(data) {
          this.jzrinfo = data;
        },
        getData(data) {
          //获取创建就诊人时的信息
          console.log(data);
          this.form = data;
        }
      },
      components: {
        jzrlist: resolve => require(["@/components/doctor/jzrList"], resolve),
        peopleInfo: resolve =>
          require(["@/components/people/people_info"], resolve),
        [Toast.name]: Toast
      }
    };
    </script>
    
    <style rel='stylesheet/scss' lang='scss' scoped>
    .slide-enter-active{
     transition:all .5s linear;
     }
     .slide-leave-active{
      transition:all .5s linear;
     }
     .slide-enter{
       transform: translateY(-10%);
      // opacity: 0;
     }
     .slide-leave-to{
      // opacity: 0;
      transform: translateY(-10%);
     }
    
    img {
      max- 100%;
    }
    .casehistory {
      background: #fff;
    }
    .classCaseHsitoryBox {
      margin-top: 0.9rem;
      .contentBox {
        .havePatient {
          .time {
            background-color: #f5f5f5;
            height: 0.7rem;
            line-height: 0.7rem;
            padding: 0 0.3rem;
            font-size: 0.26rem;
          }
          .reportBox {
            padding: 0 0.3rem;
            h4 {
              font-size: 0.28rem;
              padding: 0.38rem 0;
            }
            ul {
              overflow: hidden;
              border-bottom: 1px solid #eeeeee;
              padding-bottom: 0.1rem;
              position: relative;
              .msgMor {
                 0.41rem;
                position: absolute;
                right: 0.33rem;
                top: 0.65rem;
              }
              li {
                 2.1rem;
                height: 2.1rem;
                border: 1px solid #e6e7ec;
                box-shadow: 0px 0px 0.1rem 0px rgba(182, 168, 167, 0.23);
                border-radius: 0.1rem;
                overflow: hidden;
                margin: 0 0.29rem 0.29rem 0;
                float: left;
                &:nth-of-type(3n) {
                  margin-right: 0;
                }
                &.more {
                   1.7rem;
                  height: 1.7rem;
                }
              }
            }
          }
          .remark {
            padding: 0 0.3rem;
            h4 {
              font-size: 0.28rem;
              margin: 0.38rem 0 0.25rem 0;
            }
            p {
              line-height: 0.45rem;
              font-size: 0.3rem;
              margin-bottom: 0.45rem;
            }
          }
          .doctor {
            padding: 0.4rem 0.3rem;
            margin-bottom: 1rem;
            font-size: 0.3rem;
            .docPro {
              display: flex;
              align-items: center;
              img {
                 0.64rem;
                height: 0.64rem;
                border-radius: 50%;
              }
              h5 {
                margin-left: 0.26rem;
              }
            }
            h4 {
              margin: 0.28rem 0;
            }
            p {
              color: #8f5f3b;
            }
          }
        }
        // 无病历信息
        .noMsg {
          text-align: center;
          img {
            margin: 2.88rem auto 0;
            font-size: 0.32rem;
            color: #666666;
             2.64rem;
            overflow: hidden;
            text-align: center;
          }
          p {
            text-align: center;
            font-size: 0.28rem;
            color: #666666;
            margin-top: 0.6rem;
          }
        }
        //无就诊人 ——创建
        .createPaitent {
          padding: 0 0.3rem;
          height: 1rem;
          font-size: 0.3rem;
          display: flex;
          justify-content: space-between;
          align-items: center;
          border-top: 1px solid #eeeeee;
          span {
             1.28rem;
            height: 0.5rem;
            border-radius: 0.25rem;
            background-color: #da0428;
            font-size: 0.24rem;
            color: #fff;
            text-align: center;
            line-height: 0.5rem;
          }
        }
        //无就诊人——填写信息
        .fillInMsg {
          .tip {
            height: 0.9rem;
            background-color: #f3f3f3;
            font-size: 0.26rem;
            color: #666;
            padding: 0 0.3rem;
            line-height: 0.9rem;
          }
        }
      }
      footer {
        .createSubmit,
        .updateMsg {
          height: 1rem;
          color: #fff;
          text-align: center;
          line-height: 1rem;
          font-size: 0.32rem;
          position: fixed;
          bottom: 0;
           100%;
        }
        .updateMsg {
          background-color: #da0428;
        }
        .createSubmit {
          background-color: #e4e4e4;
        }
      }
    }
    </style>
    

      

  • 相关阅读:
    Android 程序员不得不收藏的个人博客(持续更新...)
    硬核讲解 Jetpack 之 LifeCycle 源码篇
    秉心说,不一样的 2019
    秉心说 2019 博文合集
    庖丁解牛 Activity 启动流程
    Jetpack Compse 实战 —— 全新的开发体验
    Box 黑科技 —— 支持手机端反编译 !
    “无处不在” 的系统核心服务 —— ActivityManagerService 启动流程解析
    如何正确的在 Android 上使用协程 ?
    【Medium 万赞好文】ViewModel 和 LIveData:模式 + 反模式
  • 原文地址:https://www.cnblogs.com/fkcqwq/p/12983138.html
Copyright © 2011-2022 走看看