yjwang 1 день тому
батько
коміт
2a5a2e74c0
45 змінених файлів з 353 додано та 25 видалено
  1. 7 0
      src/components/Editor/wang.vue
  2. 6 0
      src/views/company/components/companyProfit.vue
  3. 6 1
      src/views/components/course/userCourseCatalogDetails.vue
  4. 9 0
      src/views/course/courseFinishTemp/index.vue
  5. 9 0
      src/views/course/courseFinishTempParent/index.vue
  6. 6 0
      src/views/course/userVideo/index.vue
  7. 7 1
      src/views/his/adv/index.vue
  8. 8 0
      src/views/his/appVersion/index.vue
  9. 6 2
      src/views/his/article/index.vue
  10. 7 1
      src/views/his/articleAudit/index.vue
  11. 7 1
      src/views/his/articleCate/index.vue
  12. 6 1
      src/views/his/caseArticle/index.vue
  13. 6 1
      src/views/his/chineseMedicine/index.vue
  14. 7 1
      src/views/his/department/index.vue
  15. 8 0
      src/views/his/doctor/type1.vue
  16. 8 0
      src/views/his/doctor/type2.vue
  17. 10 1
      src/views/his/doctorArticle/index.vue
  18. 7 1
      src/views/his/doctorArticleCate/index.vue
  19. 6 1
      src/views/his/famousPrescribe/index.vue
  20. 9 0
      src/views/his/homeArticle/index.vue
  21. 6 0
      src/views/his/homeCategory/index.vue
  22. 8 2
      src/views/his/hospital/index.vue
  23. 38 4
      src/views/his/integralAfterSales/index.vue
  24. 6 1
      src/views/his/medicatedFood/index.vue
  25. 6 1
      src/views/his/package/index.vue
  26. 7 1
      src/views/his/packageCate/index.vue
  27. 7 0
      src/views/his/store/index.vue
  28. 8 1
      src/views/his/storeProduct/index.vue
  29. 6 0
      src/views/his/storeProductCategory/index.vue
  30. 7 1
      src/views/his/testTemp/index.vue
  31. 6 1
      src/views/his/vessel/index.vue
  32. 9 0
      src/views/hisStore/adv/index.vue
  33. 7 0
      src/views/hisStore/store/audit.vue
  34. 16 0
      src/views/hisStore/store/index.vue
  35. 7 1
      src/views/hospital/hospital/index.vue
  36. 6 0
      src/views/qw/friendMaterial/index.vue
  37. 7 0
      src/views/qw/sopTemp/addSopTemp.vue
  38. 8 0
      src/views/qw/sopTemp/addSopTempOld.vue
  39. 7 0
      src/views/qw/sopTemp/updateSopTemp.vue
  40. 7 0
      src/views/qw/sopTemp/updateSopTemp2.vue
  41. 8 0
      src/views/qw/sopTemp/updateSopTempOld.vue
  42. 7 0
      src/views/system/config/config.vue
  43. 6 0
      src/views/system/config/config2.vue
  44. 1 0
      src/views/system/pointsRule/index.vue
  45. 7 0
      src/views/user/complaint/index.vue

+ 7 - 0
src/components/Editor/wang.vue

@@ -7,6 +7,7 @@
 <script>
 import E from 'wangeditor'
 import { safeHtml } from '@/utils/safeHtml'
+import { getToken } from '@/utils/auth'
 export default {
   name: 'editoritem',
   data() {
@@ -33,6 +34,10 @@ export default {
         this.editor.config.uploadImgAccept = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp']
         this.editor.config.uploadFileName = 'fileName'
         this.editor.config.zIndex = 1
+        // 默认上传头(customUploadImg 内也会再带一次,防止拦截器未生效)
+        this.editor.config.uploadImgHeaders = {
+          Authorization: 'Bearer ' + getToken()
+        }
 
         // 关键配置:允许多选,串行上传
         this.editor.config.uploadImgMultiple = true;
@@ -59,6 +64,8 @@ export default {
 
             const xhr = new XMLHttpRequest();
             xhr.open('POST', that.uploadUrl);
+            // el-upload/XHR 不走 axios,需手动带登录 Token
+            xhr.setRequestHeader('Authorization', 'Bearer ' + getToken());
 
             xhr.onload = function () {
               if (xhr.status >= 200 && xhr.status < 300) {

+ 6 - 0
src/views/company/components/companyProfit.vue

@@ -115,6 +115,7 @@
               v-model="form.imgUrl"
               class="avatar-uploader"
               :action="uploadUrl"
+              :headers="uploadHeaders"
               :show-file-list="false"
               :on-success="handleSuccess"
               :before-upload="beforeUpload">
@@ -136,6 +137,7 @@
 
 <script>
 import { audit1,audit2,audit3, getCompanyProfit, delCompanyProfit, addCompanyProfit, updateCompanyProfit, exportCompanyProfit } from "@/api/company/companyProfit";
+import { getToken } from "@/utils/auth";
 
 export default {
   name: "profit",
@@ -143,6 +145,8 @@ export default {
     return {
       type:null,
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
        // 弹出层标题
        title: "",
@@ -176,6 +180,8 @@ export default {
         
     },
     beforeUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 1;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 1MB!');

+ 6 - 1
src/views/components/course/userCourseCatalogDetails.vue

@@ -119,7 +119,7 @@
         <!--        </el-form-item>-->
 
         <el-form-item label="视频缩略图" prop="thumbnail">
-          <el-upload v-model="form.thumbnail" class="avatar-uploader" :action="uploadUrl" :show-file-list="false"
+          <el-upload v-model="form.thumbnail" class="avatar-uploader" :action="uploadUrl" :headers="uploadHeaders" :show-file-list="false"
                      :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
             <img v-if="form.thumbnail" :src="form.thumbnail" class="avatar" width="300px">
             <i v-else class="el-icon-plus avatar-uploader-icon"></i>
@@ -332,6 +332,7 @@ import { listVideoResource } from '@/api/course/videoResource';
 import { getByIds } from '@/api/course/courseQuestionBank'
 import CourseWatchComment from "./courseWatchComment.vue";
 import { getCateListByPid, getCatePidList } from '@/api/course/userCourseCategory'
+import { getToken } from "@/utils/auth";
 
 export default {
   name: "userCourseCatalog",
@@ -369,6 +370,8 @@ export default {
       // 是否显示弹出层
       open: false,
       uploadUrl: process.env.VUE_APP_BASE_API + "/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
       typeOptions: [],
       files: [],
@@ -620,6 +623,8 @@ export default {
       }
     },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 5;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 5MB!');

+ 9 - 0
src/views/course/courseFinishTemp/index.vue

@@ -264,6 +264,7 @@
                           v-model="item.fileUrl"
                           class="avatar-uploader"
                           :action="uploadUrl"
+                          :headers="uploadHeaders"
                           :show-file-list="false"
                           :on-success="(res, file) => handleAvatarSuccessFile(res, file, item)"
                           :before-upload="beforeAvatarUploadFile">
@@ -282,6 +283,7 @@
                           v-model="item.videoUrl"
                           class="avatar-uploader"
                           :action="uploadUrl"
+                          :headers="uploadHeaders"
                           :show-file-list="false"
                           :on-success="(res, file) => handleAvatarSuccessVideo(res, file, item)"
                           :before-upload="beforeAvatarUploadVideo">
@@ -364,6 +366,7 @@
                           v-model="item.fileUrl"
                           class="avatar-uploader"
                           :action="uploadUrl"
+                          :headers="uploadHeaders"
                           :show-file-list="false"
                           :on-success="(res, file) => handleAvatarSuccessFile(res, file, item)"
                           :before-upload="beforeAvatarUploadFile">
@@ -382,6 +385,7 @@
                           v-model="item.videoUrl"
                           class="avatar-uploader"
                           :action="uploadUrl"
+                          :headers="uploadHeaders"
                           :show-file-list="false"
                           :on-success="(res, file) => handleAvatarSuccessVideo(res, file, item)"
                           :before-upload="beforeAvatarUploadVideo">
@@ -460,6 +464,7 @@ import {getAllUserlist} from '@/api/company/companyUser'
 import {courseList, videoList} from '@/api/qw/sop'
 import ImageUpload from "@/views/qw/sop/ImageUpload.vue";
 import { getCompanyList } from "@/api/company/company";
+import { getToken } from "@/utils/auth";
 
 export default {
   name: "CourseFinishTemp",
@@ -469,6 +474,8 @@ export default {
       //上传语音的遮罩层
       voiceLoading: false,
       uploadUrl: process.env.VUE_APP_BASE_API + "/common/uploadOSS2",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       uploadUrlByVoice: process.env.VUE_APP_BASE_API + "/common/uploadOSSByHOOKVoice",
       companyUserIds: [],
       userList: [],
@@ -590,6 +597,8 @@ export default {
     },
 
     beforeAvatarUploadFile(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 10;
       if (!isLt1M) {
         this.$message.error('上传大小不能超过 10MB!');

+ 9 - 0
src/views/course/courseFinishTempParent/index.vue

@@ -197,6 +197,7 @@
                           v-model="item.fileUrl"
                           class="avatar-uploader"
                           :action="uploadUrl"
+                          :headers="uploadHeaders"
                           :show-file-list="false"
                           :on-success="(res, file) => handleAvatarSuccessFile(res, file, item)"
                           :before-upload="beforeAvatarUploadFile">
@@ -215,6 +216,7 @@
                           v-model="item.videoUrl"
                           class="avatar-uploader"
                           :action="uploadUrl"
+                          :headers="uploadHeaders"
                           :show-file-list="false"
                           :on-success="(res, file) => handleAvatarSuccessVideo(res, file, item)"
                           :before-upload="beforeAvatarUploadVideo">
@@ -297,6 +299,7 @@
                           v-model="item.fileUrl"
                           class="avatar-uploader"
                           :action="uploadUrl"
+                          :headers="uploadHeaders"
                           :show-file-list="false"
                           :on-success="(res, file) => handleAvatarSuccessFile(res, file, item)"
                           :before-upload="beforeAvatarUploadFile">
@@ -315,6 +318,7 @@
                           v-model="item.videoUrl"
                           class="avatar-uploader"
                           :action="uploadUrl"
+                          :headers="uploadHeaders"
                           :show-file-list="false"
                           :on-success="(res, file) => handleAvatarSuccessVideo(res, file, item)"
                           :before-upload="beforeAvatarUploadVideo">
@@ -386,6 +390,7 @@ import { listCourseFinishTempParent, getCourseFinishTempParent, delCourseFinishT
 import {courseList} from '@/api/qw/sop'
 import ImageUpload from '@/views/qw/sop/ImageUpload.vue'
 import { getUserList } from '@/api/company/companyUser'
+import { getToken } from "@/utils/auth";
 
 
 export default {
@@ -395,6 +400,8 @@ export default {
     return {
       voiceLoading: false,
       uploadUrl: process.env.VUE_APP_BASE_API + "/common/uploadOSS2",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       uploadUrlByVoice: process.env.VUE_APP_BASE_API + "/common/uploadOSSByHOOKVoice",
       // 遮罩层
       loading: true,
@@ -643,6 +650,8 @@ export default {
     },
 
     beforeAvatarUploadFile(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 10;
       if (!isLt1M) {
         this.$message.error('上传大小不能超过 10MB!');

+ 6 - 0
src/views/course/userVideo/index.vue

@@ -272,6 +272,7 @@
             v-model="form.thumbnail"
             class="avatar-uploader"
             :action="uploadUrl"
+            :headers="uploadHeaders"
             :show-file-list="false"
             :on-success="handleAvatarSuccess"
             :before-upload="beforeAvatarUpload">
@@ -393,6 +394,7 @@ import axios from 'axios';
 import { Loading } from 'element-ui';
 import { uploadObject } from '@/utils/cos.js';
 import { uploadToOBS } from '@/utils/obs.js';
+import { getToken } from "@/utils/auth";
 export default {
   name: "UserVideo",
   components: {
@@ -475,6 +477,8 @@ export default {
       videoUrl: "",
       videoAccept:"video/*",
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
       cateOptions:[],
       // 非单个禁用
@@ -777,6 +781,8 @@ export default {
           }
     },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       return new Promise((resolve, reject) => {
         if (file.size / 1024 / 1024 > 3) {
           this.$message.error('上传的图片不能超过3MB');

+ 7 - 1
src/views/his/adv/index.vue

@@ -168,6 +168,7 @@
             v-model="form.imageUrl"
             class="avatar-uploader"
             :action="uploadUrl"
+            :headers="uploadHeaders"
             :show-file-list="false"
             :on-success="handleAvatarSuccess"
             :before-upload="beforeAvatarUpload">
@@ -231,12 +232,15 @@
 import { listAdv, getAdv, delAdv, addAdv, updateAdv, exportAdv } from "@/api/his/adv";
 import Editor from '@/components/Editor/wang';
 import { getPromotionalActiveOption } from '@/api/his/promotionalActive'
+import { getToken } from "@/utils/auth";
 export default {
   name: "Adv",
   components: { Editor },
   data() {
     return {
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
       showOptions: [],
       devOptions: [],
@@ -323,13 +327,15 @@ export default {
     handleAvatarSuccess(res, file) {
       if(res.code==200){
         this.form.imageUrl=res.url;
-        self.$forceUpdate()
+        this.$forceUpdate()
       }
       else{
         this.msgError(res.msg);
       }
     },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 1;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 1MB!');

+ 8 - 0
src/views/his/appVersion/index.vue

@@ -123,6 +123,7 @@
             accept=".apk"
             class="upload-demo"
             :action="uploadUrl"
+            :headers="uploadHeaders"
             :before-upload="beforeUpload"
             :on-success="handleSuccess"
             :on-preview="handlePreview"
@@ -140,6 +141,7 @@
             accept=".zip"
             class="upload-demo"
             :action="uploadUrl"
+            :headers="uploadHeaders"
             :before-upload="beforeUpload"
             :on-success="handleSuccess"
             :on-preview="handlePreview"
@@ -161,6 +163,7 @@
             accept=".apk"
             class="upload-demo"
             :action="uploadUrl"
+            :headers="uploadHeaders"
             :before-upload="beforeUploadBaidu"
             :on-success="handleSuccessBaidu"
             :on-preview="handlePreviewBaidu"
@@ -216,6 +219,7 @@
 </template>
 <script>
 import { listApp, getApp, delApp, addApp, updateApp, exportApp } from "@/api/his/appVersion";
+import { getToken } from "@/utils/auth";
 
 export default {
   name: "App",
@@ -223,6 +227,8 @@ export default {
     return {
       updateConfig: { },
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       // 遮罩层
       loading: true,
       // 导出遮罩层
@@ -306,6 +312,8 @@ export default {
   },
   methods: {
     beforeUpload(file){
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
         this.myloading = this.$loading({
           lock: true,
           text: '上传中',

+ 6 - 2
src/views/his/article/index.vue

@@ -218,6 +218,7 @@
                   v-model="form.imageUrl"
                   class="avatar-uploader"
                   :action="uploadUrl"
+                  :headers="uploadHeaders"
                   :show-file-list="false"
                   :on-success="handleAvatarSuccess"
                   :before-upload="beforeAvatarUpload">
@@ -288,8 +289,9 @@ import { getAllArticleCateList} from "@/api/his/articleCate";
 import Editor from '@/components/Editor/wang';
 import ArticleDetails from '../../components/his/articleDetails.vue';
 import Template from '@/views/his/complaint/template.vue'
+import { getToken } from "@/utils/auth";
 export default {
-  name: "article",
+  name: "HisArticle",
   components: { Template, Editor ,ArticleDetails},
   data() {
     return {
@@ -305,6 +307,8 @@ export default {
               open:false,
             },
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
       cates:[],
       // 遮罩层
@@ -397,7 +401,7 @@ export default {
     handleAvatarSuccess(res, file) {
       if(res.code==200){
         this.form.imageUrl=res.url;
-        self.$forceUpdate()
+        this.$forceUpdate()
       }
       else{
         this.msgError(res.msg);

+ 7 - 1
src/views/his/articleAudit/index.vue

@@ -126,6 +126,7 @@
                   v-model="form.imageUrl"
                   class="avatar-uploader"
                   :action="uploadUrl"
+                  :headers="uploadHeaders"
                   :show-file-list="false"
                   :on-success="handleAvatarSuccess"
                   :before-upload="beforeAvatarUpload"
@@ -213,6 +214,7 @@ import { listArticle, getArticle,articleAudit} from "@/api/his/articleAudit";
 import { getAllArticleCateList} from "@/api/his/articleCate";
 import Editor from '@/components/Editor/wang';
 import ArticleDetails from '../../components/his/articleDetails.vue';
+import { getToken } from "@/utils/auth";
 export default {
   name: "article",
   components: { Editor ,ArticleDetails},
@@ -224,6 +226,8 @@ export default {
               open:false,
             },
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
       cates:[],
       // 遮罩层
@@ -315,13 +319,15 @@ export default {
     handleAvatarSuccess(res, file) {
       if(res.code==200){
         this.form.imageUrl=res.url;
-        self.$forceUpdate()
+        this.$forceUpdate()
       }
       else{
         this.msgError(res.msg);
       }
     },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 1;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 1MB!');

+ 7 - 1
src/views/his/articleCate/index.vue

@@ -133,6 +133,7 @@
             v-model="form.imgUrl"
             class="avatar-uploader"
             :action="uploadUrl"
+            :headers="uploadHeaders"
             :show-file-list="false"
             :on-success="handleAvatarSuccess"
             :before-upload="beforeAvatarUpload">
@@ -164,6 +165,7 @@
 
 <script>
 import { listArticleCate, getArticleCate, delArticleCate, addArticleCate, updateArticleCate, exportArticleCate } from "@/api/his/articleCate";
+import { getToken } from "@/utils/auth";
 
 export default {
   name: "articleCate",
@@ -172,6 +174,8 @@ export default {
       // 遮罩层
       loading: true,
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
       // 导出遮罩层
       exportLoading: false,
@@ -235,13 +239,15 @@ export default {
     handleAvatarSuccess(res, file) {
        if(res.code==200){
          this.form.imgUrl=res.url;
-         self.$forceUpdate()
+         this.$forceUpdate()
        }
        else{
          this.msgError(res.msg);
        }
     },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 1;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 1MB!');

+ 6 - 1
src/views/his/caseArticle/index.vue

@@ -172,6 +172,7 @@
                       v-model="form.imgUrl"
                       class="avatar-uploader"
                       :action="uploadUrl"
+                      :headers="uploadHeaders"
                       :show-file-list="false"
                       :on-success="handleAvatarSuccess"
                       :before-upload="beforeAvatarUpload">
@@ -281,6 +282,8 @@ export default {
               url: process.env.VUE_APP_BASE_API + "/his/caseArticle/importData"
             },
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
       // 遮罩层
       loading: true,
@@ -371,7 +374,7 @@ export default {
     handleAvatarSuccess(res, file) {
         if(res.code==200){
           this.form.imgUrl=res.url;
-          self.$forceUpdate()
+          this.$forceUpdate()
         }
         else{
           this.msgError(res.msg);
@@ -381,6 +384,8 @@ export default {
           this.form.contents=text
         },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 1;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 1MB!');

+ 6 - 1
src/views/his/chineseMedicine/index.vue

@@ -167,6 +167,7 @@
                       v-model="form.imgUrl"
                       class="avatar-uploader"
                       :action="uploadUrl"
+                      :headers="uploadHeaders"
                       :show-file-list="false"
                       :on-success="handleAvatarSuccess"
                       :before-upload="beforeAvatarUpload">
@@ -317,6 +318,8 @@ export default {
               url: process.env.VUE_APP_BASE_API + "/his/chineseMedicine/importData"
             },
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
       // 遮罩层
       loading: true,
@@ -425,7 +428,7 @@ export default {
     handleAvatarSuccess(res, file) {
         if(res.code==200){
           this.form.imgUrl=res.url;
-          self.$forceUpdate()
+          this.$forceUpdate()
         }
         else{
           this.msgError(res.msg);
@@ -435,6 +438,8 @@ export default {
           this.form.contents=text
         },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 1;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 1MB!');

+ 7 - 1
src/views/his/department/index.vue

@@ -157,6 +157,7 @@
             v-model="form.iconUrl"
             class="avatar-uploader"
             :action="uploadUrl"
+            :headers="uploadHeaders"
             :show-file-list="false"
             :on-success="handleAvatarSuccess"
             :before-upload="beforeAvatarUpload">
@@ -199,12 +200,15 @@
 <script>
 import { listDepartment, getDepartment, delDepartment, addDepartment, updateDepartment, exportDepartment } from "@/api/his/department";
 import departmentDetails from '../../components/his/departmentDetails.vue';
+import { getToken } from "@/utils/auth";
 export default {
   name: "Department",
    components: { departmentDetails },
   data() {
     return {
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
    show:{
         title:"科室详情",
@@ -274,13 +278,15 @@ export default {
     handleAvatarSuccess(res, file) {
         if(res.code==200){
           this.form.iconUrl=res.url;
-          self.$forceUpdate()
+          this.$forceUpdate()
         }
         else{
           this.msgError(res.msg);
         }
     },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 1;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 1MB!');

+ 8 - 0
src/views/his/doctor/type1.vue

@@ -461,6 +461,7 @@
                             v-model="form.idCardFrontUrl"
                             class="avatar-uploader"
                             :action="fruploadUrl"
+                            :headers="uploadHeaders"
                             :show-file-list="false"
                             :on-success="frhandleAvatarSuccess"
                             :before-upload="beforeAvatarUpload">
@@ -475,6 +476,7 @@
                               v-model="form.avatar"
                               class="avatar-uploader"
                               :action="avataruploadUrl"
+                              :headers="uploadHeaders"
                               :show-file-list="false"
                               :on-success="avatarhandleAvatarSuccess"
                               :before-upload="beforeAvatarUpload">
@@ -491,6 +493,7 @@
                          v-model="form.idCardBackUrl"
                          class="avatar-uploader"
                          :action="bauploadUrl"
+                         :headers="uploadHeaders"
                          :show-file-list="false"
                          :on-success="bahandleAvatarSuccess"
                          :before-upload="beforeAvatarUpload">
@@ -741,6 +744,7 @@ import doctorDetails from '../../components/his/doctorDetails.vue';
 import { Form } from "element-ui";
 import ImageUpload from '@/components/ImageUpload'
 import { listStore } from "@/api/his/storeProduct";
+import { getToken } from "@/utils/auth";
 export default {
   name: "Doctor",
   components: { doctorDetails,doctorinquiryDetails,ImageUpload },
@@ -756,6 +760,8 @@ export default {
       followDoctorList:[],
       //身份证
       fruploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       bauploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
       //头像
       avataruploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
@@ -1123,6 +1129,8 @@ export default {
             }
     },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
           const isLt1M = file.size / 1024 / 1024 < 1;
           if (!isLt1M) {
             this.$message.error('上传图片大小不能超过 1MB!');

+ 8 - 0
src/views/his/doctor/type2.vue

@@ -379,6 +379,7 @@
                                   v-model="form.idCardFrontUrl"
                                   class="avatar-uploader"
                                   :action="FruploadUrl"
+                                  :headers="uploadHeaders"
                                   :show-file-list="false"
                                   :on-success="FrhandleAvatarSuccess"
                                   :before-upload="beforeAvatarUpload">
@@ -393,6 +394,7 @@
                                     v-model="form.avatar"
                                     class="avatar-uploader"
                                     :action="avataruploadUrl"
+                                    :headers="uploadHeaders"
                                     :show-file-list="false"
                                     :on-success="avatarhandleAvatarSuccess"
                                     :before-upload="beforeAvatarUpload">
@@ -409,6 +411,7 @@
                                   v-model="form.idCardBackUrl"
                                   class="avatar-uploader"
                                   :action="BauploadUrl"
+                                  :headers="uploadHeaders"
                                   :show-file-list="false"
                                   :on-success="BahandleAvatarSuccess"
                                   :before-upload="beforeAvatarUpload">
@@ -548,6 +551,7 @@ import{listAllHospital} from "@/api/his/hospital";
 import {getCitys} from "@/api/store/city";
 import pharmacistDetails from '../../components/his/pharmacistDetails.vue';
 import {listStore} from "@/api/hisStore/store";
+import { getToken } from "@/utils/auth";
 export default {
   name: "pharmacist",
   components: { pharmacistDetails },
@@ -557,6 +561,8 @@ export default {
       signUrl:null,
       signVisible: false,
       FruploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       BauploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
       avataruploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
@@ -882,6 +888,8 @@ export default {
             }
     },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
           const isLt1M = file.size / 1024 / 1024 < 1;
           if (!isLt1M) {
             this.$message.error('上传图片大小不能超过 1MB!');

+ 10 - 1
src/views/his/doctorArticle/index.vue

@@ -189,6 +189,7 @@
                       v-model="form.imageUrl"
                       class="avatar-uploader"
                       :action="uploadUrl"
+                      :headers="uploadHeaders"
                       :show-file-list="false"
                       :on-success="handleAvatarSuccess"
                       :before-upload="beforeAvatarUpload">
@@ -206,6 +207,7 @@
                ref="upload"
                class="upload-demo"
                :action="uploadUrl"
+               :headers="uploadHeaders"
                :on-success="handleSuccess"
                :before-upload="beforeUpload"
                :limit="1"
@@ -256,6 +258,7 @@ import {listdocuser, listArticle, getArticle, delArticle, addArticle, updateArti
 import articleDetails from '../../components/his/doctorArticleDetails.vue';
 import { getAllArticleCateList} from "@/api/his/doctorArticleCate";
 import Editor from '@/components/Editor/wang';
+import { getToken } from "@/utils/auth";
 export default {
   name: "Article",
   components: { articleDetails,Editor },
@@ -264,6 +267,8 @@ export default {
       videoUrl: "",
       videoAccept:"video/*",
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
       show:{
               title:"医生文章详情",
@@ -348,6 +353,8 @@ export default {
           this.$refs.upload.clearFiles();
         },
     beforeUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       // 上传前的钩子函数,可以在这里对文件进行处理
       // 返回 false 则取消上传
 
@@ -371,12 +378,14 @@ export default {
     handleAvatarSuccess(res, file) {
       if(res.code==200){
            this.form.imageUrl=res.url;
-           self.$forceUpdate()
+           this.$forceUpdate()
        }else{
               this.msgError(res.msg);
             }
         },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
        const isLt1M = file.size / 1024 / 1024 < 1;
         if (!isLt1M) {
             this.$message.error('上传图片大小不能超过 1MB!');

+ 7 - 1
src/views/his/doctorArticleCate/index.vue

@@ -133,6 +133,7 @@
             v-model="form.imgUrl"
             class="avatar-uploader"
             :action="uploadUrl"
+            :headers="uploadHeaders"
             :show-file-list="false"
             :on-success="handleAvatarSuccess"
             :before-upload="beforeAvatarUpload">
@@ -164,6 +165,7 @@
 
 <script>
 import { listDoctorArticleCate, getDoctorArticleCate, delDoctorArticleCate, addDoctorArticleCate, updateDoctorArticleCate, exportDoctorArticleCate } from "@/api/his/doctorArticleCate";
+import { getToken } from "@/utils/auth";
 
 export default {
   name: "DoctorArticleCate",
@@ -172,6 +174,8 @@ export default {
       // 遮罩层
       loading: true,
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
       // 导出遮罩层
       exportLoading: false,
@@ -236,13 +240,15 @@ export default {
     handleAvatarSuccess(res, file) {
        if(res.code==200){
          this.form.imgUrl=res.url;
-         self.$forceUpdate()
+         this.$forceUpdate()
        }
        else{
          this.msgError(res.msg);
        }
     },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 1;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 1MB!');

+ 6 - 1
src/views/his/famousPrescribe/index.vue

@@ -182,6 +182,7 @@
                       v-model="form.imgUrl"
                       class="avatar-uploader"
                       :action="uploadUrl"
+                      :headers="uploadHeaders"
                       :show-file-list="false"
                       :on-success="handleAvatarSuccess"
                       :before-upload="beforeAvatarUpload">
@@ -325,6 +326,8 @@ export default {
               url: process.env.VUE_APP_BASE_API + "/his/famousPrescribe/importData"
             },
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
       // 遮罩层
       loading: true,
@@ -404,7 +407,7 @@ export default {
     handleAvatarSuccess(res, file) {
         if(res.code==200){
           this.form.imgUrl=res.url;
-          self.$forceUpdate()
+          this.$forceUpdate()
         }
         else{
           this.msgError(res.msg);
@@ -414,6 +417,8 @@ export default {
           this.form.descs=text
         },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 1;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 1MB!');

+ 9 - 0
src/views/his/homeArticle/index.vue

@@ -152,6 +152,7 @@
           <el-upload
             class="avatar-uploader"
             :action="uploadUrl"
+            :headers="uploadHeaders"
             :show-file-list="false"
             :on-success="handleImageUrlSuccess"
             :before-upload="beforeImageUrlUpload">
@@ -171,6 +172,7 @@
               ref="upload"
               class="upload-demo"
               :action="uploadUrl"
+              :headers="uploadHeaders"
               :on-success="handleVideoSuccess"
               :before-upload="beforeVideoUpload"
               :limit="1"
@@ -215,6 +217,7 @@
 import { listHomeArticle, getHomeArticle, delHomeArticle, addHomeArticle, updateHomeArticle, exportHomeArticle } from "@/api/his/homeArticle";
 import { listHomeCategory, allListHomeCategory } from "@/api/his/homeCategory";
 import Editor from '@/components/Editor/wang';
+import { getToken } from "@/utils/auth";
 
 export default {
   name: "HomeArticle",
@@ -239,6 +242,8 @@ export default {
       categoryOptions: [],
       // 上传URL
       uploadUrl: process.env.VUE_APP_BASE_API + "/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       // 视频接受类型
       videoAccept: "video/*",
       // 弹出层标题
@@ -306,6 +311,8 @@ export default {
     },
     // 视频上传前的验证
     beforeVideoUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt200M = file.size / 1024 / 1024 < 200;
       if (!isLt200M) {
         this.$message.error('上传视频文件大小不能超过200MB!');
@@ -328,6 +335,8 @@ export default {
     },
     // 图片上传前的验证
     beforeImageUrlUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 1;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过1MB!');

+ 6 - 0
src/views/his/homeCategory/index.vue

@@ -122,6 +122,7 @@
           <el-upload
             class="avatar-uploader"
             :action="uploadUrl"
+            :headers="uploadHeaders"
             :show-file-list="false"
             :on-success="handleImageUrlSuccess"
             :before-upload="beforeImageUrlUpload">
@@ -149,6 +150,7 @@
 
 <script>
 import { listHomeCategory, getHomeCategory, delHomeCategory, addHomeCategory, updateHomeCategory, exportHomeCategory } from "@/api/his/homeCategory";
+import { getToken } from "@/utils/auth";
 
 export default {
   name: "HomeCategory",
@@ -170,6 +172,8 @@ export default {
       homeCategoryList: [],
       // 上传URL
       uploadUrl: process.env.VUE_APP_BASE_API + "/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       // 弹出层标题
       title: "",
       // 是否显示弹出层
@@ -328,6 +332,8 @@ export default {
     },
     // 图片上传前的验证
     beforeImageUrlUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 1;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过1MB!');

+ 8 - 2
src/views/his/hospital/index.vue

@@ -258,6 +258,7 @@
             v-model="form.imgUrl"
             class="avatar-uploader"
             :action="uploadUrl"
+            :headers="uploadHeaders"
             :show-file-list="false"
             :on-success="handleAvatarSuccess"
             :before-upload="beforeAvatarUpload">
@@ -298,6 +299,7 @@
            v-model="form.sealUrl"
            class="avatar-uploader"
            :action="uploadUrl2"
+           :headers="uploadHeaders"
            :show-file-list="false"
            :on-success="handleAvatarSuccess2"
            :before-upload="beforeAvatarUpload">
@@ -392,6 +394,8 @@ export default {
       statusOptions: [],
       hospitalTypeOptions: [],
       uploadUrl2:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
       baseUrl: process.env.VUE_APP_BASE_API,
       // 遮罩层
@@ -543,7 +547,7 @@ export default {
   handleAvatarSuccess2(res, file) {
         if(res.code==200){
           this.form.sealUrl=res.url;
-          self.$forceUpdate()
+          this.$forceUpdate()
         }
         else{
           this.msgError(res.msg);
@@ -554,13 +558,15 @@ export default {
     handleAvatarSuccess(res, file) {
         if(res.code==200){
           this.form.imgUrl=res.url;
-          self.$forceUpdate()
+          this.$forceUpdate()
         }
         else{
           this.msgError(res.msg);
         }
     },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 1;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 1MB!');

+ 38 - 4
src/views/his/integralAfterSales/index.vue

@@ -39,8 +39,8 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="状态" prop="status">
-        <el-select v-model="queryParams.status" placeholder="请选择状态" clearable size="small">
+      <el-form-item label="审核状态" prop="status">
+        <el-select v-model="queryParams.status" placeholder="请选择审核状态" clearable size="small">
           <el-option
             v-for="item in statusOptions"
             :key="item.dictValue"
@@ -49,6 +49,16 @@
           />
         </el-select>
       </el-form-item>
+      <el-form-item label="售后状态" prop="salesStatus">
+        <el-select v-model="queryParams.salesStatus" placeholder="请选择售后状态" clearable size="small">
+          <el-option
+            v-for="item in salesStatusOptions"
+            :key="item.dictValue"
+            :label="item.dictLabel"
+            :value="item.dictValue"
+          />
+        </el-select>
+      </el-form-item>
       <el-form-item label="物流单号" prop="deliverySn">
         <el-input
           v-model="queryParams.deliverySn"
@@ -119,7 +129,7 @@
           <span v-else>-</span>
         </template>
       </el-table-column>
-      <el-table-column label="状态" align="center" prop="status" width="100">
+      <el-table-column label="审核状态" align="center" prop="status" width="100">
         <template slot-scope="scope">
           <el-tag v-if="getDictLabel(statusOptions, scope.row.status)"
                   :type="statusTagType(scope.row.status)">
@@ -128,6 +138,15 @@
           <span v-else>-</span>
         </template>
       </el-table-column>
+      <el-table-column label="售后状态" align="center" prop="salesStatus" width="100">
+        <template slot-scope="scope">
+          <el-tag v-if="getDictLabel(salesStatusOptions, scope.row.salesStatus)"
+                  :type="salesStatusTagType(scope.row.salesStatus)">
+            {{ getDictLabel(salesStatusOptions, scope.row.salesStatus) }}
+          </el-tag>
+          <span v-else>-</span>
+        </template>
+      </el-table-column>
       <el-table-column label="物流单号" align="center" prop="deliverySn" show-overflow-tooltip />
       <el-table-column label="提交时间" align="center" prop="createTime" width="160" />
       <el-table-column label="操作" align="center" fixed="right" width="100" class-name="small-padding fixed-width">
@@ -201,6 +220,7 @@ export default {
       companyList: [],
       // 字典
       statusOptions: [],
+      salesStatusOptions: [],
       serviceTypeOptions: [],
       // 查询参数
       queryParams: {
@@ -211,6 +231,7 @@ export default {
         companyId: null,
         serviceType: null,
         status: null,
+        salesStatus: null,
         deliverySn: null,
         beginTime: null,
         endTime: null
@@ -219,9 +240,17 @@ export default {
   },
   created() {
     this.getList();
+    // 审核状态(status):已提交/已审核/已发货...
     this.getDicts("integral_after_sales_status").then(response => {
       this.statusOptions = response.data;
     });
+    // 售后状态(salesStatus)与实体注释一致:0正常 1用户取消 2商家拒绝 3已完成
+    this.salesStatusOptions = [
+      { dictValue: '0', dictLabel: '正常' },
+      { dictValue: '1', dictLabel: '用户取消' },
+      { dictValue: '2', dictLabel: '商家拒绝' },
+      { dictValue: '3', dictLabel: '已完成' }
+    ];
     this.getDicts("store_after_sales_service_type").then(response => {
       this.serviceTypeOptions = response.data;
     });
@@ -236,11 +265,16 @@ export default {
       const item = options.find(d => d.dictValue == value);
       return item ? item.dictLabel : '';
     },
-    /** 状态标签类型 */
+    /** 审核状态标签类型 */
     statusTagType(status) {
       const typeMap = { 0: 'info', 1: 'warning', 2: 'warning', 3: 'primary', 4: 'danger', 5: 'success' };
       return typeMap[status] || 'info';
     },
+    /** 售后状态标签类型 */
+    salesStatusTagType(salesStatus) {
+      const typeMap = { 0: '', 1: 'info', 2: 'danger', 3: 'success' };
+      return typeMap[salesStatus] || 'info';
+    },
     /** 服务类型标签类型 */
     serviceTypeTagType(serviceType) {
       const typeMap = { 0: 'warning', 1: 'danger' };

+ 6 - 1
src/views/his/medicatedFood/index.vue

@@ -160,6 +160,7 @@
                       v-model="form.imgUrl"
                       class="avatar-uploader"
                       :action="uploadUrl"
+                      :headers="uploadHeaders"
                       :show-file-list="false"
                       :on-success="handleAvatarSuccess"
                       :before-upload="beforeAvatarUpload">
@@ -298,6 +299,8 @@ export default {
               url: process.env.VUE_APP_BASE_API + "/his/medicatedFood/importData"
             },
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
       // 遮罩层
       loading: true,
@@ -394,7 +397,7 @@ export default {
     handleAvatarSuccess(res, file) {
         if(res.code==200){
           this.form.imgUrl=res.url;
-          self.$forceUpdate()
+          this.$forceUpdate()
         }
         else{
           this.msgError(res.msg);
@@ -404,6 +407,8 @@ export default {
           this.form.descs=text
         },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 1;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 1MB!');

+ 6 - 1
src/views/his/package/index.vue

@@ -246,6 +246,7 @@
               v-model="form.imgUrl"
               class="avatar-uploader"
               :action="uploadUrl"
+              :headers="uploadHeaders"
               :show-file-list="false"
               :on-success="handleAvatarSuccess"
               :before-upload="beforeAvatarUpload">
@@ -665,6 +666,8 @@ export default {
       },
       icdList:[],
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
       upload: {
               // 是否显示弹出层
@@ -1191,13 +1194,15 @@ export default {
      handleAvatarSuccess(res, file) {
             if(res.code==200){
               this.form.imgUrl=res.url;
-              // self.$forceUpdate()
+              // this.$forceUpdate()
             }
             else{
               this.msgError(res.msg);
             }
         },
       beforeAvatarUpload(file) {
+        // 上传前刷新 token
+        this.uploadHeaders.Authorization = "Bearer " + getToken();
         return new Promise((resolve, reject) => {
           if (file.size / 1024 / 1024 > 3) {
             this.$message.error('上传的图片不能超过3MB');

+ 7 - 1
src/views/his/packageCate/index.vue

@@ -136,6 +136,7 @@
             v-model="form.imgUrl"
             class="avatar-uploader"
             :action="uploadUrl"
+            :headers="uploadHeaders"
             :show-file-list="false"
             :on-success="handleAvatarSuccess"
             :before-upload="beforeAvatarUpload">
@@ -182,6 +183,7 @@
 
 <script>
 import { listPackageCate, getPackageCate, delPackageCate, addPackageCate, updatePackageCate, exportPackageCate } from "@/api/his/packageCate";
+import { getToken } from "@/utils/auth";
 
 export default {
   name: "PackageCate",
@@ -192,6 +194,8 @@ export default {
       // 导出遮罩层
       exportLoading: false,
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
       // 选中数组
       ids: [],
@@ -278,13 +282,15 @@ export default {
     handleAvatarSuccess(res, file) {
        if(res.code==200){
          this.form.imgUrl=res.url;
-         self.$forceUpdate()
+         this.$forceUpdate()
        }
        else{
          this.msgError(res.msg);
        }
     },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 1;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 1MB!');

+ 7 - 0
src/views/his/store/index.vue

@@ -212,6 +212,7 @@
                  v-model="form.logoUrl"
                  class="avatar-uploader"
                  :action="uploadUrl"
+                 :headers="uploadHeaders"
                  :show-file-list="false"
                  :on-success="handleAvatarSuccess"
                  :before-upload="beforeAvatarUpload">
@@ -228,6 +229,7 @@
             v-model="form.licenseImages"
             class="avatar-uploader"
             :action="licenseuploadUrl"
+            :headers="uploadHeaders"
             :show-file-list="false"
             :on-success="licensehandleAvatarSuccess"
             :before-upload="beforeAvatarUpload">
@@ -353,6 +355,7 @@
 import { listStore, getStore, delStore, addStore, updateStore, exportStore } from "@/api/his/store";
 import storeDetails from '../../components/his/storeDetails.vue';
 import {getCitys} from "@/api/store/city";
+import { getToken } from "@/utils/auth";
 export default {
   name: "Store",
   components: { storeDetails },
@@ -365,6 +368,8 @@ export default {
 shippingType:[],
       citys:[],
       licenseuploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
             uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
             baseUrl: process.env.VUE_APP_BASE_API,
       shippingTypeOptions: [{
@@ -524,6 +529,8 @@ shippingType:[],
             }
         },
         beforeAvatarUpload(file) {
+          // 上传前刷新 token
+          this.uploadHeaders.Authorization = "Bearer " + getToken();
           const isLt1M = file.size / 1024 / 1024 < 1;
           if (!isLt1M) {
             this.$message.error('上传图片大小不能超过 1MB!');

+ 8 - 1
src/views/his/storeProduct/index.vue

@@ -350,6 +350,7 @@
               ref="uploadVideo"
               class="upload-demo"
               :action="uploadUrl"
+              :headers="uploadHeaders"
               :on-success="handleSuccess"
               :before-upload="beforeUpload"
               :limit="1"
@@ -723,6 +724,8 @@ export default {
         attrsVal: ''
       },
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
       storeOPtions:[],
       categoryOptions:[],
@@ -898,6 +901,8 @@ export default {
       this.$refs.uploadVideo.clearFiles();
     },
     beforeUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       // 上传前的钩子函数,可以在这里对文件进行处理
       // 返回 false 则取消上传
 
@@ -1073,13 +1078,15 @@ export default {
     handleAvatarSuccess(res, file) {
         if(res.code==200){
           this.form.imgUrl=res.url;
-          self.$forceUpdate()
+          this.$forceUpdate()
         }
         else{
           this.msgError(res.msg);
         }
     },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 1;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 1MB!');

+ 6 - 0
src/views/his/storeProductCategory/index.vue

@@ -138,6 +138,7 @@
                       v-model="form.pic"
                       class="avatar-uploader"
                       :action="uploadUrl"
+                      :headers="uploadHeaders"
                       :show-file-list="false"
                       :on-success="handleAvatarSuccess"
                       :before-upload="beforeAvatarUpload">
@@ -163,6 +164,7 @@
 import { getPidList,getAllStoreProductCategory,pidlist, listCategory, getCategory, delCategory, addCategory, updateCategory, exportCategory } from "@/api/his/storeProductCategory";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import { getToken } from "@/utils/auth";
 export default {
   name: "Category",
   components: {Treeselect},
@@ -170,6 +172,8 @@ export default {
     return {
       categoryOptions:[],
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
       orOptions: [],
       pidList: [],
@@ -279,6 +283,8 @@ export default {
         }
     },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 1;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 1MB!');

+ 7 - 1
src/views/his/testTemp/index.vue

@@ -163,6 +163,7 @@
                               v-model="form.img"
                               class="avatar-uploader"
                               :action="uploadUrl"
+                              :headers="uploadHeaders"
                               :show-file-list="false"
                               :on-success="handleAvatarSuccess"
                               :before-upload="beforeAvatarUpload">
@@ -297,6 +298,7 @@ import { listTestTemp, getTestTemp, delTestTemp, addTestTemp, updateTestTemp, ex
 import testTempDetails from '../../components/his/testTempDetails.vue';
 import testTempItem from '../testTempItem/index.vue';
 import Editor from '@/components/Editor/wang';
+import { getToken } from "@/utils/auth";
 export default {
   name: "TestTemp",
   components: { testTempDetails ,testTempItem,Editor},
@@ -309,6 +311,8 @@ export default {
             },
 
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
       itemTypeJson: [
         { itemType: "类别1", item: [{ name: "名称",value:"内容"}]},
@@ -375,13 +379,15 @@ export default {
     handleAvatarSuccess(res, file) {
             if(res.code==200){
               this.form.img=res.url;
-              self.$forceUpdate()
+              this.$forceUpdate()
             }
             else{
               this.msgError(res.msg);
             }
         },
         beforeAvatarUpload(file) {
+          // 上传前刷新 token
+          this.uploadHeaders.Authorization = "Bearer " + getToken();
           const isLt1M = file.size / 1024 / 1024 < 1;
           if (!isLt1M) {
             this.$message.error('上传图片大小不能超过 1MB!');

+ 6 - 1
src/views/his/vessel/index.vue

@@ -172,6 +172,7 @@
                       v-model="form.imgUrl"
                       class="avatar-uploader"
                       :action="uploadUrl"
+                      :headers="uploadHeaders"
                       :show-file-list="false"
                       :on-success="handleAvatarSuccess"
                       :before-upload="beforeAvatarUpload">
@@ -296,6 +297,8 @@ export default {
               open:false,
             },
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
       // 遮罩层
       loading: true,
@@ -398,7 +401,7 @@ export default {
     handleAvatarSuccess(res, file) {
         if(res.code==200){
           this.form.imgUrl=res.url;
-          self.$forceUpdate()
+          this.$forceUpdate()
         }
         else{
           this.msgError(res.msg);
@@ -408,6 +411,8 @@ export default {
           this.form.descs=text
         },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 1;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 1MB!');

+ 9 - 0
src/views/hisStore/adv/index.vue

@@ -141,6 +141,7 @@
             v-model="form.icon"
             class="avatar-uploader"
             :action="uploadUrl"
+            :headers="uploadHeaders"
             :show-file-list="false"
             :on-success="handleAvatarSuccess"
             :before-upload="beforeAvatarUpload">
@@ -162,6 +163,7 @@
               ref="upload"
               class="upload-demo"
               :action="uploadUrl"
+              :headers="uploadHeaders"
               :on-success="handleSuccess"
               :before-upload="beforeUpload"
               :limit="1"
@@ -212,6 +214,7 @@
 <script>
 import { listAdv, getAdv, delAdv, addAdv, updateAdv, exportAdv } from "@/api/hisStore/adv";
 import Editor from '@/components/Editor/wang';
+import { getToken } from "@/utils/auth";
 export default {
   name: "Adv",
   components: {
@@ -232,6 +235,8 @@ export default {
         tolerance: 0.15 // 15%容差
       },
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       baseUrl: process.env.VUE_APP_BASE_API,
       videoAccept:"video/*",
       statusOptions:[],
@@ -304,6 +309,8 @@ export default {
       this.$refs.upload.clearFiles();
     },
     beforeUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       // 上传前的钩子函数,可以在这里对文件进行处理
       // 返回 false 则取消上传
 
@@ -344,6 +351,8 @@ export default {
 
     },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 200;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 200MB!');

+ 7 - 0
src/views/hisStore/store/audit.vue

@@ -433,6 +433,7 @@
                 <el-upload
                   class="upload-demo"
                   :action="uploadUrl"
+                  :headers="uploadHeaders"
                   :on-preview="handleFilePreview"
                   :on-remove="handleRemove"
                   :before-remove="beforeRemove"
@@ -461,6 +462,7 @@
                 <el-upload
                   class="upload-demo"
                   :action="uploadUrl"
+                  :headers="uploadHeaders"
                   :on-preview="handleFilePreview"
                   :on-remove="handleRemove"
                   :before-remove="beforeRemove"
@@ -597,6 +599,7 @@ import { getCitys } from "@/api/store/city";
 import { getConfigByKey } from '@/api/system/config';
 import ImageUpload from '@/components/ImageUpload';
 import StoreDialog from '../components/StoreDialog.vue';
+import { getToken } from "@/utils/auth";
 
 export default {
   name: "adutstore",
@@ -626,6 +629,8 @@ export default {
       medicalMallConfig:{},
       citys:[],
       licenseuploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
       baseUrl: process.env.VUE_APP_BASE_API,
       shippingTypeOptions: [{
@@ -851,6 +856,8 @@ export default {
       }
     },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 1;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 1MB!');

+ 16 - 0
src/views/hisStore/store/index.vue

@@ -355,6 +355,7 @@
                 v-model="form.logoUrl"
                 class="avatar-uploader"
                 :action="uploadUrl"
+                :headers="uploadHeaders"
                 :show-file-list="false"
                 :on-success="handleAvatarSuccess"
                 :before-upload="beforeAvatarUpload"
@@ -438,6 +439,7 @@
               <el-upload
                 class="avatar-uploader"
                 :action="uploadUrl"
+                :headers="uploadHeaders"
                 :show-file-list="false"
                 :on-success="(response, file) => handleFileSuccess(response, file, 'businessLicense')"
                 :before-upload="beforeAvatarUpload"
@@ -503,6 +505,7 @@
                 <el-upload
                   class="avatar-uploader"
                   :action="uploadUrl"
+                  :headers="uploadHeaders"
                   :show-file-list="false"
                   :on-success="(response, file) => handleFileSuccess(response, file, 'drugLicense')"
                   :before-upload="beforeAvatarUpload"
@@ -577,6 +580,7 @@
                 <el-upload
                   class="avatar-uploader"
                   :action="uploadUrl"
+                  :headers="uploadHeaders"
                   :show-file-list="false"
                   :on-success="(response, file) => handleFileSuccess(response, file, 'medicalDevice2')"
                   :before-upload="beforeAvatarUpload"
@@ -647,6 +651,7 @@
                 <el-upload
                   class="avatar-uploader"
                   :action="uploadUrl"
+                  :headers="uploadHeaders"
                   :show-file-list="false"
                   :on-success="(response, file) => handleFileSuccess(response, file, 'medicalDevice3')"
                   :before-upload="beforeAvatarUpload"
@@ -706,6 +711,7 @@
                 <el-upload
                   class="avatar-uploader"
                   :action="uploadUrl"
+                  :headers="uploadHeaders"
                   :show-file-list="false"
                   :on-success="(response, file) => handleFoodLicenseSuccess(response, file)"
                   :before-upload="beforeAvatarUpload"
@@ -788,6 +794,7 @@
                   <el-upload
                     class="file-uploader"
                     :action="uploadUrl"
+                    :headers="uploadHeaders"
                     :show-file-list="false"
                     :on-success="(response, file) => handleFileSuccess1(response, file, 'settlementAgreement')"
                     :on-error="handleFileError"
@@ -862,6 +869,7 @@
                   <el-upload
                     class="file-uploader"
                     :action="uploadUrl"
+                    :headers="uploadHeaders"
                     :show-file-list="false"
                     :on-success="(response, file) => handleFileSuccess1(response, file, 'qualityAssuranceAgreement')"
                     :on-error="handleFileError"
@@ -936,6 +944,7 @@
                   <el-upload
                     class="file-uploader"
                     :action="uploadUrl"
+                    :headers="uploadHeaders"
                     :show-file-list="false"
                     :on-success="(response, file) => handleFileSuccess1(response, file, 'otherSpecialQualification')"
                     :on-error="handleFileError"
@@ -1006,6 +1015,7 @@
             <el-upload
               class="upload-demo"
               :action="uploadUrl"
+              :headers="uploadHeaders"
               :on-remove="handleRemove"
               :before-remove="beforeRemove"
               :limit="1"
@@ -1043,6 +1053,7 @@
             <el-upload
               class="upload-demo"
               :action="uploadUrl"
+              :headers="uploadHeaders"
               :on-remove="handleRemove"
               :before-remove="beforeRemove"
               :limit="1"
@@ -1257,6 +1268,7 @@ import StoreDialog from '../components/StoreDialog.vue';
 import {getCitys} from "@/api/store/city";
 import { getConfigByKey } from '@/api/system/config'
 import { qualifications } from '@/api/system/user';
+import { getToken } from "@/utils/auth";
 export default {
   name: "Store",
   components: { storeDetails, StoreDialog },
@@ -1332,6 +1344,8 @@ export default {
       medicalMallConfig:{},
       citys: [],
       licenseuploadUrl: process.env.VUE_APP_BASE_API + "/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       uploadUrl: process.env.VUE_APP_BASE_API + "/common/uploadOSS",
       baseUrl: process.env.VUE_APP_BASE_API,
       shippingTypeOptions: [{
@@ -1699,6 +1713,8 @@ export default {
       }
     },
     beforeAvatarUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 1;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 1MB!');

+ 7 - 1
src/views/hospital/hospital/index.vue

@@ -171,6 +171,7 @@
               v-model="form.licenseUrl"
               class="avatar-uploader"
               :action="uploadUrl"
+              :headers="uploadHeaders"
               :show-file-list="false"
               :on-success="handleAvatarSuccess"
               :before-upload="beforeAvatarUpload">
@@ -249,6 +250,7 @@
 
 <script>
 import {recharge,deduct, resetPwd,listHospital, getHospital, delHospital, addHospital, updateHospital, exportHospital } from "@/api/hospital/hospital";
+import { getToken } from "@/utils/auth";
 
 
 export default {
@@ -256,6 +258,8 @@ export default {
   data() {
     return {
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       // 表单参数
       rechargeForm: {
         money:0,
@@ -364,13 +368,15 @@ export default {
             if(res.code==200){
               this.form.licenseUrl=res.url;
               console.log(this.form.licenseUrl)
-              // self.$forceUpdate()
+              // this.$forceUpdate()
             }
             else{
               this.msgError(res.msg);
             }
         },
         beforeAvatarUpload(file) {
+          // 上传前刷新 token
+          this.uploadHeaders.Authorization = "Bearer " + getToken();
           const isLt1M = file.size / 1024 / 1024 < 1;
           if (!isLt1M) {
             this.$message.error('上传图片大小不能超过 1MB!');

+ 6 - 0
src/views/qw/friendMaterial/index.vue

@@ -70,6 +70,7 @@
                 <el-col :span="12" style="text-align: right;">
                   <el-upload
                     :action="uploadUrl"
+                    :headers="uploadHeaders"
                     :file-list="[]"
                     :on-progress="handleProgress"
                     :before-upload="beforeUpload"
@@ -140,6 +141,7 @@
 <script>
 import {addMaterial, delMaterial, listMaterial,} from "@/api/qw/material";
 import {addMaterialGroup, delMaterialGroup, listMaterialGroup, updateMaterialGroup} from "@/api/qw/materialGroup";
+import { getToken } from "@/utils/auth";
 
 export default {
   name: 'ImageSelect',
@@ -180,6 +182,8 @@ export default {
   data() {
     return {
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       dialogVisible: false,
       materialUrl: '',
       listDialogVisible: false,
@@ -372,6 +376,8 @@ export default {
     },
     //上传之前
     beforeUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isPic =
         file.type === 'image/jpeg' ||
         file.type === 'image/png' ||

+ 7 - 0
src/views/qw/sopTemp/addSopTemp.vue

@@ -202,6 +202,7 @@
                                                 v-model="setList.fileUrl"
                                                 class="avatar-uploader"
                                                 :action="uploadUrl"
+                                                :headers="uploadHeaders"
                                                 :show-file-list="false"
                                                 :on-success="(res, file) => handleAvatarSuccessFile(res, file, setList)"
                                                 :before-upload="beforeAvatarUploadFile">
@@ -220,6 +221,7 @@
                                                 v-model="setList.videoUrl"
                                                 class="avatar-uploader"
                                                 :action="uploadUrl"
+                                                :headers="uploadHeaders"
                                                 :show-file-list="false"
                                                 :on-success="(res, file) => handleAvatarSuccessVideo(res, file, setList)"
                                                 :before-upload="beforeAvatarUploadVideo">
@@ -355,6 +357,7 @@ import {courseList, videoList} from "@/api/qw/sop";
 import ImageUpload from "@/views/qw/sop/ImageUpload";
 import FriendMaterial from "@/views/qw/friendMaterial/index.vue";
 import userVideo from "@/views/qw/userVideo/userVideo.vue";
+import { getToken } from "@/utils/auth";
 
 export default {
   name: "addSopTemp",
@@ -367,6 +370,8 @@ export default {
       dialogImageUrl:null,
 
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS2",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       uploadUrlByVoice:process.env.VUE_APP_BASE_API+"/common/uploadOSSByHOOKVoice",
       //上传语音的遮罩层
       voiceLoading :false,
@@ -551,6 +556,8 @@ export default {
       }
     },
     beforeAvatarUploadFile(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 10;
       if (!isLt1M) {
         this.$message.error('上传大小不能超过 10MB!');

+ 8 - 0
src/views/qw/sopTemp/addSopTempOld.vue

@@ -167,6 +167,7 @@
                                         v-model="content.fileUrl"
                                         class="avatar-uploader"
                                         :action="uploadUrl"
+                                        :headers="uploadHeaders"
                                         :show-file-list="false"
                                         :on-success="(res, file) => handleAvatarSuccessFile(res, file, content)"
                                         :before-upload="beforeAvatarUploadFile">
@@ -185,6 +186,7 @@
                                         v-model="content.videoUrl"
                                         class="avatar-uploader"
                                         :action="uploadUrl"
+                                        :headers="uploadHeaders"
                                         :show-file-list="false"
                                         :on-success="(res, file) => handleAvatarSuccessVideo(res, file, content)"
                                         :before-upload="beforeAvatarUploadVideo">
@@ -202,6 +204,7 @@
                                           v-model="content.voiceUrl"
                                           class="avatar-uploader"
                                           :action="uploadUrl"
+                                          :headers="uploadHeaders"
                                           :show-file-list="false"
                                           :on-success="(res, file) => handleAvatarSuccessVoice(res, file, content)"
                                           :before-upload="beforeAvatarUploadVoice">
@@ -281,12 +284,15 @@ import { listSopTemp, getSopTemp, delSopTemp, addSopTemp, updateSopTemp, exportS
 import { courseList,videoList } from "@/api/qw/sop";
 import ImageUpload from "@/views/qw/sop/ImageUpload";
 import FriendMaterial from "@/views/qw/friendMaterial/index.vue";
+import { getToken } from "@/utils/auth";
 export default {
   name: "SopTemp",
       components: { ImageUpload,FriendMaterial},
   data() {
     return {
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       // 遮罩层
       loading: true,
       // 导出遮罩层
@@ -414,6 +420,8 @@ export default {
       }
     },
     beforeAvatarUploadFile(file){
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 30;
       if (!isLt1M) {
         this.$message.error('上传大小不能超过 30MB!');

+ 7 - 0
src/views/qw/sopTemp/updateSopTemp.vue

@@ -386,6 +386,7 @@
                                                 v-model="setList.fileUrl"
                                                 class="avatar-uploader"
                                                 :action="uploadUrl"
+                                                :headers="uploadHeaders"
                                                 :show-file-list="false"
                                                 :on-success="(res, file) => handleAvatarSuccessFile(res, file, setList)"
                                                 :before-upload="beforeAvatarUploadFile">
@@ -406,6 +407,7 @@
                                                 v-model="setList.videoUrl"
                                                 class="avatar-uploader"
                                                 :action="uploadUrl"
+                                                :headers="uploadHeaders"
                                                 :show-file-list="false"
                                                 :on-success="(res, file) => handleAvatarSuccessVideo(res, file, setList)"
                                                 :before-upload="beforeAvatarUploadVideo">
@@ -698,6 +700,7 @@ import {
 import {courseList, videoList} from "@/api/qw/sop";
 import ImageUpload from "@/views/qw/sop/ImageUpload";
 import userVideo from "@/views/qw/userVideo/userVideo.vue";
+import { getToken } from "@/utils/auth";
 
 export default {
   name: "updateSopTemp",
@@ -713,6 +716,8 @@ export default {
         delTagValue: ''
       }],
       uploadUrl: process.env.VUE_APP_BASE_API + "/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       uploadUrlByVoice: process.env.VUE_APP_BASE_API + "/common/uploadOSSByHOOKVoice",
       //上传语音的遮罩层
       voiceLoading: false,
@@ -1536,6 +1541,8 @@ export default {
 
     },
     beforeAvatarUploadFile(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 10;
       if (!isLt1M) {
         this.$message.error('上传大小不能超过 10MB!');

+ 7 - 0
src/views/qw/sopTemp/updateSopTemp2.vue

@@ -169,6 +169,7 @@
                                                 v-model="setList.fileUrl"
                                                 class="avatar-uploader"
                                                 :action="uploadUrl"
+                                                :headers="uploadHeaders"
                                                 :show-file-list="false"
                                                 :on-success="(res, file) => handleAvatarSuccessFile(res, file, setList)"
                                                 :before-upload="beforeAvatarUploadFile">
@@ -187,6 +188,7 @@
                                                 v-model="setList.videoUrl"
                                                 class="avatar-uploader"
                                                 :action="uploadUrl"
+                                                :headers="uploadHeaders"
                                                 :show-file-list="false"
                                                 :on-success="(res, file) => handleAvatarSuccessVideo(res, file, setList)"
                                                 :before-upload="beforeAvatarUploadVideo">
@@ -316,12 +318,15 @@ import { listSopTemp, getSopTemp, delSopTemp, addSopTemp, updateSopTemp, exportS
 import { courseList,videoList } from "@/api/qw/sop";
 import ImageUpload from "@/views/qw/sop/ImageUpload";
 import userVideo from "@/views/qw/userVideo/userVideo.vue";
+import { getToken } from "@/utils/auth";
 export default {
   name: "updateSopTemp",
   components: { ImageUpload,userVideo},
   data() {
     return {
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS2",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       uploadUrlByVoice:process.env.VUE_APP_BASE_API+"/common/uploadOSSByHOOKVoice",
       //上传语音的遮罩层
       voiceLoading :false,
@@ -621,6 +626,8 @@ export default {
       }
     },
     beforeAvatarUploadFile(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 10;
       if (!isLt1M) {
         this.$message.error('上传大小不能超过 10MB!');

+ 8 - 0
src/views/qw/sopTemp/updateSopTempOld.vue

@@ -159,6 +159,7 @@
                                         v-model="content.fileUrl"
                                         class="avatar-uploader"
                                         :action="uploadUrl"
+                                        :headers="uploadHeaders"
                                         :show-file-list="false"
                                         :on-success="(res, file) => handleAvatarSuccessFile(res, file, content)"
                                         :before-upload="beforeAvatarUploadFile">
@@ -177,6 +178,7 @@
                                         v-model="content.videoUrl"
                                         class="avatar-uploader"
                                         :action="uploadUrl"
+                                        :headers="uploadHeaders"
                                         :show-file-list="false"
                                         :on-success="(res, file) => handleAvatarSuccessVideo(res, file, content)"
                                         :before-upload="beforeAvatarUploadVideo">
@@ -194,6 +196,7 @@
                                         v-model="content.voiceUrl"
                                         class="avatar-uploader"
                                         :action="uploadUrl"
+                                        :headers="uploadHeaders"
                                         :show-file-list="false"
                                         :on-success="(res, file) => handleAvatarSuccessVoice(res, file, content)"
                                         :before-upload="beforeAvatarUploadVoice">
@@ -270,12 +273,15 @@
 import { listSopTemp, getSopTemp, delSopTemp, addSopTemp, updateSopTemp, exportSopTemp } from "@/api/qw/sopTemp";
 import { courseList,videoList } from "@/api/qw/sop";
 import ImageUpload from "@/views/qw/sop/ImageUpload";
+import { getToken } from "@/utils/auth";
 export default {
   name: "SopTemp",
   components: { ImageUpload},
   data() {
     return {
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       // 遮罩层
       loading: true,
       // 导出遮罩层
@@ -486,6 +492,8 @@ export default {
       }
     },
     beforeAvatarUploadFile(file){
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 30;
       if (!isLt1M) {
         this.$message.error('上传大小不能超过 30MB!');

+ 7 - 0
src/views/system/config/config.vue

@@ -1891,6 +1891,7 @@
                 ref="upload"
                 class="upload-demo"
                 :action="uploadUrl"
+                :headers="uploadHeaders"
                 :on-success="handleSuccess"
                 :before-upload="beforeUpload"
                 :limit="1"
@@ -1917,6 +1918,7 @@
                 ref="upload"
                 class="upload-demo"
                 :action="uploadUrl"
+                :headers="uploadHeaders"
                 :on-success="appHandleSuccess"
                 :before-upload="beforeUpload"
                 :limit="1"
@@ -2480,6 +2482,7 @@ import { getCitys } from '@/api/store/city'
 import { listCompany } from '@/api/company/company'
 import { getStoreProductColumns } from '@/api/hisStore/storeProduct'
 import { getStoreColumns } from '@/api/hisStore/store'
+import { getToken } from "@/utils/auth";
 
 export default {
   name: 'Config',
@@ -2494,6 +2497,8 @@ export default {
       images: [],
       appImages: [],
       uploadUrl: process.env.VUE_APP_BASE_API + '/common/uploadOSS',
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       videoAccept: 'video/*',
       courseMaConfigLoading: false,
       courseMaConfigList: [],
@@ -2863,6 +2868,8 @@ export default {
       this.$refs.upload.clearFiles()
     },
     beforeUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       // 上传前的钩子函数,可以在这里对文件进行处理
       // 返回 false 则取消上传
 

+ 6 - 0
src/views/system/config/config2.vue

@@ -1263,6 +1263,7 @@
                  ref="upload"
                  class="upload-demo"
                  :action="uploadUrl"
+                 :headers="uploadHeaders"
                  :on-success="handleSuccess"
                  :before-upload="beforeUpload"
                  :limit="1"
@@ -1303,6 +1304,7 @@ import productAttrValueSelect from "../../components/his/productGiftValueSelect.
 import productDeliveryGiftValueSelect from "../../components/his/productDeliveryGiftValueSelect.vue";
 import { Col } from "element-ui";
 import Editor from '@/components/Editor/wang';
+import { getToken } from "@/utils/auth";
 export default {
   name: "Config",
   components: {
@@ -1312,6 +1314,8 @@ export default {
     return {
       images:[],
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       videoAccept:"video/*",
       courseMaConfigLoading:false,
       courseMaConfigList:[],
@@ -1445,6 +1449,8 @@ export default {
       this.$refs.upload.clearFiles();
     },
     beforeUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       // 上传前的钩子函数,可以在这里对文件进行处理
       // 返回 false 则取消上传
 

+ 1 - 0
src/views/system/pointsRule/index.vue

@@ -797,6 +797,7 @@ export default {
         }
         this.categoryOptions = []
         this.productOptions = []
+        this.loadCategoryDict()
         this.$refs.form.clearValidate()
         this.$refs.erpForm.clearValidate()
       }).catch(() => {})

+ 7 - 0
src/views/user/complaint/index.vue

@@ -202,6 +202,7 @@
                      <el-upload
                       ref="imageUpload"
                       :action="uploadUrl"
+                      :headers="uploadHeaders"
                       :show-file-list="false"
                       :file-list="replyImageList"
                       :on-success="handleSuccess"
@@ -220,6 +221,7 @@
                   <el-upload
                     ref="imageUpload"
                     :action="uploadUrl"
+                    :headers="uploadHeaders"
                     :show-file-list="false"
                     :file-list="replyImageList"
                     :on-success="handleSuccess"
@@ -357,6 +359,7 @@ import {
 
 import {listMsg,addMsg} from '@/api/user/complaintMsg';
 import ImageUpload from '@/components/ImageUpload/index';
+import { getToken } from "@/utils/auth";
 export default {
   name: "Complaint",
   components: {
@@ -368,6 +371,8 @@ export default {
       isProcessCompleted:0,
       replyImageList: [],
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      // el-upload 不会走 axios 拦截器,需手动带上 token
+      uploadHeaders: { Authorization: "Bearer " + getToken() },
       complaintId:null,
       activeName:"0",
       typeOptions:[
@@ -782,6 +787,8 @@ export default {
     },
 
     beforeUpload(file) {
+      // 上传前刷新 token
+      this.uploadHeaders.Authorization = "Bearer " + getToken();
       const isLt1M = file.size / 1024 / 1024 < 1;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 1MB!');