|
|
|
|
@ -39,8 +39,8 @@
|
|
|
|
|
<el-row> |
|
|
|
|
<el-col :span="6"> |
|
|
|
|
<el-form-item label="信件分类"> |
|
|
|
|
<el-tree-select v-model="query.mailCategory" :data="mailStore.mailCategorys" check-strictly placeholder="请选择信件分类" |
|
|
|
|
clearable filterable /> |
|
|
|
|
<el-tree-select v-model="query.mailCategory" :data="mailStore.mailCategorys" check-strictly |
|
|
|
|
placeholder="请选择信件分类" clearable filterable /> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-col> |
|
|
|
|
<el-col :span="6"> |
|
|
|
|
@ -59,7 +59,7 @@
|
|
|
|
|
<el-col :span="6"> |
|
|
|
|
<el-form-item label="信件统计"> |
|
|
|
|
<el-select v-model="query.countMails" placeholder="请选择统计方式" clearable> |
|
|
|
|
<el-option label="来信总数" value="1" /> |
|
|
|
|
<el-option label="有效来信数" value="1" /> |
|
|
|
|
<el-option label="已办结件" value="2" /> |
|
|
|
|
<el-option label="满意件" value="3" /> |
|
|
|
|
<el-option label="已解决件" value="4" /> |
|
|
|
|
@ -83,7 +83,7 @@
|
|
|
|
|
<el-option v-for="item in optionsData.flowNodes" :key="item.key" :label="item.fullName" |
|
|
|
|
:value="item.key" /> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-col> |
|
|
|
|
<el-col :span="6"> |
|
|
|
|
<el-form-item label="信件等级"> |
|
|
|
|
@ -132,7 +132,7 @@
|
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</el-row> |
|
|
|
|
<el-row v-if="!collapse"> |
|
|
|
|
<el-col :span="6"> |
|
|
|
|
@ -146,7 +146,8 @@
|
|
|
|
|
<el-col :span="6"> |
|
|
|
|
<el-form-item label="是否属实" prop="verifyIsTrue"> |
|
|
|
|
<el-select v-model="query.verifyIsTrue" placeholder="请选择是否属实" clearable> |
|
|
|
|
<el-option v-for="item in dictData.verify_is_true" :key="item.name" :label="item.name" :value="item.value" /> |
|
|
|
|
<el-option v-for="item in dictData.verify_is_true" :key="item.name" :label="item.name" |
|
|
|
|
:value="item.value" /> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-col> |
|
|
|
|
@ -163,6 +164,14 @@
|
|
|
|
|
<el-input v-model="query.returnReason" placeholder="请输入退回意见" clearable /> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-col> |
|
|
|
|
<el-col :span="6"> |
|
|
|
|
<el-form-item label="是否一把手接访" prop="interviewIsLeader"> |
|
|
|
|
<el-select v-model="query.interviewIsLeader"> |
|
|
|
|
<el-option label="是" :value="true" /> |
|
|
|
|
<el-option label="否" :value="false" /> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-col> |
|
|
|
|
</el-row> |
|
|
|
|
<div style="display: flex; justify-content: space-between; margin-bottom: 20px;"> |
|
|
|
|
<div> |
|
|
|
|
@ -172,7 +181,9 @@
|
|
|
|
|
</div> |
|
|
|
|
<div> |
|
|
|
|
<el-button type="primary" @click="getList"> |
|
|
|
|
<template #icon><icon name="el-icon-Search" /></template> |
|
|
|
|
<template #icon> |
|
|
|
|
<icon name="el-icon-Search" /> |
|
|
|
|
</template> |
|
|
|
|
查询</el-button> |
|
|
|
|
<el-button @click="reset">重置</el-button> |
|
|
|
|
<el-button type="primary" text @click="collapse = !collapse"> |
|
|
|
|
@ -198,11 +209,12 @@
|
|
|
|
|
<el-table-column label="信件来源" align="center" width="100" show-overflow-tooltip> |
|
|
|
|
<template #default="{ row }"> |
|
|
|
|
<span>{{ |
|
|
|
|
getDictLable(dictData.mail_source, row.source) |
|
|
|
|
}}</span> |
|
|
|
|
getDictLable(dictData.mail_source, row.source) |
|
|
|
|
}}</span> |
|
|
|
|
</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
<el-table-column prop="mailCategory" label="信件分类" show-overflow-tooltip width="120" align="center" /> |
|
|
|
|
<el-table-column prop="mailCategory" label="信件分类" show-overflow-tooltip width="120" |
|
|
|
|
align="center" /> |
|
|
|
|
<el-table-column prop="contactName" label="姓名" align="center" width="80" /> |
|
|
|
|
<el-table-column prop="contactPhone" label="联系电话" width="120" align="center" /> |
|
|
|
|
<el-table-column prop="content" label="信件内容" show-overflow-tooltip align="center" min-width="90" /> |
|
|
|
|
@ -244,9 +256,12 @@
|
|
|
|
|
<el-table-column label="操作" width="164" fixed="right"> |
|
|
|
|
<template #default="{ row }"> |
|
|
|
|
<el-button type="primary" link @click="handleMail(row.id)" size="small">详情</el-button> |
|
|
|
|
<el-button type="primary" link @click="handleMailLabel(row.id)" size="small" v-show="!IsdeleteMail(row)">标签</el-button> |
|
|
|
|
<el-button type="primary" link @click="handleTodoByChange(row.id)" v-show="handleMailCategory(row)" size="small">转为待办</el-button> |
|
|
|
|
<el-button type="danger" link @click="handleDelete(row.id)" v-show="IsdeleteMail(row)" size="small">删除</el-button> |
|
|
|
|
<el-button type="primary" link @click="handleMailLabel(row.id)" size="small" |
|
|
|
|
v-show="!IsdeleteMail(row)">标签</el-button> |
|
|
|
|
<el-button type="primary" link @click="handleTodoByChange(row.id)" |
|
|
|
|
v-show="handleMailCategory(row)" size="small">转为待办</el-button> |
|
|
|
|
<el-button type="danger" link @click="handleDelete(row.id)" v-show="IsdeleteMail(row)" |
|
|
|
|
size="small">删除</el-button> |
|
|
|
|
</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
</el-table> |
|
|
|
|
@ -259,7 +274,7 @@
|
|
|
|
|
</div> |
|
|
|
|
<div> |
|
|
|
|
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" |
|
|
|
|
:current-page="query.current" :page-sizes="[10, 15, 20, 40, 50]" :page-size="query.size" |
|
|
|
|
:current-page="query.current" :page-sizes="[10, 15, 20, 40, 50]" v-model:page-size="query.size" |
|
|
|
|
layout="total, sizes, prev, pager, next" :total="totalSize.total"> |
|
|
|
|
</el-pagination> |
|
|
|
|
</div> |
|
|
|
|
@ -295,7 +310,7 @@ import axios from 'axios'
|
|
|
|
|
import { useRouterParamsStore } from "@/stores/modules/routerParams"; |
|
|
|
|
import { useRoute } from "vue-router"; |
|
|
|
|
import feedback from "@/utils/feedback"; |
|
|
|
|
import {deleteMail} from "@/api/mail"; |
|
|
|
|
import { deleteMail } from "@/api/mail"; |
|
|
|
|
const rowKey = "id"; |
|
|
|
|
const loading = ref(false) |
|
|
|
|
|
|
|
|
|
@ -378,9 +393,9 @@ const exportLedger = async () => {
|
|
|
|
|
await feedback.confirm('是否导出当前筛选条件的所有信件?'); |
|
|
|
|
exportLoading.value = true |
|
|
|
|
const data = query.value |
|
|
|
|
if(data.flowKey) |
|
|
|
|
if (data.flowKey) |
|
|
|
|
data.flowKey = data.flowKey.join(',') |
|
|
|
|
if(data.mailLabels) |
|
|
|
|
if (data.mailLabels) |
|
|
|
|
data.mailLabels = data.mailLabels.join(',') |
|
|
|
|
axios.post('/lan-api/api/work/exportLedger', data, { |
|
|
|
|
headers: { |
|
|
|
|
@ -429,6 +444,10 @@ const handleCurrentChange = (page: any) => {
|
|
|
|
|
refreshCheckAll() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
watch(() => useRouterParams.params, () => { |
|
|
|
|
getList() |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
function getList() { |
|
|
|
|
if (loadingOnce.value) { |
|
|
|
|
// 处理跳转路由参数 |
|
|
|
|
@ -457,7 +476,7 @@ function getList() {
|
|
|
|
|
if (useRouterParams.params.extensionFlag) { |
|
|
|
|
query.value.extensionFlag = useRouterParams.params.extensionFlag |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
if (useRouterParams.params.mailTime) { |
|
|
|
|
query.value.mailTime = useRouterParams.params.mailTime |
|
|
|
|
@ -476,6 +495,11 @@ function getList() {
|
|
|
|
|
query.value.countMails = useRouterParams.params.countMails |
|
|
|
|
useRouterParams.removeParams() |
|
|
|
|
} |
|
|
|
|
if (useRouterParams.params.contactField && useRouterParams.params.contactFieldValue) { |
|
|
|
|
query.value.contactField = useRouterParams.params.contactField |
|
|
|
|
query.value.contactFieldValue = useRouterParams.params.contactFieldValue |
|
|
|
|
useRouterParams.removeParams() |
|
|
|
|
} |
|
|
|
|
loading.value = true |
|
|
|
|
let source = "" |
|
|
|
|
if (query.value.mailLabels) { |
|
|
|
|
@ -538,17 +562,17 @@ const checkMail = () => {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const handleDelete = async (mailId: any) => { |
|
|
|
|
if(mailId == ""||mailId == null){ |
|
|
|
|
if (mailId == "" || mailId == null) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
await feedback.confirm("确定要删除?"); |
|
|
|
|
await deleteMail({id:mailId}); |
|
|
|
|
await deleteMail({ id: mailId }); |
|
|
|
|
feedback.msgSuccess("删除成功"); |
|
|
|
|
getList() |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const IsdeleteMail = (row: any) => { |
|
|
|
|
const allowChangeList = [null,'first_sign', 'first_distribute'] |
|
|
|
|
const allowChangeList = [null, 'first_sign', 'first_distribute'] |
|
|
|
|
return allowChangeList.includes(row.flowKey) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -560,7 +584,7 @@ const handleTodoByChange = (mailId: any) => {
|
|
|
|
|
} |
|
|
|
|
const handleMailCategory = (row: any) => { |
|
|
|
|
const allowChangeList = ['终止类', '无效类'] |
|
|
|
|
return allowChangeList.includes(row.mailCategory) |
|
|
|
|
return allowChangeList.includes(row.mailFirstCategory) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const collapse = ref(true) |
|
|
|
|
|