Forráskód Böngészése

fix 文件上传问题

dusenyao 2 éve
szülő
commit
5ee8a8d344

+ 13 - 15
src/api/app.js

@@ -4,27 +4,26 @@ import { getUserInfo } from '@/utils/auth';
 /**
  * 上传文件
  * @param {String} SecurityLevel 保密级别
+ * @param {Object} file 文件对象
  */
 export function fileUpload(SecurityLevel, file) {
   const { session_id, user_code, user_type } = getUserInfo();
-  let params = {
-    UserCode: user_code,
-    UserType: user_type,
-    SessionID: session_id,
-    SecurityLevel
-  };
   const formData = new FormData();
   formData.append(file.filename, file.file, file.file.name);
 
-  return request({
-    method: 'post',
-    url: '/GCLSFileServer/WebFileUpload',
-    timeout: 0,
-    params,
-    headers: {
-      'Content-Type': 'multipart/form-data'
+  return request.postForm('/GCLSFileServer/WebFileUpload', formData, {
+    params: {
+      UserCode: user_code,
+      UserType: user_type,
+      SessionID: session_id,
+      SecurityLevel
     },
-    data: formData
+    transformRequest: [
+      data => {
+        return data;
+      }
+    ],
+    timeout: 0
   });
 }
 
@@ -57,7 +56,6 @@ export function GetChildSysList_CanEnter_PC() {
 /**
  * 得到验证码图像
  * @param { Object } data
- * @returns
  */
 export function GetVerificationCodeImage(data) {
   let params = getRequestParams('login_control-GetVerificationCodeImage');

+ 8 - 5
src/utils/upload.js

@@ -11,6 +11,10 @@ export const acceptTypeList = [
   { type: 'xls', name: 'xls 文件', regexp: new RegExp(/.xls$/), attr: 'name' }
 ];
 
+/**
+ * 文件上传
+ * @param {String} accept_type 上传类型
+ */
 export function useUpload(accept_type) {
   const accept = acceptTypeList.find(({ type }) => type === accept_type);
   if (!accept) return new Error('所选类型不存在');
@@ -23,11 +27,10 @@ export function useUpload(accept_type) {
     return filter;
   }
 
-  function upload(file) {
-    return fileUpload('Open', file).then(({ file_info_list }) => {
-      if (file_info_list.length <= 0) return false;
-      return file_info_list;
-    });
+  async function upload(file) {
+    const { file_info_list } = await fileUpload('Open', file);
+    if (file_info_list.length <= 0) return false;
+    return file_info_list;
   }
 
   return {

+ 0 - 0
src/views/org_manager/ShowOrg.vue → src/views/org_manager/components/ShowOrg.vue


+ 0 - 0
src/views/org_manager/UpdateOrg.vue → src/views/org_manager/components/UpdateOrg.vue


+ 7 - 6
src/views/org_manager/index.vue

@@ -83,8 +83,8 @@ import { useList } from '@/utils/list';
 import { Message } from 'element-ui';
 
 import ResetPassword from '@/components/ResetPassword.vue';
-import ShowOrg from './ShowOrg.vue';
-import UpdateOrg from './UpdateOrg.vue';
+import ShowOrg from './components/ShowOrg.vue';
+import UpdateOrg from './components/UpdateOrg.vue';
 import CommonTable from '@/components/common/CommonTable.vue';
 
 // 搜索条件
@@ -122,11 +122,12 @@ let popedom_list = ref(''); // 权限列表
 // 得到机构管理员可分配的权限列表
 function getDistributablePopedomList_OrgManager(org_id) {
   GetDistributablePopedomList_OrgManager({ org_id }).then(({ popedom_list: list }) => {
-    list.forEach((el, i, arr) => {
-      el.is_selected = el.is_selected === 'true';
-      arr[i] = el;
+    popedom_list.value = list.map(({ is_selected, ...data }) => {
+      return {
+        is_selected: is_selected === 'true',
+        ...data
+      };
     });
-    popedom_list.value = list;
   });
 }
 

+ 3 - 3
src/views/upload/uploadDetail.vue

@@ -4,13 +4,13 @@
     <div class="book-vocab-content">
       <el-form ref="searchForm" :model="searchForm" :rules="courseListRules" size="mini">
         <el-form-item label="资源键值" label-width="90px" prop="resource_key">
-          <el-input v-model="searchForm.resource_key" autocomplete="off" placeholder="请输入资源键值"></el-input>
+          <el-input v-model="searchForm.resource_key" autocomplete="off" placeholder="请输入资源键值" />
         </el-form-item>
         <el-form-item label="资源名称" label-width="90px" prop="name">
-          <el-input v-model="searchForm.name" placeholder="请输入资源名称"></el-input>
+          <el-input v-model="searchForm.name" placeholder="请输入资源名称" />
         </el-form-item>
         <el-form-item label="备注" label-width="90px" prop="memo">
-          <el-input v-model="searchForm.memo" placeholder="请输入资源备注" type="textarea"></el-input>
+          <el-input v-model="searchForm.memo" placeholder="请输入资源备注" type="textarea" />
         </el-form-item>
         <el-form-item label="上传资源" label-width="90px" prop="fileList">
           <el-upload