From b0df16f41a88c6ea6b7f4b82f23e92115ae06aa5 Mon Sep 17 00:00:00 2001 From: zhuyu Date: Fri, 30 May 2025 11:27:57 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feature:=20=E6=8C=89=E9=92=AE=E5=90=8D?= =?UTF-8?q?=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/js/backend/salary/detail.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/assets/js/backend/salary/detail.js b/public/assets/js/backend/salary/detail.js index faa3077..359cadf 100644 --- a/public/assets/js/backend/salary/detail.js +++ b/public/assets/js/backend/salary/detail.js @@ -62,7 +62,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin "field":"name", },{ "title":"用户id", - "field":"admin_id", + "field":"target_admin_id", "visible":false }); From 8e1ef283882ffc325b5c25f6292a95c5464ddebe Mon Sep 17 00:00:00 2001 From: zhuyu Date: Fri, 30 May 2025 11:33:26 +0800 Subject: [PATCH 2/4] =?UTF-8?q?feature:=20=E6=8C=89=E9=92=AE=E5=90=8D?= =?UTF-8?q?=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/admin/controller/salary/Detail.php | 2 ++ public/assets/js/backend/salary/detail.js | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/application/admin/controller/salary/Detail.php b/application/admin/controller/salary/Detail.php index aeab20d..5640a67 100644 --- a/application/admin/controller/salary/Detail.php +++ b/application/admin/controller/salary/Detail.php @@ -150,6 +150,8 @@ class Detail extends Backend $result = array("total" => count($res), "rows" => $res); + + $this->assignconfig("manage", $this->auth->isSuperAdmin()); return json($result); } diff --git a/public/assets/js/backend/salary/detail.js b/public/assets/js/backend/salary/detail.js index 359cadf..eebc6a8 100644 --- a/public/assets/js/backend/salary/detail.js +++ b/public/assets/js/backend/salary/detail.js @@ -95,6 +95,12 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin return 'salary/detail/custom_edit?target_admin_id=' + row.target_admin_id + '&month=' + row.month; }, extend: 'data-area=\'["800px", "600px"]\'', + visible:function(row){ + if (!Config.manage) { + return false; + } + return true; + } }, { name: 'complete', @@ -118,6 +124,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin return false; }, visible: function (row) { + if (!Config.manage) { + return false; + } //返回true时按钮显示,返回false隐藏 if (row.settle_status != 1) { return true; From 886801637b6bb4559f106357ed0e3d9b0e21a580 Mon Sep 17 00:00:00 2001 From: zhuyu Date: Fri, 30 May 2025 15:24:05 +0800 Subject: [PATCH 3/4] =?UTF-8?q?feature:=20=E6=8C=89=E9=92=AE=E5=90=8D?= =?UTF-8?q?=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/admin/controller/Dashboard.php | 88 ++++++++++++++++--- .../dashboard/{kpi.html => kpi_dispatch.html} | 6 +- .../admin/view/dashboard/kpi_presale.html | 30 +++++++ 3 files changed, 110 insertions(+), 14 deletions(-) rename application/admin/view/dashboard/{kpi.html => kpi_dispatch.html} (83%) create mode 100644 application/admin/view/dashboard/kpi_presale.html diff --git a/application/admin/controller/Dashboard.php b/application/admin/controller/Dashboard.php index ecd37cb..932501c 100755 --- a/application/admin/controller/Dashboard.php +++ b/application/admin/controller/Dashboard.php @@ -2,6 +2,7 @@ namespace app\admin\controller; +use app\admin\controller\statistics\Kpidispatcher; use app\admin\model\Admin; use app\admin\model\kpi\Template; use app\admin\model\oa\Task; @@ -143,22 +144,87 @@ class Dashboard extends Backend $groupIds = $this->auth->getGroupIds(); $groupId = $groupIds[0] ?? 0; - $kpiTemplate = (new Template()) - ->where('group_id','=', $groupId) - ->with('kpiitem') - ->find(); + if ($groupId == 6) { + $kpiTemplate = (new Template()) + ->where('group_id','=', 6) + ->with('kpiitem') + ->find(); - if (!$kpiTemplate) { - $this->error('kpi模板未找到'); + if (!$kpiTemplate) { + $this->error('kpi模板未找到'); + } + + $filter['group_id'] = 6; + $filter['admin_user_ids'] = 3; + $filter['start_time'] = date('Y-m-01 00:00:00'); + $filter['end_time'] = date('Y-m-t 23:59:59'); + $chart = (new Kpidispatcher())->chart($filter); + $chart = $chart[0] ?? []; + + $datalist = [ + //转化率 = 完单数 / 总订单数 + 'trans_rate' => $chart['trans_rate'] ?? 0, + 'finish_num' => $chart['finish_num'] ?? 0, + 'count_num' => $chart['count_num'] ?? 0, + //利润率 = 总业绩/总成效额 + 'performance_rate' => $chart['performance_rate'] ?? 0, + 'performance' => $chart['performance'] ?? 0, + 'total' => $chart['total'] ?? 0, + //派单时效 + 'avg_time_diff' => $chart['avg_time_diff'] ?? 0, + //派单成功率 + 'succ_rate' => $chart['succ_rate'] ?? 0, + 'finish_num' => $chart['finish_num'] ?? 0, + 'count_num' => $chart['count_num'] ?? 0, + + //录入师傅数 + 'worker_num' => $chart['worker_num'] ?? 0, + ]; + + $kpiItems = $kpiTemplate['kpiitem']; + + foreach ($kpiItems as &$kpiItem) { + if ($kpiItem['unit'] == 1) { + $kpiItem['target_value'] .= '%'; + } + if ($kpiItem['attr'] == 'ZHL') { + $kpiItem['complete_value'] = $datalist['trans_rate'] . '%'; + $kpiItem['detail'] = $datalist['finish_num'] . '/' . $datalist['count_num']; + } + if ($kpiItem['attr'] == 'LRL') { + $kpiItem['complete_value'] = $datalist['performance_rate'] . '%'; + $kpiItem['detail'] = $datalist['performance'] . '/' . $datalist['total']; + } + if ($kpiItem['attr'] == 'PDSX') { + $kpiItem['complete_value'] = $datalist['avg_time_diff']; + $kpiItem['detail'] = $datalist['avg_time_diff']; + } + if ($kpiItem['attr'] == 'PCCGL') { + $kpiItem['complete_value'] = $datalist['succ_rate'] . '%'; + $kpiItem['detail'] = $datalist['finish_num'] . '/' . $datalist['count_num']; + } + if ($kpiItem['attr'] == 'GDJSL') { + $kpiItem['complete_value'] = 0; + $kpiItem['detail'] = 0; + } + if ($kpiItem['attr'] == 'LRSFS') { + $kpiItem['complete_value'] = $datalist['worker_num']; + $kpiItem['detail'] = $datalist['worker_num']; + } + } + + $this->view->assign('kpi_template', $kpiTemplate); + $this->view->assign('kpi_items', $kpiItems); + + return $this->view->fetch('kpi_dispatch'); } + if ($groupId == 10) { + return $this->view->fetch('kpi_presale'); + } - $kpiItems = $kpiTemplate['kpiitem']; + $this->error('暂未支持'); - $this->view->assign('kpi_template', $kpiTemplate); - $this->view->assign('kpi_items', $kpiItems); - - return $this->view->fetch(); } public function task_complete($ids = null) diff --git a/application/admin/view/dashboard/kpi.html b/application/admin/view/dashboard/kpi_dispatch.html similarity index 83% rename from application/admin/view/dashboard/kpi.html rename to application/admin/view/dashboard/kpi_dispatch.html index cf7b281..b47eab7 100644 --- a/application/admin/view/dashboard/kpi.html +++ b/application/admin/view/dashboard/kpi_dispatch.html @@ -22,10 +22,10 @@ {$item->name|htmlentities} {$item->target_value|htmlentities} - 0 + {$item->complete_value|htmlentities} {$item->desc|htmlentities} - 0 - {$item->pivot->rate|htmlentities} + {$item->detail|htmlentities} + {$item->pivot->rate|htmlentities}% {/foreach} diff --git a/application/admin/view/dashboard/kpi_presale.html b/application/admin/view/dashboard/kpi_presale.html new file mode 100644 index 0000000..4637595 --- /dev/null +++ b/application/admin/view/dashboard/kpi_presale.html @@ -0,0 +1,30 @@ +
+
+

KPI面板

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + +
姓名录单数录单业绩提成比例(固定3%)提成
11122334455
+
+
\ No newline at end of file From c3608ed9bdc52b4d4b9e8be7c51da2a56cfd2df3 Mon Sep 17 00:00:00 2001 From: zhuyu Date: Fri, 30 May 2025 15:24:19 +0800 Subject: [PATCH 4/4] =?UTF-8?q?feature:=20=E6=8C=89=E9=92=AE=E5=90=8D?= =?UTF-8?q?=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/admin/controller/Dashboard.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/admin/controller/Dashboard.php b/application/admin/controller/Dashboard.php index 932501c..3f56bf6 100755 --- a/application/admin/controller/Dashboard.php +++ b/application/admin/controller/Dashboard.php @@ -223,7 +223,7 @@ class Dashboard extends Backend return $this->view->fetch('kpi_presale'); } - $this->error('暂未支持'); + $this->error('当前岗位暂未支持'); }