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>
|