<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. Qt编写数据可视化大屏界面电子看板3-新建布局

    一.前言 能够新建布局,也是数据可视化大屏界面电子看板系统中的必备功能之一,新建布局这样的功能一般做到右键菜单中,单击新建布局菜单,弹出输入框要求输入新的布局的名称,为了更符合国情,直接支持中文名称, ...

  2. php上传文件夹 ​

    用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个php文件夹上传下载的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 以下是实例的部分脚本文件与代码: ...

  3. 手写web框架之加载配置项目

    一  定义框架配置项 在项目的src/main/resources目录下创建一个名为smart.propertiesd的文件,文件的内容如下: smart.framework.jdbc.driver= ...

  4. 导出文档设置exportDocument

    <?xml version="1.0" encoding="UTF-8"?> <?eclipse version="3.4" ...

  5. vue添加滚动事件,解决简书Carol_笑一笑方案中vue移除滚动事件失效的问题

    在写项目的时候,遇到了需要添加滚动事件的问题,在简书Carol_笑一笑这里找到了解决方案.代码如下 <script> export default { name:"vue-scr ...

  6. centos启动排障

    centos6 启动引导第一阶段破坏 破坏mbr前446字节 先备份 [root@centos6 ~]# dd if=/dev/sda of=/root/mbr bs=1 count=446 破坏 [ ...

  7. 通过火狐谋智查询API

    谋智中文版网址 https://developer.mozilla.org 示例 site: developer.mozilla.org window 通过百度高级用法查API site: 网址 搜索 ...

  8. 将其它部分jsp代码包含进一个jsp文件

    <jsp:include page="文件路径/文件名.jsp" /> 将其它部分jsp代码包含进来.意义:将公共的部分代码抽出来,省略过多复制粘贴:只要改一个地方就O ...

  9. java使用validator进行校验

    不管是html页面表单提交的对象数据还是和第三方公司进行接口对接,都需要对接收到的数据进行校验(非空.长度.格式等等).如果使用if一个个进行校验(字段非常多),这是让人崩溃的过程.幸好jdk或hib ...

  10. vultr 更换服务器

    今天打算去p站看看电影 结果发现自己的vps被封了......记录一下换服务器的过程 首先去 https://www.17ce.com/ ping一下,发现只有国外的服务器能ping通 果然是被封了. ...