guojy 1 year ago
parent
commit
b7252369f5
5 changed files with 87 additions and 24 deletions
  1. 45 6
      src/course/courseManage/create.vue
  2. 2 17
      src/store/modules/user.js
  3. 17 0
      src/utils/auth.js
  4. 5 0
      src/utils/axiosKc.js
  5. 18 1
      src/views/login.vue

+ 45 - 6
src/course/courseManage/create.vue

@@ -9,7 +9,25 @@
         <el-input :maxlength="30"  show-word-limit v-model.trim="courseDeail.name" style="width: 40%" placeholder="输入课程名称,最多30字符"></el-input>
       </el-form-item>
       <el-form-item label="预览图:" prop="thumb">
-        <div style="display: flex;">
+        <uploadOss
+          :headers="$xtoken"
+          :action="$action"
+          :limit="1"
+          list_type="picture-card"
+          :accept="$acceptImg"
+          :multiple="true"
+          ref="clearPicture"
+          coursePath="course"
+          :show-file-list="true"
+          :file-list="courseDeail.thumb"
+          :on-success="handleFilesSuccess2"
+          :on-preview="onFilePreView"
+          :before-upload="beforeUpload"
+          :on-remove="onFileRemove2"
+        >
+          <i class="el-icon-plus"></i>
+        </uploadOss>
+        <!-- <div style="display: flex;">
           <div style="cursor: pointer;margin-right: 10px;" @click="showApm(courseDeail.thumb)">
             <userImage
             v-if="courseDeail.thumb"
@@ -23,7 +41,7 @@
           <div class="cursor"  @click="showSelectImg(1)">
             <div><i class="el-icon-plus"></i></div>
           </div>
-        </div>
+        </div> -->
       </el-form-item>
       <el-form-item label="价格:" prop="price">
         <el-input-number
@@ -135,7 +153,7 @@ export default {
       courseDeail: {
         name: "",
         price: 0,
-        thumb: "",
+        thumb: [],
         enable: true,
         images: [],
         sections: [],
@@ -152,7 +170,8 @@ export default {
             { type:'number',min: 1, message: '价格至少为1', trigger: 'blur' }
           ],
           thumb: [
-            { required: true, message: '请选择预览图', trigger: 'change' }
+            { required: true, message: '请选择预览图', trigger: 'change' },
+            {type:'array',trigger:'change'}
           ],
           images: [
             { required: true, message: '请选择介绍图', trigger: 'change' },
@@ -198,6 +217,17 @@ export default {
       });
       this.courseDeail.images = fileListData
     },
+    // 预览图删除
+    onFileRemove2(file, fileList) {
+      this.courseDeail.thumb = fileList
+    },
+    // 预览图上传
+    handleFilesSuccess2(response, file, fileList) {
+      let fileListData = fileList.filter(e => {
+        return e.url;
+      });
+      this.courseDeail.thumb = fileListData
+    },
     //章节信息校验
     validateURL() {
       let result = false;
@@ -224,6 +254,11 @@ export default {
         arr.push({name:item,url:item})
       })
       data.images = arr
+      let arr2 = []
+      data.thumb.split(',').forEach(item=>{
+        arr2.push({name:item,url:item})
+      })
+      data.thumb = arr2
       return data;
     },
     //预览图上传成功回调
@@ -261,6 +296,10 @@ export default {
         return item.url
       })
       data.images = arr.join(',')
+      let arr2 = data.thumb.map(item=>{
+        return item.url
+      })
+      data.thumb = arr2.join(',')
       return data;
     },
     // 添加课程
@@ -293,7 +332,7 @@ export default {
       if (
         !this.courseDeail.name == "" &&
         this.courseDeail.images.length &&
-        !this.courseDeail.thumb == "" &&
+        this.courseDeail.thumb.length &&
         this.courseDeail.price &&
         this.courseDeail.price !== 0 &&
         this.validateURL()
@@ -365,7 +404,7 @@ export default {
         this.courseDeail = {
           name: "",
           price: 0,
-          thumb: "",
+          thumb: [],
           enable: true,
           images: [],
           sections: [],

+ 2 - 17
src/store/modules/user.js

@@ -8,7 +8,7 @@ import {
   get_dept_tree,
   get_account_info
 } from '@/api/login'
-import {removeAllToken,getCache,setCache} from '@/utils/auth'
+import {removeAllToken,getCache,setCache,resetStorage} from '@/utils/auth'
 import moment from 'moment'
  function  returnArr(list,arr){
       list.forEach(item=>{
@@ -255,6 +255,7 @@ const user = {
       const newNav = getCache('newNav')
       const initImg = getCache('initImg')
       const noticeId = getCache('noticeId')
+      // resetStorage();
       localStorage.clear()
       sessionStorage.clear()
       removeAllToken()
@@ -269,22 +270,6 @@ const user = {
       }
       location.reload() // 重新刷新页面会清空VUEX数据,所以不用清空VUEX
     },
-    // 清楚本地缓存
-    resetStorage(){
-      localStorage.removeItem('userInfo')
-      localStorage.removeItem('accountToken')
-      localStorage.removeItem('SET_POINT_TYPES')
-      localStorage.removeItem('SET_EMPLOYEE_MAP_ALL')
-      localStorage.removeItem('site_info')
-      localStorage.removeItem('dept_tree')
-      localStorage.removeItem('account_info')
-      localStorage.removeItem('SET_EMPLOYEE_MAP')
-      localStorage.removeItem('dept_tree_pin')
-      localStorage.removeItem('login_code')
-      localStorage.removeItem('loglevel:webpack-dev-server')
-      sessionStorage.clear()
-      removeAllToken()
-    }
   }
 }
 

+ 17 - 0
src/utils/auth.js

@@ -67,6 +67,23 @@ export function generateUUID() {
   return uuid;
 };
 
+// 清楚本地缓存
+export function resetStorage(){
+  localStorage.removeItem('userInfo')
+  localStorage.removeItem('accountToken')
+  localStorage.removeItem('SET_POINT_TYPES')
+  localStorage.removeItem('SET_EMPLOYEE_MAP_ALL')
+  localStorage.removeItem('site_info')
+  localStorage.removeItem('dept_tree')
+  localStorage.removeItem('account_info')
+  localStorage.removeItem('SET_EMPLOYEE_MAP')
+  localStorage.removeItem('dept_tree_pin')
+  localStorage.removeItem('login_code')
+  localStorage.removeItem('loglevel:webpack-dev-server')
+  sessionStorage.clear()
+  removeAllToken()
+}
+
 //将部门链接在一起
 export function returnDeptName(arr) {
   let data = arr.map(item => {

+ 5 - 0
src/utils/axiosKc.js

@@ -5,6 +5,7 @@ import {
 } from 'element-ui'
 import store from '@/store'
 import Router from '@/router'
+import {  getCourseId } from '@/utils/auth'
 import {
   getLocal,
   removeAllToken
@@ -112,6 +113,10 @@ service.interceptors.response.use(
 var CancelToken = axios.CancelToken // 中断请求
 Vue.$axiosUserRequestList = []
 export default (type, url, data, versions, Content_Type, transform,isToken) => {
+  if(!getCourseId()){
+    console.log('同浏览器下公道云8.0PC退出登录导致课程营销系统报错:系统异常')
+    // return false
+  }
   var Accept, Token, ContentType, transformRequest = ''
   switch (versions) {
     case '':

+ 18 - 1
src/views/login.vue

@@ -106,7 +106,7 @@
 <script>
 import pastDue from '@/components/pastDue.vue';
 import QRCode from 'qrcodejs2';
-import { setToken, getUser, getPasw, setUser, setPasw } from '@/utils/auth';
+import { setToken, getUser, getPasw, setUser, setPasw ,removeAllToken} from '@/utils/auth';
 import { constants } from 'fs';
 import { timestamps } from '@/utils/index';
 import { validateTel } from '@/utils/validate';
@@ -312,6 +312,7 @@ export default {
       const newNav = this.$getCache('newNav');
       const initImg = this.$getCache('initImg');
       const noticeId = this.$getCache('noticeId');
+      // this.resetStorage()
       localStorage.clear();
       sessionStorage.clear();
       if (newNav) {
@@ -323,6 +324,22 @@ export default {
       if (noticeId) {
         this.$setCache('noticeId', noticeId);
       }
+    },
+    // 清楚本地缓存
+    resetStorage(){
+      localStorage.removeItem('userInfo')
+      localStorage.removeItem('accountToken')
+      localStorage.removeItem('SET_POINT_TYPES')
+      localStorage.removeItem('SET_EMPLOYEE_MAP_ALL')
+      localStorage.removeItem('site_info')
+      localStorage.removeItem('dept_tree')
+      localStorage.removeItem('account_info')
+      localStorage.removeItem('SET_EMPLOYEE_MAP')
+      localStorage.removeItem('dept_tree_pin')
+      localStorage.removeItem('login_code')
+      localStorage.removeItem('loglevel:webpack-dev-server')
+      sessionStorage.clear()
+      removeAllToken()
     }
   },
   watch: {