yxk_h5_master/pages/task/taskDetail.vue

288 lines
8.4 KiB
Vue

<template>
<view class='page'>
<view class="top_container" style="padding-right: 30upx;clear: both;overflow: auto;">
<view class="report_status">
<text class="magtext">{{taskMain.statusName}}</text>
<text class="magtext">(编号:{{taskMain.taskNo||''}})</text>
</view>
<view v-if="taskMain.statusId=='56'">
<view class="btn" @click="sendMsg()">回复</view>
<view class="btn" @click="dealTask()">处理</view>
<view class="btn" @click="sendPeople()">转派</view>
</view>
<view style="float: right;" v-if="taskMain.statusId=='57'">
<view class="btn" @click="avulate()">验收</view>
</view>
</view>
<view class="detail_name_container">
<view :class="[current_num==1?'current':'']" @click="changecurrent(1)">任务信息</view>
<view :class="[current_num==2?'current':'']" @click="changecurrent(2)">回复信息</view>
<view :class="[current_num==3?'current':'']" @click="changecurrent(3)">处理记录</view>
</view>
<view v-if="current_num==1">
<view class="myContainer myContentBox">
<view class="top_container">基本信息</view>
<view class="list_item">
<view class="list_item_name">任务主题</view>
<view class="list_item_content content_right">{{taskMain.title}}</view>
</view>
<view class="list_item">
<view class="list_item_name">任务类型</view>
<view class="list_item_content content_right">{{taskMain.taskTypeName}}</view>
</view>
<view class="list_item">
<view class="list_item_name">任务等级</view>
<view class="list_item_content content_right">{{taskMain.taskLevelName}}</view>
</view>
<view class="list_item">
<view class="list_item_name">期望完成时间</view>
<view class="list_item_content content_right">{{taskMain.expireDate}}</view>
</view>
<view class="list_item">
<view class="list_item_name">发起人</view>
<view class="list_item_content content_right">{{taskMain.applyPersonName}}</view>
</view>
<view class="list_item">
<view class="list_item_name">发起时间</view>
<view class="list_item_content content_right">{{taskMain.createTime}}</view>
</view>
</view>
<view class="myCon myContentBox">
<view class="top_container">详细描述</view>
<view class="resultContent">{{taskMain.detail}}</view>
<view class="img-wrap" v-for="(items,index) in initFileList" :key='index'>
<view class="img-box">
<img :src="config.imgURL+items.filePath" />
</view>
</view>
</view>
<view class="myCon myContentBox">
<view class="top_container">人员信息</view>
<view class="list_item">
<view class="list_item_name">责任人</view>
<view class="list_item_content content_right">{{taskMain.heldPersonName}}</view>
</view>
<view class="list_item">
<view class="list_item_name">抄送人</view>
<view class="list_item_content content_right">{{formatCsrName(csr)}}</view>
</view>
</view>
</view>
<view v-else-if="current_num==2">
<view v-for="(item,index) in replyList" :key="index" class="example-box">
<view class="myCon myContentBox">
<view class="list_item">
<view class="list_item_name" style="color: #000; font-size: 32upx;">{{item.replyername}}</view>
<view class="list_item_content content_right">{{item.replytime}}</view>
</view>
<view class="list_item" style="padding: 0px 22upx;">
<text style="color: rgb(255,130,0);">#原因分析#</text>{{item.reason}}
</view>
<view class="list_item" style="padding: 0px 22upx;">
<text style="color: rgb(255,130,0);">#解决方案#</text>{{item.solution}}
</view>
<!-- <view class="list_item">
<view class="list_item_content content_right" style="color: #007AFF;">查看回复详情</view>
</view> -->
</view>
</view>
</view>
<view v-else-if="current_num==3">
<view v-for="(item,index) in dealList" :key="index" class="example-box" @click="dealDetail(item)">
<view class="myCon myContentBox">
<view class="list_item">
<view class="list_item_name" style="color: #000; font-size: 32upx;">{{item.replyername}}</view>
<view class="list_item_content content_right">{{item.replytime}}</view>
</view>
<view class="list_item" style="padding: 0px 22upx;">
<text style="color: rgb(255,130,0);">#原因分析#</text>{{item.reason}}
</view>
<view class="list_item" style="padding: 0px 22upx;">
<text style="color: rgb(255,130,0);">#解决方案#</text>{{item.solution}}
</view>
<view class="list_item">
<view class="list_item_name" style="color: #000; ">验收结果: {{item.statusName}}</view>
<view class="list_item_content content_right" style="color: #007AFF;" >查看处理详情</view>
</view>
</view>
</view>
</view>
<view class="goHome" @click='goMain("taskInfo")'>
<img src="../../static/img/gohome.png">
</view>
<view class="mysearchlist" style="z-index: 10000;">
<chooseUserSingle ref="mysearchlist"
:showsearch.sync="show_search_user"
:itemInfo_.sync="search_value_user">
</chooseUserSingle>
</view>
</view>
</template>
<script>
import chooseUserSingle from '@/components/xinsoft-search-list/chooseUserSingle.vue';
import {
config
} from '../../request/js/config.js'
export default{
components: {
chooseUserSingle,
},
data(){
return {
config:config,
current_num:1,
id:'',
taskMain:{},
initFileList:[],
csr:[],
replyList:[],
dealList:[],
reportDetail: [],
show_search_user:false,
search_value_user:"",
}
},
onLoad(option) {
this.id=option.id;
if(this.id==undefined){
uni.reLaunch({
url: 'task'
});
return false;
}
var _this = this;
this.$http.request({
url: '/apis/taskMain/detail',
params: {
id:option.id
},
}).then(res=>{
if(res.data.code == 0){
this.taskMain=res.data.taskMain;
this.csr = res.data.ccIdList;
this.replyList = res.data.replyList;
this.dealList = res.data.dealList;
}
}).catch(err=>{
uni.showToast({
title: '获取信息失败',
duration: 1000,
icon:"none"
});
});
},
watch:{
search_value_user(newv){
var _this = this;
this.$http.request({
url: '/apis/taskMain/reventTurnToSend',
params: {
taskId:_this.id,
userId:newv.userId
}
}).then(res=>{
if(res.data.code == 0) {
uni.showToast({
title: res.data.msg,
duration: 2000,
icon:"none"
});
setTimeout( function(){
uni.redirectTo({
url: 'taskDetail?id='+_this.id
});
},1000)
}
else{
uni.showToast({
title: res.data.msg,
duration: 1000,
icon:"none"
});
}
}).catch(err => {
uni.showToast({
title: '操作失败',
duration: 1000,
icon:"none"
});
})
}
},
methods:{
formatCsrName(csr){
var returnName = '';
for(var i=0;i<csr.length;i++){
if(i == 3){
returnName += csr[i].name+'等等';
break;
}else{
returnName += csr[i].name+','
}
}
returnName = returnName.substring(0,returnName.length-1);
return returnName;
},
dealDetail(item){
//查看处理详情
uni.navigateTo({
url: "dealDetail?id="+item.id
});
},
//回复
sendMsg(){
uni.navigateTo({
url: "sendMsg?id="+this.id
});
},
//处理
dealTask(){
uni.navigateTo({
url: "deal?id="+this.id
});
},
//指派
sendPeople(){
this.show_search_user=true;
// uni.navigateTo({
// url: "selectPeople?flag=zp&id="+this.id
// });
},
//评价
avulate(){
uni.navigateTo({
url: "acceptEvaluation?id="+this.id
});
},
changecurrent(num){
this.current_num=num;
}
},
// onBackPress(options) { //取消默认的返回事件.
// uni.navigateTo({
// url: "task"
// });
// return true;
// }
}
</script>
<style scoped>
.btn{
width: 160upx;
height:68upx;
text-align: center;
line-height: 68upx;
border-radius: 10upx;
background-color: #3382FF;
color: #fff;
font-size: 28upx;
float: left;
margin-right: 30upx;
}
</style>