123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- import request from '@/config/axios'
- const apiUrl = {
- segment: '/manage/segment', // 按板块统计数据
- dept: '/manage/dept', // 按部门统计数据
- person: '/manage/person' // 按人员统计数据
- }
- export interface ISegment {
- /**
- * 合同余额
- */
- contractBalance: number
- /**
- * 本年开拓
- */
- newAmount: number
- /**
- * 应收款
- */
- receivableAmount: number
- /**
- * 本年回款
- */
- returnAmount: number
- /**
- * 板块
- */
- segment: string
- /**
- * 本年签约
- */
- signAmount: number
- /**
- * 分包额
- */
- subAmount: number | null
- /**
- * 分包已支付
- */
- subPayed: number | null
- /**
- * 分包待支付
- */
- subToPay: number | null
- }
- export interface IDept {
- // 合同余额
- contractBalance: number
- deptId: string
- // 部门
- deptName: string
- // 部门人数
- memberCount: number
- // 本年开拓
- newAmount: number
- // 应收款
- receivableAmount: number
- // 本年回款
- returnAmount: number | null
- // 本年签约
- signAmount: number
- }
- export interface IPerson {
- /**
- * 本年开拓
- */
- newAmount: number | null
- /**
- * 名字
- */
- nickname: string
- /**
- * 本年回款
- */
- returnAmount: number | null
- /**
- * 本年签约
- */
- signAmount: number | null
- /**
- * 用户id
- */
- userId: string
- }
- const segmentName = ['', '空间信息研究院', '空间规划研究院', '江苏分公司', '北京分公司']
- export const getSegmentData = async (params: { year: string }) => {
- const result: any = await request.get(
- {
- url: apiUrl.segment,
- params
- },
- '/business'
- )
- return result.map((item) => ({
- ...item,
- segment: segmentName[item.segment]
- }))
- }
- export const getDeptData = async (params: { year: string }) => {
- const result: any = await request.get(
- {
- url: apiUrl.dept,
- params
- },
- '/business'
- )
- return result
- return result.map((item) => ({
- ...item,
- signAmount: unitConversion(item.signAmount),
- returnAmount: unitConversion(item.returnAmount),
- newAmount: unitConversion(item.newAmount),
- receivableAmount: unitConversion(item.receivableAmount),
- contractBalance: unitConversion(item.contractBalance)
- }))
- }
- export const getPersonData = async (params: { year: string }) => {
- const result: any = await request.get(
- {
- url: apiUrl.person,
- params
- },
- '/business'
- )
- return result
- return result.map((item) => ({
- ...item,
- signAmount: unitConversion(item.signAmount),
- returnAmount: unitConversion(item.returnAmount),
- newAmount: unitConversion(item.newAmount)
- }))
- }
- // 处理一下数据单位
- export const unitConversion = (valueInTenThousand: number | null): string => {
- if (!valueInTenThousand) return ''
- // 判断值是否大于等于 1 万
- if (valueInTenThousand >= 10000) {
- // 将以万为单位的数字除以 10,000 来得到以万为单位的数字,并保留两位小数
- const valueInBillion = valueInTenThousand / 10000
- // 使用 toFixed 方法保留两位小数
- return valueInBillion.toFixed(2) + ' 万'
- } else {
- // 小于 1 亿的情况,以万为单位返回
- return `${valueInTenThousand} 元`
- }
- }
|