text: 
  import {message} from 'antd'
  import URL from 'url';
  import _ from 'underscore';
  const GenerateSchema = require('generate-schema/src/schemas/json.js');
  import { json_parse } from '../../common/utils.js'
  
  
  function postman(importDataModule){
  
    var folders = [];
  
    function parseUrl(url){
      return URL.parse(url)
    }
    
    function checkInterRepeat(interData){
      let obj = {};
      let arr = [];
      for(let item in interData){
        // console.log(interData[item].url + "-" + interData[item].method);
        if(!obj[interData[item].url + "-" + interData[item].method+ "-"+interData[item].method]){
          arr.push(interData[item]);
          obj[interData[item].url + "-" + interData[item].method+ "-"+interData[item].method] = true;
        }
      }
      return arr;
    }
    
    function handleReq_query(query){
      let res = [];
      if(query&&query.length){
        for(let item in query){
          res.push({
            name: query[item].key,
            desc: query[item].description,
            example: query[item].value,
            value: query[item].value,
            required: query[item].enabled ? '1' : '0'
          });
        }
      }
      return res;
    }
    function handleReq_headers(headers){
      let res = [];
      if(headers&&headers.length){
        for(let item in headers){
          res.push({
            name: headers[item].key,
            desc: headers[item].description,
            value: headers[item].value,
            required: headers[item].enabled ? '1' : '0'
          });
        }
      }
      return res;
    }
    
    function handleReq_body_form(body_form){
      let res = [];
      if(body_form&&body_form.length){
        for(let item in body_form){
          res.push({
            name: body_form[item].key,
            example: body_form[item].value,
            value: body_form[item].value,
            type: body_form[item].type,
            required: body_form[item].enabled ? '1': '0',
            desc: body_form[item].description
          });
        }
      }
      return res;
    }
    
    function handlePath(path){
      path = parseUrl(path).pathname;
      path = decodeURIComponent(path);
      if(!path) return '';
      
      path = path.replace(/\{\{.*\}\}/g, '');
    
      if(path[0] != "/"){
        path = "/" + path;
      }
      return path;
    }
    
    function run(res){    
      try{
        res = JSON.parse(res);
        let interData = res.requests;
        let interfaceData = {apis: [], cats: []};
        interData = checkInterRepeat.bind(this)(interData); 
        
        if (res.folders && Array.isArray(res.folders)) {
          res.folders.forEach(tag => {
            interfaceData.cats.push({
              name: tag.name,
              desc: tag.description
            });
          });
        }
  
        if(_.find(res.folders,item => item.collectionId === res.id)){
          folders = res.folders
        } 
        
        
        if(interData && interData.length){        
          for(let item in interData){
            let data = importPostman.bind(this)(interData[item]);
            interfaceData.apis.push(data);
          }
        }
        
        return interfaceData;
        
      }catch(e){
        message.error("文件格式必须为JSON");
      }
      
    }
    
    function importPostman(data, key){
      
      let reflect = {//数据字段映射关系
        title: "name",
        path: "url",
        method: "method",
        desc: "description",
        req_query: "queryParams",
        req_headers: "headerData",
        req_params: "",
        req_body_type: "dataMode",
        req_body_form: "data",
        req_body_other: "rawModeData",
        res_body: "text",
        res_body_type: "language"
      };
      let allKey = ["title","path","catname","method","desc","req_query","req_headers","req_body_type","req_body_form","req_body_other","res"];
      key = key || allKey;
      let res = {};
      for(let item in key){
        item = key[item];
        if(item === "req_query"){
          res[item] = handleReq_query.bind(this)(data[reflect[item]]);
        }else if(item === "req_headers"){
          res[item] = handleReq_headers.bind(this)(data[reflect[item]]);
        }else if(item === "req_body_form"){
          res[item] = handleReq_body_form.bind(this)(data[reflect[item]]);
        }else if(item === "req_body_type"){
          if(data[reflect[item]] === 'urlencoded' || data[reflect[item]] === 'params'){
            res[item] = 'form';
          }else{
            if(data.headers.indexOf('application/json')>-1){
              res[item] = "json";
            }else{
              res[item] = "raw";
            }
          }
          
        } else if(item === 'req_body_other') {
          if(data.headers.indexOf('application/json')>-1){
  
            res[item] = transformJsonToSchema(data[reflect[item]])
          } else {
            res[item] = data[reflect[item]];
          }
  
        }
        else if(item === "path"){
          res[item] = handlePath.bind(this)(data[reflect[item]]);
          if(res[item] && res[item].indexOf("/:") > -1){
            let params = res[item].substr(res[item].indexOf("/:")+2).split("/:");
            // res[item] = res[item].substr(0,res[item].indexOf("/:"));
            let arr = [];
            for(let i in params){
              arr.push({
                name: params[i],
                desc: ""
              });
            }
            res["req_params"] = arr;
          }
        }else if(item === "title"){
          let path = handlePath.bind(this)(data[reflect["path"]]);
          if(data[reflect[item]].indexOf(path) > -1){
            res[item] = path;
            if(res[item] && res[item].indexOf("/:") > -1){
              res[item] = res[item].substr(0,res[item].indexOf("/:"));
            }
          }else{
            res[item] = data[reflect[item]];
          }
        } else if(item === 'catname'){
          let found = folders.filter(item => {
            return item.id === data.folder
          })
          res[item] = found && Array.isArray(found) && found.length>0 ? found[0].name : null;
        }
        else if(item === 'res') {
          let response = handleResponses(data['responses'])
          if(response) {
            res['res_body'] = response['res_body'],
            res['res_body_type'] = response['res_body_type']
          }
          
        } 
        else{
          res[item] = data[reflect[item]];
        }
      }
      return res;
    }
  
    const handleResponses = (data) => {
      if(data&&data.length){
        let res = data[0];
        let response = {};
        response['res_body_type'] = res.language === 'json' ? 'json' : 'raw'
        response['res_body'] = res.language === 'json' ? transformJsonToSchema(res.text): res.text;
       
        return response;
      }
  
      return null
    } 
  
    const transformJsonToSchema = (json) => {
      json = json || {}
      let jsonData = json_parse(json)
  
      jsonData = GenerateSchema(jsonData);
  
      let schemaData = JSON.stringify(jsonData)
      return schemaData
    }
    
    if(!importDataModule || typeof importDataModule !== 'object'){
      console.error('obj参数必需是一个对象');
      return null;
    }
  
    importDataModule.postman = {
      name: 'Postman',
      run: run,
      desc: '注意：只支持json格式数据'
    }
  }
  
  
  
  module.exports = function(){
  
  
    this.bindHook('import_data', postman)
  }