Commit 96a035a6 authored by cenlijie's avatar cenlijie

feat: axios loading

parent de1573a9
<template> <template>
<div class="start-wrapper"> <div class="start-wrapper">
<a-spin :delay="500" :spinning="loading"> <a-spin :spinning="loading">
<h3 style="margin-bottom: 20px">项目初始代码生成</h3> <h3 style="margin-bottom: 20px">项目初始代码生成</h3>
<a-form ref="downloadForm" :labelCol="{span: 6}" :model="formState" :rules="formRules" :wrapperCol="{span: 18}" class="form-wrapper"> <a-form ref="downloadForm" :labelCol="{span: 6}" :model="formState" :rules="formRules" :wrapperCol="{span: 18}" class="form-wrapper">
<a-form-item has-feedback label="GroupId" name="groupId"> <a-form-item has-feedback label="GroupId" name="groupId">
...@@ -30,10 +30,10 @@ ...@@ -30,10 +30,10 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import {reactive, ref} from 'vue' import {reactive, ref, computed} from 'vue'
import type {TreeProps} from 'ant-design-vue'; import type {TreeProps} from 'ant-design-vue';
import {FormInstance, message} from "ant-design-vue"; import {FormInstance, message} from "ant-design-vue";
import request from "../utils/request"; import request, {isLoading} from "../utils/request";
import BaseResponse from "../models/BaseResponse"; import BaseResponse from "../models/BaseResponse";
interface FormState { interface FormState {
...@@ -54,7 +54,7 @@ const fileNodeList = ref<FileNode[]>([]) ...@@ -54,7 +54,7 @@ const fileNodeList = ref<FileNode[]>([])
const treeData = ref<TreeProps['treeData']>([]) const treeData = ref<TreeProps['treeData']>([])
const id = ref(-1) const id = ref(-1)
const visible = ref(false) const visible = ref(false)
const loading = ref(false) const loading = computed(() => isLoading.value)
const downloadForm = ref<FormInstance>(); const downloadForm = ref<FormInstance>();
const formState = reactive<FormState>({ const formState = reactive<FormState>({
...@@ -75,16 +75,11 @@ const onGenerate = async () => { ...@@ -75,16 +75,11 @@ const onGenerate = async () => {
if (!result.packageNama) { if (!result.packageNama) {
result.packageNama = result.groupId result.packageNama = result.groupId
} }
loading.value = true
try { let data: BaseResponse = await request.post('/archetype/generate', result)
let data: BaseResponse = await request.post('/archetype/generate', result) if (data.code === 0) {
if (data.code === 0) { id.value = data.result
id.value = data.result message.success('生成成功!')
message.success('生成成功!')
loading.value = false
}
} catch (e) {
loading.value = false
} }
} }
} }
...@@ -179,4 +174,4 @@ const createTreeData = (fileNodeList: FileNode[]): any => { ...@@ -179,4 +174,4 @@ const createTreeData = (fileNodeList: FileNode[]): any => {
border-radius: 6px; border-radius: 6px;
} }
} }
</style> </style>
\ No newline at end of file
import type {AxiosResponse} from "axios"; import type { AxiosRequestConfig, AxiosResponse } from "axios";
import axios from "axios"; import axios from "axios";
import {message} from "ant-design-vue"; import {message} from "ant-design-vue";
import { ref } from 'vue'
export const isLoading = ref(false)
// @ts-ignore // @ts-ignore
axios.defaults.baseURL = import.meta.env.VITE_APP_BASE_URL axios.defaults.baseURL = import.meta.env.VITE_APP_BASE_URL
axios.interceptors.request.use((config: AxiosRequestConfig) => {
isLoading.value = true
return config
})
axios.interceptors.response.use((config: AxiosResponse) => { axios.interceptors.response.use((config: AxiosResponse) => {
isLoading.value = false
const {data} = config const {data} = config
if (config.headers['content-type'] === 'application/json') { if (config.headers['content-type'] === 'application/json') {
switch (data.code) { switch (data.code) {
...@@ -19,4 +28,4 @@ axios.interceptors.response.use((config: AxiosResponse) => { ...@@ -19,4 +28,4 @@ axios.interceptors.response.use((config: AxiosResponse) => {
} }
}) })
export default axios export default axios
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment