diff --git a/app/admin/controller/agent/CommissionRecord.php b/app/admin/controller/agent/CommissionRecord.php new file mode 100644 index 0000000..3944a73 --- /dev/null +++ b/app/admin/controller/agent/CommissionRecord.php @@ -0,0 +1,34 @@ + 'desc']; + + protected string|array $orderGuarantee = ['id' => 'desc']; + + protected array $withJoinTable = ['settlementPeriod', 'channel', 'admin']; + + protected bool $modelValidate = false; + + protected function initController(WebmanRequest $request): ?Response + { + $this->model = new \app\common\model\AgentCommissionRecord(); + return null; + } +} + diff --git a/app/common/model/AgentCommissionRecord.php b/app/common/model/AgentCommissionRecord.php new file mode 100644 index 0000000..cf450cf --- /dev/null +++ b/app/common/model/AgentCommissionRecord.php @@ -0,0 +1,38 @@ + 'integer', + 'update_time' => 'integer', + 'settled_at' => 'integer', + 'commission_rate' => 'string', + 'calc_base_amount' => 'string', + 'commission_amount' => 'string', + 'status' => 'integer', + ]; + + public function channel(): \think\model\relation\BelongsTo + { + return $this->belongsTo(Channel::class, 'channel_id', 'id'); + } + + public function admin(): \think\model\relation\BelongsTo + { + return $this->belongsTo(\app\admin\model\Admin::class, 'admin_id', 'id'); + } + + public function settlementPeriod(): \think\model\relation\BelongsTo + { + return $this->belongsTo(AgentSettlementPeriod::class, 'settlement_period_id', 'id'); + } +} + diff --git a/web/src/lang/backend/en/agent/commissionRecord.ts b/web/src/lang/backend/en/agent/commissionRecord.ts new file mode 100644 index 0000000..896abb4 --- /dev/null +++ b/web/src/lang/backend/en/agent/commissionRecord.ts @@ -0,0 +1,19 @@ +export default { + 'quick Search Fields': 'ID/Settlement period ID/Remark', + id: 'ID', + settlement_period_id: 'Settlement period ID', + channel_id: 'Channel ID', + admin_id: 'Agent admin ID', + commission_rate: 'Commission rate', + calc_base_amount: 'Calculation base amount', + commission_amount: 'Commission amount', + status: 'Status', + 'status 0': 'Pending', + 'status 1': 'Paid', + 'status 2': 'Reverted', + settled_at: 'Settled at', + remark: 'Remark', + create_time: 'Created', + update_time: 'Updated', +} + diff --git a/web/src/lang/backend/zh-cn/agent/commissionRecord.ts b/web/src/lang/backend/zh-cn/agent/commissionRecord.ts new file mode 100644 index 0000000..860a964 --- /dev/null +++ b/web/src/lang/backend/zh-cn/agent/commissionRecord.ts @@ -0,0 +1,19 @@ +export default { + 'quick Search Fields': 'ID/结算周期ID/备注', + id: 'ID', + settlement_period_id: '结算周期ID', + channel_id: '渠道ID', + admin_id: '代理管理员ID', + commission_rate: '佣金比例', + calc_base_amount: '结算基数', + commission_amount: '佣金金额', + status: '状态', + 'status 0': '待发放', + 'status 1': '已发放', + 'status 2': '已回退', + settled_at: '发放时间', + remark: '备注', + create_time: '创建时间', + update_time: '更新时间', +} + diff --git a/web/src/views/backend/agent/commissionRecord/index.vue b/web/src/views/backend/agent/commissionRecord/index.vue new file mode 100644 index 0000000..5f60776 --- /dev/null +++ b/web/src/views/backend/agent/commissionRecord/index.vue @@ -0,0 +1,80 @@ + + + + + + diff --git a/web/src/views/backend/agent/commissionRecord/popupForm.vue b/web/src/views/backend/agent/commissionRecord/popupForm.vue new file mode 100644 index 0000000..c13ef0c --- /dev/null +++ b/web/src/views/backend/agent/commissionRecord/popupForm.vue @@ -0,0 +1,49 @@ + + + + + +