feat:合并

This commit is contained in:
lixg
2022-12-08 20:32:16 +08:00
10 changed files with 133 additions and 83 deletions

View File

@@ -44,7 +44,7 @@ export default defineComponent({
const store = useStore(); const store = useStore();
const isLogin = ref(false); const isLogin = ref(false);
// console.log("router", router.getRoutes(), route); // console.log("router", router.getRoutes(), route);
console.log("版本0.9.5------------"); console.log("版本0.9.6------------");
const routes = computed(() => { const routes = computed(() => {
return router.getRoutes().filter((e) => e.meta?.isLink); return router.getRoutes().filter((e) => e.meta?.isLink);
}); });

View File

@@ -56,7 +56,7 @@ http.interceptors.response.use(
return response; return response;
} else { } else {
if (code === 1000) { if (code === 1000) {
// window.open("https://u-pre.boe.com/web/", '_self'); window.open("https://u-pre.boe.com/web/", '_self');
// window.open("http://111.231.196.214:12013/manage/login", '_self'); // window.open("http://111.231.196.214:12013/manage/login", '_self');
} }
console.log("api %o", msg); console.log("api %o", msg);

View File

@@ -103,7 +103,7 @@ export default {
return message.warning("请输入公告内容"); return message.warning("请输入公告内容");
} else { } else {
let obj = { let obj = {
notice: state.noticeContent1, notice: state.noticeContent,
projectId: props.projectId, projectId: props.projectId,
title: "", title: "",
}; };
@@ -147,7 +147,7 @@ export default {
.noticeTitle { .noticeTitle {
margin-left: 32px; margin-left: 32px;
margin-right: 32px; margin-right: 32px;
// padding-top: 20px; margin-bottom: 100px;
.notitle { .notitle {
height: 55px; height: 55px;
border-bottom: 1px solid #ededed; border-bottom: 1px solid #ededed;

View File

@@ -323,7 +323,7 @@ export default {
name: value.memberName ? value.memberName : "-", name: value.memberName ? value.memberName : "-",
com: value.orgName ? value.orgName : "-", com: value.orgName ? value.orgName : "-",
gang: "-", gang: value.positionMgrLevel ? value.positionMgrLevel : "-",
number: value.memberNo ? value.memberNo : "-", number: value.memberNo ? value.memberNo : "-",
state: value.tagName ? value.tagName : "-", state: value.tagName ? value.tagName : "-",
}; };

View File

@@ -116,7 +116,8 @@
</div> </div>
<div class="setc_name"><span>审核意见</span></div> <div class="setc_name"><span>审核意见</span></div>
<div class="setc_main"> <div class="setc_main">
<a-textarea v-model:value="valueSuggest" :rows="4"/> <a-textarea v-model:value="valueSuggest" :rows="4" show-count
:maxlength="20"/>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -18,6 +18,7 @@
@search="searchMember" @search="searchMember"
:open="isOpen" :open="isOpen"
@change="change" @change="change"
@blur="blur"
> >
<template v-if="loading" #notFoundContent> <template v-if="loading" #notFoundContent>
<a-spin size="small"/> <a-spin size="small"/>
@@ -60,8 +61,7 @@ const memberParam = ref({keyWord: '', pageNo: 1, pageSize: 10})
const loading = ref(false) const loading = ref(false)
watch(() => memberParam.value.keyWord, throttle(getSearchMember, 500)) watch(() => memberParam.value, throttle(getMemberData, 1000))
watch(() => memberParam.value.pageNo, throttle(getPageMember, 500))
watch(props, init) watch(props, init)
function init() { function init() {
@@ -76,19 +76,15 @@ onMounted(() => {
init() init()
}) })
function getSearchMember() {
console.log('getSearchMember')
options.value && options.value.length && (options.value = [])
getMemberData()
}
function getPageMember() {
console.log('getPageMember')
getMemberData()
}
function getMemberData() { function getMemberData() {
console.log(memberParam)
if (!memberParam.value.keyWord) {
return
}
if (memberParam.value.pageNo !== 1) {
options.value && options.value.length && (options.value = [])
}
isOpen.value = true isOpen.value = true
loading.value = true loading.value = true
api1.getMemberInfo(memberParam.value).then((res) => { api1.getMemberInfo(memberParam.value).then((res) => {
@@ -116,11 +112,16 @@ const memberScroll = (e) => {
//搜索学员 //搜索学员
const searchMember = (keyWord) => { const searchMember = (keyWord) => {
console.log('searchMember', keyWord) console.log('searchMember', keyWord)
loading.value = true
options.value = [] options.value = []
isOpen.value = true isOpen.value = true
keyWord && (memberParam.value = {keyWord, pageNo: 1, pageSize: 10}); keyWord && (memberParam.value = {keyWord, pageNo: 1, pageSize: 10});
}; };
function blur() {
isOpen.value = false
}
function change(e, l) { function change(e, l) {
isOpen.value = false isOpen.value = false
Array.isArray(l) && (selectOptions.value = l) Array.isArray(l) && (selectOptions.value = l)
@@ -129,8 +130,8 @@ function change(e, l) {
emit('update:name', l.map(t => t.label).join(',')) emit('update:name', l.map(t => t.label).join(','))
emit('update:value', l.map(t => t.value).join(',')) emit('update:value', l.map(t => t.value).join(','))
} else { } else {
emit('update:name', l.label) emit('update:name', l?.label)
emit('update:value', l.value) emit('update:value', l?.value)
} }
} }

View File

@@ -1403,7 +1403,7 @@
placeholder="请选择状态" placeholder="请选择状态"
v-model:value="gl_selectV2" v-model:value="gl_selectV2"
style="width: 200px" style="width: 200px"
:options="options1" :options="options11"
allowClear allowClear
showSearch showSearch
@focus="focus" @focus="focus"
@@ -2568,11 +2568,11 @@
</div> </div>
</div> </div>
<div class="del_btnbox"> <div class="del_btnbox">
<div class="del_btn btn1"> <div class="del_btn btn1" @click="delete_exit1">
<div class="btnText" @click="delete_exit1">取消</div> <div class="btnText">取消</div>
</div> </div>
<div class="del_btn btn2"> <div class="del_btn btn2" @click="handleDeleteExit">
<div class="btnText" @click="handleDeleteExit">确定</div> <div class="btnText">确定</div>
</div> </div>
</div> </div>
</div> </div>
@@ -2861,7 +2861,7 @@ const columns1 = [
}, },
}, },
{ {
title: "上线时间", title: "发布时间",
width: 160, width: 160,
dataIndex: "pubtime", dataIndex: "pubtime",
key: "10", key: "10",
@@ -4052,6 +4052,7 @@ export default defineComponent({
}; };
const handleSearchTable3 = () => { const handleSearchTable3 = () => {
console.log(7878); console.log(7878);
message.error("该课程暂学员学习记录");
getTableDate333(); getTableDate333();
}; };
const getTableDate33 = async () => { const getTableDate33 = async () => {
@@ -4161,6 +4162,16 @@ export default defineComponent({
label: "审核未通过", label: "审核未通过",
}, },
]); ]);
const options11 = ref([
{
value: 0,
label: "未开始",
},
{
value: 1,
label: "已完成",
},
]);
const options2 = ref([ const options2 = ref([
// { // {
// value: "value2", // value: "value2",
@@ -4723,7 +4734,6 @@ export default defineComponent({
const obj = { const obj = {
offcourseId: item.offcourseId, offcourseId: item.offcourseId,
offcoursePlanId: null, //开课ID,不传代表新增 offcoursePlanId: null, //开课ID,不传代表新增
address: item.address, address: item.address,
applyFlag: item.applyFlag, applyFlag: item.applyFlag,
attach: item.attach, attach: item.attach,
@@ -4731,7 +4741,7 @@ export default defineComponent({
completeType: item.completeType, completeType: item.completeType,
endTime: new Date(item.endTime) / 1000, endTime: new Date(item.endTime) / 1000,
evalFlag: item.evalFlag, evalFlag: item.evalFlag,
name: item.name, name: '复制'+item.name,
signFlag: item.signFlag, //是否允许未报名的签到:1是0否 signFlag: item.signFlag, //是否允许未报名的签到:1是0否
//signWordFlag: item.signWordFlag, //签到是否需要口令:1是0否 //signWordFlag: item.signWordFlag, //签到是否需要口令:1是0否
teacherId: item.teacherId, teacherId: item.teacherId,
@@ -4755,7 +4765,7 @@ export default defineComponent({
}); });
const postData = { const postData = {
offcourseId: null, //不传代表新增 offcourseId: null, //不传代表新增
name: item.name, name: '复制'+item.name,
picUrl: item.picUrl, picUrl: item.picUrl,
targetUser: item.targetUser, targetUser: item.targetUser,
meaning: item.meaning, meaning: item.meaning,
@@ -4879,8 +4889,6 @@ export default defineComponent({
}; };
//编辑面授课 //编辑面授课
const handleEdit = async (itm, type) => { const handleEdit = async (itm, type) => {
console.log(45555);
console.log(itm);
if (type === "1") { if (type === "1") {
return; return;
} }
@@ -5329,6 +5337,7 @@ export default defineComponent({
columns6, columns6,
columns7, columns7,
options1, options1,
options11,
options2, options2,
options3, options3,
options4, options4,

View File

@@ -160,16 +160,44 @@
:key="index" :key="index"
> >
<div class="file_img"> <div class="file_img">
<img v-if="(item.indexOf('jpg')!==-1 ||item.indexOf('jpeg')!==-1 ||item.indexOf('png')!==-1 )" src="@/assets/images/coursewareManage/pngpic.png" /> <img
v-if="
item.indexOf('jpg') !== -1 ||
item.indexOf('jpeg') !== -1 ||
item.indexOf('png') !== -1
"
src="@/assets/images/coursewareManage/pngpic.png"
/>
<div v-else> <div v-else>
<img v-if="(item.indexOf('doc')!==-1)" src="@/assets/images/coursewareManage/docpic.png" /> <img
v-if="item.indexOf('doc') !== -1"
src="@/assets/images/coursewareManage/docpic.png"
/>
<div v-else> <div v-else>
<img v-if="(item.indexOf('xls')!==-1)" src="@/assets/images/coursewareManage/xlspic.png" /> <img
v-if="item.indexOf('xls') !== -1"
src="@/assets/images/coursewareManage/xlspic.png"
/>
<div v-else> <div v-else>
<img v-if="(item.indexOf('ppt')!==-1)" src="@/assets/images/coursewareManage/pptpic.png" /> <img
v-if="item.indexOf('ppt') !== -1"
src="@/assets/images/coursewareManage/pptpic.png"
/>
<div v-else> <div v-else>
<img v-if="(item.indexOf('pdf')!==-1)" src="@/assets/images/coursewareManage/pdfpic.png" /> <img
<img v-else src="@/assets/images/coursewareManage/docpic.png" /> v-if="item.indexOf('pdf') !== -1"
src="@/assets/images/coursewareManage/pdfpic.png"
/>
<div v-else>
<img
v-if="item.indexOf('zip') !== -1"
src="@/assets/images/coursewareManage/zippic.png"
/>
<img
v-else
src="@/assets/images/coursewareManage/docpic.png"
/>
</div>
</div> </div>
</div> </div>
</div> </div>
@@ -663,7 +691,9 @@ export default defineComponent({
.fotarea { .fotarea {
width: calc(100% - 150px); width: calc(100% - 150px);
position: relative; position: relative;
img {
max-width: 100%;
}
.fuwenben { .fuwenben {
width: 90%; width: 90%;
height: 20px; height: 20px;

View File

@@ -310,7 +310,7 @@
<span style="margin-right: 10px">附件</span> <span style="margin-right: 10px">附件</span>
</div> </div>
<div class="item_inp"> <div class="item_inp">
<FJUpload v-model:value="attach"></FJUpload> <FJUpload v-model:value="attach" />
</div> </div>
</div> </div>
</div> </div>
@@ -360,8 +360,8 @@ import {
defineComponent, defineComponent,
ref, ref,
shallowRef, shallowRef,
onMounted, // onMounted,
onBeforeUnmount, onUnmounted,
} 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";
@@ -372,7 +372,7 @@ 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 FJUpload from "@/components/common/FJUpload";
import * as moment from "moment"; import * as moment from "moment";
import * as api2 from "../../api/indexAudit" import * as api2 from "../../api/indexAudit";
export default defineComponent({ export default defineComponent({
components: { components: {
Editor, Editor,
@@ -383,6 +383,7 @@ export default defineComponent({
setup(props, { expose, emit }) { setup(props, { expose, emit }) {
const state = reactive({ const state = reactive({
hideshow: true, hideshow: true,
ft_eidt: false,
attach: "", attach: "",
ft_hs: false, ft_hs: false,
addLoading: false, addLoading: false,
@@ -408,10 +409,13 @@ export default defineComponent({
state.offcourseId = offcourseId; state.offcourseId = offcourseId;
if (state.offcourseId) { if (state.offcourseId) {
state.ft_hs = true;
state.ft_eidt = true;
handleEditInfo(state.offcourseId); handleEditInfo(state.offcourseId);
} else { } else {
state.qdms_inputV1 = name;
state.ft_hs = true; state.ft_hs = true;
state.ft_eidt = false;
state.qdms_inputV1 = name;
} }
}; };
const visibleClose = () => { const visibleClose = () => {
@@ -446,7 +450,7 @@ export default defineComponent({
state.imgList = []; state.imgList = [];
state.attach = ""; state.attach = "";
valueHtml.value = ""; // valueHtml.value = "";
}; };
// 富文本 sssssssssssssss // 富文本 sssssssssssssss
@@ -455,18 +459,17 @@ export default defineComponent({
// 内容 HTML // 内容 HTML
const valueHtml = ref(""); const valueHtml = ref("");
// // 模拟 ajax 异步获取内容 // // 模拟 ajax 异步获取内容
onMounted(() => { // onMounted(() => {
setTimeout(() => { // setTimeout(() => {
// valueHtml.value = "<p>模拟 Ajax 异步设置内容</p>"; // // valueHtml.value = "<p>模拟 Ajax 异步设置内容</p>";
console.log("toolbar222222222222222"); // console.log(editorRef.value);
console.log(editorRef.value); // // const toolbar = DomEditor.getToolbar(editorRef.value);
// const toolbar = DomEditor.getToolbar(editorRef.value); // // const menu = editorRef.value.getAllMenuKeys();
// const menu = editorRef.value.getAllMenuKeys(); // // const bar = toolbar.getConfig().toolbarKeys;
// const bar = toolbar.getConfig().toolbarKeys; // // console.log(menu);
// console.log(menu); // // console.log(bar);
// console.log(bar); // }, 3500);
}, 3500); // });
});
const toolbarConfig = { const toolbarConfig = {
excludeKeys: ["insertVideo", "insertImage"], excludeKeys: ["insertVideo", "insertImage"],
}; };
@@ -478,7 +481,7 @@ export default defineComponent({
formData.append("file", file); formData.append("file", file);
fileUp(formData).then((res) => { fileUp(formData).then((res) => {
if (res.data.code === 200) { if (res.data.code === 200) {
// 最后插入图片 // 最后插入图片 url alt href
insertFn(res.data.data, file.name, res.data.data); insertFn(res.data.data, file.name, res.data.data);
} }
}); });
@@ -487,11 +490,15 @@ export default defineComponent({
const handleCreated = (editor) => { const handleCreated = (editor) => {
editorRef.value = editor; // 记录 editor 实例,重要! editorRef.value = editor; // 记录 editor 实例,重要!
}; };
// const handleDestory = () => {
// const editor = editorRef.value;
// if (editor == null) return;
// editor.destroy();
// };
// 组件销毁时,也及时销毁编辑器 // 组件销毁时,也及时销毁编辑器
onBeforeUnmount(() => { onUnmounted(() => {
const editor = editorRef.value; console.log("组件销毁时,也及时销毁编辑器");
if (editor == null) return; // handleDestory();
editor.destroy();
}); });
// 富文本 eeeeeeeeeeeeee // 富文本 eeeeeeeeeeeeee
@@ -620,7 +627,9 @@ export default defineComponent({
if (param === "review") { if (param === "review") {
//新建时点击审核按钮 //新建时点击审核按钮
submitReview(res.data.data.offcourseId); submitReview(res.data.data.offcourseId);
} else visibleClose(); } else {
visibleClose();
}
} }
}); });
}; };
@@ -647,16 +656,16 @@ export default defineComponent({
type: 2, type: 2,
pageNo: 1, pageNo: 1,
pageSize: 1, pageSize: 1,
} };
api2.auditList(obj).then((res)=>{ const res = await api2.auditList(obj).then((res) => {
if (res.data.code === 200) return res.data.data;
if(res.data.data.rows &&res.data.data.rows.length > 0){ });
state.auditDescription = res.data.data.rows[0].description?res.data.data.rows[0].description :"-"; if (res.rows && res.rows.length > 0) {
state.auditDescription = res.rows[0].description
? res.rows[0].description
: "-";
console.log("state.auditDescription", state.auditDescription); console.log("state.auditDescription", state.auditDescription);
} }
})
} }
state.qdms_inputV1 = item.name; state.qdms_inputV1 = item.name;
@@ -670,7 +679,6 @@ export default defineComponent({
state.member = { value: item.teacherId, name: item.teacher }; state.member = { value: item.teacherId, name: item.teacher };
valueHtml.value = item.outline; valueHtml.value = item.outline;
state.attach = item.attach; state.attach = item.attach;
state.ft_hs = true;
}; };
const handleTagChange = () => { const handleTagChange = () => {
@@ -720,15 +728,15 @@ export default defineComponent({
visibleClose, visibleClose,
handleTagChange, handleTagChange,
handleTagClose, handleTagClose,
handleCreated,
handlePush, handlePush,
submitReview,
reviewClick, reviewClick,
editorRef, editorRef,
valueHtml, valueHtml,
mode: "simple", // 或 'simple' mode: "simple", // 或 'simple'
toolbarConfig, toolbarConfig,
editorConfig, editorConfig,
handleCreated,
}; };
}, },
}); });

View File

@@ -125,7 +125,8 @@
</div> </div>
<div class="left">审核意见</div> <div class="left">审核意见</div>
<div class="rig"> <div class="rig">
<a-textarea v-model:value="valueSugg" :rows="4" /> <a-textarea v-model:value="valueSugg" :rows="4" show-count
:maxlength="20"/>
</div> </div>
</div> </div>
</div> </div>