Browse Source

(*)业绩汇总表数据展示

master
ww664853070 2 years ago
parent
commit
348ccf7021
  1. 6
      api/app/lib/controllers/salePerformance/index.js
  2. 10
      api/app/lib/models/salePerformance.js
  3. 542
      web/client/src/sections/business/containers/performanceReport/performanceSummary.jsx
  4. 3
      web/client/src/sections/business/style.less

6
api/app/lib/controllers/salePerformance/index.js

@ -3,10 +3,14 @@
// 查询业绩汇总表-->关联sale表 // 查询业绩汇总表-->关联sale表
async function getSalePerformance(ctx, next) { async function getSalePerformance(ctx, next) {
const { type } = ctx.params; const { type } = ctx.params;
const models = ctx.fs.dc.models;
let rslt = null; let rslt = null;
try { try {
rslt = await ctx.fs.dc.models.salePerformance.findAll({ rslt = await models.sale.findAll({
order: [['id', 'DESC']], order: [['id', 'DESC']],
include:[{
model:models.salePerformance
}]
// where: { type: type } // where: { type: type }
}) })
ctx.status = 200 ctx.status = 200

10
api/app/lib/models/salePerformance.js

@ -43,13 +43,21 @@ module.exports = dc => {
field: "year", field: "year",
}, },
saleId: { saleId: {
type: DataTypes.STRING, type: DataTypes.INTEGER,
allowNull: false, allowNull: false,
field: "sale_id", field: "sale_id",
},
task: {
type: DataTypes.INTEGER,
allowNull: false,
field: "task",
} }
}, { }, {
tableName: "sale_performance", tableName: "sale_performance",
}); });
const { sale } = dc.models;
sale.hasMany(salePerformance, { foreighKey: 'saleId', targetKey: "id" })
dc.models.salePerformance = salePerformance; dc.models.salePerformance = salePerformance;
return salePerformance; return salePerformance;
}; };

542
web/client/src/sections/business/containers/performanceReport/performanceSummary.jsx

@ -7,539 +7,131 @@ import '../../style.less';
const AchievementDetails = (props) => { const AchievementDetails = (props) => {
const { dispatch, actions, performanceSummaryList } = props const { dispatch, actions, performanceSummaryList } = props
console.log(performanceSummaryList, '------------------');
useEffect(() => { useEffect(() => {
dispatch(actions.businessManagement.getPerformanceSummary()); dispatch(actions.businessManagement.getPerformanceSummary());
}, []); }, []);
let columns = [ let colums = [{ num: '1月', name: 'one' }, { num: '2月', name: 'two' }, { num: '3月', name: 'three' }, { num: '4月', name: 'four' }, { num: '5月', name: 'five' }, { num: '6月', name: 'sex' }, { num: '7月', name: 'seven' }, { num: '8月', name: 'eight' }, { num: '9月', name: 'nine' }, { num: '10月', name: 'ten' }, { num: '11月', name: 'evelen' }, { num: '12月', name: 'twelve' }]
{ const columnsList = () => {
title: '部门', colums.forEach(e => {
dataIndex: 'index', columns.push({
width: 130, title: e.num,
render: (text, record, index) => index + 1
},
{
title: '销售人员',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '业务线',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '入职日期',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '转正日期',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '工龄',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '1月',
children: [ children: [
{ {
title: '合同金额', title: '合同金额',
dataIndex: 'index', dataIndex: e.name + '[amount]',
width: 130, width: 130,
render: (text, record, index) => index + 1 // render: (text, record, index) => index + 1
}, },
{ {
title: '实际业绩', title: '实际业绩',
dataIndex: 'index', dataIndex: e.name + '[actualPerformance]',
width: 130, width: 130,
render: (text, record, index) => index + 1 // render: (text, record, index) => index + 1
}, },
{ {
title: '考核业绩', title: '考核业绩',
dataIndex: 'index', dataIndex: e.name+'[assessmentPerformance]',
width: 130, width: 130,
render: (text, record, index) => index + 1 // render: (text, record, index) => index + 1
}, },
{ {
title: '销售任务', title: '销售任务',
dataIndex: 'index', dataIndex: e.name + '[task]',
width: 130, width: 130,
render: (text, record, index) => index + 1 // render: (text, record, index) => index + 1
}, },
{ {
title: '完成率', title: '完成率%',
dataIndex: 'index', dataIndex: e.name + '[completion]',
width: 130, width: 130,
render: (text, record, index) => index + 1 // render: (text, record, index) => index + 1
} }
] ]
},
{
title: '2月',
children: [
{
title: '合同金额',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '实际业绩',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '考核业绩',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '销售任务',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '完成率',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
} }
] )
}, })
{
title: '3月',
children: [
{
title: '合同金额',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '实际业绩',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '考核业绩',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '销售任务',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '完成率',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
} }
] let columns = [
},
{
title: '一季度',
children: [
{ {
title: '销售任务', title: '部门',
dataIndex: 'index', dataIndex: 'department',
width: 130, width: 130,
render: (text, record, index) => index + 1 // render: (text, record, index) => index + 1
}, },
{ {
title: '完成率', title: '销售人员',
dataIndex: 'index', dataIndex: 'sale',
width: 130, width: 130,
render: (text, record, index) => index + 1 // render: (text, record, index) => index + 1
}
]
}, },
{ {
title: '4月', title: '业务线',
children: [ dataIndex: 'business',
{
title: '合同金额',
dataIndex: 'index',
width: 130, width: 130,
render: (text, record, index) => index + 1 // render: (text, record, index) => index + 1
}, },
{ {
title: '实际业绩', title: '入职日期',
dataIndex: 'index', dataIndex: 'hiredate',
width: 130, width: 130,
render: (text, record, index) => index + 1 // render: (text, record, index) => index + 1
}, },
{ {
title: '考核业绩', title: '转正日期',
dataIndex: 'index', dataIndex: 'regularDate',
width: 130, width: 130,
render: (text, record, index) => index + 1 // render: (text, record, index) => index + 1
}, },
{ {
title: '销售任务', title: '工龄',
dataIndex: 'index', dataIndex: 'index',
width: 130, width: 130,
render: (text, record, index) => index + 1 render: (text, record, index) => index + 1
}, },
{
title: '完成率',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
}
] ]
}, columnsList()
{ let arr = performanceSummaryList.map(e => {
title: '5月', e.salePerformances.forEach(i => {
children: [ if (i.month == 1) {
{ e.one = i
title: '合同金额',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '实际业绩',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '考核业绩',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '销售任务',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '完成率',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
} }
] if (i.month == 2) {
}, e.two = i
{
title: '6月',
children: [
{
title: '合同金额',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '实际业绩',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '考核业绩',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '销售任务',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '完成率',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
} }
] if (i.month == 3) {
}, e.three = i
{
title: '二季度',
children: [
{
title: '销售任务',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '完成率',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
} }
] if (i.month == 4) {
}, e.four = i
{
title: '7月',
children: [
{
title: '合同金额',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '实际业绩',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '考核业绩',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '销售任务',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '完成率',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
} }
] if (i.month == 5) {
}, e.five = i
{
title: '8月',
children: [
{
title: '合同金额',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '实际业绩',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '考核业绩',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '销售任务',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '完成率',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
} }
] if (i.month == 6) {
}, e.sex = i
{
title: '9月',
children: [
{
title: '合同金额',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '实际业绩',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '考核业绩',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '销售任务',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '完成率',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
} }
] if (i.month == 7) {
}, e.seven = i
{
title: '三季度',
children: [
{
title: '销售任务',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '完成率',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
} }
] if (i.month == 8) {
}, e.eight = i
{
title: '10月',
children: [
{
title: '合同金额',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '实际业绩',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '考核业绩',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '销售任务',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '完成率',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
} }
] if (i.month == 9) {
}, e.nine = i
{
title: '11月',
children: [
{
title: '合同金额',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '实际业绩',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '考核业绩',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '销售任务',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '完成率',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
} }
] if (i.month == 10) {
}, e.ten = i
{
title: '12月',
children: [
{
title: '合同金额',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '实际业绩',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '考核业绩',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '销售任务',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '完成率',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
} }
] if (i.month == 11) {
}, e.evelen = i
{
title: '四季度',
children: [
{
title: '销售任务',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '完成率',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
} }
] if (i.month == 12) {
e.twelve = i
} }
] })
return e
})
console.log(arr, '=================');
const exportAllData = () => { const exportAllData = () => {
} }
@ -578,7 +170,7 @@ const AchievementDetails = (props) => {
</div> </div>
</div> </div>
<div className='summaryList'> <div className='summaryList'>
<Table columns={columns} /> <Table columns={columns} dataSource={arr} />
</div> </div>
</div> </div>
</div> </div>

3
web/client/src/sections/business/style.less

@ -15,4 +15,7 @@
.semi-table-thead > .semi-table-row > .semi-table-row-head{ .semi-table-thead > .semi-table-row > .semi-table-row-head{
border-right: 1px solid #ccc; border-right: 1px solid #ccc;
} }
.semi-table-tbody > .semi-table-row > .semi-table-row-cell{
border-right: 1px solid #ccc;
}
} }

Loading…
Cancel
Save