账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    mint ui loadmore 上拉加载后,ios 在向上滑动 就自动刷新了
    50
    0
    <div id="app">
      <!-- 通用tab -->
      <div class="tabbar">
        <ul>
          <li :class="{'current': queryType === '1'}" @click="changeQueryType('1')">待检查</li>
          <li :class="{'current': queryType === '2'}" @click="changeQueryType('2')">已检查</li>
          <li :class="{'current': queryType === '3'}" @click="changeQueryType('3')">已过期</li>
          <li :class="{'current': queryType === '4'}" @click="changeQueryType('4')">问题单</li>
        </ul>
      </div>
      <div style=" height:0.7rem;"></div>
    
      <!--待检查-->
    
        <mt-loadmore  :auto-fill="false" :top-method="refreshData" :bottom-method="loadData" :bottom-all-loaded="allLoaded"
                     ref="loadmore">
          <div :style="{'-webkit-overflow-scrolling': scorllModel}">
          <div class="nocomplete_body"  v-for="qsIn in quality">
            <ul>
              <li>
                <h1>{{qsIn.fname}}</h1>
              </li>
              <li>
                <h3>巡检时间:{{qsIn.fbeginDate.substr(0, 10)}}~{{qsIn.fendDate.substr(0, 10)}} </h3>
              </li>
            </ul>
            <div class="xunjian_list" v-for="(xtQsInsListSite,index) in qsIn.xtQsInsListSiteBean" v-if="index < 2">
              <ol @click="getXtQsInsList(qsIn.fid,qsIn.fprojectName)">
                <li><img src="../../../static/images/mingcheng_icon.png"/>
                  <p>{{xtQsInsListSite.fsiteName}}</p>
                </li>
                <li><img src="../../../static/images/dizhi_icon.png"/>
                  <p>{{xtQsInsListSite.flocation}}</p>
                </li>
              </ol>
              <img class="xunjian_img" v-if="xtQsInsListSite.fstatus == 0" src="../../../static/images/wei_icon.png"/>
              <img class="xunjian_img" v-if="xtQsInsListSite.fstatus == 1" src="../../../static/images/jian1_icon.png"/>
            </div>
            <a class="zhuangtai gr">巡检中</a>
          </div>
          </div>
        </mt-loadmore>
    
    </div>
    
    

    <script>
    import quality from '../../api/quality'

    export default {

    data () {
      return {
        quality: [],
        queryType: '1',
        xtQsInsListSite: {},
        delayDay: 0,
        delayDate: '',
        xtQsInsListArr: [],
        pageNo: 0,
        dataIsNull: false,
        allLoaded: false,
        scrollTop: '0',
        scrollMode: 'auto' // 移动端弹性滚动效果,touch为弹性滚动,auto是非弹性滚动
    
      }
    },
    components: {},
    mounted () {
      this.getQuality()
      document.addEventListener('scroll', this.handelscroll)
      this.activated()
    },
    methods: {
      getQuality () {
        document.setTitle('品质督导')
        quality.getQuality({
          fstatus: '0',
          pageNo: this.pageNo + 1,
          pageSize: this.$pageSize
        }, (data) => {
          data = data.rows
          // 第一页是否无数据
          this.scrollMode = 'touch'
          if (this.pageNo === 0) {
            this.$refs.loadmore.onTopLoaded()
          } else {
            this.$refs.loadmore.onBottomLoaded()
          }
          if (this.pageNo === 0 && data.length < 1) this.dataIsNull = true
          // 是否全部加载
          this.allLoaded = !data || data.length < this.$pageSize
          this.pageNo = this.pageNo + ((data && data.length > 0) ? 1 : 0)
          for (let i = 0; i < data.length; i++) {
            this.quality.push(data[i])
          }
        })
      },
      getXtQsInsList (id, fprojectName) {
        this.$router.push({path: '/quality/ToBeCheckedInsListSite', query: {fid: id, fprojectName: fprojectName}})
        this.deactivated()
      },
      changeQueryType (queryType) {
        this.queryType = queryType
        if (queryType === '2') {
          sessionStorage.setItem('tmQueryType', '2')
          this.$router.push({path: '/quality/AlreadyChecked'})
        } else if (queryType === '3') {
          sessionStorage.setItem('tmQueryType', '3')
          this.$router.push({path: '/quality/Expired'})
        } else if (queryType === '1') {
          // 代表默认进入待检查列表
          this.getQuality()
        } else if (queryType === '4') {
          this.$router.push({path: '/quality/QuestionList'})
        }
        this.refreshData()
      },
      getQuestion () {
        this.$router.push({path: '/quality/QuestionList'})
      },
      back () {
        this.$router.back(-1)
      },
      refreshData () {
        this.pageNo = 0
        this.allLoaded = false
        this.quality = []
        this.getQuality()
      },
      loadData () {
        this.getQuality()
        this.$refs.loadmore.onBottomLoaded()
      },
      handelscroll () {
        this.scrollTop = document.documentElement.scrollTop
      },
      deactivated () {
        sessionStorage.setItem('scrollTop', this.scrollTop)
      },
      activated () {
        console.log(sessionStorage.getItem('scrollTop'))
        document.body.scrollTop = document.documentElement.scrollTop = window.pageYOffset = sessionStorage.getItem('scrollTop')
      }
    }

    }
    </script>
    <style>
    @import "../../assets/css/quality/public.css";
    @import "../../assets/css/quality/style.css";
    .mint-loadmore-text{

    font-size: .2rem;

    }
    </style>

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 烟敛寒林 普通会员 1楼

      在 Mint UI 中,当使用 loadMore 方法加载更多数据时,当数据加载完毕后,可能会自动触发向上滑动操作。这是因为在 iOS 中,当用户向上滑动屏幕时,会触发滑动操作,而滑动操作会触发 UI 的 viewWillLoadMore 事件。

      在这种情况下,如果你希望在数据加载完毕后,自动刷新界面,你可以在 viewDidLoad 方法中设置 UI刷新true。这样,当数据加载完毕后, Mint UI 就会自动刷新界面。

      以下是一个简单的示例:

      ```swift override func viewDidLoad() { super.viewDidLoad()

      let loadMoreData = fetchData()
      self.loadMoreData?.reload(true)
      

      } ```

      在这个示例中,fetchData 方法用于获取数据,reload(true) 方法用于在数据加载完毕后,自动刷新界面。

      注意,为了在 iOS 中正确使用 loadMore 方法,你需要确保你的应用已经设置好了正确的权限,例如,在开发环境中,你可能需要添加以下代码:

      ```swift import UIKit import MintUI

      class ViewController: UIViewController, UIRefreshControlDelegate { let refreshControl = UIRefreshControl()

      override func viewDidLoad() {
          super.viewDidLoad()
      
          // 设置刷新控制
          refreshControl.addTarget(self, action: #selector(refreshControlTapped), for: .valueChanged)
      
          // 设置数据源
          fetchData()
      }
      
      // 在刷新控制上拉加载后触发的回调方法
      @objc func refreshControlTapped() {
          // 在这里,你可以执行刷新操作,例如,获取新的数据
          // self.data = fetchData()
      }
      
      // 获取数据的方法,例如:
      func fetchData() -> [String] {
          // 在这里,你需要获取数据
          // 这里只是一个示例,你需要替换为你的实际数据获取逻辑
          return ["item1", "item2", "item3"]
      }
      

      } ```

      在这个示例中,fetchData 方法用于获取数据,refreshControlTapped 方法用于在数据加载完毕后,触发上拉加载的回调。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部