|
|
|
|
@ -38,10 +38,10 @@
|
|
|
|
|
</el-col> |
|
|
|
|
<el-col :span="6"> |
|
|
|
|
<el-form-item label="是否成功"> |
|
|
|
|
<el-input |
|
|
|
|
v-model="form.success" |
|
|
|
|
placeholder="" |
|
|
|
|
></el-input> |
|
|
|
|
<el-select v-model="form.success" clearable> |
|
|
|
|
<el-option label="成功" :value="true"></el-option> |
|
|
|
|
<el-option label="失败" :value="false"></el-option> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-col> |
|
|
|
|
</el-row> |
|
|
|
|
@ -86,7 +86,7 @@
|
|
|
|
|
label="创建日期" |
|
|
|
|
width="120px" |
|
|
|
|
/> |
|
|
|
|
<el-table-column label="是否成功" width="90px" align="center"> |
|
|
|
|
<el-table-column label="是否成功" width="120px" align="center"> |
|
|
|
|
<template #default="{ row }"> |
|
|
|
|
<el-tag type="success" v-if="row.success">成功</el-tag> |
|
|
|
|
<el-tag type="danger" v-else>失败</el-tag> |
|
|
|
|
@ -97,8 +97,15 @@
|
|
|
|
|
label="错误信息" |
|
|
|
|
show-overflow-tooltip |
|
|
|
|
/> |
|
|
|
|
<el-table-column width="120" label="操作"> |
|
|
|
|
<el-table-column width="160" label="操作"> |
|
|
|
|
<template #default="{ row }"> |
|
|
|
|
<el-button |
|
|
|
|
type="primary" |
|
|
|
|
link |
|
|
|
|
size="small" |
|
|
|
|
@click="handleShowDetail(row.mailId)" |
|
|
|
|
>详情</el-button |
|
|
|
|
> |
|
|
|
|
<el-popconfirm |
|
|
|
|
title="确认删除?" |
|
|
|
|
@confirm="handleDel(row.id)" |
|
|
|
|
@ -132,10 +139,66 @@
|
|
|
|
|
</el-pagination> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<el-dialog title="信件详情" v-model="show"> |
|
|
|
|
<div class="row"> |
|
|
|
|
<div class="col"> |
|
|
|
|
<label>信件编号</label> |
|
|
|
|
<span>{{ activeRow.id }}</span> |
|
|
|
|
</div> |
|
|
|
|
<div class="col"> |
|
|
|
|
<label>来信时间</label> |
|
|
|
|
<span>{{ activeRow.createTime }}</span> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div class="row"> |
|
|
|
|
<div class="col"> |
|
|
|
|
<label>来信人姓名</label> |
|
|
|
|
<span>{{ activeRow.contactName }}</span> |
|
|
|
|
</div> |
|
|
|
|
<div class="col"> |
|
|
|
|
<label>来信人电话</label> |
|
|
|
|
<span>{{ activeRow.contactPhone }}</span> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div class="row"> |
|
|
|
|
<div class="col"> |
|
|
|
|
<label>证件号码</label> |
|
|
|
|
<span>{{ activeRow.contactIdCard }}</span> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div class="row"> |
|
|
|
|
<div class="col" style="width: 100%"> |
|
|
|
|
<label>信件内容</label> |
|
|
|
|
<div class="content">{{ activeRow.content }}</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div class="row"> |
|
|
|
|
<div class="col"> |
|
|
|
|
<label>案件编号</label> |
|
|
|
|
<span>{{ activeRow.caseNumber }}</span> |
|
|
|
|
</div> |
|
|
|
|
<div class="col"> |
|
|
|
|
<label>被投诉/举报单位</label> |
|
|
|
|
<span>{{ activeRow.involvedDeptName }}</span> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div class="row" v-if="activeRow.attachments"> |
|
|
|
|
<div class="col" style="width: 100%"> |
|
|
|
|
<label>附件</label> |
|
|
|
|
<div class="flex gap wrap attachments" v-if="JSON.parse(activeRow.attachments).length"> |
|
|
|
|
<img v-for="(item, index) in JSON.parse(activeRow.attachments)" :key="index" :src="`https://jzxx.hncsga.cn/api/file/stream/${item.filepath}`" alt="" @click="open(`https://jzxx.hncsga.cn/api/file/stream/${item.filepath}`)"> |
|
|
|
|
</div> |
|
|
|
|
<el-empty description="无附件" v-else /> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<footer></footer> |
|
|
|
|
</el-dialog> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<script setup> |
|
|
|
|
import { request } from "@/util/axios_config"; |
|
|
|
|
import { mailDetail } from "@/api/mail"; |
|
|
|
|
import { getToken } from "@/util/token"; |
|
|
|
|
import { delMailEtl } from "@/api/mailEtl"; |
|
|
|
|
|
|
|
|
|
@ -178,10 +241,8 @@ const flexColumnWidth = (label, prop) => {
|
|
|
|
|
const handleResponse = (response) => { |
|
|
|
|
tableData.value = []; |
|
|
|
|
if (MailTab.value == "mail_etl") { |
|
|
|
|
console.log("aaaa"); |
|
|
|
|
tableData.value = response.data.mails; |
|
|
|
|
} else { |
|
|
|
|
console.log("bbbb"); |
|
|
|
|
tableData.value = response.data.evaMails; |
|
|
|
|
} |
|
|
|
|
tableData.value.forEach((item) => { |
|
|
|
|
@ -265,4 +326,57 @@ async function handleDel(id) {
|
|
|
|
|
await delMailEtl(id) |
|
|
|
|
search() |
|
|
|
|
} |
|
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
const show = ref(false) |
|
|
|
|
const activeRow = ref({}) |
|
|
|
|
|
|
|
|
|
function handleShowDetail(id) { |
|
|
|
|
mailDetail(id).then(data => { |
|
|
|
|
activeRow.value = data; |
|
|
|
|
show.value = true |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
</script> |
|
|
|
|
<style lang="scss" scoped> |
|
|
|
|
.row { |
|
|
|
|
display: flex; |
|
|
|
|
padding: 10px 0; |
|
|
|
|
.col { |
|
|
|
|
width: 50%; |
|
|
|
|
display: flex; |
|
|
|
|
gap: 10px; |
|
|
|
|
label { |
|
|
|
|
width: 160px; |
|
|
|
|
text-align: right; |
|
|
|
|
color: #666; |
|
|
|
|
+ * { |
|
|
|
|
width: calc(100% - 170px); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
span { |
|
|
|
|
color: #333; |
|
|
|
|
} |
|
|
|
|
.content { |
|
|
|
|
background: #EFF0F5; |
|
|
|
|
padding: 8px 20px; |
|
|
|
|
white-space: pre-wrap; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
.attachments { |
|
|
|
|
img { |
|
|
|
|
max-width: 160px; |
|
|
|
|
max-height: 300px; |
|
|
|
|
border: 1px solid transparent; |
|
|
|
|
|
|
|
|
|
&:hover { |
|
|
|
|
cursor: pointer; |
|
|
|
|
border-color: red; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
footer { |
|
|
|
|
min-height: 20px; |
|
|
|
|
} |
|
|
|
|
</style> |