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表
async function getSalePerformance(ctx, next) {
const { type } = ctx.params;
const models = ctx.fs.dc.models;
let rslt = null;
try {
rslt = await ctx.fs.dc.models.salePerformance.findAll({
rslt = await models.sale.findAll({
order: [['id', 'DESC']],
include:[{
model:models.salePerformance
}]
// where: { type: type }
})
ctx.status = 200

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

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

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

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

Loading…
Cancel
Save