|
@@ -1,5 +1,6 @@
|
|
|
-import { moduleRequest } from '@/utils/request'
|
|
|
|
|
|
|
+import {moduleRequest} from '@/utils/request'
|
|
|
import Mock from 'mockjs'
|
|
import Mock from 'mockjs'
|
|
|
|
|
+import ForEach from "lodash-es/forEach";
|
|
|
|
|
|
|
|
const request = moduleRequest(`/api/webapp/`)
|
|
const request = moduleRequest(`/api/webapp/`)
|
|
|
|
|
|
|
@@ -116,6 +117,7 @@ const generateMockData = (filters = {}) => {
|
|
|
const formatCounts = generateFormatCounts()
|
|
const formatCounts = generateFormatCounts()
|
|
|
|
|
|
|
|
return {
|
|
return {
|
|
|
|
|
+ filterResponse: getFilterData(),
|
|
|
// 摘要数据
|
|
// 摘要数据
|
|
|
summaryData: {
|
|
summaryData: {
|
|
|
code: 200,
|
|
code: 200,
|
|
@@ -233,73 +235,377 @@ const generateMockData = (filters = {}) => {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// API函数 - 每次调用都生成新的动态数据,传入筛选参数
|
|
// API函数 - 每次调用都生成新的动态数据,传入筛选参数
|
|
|
-export const getSummaryData = (params = {}) => {
|
|
|
|
|
|
|
+export const getSummaryData = async (params = {}) => {
|
|
|
// return new Promise((resolve) => {
|
|
// return new Promise((resolve) => {
|
|
|
// setTimeout(() => {
|
|
// setTimeout(() => {
|
|
|
// const mockData = generateMockData(params)
|
|
// const mockData = generateMockData(params)
|
|
|
// resolve(mockData.summaryData)
|
|
// resolve(mockData.summaryData)
|
|
|
// }, Mock.mock('@integer(200, 500)')) // 随机延迟
|
|
// }, Mock.mock('@integer(200, 500)')) // 随机延迟
|
|
|
// })
|
|
// })
|
|
|
|
|
+
|
|
|
|
|
+ let res = await request('/resourceStatistic/totalStatistic', params, 'get')
|
|
|
|
|
+ console.log('什么呢1233', res)
|
|
|
|
|
+ let json = {
|
|
|
|
|
+ code: 200,
|
|
|
|
|
+ data: {
|
|
|
|
|
+ totalResources: res.RESOURCE_TOTAL,
|
|
|
|
|
+ totalStorage: `${kbToTb(res.storageSize)}TB`,
|
|
|
|
|
+ totalCapacity: `${kbToTb(res.totalStorageSize)}TB`,
|
|
|
|
|
+ usageRate: `${((parseFloat(res.storageSize) / res.totalStorageSize) * 100).toFixed(0)}%`,
|
|
|
|
|
+ totalViews: res.WATCH_TOTAL,
|
|
|
|
|
+ totalFavorites: res.COLLECT_TOTAL
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // {
|
|
|
|
|
+ // "RESOURCE_TOTAL": 34, 总资源数
|
|
|
|
|
+ // "TOTAL_STORAGE_SIZE": 20480, 总存储空间
|
|
|
|
|
+ // "COLLECT_TOTAL": 9, 总收藏数
|
|
|
|
|
+ // "WATCH_TOTAL": 471, 总观看数
|
|
|
|
|
+ // "storageSize": 1726487824,
|
|
|
|
|
+ // "totalStorageSize": 21474836480
|
|
|
|
|
+ // }
|
|
|
|
|
+ // totalResources: '0',
|
|
|
|
|
+ // totalStorage: '0 TB',
|
|
|
|
|
+ // totalCapacity: '10 TB',
|
|
|
|
|
+ // usageRate: '0%',
|
|
|
|
|
+ // totalViews: '0',
|
|
|
|
|
+ // totalFavorites: '0'
|
|
|
// 真实接口调用:
|
|
// 真实接口调用:
|
|
|
- return request('resourceStatistic/totalStatistic', params, 'get')
|
|
|
|
|
|
|
+ // return request('/resource-library/summary', params, 'get')
|
|
|
|
|
+ console.log('什么呢', json)
|
|
|
|
|
+ return json
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+function kbToTb(kb) {
|
|
|
|
|
+ const tb = kb / 1073741824;
|
|
|
|
|
+ return parseFloat(tb.toFixed(2));
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+export const getFilterData = async (params = {}) => {
|
|
|
|
|
+ let colleges = await request('resourceStatistic/selectOrgList', params, 'get')
|
|
|
|
|
+ colleges.unshift({
|
|
|
|
|
+ id: 'all',
|
|
|
|
|
+ name: '全部院系'
|
|
|
|
|
+ })
|
|
|
|
|
+ console.log("什么呢sss", colleges)
|
|
|
|
|
+ let json = {
|
|
|
|
|
+ code: 200,
|
|
|
|
|
+ data: colleges
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return json
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-export const getResourceTypeData = (params = {}) => {
|
|
|
|
|
- return new Promise((resolve) => {
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- const mockData = generateMockData(params)
|
|
|
|
|
- resolve(mockData.resourceTypeData)
|
|
|
|
|
- }, Mock.mock('@integer(200, 500)'))
|
|
|
|
|
|
|
+export const getResourceTypeData = async (params = {}) => {
|
|
|
|
|
+ let resourceTypeStatistic = await request('resourceStatistic/resourceTypeStatistic', params, 'get')
|
|
|
|
|
+ console.log('左面的', resourceTypeStatistic)
|
|
|
|
|
+ let types = []
|
|
|
|
|
+ let typeCounts = []
|
|
|
|
|
+ ForEach(resourceTypeStatistic, (item) => {
|
|
|
|
|
+ types.push(item.resourceTypeName)
|
|
|
|
|
+ typeCounts.push(item.num)
|
|
|
})
|
|
})
|
|
|
|
|
+
|
|
|
|
|
+ // types: types,
|
|
|
|
|
+ // typeCounts: typeCounts,
|
|
|
|
|
+ let json = {
|
|
|
|
|
+ code: 200,
|
|
|
|
|
+ data: {
|
|
|
|
|
+ types,
|
|
|
|
|
+ typeCounts,
|
|
|
|
|
+ typeStorage: []
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return json
|
|
|
|
|
+
|
|
|
|
|
+ // return new Promise((resolve) => {
|
|
|
|
|
+ // setTimeout(() => {
|
|
|
|
|
+ // const mockData = generateMockData(params)
|
|
|
|
|
+ // resolve(mockData.resourceTypeData)
|
|
|
|
|
+ // }, Mock.mock('@integer(200, 500)'))
|
|
|
|
|
+ // })
|
|
|
// return request('/resource-library/type-distribution', params, 'get')
|
|
// return request('/resource-library/type-distribution', params, 'get')
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-export const getDepartmentData = (params = {}) => {
|
|
|
|
|
- return new Promise((resolve) => {
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- const mockData = generateMockData(params)
|
|
|
|
|
- resolve(mockData.departmentData)
|
|
|
|
|
- }, Mock.mock('@integer(200, 500)'))
|
|
|
|
|
|
|
+export const getDepartmentData = async (params = {}) => {
|
|
|
|
|
+ let collegeStatistic = await request('resourceStatistic/collegeStatistic', params, 'get')
|
|
|
|
|
+ let departments = []
|
|
|
|
|
+ let departmentCounts = []
|
|
|
|
|
+ ForEach(collegeStatistic, (item) => {
|
|
|
|
|
+ departments.push(item.collegeName)
|
|
|
|
|
+ departmentCounts.push(item.num)
|
|
|
})
|
|
})
|
|
|
|
|
+ let json = {
|
|
|
|
|
+ code: 200,
|
|
|
|
|
+ data: {
|
|
|
|
|
+ departments,
|
|
|
|
|
+ departmentCounts,
|
|
|
|
|
+ departmentStorage: []
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return json
|
|
|
|
|
+
|
|
|
|
|
+ // return new Promise((resolve) => {
|
|
|
|
|
+ // setTimeout(() => {
|
|
|
|
|
+ // const mockData = generateMockData(params)
|
|
|
|
|
+ // resolve(mockData.departmentData)
|
|
|
|
|
+ // }, Mock.mock('@integer(200, 500)'))
|
|
|
|
|
+ // })
|
|
|
|
|
+ //
|
|
|
|
|
+ // departments: departments,
|
|
|
|
|
+ // departmentCounts: departmentCounts,
|
|
|
|
|
+ // departmentStorage: departmentCounts.map((count) =>
|
|
|
// return request('/resource-library/department-distribution', params, 'get')
|
|
// return request('/resource-library/department-distribution', params, 'get')
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-export const getVisibilityData = (params = {}) => {
|
|
|
|
|
- return new Promise((resolve) => {
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- const mockData = generateMockData(params)
|
|
|
|
|
- resolve(mockData.visibilityData)
|
|
|
|
|
- }, Mock.mock('@integer(200, 500)'))
|
|
|
|
|
|
|
+export const getVisibilityData = async (params = {}) => {
|
|
|
|
|
+ // return new Promise((resolve) => {
|
|
|
|
|
+ // setTimeout(() => {
|
|
|
|
|
+ // const mockData = generateMockData(params)
|
|
|
|
|
+ // resolve(mockData.visibilityData)
|
|
|
|
|
+ // }, Mock.mock('@integer(200, 500)'))
|
|
|
|
|
+ // })
|
|
|
|
|
+ let resourcePublicStatistic = await request('resourceStatistic/resourcePublicStatistic', params, 'get')
|
|
|
|
|
+ let visibility = ['非公开', '公开']
|
|
|
|
|
+ let visibilityCounts = []
|
|
|
|
|
+ ForEach(resourcePublicStatistic, (item) => {
|
|
|
|
|
+ visibilityCounts.push(item.num)
|
|
|
})
|
|
})
|
|
|
|
|
+ let hotness = []
|
|
|
|
|
+ let hotnessCounts = []
|
|
|
|
|
+ let recommended = ['已推荐', '未推荐']
|
|
|
|
|
+
|
|
|
|
|
+ let hotStatistic = await request('resourceStatistic/hotStatistic', params, 'get')
|
|
|
|
|
+ ForEach(hotStatistic, (item) => {
|
|
|
|
|
+ //1推荐 2热门 3推荐和热门
|
|
|
|
|
+ if (item.type == 1) {
|
|
|
|
|
+ hotness.push('推荐')
|
|
|
|
|
+ }
|
|
|
|
|
+ if (item.type == 2) {
|
|
|
|
|
+ hotness.push('热门')
|
|
|
|
|
+ }
|
|
|
|
|
+ if (item.type == 3) {
|
|
|
|
|
+ hotness.push('推荐和热门')
|
|
|
|
|
+ }
|
|
|
|
|
+ hotnessCounts.push(item.num)
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ console.log('接口看看', hotStatistic)
|
|
|
|
|
+ let recommendedCounts = [12, 13]
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ let json = {
|
|
|
|
|
+ code: 200,
|
|
|
|
|
+ data: {
|
|
|
|
|
+ visibility,
|
|
|
|
|
+ visibilityCounts,
|
|
|
|
|
+ hotness,
|
|
|
|
|
+ hotnessCounts,
|
|
|
|
|
+ recommended,
|
|
|
|
|
+ recommendedCounts
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return json
|
|
|
|
|
+ // data: {
|
|
|
|
|
+ // visibility: ['公开', '非公开'],
|
|
|
|
|
+ // visibilityCounts: [
|
|
|
|
|
+ // Math.floor(adjustedTotalResources * 0.75), // 75%公开
|
|
|
|
|
+ // Math.floor(adjustedTotalResources * 0.25) // 25%非公开
|
|
|
|
|
+ // ],
|
|
|
|
|
+ // hotness: ['热门', '非热门'],
|
|
|
|
|
+ // hotnessCounts: [
|
|
|
|
|
+ // Math.floor(adjustedTotalResources * 0.2), // 20%热门
|
|
|
|
|
+ // Math.floor(adjustedTotalResources * 0.8) // 80%非热门
|
|
|
|
|
+ // ],
|
|
|
|
|
+ // recommended: ['已推荐', '未推荐'],
|
|
|
|
|
+ // recommendedCounts: [
|
|
|
|
|
+ // Math.floor(adjustedTotalResources * 0.15), // 15%已推荐
|
|
|
|
|
+ // Math.floor(adjustedTotalResources * 0.85) // 85%未推荐
|
|
|
|
|
+ // ]
|
|
|
|
|
+ // }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
// return request('/resource-library/visibility-analysis', params, 'get')
|
|
// return request('/resource-library/visibility-analysis', params, 'get')
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-export const getFormatData = (params = {}) => {
|
|
|
|
|
- return new Promise((resolve) => {
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- const mockData = generateMockData(params)
|
|
|
|
|
- resolve(mockData.formatData)
|
|
|
|
|
- }, Mock.mock('@integer(200, 500)'))
|
|
|
|
|
|
|
+export const getFormatData = async (params = {}) => {
|
|
|
|
|
+ // return new Promise((resolve) => {
|
|
|
|
|
+ // setTimeout(() => {
|
|
|
|
|
+ // const mockData = generateMockData(params)
|
|
|
|
|
+ // resolve(mockData.formatData)
|
|
|
|
|
+ // }, Mock.mock('@integer(200, 500)'))
|
|
|
|
|
+ // })
|
|
|
|
|
+ let formatStatistic = await request('resourceStatistic/formatStatistic', params, 'get')
|
|
|
|
|
+ let formats = []
|
|
|
|
|
+ let formatCounts = []
|
|
|
|
|
+ ForEach(formatStatistic, (item) => {
|
|
|
|
|
+ formats.push(item.extendName)
|
|
|
|
|
+ formatCounts.push(item.num)
|
|
|
|
|
+ })
|
|
|
|
|
+ let storageStatistic = await request('resourceStatistic/storageStatistic', params, 'get')
|
|
|
|
|
+ console.log('内存', storageStatistic)
|
|
|
|
|
+ let formatAvgSize = []
|
|
|
|
|
+ ForEach(storageStatistic, (item) => {
|
|
|
|
|
+ formatAvgSize.push(item.extendName)
|
|
|
})
|
|
})
|
|
|
|
|
+
|
|
|
|
|
+ let json = {
|
|
|
|
|
+ code: 200,
|
|
|
|
|
+ data: {
|
|
|
|
|
+ formats,
|
|
|
|
|
+ formatCounts,
|
|
|
|
|
+ formatStorage: storageStatistic.map((item) => {
|
|
|
|
|
+ let size = (item.FILESIZE) * parseFloat(1).toFixed(2)
|
|
|
|
|
+ console.log("asdasd", item.FILESIZE)
|
|
|
|
|
+ return `${(item.FILESIZE / 1000 / 1000).toFixed(2)}`
|
|
|
|
|
+ }
|
|
|
|
|
+ ),
|
|
|
|
|
+ formatAvgSize: storageStatistic.map((format, index) => {
|
|
|
|
|
+ // 根据文件类型设置合理的平均大小
|
|
|
|
|
+ const size = format.avgSize
|
|
|
|
|
+ // if (size > 1000) return `${(size / 1000).toFixed(1)}MB`
|
|
|
|
|
+ return `${(size / 1000 / 1000).toFixed(2)}MB`
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return json
|
|
|
|
|
+
|
|
|
|
|
+ // formatData: {
|
|
|
|
|
+ // code: 200,
|
|
|
|
|
+ // data: {
|
|
|
|
|
+ // formats: formats,
|
|
|
|
|
+ // formatCounts: formatCounts,
|
|
|
|
|
+ // formatStorage: formatCounts.map((count) =>
|
|
|
|
|
+ // ((count / adjustedTotalResources) * parseFloat(adjustedUsedStorage)).toFixed(2)
|
|
|
|
|
+ // ),
|
|
|
|
|
+ // formatAvgSize: formats.map((format, index) => {
|
|
|
|
|
+ // // 根据文件类型设置合理的平均大小
|
|
|
|
|
+ // const sizeMap = {
|
|
|
|
|
+ // mp4: Mock.mock('@integer(200, 800)'),
|
|
|
|
|
+ // avi: Mock.mock('@integer(300, 1000)'),
|
|
|
|
|
+ // wmv: Mock.mock('@integer(150, 600)'),
|
|
|
|
|
+ // mkv: Mock.mock('@integer(400, 1200)'),
|
|
|
|
|
+ // pdf: Mock.mock('@integer(5, 50)'),
|
|
|
|
|
+ // docx: Mock.mock('@integer(2, 20)'),
|
|
|
|
|
+ // pptx: Mock.mock('@integer(10, 100)'),
|
|
|
|
|
+ // xlsx: Mock.mock('@integer(1, 15)'),
|
|
|
|
|
+ // jpg: Mock.mock('@integer(1, 10)'),
|
|
|
|
|
+ // other: Mock.mock('@integer(5, 200)')
|
|
|
|
|
+ // }
|
|
|
|
|
+ //
|
|
|
|
|
+ // const size = sizeMap[format] || Mock.mock('@integer(1, 100)')
|
|
|
|
|
+ // if (size > 1000) return `${(size / 1000).toFixed(1)}GB`
|
|
|
|
|
+ // return `${size}MB`
|
|
|
|
|
+ // })
|
|
|
|
|
+ // }
|
|
|
|
|
+ // },
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
// return request('/resource-library/format-distribution', params, 'get')
|
|
// return request('/resource-library/format-distribution', params, 'get')
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-export const getEngagementData = (params = {}) => {
|
|
|
|
|
- return new Promise((resolve) => {
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- const mockData = generateMockData(params)
|
|
|
|
|
- resolve(mockData.engagementData)
|
|
|
|
|
- }, Mock.mock('@integer(200, 500)'))
|
|
|
|
|
|
|
+export const getEngagementData = async (params = {}) => {
|
|
|
|
|
+ // return new Promise((resolve) => {
|
|
|
|
|
+ // setTimeout(() => {
|
|
|
|
|
+ // const mockData = generateMockData(params)
|
|
|
|
|
+ // resolve(mockData.engagementData)
|
|
|
|
|
+ // }, Mock.mock('@integer(200, 500)'))
|
|
|
|
|
+ // })
|
|
|
|
|
+ let selectResourceUse = await request('resourceStatistic/selectResourceUse', params, 'get')
|
|
|
|
|
+ let selectResourceCans = await request('resourceStatistic/selectResourceCans', params, 'get')
|
|
|
|
|
+ console.log('001 ', selectResourceUse)
|
|
|
|
|
+ console.log('003 ', selectResourceCans)
|
|
|
|
|
+ let engagement = []
|
|
|
|
|
+ let engagementCounts = []
|
|
|
|
|
+ let typeViewCounts = []
|
|
|
|
|
+ ForEach(selectResourceUse, (item) => {
|
|
|
|
|
+ //1、资源观看 2资源收藏 3资源分享
|
|
|
|
|
+ if (item.type == 1) {
|
|
|
|
|
+ engagement.push('资源观看')
|
|
|
|
|
+ engagementCounts.push(item.num)
|
|
|
|
|
+ }
|
|
|
|
|
+ if (item.type == 2) {
|
|
|
|
|
+ engagement.push('资源收藏')
|
|
|
|
|
+ engagementCounts.push(item.num)
|
|
|
|
|
+ }
|
|
|
|
|
+ if (item.type == 3) {
|
|
|
|
|
+ engagement.push('资源分享')
|
|
|
|
|
+ engagementCounts.push(item.num)
|
|
|
|
|
+ }
|
|
|
})
|
|
})
|
|
|
|
|
+ ForEach(selectResourceCans, (item) => {
|
|
|
|
|
+ //1、资源观看 2资源收藏 3资源分享
|
|
|
|
|
+ typeViewCounts.push(item.num)
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ let json = {
|
|
|
|
|
+ code: 200,
|
|
|
|
|
+ data: {
|
|
|
|
|
+ engagement,
|
|
|
|
|
+ engagementCounts,
|
|
|
|
|
+ typeViewCounts
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return json
|
|
|
// return request('/resource-library/engagement-analysis', params, 'get')
|
|
// return request('/resource-library/engagement-analysis', params, 'get')
|
|
|
|
|
+ // 用户参与度数据
|
|
|
|
|
+ // engagementData: {
|
|
|
|
|
+ // code: 200,
|
|
|
|
|
+ // data: {
|
|
|
|
|
+ // engagement: ['观看', '收藏', '分享'],
|
|
|
|
|
+ // engagementCounts: [
|
|
|
|
|
+ // adjustedViews,
|
|
|
|
|
+ // adjustedFavorites,
|
|
|
|
|
+ // Math.floor(adjustedFavorites * 0.3) // 分享数约为收藏数的30%
|
|
|
|
|
+ // ],
|
|
|
|
|
+ // typeViewCounts: typeCounts.map((count) => Math.floor(count * (2 + Math.random() * 3))) // 每个资源平均2-5次观看
|
|
|
|
|
+ // }
|
|
|
|
|
+ // },
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-export const getTrendData = (params = {}) => {
|
|
|
|
|
- return new Promise((resolve) => {
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- const mockData = generateMockData(params)
|
|
|
|
|
- resolve(mockData.trendData)
|
|
|
|
|
- }, Mock.mock('@integer(200, 500)'))
|
|
|
|
|
|
|
+export const getTrendData = async (params = {}) => {
|
|
|
|
|
+ // return new Promise((resolve) => {
|
|
|
|
|
+ // setTimeout(() => {
|
|
|
|
|
+ // const mockData = generateMockData(params)
|
|
|
|
|
+ // resolve(mockData.trendData)
|
|
|
|
|
+ // }, Mock.mock('@integer(200, 500)'))
|
|
|
|
|
+ // })
|
|
|
|
|
+ let selectResourceUpload = await request('resourceStatistic/selectResourceUpload', params, 'get')
|
|
|
|
|
+ console.log('002 ',selectResourceUpload)
|
|
|
|
|
+ let engagement = []
|
|
|
|
|
+ let trendLabels = []
|
|
|
|
|
+ let uploadTrend = []
|
|
|
|
|
+ let viewTrend = []
|
|
|
|
|
+ ForEach(selectResourceUpload, (item) => {
|
|
|
|
|
+ //1、资源观看 2资源收藏 3资源分享
|
|
|
|
|
+ trendLabels.push(item.createMonth)
|
|
|
|
|
+ uploadTrend.push(item.uploadNum)
|
|
|
|
|
+ viewTrend.push(item.seeNum)
|
|
|
})
|
|
})
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ let json = {
|
|
|
|
|
+ code: 200,
|
|
|
|
|
+ data : {
|
|
|
|
|
+ trendLabels,
|
|
|
|
|
+ uploadTrend,
|
|
|
|
|
+ viewTrend
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return json
|
|
|
|
|
+ // 时间趋势数据
|
|
|
|
|
+ // trendData: {
|
|
|
|
|
+ // code: 200,
|
|
|
|
|
+ // data: {
|
|
|
|
|
+ // trendLabels: months,
|
|
|
|
|
+ // uploadTrend: months.map(() => Math.floor((adjustedTotalResources / 12) * (0.6 + Math.random() * 0.8))), // 月均上传量有波动
|
|
|
|
|
+ // viewTrend: months.map(() => Math.floor((adjustedViews / 12) * (0.7 + Math.random() * 0.6))) // 月均观看量有波动
|
|
|
|
|
+ // }
|
|
|
|
|
+ // }
|
|
|
// return request('/resource-library/trend-analysis', params, 'get')
|
|
// return request('/resource-library/trend-analysis', params, 'get')
|
|
|
}
|
|
}
|