-- 附件

This commit is contained in:
yuping
2022-12-08 00:53:10 +08:00
parent 806cb101b9
commit 90304e4e01
2 changed files with 155 additions and 250 deletions

View File

@@ -88,8 +88,8 @@ watch(files, () => {
watch(props, init) watch(props, init)
function init() { function init() {
if (props.value && props.value !== files.value.map(e => e.url).join(',')) { if (props.value !== files.value.map(e => e.url).join(',')) {
files.value = props.value.split(',').map(e => ({name: e, url: e})) files.value = props.value ? props.value.split(',').map(e => ({name: e, url: e})) : []
} }
} }

View File

@@ -1,4 +1,4 @@
<!-- 确定新建面授课弹窗 --> <!-- 确定新建面授课弹窗 -->
<template> <template>
<a-modal <a-modal
v-model:visible="ft_hs" v-model:visible="ft_hs"
@@ -94,10 +94,10 @@
:style="{ display: hideshow ? 'block' : 'none' }" :style="{ display: hideshow ? 'block' : 'none' }"
> >
<span style="color: #999ba3"> <span style="color: #999ba3">
1课程名称统一不加书名号<br /> 1课程名称统一不加书名号<br/>
2项目名称属地等信息如需体现在课程名称中请放在课程名称信息 2项目名称属地等信息如需体现在课程名称中请放在课程名称信息
之后时间管理GROW180项目时间管理B*确保首先 之后时间管理GROW180项目时间管理B*确保首先
看到的是课程内容主题<br /> 看到的是课程内容主题<br/>
3同一课程如先后有多个版本原则上仅开放最新版本旧版本应停用 3同一课程如先后有多个版本原则上仅开放最新版本旧版本应停用
版本如必须以年份标明请以沟通技巧2022的方式呈现 版本如必须以年份标明请以沟通技巧2022的方式呈现
</span> </span>
@@ -310,52 +310,7 @@
<span style="margin-right: 10px">附件</span> <span style="margin-right: 10px">附件</span>
</div> </div>
<div class="item_inp"> <div class="item_inp">
<a-upload <FJUpload v-model:value="attach"></FJUpload>
multiple
:show-upload-list="false"
:before-upload="beforeUpload2"
>
<div class="accessory" style="cursor: pointer">
<div class="accessory_icon">
<img
src="@/assets/images/coursewareManage/enclosure.png"
alt="enclosure"
/>
</div>
<span style="color: #4ea6ff">添加附件</span>
</div>
</a-upload>
<span>
支持.pdf,.ppt,.pptx,.doc,.docx,.xls,.xlsx,.jpg,.jpeg,.png,.gif,.zip
</span>
</div>
</div>
<div class="mbl_items12">
<div
class="i12_box1"
v-for="(item, index) in imgList"
:key="index"
>
<div class="file_img"></div>
<div class="file_detail">
<div class="file_updata">
<div class="updatabox">
<div class="updatacolor"></div>
<div class="updataxq">上传完成</div>
</div>
<div class="upjd">
<span style="margin: auto 5px">100%</span>
</div>
</div>
<!-- 条件渲染 e -->
</div>
<div class="file_operation">
<div class="fobox">
<span style="color: #4ea6ff" @click="handleDel(index)">
删除
</span>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@@ -408,29 +363,32 @@ import {
onMounted, onMounted,
onBeforeUnmount, onBeforeUnmount,
} from "vue"; } from "vue";
import { message } from "ant-design-vue"; import {message} from "ant-design-vue";
import { edit, detail, handle } from "@/api/indexCourse"; import {edit, detail, handle} from "@/api/indexCourse";
import { fileUp } from "../../api/indexEval"; import {fileUp} from "../../api/indexEval";
import * as api1 from "../../api/index1"; import * as api1 from "../../api/index1";
import "@wangeditor/editor/dist/css/style.css"; import "@wangeditor/editor/dist/css/style.css";
import { Editor, Toolbar } from "@wangeditor/editor-for-vue"; import {Editor, Toolbar} from "@wangeditor/editor-for-vue";
import ProjectManager from "@/components/project/ProjectManagerNew"; import ProjectManager from "@/components/project/ProjectManagerNew";
import FJUpload from "@/components/common/FJUpload";
import * as moment from "moment"; import * as moment from "moment";
export default defineComponent({ export default defineComponent({
components: { components: {
Editor, Editor,
Toolbar, Toolbar,
FJUpload,
ProjectManager, ProjectManager,
}, },
setup(props, { expose, emit }) { setup(props, {expose, emit}) {
const state = reactive({ const state = reactive({
hideshow: true, hideshow: true,
attach: '',
ft_hs: false, ft_hs: false,
addLoading: false, addLoading: false,
statusJuJue: 0, statusJuJue: 0,
statusTingQi: 1, statusTingQi: 1,
member: { name: "", value: "" }, member: {name: "", value: ""},
offcourseId: null, offcourseId: null,
qdms_inputV1: "", qdms_inputV1: "",
@@ -471,7 +429,7 @@ export default defineComponent({
state.addLoading = false; state.addLoading = false;
state.statusJuJue = 0; state.statusJuJue = 0;
state.statusTingQi = 1; state.statusTingQi = 1;
state.member = { name: "", value: "" }; state.member = {name: "", value: ""};
state.offcourseId = null; state.offcourseId = null;
state.qdms_inputV1 = ""; state.qdms_inputV1 = "";
@@ -484,6 +442,7 @@ export default defineComponent({
state.tags_val = []; state.tags_val = [];
state.qdms_inputV6 = ""; state.qdms_inputV6 = "";
state.imgList = []; state.imgList = [];
state.attach = '';
valueHtml.value = ""; valueHtml.value = "";
}; };
@@ -509,7 +468,7 @@ export default defineComponent({
const toolbarConfig = { const toolbarConfig = {
excludeKeys: ["insertVideo", "insertImage"], excludeKeys: ["insertVideo", "insertImage"],
}; };
const editorConfig = { placeholder: "请输入内容...", MENU_CONF: {} }; const editorConfig = {placeholder: "请输入内容...", MENU_CONF: {}};
editorConfig.MENU_CONF["uploadImage"] = { editorConfig.MENU_CONF["uploadImage"] = {
// 自定义上传 // 自定义上传
async customUpload(file, insertFn) { async customUpload(file, insertFn) {
@@ -534,45 +493,6 @@ export default defineComponent({
}); });
// 富文本 eeeeeeeeeeeeee // 富文本 eeeeeeeeeeeeee
const beforeUpload2 = (file) => {
const fileType = [
"jpg",
"jpeg",
"png",
"gif",
"pdf",
"ppt",
"pptx",
"doc",
"docx",
"xls",
"xlsx",
"zip",
];
if (!fileType.includes(file.name.split(".")[1])) {
message.error(
"仅支持.pdf,.ppt,.pptx,.doc,.docx,.xls,.xlsx,.jpg,.jpeg,.png,.gif,.zip格式!"
);
return false;
}
const formData = new FormData();
formData.append("file", file);
fileUp(formData).then((res) => {
if (res.data.code === 200) {
state.imgList.push({
img: res.data.data,
name: file.name,
size: file.size,
});
}
});
return false;
};
const handleDel = (index) => {
state.imgList.splice(index, 1);
};
//获取分类、场景、封面图、-----------字典配置------------------------------- //获取分类、场景、封面图、-----------字典配置-------------------------------
const optionsUrl = ref([]); const optionsUrl = ref([]);
const options2 = ref([]); const options2 = ref([]);
@@ -672,7 +592,7 @@ export default defineComponent({
teacherId: state.member.value, teacherId: state.member.value,
teacher: state.member.name, teacher: state.member.name,
intro: state.qdms_inputV6, intro: state.qdms_inputV6,
attach: files, attach: state.attach,
outline: valueHtml.value, outline: valueHtml.value,
}; };
console.log("postData"); console.log("postData");
@@ -728,21 +648,9 @@ export default defineComponent({
state.chang_jin = String(item.sceneId); state.chang_jin = String(item.sceneId);
state.tags_val = item.tips ? item.tips.split(",") : []; state.tags_val = item.tips ? item.tips.split(",") : [];
state.qdms_inputV6 = item.intro; state.qdms_inputV6 = item.intro;
state.member = { value: item.teacherId, name: item.teacher }; state.member = {value: item.teacherId, name: item.teacher};
if (item.attach === "") {
state.imgList = [];
} else {
if (item.attach.indexOf(",")) {
const arr = item.attach.split(",");
arr.forEach((item) => {
state.imgList.push({ img: item });
});
} else {
state.imgList = [{ img: item.attach }];
}
}
valueHtml.value = item.outline; valueHtml.value = item.outline;
state.attach = item.attach;
state.ft_hs = true; state.ft_hs = true;
}; };
@@ -794,12 +702,9 @@ export default defineComponent({
handleTagChange, handleTagChange,
handleTagClose, handleTagClose,
handleCreated, handleCreated,
beforeUpload2,
handleDel,
handlePush, handlePush,
submitReview, submitReview,
reviewClick, reviewClick,
editorRef, editorRef,
valueHtml, valueHtml,
mode: "simple", // 或 'simple' mode: "simple", // 或 'simple'