venusource-commons

``` npm config set registry https://registry.npmjs.org npm adduser xuwei_sleep Vv84225213@ xuwei_sleep@qq.com npm publish ``` # Fetch用法 > 支持get post put delete > > 支持文件上传下载 > >自动从sessionStorage中传递token > >异常自定义:Fetch.systemError、Fetch.serverError、Fetch.un

Usage no npm install needed!

<script type="module">
  import venusourceCommons from 'https://cdn.skypack.dev/venusource-commons';
</script>

README

初始化组件

npm config set registry https://registry.npmjs.org
npm adduser
xuwei_sleep
Vv84225213@
xuwei_sleep@qq.com
npm publish

Fetch用法

支持get post put delete

支持文件上传下载

自动从sessionStorage中传递token

异常自定义:Fetch.systemError、Fetch.serverError、Fetch.unknownError

todo:loading 文件上传、下载进度

安装

npm i venusource-commons

使用

import Fetch from 'venusource-commons/lib/http/index'

<template>
  <div id="app">
    <input type="file"></input>
    <span @click="doUpload">上传文件</span>
  </div>
</template>

<script>
  // import Fetch from './api/http/index'
  import Fetch from 'venusource-commons/lib/http/index'

  export default {
    name: 'app',
    data() {
      return {
        appCode: 'survey',
        baseUrl: 'http://192.168.0.101:9002'
      }
    },
    created() {
      sessionStorage.setItem('token', 'xuwei');
      Fetch.systemError = msg => {
        console.log('systemError:' + msg);
      };
      Fetch.serverError = msg => {
        console.log('serverError:' + msg);
      };
      Fetch.unknownError = msg => {
        console.log('unknownError:' + msg);
      };
      this.doLoad();
      // this.doSave();
      // this.doDownload();
    },
    methods: {
      async doLoad() {
        let authUrl = window.location.href.split('#')[0];
        let query = {
          url: authUrl,
          appCode: this.appCode
        };
        let result = await Fetch(this.baseUrl + '/weixin-api/config', {
          method: 'get',
          query
        });
      },
      async doSave() {
        let url = this.baseUrl + "/survey-api/category/save";
        let entity = {
          "categoryCode": "test",
          "categoryName": "测试",
          "orderNo": 100
        };
        let result = await Fetch(url, {
          method: 'post',
          body: entity
        });
      },
      async doDownload() {
        let url = this.baseUrl + '/survey-api/excel/download/b16ab6a96f8dfb7b016f8e0ea7360000';
        await Fetch(url, {
          method: 'get',
          headers: {
            'Content-Type': 'application/octet-stream'
          }
        });
      },
      async doUpload() {
        let url = this.baseUrl + '/survey-api/attachment/upload/file';
        let formData = new FormData();
        let fileField = document.querySelector("input[type='file']");
        formData.append('file', fileField.files[0]);
        formData.append('name', 'aaa');
        await Fetch(url, {
          method: 'post',
          headers: {
            'Content-Type': 'multipart/form-data'
          },
          body: formData
        });
      }
    }
  }
</script>