Преглед изворни кода

fix: 修复前端保存功能,重新编写store中的diff函数

ChenYangfan пре 6 година
родитељ
комит
b2262ebc11

+ 0 - 2
src/components/teacher/SlideListItem.vue

@@ -13,7 +13,6 @@
 
 <script>
 import stateMap from '@/utils/state-chinese-map'
-import { INIT_BY_STATE } from '../../store/types/editor-types'
 export default {
   props: ['slide'],
   data() {
@@ -23,7 +22,6 @@ export default {
   },
   methods: {
     handleClick() {
-      this.$store.commit(INIT_BY_STATE, this.slide)
       this.$router.push('/editor/' + this.slide.id)
     }
   }

+ 1 - 1
src/config/server-info.js

@@ -1,5 +1,5 @@
 // const host = 'http://106.14.178.184:8080/seec_helper'
-const host = 'http://localhost:18080/'
+const host = 'http://localhost:18080'
 
 const slideUrl = host + '/api/slide'
 

+ 8 - 6
src/server/slide.js

@@ -3,16 +3,16 @@ import {
 } from '@/config/server-info.js'
 import axios from 'axios'
 
-export function getSlide(id) {
-  return axios.get(useSlideServer(id)).then(res => {
+export function teacherGetSlideById(id) {
+  return axios.get(useSlideServer('teacher/' + id)).then(res => {
     if (res.data.code === 200) {
       return res.data.data
     }
   })
 }
 
-export function getRecentSlides() {
-  return axios.get(useSlideServer(), {
+export function teacherGetRecentSlides() {
+  return axios.get(useSlideServer('teacher'), {
     params: {
       sort: 'updateTime,desc'
     }
@@ -30,7 +30,8 @@ export function createSlide(courseId, name) {
     items: [],
     state: 'DRAFT'
   }
-  return axios.post(useSlideServer('create'), data).then(res => {
+  return axios.post(useSlideServer(), data).then(res => {
+    console.log(res.data)
     if (res.data.code === 200) {
       return res.data.data
     } else {
@@ -44,7 +45,8 @@ export function updateSlide(slideInfo, items) {
     ...slideInfo,
     items: items
   }
-  return axios.post(useSlideServer('update'), data).then(res => {
+  console.log(data)
+  return axios.put(useSlideServer(), data).then(res => {
     if (res.data.code === 200) {
       return res.data.data
     } else {

+ 16 - 3
src/store/modules/editor.js

@@ -22,6 +22,7 @@ export default {
 
   mutations: {
     [INIT_BY_STATE](state, payload) {
+      console.log(payload)
       state.items = [...payload.items]
       state.slideInfo = {
         ...payload
@@ -125,9 +126,21 @@ export default {
       state.focus = null
     },
     [DIFF](state, payload) {
-      // console.log(
-      //   state.items.filter(item => item.id)
-      // )
+      const getIdByFrontendId = frontendId => {
+        const item = payload.items.filter(item => item.frontendId === frontendId)[0]
+        return item.id
+      }
+      state.items = [...state.items.map(item => {
+        if (!item.id) {
+          return {
+            ...item,
+            id: getIdByFrontendId(item.frontendId)
+          }
+        } else {
+          return item
+        }
+      })]
+      console.log(state.items)
     }
   }
 }

+ 3 - 2
src/views/editor/EditorView.vue

@@ -7,7 +7,7 @@
 
 <script>
 import EditorVue from '../../components/editor/Editor.vue'
-import { updateSlide, getSlide } from '../../server/slide'
+import { updateSlide, teacherGetSlideById } from '../../server/slide'
 import { DIFF, INIT_BY_STATE } from '../../store/types/editor-types'
 import { mapState } from 'vuex'
 
@@ -19,7 +19,8 @@ export default {
     }
   },
   created() {
-    getSlide(this.slideId).then(res => {
+    teacherGetSlideById(this.slideId).then(res => {
+      console.log(res)
       this.$store.commit(INIT_BY_STATE, res)
     })
   },

+ 0 - 2
src/views/teacher/tabs/AddTab.vue

@@ -25,7 +25,6 @@
 <script>
 import { getTeacherCourse } from '@/server/course'
 import { createSlide } from '@/server/slide'
-import { INIT_BY_DEFAULT } from '../../../store/types/editor-types'
 export default {
   data() {
     return {
@@ -42,7 +41,6 @@ export default {
   methods: {
     handleSubmit() {
       createSlide(this.selectedCourseId, this.userInput).then(res => {
-        this.$store.commit(INIT_BY_DEFAULT, res)
         this.$router.push('/editor/' + res.id)
       })
     }

+ 2 - 2
src/views/teacher/tabs/HomeTab.vue

@@ -25,7 +25,7 @@
 
 <script>
 import SlideListItemVue from '@/components/teacher/SlideListItem.vue'
-import { getRecentSlides } from '../../../server/slide'
+import { teacherGetRecentSlides } from '../../../server/slide'
 
 export default {
   data() {
@@ -34,7 +34,7 @@ export default {
     }
   },
   mounted() {
-    getRecentSlides().then(res => {
+    teacherGetRecentSlides().then(res => {
       this.recentSlides = res
     })
   },

+ 2 - 1
src/views/teacher/tabs/SearchTab.vue

@@ -1,5 +1,6 @@
 <template>
   <div class="tab-wrapper">
+    <div class="title">搜索</div>
     <search-bar-vue v-model="searchKey"></search-bar-vue>
     <div v-if="!searchKey" class="tip">
       请输入关键字查询
@@ -28,6 +29,6 @@ export default {
   display: flex;
   align-items: center;
   justify-content: center;
-  height: 300px;
+  height: 200px;
 }
 </style>