mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-17 23:06:47 +08:00
-- 附件
This commit is contained in:
@@ -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})) : []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,29 +1,29 @@
|
|||||||
<!-- 确定新建面授课弹窗 -->
|
<!-- 确定新建面授课弹窗 -->
|
||||||
<template>
|
<template>
|
||||||
<a-modal
|
<a-modal
|
||||||
v-model:visible="ft_hs"
|
v-model:visible="ft_hs"
|
||||||
title="Title"
|
title="Title"
|
||||||
:footer="null"
|
:footer="null"
|
||||||
:closable="false"
|
:closable="false"
|
||||||
wrapClassName="modalStyle facteachModal"
|
wrapClassName="modalStyle facteachModal"
|
||||||
width="80%"
|
width="80%"
|
||||||
@cancel="visibleClose"
|
@cancel="visibleClose"
|
||||||
@ok="handlePush"
|
@ok="handlePush"
|
||||||
>
|
>
|
||||||
<div class="modalHeader">
|
<div class="modalHeader">
|
||||||
<div class="headerLeft">
|
<div class="headerLeft">
|
||||||
<img
|
<img
|
||||||
style="width: 17px; height: 18px; margin-right: 8px"
|
style="width: 17px; height: 18px; margin-right: 8px"
|
||||||
src="@/assets/images/basicinfo/add.png"
|
src="@/assets/images/basicinfo/add.png"
|
||||||
/>
|
/>
|
||||||
<span v-if="ft_eidt" class="headerLeftText">编辑面授课</span>
|
<span v-if="ft_eidt" class="headerLeftText">编辑面授课</span>
|
||||||
<span v-else class="headerLeftText">新建面授课</span>
|
<span v-else class="headerLeftText">新建面授课</span>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-right: 57px; cursor: pointer">
|
<div style="margin-right: 57px; cursor: pointer">
|
||||||
<img
|
<img
|
||||||
@click="visibleClose"
|
@click="visibleClose"
|
||||||
style="width: 22px; height: 22px"
|
style="width: 22px; height: 22px"
|
||||||
src="@/assets/images/basicinfo/close22.png"
|
src="@/assets/images/basicinfo/close22.png"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -42,8 +42,8 @@
|
|||||||
<div class="item_nam">
|
<div class="item_nam">
|
||||||
<div class="asterisk_icon">
|
<div class="asterisk_icon">
|
||||||
<img
|
<img
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
src="@/assets/images/coursewareManage/asterisk.png"
|
||||||
alt="asterisk"
|
alt="asterisk"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<span style="margin-right: 14px">课程名称</span>
|
<span style="margin-right: 14px">课程名称</span>
|
||||||
@@ -51,10 +51,10 @@
|
|||||||
<div class="item_inp">
|
<div class="item_inp">
|
||||||
<div class="i1_input">
|
<div class="i1_input">
|
||||||
<a-input
|
<a-input
|
||||||
v-model:value="qdms_inputV1"
|
v-model:value="qdms_inputV1"
|
||||||
maxlength="90"
|
maxlength="90"
|
||||||
style="width: 440px; height: 40px; border-radius: 8px"
|
style="width: 440px; height: 40px; border-radius: 8px"
|
||||||
placeholder="请输入课程名称"
|
placeholder="请输入课程名称"
|
||||||
/>
|
/>
|
||||||
<div class="inp_num">
|
<div class="inp_num">
|
||||||
<span style="color: #c7cbd2">
|
<span style="color: #c7cbd2">
|
||||||
@@ -70,19 +70,19 @@
|
|||||||
<span style="color: #999ba3">课程命名规则</span>
|
<span style="color: #999ba3">课程命名规则</span>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="i2_right"
|
class="i2_right"
|
||||||
@click="hideShow"
|
@click="hideShow"
|
||||||
style="cursor: pointer"
|
style="cursor: pointer"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="b_zk"
|
class="b_zk"
|
||||||
:style="{ display: hideshow ? 'block' : 'none' }"
|
:style="{ display: hideshow ? 'block' : 'none' }"
|
||||||
>
|
>
|
||||||
<span style="color: #4ea6ff">收起</span>
|
<span style="color: #4ea6ff">收起</span>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="b_sq"
|
class="b_sq"
|
||||||
:style="{ display: hideshow ? 'none' : 'block' }"
|
:style="{ display: hideshow ? 'none' : 'block' }"
|
||||||
>
|
>
|
||||||
<span style="color: #4ea6ff">展开</span>
|
<span style="color: #4ea6ff">展开</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -90,14 +90,14 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="i2_detail"
|
class="i2_detail"
|
||||||
: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>
|
||||||
@@ -107,32 +107,32 @@
|
|||||||
<div class="item_nam">
|
<div class="item_nam">
|
||||||
<div class="asterisk_icon">
|
<div class="asterisk_icon">
|
||||||
<img
|
<img
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
src="@/assets/images/coursewareManage/asterisk.png"
|
||||||
alt=""
|
alt=""
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<span style="margin-right: 14px">封面图</span>
|
<span style="margin-right: 14px">封面图</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="item_inp">
|
<div class="item_inp">
|
||||||
<a-select
|
<a-select
|
||||||
:getPopupContainer="
|
:getPopupContainer="
|
||||||
(triggerNode) => {
|
(triggerNode) => {
|
||||||
return triggerNode.parentNode || document.body;
|
return triggerNode.parentNode || document.body;
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
v-model:value="feng_mian_1"
|
v-model:value="feng_mian_1"
|
||||||
dropdownClassName="dropdown-style"
|
dropdownClassName="dropdown-style"
|
||||||
style="width: 440px"
|
style="width: 440px"
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
:options="optionsUrl"
|
:options="optionsUrl"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
showSearch
|
||||||
/>
|
/>
|
||||||
<img
|
<img
|
||||||
class="i_upload_img"
|
class="i_upload_img"
|
||||||
v-if="feng_mian_1"
|
v-if="feng_mian_1"
|
||||||
:src="feng_mian_1"
|
:src="feng_mian_1"
|
||||||
alt="avatar"
|
alt="avatar"
|
||||||
/>
|
/>
|
||||||
<div class="i_bottom">
|
<div class="i_bottom">
|
||||||
<span style="color: #999ba3">
|
<span style="color: #999ba3">
|
||||||
@@ -145,9 +145,9 @@
|
|||||||
<div class="item_nam">
|
<div class="item_nam">
|
||||||
<div class="asterisk_icon">
|
<div class="asterisk_icon">
|
||||||
<img
|
<img
|
||||||
style="width: 10px; height: 10px"
|
style="width: 10px; height: 10px"
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
src="@/assets/images/coursewareManage/asterisk.png"
|
||||||
alt=""
|
alt=""
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<span style="margin-right: 14px">目标人群</span>
|
<span style="margin-right: 14px">目标人群</span>
|
||||||
@@ -155,10 +155,10 @@
|
|||||||
<div class="item_inp">
|
<div class="item_inp">
|
||||||
<div class="i1_input">
|
<div class="i1_input">
|
||||||
<a-input
|
<a-input
|
||||||
v-model:value="qdms_inputV2"
|
v-model:value="qdms_inputV2"
|
||||||
maxlength="50"
|
maxlength="50"
|
||||||
style="width: 440px; height: 40px; border-radius: 8px"
|
style="width: 440px; height: 40px; border-radius: 8px"
|
||||||
placeholder="请输入目标人群"
|
placeholder="请输入目标人群"
|
||||||
/>
|
/>
|
||||||
<div class="inp_num">
|
<div class="inp_num">
|
||||||
<span style="color: #c7cbd2">
|
<span style="color: #c7cbd2">
|
||||||
@@ -175,10 +175,10 @@
|
|||||||
<div class="item_inp">
|
<div class="item_inp">
|
||||||
<div class="i1_input">
|
<div class="i1_input">
|
||||||
<a-input
|
<a-input
|
||||||
v-model:value="qdms_inputV3"
|
v-model:value="qdms_inputV3"
|
||||||
maxlength="200"
|
maxlength="200"
|
||||||
style="width: 440px; height: 40px; border-radius: 8px"
|
style="width: 440px; height: 40px; border-radius: 8px"
|
||||||
placeholder="请输入课程价值"
|
placeholder="请输入课程价值"
|
||||||
/>
|
/>
|
||||||
<div class="inp_num">
|
<div class="inp_num">
|
||||||
<span style="color: #c7cbd2">
|
<span style="color: #c7cbd2">
|
||||||
@@ -192,8 +192,8 @@
|
|||||||
<div class="item_nam">
|
<div class="item_nam">
|
||||||
<div class="asterisk_icon">
|
<div class="asterisk_icon">
|
||||||
<img
|
<img
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
src="@/assets/images/coursewareManage/asterisk.png"
|
||||||
alt="asterisk"
|
alt="asterisk"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<span style="margin-right: 14px">内容分类</span>
|
<span style="margin-right: 14px">内容分类</span>
|
||||||
@@ -201,18 +201,18 @@
|
|||||||
<div class="item_inp">
|
<div class="item_inp">
|
||||||
<div class="select i6_input">
|
<div class="select i6_input">
|
||||||
<a-select
|
<a-select
|
||||||
:getPopupContainer="
|
:getPopupContainer="
|
||||||
(triggerNode) => {
|
(triggerNode) => {
|
||||||
return triggerNode.parentNode || document.body;
|
return triggerNode.parentNode || document.body;
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
v-model:value="fen_lei"
|
v-model:value="fen_lei"
|
||||||
dropdownClassName="dropdown-style"
|
dropdownClassName="dropdown-style"
|
||||||
style="width: 440px"
|
style="width: 440px"
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
:options="options2"
|
:options="options2"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
showSearch
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -224,18 +224,18 @@
|
|||||||
<div class="item_inp">
|
<div class="item_inp">
|
||||||
<div class="select i7_input">
|
<div class="select i7_input">
|
||||||
<a-select
|
<a-select
|
||||||
:getPopupContainer="
|
:getPopupContainer="
|
||||||
(triggerNode) => {
|
(triggerNode) => {
|
||||||
return triggerNode.parentNode || document.body;
|
return triggerNode.parentNode || document.body;
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
v-model:value="chang_jin"
|
v-model:value="chang_jin"
|
||||||
dropdownClassName="dropdown-style"
|
dropdownClassName="dropdown-style"
|
||||||
style="width: 440px"
|
style="width: 440px"
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
:options="options3"
|
:options="options3"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
showSearch
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -246,17 +246,17 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="item_inp">
|
<div class="item_inp">
|
||||||
<a-input
|
<a-input
|
||||||
v-model:value="tags_val_single"
|
v-model:value="tags_val_single"
|
||||||
style="width: 440px; height: 40px; border-radius: 8px"
|
style="width: 440px; height: 40px; border-radius: 8px"
|
||||||
placeholder="请输入按回车键创建成功"
|
placeholder="请输入按回车键创建成功"
|
||||||
@pressEnter="handleTagChange"
|
@pressEnter="handleTagChange"
|
||||||
/>
|
/>
|
||||||
<div class="tag-content">
|
<div class="tag-content">
|
||||||
<a-tag
|
<a-tag
|
||||||
v-for="(item, index) in tags_val"
|
v-for="(item, index) in tags_val"
|
||||||
:key="index"
|
:key="index"
|
||||||
closable
|
closable
|
||||||
@close="handleTagClose(item)"
|
@close="handleTagClose(item)"
|
||||||
>
|
>
|
||||||
{{ item }}
|
{{ item }}
|
||||||
</a-tag>
|
</a-tag>
|
||||||
@@ -269,8 +269,8 @@
|
|||||||
<div class="item_nam">
|
<div class="item_nam">
|
||||||
<div class="asterisk_icon">
|
<div class="asterisk_icon">
|
||||||
<img
|
<img
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
src="@/assets/images/coursewareManage/asterisk.png"
|
||||||
alt="asterisk"
|
alt="asterisk"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<!-- 授课教师1 -->
|
<!-- 授课教师1 -->
|
||||||
@@ -279,8 +279,8 @@
|
|||||||
<div class="item_inp">
|
<div class="item_inp">
|
||||||
<div class="i1_input">
|
<div class="i1_input">
|
||||||
<ProjectManager
|
<ProjectManager
|
||||||
v-model:value="member.value"
|
v-model:value="member.value"
|
||||||
v-model:name="member.name"
|
v-model:name="member.name"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -292,10 +292,10 @@
|
|||||||
<div class="item_inp">
|
<div class="item_inp">
|
||||||
<div class="i10_textarea">
|
<div class="i10_textarea">
|
||||||
<a-textarea
|
<a-textarea
|
||||||
v-model:value="qdms_inputV6"
|
v-model:value="qdms_inputV6"
|
||||||
maxlength="150"
|
maxlength="150"
|
||||||
style="width: 440px; height: 100px; border-radius: 8px"
|
style="width: 440px; height: 100px; border-radius: 8px"
|
||||||
placeholder="请输入"
|
placeholder="请输入"
|
||||||
/>
|
/>
|
||||||
<div class="inp_num">
|
<div class="inp_num">
|
||||||
<span style="color: #c7cbd2">
|
<span style="color: #c7cbd2">
|
||||||
@@ -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>
|
||||||
@@ -367,17 +322,17 @@
|
|||||||
<div class="fotarea">
|
<div class="fotarea">
|
||||||
<div style="border: 1px solid #ccc">
|
<div style="border: 1px solid #ccc">
|
||||||
<Toolbar
|
<Toolbar
|
||||||
style="border-bottom: 1px solid #ccc"
|
style="border-bottom: 1px solid #ccc"
|
||||||
:editor="editorRef"
|
:editor="editorRef"
|
||||||
:defaultConfig="toolbarConfig"
|
:defaultConfig="toolbarConfig"
|
||||||
:mode="mode"
|
:mode="mode"
|
||||||
/>
|
/>
|
||||||
<Editor
|
<Editor
|
||||||
style="height: 250px; overflow-y: hidden"
|
style="height: 250px; overflow-y: hidden"
|
||||||
v-model="valueHtml"
|
v-model="valueHtml"
|
||||||
:defaultConfig="editorConfig"
|
:defaultConfig="editorConfig"
|
||||||
:mode="mode"
|
:mode="mode"
|
||||||
@onCreated="handleCreated"
|
@onCreated="handleCreated"
|
||||||
/>
|
/>
|
||||||
</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([]);
|
||||||
@@ -585,48 +505,48 @@ export default defineComponent({
|
|||||||
setCode: param,
|
setCode: param,
|
||||||
};
|
};
|
||||||
api1
|
api1
|
||||||
.getDict(obj)
|
.getDict(obj)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log("获取字典成功", res);
|
console.log("获取字典成功", res);
|
||||||
if (res.data.code === 200) {
|
if (res.data.code === 200) {
|
||||||
if (param === "faceclassPic") {
|
if (param === "faceclassPic") {
|
||||||
let arr = res.data.data.rows;
|
let arr = res.data.data.rows;
|
||||||
let newArr = [];
|
let newArr = [];
|
||||||
arr.forEach((item) => {
|
arr.forEach((item) => {
|
||||||
newArr.push({
|
newArr.push({
|
||||||
value: item.dictValue,
|
value: item.dictValue,
|
||||||
label: item.dictName,
|
label: item.dictName,
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
optionsUrl.value = newArr;
|
||||||
optionsUrl.value = newArr;
|
}
|
||||||
}
|
if (param === "faceclassClass") {
|
||||||
if (param === "faceclassClass") {
|
let arr = res.data.data.rows;
|
||||||
let arr = res.data.data.rows;
|
let newArr = [];
|
||||||
let newArr = [];
|
arr.forEach((item) => {
|
||||||
arr.forEach((item) => {
|
newArr.push({
|
||||||
newArr.push({
|
value: item.dictCode,
|
||||||
value: item.dictCode,
|
label: item.dictName,
|
||||||
label: item.dictName,
|
});
|
||||||
});
|
});
|
||||||
});
|
options2.value = newArr;
|
||||||
options2.value = newArr;
|
}
|
||||||
}
|
if (param === "faceclassScene") {
|
||||||
if (param === "faceclassScene") {
|
let arr = res.data.data.rows;
|
||||||
let arr = res.data.data.rows;
|
let newArr = [];
|
||||||
let newArr = [];
|
arr.forEach((item) => {
|
||||||
arr.forEach((item) => {
|
newArr.push({
|
||||||
newArr.push({
|
value: item.dictCode,
|
||||||
value: item.dictCode,
|
label: item.dictName,
|
||||||
label: item.dictName,
|
});
|
||||||
});
|
});
|
||||||
});
|
options3.value = newArr;
|
||||||
options3.value = newArr;
|
}
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
})
|
.catch((err) => {
|
||||||
.catch((err) => {
|
console.log("获取字典失败", err);
|
||||||
console.log("获取字典失败", err);
|
});
|
||||||
});
|
|
||||||
};
|
};
|
||||||
getDictList("faceclassClass");
|
getDictList("faceclassClass");
|
||||||
getDictList("faceclassScene");
|
getDictList("faceclassScene");
|
||||||
@@ -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'
|
||||||
|
|||||||
Reference in New Issue
Block a user