public-opinion/pagesA/manager/examine-list/examine-list.vue

147 lines
4.6 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view v-if="isLoading">
<statusContainer titlet="民意审核" :ifReturn="false">
<view slot="content">
<view class="bacf disja pad-sx20 fon30" :style="{top:newtop+42+'px'}" style="margin: -20rpx -20rpx 0 -20rpx;position: sticky;z-index: 10;">
<view @tap="switchEv(0)" class="pad-sx20 disjcac radius20" :style="switchIndex==0?'background-color:#39d091;color:#FFFFFF;':''" style="width: 288rpx;">已处理</view>
<view @tap="switchEv(1)" class="pad-sx20 disjcac radius20" :style="switchIndex==1?'background-color:#39d091;color:#FFFFFF;':''" style="width: 288rpx;">未处理</view>
</view>
<view class="mar-s20 radius20 fon24 bacf posir" v-for="(item,index) in reviewedList" :key="index">
<view class="pad-sx20 pad-zy50 status-box" :style="{backgroundColor:['#39d091','#f8bf00','#f41500'][switchIndex]}">{{['已处理','待处理','已督办'][switchIndex]}}</view>
<view class="pad20 bbot line-h46 pad-x40">
<view class="fon30">{{item.coding}}</view>
<view class="">用户名{{item.is_anonymous==1?'匿名提交':item.u_name}}</view>
<view class="">{{item.state_text}}</view>
<view class="">反馈问题{{item.description}}</view>
</view>
<view class="dis fon30" v-if="switchIndex==0">
<view @tap="goDetail(item.id)" class="width50 pad-sx30 disjcac border-r">
<image class="mar-y20" src="/static/icon/icon-check.png" mode="" style="width: 34rpx;height: 34rpx;"></image>查看处理详情
</view>
<view @tap="reexamineEv(item.id)" class="width50 pad-sx30 disjcac">
<image class="mar-y20" src="/static/icon/icon-revie.png" mode="" style="width: 34rpx;height: 34rpx;"></image>
督办复审
</view>
</view>
<view class="dis fon30 disjcac" v-if="switchIndex==1">
<view @tap="goDetail(item.id)" class="pad-sx30 disac">
<image class="mar-y20" src="/static/icon/icon-check.png" mode="" style="width: 34rpx;height: 34rpx;"></image>
查看处理详情
</view>
</view>
</view>
</view>
</statusContainer>
</view>
</template>
<script>
import statusContainer from '@/components/containers/status-container.vue';
export default {
components:{
statusContainer
},
data() {
return {
switchIndex:0,
newtop:uni.getSystemInfoSync().statusBarHeight,
reviewedList:[], //数据列表
type:[1,0], // 办理状态
page:1, //页数
size:15, //条数
total:0, //总数
noMore:false, // 没有更多
isLoading:false,
}
},
onShow() {
// 查询列表
this.getListEv();
},
onReachBottom() {
if(!this.noMore){
this.page++;
// 查询列表
this.getListEv();
}
},
methods: {
// 切换事件
switchEv(index){
if(index!==this.switchIndex){
this.switchIndex = index;
// 重置数据
this.reviewedList= [];
this.page = 0;
// 查询列表
this.getListEv();
}
},
// 查询列表
getListEv(){
uni.showLoading({
title:'加载中'
})
let params = {
page:this.page,
size:this.size,
state:this.type[this.switchIndex]
}
this.$requst.post('administrator/reviewedList',params).then(res => {
if(res.code==0){
console.log(res,'处理情况列表');
this.total = res.data.total;
let reviewedArr = [];
res.data.list.forEach(item=>{
let obj = {
id:item.id,
coding:item.coding,
state_text:item.state_text,
u_name:item.u_name,
u_phone:item.u_phone,
description:item.description,
is_anonymous:item.is_anonymous,
}
reviewedArr.push(obj);
})
this.reviewedList = this.reviewedList.concat(reviewedArr)
if(this.reviewedList.length == this.total){
this.noMore =true;
}
} else {
this.$toolAll.tools.showToast(res.msg);
}
uni.hideLoading();
this.isLoading = true;
})
},
// 督办复审
reexamineEv(id){
this.$requst.post('administrator/examine',{id:id}).then(res => {
if(res.code==0){
console.log(res,'督办复审');
this.$toolAll.tools.showToast('审核成功');
} else {
this.$toolAll.tools.showToast(res.msg);
}
uni.hideLoading();
this.isLoading = true;
})
},
// 前往详情页
goDetail(id){
uni.navigateTo({
url:`/pagesA/detail/detail?id=${id}&manager=1`
})
},
}
}
</script>
<style>
page{
background-color: #f5f5f5;
}
.status-box{position: absolute;right: 0;top: 0;background-color: #39d091;border-radius: 0 0 0 30rpx;}
</style>