|
@@ -0,0 +1,249 @@
|
|
|
+<template>
|
|
|
+ <div style="padding:10px 15px">
|
|
|
+ <div class="taskdetail">
|
|
|
+ <div class="title">{{taskinfo.taskName}} 工单
|
|
|
+ <div class="btngroup">
|
|
|
+ <el-button type="primary">派 发</el-button>
|
|
|
+ <el-button type="primary">驳 回</el-button>
|
|
|
+ <el-button type="primary">处 置</el-button>
|
|
|
+ <el-button type="primary">审 核</el-button>
|
|
|
+ <el-button type="primary">跟 踪</el-button>
|
|
|
+ <el-button type="danger" @click="()=>{router.back()}">返回</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="card">
|
|
|
+ <div class="title">工单信息</div>
|
|
|
+ <div class="body">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="6">事件来源:{{task_type.filter(i=>i.value===taskinfo.taskType)[0]?.label ?? '-'}}</el-col>
|
|
|
+ <el-col :span="6">班组区域:{{ taskinfo.taskDeptRange.split(",").map(i=>{ return alldept.find(p=>{return (p.deptId+"")===(i+"")})?.deptName ?? '-' } ).join(",") }}</el-col>
|
|
|
+ <el-col :span="6">来件时间:{{taskinfo.taskTime}}</el-col>
|
|
|
+ <el-col :span="6">设施编号:{{taskinfo.taskFacilitieCode}}</el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="6">事件分类:{{task_event_type.filter(i=>i.value===taskinfo.taskEventType)[0]?.label ?? '-'}}</el-col>
|
|
|
+ <el-col :span="6">其他工单号:{{taskinfo.taskOtherId}}</el-col>
|
|
|
+ <el-col :span="6">要求完成时间:{{taskinfo.taskReqCompleteTime}}</el-col>
|
|
|
+ <el-col :span="6">事件类型:{{task_event_category.filter(i=>i.value===taskinfo.taskEventCategory)[0]?.label ?? '-'}}</el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="6">来件备注:{{taskinfo.taskFromRemark}}</el-col>
|
|
|
+ <el-col :span="6">投诉人电话:{{taskinfo.taskComplainConnect}}</el-col>
|
|
|
+ <el-col :span="6">上报人:{{taskinfo.taskReporter}}</el-col>
|
|
|
+
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">详细地址:{{taskinfo.taskAddr}}</el-col>
|
|
|
+ <el-col :span="12">备注信息:{{taskinfo.remark}}</el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">现场照片:</el-col>
|
|
|
+ <el-col :span="12">任务内容:{{taskinfo.taskContent}}</el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <ImagePreview v-model:src="taskinfo.taskPics" :height="'120px'" :width="'120px'"></ImagePreview>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="card">
|
|
|
+ <div class="title">派发信息</div>
|
|
|
+ <div class="body">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="6">负责人:{{task_type.filter(i=>i.value===taskinfo.taskType)[0]?.label ?? '-'}}</el-col>
|
|
|
+ <el-col :span="6">联系方式:{{ taskinfo.taskDeptRange.split(",").map(i=>{ return alldept.find(p=>{return (p.deptId+"")===(i+"")})?.deptName ?? '-' } ).join(",") }}</el-col>
|
|
|
+ <el-col :span="6">处置班组:{{taskinfo.taskTime}}</el-col>
|
|
|
+ <el-col :span="6">派发时间:{{taskinfo.taskFacilitieCode}}</el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="card">
|
|
|
+ <div class="title">现场驳回</div>
|
|
|
+ <div class="body">
|
|
|
+
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">原因备注:{{task_type.filter(i=>i.value===taskinfo.taskType)[0]?.label ?? '-'}}</el-col>
|
|
|
+
|
|
|
+ <el-col :span="12">驳回时间:{{taskinfo.taskTime}}</el-col>
|
|
|
+ <el-col :span="12">照片:</el-col>
|
|
|
+ <el-col :span="12">说明报告:<a>sdd</a></el-col>
|
|
|
+
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <ImagePreview v-model:src="taskinfo.taskPics" :height="'120px'" :width="'120px'"></ImagePreview>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="card">
|
|
|
+ <div class="title">跟踪信息</div>
|
|
|
+ <div class="body">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="6">是否及时完成:{{task_type.filter(i=>i.value===taskinfo.taskType)[0]?.label ?? '-'}}</el-col>
|
|
|
+ <el-col :span="6">回访情况:{{ taskinfo.taskDeptRange.split(",").map(i=>{ return alldept.find(p=>{return (p.deptId+"")===(i+"")})?.deptName ?? '-' } ).join(",") }}</el-col>
|
|
|
+ <el-col :span="6">处置完成日期:{{taskinfo.taskTime}}</el-col>
|
|
|
+ <el-col :span="6">记录人:{{taskinfo.taskFacilitieCode}}</el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="card">
|
|
|
+ <div class="title">处置信息</div>
|
|
|
+ <div class="body">
|
|
|
+
|
|
|
+ <div v-for="(item,index1) in processdata">
|
|
|
+ <div class="titleheader" :style="`${index1==0?'margin-top:0px':''}`">{{item.title}}</div>
|
|
|
+ <div>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="6" v-for="p in item.content">{{p}}</el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div>
|
|
|
+ <div class="titleheader">现场图片</div>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24" >
|
|
|
+ <ImagePreview v-model:src="taskinfo.taskPics" :height="'120px'" :width="'120px'"></ImagePreview>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="card">
|
|
|
+ <div class="title">核查信息</div>
|
|
|
+ <div class="body">
|
|
|
+
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">核查人员:{{task_type.filter(i=>i.value===taskinfo.taskType)[0]?.label ?? '-'}}</el-col>
|
|
|
+
|
|
|
+ <el-col :span="12">核查时间:{{taskinfo.taskTime}}</el-col>
|
|
|
+ <el-col :span="24">核查备注:{{taskinfo.taskFacilitieCode}}</el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script lang="ts" setup>
|
|
|
+import { defineComponent, ref } from 'vue'
|
|
|
+import { useDict } from '@/utils/dict';
|
|
|
+// 图片预览组件
|
|
|
+import ImagePreview from "@/components/ImagePreview"
|
|
|
+import { cloneDeep } from 'lodash';
|
|
|
+import { listDept, getDept } from "@/api/system/dept";
|
|
|
+import router from '../../../router';
|
|
|
+const { task_status, task_type, task_event_type, task_event_category } = useDict("task_status", "task_type", "task_event_type", "task_event_category");
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+const alldept = ref([]);
|
|
|
+listDept().then(response => {
|
|
|
+ alldept.value = cloneDeep(response.data);
|
|
|
+});
|
|
|
+
|
|
|
+const processdata = ref([{title:'相应信息',content:["响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss"]},{title:'相应信息',content:["响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss"]},{title:'相应信息',content:["响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss"]},{title:'相应信息',content:["响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss"]},{title:'相应信息',content:["响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss"]},{title:'相应信息',content:["响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss","响应时间:sss"]}])
|
|
|
+
|
|
|
+
|
|
|
+const taskinfo = ref({
|
|
|
+ taskName: "测试任务",
|
|
|
+ taskContent: "测试任务测试任务测试任务测试任务测试任务测试任务测试任务测试任务",
|
|
|
+ taskAddr: "-",
|
|
|
+ taskLocation: "-",
|
|
|
+ taskCode: "-",
|
|
|
+ taskType: "1",
|
|
|
+ taskEventType: "1",
|
|
|
+ taskEventCategory: "1",
|
|
|
+ taskFromRemark: "-",
|
|
|
+ taskAddrRoad: "-",
|
|
|
+ taskOtherId: "-",
|
|
|
+ taskTime: "2022-11-11 16:11:11",
|
|
|
+ taskReqCompleteTime: "2022-11-11 16:11:11",
|
|
|
+ status: 1,
|
|
|
+ taskCreater: "-",
|
|
|
+ taskReporter: "-",
|
|
|
+ taskPics: "/profile/upload/2022/06/01/icon128_20220601100554A011.png,/profile/upload/2022/05/31/icon16_20220531155706A001.png",
|
|
|
+ remark: "sss",
|
|
|
+ taskVideos: "-",
|
|
|
+ taskComplainConnect: "-",
|
|
|
+ taskDeptRange: "100,103",
|
|
|
+ taskFacilitieCode: "sdsdfdf"
|
|
|
+})
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss">
|
|
|
+.taskdetail {
|
|
|
+ background: #fff;
|
|
|
+ padding: 30px 22px;
|
|
|
+ border-radius: 8px;
|
|
|
+ overflow-y: auto;
|
|
|
+ padding-top: 20px;
|
|
|
+ position: relative;
|
|
|
+ .title {
|
|
|
+ color: #2B3551;
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 400;
|
|
|
+ .btngroup {
|
|
|
+ position: absolute;
|
|
|
+ top: 13px;
|
|
|
+ right: 20px;
|
|
|
+ .el-button {
|
|
|
+ margin-left: 25px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .card {
|
|
|
+ border: 1px solid #E5E9F2;
|
|
|
+ border-radius: 8px;
|
|
|
+ margin-top: 16px;
|
|
|
+ overflow: hidden;
|
|
|
+ .title {
|
|
|
+ background: rgba(192, 204, 218, 0.2);
|
|
|
+ height: 54px;
|
|
|
+ line-height: 54px;
|
|
|
+ color: #324057;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: Bold;
|
|
|
+ padding-left: 22px;
|
|
|
+ }
|
|
|
+ .body {
|
|
|
+ padding: 20px;
|
|
|
+ color: #475669;
|
|
|
+ font-size: 14px;
|
|
|
+ // padding-top: 10px;
|
|
|
+ .el-col {
|
|
|
+ margin-bottom: 20px;
|
|
|
+ }
|
|
|
+ .titleheader{
|
|
|
+ color:#2C7DE3;
|
|
|
+ font-weight: Bold;
|
|
|
+ margin-bottom: 24px;
|
|
|
+ margin-top: 20px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|