Giter Club home page Giter Club logo

beppo-vue-admin's Introduction

依赖安装与使用

vue-router

  yarn add vue-router@4
// routers/route.ts
import { createRouter, createWebHistory } from 'vue-router'

const router = createRouter({
  history: createWebHistory(),
  routes: []
})

export default router
// main.ts
import router from './routers/routers'

const app = createApp(App)
app.use(router)

element-plus

yarn add element-plus
//vite.config.ts
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
.....
plugins: [
    vue(),
    AutoImport({
      resolvers: [ElementPlusResolver()]
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ],
  .....

iconify

yarn add --dev @iconify/vue
// components/Bicon
<template>
  <div class="inline-block mx-0.5">
    <Icon :icon="icon" :height="height" />
  </div>
</template>

<script setup lang="ts">
import { Icon } from '@iconify/vue'
import { defineProps } from 'vue'
const props = defineProps<{
  icon: string
  height?: string
}>()
</script>

Mock

yarn add mockjs
yarn add vite-plugin-mock
// vite.config.ts
import { viteMockServe } from 'vite-plugin-mock'

......
plugin:[
  viteMockServe({
    supportTs: true,
    mockPath: 'src/mock',
    localEnabled: env.VITE_USE_MOCK as unknown as boolean,
    watchFiles: true // 监视文件更改
  })
]
// mock/index.ts

import { MockMethod } from 'vite-plugin-mock'
import Mock from 'mockjs'

export default [
  {
    url:'/v1/user/getVerficationCode',
    method: '',
    response: {
      code: 200,
      msg: '验证码获取成功'
      data: {
        code: Mock.mock(`@string("${verficationCodeTem}", 5)`)
      }
    }
  }
] as MockMethod[]

Axios

yarn add axios
// utils/request
import axios, { AxiosRequestConfig, AxiosResponse } from 'axios'
import { ElMessage } from 'element-plus'

const service = axios.create({
  baseUrl: impor.meta.env.VITE_APP_BASE_URL,
  timeout: 20000
})

service.interceptors.request.use(
  (config: AxiosRequestConfig) => {
    // 设置token,jwt鉴权
    return config
  },
  (error: any) => {
    return Promise.reject(error)
  }
)

service.interceptors.response.use(
  (response: AxiosResponse) => {
    const { code, msg } = response || {}
    if (code !== 200) {
      return Promise.reject(msg)
    }
    if (code === 401) {
      return Promise.reject(msg)
    }
    return Promise.resolve(response)
  },
  (error: any) => {
    const { response } = error
    if (response) {
      ElMessage.error(response.msg)
    } else {
      ElMessage.error('网路异常,请稍后重试!')
    }
  }
)

export default service
// hooks/useHttp.ts
import service from '@/utils/request'
import { Method } from 'axios'

interface HTTPConfig {
  url: string
  method: Method
  data?: {[key:string]: any}
  params?: {[key:string]: any}
}

const useHttp = <T>(config: HTTPConfig): Promise<T> => {
  return New Promise((reslove,reject) => {
    service({
      url: config.url,
      method: config.method,
      data: config.data || {},
      params: config.params || {}
    }).then(res=>{
      reslove(res.data)
    }).catch(err => {
      reject(err)
    })
  })
}

export default useHttp
// api/types
export interface BaseResponse<T> {
  code: number
  msg: string
  data: T
}
// api/user.ts
import useHttp from '@/hooks/useHttp'
import { BaseResponse } from '@/api/typs'

export const getVerfication = () => {
  return useHttp:<BaseResponse<{code: string}>>({
    url: '/v1/user/getVerficationCode',
    method: 'GET'
  })
}

export interface LoginParams {
  account: string
  password: string
  code: string
}

export const login = (params: LoginParams) => {
  return useHttp:<BaseResponse<LoginParams>>({
    url: '/v1/use/login',
    method: 'POST',
    data: {...params}
  })
}

beppo-vue-admin's People

Contributors

wagntao913 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.