From 6804653285a86320aba05daa7ecaa03aa29e9682 Mon Sep 17 00:00:00 2001
From: yuping <82253452@qq.com>
Date: Fri, 4 Aug 2023 17:51:27 +0800
Subject: [PATCH] fix bug
---
src/api/index1.js | 7 ++++---
src/api/indexEval.js | 5 +++--
src/api/indexVote.js | 3 ++-
src/components/common/BaseUpload.vue | 4 +++-
src/components/common/CommonImport.vue | 3 +++
src/components/drawers/AddLevelImportStu.vue | 5 ++++-
src/components/drawers/AddLive.vue | 3 +++
src/components/drawers/ExportAchievement.vue | 4 ++++
src/components/drawers/ExportScore.vue | 5 +++++
src/components/drawers/ImportStu.vue | 4 ++++
src/components/drawers/TaskFaceIn.vue | 5 +++++
src/components/drawers/project/AddCertificate.vue | 5 +++++
src/components/drawers/project/CreateCertificate.vue | 4 ++++
src/components/drawers/project/ImpoterGroupLeader.vue | 3 +++
src/components/vote/VoteQuestionItem copy.vue | 4 ++++
src/components/vote/VoteQuestionItem.vue | 5 +++--
src/views/courselibrary/CoursewareManage_Old.vue | 7 ++++++-
src/views/learningpath/LevelAdd.vue | 4 ++++
src/views/projectcenter/ClassAdd.vue | 7 ++++---
src/views/projectcenter/LibraryAdd.vue | 5 +++++
src/views/projectcenter/TaskPage.vue | 6 +++++-
src/views/research/components/ResearchAddItem.vue | 4 ++++
src/views/system/SystemManage.vue | 6 ++++--
23 files changed, 91 insertions(+), 17 deletions(-)
diff --git a/src/api/index1.js b/src/api/index1.js
index 8fb4412b..ac32f578 100644
--- a/src/api/index1.js
+++ b/src/api/index1.js
@@ -8,6 +8,7 @@
*/
import http from "./config";
import qs from "qs";
+import {getCookieForName} from "@/api/method";
// import { getCookie } from '../api/method'
/**
* 接口传参数方式(get)
@@ -188,7 +189,7 @@ export const auditStudentBatch = (obj) => http.post('/admin/student/auditStudent
// //面授课批量导入成绩
export const batchImportScore = (obj) =>
http.post('/admin/student/importHomeWork', obj, {
- headers: { "Content-Type": "multipart/form-data" },
+ headers: { "Content-Type": "multipart/form-data",token:getCookieForName("token") },
});
//数据导入状态
export const getImportStatus = (uuid) => http.get('/admin/student/getImportStatus', { params: { uuid: uuid } })
@@ -197,7 +198,7 @@ export const getImportStatus = (uuid) => http.get('/admin/student/getImportStatu
// export const exportHomeWork=(obj)=>http.get('admin/student/exportHomeWork',{params:obj})
// 面授课导入学员
-export const FaceTeachImportStudent = (obj) => http.post('/admin/student/importStudent', obj, { headers: { "Content-Type": "multipart/form-data" } })
+export const FaceTeachImportStudent = (obj) => http.post('/admin/student/importStudent', obj, { headers: { "Content-Type": "multipart/form-data" },token:getCookieForName("token") })
//成绩录入
export const updateStudent = (obj) => http.post('/admin/student/homeWorkScoreEntry', obj)
@@ -227,7 +228,7 @@ export const createExamination = (obj) => http.post('/examination/createExaminat
//催促考试
export const batchSendMessage = (obj) => http.post('/admin/taskmanage/batchSendMessage', obj)
// 外部考试导入成绩
-export const ImportExternalExamScore = (obj) => http.post('/admin/external/exam/manage/importExternalExamScore', obj, { headers: { "Content-Type": "multipart/form-data" } })
+export const ImportExternalExamScore = (obj) => http.post('/admin/external/exam/manage/importExternalExamScore', obj, { headers: { "Content-Type": "multipart/form-data",token:getCookieForName("token") } })
//分组
export const changeGroupByStudentId = (obj) => http.post('/admin/student/changeGroupByStudentId', obj)
//导入小组
diff --git a/src/api/indexEval.js b/src/api/indexEval.js
index 5bb05bc8..a19eb1ed 100644
--- a/src/api/indexEval.js
+++ b/src/api/indexEval.js
@@ -1,4 +1,5 @@
import http from "./config";
+import {getCookieForName} from "@/api/method";
// import qs from 'qs';
/**
@@ -42,13 +43,13 @@ export const createEvaluation = (obj) =>
//上传组件
export const fileUp = (data) =>
http.post("/file/upload", data, {
- headers: { "Content-Type": "multipart/form-data" },
+ headers: { "Content-Type": "multipart/form-data",token:getCookieForName("token") },
});
//上传文件
export const baseVoteupload = (data) =>
http.post("/vote/baseVoteupload", data, {
- headers: { "Content-Type": "multipart/form-data" },
+ headers: { "Content-Type": "multipart/form-data",token:getCookieForName("token") },
});
//删除测评信息
diff --git a/src/api/indexVote.js b/src/api/indexVote.js
index 0fc677c9..2aeca10d 100644
--- a/src/api/indexVote.js
+++ b/src/api/indexVote.js
@@ -1,5 +1,6 @@
import http from "./config";
import qs from "qs";
+import {getCookieForName} from "@/api/method";
/**
* 接口传参数方式(get)
@@ -44,7 +45,7 @@ import qs from "qs";
export const baseVoteupload = (obj) =>
http.post("/vote/baseVoteupload", obj, {
headers: {
- token: "123",
+ token: getCookieForName("token"),
"Content-Type": "multipart/form-data",
},
});
diff --git a/src/components/common/BaseUpload.vue b/src/components/common/BaseUpload.vue
index b9146eeb..8b03d2d4 100644
--- a/src/components/common/BaseUpload.vue
+++ b/src/components/common/BaseUpload.vue
@@ -5,6 +5,7 @@
:show-upload-list="showUploadList"
:multiple="multiple"
:before-upload="beforeUpload"
+ :headers="headers"
@change="handleChange"
ref="imageRef"
>
@@ -17,6 +18,7 @@
import {defineProps, defineEmits, defineExpose, ref, watch} from "vue";
import {message} from "ant-design-vue";
import {FILE_UPLOAD_URL} from "@/api/config";
+import {getCookieForName} from "@/api/method";
const props = defineProps({
value: {
@@ -41,7 +43,7 @@ const emit = defineEmits({})
const files = ref([])
const imageRef = ref()
-
+const headers = { token: getCookieForName("token") };
watch(props, () => {
props.value.length !== files.value.length && (files.value = props.value)
})
diff --git a/src/components/common/CommonImport.vue b/src/components/common/CommonImport.vue
index 54933169..ae39652b 100644
--- a/src/components/common/CommonImport.vue
+++ b/src/components/common/CommonImport.vue
@@ -31,6 +31,7 @@
:data="data"
:multiple="true"
:name="name"
+ :headers="headers"
:accept="accept"
:action="uploadUrl"
@change="handleChange"
@@ -99,6 +100,7 @@ import {getImportStatus} from "@/api/index1";
import {useTimeout} from "@/utils/useCommon";
import err from "@/assets/images/err.png";
import success from "@/assets/images/success.png";
+import {getCookieForName} from "@/api/method";
const props = defineProps({
url: String,
@@ -115,6 +117,7 @@ const props = defineProps({
const emit = defineEmits({});
const visible = ref(false);
const fileList = ref([]);
+const headers = { token: getCookieForName("token") };
const uploadUrl = ref(process.env.VUE_APP_BASE_API + props.url);
const { start } = useTimeout(async ({ uuid, file }) => {
const { data: { data: upData } } = await getImportStatus(uuid);
diff --git a/src/components/drawers/AddLevelImportStu.vue b/src/components/drawers/AddLevelImportStu.vue
index 2a8e2f4e..8788129f 100644
--- a/src/components/drawers/AddLevelImportStu.vue
+++ b/src/components/drawers/AddLevelImportStu.vue
@@ -35,6 +35,7 @@
v-model:fileList="fileList"
:action="importStudent"
name="uploadFile"
+ :headers="headers"
:multiple="false"
@change="handleChange"
:data="{
@@ -187,6 +188,7 @@ import { message } from "ant-design-vue";
import * as api from "../../api/index1";
import { BATCH_IMPORT_SCORE } from "@/api/config";
import { useStore } from "vuex";
+import {getCookieForName} from "@/api/method";
export default {
name: "ImpStu",
props: {
@@ -222,7 +224,7 @@ export default {
showBottomBar: false, // 显示底部成功条数和失败条数
fileName: "",
});
-
+ const headers = { token: getCookieForName("token") };
const userInfo = computed(() => store.state.userInfo);
const closeDrawer = () => {
@@ -341,6 +343,7 @@ export default {
userInfo,
closeDrawer,
// change,
+ headers,
handleChange,
BATCH_IMPORT_SCORE,
downloadEeeorData,
diff --git a/src/components/drawers/AddLive.vue b/src/components/drawers/AddLive.vue
index 7d2fd531..a1244199 100644
--- a/src/components/drawers/AddLive.vue
+++ b/src/components/drawers/AddLive.vue
@@ -86,6 +86,7 @@
@@ -227,6 +228,7 @@ import AddInvistRoot from "@/components/drawers/AddInvistRoot.vue";
import { Form, message } from "ant-design-vue";
import { fileUp } from "../../api/indexEval";
import {useResetRef} from "@/utils/useCommon";
+import {getCookieForName} from "@/api/method";
const removePG = () => {
formData.value.assessmentId = "";
@@ -243,6 +245,7 @@ const props = defineProps({
taskList: [],
});
const visible = ref(false);
+const headers = { token: getCookieForName("token") };
const formData = useResetRef({
liveName: "",
liveLink: "",
diff --git a/src/components/drawers/ExportAchievement.vue b/src/components/drawers/ExportAchievement.vue
index c516e392..a7ad4fc0 100644
--- a/src/components/drawers/ExportAchievement.vue
+++ b/src/components/drawers/ExportAchievement.vue
@@ -33,6 +33,7 @@
:action="importScore"
name="uploadFile"
:multiple="true"
+ :headers="headers"
@change="handleChange"
:showUploadList="false"
:data="{
@@ -195,6 +196,7 @@ import { reactive, toRefs } from "vue";
import { message } from "ant-design-vue";
import * as api from "../../api/index1";
import { BATCH_IMPORT_SCORE } from "@/api/config";
+import {getCookieForName} from "@/api/method";
export default {
name: "EScore",
@@ -255,6 +257,7 @@ export default {
process.env.VUE_APP_FILE_PATH,
template: process.env.VUE_APP_UP_LOAD_STUDENT_SCORE_TEMPLATE,
});
+ const headers = { token: getCookieForName("token") };
const closeDrawer = () => {
ctx.emit("closeDraw", true);
ctx.emit("update:eScorevisibleExternalExternal", false);
@@ -405,6 +408,7 @@ export default {
BATCH_IMPORT_SCORE,
beforeUpload,
handleUpload,
+ headers,
removeUpload,
downloadEeeorData,
};
diff --git a/src/components/drawers/ExportScore.vue b/src/components/drawers/ExportScore.vue
index eadbe8d2..c93283bb 100644
--- a/src/components/drawers/ExportScore.vue
+++ b/src/components/drawers/ExportScore.vue
@@ -21,6 +21,7 @@
{
ctx.emit("update:eScorevisible", false);
state.fileList = [];
@@ -344,6 +348,7 @@ export default {
closeDrawer,
handleChange,
downTemplate,
+ headers,
BATCH_IMPORT_SCORE,
beforeUpload,
handleUpload,
diff --git a/src/components/drawers/ImportStu.vue b/src/components/drawers/ImportStu.vue
index dc3de36e..a0c7fa3d 100644
--- a/src/components/drawers/ImportStu.vue
+++ b/src/components/drawers/ImportStu.vue
@@ -30,6 +30,7 @@
:action="importLeader"
name="uploadFile"
:multiple="true"
+ :headers="headers"
@change="handleChange"
:showUploadList="false"
>
@@ -252,6 +253,7 @@ import { reactive, toRefs } from "vue";
import { message } from "ant-design-vue";
import * as api from "../../api/index1";
import { BATCH_IMPORT_SCORE } from "@/api/config";
+import {getCookieForName} from "@/api/method";
export default {
name: "ImportStu",
props: {
@@ -279,6 +281,7 @@ export default {
process.env.VUE_APP_FILE_PATH,
template: process.env.VUE_APP_UP_LOAD_STUDENT_SCORE_TEMPLATE,
});
+ const headers = { token: getCookieForName("token") };
const closeDrawer = () => {
ctx.emit("closeDraw", true);
ctx.emit("update:TaskFaceImpStuvisible", false);
@@ -422,6 +425,7 @@ export default {
afterVisibleChange,
closeDrawer,
handleChange,
+ headers,
downTemplate,
BATCH_IMPORT_SCORE,
beforeUpload,
diff --git a/src/components/drawers/TaskFaceIn.vue b/src/components/drawers/TaskFaceIn.vue
index 7e4f4342..4fea9c39 100644
--- a/src/components/drawers/TaskFaceIn.vue
+++ b/src/components/drawers/TaskFaceIn.vue
@@ -31,6 +31,7 @@
:action="importLeader"
name="uploadFile"
:multiple="true"
+ :headers="headers"
@change="handleChange"
:showUploadList="false"
>
@@ -183,6 +184,7 @@ import { reactive, toRefs } from "vue";
import { message } from "ant-design-vue";
import * as api from "../../api/index1";
import { BATCH_IMPORT_SCORE } from "@/api/config";
+import {getCookieForName} from "@/api/method";
export default {
name: "TaskImpStu",
props: {
@@ -221,6 +223,8 @@ export default {
process.env.VUE_APP_FILE_PATH,
template: process.env.VUE_APP_UP_LOAD_STUDENT_SCORE_TEMPLATE,
});
+ const headers = { token: getCookieForName("token") };
+
const closeDrawer = () => {
ctx.emit("closeDraw", true);
ctx.emit("update:TaskFaceImpStuvisible", false);
@@ -364,6 +368,7 @@ export default {
return {
...toRefs(state),
+ headers,
afterVisibleChange,
closeDrawer,
handleChange,
diff --git a/src/components/drawers/project/AddCertificate.vue b/src/components/drawers/project/AddCertificate.vue
index a1dcf80c..41715852 100644
--- a/src/components/drawers/project/AddCertificate.vue
+++ b/src/components/drawers/project/AddCertificate.vue
@@ -59,6 +59,7 @@
style="width: 200px"
list-type="picture-card"
class="avatar-uploader"
+ :headers="headers"
:show-upload-list="false"
:before-upload="beforeUpload"
>
@@ -326,6 +327,7 @@ import CreateCertificate from "../../../components/drawers/project/CreateCertifi
import { message } from "ant-design-vue";
import * as api from "@/api/index1";
import { fileUp } from "../../../api/indexEval";
+import {getCookieForName} from "@/api/method";
export default {
name: "AddCertificate",
components: {
@@ -380,6 +382,8 @@ export default {
fileType: ["jpg", "jpeg", "png", "gif", "svg", "bmp"],
});
+ const headers = { token: getCookieForName("token") };
+
const reset = () => {
state.certificateName = null;
state.certificateRemark = null;
@@ -673,6 +677,7 @@ export default {
};
return {
...toRefs(state),
+ headers,
afterVisibleChange,
closeDrawer,
selectCondition,
diff --git a/src/components/drawers/project/CreateCertificate.vue b/src/components/drawers/project/CreateCertificate.vue
index 7ff031c4..d0468c0b 100644
--- a/src/components/drawers/project/CreateCertificate.vue
+++ b/src/components/drawers/project/CreateCertificate.vue
@@ -68,6 +68,7 @@
style="width: 200px"
list-type="picture-card"
class="avatar-uploader"
+ :headers="headers"
:show-upload-list="false"
action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
:before-upload="beforeUpload"
@@ -118,6 +119,7 @@ import * as apiTask from "../../../api/indexTaskadd";
import { message } from "ant-design-vue";
import { RouterEditTask } from "@/api/indexTask";
import { addTempTask } from "../../../api/indexTaskadd";
+import {getCookieForName} from "@/api/method";
export default {
name: "AddRef",
props: {
@@ -178,6 +180,7 @@ export default {
title: null,
isClick: false,
});
+ const headers = { token: getCookieForName("token") };
const closeDrawer = () => {
ctx.emit("update:CCertificate", false);
ctx.emit("update:edit", false);
@@ -335,6 +338,7 @@ export default {
};
return {
...toRefs(state),
+ headers,
afterVisibleChange,
closeDrawer,
handleFinish,
diff --git a/src/components/drawers/project/ImpoterGroupLeader.vue b/src/components/drawers/project/ImpoterGroupLeader.vue
index a12a607f..7b7c46b7 100644
--- a/src/components/drawers/project/ImpoterGroupLeader.vue
+++ b/src/components/drawers/project/ImpoterGroupLeader.vue
@@ -31,6 +31,7 @@
:data="data"
:multiple="true"
:accept="accept"
+ :headers="headers"
:action="uploadUrl"
@change="handleChange"
v-model:file-list="fileList"
@@ -95,6 +96,7 @@ import {getImportStatus} from "@/api/index1";
import {useTimeout} from "@/utils/useCommon";
import err from "@/assets/images/err.png";
import success from "@/assets/images/success.png";
+import {getCookieForName} from "@/api/method";
const props = defineProps({
url: String,
@@ -109,6 +111,7 @@ const emit = defineEmits({})
const visible = ref(false)
const fileList = ref([])
const uploadUrl = ref(process.env.VUE_APP_BASE_API + props.url);
+const headers = { token: getCookieForName("token") };
const {start} = useTimeout(async ({uuid,file}) => {
const {data: {data: upData}} = await getImportStatus(uuid)
file.uploadState = upData;
diff --git a/src/components/vote/VoteQuestionItem copy.vue b/src/components/vote/VoteQuestionItem copy.vue
index bd73dc7a..58925e79 100644
--- a/src/components/vote/VoteQuestionItem copy.vue
+++ b/src/components/vote/VoteQuestionItem copy.vue
@@ -22,6 +22,7 @@
@@ -50,6 +51,7 @@
import { reactive, toRefs, ref } from "vue";
import { message } from "ant-design-vue";
import { fileUp } from "../../api/indexEval";
+import {getCookieForName} from "@/api/method";
export default {
name: "VoteQuestionItem",
@@ -66,6 +68,7 @@ export default {
const state = reactive({
hasImgName: "",
});
+ const headers = { token: getCookieForName("token") };
const handleInput = (value) => {
console.log(value.target.value);
@@ -121,6 +124,7 @@ export default {
handleDel,
handleCancel,
beforeUpload,
+ headers,
};
},
};
diff --git a/src/components/vote/VoteQuestionItem.vue b/src/components/vote/VoteQuestionItem.vue
index 767e6988..394337a3 100644
--- a/src/components/vote/VoteQuestionItem.vue
+++ b/src/components/vote/VoteQuestionItem.vue
@@ -13,7 +13,7 @@
删除
-
+
+添加图片
@@ -35,13 +35,14 @@
import { defineEmits, defineProps, ref } from "vue";
import { message } from "ant-design-vue";
import { fileUp } from "../../api/indexEval";
+import {getCookieForName} from "@/api/method";
const props = defineProps({
item: {},
index: Number
})
const emit = defineEmits(['del'])
-
+const headers = { token: getCookieForName("token") };
const formData = ref(props.item)
const beforeUpload = (file) => {
diff --git a/src/views/courselibrary/CoursewareManage_Old.vue b/src/views/courselibrary/CoursewareManage_Old.vue
index dd6ff52d..59e90d46 100644
--- a/src/views/courselibrary/CoursewareManage_Old.vue
+++ b/src/views/courselibrary/CoursewareManage_Old.vue
@@ -612,6 +612,7 @@
@@ -1051,6 +1052,7 @@
@@ -2356,6 +2358,7 @@
@@ -3142,6 +3145,7 @@ import ProjectManager from "@/components/project/ProjectManagerNew";
import SeeModal from "./components/seeModal.vue";
import * as moment from "moment";
+import {getCookieForName} from "@/api/method";
//列表表格
const columns1 = [
@@ -3923,7 +3927,7 @@ export default defineComponent({
assessmentName: "",
assessmentVisible: false,
});
-
+ const headers = { token: getCookieForName("token") };
const showStuAdd = (record) => {
state.selectCourseId = record.offcoursePlanId;
state.shipType = 2;
@@ -5690,6 +5694,7 @@ export default defineComponent({
};
return {
...toRefs(state),
+ headers,
getdateToDateFn,
moment,
getdateToTimeFn,
diff --git a/src/views/learningpath/LevelAdd.vue b/src/views/learningpath/LevelAdd.vue
index 2c02e5e7..4da52337 100644
--- a/src/views/learningpath/LevelAdd.vue
+++ b/src/views/learningpath/LevelAdd.vue
@@ -685,6 +685,7 @@
v-if="docChecked == true"
v-model:file-list="fileList"
name="file"
+ :headers="headers"
:action="uploadAction"
@change="handleChange"
>
@@ -1415,6 +1416,7 @@ import ImpoterGroupLeader from "@/components/drawers/project/ImpoterGroupLeader.
import TaskImpStu from "../../components/drawers/TaskFaceIn";
import { checkPer,fixDoublePer } from "@/utils/utils";
+import {getCookieForName} from "@/api/method";
export default {
name: "LevelAdd",
@@ -1446,6 +1448,7 @@ export default {
const router = useRouter();
const route = useRoute();
const stuRef = ref();
+ const headers = { token: getCookieForName("token") };
// const store = useStore();
const state = reactive({
createId: null,
@@ -2911,6 +2914,7 @@ export default {
...toRefs(state),
...toRefs(levelList),
stuRef,
+ headers,
clearChooseStu,
showDeleteALLModal,
closeDeleteALLModal,
diff --git a/src/views/projectcenter/ClassAdd.vue b/src/views/projectcenter/ClassAdd.vue
index 23ce8905..3928974b 100644
--- a/src/views/projectcenter/ClassAdd.vue
+++ b/src/views/projectcenter/ClassAdd.vue
@@ -104,6 +104,7 @@
class="avatar-uploader"
:show-upload-list="false"
action="/api/file/upload"
+ :headers="headers"
:before-upload="beforeUpload"
@change="handleChange"
:disabled="viewDetail ? true : false"
@@ -401,7 +402,7 @@ import { useRouter, useRoute } from "vue-router";
import dayjs from "dayjs";
import * as api from "../../api/index";
import * as api1 from "../../api/index1";
-import { toDate, scrollLoad } from "../../api/method";
+import {toDate, scrollLoad, getCookieForName} from "../../api/method";
import { useStore } from "vuex";
export default {
name: "projectAdd",
@@ -413,7 +414,7 @@ export default {
const isEdit = ref(false);
let peojectID = "";
let paraentID = "";
-
+ const headers = { token: getCookieForName("token") };
const state = reactive({
classifySelect: null,
classifySelectId: null,
@@ -1040,7 +1041,7 @@ export default {
uplodaFileCount,
createProject,
removeFile,
-
+ headers,
isEdit,
backPage,
dateFormatList,
diff --git a/src/views/projectcenter/LibraryAdd.vue b/src/views/projectcenter/LibraryAdd.vue
index 74a07c44..13493338 100644
--- a/src/views/projectcenter/LibraryAdd.vue
+++ b/src/views/projectcenter/LibraryAdd.vue
@@ -606,6 +606,7 @@
v-model:file-list="fileList"
name="file"
:action="uploadAction"
+ :headers="headers"
@change="handleChange2"
>
@@ -2309,7 +2310,7 @@ import { message, Modal } from "ant-design-vue";
import * as apitl from "../../api/index";
import { getTask } from "../../api/indexTaskadd";
import { editProjDoc } from "../../api/indexTaskadd";
-import { toDate } from "../../api/method";
+import {getCookieForName, toDate} from "../../api/method";
import projSet from "../../components/Modals/projSet";
import { overview } from "../../api/indexProjStu";
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
@@ -2362,6 +2363,8 @@ export default {
setup() {
const store = useStore();
const route = useRoute();
+ const headers = { token: getCookieForName("token") };
+
const state = reactive({
createId: "",
permissions: "",
@@ -4912,6 +4915,7 @@ export default {
return {
...toRefs(state),
...toRefs(levelList),
+ headers,
stageChange,
showStudent,
settingTopFlag,
diff --git a/src/views/research/components/ResearchAddItem.vue b/src/views/research/components/ResearchAddItem.vue
index de9df027..d02590c8 100644
--- a/src/views/research/components/ResearchAddItem.vue
+++ b/src/views/research/components/ResearchAddItem.vue
@@ -27,6 +27,7 @@
@@ -53,9 +54,12 @@