fix: BUG修改
This commit is contained in:
parent
00dc207110
commit
c6944d9c47
@ -44,15 +44,15 @@
|
|||||||
size="small"
|
size="small"
|
||||||
>
|
>
|
||||||
<el-table-column label="序号" type="index" width="80" />
|
<el-table-column label="序号" type="index" width="80" />
|
||||||
<el-table-column label="附件名称" prop="fileName">
|
<el-table-column label="附件名称" prop="label">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-input class="test" placeholder="请输入附件名称" v-model="row.fileName" />
|
<el-input class="test" placeholder="请输入附件名称" v-model="row.label" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column class-name="single-substr" label="操作">
|
<el-table-column class-name="single-substr" label="操作">
|
||||||
<template #default="{ row }">
|
<template #default="{ row, $index }">
|
||||||
<el-button type="primary" @click="onUpload(row)" link>上传附件</el-button>
|
<el-button type="primary" @click="onUpload(row, $index)" link>上传附件</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column width="120">
|
<el-table-column width="120">
|
||||||
@ -98,7 +98,8 @@
|
|||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<FileUpload v-model="showFilesUpload" @update:files="handlechange" :files="current.files" :reset="true" />
|
<!-- <FileUpload v-model="showFilesUpload" @update:files="handlechange" :files="current.files" :reset="true" /> -->
|
||||||
|
<FilesUploadPlus v-model="showFilesUpload" @update:files="handlechange" :files="current.files" :reset="true" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -107,7 +108,7 @@ import { ref, reactive, onMounted, watch, computed, onUnmounted, toRaw } from "v
|
|||||||
import { ElMessage, FormRules, FormInstance } from "element-plus";
|
import { ElMessage, FormRules, FormInstance } from "element-plus";
|
||||||
import { GlobalStore } from "@/stores";
|
import { GlobalStore } from "@/stores";
|
||||||
import { useRoute, useRouter } from "vue-router";
|
import { useRoute, useRouter } from "vue-router";
|
||||||
import FileUpload from "@/components/FilesUpload/FilesUpload.vue";
|
import FilesUploadPlus from "@/components/FilesUploadPlus/FilesUpload.vue";
|
||||||
import type { UploadFile } from "@/components/FilesUpload/FilesUpload.vue";
|
import type { UploadFile } from "@/components/FilesUpload/FilesUpload.vue";
|
||||||
import { getDicList } from "@/api/modules/jxjview";
|
import { getDicList } from "@/api/modules/jxjview";
|
||||||
import { getgovNamelist, getentNamelist, getproNamelist } from "@/api/modules/goverment";
|
import { getgovNamelist, getentNamelist, getproNamelist } from "@/api/modules/goverment";
|
||||||
@ -131,6 +132,7 @@ interface searchFormType {
|
|||||||
const current = ref<AnnexFilesOptions>({} as AnnexFilesOptions);
|
const current = ref<AnnexFilesOptions>({} as AnnexFilesOptions);
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
|
||||||
|
const documentDataIndex = ref(0);
|
||||||
const editorRef = ref<typeof Editor>();
|
const editorRef = ref<typeof Editor>();
|
||||||
const store = GlobalStore();
|
const store = GlobalStore();
|
||||||
const radio = ref(0);
|
const radio = ref(0);
|
||||||
@ -153,7 +155,7 @@ const typeList = ref([
|
|||||||
{ label: "邮件", value: 1 },
|
{ label: "邮件", value: 1 },
|
||||||
{ label: "材料推送", value: 2 }
|
{ label: "材料推送", value: 2 }
|
||||||
]);
|
]);
|
||||||
const annexFileList = ref([]);
|
const annexFileList: any = ref([]);
|
||||||
const tags = ref<acceptNameList[]>([]);
|
const tags = ref<acceptNameList[]>([]);
|
||||||
const value = ref([]);
|
const value = ref([]);
|
||||||
const govList = ref([]);
|
const govList = ref([]);
|
||||||
@ -187,14 +189,6 @@ const handleClose = (row: acceptNameList) => {
|
|||||||
const getMsg = val => {
|
const getMsg = val => {
|
||||||
leftForm.value.content = val;
|
leftForm.value.content = val;
|
||||||
};
|
};
|
||||||
const handlechange = e => {
|
|
||||||
console.log(e);
|
|
||||||
current.value.files = e.map(item => {
|
|
||||||
item.label = current.value.dictLabel;
|
|
||||||
return item;
|
|
||||||
});
|
|
||||||
console.log(annexFileList.value);
|
|
||||||
};
|
|
||||||
// 通讯录过滤寻找匹配合适项
|
// 通讯录过滤寻找匹配合适项
|
||||||
let nameList = computed(val => {
|
let nameList = computed(val => {
|
||||||
return (radio.value === 2 ? govList.value : radio.value === 3 ? entList.value : proList.value).filter(val => {
|
return (radio.value === 2 ? govList.value : radio.value === 3 ? entList.value : proList.value).filter(val => {
|
||||||
@ -261,7 +255,8 @@ const onChange = (row: any) => {
|
|||||||
|
|
||||||
const onAddData = () => {
|
const onAddData = () => {
|
||||||
annexFileList.value?.push({
|
annexFileList.value?.push({
|
||||||
fileName: ""
|
label: "",
|
||||||
|
fileList: []
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -269,38 +264,142 @@ const deleteRow = row => {
|
|||||||
const i = annexFileList.value?.indexOf(row);
|
const i = annexFileList.value?.indexOf(row);
|
||||||
i != null && annexFileList.value?.splice(i, 1);
|
i != null && annexFileList.value?.splice(i, 1);
|
||||||
};
|
};
|
||||||
|
const handlechange = e => {
|
||||||
|
console.log(e);
|
||||||
|
current.value.files = e.map(item => {
|
||||||
|
item.label = current.value.dictLabel;
|
||||||
|
return item;
|
||||||
|
});
|
||||||
|
console.log(current.value.files);
|
||||||
|
annexFileList.value[documentDataIndex.value].fileList = current.value.files;
|
||||||
|
console.log(annexFileList.value);
|
||||||
|
};
|
||||||
// 上传附件按钮
|
// 上传附件按钮
|
||||||
const onUpload = async row => {
|
const onUpload = async (row: any, index: any) => {
|
||||||
|
console.log(row);
|
||||||
showFilesUpload.value = true;
|
showFilesUpload.value = true;
|
||||||
current.value = row;
|
documentDataIndex.value = index;
|
||||||
|
if (row.fileList.length > 0) {
|
||||||
|
let arr: any = [];
|
||||||
|
row.fileList.map(item => {
|
||||||
|
if (item.response && item.response.originalFilename) {
|
||||||
|
arr.push({
|
||||||
|
response: { ...item.response, url: item.response.url },
|
||||||
|
name: item.response.originalFilename,
|
||||||
|
url: item.response.url,
|
||||||
|
size: +item.response.size,
|
||||||
|
type: item.response.contentType
|
||||||
|
});
|
||||||
|
} else if (item.response) {
|
||||||
|
arr.push({
|
||||||
|
response: { ...item.response, url: item.response.fileUrl },
|
||||||
|
name: item.response.fileName,
|
||||||
|
url: item.response.fileUrl,
|
||||||
|
size: +item.response.fileSize,
|
||||||
|
type: item.response.contentType
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
arr.push({
|
||||||
|
response: { ...item, url: item.fileUrl },
|
||||||
|
name: item.fileName,
|
||||||
|
url: item.fileUrl,
|
||||||
|
size: +item.fileSize,
|
||||||
|
type: item.contentType
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
current.value.files = arr;
|
||||||
|
console.log(current.value.files);
|
||||||
|
} else {
|
||||||
|
current.value.files = [];
|
||||||
|
}
|
||||||
};
|
};
|
||||||
// 点击发送按钮
|
// 点击发送按钮
|
||||||
const handleSubmit = async (formEl: FormInstance | undefined) => {
|
const handleSubmit = async (formEl: FormInstance | undefined) => {
|
||||||
if (!formEl) return;
|
if (!formEl) return;
|
||||||
await formEl.validate(async (valid, fields) => {
|
await formEl.validate(async (valid, fields) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
const fileList: AnnexFile[] = [];
|
let requestData = {
|
||||||
annexFileList.value.forEach(item => {
|
accepts: [],
|
||||||
const files = item.files;
|
content: leftForm.value.content,
|
||||||
|
title: leftForm.value.title,
|
||||||
files?.forEach(file => {
|
type: searchForm.value.type,
|
||||||
const curr: AnnexFile = {};
|
annexFileDtoList: annexFileList.value
|
||||||
curr.createTime = file.response?.createTime;
|
};
|
||||||
curr.extendName = file.response?.ext;
|
let annexPass = true;
|
||||||
// TODO: 上传文件后, 后端返回两个 name 字段, 一个后端存储的 filename, 一个文件本身的 originalFilename
|
console.log(annexFileList.value);
|
||||||
curr.fileName = file.response?.originalFilename;
|
requestData.annexFileDtoList.map(item => {
|
||||||
// curr.fileName = file.response?.filename;
|
if (!item.label) {
|
||||||
// curr.fileId = file.response && +file.response.id;
|
annexPass = false;
|
||||||
curr.fileSize = `${file.response?.size || ""}`;
|
}
|
||||||
curr.fileUrl = file.response?.url;
|
if (item.files && item.files.length > 0) {
|
||||||
|
annexPass = true;
|
||||||
curr.label = file.label;
|
} else if (item.fileList && item.fileList.length > 0) {
|
||||||
|
annexPass = true;
|
||||||
fileList.push(curr);
|
} else {
|
||||||
});
|
annexPass = false;
|
||||||
|
}
|
||||||
item.files = files;
|
});
|
||||||
|
if (!annexPass) {
|
||||||
|
ElMessage.error("请上传附件资料");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
requestData.annexFileDtoList.map(item => {
|
||||||
|
if (item.files && item.files.length > 0) {
|
||||||
|
item.files.map(item2 => {
|
||||||
|
item.annexFileList.push({
|
||||||
|
createTime: item2.response.createTime,
|
||||||
|
extendName: item2.response.ext,
|
||||||
|
fileId: item2.response.id,
|
||||||
|
fileName: item2.response.originalFilename,
|
||||||
|
fileSize: item2.response.size,
|
||||||
|
fileUrl: item2.response.url,
|
||||||
|
contentType: item2.response.contentType
|
||||||
|
});
|
||||||
|
});
|
||||||
|
delete item.files;
|
||||||
|
} else if (item.fileList && item.fileList.length > 0) {
|
||||||
|
let updateArr = [] as any;
|
||||||
|
item.fileList.map(item2 => {
|
||||||
|
if (item2.fileId) {
|
||||||
|
delete item2.fileId;
|
||||||
|
}
|
||||||
|
if (item2.response && item2.response.originalFilename) {
|
||||||
|
updateArr.push({
|
||||||
|
createTime: item2.response.createTime,
|
||||||
|
extendName: item2.response.ext,
|
||||||
|
fileId: item2.response.id,
|
||||||
|
fileName: item2.response.originalFilename,
|
||||||
|
fileSize: item2.response.size,
|
||||||
|
fileUrl: item2.response.url,
|
||||||
|
contentType: item2.response.contentType
|
||||||
|
});
|
||||||
|
} else if (item2.response) {
|
||||||
|
updateArr.push({
|
||||||
|
createTime: item2.response.createTime,
|
||||||
|
extendName: item2.response.extendName,
|
||||||
|
fileId: item2.response.fileId,
|
||||||
|
fileName: item2.response.fileName,
|
||||||
|
fileSize: item2.response.fileSize,
|
||||||
|
fileUrl: item2.response.fileUrl,
|
||||||
|
contentType: item2.response.contentType
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
updateArr.push({
|
||||||
|
createTime: item2.createTime,
|
||||||
|
extendName: item2.extendName,
|
||||||
|
fileId: item2.fileId,
|
||||||
|
fileName: item2.fileName,
|
||||||
|
fileSize: item2.fileSize,
|
||||||
|
fileUrl: item2.fileUrl,
|
||||||
|
contentType: item2.contentType
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
item.annexFileList = updateArr;
|
||||||
|
delete item.fileList;
|
||||||
|
}
|
||||||
|
delete item.id;
|
||||||
});
|
});
|
||||||
const acceptsList: acceptNameList[] = [];
|
const acceptsList: acceptNameList[] = [];
|
||||||
console.log(tags);
|
console.log(tags);
|
||||||
@ -319,33 +418,14 @@ const handleSubmit = async (formEl: FormInstance | undefined) => {
|
|||||||
console.log(curr);
|
console.log(curr);
|
||||||
acceptsList.push(curr);
|
acceptsList.push(curr);
|
||||||
});
|
});
|
||||||
|
requestData.accepts = acceptsList;
|
||||||
if (store.Message) {
|
if (store.Message) {
|
||||||
const editFiles = [];
|
requestData.noticeId = route.query.noticeId;
|
||||||
annexFileList.value.forEach(item => {
|
await noticeeditmyPost(requestData);
|
||||||
let files = item.files;
|
|
||||||
files?.forEach(j => {
|
|
||||||
editFiles.push(j.response);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
await noticeeditmyPost({
|
|
||||||
accepts: acceptsList,
|
|
||||||
annexFileList: editFiles,
|
|
||||||
content: leftForm.value.content,
|
|
||||||
title: leftForm.value.title,
|
|
||||||
type: searchForm.value.type,
|
|
||||||
noticeId: route.query.noticeId
|
|
||||||
});
|
|
||||||
ElMessage.success("编辑成功");
|
ElMessage.success("编辑成功");
|
||||||
delete store.Message;
|
delete store.Message;
|
||||||
} else {
|
} else {
|
||||||
await addNotice({
|
await addNotice(requestData);
|
||||||
accepts: acceptsList,
|
|
||||||
annexFileList: fileList,
|
|
||||||
content: leftForm.value.content,
|
|
||||||
title: leftForm.value.title,
|
|
||||||
type: searchForm.value.type
|
|
||||||
});
|
|
||||||
ElMessage.success("发送成功");
|
ElMessage.success("发送成功");
|
||||||
}
|
}
|
||||||
reset();
|
reset();
|
||||||
@ -395,25 +475,12 @@ onMounted(async () => {
|
|||||||
console.log(searchForm.value.type);
|
console.log(searchForm.value.type);
|
||||||
|
|
||||||
leftForm.value = store.Message;
|
leftForm.value = store.Message;
|
||||||
annexFileList.value.forEach(item => {
|
let editAnnexFileList = store.Message.annexFileList;
|
||||||
const currFiles = store.Message.annexFileList.filter(j => {
|
editAnnexFileList.forEach(item => {
|
||||||
return j.label == item.fileName;
|
annexFileList.value.push({
|
||||||
|
label: item.label,
|
||||||
|
fileList: item.annexFileList
|
||||||
});
|
});
|
||||||
const files = [];
|
|
||||||
|
|
||||||
currFiles.forEach(curr => {
|
|
||||||
annexFileList.value.fileName = curr.fileName;
|
|
||||||
files.push({
|
|
||||||
id: curr.fileId,
|
|
||||||
name: curr.fileName,
|
|
||||||
size: +curr.fileSize,
|
|
||||||
type: "image/png",
|
|
||||||
response: { ...curr, contentType: "image/png" }
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
item.files = files;
|
|
||||||
// item.fileName = store.Message?.title;
|
|
||||||
});
|
});
|
||||||
console.log(annexFileList.value);
|
console.log(annexFileList.value);
|
||||||
tags.value = store.Message.acceptList;
|
tags.value = store.Message.acceptList;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user