4 files deleted
4 files added
New file |
| | |
| | | const titles = [ |
| | | 'Alipay', |
| | | 'Angular', |
| | | 'Ant Design', |
| | | 'Ant Design Pro', |
| | | 'Bootstrap', |
| | | 'React', |
| | | 'Vue', |
| | | 'Webpack' |
| | | ]; |
| | | |
| | | const avatars = [ |
| | | 'https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png', // Alipay |
| | | 'https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png', // Angular |
| | | 'https://gw.alipayobjects.com/zos/rmsportal/dURIMkkrRFpPgTuzkwnB.png', // Ant Design |
| | | 'https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png', // Ant Design Pro |
| | | 'https://gw.alipayobjects.com/zos/rmsportal/siCrBXXhmvTQGWPNLBow.png', // Bootstrap |
| | | 'https://gw.alipayobjects.com/zos/rmsportal/kZzEzemZyKLKFsojXItE.png', // React |
| | | 'https://gw.alipayobjects.com/zos/rmsportal/ComBAopevLwENQdKWiIn.png', // Vue |
| | | 'https://gw.alipayobjects.com/zos/rmsportal/nxkuOJlFJuAUhzlMTCEe.png' // Webpack |
| | | ]; |
| | | const covers = [ |
| | | 'https://gw.alipayobjects.com/zos/rmsportal/HrxcVbrKnCJOZvtzSqjN.png', |
| | | 'https://gw.alipayobjects.com/zos/rmsportal/alaPpKWajEbIYEUvvVNf.png', |
| | | 'https://gw.alipayobjects.com/zos/rmsportal/RLwlKSYGSXGHuWSojyvp.png', |
| | | 'https://gw.alipayobjects.com/zos/rmsportal/gLaIAoVWTtLbBWZNYEMg.png' |
| | | ]; |
| | | const desc = [ |
| | | '那是一种内在的东西, 他们到达不了,也无法触及的', |
| | | '希望是一个好东西,也许是最好的,好东西是不会消亡的', |
| | | '生命就像一盒巧克力,结果往往出人意料', |
| | | '城镇中有那么多的酒馆,她却偏偏走进了我的酒馆', |
| | | '那时候我只会想自己想要什么,从不想自己拥有什么' |
| | | ]; |
| | | |
| | | const user = [ |
| | | '卡色', |
| | | 'cipchk', |
| | | '付小小', |
| | | '曲丽丽', |
| | | '林东东', |
| | | '周星星', |
| | | '吴加好', |
| | | '朱偏右', |
| | | '鱼酱', |
| | | '乐哥', |
| | | '谭小仪', |
| | | '仲尼' |
| | | ]; |
| | | |
| | | export function getFakeList(count: number = 20): any[] { |
| | | const list = []; |
| | | for (let i = 0; i < count; i += 1) { |
| | | list.push({ |
| | | id: `fake-list-${i}`, |
| | | owner: user[i % 10], |
| | | title: titles[i % 8], |
| | | avatar: avatars[i % 8], |
| | | cover: parseInt((i / 4).toString(), 10) % 2 === 0 ? covers[i % 4] : covers[3 - (i % 4)], |
| | | status: ['active', 'exception', 'normal'][i % 3], |
| | | percent: Math.ceil(Math.random() * 50) + 50, |
| | | logo: avatars[i % 8], |
| | | href: 'https://ant.design', |
| | | updatedAt: new Date(new Date().getTime() - (1000 * 60 * 60 * 2 * i)), |
| | | createdAt: new Date(new Date().getTime() - (1000 * 60 * 60 * 2 * i)), |
| | | subDescription: desc[i % 5], |
| | | description: '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件,这些类似的组件会被抽离成一套标准规范。', |
| | | activeUser: Math.ceil(Math.random() * 100000) + 100000, |
| | | newUser: Math.ceil(Math.random() * 1000) + 1000, |
| | | star: Math.ceil(Math.random() * 100) + 100, |
| | | like: Math.ceil(Math.random() * 100) + 100, |
| | | message: Math.ceil(Math.random() * 10) + 10, |
| | | content: '段落示意:蚂蚁金服设计平台 ant.design,用最小的工作量,无缝接入蚂蚁金服生态,提供跨越设计与开发的体验解决方案。蚂蚁金服设计平台 ant.design,用最小的工作量,无缝接入蚂蚁金服生态,提供跨越设计与开发的体验解决方案。', |
| | | members: [ |
| | | { |
| | | avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ZiESqWwCXBRQoaPONSJe.png', |
| | | name: '曲丽丽', |
| | | }, |
| | | { |
| | | avatar: 'https://gw.alipayobjects.com/zos/rmsportal/tBOxZPlITHqwlGjsJWaF.png', |
| | | name: '王昭君', |
| | | }, |
| | | { |
| | | avatar: 'https://gw.alipayobjects.com/zos/rmsportal/sBxjgqiuHMGRkIjqlQCd.png', |
| | | name: '董娜娜', |
| | | }, |
| | | ] |
| | | }); |
| | | } |
| | | |
| | | return list; |
| | | } |
| | | |
| | | export function getNotice(): any[] { |
| | | return [ |
| | | { |
| | | id: 'xxx1', |
| | | title: titles[0], |
| | | logo: avatars[0], |
| | | description: '那是一种内在的东西, 他们到达不了,也无法触及的', |
| | | updatedAt: new Date(), |
| | | member: '科学搬砖组', |
| | | href: '', |
| | | memberLink: '', |
| | | }, |
| | | { |
| | | id: 'xxx2', |
| | | title: titles[1], |
| | | logo: avatars[1], |
| | | description: '希望是一个好东西,也许是最好的,好东西是不会消亡的', |
| | | updatedAt: new Date('2017-07-24'), |
| | | member: '全组都是吴彦祖', |
| | | href: '', |
| | | memberLink: '', |
| | | }, |
| | | { |
| | | id: 'xxx3', |
| | | title: titles[2], |
| | | logo: avatars[2], |
| | | description: '城镇中有那么多的酒馆,她却偏偏走进了我的酒馆', |
| | | updatedAt: new Date(), |
| | | member: '中二少女团', |
| | | href: '', |
| | | memberLink: '', |
| | | }, |
| | | { |
| | | id: 'xxx4', |
| | | title: titles[3], |
| | | logo: avatars[3], |
| | | description: '那时候我只会想自己想要什么,从不想自己拥有什么', |
| | | updatedAt: new Date('2017-07-23'), |
| | | member: '程序员日常', |
| | | href: '', |
| | | memberLink: '', |
| | | }, |
| | | { |
| | | id: 'xxx5', |
| | | title: titles[4], |
| | | logo: avatars[4], |
| | | description: '凛冬将至', |
| | | updatedAt: new Date('2017-07-23'), |
| | | member: '高逼格设计天团', |
| | | href: '', |
| | | memberLink: '', |
| | | }, |
| | | { |
| | | id: 'xxx6', |
| | | title: titles[5], |
| | | logo: avatars[5], |
| | | description: '生命就像一盒巧克力,结果往往出人意料', |
| | | updatedAt: new Date('2017-07-23'), |
| | | member: '骗你来学计算机', |
| | | href: '', |
| | | memberLink: '', |
| | | }, |
| | | ]; |
| | | } |
| | | |
| | | export function getActivities(): any[] { |
| | | return [ |
| | | { |
| | | id: 'trend-1', |
| | | updatedAt: new Date(), |
| | | user: { |
| | | name: '林东东', |
| | | avatar: avatars[0], |
| | | }, |
| | | group: { |
| | | name: '高逼格设计天团', |
| | | link: 'http://github.com/', |
| | | }, |
| | | project: { |
| | | name: '六月迭代', |
| | | link: 'http://github.com/', |
| | | }, |
| | | template: '在 @{group} 新建项目 @{project}', |
| | | }, |
| | | { |
| | | id: 'trend-2', |
| | | updatedAt: new Date(), |
| | | user: { |
| | | name: '付小小', |
| | | avatar: avatars[1], |
| | | }, |
| | | group: { |
| | | name: '高逼格设计天团', |
| | | link: 'http://github.com/', |
| | | }, |
| | | project: { |
| | | name: '六月迭代', |
| | | link: 'http://github.com/', |
| | | }, |
| | | template: '在 @{group} 新建项目 @{project}', |
| | | }, |
| | | { |
| | | id: 'trend-3', |
| | | updatedAt: new Date(), |
| | | user: { |
| | | name: '曲丽丽', |
| | | avatar: avatars[2], |
| | | }, |
| | | group: { |
| | | name: '中二少女团', |
| | | link: 'http://github.com/', |
| | | }, |
| | | project: { |
| | | name: '六月迭代', |
| | | link: 'http://github.com/', |
| | | }, |
| | | template: '在 @{group} 新建项目 @{project}', |
| | | }, |
| | | { |
| | | id: 'trend-4', |
| | | updatedAt: new Date(), |
| | | user: { |
| | | name: '周星星', |
| | | avatar: avatars[3], |
| | | }, |
| | | project: { |
| | | name: '5 月日常迭代', |
| | | link: 'http://github.com/', |
| | | }, |
| | | template: '将 @{project} 更新至已发布状态', |
| | | }, |
| | | { |
| | | id: 'trend-5', |
| | | updatedAt: new Date(), |
| | | user: { |
| | | name: '朱偏右', |
| | | avatar: avatars[4], |
| | | }, |
| | | project: { |
| | | name: '工程效能', |
| | | link: 'http://github.com/', |
| | | }, |
| | | comment: { |
| | | name: '留言', |
| | | link: 'http://github.com/', |
| | | }, |
| | | template: '在 @{project} 发布了 @{comment}', |
| | | }, |
| | | { |
| | | id: 'trend-6', |
| | | updatedAt: new Date(), |
| | | user: { |
| | | name: '乐哥', |
| | | avatar: avatars[5], |
| | | }, |
| | | group: { |
| | | name: '程序员日常', |
| | | link: 'http://github.com/', |
| | | }, |
| | | project: { |
| | | name: '品牌迭代', |
| | | link: 'http://github.com/', |
| | | }, |
| | | template: '在 @{group} 新建项目 @{project}', |
| | | }, |
| | | ]; |
| | | } |
New file |
| | |
| | | // tslint:disable |
| | | |
| | | import * as moment from "moment"; |
| | | |
| | | // mock data |
| | | const visitData = []; |
| | | const beginDay = new Date().getTime(); |
| | | |
| | | const fakeY = [7, 5, 4, 2, 4, 7, 5, 6, 5, 9, 6, 3, 1, 5, 3, 6, 5]; |
| | | for (let i = 0; i < fakeY.length; i += 1) { |
| | | visitData.push({ |
| | | x: moment(new Date(beginDay + 1000 * 60 * 60 * 24 * i)).format( |
| | | "YYYY-MM-DD" |
| | | ), |
| | | y: fakeY[i] |
| | | }); |
| | | } |
| | | |
| | | const visitData2 = []; |
| | | const fakeY2 = [1, 6, 4, 8, 3, 7, 2]; |
| | | for (let i = 0; i < fakeY2.length; i += 1) { |
| | | visitData2.push({ |
| | | x: moment(new Date(beginDay + 1000 * 60 * 60 * 24 * i)).format( |
| | | "YYYY-MM-DD" |
| | | ), |
| | | y: fakeY2[i] |
| | | }); |
| | | } |
| | | |
| | | const salesData = []; |
| | | for (let i = 0; i < 12; i += 1) { |
| | | salesData.push({ |
| | | x: `${i + 1}月`, |
| | | y: Math.floor(Math.random() * 1000) + 200 |
| | | }); |
| | | } |
| | | const searchData = []; |
| | | for (let i = 0; i < 50; i += 1) { |
| | | searchData.push({ |
| | | index: i + 1, |
| | | keyword: `搜索关键词-${i}`, |
| | | count: Math.floor(Math.random() * 1000), |
| | | range: Math.floor(Math.random() * 100), |
| | | status: Math.floor((Math.random() * 10) % 2) |
| | | }); |
| | | } |
| | | const salesTypeData = [ |
| | | { |
| | | x: "家用电器", |
| | | y: 4544 |
| | | }, |
| | | { |
| | | x: "食用酒水", |
| | | y: 3321 |
| | | }, |
| | | { |
| | | x: "个护健康", |
| | | y: 3113 |
| | | }, |
| | | { |
| | | x: "服饰箱包", |
| | | y: 2341 |
| | | }, |
| | | { |
| | | x: "母婴产品", |
| | | y: 1231 |
| | | }, |
| | | { |
| | | x: "其他", |
| | | y: 1231 |
| | | } |
| | | ]; |
| | | |
| | | const salesTypeDataOnline = [ |
| | | { |
| | | x: "家用电器", |
| | | y: 244 |
| | | }, |
| | | { |
| | | x: "食用酒水", |
| | | y: 321 |
| | | }, |
| | | { |
| | | x: "个护健康", |
| | | y: 311 |
| | | }, |
| | | { |
| | | x: "服饰箱包", |
| | | y: 41 |
| | | }, |
| | | { |
| | | x: "母婴产品", |
| | | y: 121 |
| | | }, |
| | | { |
| | | x: '其他', |
| | | y: 111 |
| | | } |
| | | ]; |
| | | |
| | | const salesTypeDataOffline = [ |
| | | { |
| | | x: '家用电器', |
| | | y: 99 |
| | | }, |
| | | { |
| | | x: '个护健康', |
| | | y: 188 |
| | | }, |
| | | { |
| | | x: '服饰箱包', |
| | | y: 344 |
| | | }, |
| | | { |
| | | x: '母婴产品', |
| | | y: 255 |
| | | }, |
| | | { |
| | | x: '其他', |
| | | y: 65 |
| | | } |
| | | ]; |
| | | |
| | | const offlineData = []; |
| | | for (let i = 0; i < 10; i += 1) { |
| | | offlineData.push({ |
| | | name: `门店${i}`, |
| | | cvr: Math.ceil(Math.random() * 9) / 10 |
| | | }); |
| | | } |
| | | const offlineChartData = []; |
| | | for (let i = 0; i < 20; i += 1) { |
| | | offlineChartData.push({ |
| | | x: new Date().getTime() + 1000 * 60 * 30 * i, |
| | | y1: Math.floor(Math.random() * 100) + 10, |
| | | y2: Math.floor(Math.random() * 100) + 10 |
| | | }); |
| | | } |
| | | |
| | | const radarOriginData = [ |
| | | { |
| | | name: '个人', |
| | | ref: 10, |
| | | koubei: 8, |
| | | output: 4, |
| | | contribute: 5, |
| | | hot: 7 |
| | | }, |
| | | { |
| | | name: '团队', |
| | | ref: 3, |
| | | koubei: 9, |
| | | output: 6, |
| | | contribute: 3, |
| | | hot: 1 |
| | | }, |
| | | { |
| | | name: '部门', |
| | | ref: 4, |
| | | koubei: 1, |
| | | output: 6, |
| | | contribute: 5, |
| | | hot: 7 |
| | | } |
| | | ]; |
| | | |
| | | // |
| | | const radarData = []; |
| | | const radarTitleMap = { |
| | | ref: '引用', |
| | | koubei: '口碑', |
| | | output: '产量', |
| | | contribute: '贡献', |
| | | hot: '热度' |
| | | }; |
| | | radarOriginData.forEach(item => { |
| | | Object.keys(item).forEach(key => { |
| | | if (key !== 'name') { |
| | | radarData.push({ |
| | | name: item.name, |
| | | label: radarTitleMap[key], |
| | | value: item[key] |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | export const getFakeChartData = { |
| | | visitData, |
| | | visitData2, |
| | | salesData, |
| | | searchData, |
| | | offlineData, |
| | | offlineChartData, |
| | | salesTypeData, |
| | | salesTypeDataOnline, |
| | | salesTypeDataOffline, |
| | | radarData |
| | | }; |
| | | |
| | | export default { |
| | | getFakeChartData |
| | | }; |
New file |
| | |
| | | const basicGoods = [ |
| | | { |
| | | id: '1234561', |
| | | name: '矿泉水 550ml', |
| | | barcode: '12421432143214321', |
| | | price: '2.00', |
| | | num: '1', |
| | | amount: '2.00', |
| | | }, |
| | | { |
| | | id: '1234562', |
| | | name: '凉茶 300ml', |
| | | barcode: '12421432143214322', |
| | | price: '3.00', |
| | | num: '2', |
| | | amount: '6.00', |
| | | }, |
| | | { |
| | | id: '1234563', |
| | | name: '好吃的薯片', |
| | | barcode: '12421432143214323', |
| | | price: '7.00', |
| | | num: '4', |
| | | amount: '28.00', |
| | | }, |
| | | { |
| | | id: '1234564', |
| | | name: '特别好吃的蛋卷', |
| | | barcode: '12421432143214324', |
| | | price: '8.50', |
| | | num: '3', |
| | | amount: '25.50', |
| | | }, |
| | | ]; |
| | | |
| | | const basicProgress = [ |
| | | { |
| | | key: '1', |
| | | time: '2017-10-01 14:10', |
| | | rate: '联系客户', |
| | | status: 'processing', |
| | | operator: '取货员 ID1234', |
| | | cost: '5mins', |
| | | }, |
| | | { |
| | | key: '2', |
| | | time: '2017-10-01 14:05', |
| | | rate: '取货员出发', |
| | | status: 'success', |
| | | operator: '取货员 ID1234', |
| | | cost: '1h', |
| | | }, |
| | | { |
| | | key: '3', |
| | | time: '2017-10-01 13:05', |
| | | rate: '取货员接单', |
| | | status: 'success', |
| | | operator: '取货员 ID1234', |
| | | cost: '5mins', |
| | | }, |
| | | { |
| | | key: '4', |
| | | time: '2017-10-01 13:00', |
| | | rate: '申请审批通过', |
| | | status: 'success', |
| | | operator: '系统', |
| | | cost: '1h', |
| | | }, |
| | | { |
| | | key: '5', |
| | | time: '2017-10-01 12:00', |
| | | rate: '发起退货申请', |
| | | status: 'success', |
| | | operator: '用户', |
| | | cost: '5mins', |
| | | }, |
| | | ]; |
| | | |
| | | const advancedOperation1 = [ |
| | | { |
| | | key: 'op1', |
| | | type: '订购关系生效', |
| | | name: '曲丽丽', |
| | | status: 'agree', |
| | | updatedAt: '2017-10-03 19:23:12', |
| | | memo: '-', |
| | | }, |
| | | { |
| | | key: 'op2', |
| | | type: '财务复审', |
| | | name: '付小小', |
| | | status: 'reject', |
| | | updatedAt: '2017-10-03 19:23:12', |
| | | memo: '不通过原因', |
| | | }, |
| | | { |
| | | key: 'op3', |
| | | type: '部门初审', |
| | | name: '周毛毛', |
| | | status: 'agree', |
| | | updatedAt: '2017-10-03 19:23:12', |
| | | memo: '-', |
| | | }, |
| | | { |
| | | key: 'op4', |
| | | type: '提交订单', |
| | | name: '林东东', |
| | | status: 'agree', |
| | | updatedAt: '2017-10-03 19:23:12', |
| | | memo: '很棒', |
| | | }, |
| | | { |
| | | key: 'op5', |
| | | type: '创建订单', |
| | | name: '汗牙牙', |
| | | status: 'agree', |
| | | updatedAt: '2017-10-03 19:23:12', |
| | | memo: '-', |
| | | }, |
| | | ]; |
| | | |
| | | const advancedOperation2 = [ |
| | | { |
| | | key: 'op1', |
| | | type: '订购关系生效', |
| | | name: '曲丽丽', |
| | | status: 'agree', |
| | | updatedAt: '2017-10-03 19:23:12', |
| | | memo: '-', |
| | | }, |
| | | ]; |
| | | |
| | | const advancedOperation3 = [ |
| | | { |
| | | key: 'op1', |
| | | type: '创建订单', |
| | | name: '汗牙牙', |
| | | status: 'agree', |
| | | updatedAt: '2017-10-03 19:23:12', |
| | | memo: '-', |
| | | }, |
| | | ]; |
| | | |
| | | export function getProfileBasicData() { |
| | | return { |
| | | basicGoods: basicGoods, |
| | | basicProgress: basicProgress |
| | | }; |
| | | } |
| | | |
| | | export function getProfileAdvancedData() { |
| | | return { |
| | | advancedOperation1: advancedOperation1, |
| | | advancedOperation2: advancedOperation2, |
| | | advancedOperation3: advancedOperation3 |
| | | }; |
| | | } |
| | | |
| | | export function getProfileDefault() { |
| | | return { |
| | | getProfileBasicData: getProfileBasicData, |
| | | getProfileAdvancedData: getProfileAdvancedData |
| | | }; |
| | | } |
New file |
| | |
| | | const list = []; |
| | | |
| | | for (let i = 0; i < 46; i += 1) { |
| | | list.push({ |
| | | key: i, |
| | | disabled: ((i % 6) === 0), |
| | | href: 'https://ant.design', |
| | | avatar: ['https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png', 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png'][i % 2], |
| | | no: `TradeCode ${i}`, |
| | | title: `一个任务名称 ${i}`, |
| | | owner: '曲丽丽', |
| | | description: '这是一段描述', |
| | | callNo: Math.floor(Math.random() * 1000), |
| | | status: Math.floor(Math.random() * 10) % 4, |
| | | updatedAt: new Date(`2017-07-${Math.floor(i / 2) + 1}`), |
| | | createdAt: new Date(`2017-07-${Math.floor(i / 2) + 1}`), |
| | | progress: Math.ceil(Math.random() * 100), |
| | | }); |
| | | } |
| | | |
| | | export function getRule(params: any) { |
| | | let ret = [...list]; |
| | | if (params.sorter) { |
| | | const s = params.sorter.split('_'); |
| | | ret = ret.sort((prev, next) => { |
| | | if (s[1] === 'descend') { |
| | | return next[s[0]] - prev[s[0]]; |
| | | } |
| | | return prev[s[0]] - next[s[0]]; |
| | | }); |
| | | } |
| | | if (params.statusList && params.statusList.length > 0) { |
| | | ret = ret.filter(data => params.statusList.indexOf(data.status) > -1); |
| | | } |
| | | if (params.no) { |
| | | ret = ret.filter(data => data.no.indexOf(params.no) > -1); |
| | | } |
| | | return ret; |
| | | } |
| | | |
| | | export function removeRule(no: string): boolean { |
| | | const idx = list.findIndex(w => w.no === no); |
| | | if (idx !== -1) { |
| | | list.splice(idx, 1); |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | export function saveRule(description: string) { |
| | | const i = Math.ceil(Math.random() * 10000); |
| | | list.unshift({ |
| | | key: i, |
| | | href: 'https://ant.design', |
| | | avatar: ['https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png', 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png'][i % 2], |
| | | no: `TradeCode ${i}`, |
| | | title: `一个任务名称 ${i}`, |
| | | owner: '曲丽丽', |
| | | description, |
| | | callNo: Math.floor(Math.random() * 1000), |
| | | status: Math.floor(Math.random() * 10) % 2, |
| | | updatedAt: new Date(), |
| | | createdAt: new Date(), |
| | | progress: Math.ceil(Math.random() * 100), |
| | | }); |
| | | } |