| import Mock from 'mockjs'; | 
| import setupMock, { successResponseWrap } from '@/utils/setup-mock'; | 
| import { PostData } from '@/types/global'; | 
|   | 
| setupMock({ | 
|   setup() { | 
|     Mock.mock( | 
|       new RegExp('/api/public-opinion-analysis'), | 
|       (params: PostData) => { | 
|         const { quota = 'visitors' } = JSON.parse(params.body); | 
|         if (['visitors', 'comment'].includes(quota)) { | 
|           const year = new Date().getFullYear(); | 
|           const getLineData = (name: number) => { | 
|             return new Array(12).fill(0).map((_item, index) => ({ | 
|               x: `${index + 1}月`, | 
|               y: Mock.Random.natural(0, 100), | 
|               name: String(name), | 
|             })); | 
|           }; | 
|           return successResponseWrap({ | 
|             count: 5670, | 
|             growth: 206.32, | 
|             chartData: [...getLineData(year), ...getLineData(year - 1)], | 
|           }); | 
|         } | 
|         if (['published'].includes(quota)) { | 
|           const year = new Date().getFullYear(); | 
|           const getLineData = (name: number) => { | 
|             return new Array(12).fill(0).map((_item, index) => ({ | 
|               x: `${index + 1}日`, | 
|               y: Mock.Random.natural(20, 100), | 
|               name: String(name), | 
|             })); | 
|           }; | 
|           return successResponseWrap({ | 
|             count: 5670, | 
|             growth: 206.32, | 
|             chartData: [...getLineData(year)], | 
|           }); | 
|         } | 
|         return successResponseWrap({ | 
|           count: 5670, | 
|           growth: 206.32, | 
|           chartData: [ | 
|             // itemStyle for demo | 
|             { name: '文本类', value: 25, itemStyle: { color: '#8D4EDA' } }, | 
|             { name: '图文类', value: 35, itemStyle: { color: '#165DFF' } }, | 
|             { name: '视频类', value: 40, itemStyle: { color: '#00B2FF' } }, | 
|           ], | 
|         }); | 
|       } | 
|     ); | 
|   | 
|     Mock.mock(new RegExp('/api/content-period-analysis'), () => { | 
|       const getLineData = (name: string) => { | 
|         return { | 
|           name, | 
|           value: new Array(12).fill(0).map(() => Mock.Random.natural(30, 90)), | 
|         }; | 
|       }; | 
|       return successResponseWrap({ | 
|         xAxis: new Array(12).fill(0).map((_item, index) => `${index * 2}:00`), | 
|         data: [ | 
|           getLineData('纯文本'), | 
|           getLineData('图文类'), | 
|           getLineData('视频类'), | 
|         ], | 
|       }); | 
|     }); | 
|   | 
|     Mock.mock(new RegExp('/api/content-publish'), () => { | 
|       const generateLineData = (name: string) => { | 
|         const result = { | 
|           name, | 
|           x: [] as string[], | 
|           y: [] as number[], | 
|         }; | 
|         new Array(12).fill(0).forEach((_item, index) => { | 
|           result.x.push(`${index * 2}:00`); | 
|           result.y.push(Mock.Random.natural(1000, 3000)); | 
|         }); | 
|         return result; | 
|       }; | 
|       return successResponseWrap([ | 
|         generateLineData('纯文本'), | 
|         generateLineData('图文类'), | 
|         generateLineData('视频类'), | 
|       ]); | 
|     }); | 
|   | 
|     Mock.mock(new RegExp('/api/popular-author/list'), () => { | 
|       const generateData = () => { | 
|         const list = new Array(7).fill(0).map((_item, index) => ({ | 
|           ranking: index + 1, | 
|           author: Mock.mock('@ctitle(5)'), | 
|           contentCount: Mock.mock(/[0-9]{4}/), | 
|           clickCount: Mock.mock(/[0-9]{4}/), | 
|         })); | 
|         return { | 
|           list, | 
|         }; | 
|       }; | 
|       return successResponseWrap({ | 
|         ...generateData(), | 
|       }); | 
|     }); | 
|   }, | 
| }); |