فهرست منبع

feat(custom): 增加mock功能

linyuanjie 3 ماه پیش
والد
کامیت
1cf8883c65

+ 1 - 1
.cz-config.cjs

@@ -1,6 +1,6 @@
 module.exports = {
   types: [
-    { value: 'feature', name: 'feature:  增加新功能' },
+    { value: 'feat', name: 'feature:  增加新功能' },
     { value: 'bug', name: 'bug:      测试反馈bug列表中的bug号' },
     { value: 'fix', name: 'fix:      修复bug' },
     { value: 'ui', name: 'ui:       更新UI' },

+ 1 - 1
commitlint.config.cjs

@@ -5,7 +5,7 @@ module.exports = {
       2,
       'always',
       [
-        'feature', // 新功能(feature)
+        'feat', // 新功能(feature)
         'bug', // 此项特别针对bug号,用于向测试反馈bug列表的bug修改情况
         'fix', // 修补bug
         'ui', // 更新 ui

+ 2 - 6
src/_mock/assets.js

@@ -1,4 +1,3 @@
-import useUserStore from '@/store/userStore'
 import { BasicStatus, PermissionType } from '#/enum'
 import { faker } from '@faker-js/faker'
 
@@ -582,16 +581,13 @@ if (import.meta.hot) {
 
     const { DEFAULT_USER, TEST_USER, PERMISSION_LIST } = newModule
 
-    const {
-      userInfo,
-      actions: { setUserInfo }
-    } = useUserStore.getState()
+    const userInfo = {}
 
     if (!userInfo?.username) return
 
     const newUserInfo = userInfo.username === DEFAULT_USER.username ? DEFAULT_USER : TEST_USER
 
-    setUserInfo(newUserInfo)
+    // setUserInfo(newUserInfo)
 
     console.log('[HMR] User permissions updated:', {
       username: newUserInfo.username,

+ 1 - 2
src/_mock/handlers/_demo.js

@@ -1,7 +1,6 @@
 import { http, HttpResponse } from 'msw'
-import { DemoApi } from '@/api/services/demoService'
 
-const mockTokenExpired = http.post(`/api${DemoApi.TOKEN_EXPIRED}`, () => {
+const mockTokenExpired = http.post('/api/user/tokenExpired', () => {
   return new HttpResponse(null, { status: 401 })
 })
 

+ 1 - 2
src/_mock/handlers/_org.js

@@ -1,8 +1,7 @@
 import { ORG_LIST } from '@/_mock/assets'
 import { http, HttpResponse } from 'msw'
-import { OrgApi } from '@/api/services/orgService'
 
-const orgList = http.get(`/api${OrgApi.Org}`, () => {
+const orgList = http.get('/api/org', () => {
   return HttpResponse.json({
     status: 0,
     message: '',

+ 15 - 3
src/_mock/handlers/_user.js

@@ -1,9 +1,8 @@
 import { faker } from '@faker-js/faker'
 import { delay, http, HttpResponse } from 'msw'
-import { UserApi } from '@/api/services/userService'
 import { USER_LIST } from '../assets'
 
-const signIn = http.post(`/api${UserApi.SignIn}`, async ({ request }) => {
+const signIn = http.post('/api/auth/signin', async ({ request }) => {
   const { username, password } = await request.json()
 
   const user = USER_LIST.find((item) => item.username === username)
@@ -41,4 +40,17 @@ const userList = http.get('/api/user', async () => {
   )
 })
 
-export default [signIn, userList]
+const homepageData = http.get('/api/homepage', () => {
+  return HttpResponse.json({
+    status: 0,
+    message: '',
+    data: {
+      title: 'Welcome to Vue3 Admin',
+      description:
+        'Vue3 Admin is a powerful admin template built with Vue3, Vite, TypeScript, Pinia, Vue-router, Ant Design Vue, and more.',
+      image: 'https://vue3-admin.com/images/vue3-admin.png'
+    }
+  })
+})
+
+export default [signIn, userList, homepageData]

+ 3 - 1
src/api/services/userService.ts

@@ -22,11 +22,13 @@ export enum UserApi {
 const signin = (data: SignInReq) => Request.post<SignInRes>({ url: UserApi.SignIn, data })
 const signup = (data: SignUpReq) => Request.post<SignInRes>({ url: UserApi.SignUp, data })
 const logout = () => Request.get({ url: UserApi.Logout })
+const homepageData = () => Request.get({ url: '/homepage' })
 const findById = (id: string) => Request.get<UserInfo[]>({ url: `${UserApi.User}/${id}` })
 
 export default {
   signin,
   signup,
   findById,
-  logout
+  logout,
+  homepageData
 }

+ 2 - 2
src/main.tsx

@@ -12,7 +12,7 @@ import 'virtual:svg-icons-register'
 import './theme/theme.css'
 import ProgressBar from './components/progress-bar'
 // mock api
-// import worker from './_mock'
+import worker from './_mock'
 // root component
 import App from './App'
 // css
@@ -36,4 +36,4 @@ root.render(
 )
 
 // 🥵 start service worker mock in development mode
-// worker.start({ onUnhandledRequest: "bypass" });
+worker.start({ onUnhandledRequest: 'bypass' })

+ 5 - 0
src/pages/dashboard/index.tsx

@@ -1,3 +1,4 @@
+import * as mockRequest from '@/api/services/userService'
 import { Col, Row, Space } from 'antd'
 import AreaDownload from './components/area-download'
 import BannerCard from './components/banner-card'
@@ -10,6 +11,10 @@ import TopRelated from './components/top-related'
 import TotalCard from './components/total-card'
 
 function Workbench() {
+  const fetchHomepageData = async () => {
+    mockRequest.default.homepageData()
+  }
+  fetchHomepageData()
   return (
     <div className='p-2'>
       <Row gutter={[16, 16]} justify='center'>