wenlele 2 years ago
parent
commit
08f7c2d5d8
  1. 6
      api/app/lib/controllers/salePerformance/index.js
  2. 12
      api/app/lib/models/salePerformance.js
  3. 4
      web/client/src/sections/business/containers/customer/customerContactFollowup.jsx
  4. 598
      web/client/src/sections/business/containers/performanceReport/performanceSummary.jsx
  5. 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

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

@ -27,7 +27,7 @@ module.exports = dc => {
allowNull: false, allowNull: false,
field: "assessment_performance", field: "assessment_performance",
}, },
completion : { completion: {
type: DataTypes.STRING, type: DataTypes.STRING,
allowNull: false, allowNull: false,
field: "completion ", field: "completion ",
@ -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;
}; };

4
web/client/src/sections/business/containers/customer/customerContactFollowup.jsx

@ -48,7 +48,7 @@ const CustomerContactFollowup = (props) => {
render: (text, record) => text == null ? '---' : moment(text).format('YYYY-MM-DD') render: (text, record) => text == null ? '---' : moment(text).format('YYYY-MM-DD')
}, },
{ {
title: '客户联系人', title: '联系人',
dataIndex: 'customerContacts', dataIndex: 'customerContacts',
render: (text, record) => text == null ? '---' : text render: (text, record) => text == null ? '---' : text
}, },
@ -63,7 +63,7 @@ const CustomerContactFollowup = (props) => {
render: (text, record) => text == null ? '---' : text render: (text, record) => text == null ? '---' : text
}, },
{ {
title: '项目进展', title: '跟进内容',
dataIndex: 'itemText', dataIndex: 'itemText',
render: (text, record) => text == null ? '---' : text render: (text, record) => text == null ? '---' : text
} }

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

@ -7,40 +7,80 @@ 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 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: e.name + '[amount]',
width: 130,
// render: (text, record, index) => index + 1
},
{
title: '实际业绩',
dataIndex: e.name + '[actualPerformance]',
width: 130,
// render: (text, record, index) => index + 1
},
{
title: '考核业绩',
dataIndex: e.name+'[assessmentPerformance]',
width: 130,
// render: (text, record, index) => index + 1
},
{
title: '销售任务',
dataIndex: e.name + '[task]',
width: 130,
// render: (text, record, index) => index + 1
},
{
title: '完成率%',
dataIndex: e.name + '[completion]',
width: 130,
// render: (text, record, index) => index + 1
}
]
}
)
})
}
let columns = [ let columns = [
{ {
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: '业务线', title: '业务线',
dataIndex: 'index', dataIndex: 'business',
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: '工龄',
@ -48,498 +88,50 @@ const AchievementDetails = (props) => {
width: 130, width: 130,
render: (text, record, index) => index + 1 render: (text, record, index) => index + 1
}, },
{
title: '1月',
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: '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: [
{
title: '销售任务',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '完成率',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
}
]
},
{
title: '4月',
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: '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
}
]
},
{
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
}
]
},
{
title: '二季度',
children: [
{
title: '销售任务',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '完成率',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
}
]
},
{
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
}
]
},
{
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
}
]
},
{
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
}
]
},
{
title: '三季度',
children: [
{
title: '销售任务',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
},
{
title: '完成率',
dataIndex: 'index',
width: 130,
render: (text, record, index) => index + 1
}
]
},
{
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
}
]
},
{
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
}
]
},
{
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
}
]
},
{
title: '四季度',
children: [
{
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
}
if (i.month == 2) {
e.two = i
}
if (i.month == 3) {
e.three = i
}
if (i.month == 4) {
e.four = i
}
if (i.month == 5) {
e.five = i
}
if (i.month == 6) {
e.sex = i
}
if (i.month == 7) {
e.seven = i
}
if (i.month == 8) {
e.eight = i
}
if (i.month == 9) {
e.nine = i
}
if (i.month == 10) {
e.ten = i
}
if (i.month == 11) {
e.evelen = i
}
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