|
|
|
@ -7,12 +7,12 @@ |
|
|
|
<el-form-item label="来信时间"> |
|
|
|
<el-form-item label="来信时间"> |
|
|
|
<el-date-picker v-model="query.mailTime" value-format="YYYY-MM-DD HH:mm:ss" |
|
|
|
<el-date-picker v-model="query.mailTime" value-format="YYYY-MM-DD HH:mm:ss" |
|
|
|
type="datetimerange" format="YYYY-MM-DD HH:mm:ss" range-separator="~" |
|
|
|
type="datetimerange" format="YYYY-MM-DD HH:mm:ss" range-separator="~" |
|
|
|
start-placeholder="开始日期" end-placeholder="结束日期" @change="handleMailTimeQuery" /> |
|
|
|
start-placeholder="开始日期" end-placeholder="结束日期" /> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="信件来源"> |
|
|
|
<el-form-item label="信件来源"> |
|
|
|
<el-select v-model="query.source" placeholder="" clearable filterable> |
|
|
|
<el-select v-model="query.source" placeholder="请选择信件来源" clearable filterable> |
|
|
|
<el-option v-for="item in dictData.mail_source" :key="item.value" :label="item.name" |
|
|
|
<el-option v-for="item in dictData.mail_source" :key="item.value" :label="item.name" |
|
|
|
:value="item.value" /> |
|
|
|
:value="item.value" /> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
@ -32,7 +32,7 @@ |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="信件等级"> |
|
|
|
<el-form-item label="信件等级"> |
|
|
|
<el-select v-model="query.mailLevel" placeholder="" clearable> |
|
|
|
<el-select v-model="query.mailLevel" placeholder="请选择信件等级" clearable> |
|
|
|
<el-option v-for="item in dictData.mail_level" :key="item.value" :label="item.name" |
|
|
|
<el-option v-for="item in dictData.mail_level" :key="item.value" :label="item.name" |
|
|
|
:value="item.value" /> |
|
|
|
:value="item.value" /> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
@ -42,13 +42,13 @@ |
|
|
|
<el-row> |
|
|
|
<el-row> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="信件分类"> |
|
|
|
<el-form-item label="信件分类"> |
|
|
|
<el-tree-select v-model="query.mailCategory" :data="mailStore.mailCategorys" check-strictly |
|
|
|
<el-tree-select v-model="query.mailCategory" :data="mailStore.mailCategorys" check-strictly placeholder="请选择信件分类" |
|
|
|
clearable filterable /> |
|
|
|
clearable filterable /> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="信件状态"> |
|
|
|
<el-form-item label="信件状态"> |
|
|
|
<el-select v-model="query.mailState" placeholder="" clearable> |
|
|
|
<el-select v-model="query.mailState" placeholder="请选择信件状态" clearable> |
|
|
|
<el-option v-for="item in dictData.mail_state" :key="item.value" :label="item.name" |
|
|
|
<el-option v-for="item in dictData.mail_state" :key="item.value" :label="item.name" |
|
|
|
:value="item.value" /> |
|
|
|
:value="item.value" /> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
@ -56,19 +56,12 @@ |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="办理单位"> |
|
|
|
<el-form-item label="办理单位"> |
|
|
|
<el-tree-select class="flex-1" v-model="query.deptId" :data="optionsData.dept" clearable |
|
|
|
<DeptTreeSelect v-model="query.deptId" /> |
|
|
|
node-key="id" filterable :props="{ |
|
|
|
|
|
|
|
value: 'id', |
|
|
|
|
|
|
|
label: 'name', |
|
|
|
|
|
|
|
disabled(data: any) { |
|
|
|
|
|
|
|
return !!data.isStop |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}" check-strictly placeholder="请选择上级部门" /> |
|
|
|
|
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="流程阶段"> |
|
|
|
<el-form-item label="流程阶段"> |
|
|
|
<el-select v-model="query.flowKey" placeholder="" clearable multiple collapse-tags="true" |
|
|
|
<el-select v-model="query.flowKey" placeholder="请选择流程阶段" clearable multiple collapse-tags |
|
|
|
filterable> |
|
|
|
filterable> |
|
|
|
<el-option v-for="item in optionsData.flowNodes" :key="item.key" :label="item.fullName" |
|
|
|
<el-option v-for="item in optionsData.flowNodes" :key="item.key" :label="item.fullName" |
|
|
|
:value="item.key" /> |
|
|
|
:value="item.key" /> |
|
|
|
@ -129,7 +122,7 @@ |
|
|
|
@selection-change="handleSelectionChange" :row-key="rowKey"> |
|
|
|
@selection-change="handleSelectionChange" :row-key="rowKey"> |
|
|
|
<el-table-column type="selection" width="30" :reserve-selection="true" /> |
|
|
|
<el-table-column type="selection" width="30" :reserve-selection="true" /> |
|
|
|
<el-table-column prop="mailTime" label="来信时间" align="center" width="160" /> |
|
|
|
<el-table-column prop="mailTime" label="来信时间" align="center" width="160" /> |
|
|
|
<el-table-column label="信件来源" align="center" width="90"> |
|
|
|
<el-table-column label="信件来源" align="center" width="100"> |
|
|
|
<template #default="{ row }"> |
|
|
|
<template #default="{ row }"> |
|
|
|
<span>{{ |
|
|
|
<span>{{ |
|
|
|
dictData.mail_source.filter( |
|
|
|
dictData.mail_source.filter( |
|
|
|
@ -230,7 +223,6 @@ import { useDictOptions } from '@/hooks/useDictOptions' |
|
|
|
import { deptLists } from '@/api/org/department' |
|
|
|
import { deptLists } from '@/api/org/department' |
|
|
|
import { labelLists } from '@/api/org/label' |
|
|
|
import { labelLists } from '@/api/org/label' |
|
|
|
import { getFlowNodes } from '@/api/org/flowNode' |
|
|
|
import { getFlowNodes } from '@/api/org/flowNode' |
|
|
|
import { ref, reactive, watch, onMounted, onUnmounted, nextTick } from "vue"; |
|
|
|
|
|
|
|
import { ElMessage, ElTable } from "element-plus"; |
|
|
|
import { ElMessage, ElTable } from "element-plus"; |
|
|
|
import { getToken } from '@/utils/auth' |
|
|
|
import { getToken } from '@/utils/auth' |
|
|
|
import axios from 'axios' |
|
|
|
import axios from 'axios' |
|
|
|
@ -279,6 +271,7 @@ const updateCountdown = (second: number) => { |
|
|
|
}; |
|
|
|
}; |
|
|
|
onMounted(() => { |
|
|
|
onMounted(() => { |
|
|
|
timeClock = setInterval(updateCountdown, 1000) |
|
|
|
timeClock = setInterval(updateCountdown, 1000) |
|
|
|
|
|
|
|
getList() |
|
|
|
}) |
|
|
|
}) |
|
|
|
onUnmounted(() => { |
|
|
|
onUnmounted(() => { |
|
|
|
clearInterval(timeClock); |
|
|
|
clearInterval(timeClock); |
|
|
|
@ -313,13 +306,18 @@ watch(() => route.path, () => { |
|
|
|
query.value.mailCategory = useRouterParams.params.mailCategory |
|
|
|
query.value.mailCategory = useRouterParams.params.mailCategory |
|
|
|
else |
|
|
|
else |
|
|
|
delete query.value.mailCategory |
|
|
|
delete query.value.mailCategory |
|
|
|
|
|
|
|
console.log('mailTimeStart', useRouterParams.params.mailTimeStart) |
|
|
|
|
|
|
|
if (useRouterParams.params.mailTimeStart) { |
|
|
|
|
|
|
|
query.value.mailTimeStart = useRouterParams.params.mailTimeStart |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (useRouterParams.params.mailTimeEnd) { |
|
|
|
|
|
|
|
query.value.mailTimeEnd = useRouterParams.params.mailTimeEnd |
|
|
|
|
|
|
|
} |
|
|
|
getList() |
|
|
|
getList() |
|
|
|
useRouterParams.removeParams() |
|
|
|
useRouterParams.removeParams() |
|
|
|
} |
|
|
|
} |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const checkAll = ref(false); |
|
|
|
const checkAll = ref(false); |
|
|
|
const isCheckAll = ref(false); |
|
|
|
const isCheckAll = ref(false); |
|
|
|
const selectedCount = ref(0); |
|
|
|
const selectedCount = ref(0); |
|
|
|
@ -393,7 +391,6 @@ const exportLedger = () => { |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const form = ref([]); |
|
|
|
const form = ref([]); |
|
|
|
const showModel = ref(false); |
|
|
|
const showModel = ref(false); |
|
|
|
const activeMailId = ref(""); |
|
|
|
const activeMailId = ref(""); |
|
|
|
@ -445,7 +442,12 @@ function getList() { |
|
|
|
else |
|
|
|
else |
|
|
|
delete query.value.mailCategory |
|
|
|
delete query.value.mailCategory |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (useRouterParams.params.mailTime) { |
|
|
|
|
|
|
|
query.value.mailTime = useRouterParams.params.mailTime |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (useRouterParams.params.mailState) { |
|
|
|
|
|
|
|
query.value.mailState = useRouterParams.params.mailState |
|
|
|
|
|
|
|
} |
|
|
|
loading.value = true |
|
|
|
loading.value = true |
|
|
|
let source = "" |
|
|
|
let source = "" |
|
|
|
if (query.value.mailLabels) { |
|
|
|
if (query.value.mailLabels) { |
|
|
|
@ -459,6 +461,13 @@ function getList() { |
|
|
|
} |
|
|
|
} |
|
|
|
query.value.mailLabels = strLabels |
|
|
|
query.value.mailLabels = strLabels |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (query.value.mailTime) { |
|
|
|
|
|
|
|
query.value.mailTimeStart = query.value.mailTime[0]; |
|
|
|
|
|
|
|
query.value.mailTimeEnd = query.value.mailTime[1]; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
delete query.value.mailTimeStart |
|
|
|
|
|
|
|
delete query.value.mailTimeEnd |
|
|
|
|
|
|
|
} |
|
|
|
getMails(query.value).then((data: any) => { |
|
|
|
getMails(query.value).then((data: any) => { |
|
|
|
console.log("data", data) |
|
|
|
console.log("data", data) |
|
|
|
form.value = data.records; |
|
|
|
form.value = data.records; |
|
|
|
@ -499,15 +508,6 @@ const checkMail = () => { |
|
|
|
showCheck.value = true |
|
|
|
showCheck.value = true |
|
|
|
console.log("checkMail", solveCheckBox.value) |
|
|
|
console.log("checkMail", solveCheckBox.value) |
|
|
|
} |
|
|
|
} |
|
|
|
const handleMailTimeQuery = (val: any) => { |
|
|
|
|
|
|
|
if (val) { |
|
|
|
|
|
|
|
query.value.mailTimeStart = val[0]; |
|
|
|
|
|
|
|
query.value.mailTimeEnd = val[1]; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
delete query.value.mailTimeStart |
|
|
|
|
|
|
|
delete query.value.mailTimeEnd |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const handleDelete = async (mailId: any) => { |
|
|
|
const handleDelete = async (mailId: any) => { |
|
|
|
if(mailId == ""||mailId == null){ |
|
|
|
if(mailId == ""||mailId == null){ |
|
|
|
@ -531,13 +531,10 @@ const handleTodoByChange = (mailId: any) => { |
|
|
|
activeMailId.value = mailId |
|
|
|
activeMailId.value = mailId |
|
|
|
} |
|
|
|
} |
|
|
|
const handleMailCategory = (row: any) => { |
|
|
|
const handleMailCategory = (row: any) => { |
|
|
|
|
|
|
|
|
|
|
|
const allowChangeList = ['终止类', '无效类'] |
|
|
|
const allowChangeList = ['终止类', '无效类'] |
|
|
|
return allowChangeList.includes(row.mailCategory) |
|
|
|
return allowChangeList.includes(row.mailCategory) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
getList() |
|
|
|
|
|
|
|
</script> |
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped> |
|
|
|
<style lang="scss" scoped> |
|
|
|
|