|
@@ -49,6 +49,7 @@ import { eventGlobal } from '/src/utils';
|
|
|
import TheMessageDialog from '/src/components/TheMessageDialog';
|
|
|
import AddItemModel from '../../../model/add-item-model';
|
|
|
import AddOtherSource from '../../../model/add-other-source';
|
|
|
+import deepClone from '/src/helpers/deep-clone';
|
|
|
export default defineComponent({
|
|
|
name: 'courseware-modal',
|
|
|
props: {
|
|
@@ -71,6 +72,13 @@ export default defineComponent({
|
|
|
openFlagEnable: true, // 是否支持修改公开状态
|
|
|
name: '',
|
|
|
openFlag: false,
|
|
|
+ baseCoursewareList: [
|
|
|
+ {
|
|
|
+ name: '',
|
|
|
+ id: null,
|
|
|
+ list: [] as any
|
|
|
+ }
|
|
|
+ ] as any, // 基础数据
|
|
|
coursewareList: [
|
|
|
{
|
|
|
name: '',
|
|
@@ -156,6 +164,7 @@ export default defineComponent({
|
|
|
});
|
|
|
});
|
|
|
forms.coursewareList = temp;
|
|
|
+ forms.baseCoursewareList = deepClone(temp);
|
|
|
} catch (e) {
|
|
|
//
|
|
|
console.log(e);
|
|
@@ -448,18 +457,29 @@ export default defineComponent({
|
|
|
|
|
|
// 当页面离开时
|
|
|
const onPageBeforeLeave = (event: any) => {
|
|
|
- forms.messageCallBack = event;
|
|
|
- forms.messageOperation = {
|
|
|
- visiable: true,
|
|
|
- type: 'pageLive',
|
|
|
- loading: false,
|
|
|
- contentDirection: 'center',
|
|
|
- title: '保存课件',
|
|
|
- content: '当前课件暂未保存,是否保存?',
|
|
|
- cancelButtonText: '不保存',
|
|
|
- confirmButtonText: '保存',
|
|
|
- index: 0
|
|
|
- };
|
|
|
+ const objA = JSON.stringify(forms.coursewareList);
|
|
|
+ const objB = JSON.stringify(forms.baseCoursewareList);
|
|
|
+ if (objA === objB) {
|
|
|
+ if (typeof event === 'function') {
|
|
|
+ event();
|
|
|
+
|
|
|
+ emit('change', { status: false });
|
|
|
+ eventGlobal.emit('teacher-slideshow', false);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ forms.messageCallBack = event;
|
|
|
+ forms.messageOperation = {
|
|
|
+ visiable: true,
|
|
|
+ type: 'pageLive',
|
|
|
+ loading: false,
|
|
|
+ contentDirection: 'center',
|
|
|
+ title: '保存课件',
|
|
|
+ content: '当前课件暂未保存,是否保存?',
|
|
|
+ cancelButtonText: '不保存',
|
|
|
+ confirmButtonText: '保存',
|
|
|
+ index: 0
|
|
|
+ };
|
|
|
+ }
|
|
|
};
|
|
|
onMounted(async () => {
|
|
|
await getList();
|
|
@@ -471,6 +491,7 @@ export default defineComponent({
|
|
|
|
|
|
onUnmounted(() => {
|
|
|
eventGlobal.off('onPrepareAddItem', addItem);
|
|
|
+ eventGlobal.off('pageBeforeLeave', onPageBeforeLeave);
|
|
|
});
|
|
|
|
|
|
// 当列表数据更新时同步缓存数据
|
|
@@ -564,17 +585,24 @@ export default defineComponent({
|
|
|
<NButton
|
|
|
type="error"
|
|
|
onClick={() => {
|
|
|
- forms.messageOperation = {
|
|
|
- visiable: true,
|
|
|
- type: 'save',
|
|
|
- loading: false,
|
|
|
- contentDirection: 'center',
|
|
|
- title: '保存课件',
|
|
|
- content: '当前课件暂未保存,是否保存?',
|
|
|
- cancelButtonText: '不保存',
|
|
|
- confirmButtonText: '保存',
|
|
|
- index: 0
|
|
|
- };
|
|
|
+ const objA = JSON.stringify(forms.coursewareList);
|
|
|
+ const objB = JSON.stringify(forms.baseCoursewareList);
|
|
|
+ if (objA === objB) {
|
|
|
+ emit('change', { status: false });
|
|
|
+ eventGlobal.emit('teacher-slideshow', false);
|
|
|
+ } else {
|
|
|
+ forms.messageOperation = {
|
|
|
+ visiable: true,
|
|
|
+ type: 'save',
|
|
|
+ loading: false,
|
|
|
+ contentDirection: 'center',
|
|
|
+ title: '保存课件',
|
|
|
+ content: '当前课件暂未保存,是否保存?',
|
|
|
+ cancelButtonText: '不保存',
|
|
|
+ confirmButtonText: '保存',
|
|
|
+ index: 0
|
|
|
+ };
|
|
|
+ }
|
|
|
}}>
|
|
|
取消
|
|
|
</NButton>
|
|
@@ -809,7 +837,9 @@ export default defineComponent({
|
|
|
{/* 弹窗查看 */}
|
|
|
<CardPreview
|
|
|
size={
|
|
|
- ['INSTRUMENT', 'THEORY', 'MUSIC_WIKI'].includes(forms.item.type)
|
|
|
+ ['INSTRUMENT', 'THEORY', 'MUSIC_WIKI', 'MUSICIAN'].includes(
|
|
|
+ forms.item.type
|
|
|
+ )
|
|
|
? 'large'
|
|
|
: ''
|
|
|
}
|
|
@@ -917,8 +947,6 @@ export default defineComponent({
|
|
|
} else {
|
|
|
addCoursewareItem({ ...item, index: forms.addOtherIndex });
|
|
|
}
|
|
|
-
|
|
|
- console.log(forms.coursewareList, 'courseware');
|
|
|
}}
|
|
|
/>
|
|
|
</NModal>
|