|
@@ -102,9 +102,9 @@
|
|
|
<el-tree
|
|
|
:data="staffMailData"
|
|
|
node-key="id"
|
|
|
- default-expand-all
|
|
|
:expand-on-click-node="false"
|
|
|
- @node-click="(data, node) => clickTreeMail(data, node)"
|
|
|
+ default-expand-all
|
|
|
+ @node-click="(data, node) => handleTreeNodeNewClick(data, node)"
|
|
|
>
|
|
|
<template #default="{ node, data }">
|
|
|
<span class="tree-content">
|
|
@@ -113,7 +113,7 @@
|
|
|
v-if="data.id == '0'"
|
|
|
style="margin-right: 5px"
|
|
|
></i>
|
|
|
- <span>{{ data.mailUser }}</span>
|
|
|
+ <span>{{ data.name }}</span>
|
|
|
</span>
|
|
|
</template>
|
|
|
</el-tree>
|
|
@@ -338,6 +338,7 @@ const mailMapData = {
|
|
|
let selectFloderId = ref("");
|
|
|
const mailList = ref([]);
|
|
|
const staffMailData = ref([]);
|
|
|
+const userList = ref([]);
|
|
|
const formOption = reactive({
|
|
|
inline: true,
|
|
|
labelWidth: 100,
|
|
@@ -510,68 +511,71 @@ const handleDelFolder = (data) => {
|
|
|
});
|
|
|
});
|
|
|
};
|
|
|
+const handleMapMailListData = (arr) => {
|
|
|
+ for (let i = 0; i < arr.length; i++) {
|
|
|
+ const iele = arr[i];
|
|
|
+ iele.mailFolderInfoListCopy = [];
|
|
|
+ iele.otherFolder = [];
|
|
|
+ for (let j = 0; j < iele.mailFolderInfoList.length; j++) {
|
|
|
+ const jele = iele.mailFolderInfoList[j];
|
|
|
+ if (mailMapData["inbox"].includes(jele.name)) {
|
|
|
+ iele.mailFolderInfoListCopy.push({
|
|
|
+ ...jele,
|
|
|
+ name: "收件箱",
|
|
|
+ sort: 1,
|
|
|
+ });
|
|
|
+ } else if (mailMapData["unread"].includes(jele.name)) {
|
|
|
+ iele.mailFolderInfoListCopy.push({
|
|
|
+ ...jele,
|
|
|
+ name: "未读邮件",
|
|
|
+ sort: 2,
|
|
|
+ });
|
|
|
+ } else if (mailMapData["draft"].includes(jele.name)) {
|
|
|
+ iele.mailFolderInfoListCopy.push({
|
|
|
+ ...jele,
|
|
|
+ name: "草稿箱",
|
|
|
+ sort: 3,
|
|
|
+ });
|
|
|
+ } else if (mailMapData["sent"].includes(jele.name)) {
|
|
|
+ iele.mailFolderInfoListCopy.push({
|
|
|
+ ...jele,
|
|
|
+ name: "已发送",
|
|
|
+ sort: 4,
|
|
|
+ });
|
|
|
+ } else if (mailMapData["delete"].includes(jele.name)) {
|
|
|
+ iele.mailFolderInfoListCopy.push({
|
|
|
+ ...jele,
|
|
|
+ name: "已删除",
|
|
|
+ sort: 5,
|
|
|
+ });
|
|
|
+ } else if (mailMapData["waste"].includes(jele.name)) {
|
|
|
+ iele.mailFolderInfoListCopy.push({
|
|
|
+ ...jele,
|
|
|
+ name: "垃圾邮件",
|
|
|
+ sort: 6,
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ iele.otherFolder.push(jele);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (iele.otherFolder.length > 0) {
|
|
|
+ iele.otherFolder = [
|
|
|
+ {
|
|
|
+ name: "官方文件夹",
|
|
|
+ id: "0",
|
|
|
+ children: iele.otherFolder,
|
|
|
+ },
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ iele.mailFolderInfoListCopy.sort((a, b) => a.sort - b.sort);
|
|
|
+ }
|
|
|
+ return arr;
|
|
|
+};
|
|
|
|
|
|
const getMialList = () => {
|
|
|
proxy.get("/mailService/getUserEmailList").then((res) => {
|
|
|
- for (let i = 0; i < res.data.length; i++) {
|
|
|
- const iele = res.data[i];
|
|
|
- iele.mailFolderInfoListCopy = [];
|
|
|
- iele.otherFolder = [];
|
|
|
- for (let j = 0; j < iele.mailFolderInfoList.length; j++) {
|
|
|
- const jele = iele.mailFolderInfoList[j];
|
|
|
- if (mailMapData["inbox"].includes(jele.name)) {
|
|
|
- iele.mailFolderInfoListCopy.push({
|
|
|
- ...jele,
|
|
|
- name: "收件箱",
|
|
|
- sort: 1,
|
|
|
- });
|
|
|
- } else if (mailMapData["unread"].includes(jele.name)) {
|
|
|
- iele.mailFolderInfoListCopy.push({
|
|
|
- ...jele,
|
|
|
- name: "未读邮件",
|
|
|
- sort: 2,
|
|
|
- });
|
|
|
- } else if (mailMapData["draft"].includes(jele.name)) {
|
|
|
- iele.mailFolderInfoListCopy.push({
|
|
|
- ...jele,
|
|
|
- name: "草稿箱",
|
|
|
- sort: 3,
|
|
|
- });
|
|
|
- } else if (mailMapData["sent"].includes(jele.name)) {
|
|
|
- iele.mailFolderInfoListCopy.push({
|
|
|
- ...jele,
|
|
|
- name: "已发送",
|
|
|
- sort: 4,
|
|
|
- });
|
|
|
- } else if (mailMapData["delete"].includes(jele.name)) {
|
|
|
- iele.mailFolderInfoListCopy.push({
|
|
|
- ...jele,
|
|
|
- name: "已删除",
|
|
|
- sort: 5,
|
|
|
- });
|
|
|
- } else if (mailMapData["waste"].includes(jele.name)) {
|
|
|
- iele.mailFolderInfoListCopy.push({
|
|
|
- ...jele,
|
|
|
- name: "垃圾邮件",
|
|
|
- sort: 6,
|
|
|
- });
|
|
|
- } else {
|
|
|
- iele.otherFolder.push(jele);
|
|
|
- }
|
|
|
- }
|
|
|
- if (iele.otherFolder.length > 0) {
|
|
|
- iele.otherFolder = [
|
|
|
- {
|
|
|
- name: "官方文件夹",
|
|
|
- id: "0",
|
|
|
- children: iele.otherFolder,
|
|
|
- },
|
|
|
- ];
|
|
|
- }
|
|
|
-
|
|
|
- iele.mailFolderInfoListCopy.sort((a, b) => a.sort - b.sort);
|
|
|
- }
|
|
|
- mailList.value = res.data;
|
|
|
+ const arr = handleMapMailListData(res.data);
|
|
|
+ mailList.value = arr;
|
|
|
if (mailList.value.length) {
|
|
|
// 默认赋值第一邮箱
|
|
|
selectMail.value = mailList.value[0];
|
|
@@ -584,86 +588,22 @@ const getMialList = () => {
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
- proxy
|
|
|
- .post("/mailInfo/getUserEmailList", { id: useUserStore().user.userId })
|
|
|
- .then((res) => {
|
|
|
- if (res && res.length > 0) {
|
|
|
- res = res.map((x) => {
|
|
|
- return {
|
|
|
- ...x,
|
|
|
- sort: 1,
|
|
|
- children: x.mailFolderInfoList.map((y) => ({
|
|
|
- ...y,
|
|
|
- mailUser: y.name,
|
|
|
- })),
|
|
|
- };
|
|
|
- });
|
|
|
- for (let i = 0; i < res.length; i++) {
|
|
|
- const iele = res[i];
|
|
|
- iele.mailFolderInfoListCopy = [];
|
|
|
- iele.otherFolder = [];
|
|
|
- for (let j = 0; j < iele.mailFolderInfoList.length; j++) {
|
|
|
- const jele = iele.mailFolderInfoList[j];
|
|
|
- if (mailMapData["inbox"].includes(jele.name)) {
|
|
|
- iele.mailFolderInfoListCopy.push({
|
|
|
- ...jele,
|
|
|
- name: "收件箱",
|
|
|
- sort: 1,
|
|
|
- });
|
|
|
- } else if (mailMapData["unread"].includes(jele.name)) {
|
|
|
- iele.mailFolderInfoListCopy.push({
|
|
|
- ...jele,
|
|
|
- name: "未读邮件",
|
|
|
- sort: 2,
|
|
|
- });
|
|
|
- } else if (mailMapData["draft"].includes(jele.name)) {
|
|
|
- iele.mailFolderInfoListCopy.push({
|
|
|
- ...jele,
|
|
|
- name: "草稿箱",
|
|
|
- sort: 3,
|
|
|
- });
|
|
|
- } else if (mailMapData["sent"].includes(jele.name)) {
|
|
|
- iele.mailFolderInfoListCopy.push({
|
|
|
- ...jele,
|
|
|
- name: "已发送",
|
|
|
- sort: 4,
|
|
|
- });
|
|
|
- } else if (mailMapData["delete"].includes(jele.name)) {
|
|
|
- iele.mailFolderInfoListCopy.push({
|
|
|
- ...jele,
|
|
|
- name: "已删除",
|
|
|
- sort: 5,
|
|
|
- });
|
|
|
- } else if (mailMapData["waste"].includes(jele.name)) {
|
|
|
- iele.mailFolderInfoListCopy.push({
|
|
|
- ...jele,
|
|
|
- name: "垃圾邮件",
|
|
|
- sort: 6,
|
|
|
- });
|
|
|
- } else {
|
|
|
- iele.otherFolder.push(jele);
|
|
|
- }
|
|
|
- }
|
|
|
- if (iele.otherFolder.length > 0) {
|
|
|
- iele.otherFolder = [
|
|
|
- {
|
|
|
- name: "官方文件夹",
|
|
|
- id: "0",
|
|
|
- children: iele.otherFolder,
|
|
|
- },
|
|
|
- ];
|
|
|
- }
|
|
|
- iele.mailFolderInfoListCopy.sort((a, b) => a.sort - b.sort);
|
|
|
- }
|
|
|
- staffMailData.value = [
|
|
|
- {
|
|
|
- mailUser: "员工邮箱",
|
|
|
- id: "0",
|
|
|
- children: res,
|
|
|
- },
|
|
|
- ];
|
|
|
- }
|
|
|
- });
|
|
|
+
|
|
|
+ proxy.post("/mailInfo/getUserList").then((res) => {
|
|
|
+ if (res && res.length > 0) {
|
|
|
+ res = res.map((x) => ({
|
|
|
+ ...x,
|
|
|
+ name: x.nickName + "(点击获取员工邮箱)",
|
|
|
+ }));
|
|
|
+ }
|
|
|
+ staffMailData.value = [
|
|
|
+ {
|
|
|
+ name: "员工邮箱",
|
|
|
+ id: "0",
|
|
|
+ children: res,
|
|
|
+ },
|
|
|
+ ];
|
|
|
+ });
|
|
|
};
|
|
|
|
|
|
const handleClickMail = (item, flag = true) => {
|
|
@@ -740,18 +680,51 @@ const handleTreeNodeClick = (data, type) => {
|
|
|
};
|
|
|
|
|
|
const clickTreeMail = (data, node) => {
|
|
|
- if (data.id !== "0" && data.sort !== 1) {
|
|
|
- let mailData = node.parent.data;
|
|
|
- if (mailStore.selectMail.id === mailData.id) {
|
|
|
- const menuData = {
|
|
|
- id: data.id,
|
|
|
- name: data.name,
|
|
|
- };
|
|
|
- handleOpenMenu(menuData, "10");
|
|
|
- } else {
|
|
|
- handleClickMail(mailData, false);
|
|
|
- handleOpenMenu(data, "10");
|
|
|
+ let mailData = node.parent.data;
|
|
|
+ if (mailStore.selectMail.id === mailData.id) {
|
|
|
+ const menuData = {
|
|
|
+ id: data.id,
|
|
|
+ name: data.name,
|
|
|
+ };
|
|
|
+ handleOpenMenu(menuData, "10");
|
|
|
+ } else {
|
|
|
+ handleClickMail(mailData, false);
|
|
|
+ handleOpenMenu(data, "10");
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+const handleTreeNodeNewClick = (data, node) => {
|
|
|
+ if (data.id == "0") {
|
|
|
+ return;
|
|
|
+ } else if (data.userId) {
|
|
|
+ const index = staffMailData.value[0].children.findIndex(
|
|
|
+ (x) => x.userId === data.userId
|
|
|
+ );
|
|
|
+ if (index >= 0) {
|
|
|
+ if (
|
|
|
+ staffMailData.value[0].children[index].children &&
|
|
|
+ staffMailData.value[0].children[index].children.length > 0
|
|
|
+ ) {
|
|
|
+ return;
|
|
|
+ } else {
|
|
|
+ proxy
|
|
|
+ .post("/mailInfo/getUserEmailList", { id: data.userId })
|
|
|
+ .then((res) => {
|
|
|
+ let arr = handleMapMailListData(res);
|
|
|
+ arr = arr.map((x) => ({
|
|
|
+ ...x,
|
|
|
+ name: x.mailUser,
|
|
|
+ children: x.mailFolderInfoList.map((x) => ({
|
|
|
+ ...x,
|
|
|
+ isFolder: true,
|
|
|
+ })),
|
|
|
+ }));
|
|
|
+ staffMailData.value[0].children[index].children = arr;
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
+ } else if (data.isFolder) {
|
|
|
+ clickTreeMail(data, node);
|
|
|
}
|
|
|
};
|
|
|
|