|  | @@ -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>
 |