<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. Jmeter设置字体大小

    Jmeter5.0原配置字体很小,需要更改其配置 在apache-jmeter-5.0/bin/下的jmeter.properties文件中添加如下内容: jmeter.hidpi.mode=true ...

  2. linux备忘和卸载

    linux上网 -------------------------------------------------linux卸载------------------------------------ ...

  3. [Spark] Spark 3.0 Accelerator Aware Scheduling - GPU

    Ref: Spark3.0 preview预览版尝试GPU调用(本地模式不支持GPU) 预览版本:https://archive.apache.org/dist/spark/spark-3.0.0-p ...

  4. Scala面向对象01

  5. OSI 的七层模型

    一.概念 概念:开放系统互联参考模型,是由 ISO(国际标准化组织)定义的.目的:规范不同系统的互联标准,使两个不同的系统能够较容易的通讯. 网络刚面世时,通常只有同一家厂商的计算机才能彼此通讯.OS ...

  6. RxJS 6有哪些新变化?

    我们的前端工程由Angular4升级到Angular6,rxjs也要升级到rxjs6.  rxjs6的语法做了很大的改动,幸亏引入了rxjs-compact包,否则升级工作会无法按时完成. 按照官方的 ...

  7. 文件夹的层级选择< OC实现 >

    类似文件夹的层级选择,可以搜索和创建新文件夹,点击路径标题可以返回对应层级. 界面有点丑,功能还是大概实现了的!! 代码有点多,还是附上地址吧,有兴趣的可以看看哟!!!    https://gith ...

  8. What happens when you type an URL in the browser and press enter?

    What happens when you type an URL in the browser and press enter? 1. You type maps.google.com into t ...

  9. tcp协议相关概念

    conv 会话IDmtu 最大传输单元mss 最大分片大小state 连接状态(0xFFFFFFFF表示断开连接)snd_una 第一个未确认的包snd_nxt 待发送包的序号rcv_nxt 待接收消 ...

  10. k8s 管理机密信息

    一.启动应用安全信息的保护: Secret介绍: 应用启动过程中可能需要一些敏感信息,比如访问数据库的用户名密码或者秘钥.将这些信息直接保存在容器镜像中显然不妥,Kubernetes 提供的解决方案是 ...