import React, { useState, useEffect } from 'react' import Taro, { useDidShow, useRouter, useReachBottom } from '@tarojs/taro' import { View, Picker, Input, Image } from '@tarojs/components' import moment from 'moment' import './index.scss' import NoData from '@/components/no-data/noData' import request from '@/services/request' import { getReportList } from '@/services/api'; import chevronDown from '../../static/img/patrolView/chevron-down.png' import searchIcon from '../../static/img/patrolView/search.png' import cardImg from '../../static/img/patrolView/card-img.png' import patrolIcon from '../../static/img/patrolView/patrol.svg' import patrolActiveIcon from '../../static/img/patrolView/patrol-active.svg' import conserveIcon from '../../static/img/patrolView/conserve.svg' import conserveActiveIcon from '../../static/img/patrolView/conserve-active.svg' function Index() { const userInfo = Taro.getStorageSync('userInfo') || {}; const isAdmin = userInfo && userInfo.username === 'SuperAdmin' ? true : false const router = useRouter() const { params: { filter, kind, } } = router const isPatrol = kind === 'patrol' || kind == 'conserve' ? true : false const isRoad = kind === 'road' ? true : false const isAnomaly = kind === 'anomaly' ? true : false const isWait = kind === 'wait' ? true : false const ishandle = kind == 'handle' ? true : false const [reportType, setReportType] = useState(kind || 'patrol') const [datePicker, setDatePicker] = useState('') const [listData, setListData] = useState([]) const [filterText, setFilterText] = useState('') const [systemInfo, setSystemInfo] = useState('') const [page, setPage] = useState(0) const [num, setNum] = useState(Math.random()) const [typeSearchList, setTypeSearchList] = useState(['全部', '待处理', '不处理', '已处理']) const [typeSearch, setTypeSearch] = useState('全部') const limit = 10 useEffect(() => { if (isRoad) { Taro.setNavigationBarTitle({ title: '在建项目' }) } else if (isAnomaly) { Taro.setNavigationBarTitle({ title: '异常反馈' }) } else if (ishandle) { Taro.setNavigationBarTitle({ title: '已办事项' }) } else if (kind == 'conserve') { Taro.setNavigationBarTitle({ title: '养护上报' }) } else if (isWait) { Taro.setNavigationBarTitle({ title: '待办事项' }) } else { Taro.setNavigationBarTitle({ title: '巡查上报' }) } }, []) useEffect(() => { setPage(0) setNum(Math.random()) }, [reportType, datePicker, typeSearch]) useEffect(() => { getList(page == 0 ? true : false) }, [num]) function dealError(error) { Taro.showToast({ title: error, icon: 'none', duration: 1500 }); throw new Error(error); } const getList = (isInit) => { Taro.showLoading({ title: '加载中' }) let handleState = '' if (typeSearch != '全部') { handleState = typeSearch } else { handleState = isWait ? isAdmin ? '待处理' : '待处理,已指派' : ishandle ? isAdmin ? '已处理,已指派,不处理' : '已处理' : '' } const data = { limit, page, startTime: datePicker ? datePicker + ' 00:00:00' : '', endTime: datePicker ? datePicker + ' 23:59:59' : '', keyword: filterText, reportType: isWait || ishandle ? 'anomaly' : reportType, userId: filter === 'my' && !ishandle ? userInfo.id : '', handleState: handleState, performerId: (isWait || ishandle) && !isAdmin ? userInfo.id : '', // 超管查看所有 } request.get(getReportList(), data).then(res => { Taro.hideLoading() if (res.statusCode == 200) { if (res.data.length === 0) { Taro.showToast({ title: '没有更多了', icon: 'none' }) } const temp = isInit ? [] : listData const nextListData = temp.concat(res.data) setListData(nextListData) } else { dealError(res.data.message || '请求出错'); } }, err => { dealError(err.message || '请求出错'); }); } // 监听上拉触底 useReachBottom(() => { setPage(page + 1) setNum(Math.random()) }) useDidShow(() => { setPage(0) setNum(Math.random()) let refresh = Taro.getStorageSync('refresh'); // 返回列表需要刷新 if (refresh) { Taro.removeStorageSync('refresh'); // 返回列表需要刷新 } Taro.getSystemInfo({ success: (res) => { // windows | mac为pc端 // android | ios为手机端 setSystemInfo(res.platform); } }); }) const onDateChange = e => { setDatePicker(e.detail.value); } const handleConfirm = e => { setPage(0) setNum(Math.random()) } const handleInput = e => { setFilterText(e.detail.value); if (!e.detail.value) { setPage(0) setNum(Math.random()) } } const handleDetail = index => { Taro.navigateTo({ url: `/packages/patrol/index?type=view&id=${listData[index].id}&kind=${kind == 'wait' || kind == 'handle' ? 'anomaly' : kind}&wait=${kind == 'wait' ? 'wait' : ''}&handle=${kind == 'handle' ? 'handle' : ''}&videoShow=${kind == 'wait' || kind == 'handle' ? 'videoShow' : ''}` }) } const setType = (e) => { setTypeSearch(e.detail.value == 1 ? '待处理' : e.detail.value == 2 ? '不处理' : e.detail.value == 3 ? '已处理' : '全部') } return ( {/* { isPatrol ? setReportType('patrol')}> 巡查 setReportType('conserve')}> 养护 : "" } */} 日期: {datePicker || '请选择'} { kind == 'anomaly' ? 状态: {typeSearch} : '' } { listData && listData.length > 0 ? listData && listData.map((e, index) => { return ( handleDetail(index)}> {e.road || e.projectName} 填报人: {e.user && e.user.name} {moment(e.time).format('YYYY-MM-DD HH:mm:ss')} ) }) : } ) } export default Index