You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
326 lines
10 KiB
326 lines
10 KiB
<template> |
|
<view> |
|
<view class="card mb-10" v-if="mailReturns.length"> |
|
<view class="mb-6"> |
|
<view class="row"> |
|
<view class="col-12 flex v-center gap"> |
|
<fui-icon name="info" :size="36" color="red"></fui-icon> |
|
<text class="danger bold" style="font-size: 14px;">信件退回</text> |
|
</view> |
|
<view class="col-12 flex"> |
|
<text class="label">退回单位</text> |
|
<text>{{ mailReturns[0].handlerDeptName }}</text> |
|
</view> |
|
</view> |
|
<view class="mb-4"> |
|
<text class="label">退回理由</text> |
|
</view> |
|
<view class="content text-wrap" style="background: #FBEEED;">{{ mailReturns[0].reason }}</view> |
|
</view> |
|
<view v-for="item in mailReturns.slice(1, mailReturns.length)" class="mb-6" v-if="!returnFold"> |
|
<view class="row"> |
|
<view class="col-12 flex v-center gap"> |
|
<fui-icon name="info" :size="36" color="red"></fui-icon> |
|
<text class="danger bold" style="font-size: 14px;">信件退回</text> |
|
</view> |
|
<view class="col-12 flex"> |
|
<text class="label">退回单位</text> |
|
<text>{{ item.handlerDeptName }}</text> |
|
</view> |
|
</view> |
|
<view class="mb-4"> |
|
<text class="label">退回理由</text> |
|
</view> |
|
<view class="content text-wrap" style="background: #FBEEED;">{{ item.reason }}</view> |
|
</view> |
|
<view class="flex end" v-if="mailReturns.length > 1"> |
|
<m-button style="width: 80px" @tap="returnFold = !returnFold">{{ returnFold ? '查看更多' : '收起' }}</m-button> |
|
</view> |
|
</view> |
|
<view class="card mb-10"> |
|
<view class="row"> |
|
<view class="col-12 flex"> |
|
<text class="label">来信时间</text> |
|
<text>{{ mail.mailTime }}</text> |
|
</view> |
|
<view class="col-12 flex"> |
|
<text class="label">信件来源</text> |
|
<text>{{ getDictLable(mailSources, mail.source) }}</text> |
|
</view> |
|
</view> |
|
<view class="row" v-if="mail.mainDeptLevel || mail.mailLevel"> |
|
<view class="col-12 flex" v-if="mail.mainDeptLevel"> |
|
<text class="label">主办层级</text> |
|
<text>{{ mainDeptLevels.find(item => item.value === mail.mainDeptLevel)?.text }}</text> |
|
</view> |
|
<view class="col-12 flex" v-if="mail.mailLevel"> |
|
<text class="label">信件等级</text> |
|
<text>{{ mail.mailLevel }}</text> |
|
</view> |
|
</view> |
|
<view class="row" v-if="mail.mailCategory"> |
|
<view class="col-24 flex"> |
|
<text class="label">信件分类</text> |
|
<text>{{ getMailCategory() }}</text> |
|
</view> |
|
</view> |
|
</view> |
|
<view class="card"> |
|
<view class="title">来信人信息</view> |
|
<view class="row flex wrap"> |
|
<view class="col-12 mb-6 flex"> |
|
<text class="label">姓名</text> |
|
<text>{{ mail.contactName }}</text> |
|
</view> |
|
<view class="col-12 mb-6 flex" v-if="mail.contactSex"> |
|
<text class="label">性别</text> |
|
<text>{{ mail.contactSex === 'M' ? '男': '女' }}</text> |
|
</view> |
|
<view class="col-12 flex" v-if="mail.contactIdCard"> |
|
<text class="label">证件号码</text> |
|
<text>{{ mail.contactIdCard }}</text> |
|
</view> |
|
<view class="col-12 flex v-center"> |
|
<text class="label">手机号</text> |
|
<view @tap="callPhone(mail.contactPhone)" class="primary flex v-center"> |
|
<text class="mr-4">{{ mail.contactPhone }}</text> |
|
<fui-icon name="telephone" :size="40" color="#4E5FC8" style="vertical-align: top;"></fui-icon> |
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
<view class="card mb-10"> |
|
<view class="title">信件内容</view> |
|
<view class="row" v-if="mail.caseNumber"> |
|
<view class="col-24 flex"> |
|
<text class="label">案件编号</text> |
|
<text>{{ mail.caseNumber }}</text> |
|
</view> |
|
</view> |
|
<view class="row" v-if="mail.involvedDeptName"> |
|
<view class="col-24"> |
|
<text class="label">被投诉/涉及单位</text> |
|
<text>{{ mail.involvedDeptName }}</text> |
|
</view> |
|
</view> |
|
<view class="mt-10 content text-wrap">{{ mail.content }}</view> |
|
<file-list :files="mail.attachments" /> |
|
</view> |
|
|
|
<view class="card mb-10" v-if="mail.firstDistributeComment || mail.secondDistributeComment"> |
|
<view class="title">下发意见</view> |
|
<view class="row"> |
|
<view class="col-24" v-if="mail.firstDistributeComment"> |
|
<text class="label">市局下发意见</text> |
|
<text>{{ mail.firstDistributeComment }}</text> |
|
</view> |
|
</view> |
|
<view class="row"> |
|
<view class="col-24" v-if="mail.secondDistributeComment"> |
|
<text class="label">二级单位下发意见</text> |
|
<text>{{ mail.secondDistributeComment }}</text> |
|
</view> |
|
</view> |
|
</view> |
|
|
|
<view class="card mb-10" v-if="mail.verifyReportedPolices?.length"> |
|
<view class="title">举报/投诉人基本情况</view> |
|
<view v-for="(item, index) in mail.verifyReportedPolices"> |
|
<view class="title2">被举报投诉对象{{ index + 1 }}</view> |
|
<view class="row"> |
|
<view class="col-12 flex"> |
|
<text class="label">姓名</text> |
|
<text>{{ item.name }}</text> |
|
</view> |
|
<view class="col-12 flex"> |
|
<text class="label">性别</text> |
|
<text>{{ item.gender }}</text> |
|
</view> |
|
</view> |
|
<view class="row"> |
|
<view class="col-12 flex"> |
|
<text class="label">警号</text> |
|
<text>{{ item.empNo }}</text> |
|
</view> |
|
<view class="col-12 flex"> |
|
<text class="label">联系电话</text> |
|
<text>{{ item.mobile }}</text> |
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
|
|
<view class="card mb-10" v-if="mail.interviewType"> |
|
<view class="title">领导接访情况</view> |
|
<view class="row"> |
|
<view class="col-12 flex"> |
|
<text class="label">主单位签收时长</text> |
|
<text>{{ mail.contactFlag ? formatTimeText(mail.mainDeptSignTime) : '未取得联系'}}</text> |
|
</view> |
|
<view class="col-12 flex" v-if="mail.contactDuration"> |
|
<text class="label">主单位联系群众时长</text> |
|
<text>{{ formatTimeText(mail.contactDuration) }}</text> |
|
</view> |
|
</view> |
|
<view class="row"> |
|
<view class="col-12 flex"> |
|
<text class="label">接访形式</text> |
|
<text>{{ mail.interviewType }}</text> |
|
</view> |
|
<view class="col-12 flex"> |
|
<text class="label">是否一把手接访</text> |
|
<text>{{ mail.interviewIsLeader ? '是' : '否' }}</text> |
|
</view> |
|
</view> |
|
<view class="row"> |
|
<view class="col-24 flex"> |
|
<text class="label">接访领导</text> |
|
<text>{{ mail.interviewPoliceName }}</text> |
|
</view> |
|
</view> |
|
<view class="row"> |
|
<view class="col-24 flex"> |
|
<text class="label text-left">接访情况</text> |
|
</view> |
|
</view> |
|
<view class="content">{{ mail.interviewDetails }}</view> |
|
<view class="row"> |
|
<view class="col-24 flex mt-10"> |
|
<text class="label text-left">接访附件</text> |
|
</view> |
|
</view> |
|
<file-list :files="mail.interviewAttachments" /> |
|
</view> |
|
|
|
<view class="card" v-if="mail.verifyDetails"> |
|
<view class="title">核查办理情况</view> |
|
<view class="row"> |
|
<view class="col-12 flex"> |
|
<text class="label">是否属实</text> |
|
<text>{{ mail.verifyIsTrue }}</text> |
|
</view> |
|
<view class="col-12 flex"> |
|
<text class="label">是否需要问责</text> |
|
<text>{{ mail.verifyNeedAccountability ? '是': '否' }}</text> |
|
</view> |
|
</view> |
|
<view class="row flex wrap" v-if="mail.verifyProblem?.length"> |
|
<view class="col-24 flex mb-6"> |
|
<text class="label text-left">查证属实问题</text> |
|
</view> |
|
<view class="flex gap-4 wrap"> |
|
<view v-for="item in mail.verifyProblem">{{ item }}</view> |
|
</view> |
|
</view> |
|
<view class="row flex wrap"> |
|
<view class="col-24 flex"> |
|
<text class="label text-left mb-6">核办结果</text> |
|
</view> |
|
<view class="content">{{ mail.verifyDetails }}</view> |
|
</view> |
|
|
|
</view> |
|
<view class="card mb-6" v-if="mail.verifyPunish?.length"> |
|
<view class="title">整改问责情况</view> |
|
<view class="row flex wrap"> |
|
<view class="col-24 flex mb-6"> |
|
<text class="label text-left">责任追究</text> |
|
</view> |
|
<view class="flex gap-4 wrap"> |
|
<view v-for="item in mail.verifyPunish">{{ item }}</view> |
|
</view> |
|
</view> |
|
</view> |
|
|
|
<view class="card mb-6" v-if="mail.verifyIsResolved"> |
|
<view class="title">结果反馈情况</view> |
|
<view class="row"> |
|
<view class="col-12 flex"> |
|
<text class="label">群众反应事项解决情况</text> |
|
<text>{{ mail.verifyIsResolved ? '已解决' : '未解决' }}</text> |
|
</view> |
|
<view class="col-12 flex"> |
|
<text class="label">办理反馈情况</text> |
|
<text>{{ mail.verifyFeedback }}</text> |
|
</view> |
|
</view> |
|
<view class="row"> |
|
<view class="col-12 flex"> |
|
<text class="label">回访人姓名</text> |
|
<text>{{ mail.verifyFollowupPolice?.name }}</text> |
|
</view> |
|
<view class="col-12 flex"> |
|
<text class="label">回访人电话</text> |
|
<text>{{ mail.verifyFollowupPolice?.mobile }}</text> |
|
</view> |
|
</view> |
|
<view class="row"> |
|
<view class="col-24 flex"> |
|
<text class="label">回访人警号</text> |
|
<text>{{ mail.verifyFollowupPolice?.empNo }}</text> |
|
</view> |
|
</view> |
|
</view> |
|
|
|
<view class="card mb-6" v-if="mail.verifyAttachments?.length"> |
|
<view class="title">办结佐证材料</view> |
|
<file-list :files="mail.verifyAttachments" /> |
|
</view> |
|
</view> |
|
</template> |
|
|
|
<script setup> |
|
import { ref, inject } from 'vue' |
|
const mail = inject("mail"); |
|
const mailReturns = inject("mailReturns"); |
|
import { getDictLable, formatTimeText } from '@/common/util' |
|
import { getDictOptions } from '@/common/dict' |
|
const mailSources = getDictOptions('mail_source') |
|
|
|
function callPhone(phoneNumber) { |
|
uni.makePhoneCall({ |
|
phoneNumber: phoneNumber // 电话号码 |
|
}); |
|
} |
|
|
|
const mainDeptLevels = [ |
|
{ |
|
text: '市局主办', |
|
value: 1 |
|
}, |
|
{ |
|
text: '二级机构主办', |
|
value: 2 |
|
},{ |
|
text: '三级机构主办', |
|
value: 3 |
|
} |
|
] |
|
|
|
function getMailCategory() { |
|
return mail.value.mailFirstCategory + (mail.value.mailSecondCategory ? ' > ' + mail.value.mailSecondCategory : '') + |
|
(mail.value.mailThreeCategory ? ' > ' + mail.value.mailThreeCategory : ''); |
|
} |
|
|
|
const returnFold = ref(true) |
|
</script> |
|
|
|
<style lang="scss" scoped> |
|
.card { |
|
padding: 12px; |
|
} |
|
.content { |
|
background: #F5F6FF; |
|
padding: 10px 12px; |
|
font-size: 14px; |
|
} |
|
.row [class*=col-] .label { |
|
width: 66px; |
|
line-height: 1.1; |
|
} |
|
.title2 { |
|
font-size: 11px; |
|
font-weight: 700; |
|
margin-top: 10px; |
|
} |
|
</style> |