| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 | <template>	<view>		<u-search  :show-action="false" v-model="searchForm.title" @change="inputWord" margin="20rpx 50rpx"></u-search>		<view>			<u-swipe-action>				<view					v-for="(row, index) in dataList"					:key="index">						<u-swipe-action-item @click="todo(row)"  :key="row.id" :threshold="60" duration="500" 						:options="[ {							text: '办理',							style: {								backgroundColor: '#3c9cff'							}						}]">						  <u-cell-group>							  <u-cell @click="todo(row)">								  <view slot="title" class="content">										<view class="text-bold text-grey">											<view class="ellipsis-description">												标题:{{row.vars.title}}											</view>										</view>										<view class="text-grey text-sm">											<view class="ellipsis-description">												 当前环节:{{row.task && row.task.name}}											</view>										</view>										<view class="text-grey text-sm">											执行时间:{{row.task.createTime | formatDate}}										</view>								  </view>								  <view slot="right-icon" class="action">									<u-tag  text="等待审核" plain shape="circle" type="error"></u-tag>								  </view>								</u-cell>						  </u-cell-group>						</u-swipe-action-item>				</view>			</u-swipe-action>		</view>		<u-loadmore :status="status"  @loadmore="loadmore" :line="true" />		<u-gap height="20" bgColor="#fff"></u-gap>		<u-back-top :scrollTop="0" mode="square"></u-back-top>	</view></template><script>	import taskService from "@/api/flowable/taskService"	import userSelect from '@/components/user-select/user-select.vue'	import pick from 'lodash.pick'	export default {		components:{			userSelect		},		data() {			return {				status: 'loadmore',				searchForm: {					title: ''				},				dataList: [],				tablePage: {					pages: 0,					currentPage: 0,					pageSize: 10,					orders: [{ column: "a.create_time", asc: false }],				},				loading: false,			}		},		onLoad() {			this.loadmore()		},		methods: {			// 跳转到详细页面		      todo (row) {				  taskService.getTaskDef({					taskId: row.task.id,					taskName: row.task.name,					taskDefKey: row.task.taskDefinitionKey,					procInsId: row.task.processInstanceId,					procDefId: row.task.processDefinitionId,					procDefKey: row.task.processDefKey,					status: row.status				  }).then((data) => {					let query = {formTitle: `${row.vars.title}`, title: `审批【${row.task.name || ''}】`, ...pick(data, 'formType', 'formReadOnly', 'formUrl', 'procDefKey', 'taskDefKey', 'procInsId', 'procDefId', 'taskId', 'status', 'title', 'businessId')};					uni.navigateTo({					   url: '/pages/workbench/task/TaskForm?flow='+JSON.stringify(query)					})				  })		      },			// 输入监听			inputWord(e){				this.searchTimer && clearTimeout(this.searchTimer)				this.searchTimer = setTimeout(()=>{					this.doSearch()				},300)			},			// 搜索			doSearch(){				this.dataList = []; 				this.tablePage.currentPage = 0;				this.tablePage.pageSize = 10;				this.tablePage.pages = 0;				this.loadmore()			},			onReachBottom() {				this.loadmore()			},			loadmore() {				if(this.tablePage.currentPage!==0 && this.tablePage.pages <= this.tablePage.currentPage ) {					this.status = 'nomore';					return;				}				this.tablePage.currentPage = ++ this.tablePage.currentPage;				//联网加载数据				this.status = 'loading';				taskService.todoList({					current: this.tablePage.currentPage,					size: this.tablePage.pageSize,					orders: this.tablePage.orders,					...this.searchForm				}).then((data)=>{					//追加新数据					this.dataList=this.dataList.concat(data.records);					this.tablePage.pages = data.pages;					if(this.tablePage.pages <= this.tablePage.currentPage){						this.status = 'nomore'					} else {						this.status = 'loadmore'					}				})							}		}	}</script>
 |