<template> <view class="categoryTwo"> <view class="head"> {{dataInfo.parentName}} </view> <view class="body" v-if="dataInfo.list.length"> <view class="body_item ellipsis" v-for="data in dataInfo.list" :key="data.id" @click="toCategoryThree(data)"> {{data.category}} </view> </view> <view class="zanwu" v-else> <text class="newicon newicon-zanwu"></text> </view> <view class="foot_common_btns"> <button @click="goBack" type="default" class="primaryButton btn">上一级</button> </view> </view> </template> <script setup> import { ref, reactive} from 'vue' import { onLoad, onPullDownRefresh, onReachBottom } from '@dcloudio/uni-app' import { api_incidentcategory } from "@/http/api.js" import { defaultColor } from '@/static/js/theme.js' import { useSetTitle } from '@/share/useSetTitle.js' import { useLoginUserStore } from '@/stores/loginUser' import { useGoBack } from '@/share/useGoBack.js' useSetTitle(); const loginUserStore = useLoginUserStore(); const { goBack } = useGoBack(); // 主题颜色 const primaryColor = ref(defaultColor) // 数据 const dataInfo = reactive({ list: [],//工单列表 idx: 0,//页码 hasMore: true,//是否有更多数据 incidentId: undefined,//事件ID parentId: undefined,//父级故障现象ID parentName: undefined,//父级故障现象名称 }) // 跳转三级故障现象列表 function toCategoryThree(data){ uni.navigateTo({ url: `/pages/categoryThree/categoryThree?incidentId=${dataInfo.incidentId}&grandParentName=${dataInfo.parentName}&parentId=${data.id}&parentName=${data.category}` }) } // 获取列表信息 function getList(idx){ uni.showLoading({ title: "加载中", mask: true, }); // dataInfo.idx = idx === undefined ? dataInfo.idx : idx; // if(dataInfo.idx === 0){ // dataInfo.list = []; // } let postData = { // idx: dataInfo.idx, // sum: 9999, category: { dutyIds:loginUserStore.loginUser.user.currentHospital.id, parent: { id: dataInfo.parentId, }, } } // 当前所属院区或责任科室 // if(loginUserStore.loginUser.user.duty){ // postData.incidentcategory.duty = loginUserStore.loginUser.user.duty.id; // }else if(loginUserStore.loginUser.user.branch){ // postData.incidentcategory.branch = loginUserStore.loginUser.user.branch.id; // } api_incidentcategory(postData).then(res => { uni.hideLoading(); uni.stopPullDownRefresh(); if(res.status == 200){ dataInfo.list = res.data || []; // if(list.length){ // dataInfo.hasMore = true; // dataInfo.list = dataInfo.idx === 0 ? list : dataInfo.list.concat(list); // }else{ // dataInfo.hasMore = false; // } }else{ uni.showToast({ icon: 'none', title: res.msg || '请求数据失败!' }); } }) } onLoad((option) => { dataInfo.incidentId = option.incidentId; dataInfo.parentId = option.parentId; dataInfo.parentName = option.parentName; getList(0); }) onPullDownRefresh(() => { // getList(0) }) onReachBottom(() => { // dataInfo.idx += 1; // if (dataInfo.hasMore) { // getList(); // 当触底时加载更多数据 // } }) </script> <style lang="scss" scoped> .categoryTwo{ display: flex; flex-direction: column; justify-content: space-between; .head{ height: 88rpx; display: flex; align-items: center; padding: 0 24rpx; position: fixed; z-index: 99; width: 100%; box-sizing: border-box; background: #fff; font-size: 26rpx; color: $uni-primary; } .body{ border-top: 1rpx solid #DEDEDE; margin-bottom: 140rpx; margin-top: 88rpx; font-size: 26rpx; .body_item{ border-bottom: 1rpx solid #DEDEDE; padding: 24rpx; } } .zanwu{ margin-bottom: 140rpx; margin-top: 88rpx; display: flex; justify-content: center; .newicon-zanwu{ font-size: 256rpx; color: #D6D6D6; margin-top: 140rpx; } } .foot_common_btns{ position: fixed; left: 0; bottom: 0; background-color: #fff; } } </style>