feat(P20T1-1,P20T1-2,P20T1-3): 差旅模型、申请/订单接口与工作流分支
这个提交包含在:
@@ -3,6 +3,7 @@ const NOTIFICATION_DOMAIN_SCOPES = Object.freeze({
|
||||
reimbursement: 'reimbursement',
|
||||
leave: 'leave',
|
||||
procurement: 'procurement',
|
||||
travel: 'travel',
|
||||
asset: 'asset',
|
||||
inventory: 'inventory',
|
||||
});
|
||||
@@ -17,6 +18,8 @@ const NOTIFICATION_TYPES = Object.freeze({
|
||||
leaveRejected: 'leave.rejected',
|
||||
purchaseRequestApproved: 'purchase_request.approved',
|
||||
purchaseRequestRejected: 'purchase_request.rejected',
|
||||
travelRequestApproved: 'travel_request.approved',
|
||||
travelRequestRejected: 'travel_request.rejected',
|
||||
assetAssigned: 'asset.assigned',
|
||||
assetReturned: 'asset.returned',
|
||||
assetTransferred: 'asset.transferred',
|
||||
@@ -33,6 +36,8 @@ const IM_SUPPORTED_NOTIFICATION_TYPES = Object.freeze([
|
||||
NOTIFICATION_TYPES.leaveRejected,
|
||||
NOTIFICATION_TYPES.purchaseRequestApproved,
|
||||
NOTIFICATION_TYPES.purchaseRequestRejected,
|
||||
NOTIFICATION_TYPES.travelRequestApproved,
|
||||
NOTIFICATION_TYPES.travelRequestRejected,
|
||||
NOTIFICATION_TYPES.assetAssigned,
|
||||
NOTIFICATION_TYPES.assetReturned,
|
||||
NOTIFICATION_TYPES.assetTransferred,
|
||||
@@ -49,6 +54,8 @@ const NOTIFICATION_TYPE_TO_DOMAIN_SCOPE = Object.freeze({
|
||||
[NOTIFICATION_TYPES.leaveRejected]: NOTIFICATION_DOMAIN_SCOPES.leave,
|
||||
[NOTIFICATION_TYPES.purchaseRequestApproved]: NOTIFICATION_DOMAIN_SCOPES.procurement,
|
||||
[NOTIFICATION_TYPES.purchaseRequestRejected]: NOTIFICATION_DOMAIN_SCOPES.procurement,
|
||||
[NOTIFICATION_TYPES.travelRequestApproved]: NOTIFICATION_DOMAIN_SCOPES.travel,
|
||||
[NOTIFICATION_TYPES.travelRequestRejected]: NOTIFICATION_DOMAIN_SCOPES.travel,
|
||||
[NOTIFICATION_TYPES.assetAssigned]: NOTIFICATION_DOMAIN_SCOPES.asset,
|
||||
[NOTIFICATION_TYPES.assetReturned]: NOTIFICATION_DOMAIN_SCOPES.asset,
|
||||
[NOTIFICATION_TYPES.assetTransferred]: NOTIFICATION_DOMAIN_SCOPES.asset,
|
||||
@@ -60,6 +67,7 @@ const TARGET_TYPE_TO_DOMAIN_SCOPE = Object.freeze({
|
||||
reimbursement_form: NOTIFICATION_DOMAIN_SCOPES.reimbursement,
|
||||
leave_request: NOTIFICATION_DOMAIN_SCOPES.leave,
|
||||
purchase_request: NOTIFICATION_DOMAIN_SCOPES.procurement,
|
||||
travel_request: NOTIFICATION_DOMAIN_SCOPES.travel,
|
||||
asset_card: NOTIFICATION_DOMAIN_SCOPES.asset,
|
||||
inventory_check: NOTIFICATION_DOMAIN_SCOPES.inventory,
|
||||
});
|
||||
|
||||
@@ -22,6 +22,12 @@ const PROCUREMENT_SELF_SERVICE_PERMISSIONS = [
|
||||
"procurement.submit",
|
||||
];
|
||||
|
||||
const TRAVEL_SELF_SERVICE_PERMISSIONS = [
|
||||
"travel.create",
|
||||
"travel.view_own",
|
||||
"travel.submit",
|
||||
];
|
||||
|
||||
const ASSET_SELF_SERVICE_PERMISSIONS = ["asset.view_own"];
|
||||
|
||||
const MASTERDATA_VIEW_PERMISSIONS = ["masterdata.view"];
|
||||
@@ -30,6 +36,7 @@ const MASTERDATA_MANAGE_PERMISSIONS = ["masterdata.manage"];
|
||||
const EMPLOYEE_BASE_PERMISSIONS = [
|
||||
...EXPENSE_SELF_SERVICE_PERMISSIONS,
|
||||
...LEAVE_SELF_SERVICE_PERMISSIONS,
|
||||
...TRAVEL_SELF_SERVICE_PERMISSIONS,
|
||||
];
|
||||
|
||||
const ENTITY_PERMISSION_MAP = {
|
||||
@@ -79,6 +86,22 @@ const ENTITY_PERMISSION_MAP = {
|
||||
approve: "procurement.approve",
|
||||
manage: "procurement.manage",
|
||||
},
|
||||
travel_request: {
|
||||
create: "travel.create",
|
||||
view_own: "travel.view_own",
|
||||
view_all: "travel.view_all",
|
||||
submit: "travel.submit",
|
||||
approve: "travel.approve",
|
||||
manage: "travel.manage",
|
||||
},
|
||||
travel: {
|
||||
create: "travel.create",
|
||||
view_own: "travel.view_own",
|
||||
view_all: "travel.view_all",
|
||||
submit: "travel.submit",
|
||||
approve: "travel.approve",
|
||||
manage: "travel.manage",
|
||||
},
|
||||
};
|
||||
|
||||
const ROLE_PERMISSIONS = {
|
||||
@@ -96,6 +119,8 @@ const ROLE_PERMISSIONS = {
|
||||
"leave.approve",
|
||||
"procurement.approve",
|
||||
"procurement.view_all",
|
||||
"travel.approve",
|
||||
"travel.view_all",
|
||||
"asset.view_all",
|
||||
"report.dashboard.view",
|
||||
"budget.view",
|
||||
@@ -112,6 +137,8 @@ const ROLE_PERMISSIONS = {
|
||||
"leave.view_all",
|
||||
"procurement.approve",
|
||||
"procurement.view_all",
|
||||
"travel.approve",
|
||||
"travel.view_all",
|
||||
"asset.view_all",
|
||||
"report.dashboard.view",
|
||||
"budget.view",
|
||||
@@ -127,6 +154,7 @@ const ROLE_PERMISSIONS = {
|
||||
"expense.finance.pay",
|
||||
"expense.view_all",
|
||||
"procurement.view_all",
|
||||
"travel.view_all",
|
||||
"asset.view_all",
|
||||
],
|
||||
finance_mgr: [
|
||||
@@ -146,6 +174,8 @@ const ROLE_PERMISSIONS = {
|
||||
"expense.finance.override_duplicate",
|
||||
"procurement.view_all",
|
||||
"procurement.manage",
|
||||
"travel.view_all",
|
||||
"travel.manage",
|
||||
"asset.view_all",
|
||||
"asset.manage",
|
||||
"asset.inventory",
|
||||
@@ -157,6 +187,8 @@ const ROLE_PERMISSIONS = {
|
||||
...EMPLOYEE_BASE_PERMISSIONS,
|
||||
"procurement.view_all",
|
||||
"procurement.manage",
|
||||
"travel.view_all",
|
||||
"travel.manage",
|
||||
"asset.view_all",
|
||||
"asset.manage",
|
||||
"asset.transfer",
|
||||
|
||||
在新工单中引用
屏蔽一个用户