ZaiZai %!s(int64=2) %!d(string=hai) anos
pai
achega
74d598f088
Modificáronse 3 ficheiros con 17 adicións e 393 borrados
  1. 12 9
      pages/task/detail.vue
  2. 5 8
      pages/task/index.vue
  3. 0 376
      pages/task/index11.vue

+ 12 - 9
pages/task/detail.vue

@@ -17,6 +17,10 @@
                 <view>{{taskInfo.startTime}}</view>
             </view>
             <view class="task-pdf-list-bar">
+                <view class="task-pdf-info">
+                    <view class="file-name">{{taskFileInfo.fileName}}</view>
+                    <view class="file-num">共{{taskFileInfo.fileNum}}张表格</view>
+                </view>
                 <zb-tooltip placement="bottom-end" ref="tooltipRef1">
                     <view class="task-pdf-info">
                         <view class="file-name">{{taskFileInfo.fileName}}</view>
@@ -121,17 +125,16 @@ let eventChannel = null;
 const getEventChannel = async () => {
     await nextTick();
     eventChannel = instance.getOpenerEventChannel();
-    eventChannel.on('data', ({rows, isTask}) => {
-        const res = getArrValue(rows);
-        if (res.length > 0) {
-            taskInfo.value = res[0]
-        }
-        taskList.value = res
-        isTaskAuth.value = !!isTask
-    })
 }
 
-onLoad(() => {
+onLoad(({node}) => {
+    const {rows, isTask} = node ? JSON.parse(decodeURIComponent(node)) : {};
+    const res = getArrValue(rows);
+    if (res.length > 0) {
+        taskInfo.value = res[0]
+    }
+    taskList.value = res
+    isTaskAuth.value = !!isTask
     getDataApi()
 })
 

+ 5 - 8
pages/task/index.vue

@@ -305,19 +305,16 @@ const batchApproval = () => {
 
 //跳转任务详情
 const toTaskDetail = (rows) => {
+    const node = encodeURIComponent(JSON.stringify({
+        rows: rows,
+        isTask: taskType.value === 1
+    }))
     uni.navigateTo({
-        url: '/pages/task/detail',
+        url: '/pages/task/detail?node=' + node,
         events: {
             finish: () => {
                 searchClick();
             }
-        },
-        success: (res) => {
-            res.eventChannel.emit('data', {
-                rows: rows,
-                //是否可以审批
-                isTask: taskType.value === 1
-            })
         }
     });
 }

+ 0 - 376
pages/task/index11.vue

@@ -1,376 +0,0 @@
-<template>
-    <z-paging class="hc-task-page" ref="pageRef" v-model="taskList" @query="getTaskList">
-        <template #top>
-            <view class="hc-paging-top-bar">
-                <view class="task-nav-bar">
-                    <view class="segmented-bar">
-                        <template v-for="item in taskTypeData">
-                            <view class="task-tab-item"
-                                :class="item.key === taskType?'task-cur':''"
-                                @click="taskTypeChange(item)"
-                            >{{item.name}}</view>
-                        </template>
-                    </view>
-                    <view class="more-bar" v-if="taskType === 1 && taskList.length > 0" @click="moreBarClick">
-                        <text class="i-ri-more-2-fill icon"/>
-                    </view>
-                </view>
-                <view class="controls-bar-box">
-                    <view class="controls-bar">
-                        <view class="left">
-                            <text class="i-ri-filter-fill icon" :class="isControlsFilter?'cur':''" @click="dateFilterClick"/>
-                            <text class="i-ri-filter-off-fill icon" @click="dateFilterClear"/>
-                        </view>
-                        <view class="right">
-                            <text class="i-ri-sort-desc icon" :class="searchForm.ordType === 1?'cur':''" @click="changeOrdType(1)"/>
-                            <text class="i-ri-sort-asc icon" :class="searchForm.ordType === 2?'cur':''" @click="changeOrdType(2)"/>
-                        </view>
-                    </view>
-                    <view class="controls-filter" v-if="isControlsFilter">
-                        <view class="search-form-date">
-                            <picker class="search-date-input" mode="date" :value="searchForm.startTime" @change="startDateChange">
-                                <view class="content">
-                                    <view class="text">{{searchForm.startTime??'点此选择开始日期'}}</view>
-                                    <text class="i-ri-close-circle-line icon" v-if="searchForm.startTime" @click.stop="startDateClear"/>
-                                </view>
-                            </picker>
-                        </view>
-                        <view class="search-form-date">
-                            <picker class="search-date-input" mode="date" :value="searchForm.endTime" @change="endDateChange">
-                                <view class="content">
-                                    <view class="text">{{searchForm.endTime??'点此选择结束日期'}}</view>
-                                    <text class="i-ri-close-circle-line icon" v-if="searchForm.endTime" @click.stop="endDateClear"/>
-                                </view>
-                            </picker>
-                        </view>
-                        <button class="search-form-btn" type="primary" size="mini" @click="searchClick">查询</button>
-                    </view>
-                </view>
-            </view>
-        </template>
-        <!--任务列表-->
-        <uni-card v-for="item in taskList" padding="0" :class="item.check?'is-check':''" @click="taskItemClick(item)">
-            <view class="py-3 text-30 text-black">{{item.taskName}}</view>
-            <view slot="actions" class="card-actions no-border">
-                <view class="card-actions-item">
-                    <view class="item-icon-check" v-if="showCheck">
-                        <uni-icons type="checkbox-filled" size="26" color="#ee5b20" v-if="item.check"/>
-                        <uni-icons type="checkbox" size="26" color="#9a9a9a" v-else/>
-                    </view>
-                    <text>{{item.startTime}}提交的申请</text>
-                </view>
-                <view class="card-actions-item">
-                    <uni-icons type="calendar" size="18" color="#EE5B20"/>
-                    <text class="card-actions-item-text" style="color: #EE5B20;">审批</text>
-                </view>
-            </view>
-        </uni-card>
-        <template #bottom>
-            <hc-tabbars class="hc-paging-bottom-bar" v-if="showCheck">
-                <view class="show-check-tabbars">
-                    <view class="check-bar">
-                        <view class="check-box" @click="allCheckClick">
-                            <text class="text">全选</text>
-                            <uni-icons type="checkbox-filled" size="26" color="#ee5b20" v-if="isAllCheck"/>
-                            <uni-icons type="checkbox" size="26" color="#9a9a9a" v-else/>
-                        </view>
-                        <view class="text-box">
-                            <text class="text">共勾选</text>
-                            <text class="text" style="color: #ee5b20;">{{itemCheckIndex}}</text>
-                            <text class="text">条任务</text>
-                        </view>
-                    </view>
-                    <view class="btn-bar">
-                        <button class="check-btn" size="mini" @click="batchApproval">批量审批</button>
-                        <button class="check-btn" size="mini"  @click="cancelTaskClick">批量废除</button>
-                        <button class="check-btn cancel" size="mini" @click="cancelCheckClick">取消操作</button>
-                    </view>
-                </view>
-            </hc-tabbars>
-        </template>
-    </z-paging>
-</template>
-
-<script setup>
-import {nextTick, ref, watch} from "vue";
-import mainApi from '~api/tasks/data';
-import {errorToast, successToast} from "@/utils/tools";
-import {arrToKey, getArrValue, getObjValue} from "js-fast-way";
-import {useAppStore} from "@/store";
-
-//初始变量
-const store = useAppStore()
-const projectId = ref(store.projectId);
-const contractId = ref(store.contractId);
-
-const pageRef = ref(null)
-
-//顶部类型切换
-const taskType = ref(1)
-const taskTypeData = [
-    {key: 1, name: '我的审批'},
-    {key: 2, name: '我发起的'},
-    {key: 3, name: '已办结的'}
-]
-const taskTypeChange = ({key}) => {
-    taskType.value = key
-    searchClick()
-}
-
-//批量操作
-const showCheck = ref(false)
-const moreBarClick = () => {
-    showCheck.value = !showCheck.value
-}
-
-//日期选择器弹出框
-const isControlsFilter = ref(false)
-
-//监听顶部高度变化
-watch(isControlsFilter, (res) => {
-    nextTick(() => {
-        pageRef.value?.updatePageScrollTopHeight()
-    })
-})
-
-//监听底部高度变化
-watch(showCheck, (res) => {
-    nextTick(() => {
-        pageRef.value?.updatePageScrollBottomHeight()
-    })
-})
-
-const dateFilterClick = () => {
-    isControlsFilter.value = !isControlsFilter.value
-}
-const dateFilterClear = () => {
-    isControlsFilter.value = false
-    searchForm.value.startTime = null
-    searchForm.value.endTime = null
-    searchClick()
-}
-
-//开启日期选择完毕
-const startDateChange = (e) => {
-    const val = e.detail.value, endTime = searchForm.value.endTime
-    if (endTime && val && val > endTime) {
-        errorToast('开始日期不能大于结束日期', 2000)
-        return false
-    } else {
-        searchForm.value.startTime = val
-    }
-}
-const startDateClear = () => {
-    searchForm.value.startTime = null
-}
-//结束日期选择完毕
-const endDateChange = (e) => {
-    const val = e.detail.value, startTime = searchForm.value.startTime
-    if (startTime && val && val < startTime) {
-        errorToast('结束日期不能小于开始日期', 2000)
-        return false
-    } else {
-        searchForm.value.endTime = val
-    }
-}
-const endDateClear = () => {
-    searchForm.value.endTime = null
-}
-
-//条件搜索
-const searchClick = () => {
-    pageRef.value?.reload()
-}
-
-//排序切换
-const changeOrdType = (type) => {
-    searchForm.value.ordType = type
-    searchClick()
-}
-
-//搜索表单
-const searchForm = ref({
-    startTime: null, endTime: null, ordType: 1
-})
-
-//获取任务列表数据
-const taskList = ref([])
-const getTaskList = async (pageNo, pageSize) => {
-    let task_type = taskType.value, res = {};
-    uni.showLoading({title: '获取数据中...', mask: true});
-    if (task_type === 1) {
-        const { data } = await mainApi.queryUserToDoTaskList({
-            projectId: projectId.value,
-            contractId: contractId.value,
-            ...searchForm.value,
-            current: pageNo,
-            size: pageSize,
-        })
-        res = getObjValue(data)
-    } else if (task_type === 2) {
-        const { data } = await mainApi.queryUserStartFlow({
-            projectId: projectId.value,
-            contractId: contractId.value,
-            ...searchForm.value,
-            current: pageNo,
-            size: pageSize,
-        })
-        res = getObjValue(data)
-    } else if (task_type === 3) {
-        const { data } = await mainApi.queryUserDoneTaskList({
-            projectId: projectId.value,
-            contractId: contractId.value,
-            ...searchForm.value,
-            current: pageNo,
-            size: pageSize,
-        })
-        res = getObjValue(data)
-    }
-    uni.hideLoading();
-    pageRef.value?.complete(getArrValue(res?.records));
-    if (isAllCheck.value) {
-        isAllCheck.value = itemCheckIndex.value === taskList.value.length
-    }
-}
-
-//任务被点击
-const itemCheckIndex = ref(0)
-const taskItemClick = (item) => {
-    if (showCheck.value) {
-        const check = !item.check, list = taskList.value
-        if (check) {
-            itemCheckIndex.value++
-        } else {
-            itemCheckIndex.value--
-        }
-        item.check = check
-        isAllCheck.value = list.length === itemCheckIndex.value
-    } else {
-        toTaskDetail([item])
-    }
-}
-
-//全选
-const isAllCheck = ref(false)
-const allCheckClick = () => {
-    uni.showLoading({title: '处理中...', mask: true});
-    const list = taskList.value, isCheck = !isAllCheck.value
-    for (let i = 0; i < list.length; i++) {
-        list[i].check = isCheck;
-    }
-    itemCheckIndex.value = isCheck ? list.length : 0
-    isAllCheck.value = isCheck
-    uni.hideLoading();
-}
-
-//取消操作
-const cancelCheckClick = () => {
-    const list = taskList.value
-    for (let i = 0; i < list.length; i++) {
-        list[i].check = false;
-    }
-    itemCheckIndex.value = 0
-    showCheck.value = false
-}
-
-//批量审批
-const batchApproval = () => {
-    let rows = taskList.value.filter((item) => {
-        return item.check
-    })
-    if (rows.length <= 0) {
-        errorToast('请选择需要审批的任务')
-        return false
-    }
-    //路由跳转
-    toTaskDetail(rows)
-}
-
-//跳转任务详情
-const toTaskDetail = (rows) => {
-    uni.navigateTo({
-        url: '/pages/task/detail',
-        events: {
-            finish: () => {
-                searchClick();
-            }
-        },
-        success: (res) => {
-            res.eventChannel.emit('data', {
-                rows: rows,
-                //是否可以审批
-                isTask: taskType.value === 1
-            })
-        }
-    });
-}
-
-//批量废除
-const popupRef = ref(null)
-const argument = ref('')
-const cancelTaskList = ref([])
-const cancelTaskClick = () => {
-    cancelTaskList.value = []
-    let rows = taskList.value.filter((item) => {
-        return item.check
-    })
-    if (rows.length <= 0) {
-        errorToast('请选择需要废除的任务')
-        return false
-    }
-    cancelTaskList.value = rows
-    argument.value = ''
-    popupRef.value?.open()
-}
-
-//确认废除
-const confirmRepeal = () => {
-    if (!argument.value) {
-        errorToast('请先填写废除理由')
-        return false
-    }
-    batchCompleteApprovalTaskApi(cancelTaskList.value)
-}
-
-//批量废除接口
-const batchCompleteApprovalTaskApi = async (rows) => {
-    uni.showLoading({title: '批量废除中...', mask: true});
-    let taskIds = arrToKey(rows, 'taskId', ',')
-    let approvalType = arrToKey(rows, 'approvalType', ',')
-    let formDataId = arrToKey(rows, 'formDataId', ',')
-    let parallelProcessInstanceIds = arrToKey(rows, 'parallelProcessInstanceId', ',')
-    const {error, code, msg} = await mainApi.batchCompleteApprovalTask({
-        flag: 'NO',
-        comment: argument.value,
-        taskIds: taskIds,
-        approvalType: approvalType,
-        formDataId: formDataId,
-        parallelProcessInstanceIds: parallelProcessInstanceIds,
-    })
-    uni.hideLoading();
-    if (!error && code === 200) {
-        successToast('废除成功')
-        cancelClick()
-        searchClick()
-    } else {
-        errorToast(`废除失败:${msg}`)
-    }
-}
-
-//取消废除
-const cancelClick = () => {
-    popupRef.value?.close()
-    argument.value = ''
-}
-</script>
-
-<style lang="scss" scoped>
-page {
-    background: #EFEFF4;
-    height: 100%;
-}
-</style>
-
-<style lang="scss">
-@import "@/style/task/index.scss";
-</style>