feat:合并

This commit is contained in:
lixg
2023-02-24 20:34:56 +08:00
3 changed files with 176 additions and 195 deletions

View File

@@ -0,0 +1,70 @@
<template>
<a-modal
:visible="true"
:footer="null"
:closable="false"
wrapClassName="DelModal"
style="margin-top: 400px"
:zIndex="9999"
@cancel="close"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="del-icons">
<img :src="types[type]" alt=""/>
</div>
<span>提示</span>
</div>
<div class="body">
<div><span>{{ content }}</span></div>
</div>
<div class="del_btnbox">
<div class="del_btn btn1" @click="close">
<div class="btnText">取消</div>
</div>
<div class="del_btn btn2" @click="handleConfirm">
<div class="btnText">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
</template>
<script setup>
import notide from '@/assets/images/coursewareManage/notice.png'
import infoPng from '@/assets/images/coursewareManage/QR.png'
import {defineProps, ref} from "vue";
const props = defineProps({
close: {
type: Function,
default: () => ({})
},
ok: {
type: Function,
default: () => ({})
},
content: String,
title: {
type: String,
default: '提示'
},
type: {
type: Number,
default: 1
}
})
const types = {
1: infoPng,
2: notide
}
const type = ref(1)
function handleConfirm() {
props.ok()
props.close()
}
</script>

14
src/utils/dialog.js Normal file
View File

@@ -0,0 +1,14 @@
import { createApp } from 'vue'
import CommonAlert from "@/components/common/CommonAlert";
import Antd from "ant-design-vue";
function mountContent (option = {}) {
const dom = document.createElement('div')
document.body.appendChild(dom)
const app = createApp(CommonAlert, {
close: () => { app.unmount(dom); document.body.removeChild(dom) },
...option
})
app.use(Antd).mount(dom)
}
export default mountContent

View File

@@ -315,96 +315,36 @@
:pagination="false" :pagination="false"
:scroll="{ x: 'max-content' }" :scroll="{ x: 'max-content' }"
> >
<template #operation="{ record }"> <template #operation="{ text,record,index }">
<a-space> <a-space>
<a-button <a-button v-if="record.auditStatus===2 && checkPer(record.permissions)"
v-if="record.auditStatus === 2 && checkPer(record.permissions)" @click="() => handlePush(text,index)" type="link">发布
@click="() => handlePush(record, String(record.courseform))"
type="link"
>发布
</a-button> </a-button>
<a-button <a-button v-if="record.auditStatus===0 && checkPer(record.permissions)"
v-if="record.auditStatus === 0 && checkPer(record.permissions)" @click="() => handleSubmit(text,index)" type="link">提交审核
@click="() => handleSubmit(record, String(record.courseform))"
type="link"
>提交审核
</a-button> </a-button>
<a-button <a-button v-if="(record.auditStatus===0 || record.auditStatus===-1) && checkPer(record.permissions)"
v-if=" @click="() => handleEdit(record, String(record.courseform))" type="link">编辑
(record.auditStatus === 0 || record.auditStatus === -1) &&
checkPer(record.permissions)
"
@click="() => handleEdit(record, String(record.courseform))"
type="link"
>编辑
</a-button> </a-button>
<a-button v-if="(record.auditStatus===2 || record.auditStatus===3) && checkPer(record.permissions)"
<a-button @click="() => handleStart(record, String(record.courseform))" type="link">开课
v-if="
(record.auditStatus === 2 || record.auditStatus === 3) &&
checkPer(record.permissions)
"
@click="() => handleStart(record, String(record.courseform))"
type="link"
>开课
</a-button> </a-button>
<a-button <a-button @click="() => handleLook(record, String(record.courseform))" type="link">查看
@click="() => handleLook(record, String(record.courseform))"
type="link"
>查看
</a-button> </a-button>
<a-button <a-button v-if="(record.auditStatus===2 || record.auditStatus===3) && checkPer(record.permissions)"
v-if=" @click="() => handleGuan22(record, String(record.courseform))" type="link">管理
(record.auditStatus === 2 || record.auditStatus === 3) &&
checkPer(record.permissions)
"
@click="() => handleGuan22(record, String(record.courseform))"
type="link"
>管理
</a-button> </a-button>
<DropDown v-if="checkPer(record.permissions)" value="授权"> <DropDown v-if="checkPer(record.permissions)" value="授权">
<OwnerTableModelStudent <OwnerTableModelStudent :types="[10,11,12]" :id="record.offcourseId">权限名单</OwnerTableModelStudent>
:types="[10, 11, 12]" <CommonStudent :type="10" :id="record.offcourseId" title="查看权">查看权</CommonStudent>
:id="record.offcourseId" <CommonStudent :type="11" :id="record.offcourseId" title="管理权">管理权</CommonStudent>
>权限名单</OwnerTableModelStudent
>
<CommonStudent :type="10" :id="record.offcourseId" title="查看权"
>查看权</CommonStudent
>
<CommonStudent :type="11" :id="record.offcourseId" title="管理权"
>管理权</CommonStudent
>
</DropDown> </DropDown>
<DropDown v-if="checkPer(record.permissions)" value="更多"> <DropDown v-if="checkPer(record.permissions)" value="更多">
<a-button <a-button @click="() => handleCopy(text)" type="link">复制</a-button>
@click="() => handleCopy(record, String(record.courseform))" <a-button v-if="(record.auditStatus===3 || record.auditStatus===2) && record.status && checkPer(record.permissions)" @click="() => handleRejectExit(text, index ,record)" type="link">撤回</a-button>
type="link" <a-button v-if="record.auditStatus===3 && record.status && checkPer(record.permissions)" @click="() => handleStop(text, index)" type="link">停用</a-button>
>复制</a-button <a-button v-if="record.auditStatus===3 && !record.status && checkPer(record.permissions)" @click="() => handleOpen(text, index)" type="link">启用</a-button>
> <a-button @click="() => handleDelete(text, index)" type="link" danger>删除
<a-button
@click="
() => handleRejectExit(record, String(record.courseform))
"
type="link"
>撤回</a-button
>
<a-button
v-if="record.status"
@click="() => handleStop(record, String(record.courseform))"
type="link"
>停用</a-button
>
<a-button
v-else
@click="() => handleOpen(record, String(record.courseform))"
type="link"
>启用</a-button
>
<a-button
@click="() => handleDelete(record, String(record.courseform))"
type="link"
danger
>删除
</a-button> </a-button>
</DropDown> </DropDown>
</a-space> </a-space>
@@ -1665,6 +1605,7 @@ import NameInput from "../../components/project/NameInput";
import ProjPowerList from "../../components/drawers/ProjPowerList"; import ProjPowerList from "../../components/drawers/ProjPowerList";
import ProjCheckShip from "../../components/drawers/ProjCheckPower"; import ProjCheckShip from "../../components/drawers/ProjCheckPower";
import AssessmentList from "../../components/drawers/AssessmentList.vue"; import AssessmentList from "../../components/drawers/AssessmentList.vue";
import dialog from "@/utils/dialog";
import { import {
list, list,
detail, detail,
@@ -2290,8 +2231,8 @@ export default defineComponent({
dataIndex: "publishTime", dataIndex: "publishTime",
key: "10", key: "10",
align: "center", align: "center",
customRender: ({ text, auditStatus }) => { customRender: ({text, auditStatus}) => {
return auditStatus == 3 ? text || "-" : "-"; return auditStatus == 3 ? (text || '-') : "-";
}, },
}, },
{ {
@@ -2300,14 +2241,7 @@ export default defineComponent({
key: "status", key: "status",
dataIndex: "status", dataIndex: "status",
align: "center", align: "center",
customRender: ({ record }) => { customRender: ({record}) => (record.auditStatus === 3 ? (record.status?'启用':'停用'): '-')
switch (String(record.status)) {
case "0":
return "停用";
case "1":
return "启用";
}
},
}, },
{ {
title: "操作", title: "操作",
@@ -2316,7 +2250,7 @@ export default defineComponent({
key: "id", key: "id",
fixed: "right", fixed: "right",
align: "right", align: "right",
slots: { customRender: "operation" }, slots: {customRender: 'operation'}
}, },
], ],
//新加 //新加
@@ -2929,29 +2863,6 @@ export default defineComponent({
state.viewpowervisible = true; state.viewpowervisible = true;
}; };
// console.log('12344', sysTypeOptions)
// 处理数据字典
// function formateDictT(data) {
// for(let i=0;i<data.length;i++){
// data[i].title = data[i].dictName;
// data[i].value = data[i].dictCode;
// if(data[i].children.length!==0){
// for(let j=0;j<data[i].children.length;j++){
// data[i].children[j].title = data[i].children[j].dictName;
// data[i].children[j].value = data[i].children[j].dictCode;
// if(data[i].children[j].children.length!==0){
// for(let k=0; k<data[i].children[j].children.length; k++) {
// data[i].children[j].children[k].title = data[i].children[j].children[k].dictName;
// data[i].children[j].children[k].value = data[i].children[j].children[k].dictCode;
// }
// }
// }
// }
// }
// return data;
// }
// 富文本 sssssssssssssss // 富文本 sssssssssssssss
// 编辑器实例,必须用 shallowRef // 编辑器实例,必须用 shallowRef
const editorRef = shallowRef(); const editorRef = shallowRef();
@@ -2959,16 +2870,7 @@ export default defineComponent({
const valueHtml = ref(""); const valueHtml = ref("");
// // 模拟 ajax 异步获取内容 // // 模拟 ajax 异步获取内容
onMounted(() => { onMounted(() => {
setTimeout(() => {
// valueHtml.value = "<p>模拟 Ajax 异步设置内容</p>";
console.log("toolbar222222222222222");
console.log(editorRef.value);
// const toolbar = DomEditor.getToolbar(editorRef.value);
// const menu = editorRef.value.getAllMenuKeys();
// const bar = toolbar.getConfig().toolbarKeys;
// console.log(menu);
// console.log(bar);
}, 3500);
}); });
const toolbarConfig = { const toolbarConfig = {
@@ -3913,17 +3815,7 @@ export default defineComponent({
//是否允许未报名的签到:1是0否 //是否允许未报名的签到:1是0否
state.xjkkradioV1 = 0; state.xjkkradioV1 = 0;
} }
/* state.member = {value: item.teacherId, name: item.teacher};
if (item.signWordFlag === 1) {
//签到是否需要口令:1是0否
state.xjkkradioV1 = 1;
}
if (item.signFlag === 0 && item.signWordFlag === 0) {
state.xjkkradioV1 = "";
}
*/
state.member = { value: item.teacherId, name: item.teacher };
state.cstm_hs = true; state.cstm_hs = true;
state.kk_eidt = true; state.kk_eidt = true;
}; };
@@ -4008,13 +3900,14 @@ export default defineComponent({
state.graduate_hs = false; state.graduate_hs = false;
state.addLoading = false; state.addLoading = false;
}; };
const handleRejectExit = (itm, type) => { const handleRejectExit = (id, index,record) => {
if (type === "1") { dialog({
return; content: '确定撤回吗?'
} , ok: () => {
state.offcourseId = itm.id; message.success("撤回成功");
state.delete_hs = true; record.auditStatus === 3 ? (state.tableData1[index].auditStatus = 2) : (state.tableData1[index].auditStatus = 0)
state.back_hs = true; handle({offcourseId: id, type: 0})
}})
}; };
const handleJoin = async () => { const handleJoin = async () => {
@@ -4124,7 +4017,9 @@ export default defineComponent({
} }
}); });
} else if (state.offcourseId) { } else if (state.offcourseId) {
handle({ offcourseId: state.offcourseId, type: -1 }).then((res) => { handle({
offcourseId: state.offcourseId, type: -1,
}).then((res) => {
if (res.data.code === 200) { if (res.data.code === 200) {
message.destroy(); message.destroy();
message.success("删除成功"); message.success("删除成功");
@@ -4424,41 +4319,46 @@ export default defineComponent({
// // console.log(item); // // console.log(item);
// // }); // // });
// }; // };
const handleDelete = (item, type) => { const handleDelete = (id) => {
console.log(item); dialog({
if (type === "1") { content: '确定删除该课程吗?'
return; , ok: async () => {
} message.success("删除成功");
state.offcourseId = item.id; state.tableLoading = true
await handle({offcourseId: id,type:-1})
getTableDate();
}})
};
const handleCopy = async (id) => {
dialog({
content: '确定复制该课程吗?'
, ok: async () => {
message.success("复制成功");
state.tableLoading = true
await copyCourse({offcourseId: id})
getTableDate();
}})
};
const handleSubmit = (id, index) => {
dialog({
content: '确定提交审核吗?'
, ok: () => {
message.success("提交成功");
state.tableData1[index].auditStatus = 1
handle({offcourseId: id, type: 1})
}})
};
const handlePush = (id,index) => {
dialog({
content: '确定发布该课程吗?'
, ok: () => {
message.success("发布成功");
state.tableData1[index].auditStatus = 3
handle({offcourseId: id, type: 3})
}})
};
state.delete_hs = true;
state.del_hs = true;
};
const handleCopy = async (itm, type) => {
if (type === "1") {
return;
}
state.offcourseId = itm.id;
state.delete_hs = true;
state.copy_hs = true;
};
const handleSubmit = async (itm, type) => {
if (type === "1") {
return;
}
state.offcourseId = itm.id;
state.submit_hs = true;
state.delete_hs = true;
};
const handlePush = async (itm, type) => {
if (type === "1") {
return;
}
state.offcourseId = itm.id;
state.push_hs = true;
state.delete_hs = true;
};
const handleCopyP = async (itm) => { const handleCopyP = async (itm) => {
console.log(itm); console.log(itm);
state.offcourseId = itm.offcourseId; state.offcourseId = itm.offcourseId;
@@ -4467,23 +4367,23 @@ export default defineComponent({
state.delete_hs = true; state.delete_hs = true;
state.copy_hs = true; state.copy_hs = true;
}; };
const handleStop = (itm, type) => { const handleStop = (id, index) => {
console.log(itm); dialog({
if (type === "1") { content: '确定停用该课程吗?'
return; , ok: () => {
} message.success("停用成功");
state.temp = itm; state.tableData1[index].status = 0
state.offcourseId = itm.id; handle({offcourseId: id, type: -2})
state.delete_hs = true; }})
state.nouse_hs = true;
}; };
const handleOpen = async (itm, type) => { const handleOpen = async (id, index) => {
if (type === "1") { dialog({
return; content: '确定起用该课程吗?'
} , ok: () => {
state.offcourseId = itm.id; message.success("起用成功");
state.useCourse = true; state.tableData1[index].status = 1
state.delete_hs = true; handle({offcourseId: id, type: 2})
}})
}; };
const handleStart = (item, type) => { const handleStart = (item, type) => {
console.log(item); console.log(item);
@@ -4962,18 +4862,15 @@ export default defineComponent({
handelChangePageTea2, handelChangePageTea2,
submitReview, submitReview,
reviewClick, reviewClick,
showPrower, showPrower,
showOwnPrower, showOwnPrower,
showViewPrower, showViewPrower,
showManagePrower, showManagePrower,
closeOnlineCoursevisible, closeOnlineCoursevisible,
handlelookMs, handlelookMs,
handleLook, handleLook,
logW, logW,
logT, logT,
qrcodeVisible, qrcodeVisible,
}; };
}, },