wjj 4 rokov pred
rodič
commit
b884892e8d
2 zmenil súbory, kde vykonal 56 pridanie a 12 odobranie
  1. 54 11
      src/components/Mine.vue
  2. 2 1
      src/js/api.js

+ 54 - 11
src/components/Mine.vue

@@ -122,17 +122,30 @@
         </el-tab-pane>
       </el-tabs>
 
-      <el-button type="primary" size='mini' class="input-task-btn" @click="showInputTaskModal = true">导入任务</el-button>
+      <el-button type="primary" size='mini' class="input-task-btn" @click="showImportTaskModal = true">导入任务</el-button>
       <el-dialog
-        title="提示"
-        :visible.sync="showInputTaskModal"
+        title="上传任务资源包"
+        :visible.sync="showImportTaskModal"
         width="500"
-      >s
-        <span>这是一段信息</span>
+      >
+        <el-upload
+          drag
+          class="upload-demo"
+          action=""
+          :limit="1"
+          :before-upload="beforeFileUpload"
+          :http-request="uploadRequireDoc"
+          :file-list="taskJson"
+          multiple
+          >
+          <i class="el-icon-upload"></i>
+          <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+          <div class="el-upload__tip" slot="tip">只能上传Json文件,且不超过100MB</div>
+        </el-upload>
         <span slot="footer" class="dialog-footer">
-        <el-button @click="showInputTaskModal = false">取 消</el-button>
-        <el-button type="primary" @click="showInputTaskModal = false">确 定</el-button>
-  </span>
+        <el-button @click="showImportTaskModal = false">取 消</el-button>
+        <el-button type="primary" @click="showImportTaskModal = false">确 定</el-button>
+        </span>
       </el-dialog>
 
     </div>
@@ -163,7 +176,7 @@ export default {
   data() {
     return {
       statisticData: {},
-      showInputTaskModal:false,
+      showImportTaskModal:false,
       loading: false,
       unFinishedTaskList: [],
       finishedTaskList: [],
@@ -192,12 +205,12 @@ export default {
       },
       isLogin: false,
       showCreateData: false,
-      showAcceptData: false
+      showAcceptData: false,
+      taskJson:[]
     }
   },
   mounted() {
     this.$nextTick(() => {
-      console.log('nexttick')
       this.init();
       this.checkCreateProjectAuth();
       this.checkAcceptTaskAuth()
@@ -247,6 +260,36 @@ export default {
         notify('error', '加载失败,请稍后重试')
       })
     },
+
+    beforeFileUpload(file) {
+      const isJSON = file.type === 'application/json'
+      if (!isJSON) {
+        this.$message.error('上传文件只能是 JSON 格式!')
+      }
+      if( file.size > 100 * 1024 * 1024){
+        this.$message.error('上传文件不超过100MB !')
+      }
+      return isJSON
+    },
+    uploadRequireDoc(param) {
+      this.showLoading()
+      const formData = new FormData()
+      let config = {
+        //添加请求头
+        headers: {'Content-Type': 'multipart/form-data'},
+      }
+      formData.append('file', param.file)
+      Http.upload(Apis.FILE.TASK_IMPORT, formData, config).then((res) => {
+        this.hideLoading()
+        notify('success', '导入任务成功')
+        this.taskJson.push(res.data)
+        this.showImportTaskModal = false;
+      }).catch((error) => {
+        this.hideLoading()
+        notify('error', '导入任务失败:' + error.data)
+      })
+    },
+
     setUserInfo() {
       if (storageGet('user') != null) {
         this.isLogin = true;

+ 2 - 1
src/js/api.js

@@ -43,7 +43,8 @@ export default {
     UPLOAD_REPORT_FILE: '/api/files/report/{userId}/',
     UPLOAD_EXCEL: '',
     UPLOAD_IMAGE: '/api/files/image/{userId}/',
-    GET_TEMPLATE_EXCEL_FILE: ''
+    GET_TEMPLATE_EXCEL_FILE: '' ,
+    TASK_IMPORT: '/api/project/task/import'
   },
   USER: {
     ADD_AGENCY: '/api/greenChannel/agency/',