<template>
<div class="share">
<div class="header">
<div class="top-content">
<span class="iconfont icon-fanhui1" @click="back"></span>
<span>{{appMenuName}}</span>
<span class="iconfont"></span>
<!-- <span class="iconfont icon-nian2" @click="openPicker"></span> -->
</div>
</div>
 
<!-- <search-new @search='search'></search-new> -->
 
<div class="scrollLoad">
<ul
infinite-scroll-immediate-check="false"
infinite-scroll-listen-for-event
v-infinite-scroll="loadMore"
infinite-scroll-disabled="loading"
infinite-scroll-distance="80"
infinite-scroll-throttle-delay="200">
<li class="item" v-for='(item,index) in listData' :key="index">
<div class="itemCardTime">
<span class="iconfont icon-daishenpi"></span>
<span class="date">
<span class="date-day">
{{item.lastApprovalTime|selectDate}}
</span>
</span>
</div>
<div class="itemCard" @click='selectItem(item)'>
<div class="top">
<span class="font">{{item.name}}</span>
<span class="date">
<span class="date-day">
<span>申请人</span>:<span>{{item.applyUserName}}</span>
</span>
</span>
</div>
<div class="collect"><span>申请原因</span>:<span class="reasonDetail">{{item.content}}</span></div>
<div class="bottom">
<span class="font">{{funStatus(item.status,item.approvalUserName)}}</span>
<span class="date">
<span class="iconfont icon-return-copy"></span>
</span>
</div>
</div>
</li>
</ul>
<div class="loadingStyle" v-show="loading==true">
<loading-pull></loading-pull>
</div>
</div>
<router-view :selectIt='selectItemData' :approvalTypeV='approvalTypeV' @backParent="backParent"></router-view>
<mt-datetime-picker
ref="picker"
type="date"
:cancelText='cancelText'
:confirmText='confirmText'
year-format="{value}"
:startDate="startDate"
v-model="valueYear" @confirm="handleConfirm">
</mt-datetime-picker>
</div>
</template>
<script>
import Vue from 'vue'
import headx from 'base/head/head-back'
import {mixins} from 'assets/js/mixins'
import { DatetimePicker } from 'mint-ui';
Vue.component(DatetimePicker.name, DatetimePicker);
import i18n from 'assets/js/vi18n/i18n.js'
import searchNew from 'base/search_new/search'
import { InfiniteScroll } from 'mint-ui';
Vue.use(InfiniteScroll)
import loadingPull from 'base/loading/loadingPull'
import {Toast} from 'mint-ui';
export default {
mixins: [mixins],
i18n,
data() {
return {
timeNow:new Date().getFullYear(),
valueYear:new Date(),
startDate: new Date('2018'),
listData: [],
selectItemData: null,
cancelText:'',
confirmText:'',
curPage: 1,
pageSize: 10,
loading:false,
totalPages:1,
lastPage:false,
}
},
components: {
headx,
loadingPull,
searchNew
},
props: {
appMenuName: {
type: null
},
approvalTypeV: {
type: Number
}
},
methods: {
handleConfirm(){
this.timeNow=new Date(this.valueYear).getFullYear();
this._getData();
},
openPicker() {
this.$refs.picker.open();
},
backParent(){
/**审批后跳回 */
this.approvalTypeV = 0;
this.listData = [];
this.curPage = 1;
this._getData();
},
back() {
this.$router.push({
path: `/onlineApproval`
});
},
search(val){
let content=val.replace(/^\s+|\s+$/g,"");
this._getData(content);
},
selectItem(item){
this.selectItemData=item;
this.$router.push({
path: `/onlineApproval/onlineApprovalList/`+item.documentTypeCode
});
},
_getData() {
let vm = this;
var url = '/workbench/myList';
var status=1;
if(this.approvalTypeV==0){
status=1;
}else{
status=2;
}
let params = {
status:status,//1未审批2通过3驳回
curPage: vm.curPage - 1,
pageSize: vm.pageSize
}
this.ajaxSend(url, params).then(res => {
if(res.code==='00000000'){
if(res.payload.results.workbenchs.numberOfElements>0){
let dataList = res.payload.results.workbenchs.content;
vm.totalPages = res.payload.results.workbenchs.totalPages;
for (let i = 0; i < dataList.length; i++) {
vm.listData.push(dataList[i]);
}
}
}
})
},
loadMore() {
let vm=this;
if (vm.lastPage===true) {
return false;
}
vm.loading = true;
vm.curPage = vm.curPage + 1;
if(vm.curPage > vm.totalPages+1){
vm.loading = false;
setTimeout(() => {
Toast('已加载完所有数据');
//已经超出页码范围,标记不能再加载
vm.lastPage = true;
return false;
},500)
}else{
vm._getData();
setTimeout(() => {
vm.loading = false;
}, 2500);
}
},
funStatus(status,userName){
if(status===0||status===1){
return `等待${userName}审批`;
}else if(status===2){
return `审核通过`
}else if(status===3){
return `被${userName}驳回`;
}
},
},
created() {
this._getData();
},
filters: {
selectDate(value) {
if (value < 60) {
return value
} else {
var oDate = new Date(value);
return oDate.getFullYear() + '/' + (oDate.getMonth() + 1 > 9 ? oDate.getMonth() + 1 : '0' + (oDate.getMonth() + 1)) + '/' + (oDate.getDate() > 9 ? oDate.getDate() : '0' + oDate.getDate());
}
},
}
}
</script>
<style scoped lang="stylus">
@import '~assets/stylus/veriable.styl'
@import "~assets/stylus/mixin.styl"
.share
position absolute
top 0
bottom 0
left 0
right 0
z-index 15
background $color-background
.header
width 100%
background $color-background-head
border-bottom .0625rem solid #dadada
text-align: center
color #000
.top-content
height 3.125rem
padding-top .625rem
width 100%
display flex
justify-content space-between
align-items center
.iconfont
padding 0.625rem
width 3.75rem
color #bfbfbf
font-size .875rem
font-weight normal
.scrollLoad
position absolute
overflow hidden
width 100%
top 3.2rem
bottom 0
background #f7f8f8
overflow-y: auto;
-webkit-overflow-scrolling: touch;
ul
padding 0 0.625rem 1rem 0.625rem
.item
display flex
flex-direction column
margin 0.9375rem 0
position relative
.itemCardTime
padding-bottom .5rem
.itemCard
background white
border 1px solid #eaeaea
border-radius .375rem
padding .8rem
.top
display flex
justify-content space-between
margin-bottom 0.75rem
.font
color black
font-size 1rem
no-wrap()
.date
display flex
align-items center
font-size 0.875rem
color #bfbfbf
.bottom
display flex
justify-content space-between
padding 0.75rem 0 0 0
border-top 1px solid #eaeaea
.font
color #f7540d
font-size 1rem
no-wrap()
.date
display flex
align-items center
font-size 0.875rem
color #bfbfbf
.collect
margin .5rem 0 .3125rem 0
font-size .9375rem
color #333
.reasonDetail
line-height 1.5rem
word-break: break-all
.circle
position absolute
width 0.625rem
height 0.625rem
border-radius 50%
background #7ac143
left -1.25rem
top 0.25rem
</style>
<style lang="stylus">
.picker-items>.picker-slot:nth-child(2)
display none
.picker-items>.picker-slot:nth-child(3)
display none
</style>

mint-ui下拉加载(项目实例)的更多相关文章

  1. android UI进阶之实现listview的下拉加载

    关于listview的操作五花八门,有下拉刷新,分级显示,分页列表,逐页加载等,以后会陆续和大家分享这些技术,今天讲下下拉加载这个功能的实现. 最初的下拉加载应该是ios上的效果,现在很多应用如新浪微 ...

  2. WP & Win10开发:实现ListView下拉加载的两种方法

    1.通过ListView控件的ContainerContentChanging方法.该方法在列表项被实例化时触发,在列表项最后一个项目实例化的时候触发刷新数据逻辑就可以实现下拉加载了. 代码如下:// ...

  3. 美团、点评、猫眼App下拉加载效果的源码分享

    今天我准备拿大众点评.美团.猫眼电影三款App的实例来分享一下APICloud下拉加载这个模块的效果. 美团App下拉加载效果   以美团中的下拉酷似动画的萌萌着小人儿效果作为参考,来实现的一个加载模 ...

  4. 集成iscroll 下拉加载更多 jquery插件

    一个插件总是经过了数月的沉淀,不断的改进而成的.最初只是为了做个向下滚动,自动加载的插件.随着需求和功能的改进,才有了今天的这个稍算完整的插件. 一.插件主功能: 1.下拉加载 2.页面滚动到底部自动 ...

  5. 关于MJRefresh的下拉加载数据bug

    当没有更多数据的时候显示NoMoreData 我的理解是先结束刷新再显示没有更多 今天之前一直没发现有问题 贴之前的代码 [self.collectionView reloadData]; [self ...

  6. JQuery实现无刷新下拉加载图片

          最近做的一个项目需要做页面无刷新下拉加载图片,调研了一番,大多都采用检测滚动条达到底部,然后利用ajax加载下一页数据对页面数据进行添加,根据这一逻辑,自己写了一个,具体代码如下: JQu ...

  7. 原生JS下拉加载插件分享。

    无聊写了一个JS下拉加载插件,有需要的可以下载. // 使用 // new ManDownLoad("#ul","json/load.json",functio ...

  8. iscroll5 上拉,下拉 加载数据

    我这里的思路是上拉时候只是加载第一页的内容,可根据实际情况修改其中的代码.请勿照搬.样式没怎么调,可以加载gif动画.1.没有数据时候,下拉可以加载数据.2.没有数据时候,点击也可以加载数据.3.其余 ...

  9. MUI - 上拉刷新/下拉加载

    新闻信息列表必备的功能,支持Table,Ul等列表. 以下是DIV版本,在安卓端或者ios端必须使用双webview模式,传送门:http://dev.dcloud.net.cn/mui/pulldo ...

  10. ionic下拉加载自动触发

    ionic提供的下拉加载,是要滑动去下拉加载,没有提供api自动触发下拉加载,比如刚进页面,或者切换tab时想触发一次下拉加载. 添加如下service: angular.module('YourAp ...

随机推荐

  1. python之scrapy爬取jd和qq招聘信息

    1.settings.py文件 # -*- coding: utf-8 -*- # Scrapy settings for jd project # # For simplicity, this fi ...

  2. 抓包工具Fiddler使用

    1.参考博客 https://blog.csdn.net/ychgyyn/article/details/82154433 https://www.cnblogs.com/miantest/p/728 ...

  3. 使用Selenium时解决方案: Exception: Failed to find firefox binary. You can set it by specifying the ······

    问题描述: Firefox在自动升级之后,在使用selenium的时候出现了如下错误: Exception: Failed to find firefox binary. You can set it ...

  4. Elasticsearch技术解析与实战--shard&replica机制

    序言 1.shard&replica机制 (1)index包含多个shard (2)每个shard都是一个最小工作单元,承载部分数据,lucene实例,完整的建立索引和处理请求的能力 (3)增 ...

  5. nohup 不废话应用

    后台运行 nohup ./hello > myout.file 2>&1 & 本界面可以通过 jobs -l 查看后台 top 也能找到PID号 杀进程 kill PID

  6. playbook常用操作

    playbook常用操作 1.检查playbook语法错误 ansible-playbook -i hosts deploy_coredns.yaml --syntax-check 2.查看playb ...

  7. mySQL的简单安装和配置

    MySQL的安装和配置 1.去官网下载mysql-5.6.29-winx64.zip包.地址: http://dev.mysql.com/downloads/mysql/5.6.html 2,把安装包 ...

  8. 如何让FasterTransformer支持动态batch和动态sequence length

    FasterTransformer 算子 nvidia在开源的FasterTransformer的代码中,提供tensorrt和tensorflow的自定义算子编译和py调用示例,详见FasterTr ...

  9. Springboot Rabbitmq 使用Jackson2JsonMessageConverter 消息传递后转对象

    Springboot为了应对高并发,接入了消息队列Rabbitmq,第一版验证时使用简单消费队列: //发送端 AbstractOrder order =new Order(); rabbitmqTe ...

  10. Servlet中获取POST请求的参数

    在servlet.filter等中获取POST请求的参数 form表单形式提交post方式,可以直接从 request 的 getParameterMap 方法中获取到参数 JSON形式提交post方 ...