From 31aebd89c89a042b19da23514b78692ec950020f Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 26 九月 2025 10:45:25 +0800
Subject: [PATCH] fix: s
---
src/services/api/index.ts | 4
.eslintrc-auto-import.json | 1
src/services/api/electronSign.ts | 21 +++---
src/services/api/typings.d.ts | 113 ++++++++++++++++++++++++++++++++++---
auto-imports.d.ts | 4 +
src/constants/apiEnum.ts | 12 ++++
src/services/api/enterpriseWallet.ts | 12 ----
src/services/api/ocrUtils.ts | 12 ++++
8 files changed, 144 insertions(+), 35 deletions(-)
diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json
index e20962f..292270a 100644
--- a/.eslintrc-auto-import.json
+++ b/.eslintrc-auto-import.json
@@ -39,6 +39,7 @@
"EnumDbAuditOperateText": true,
"EnumElectronSignAccess": true,
"EnumElectronSignAccessText": true,
+ "EnumElectronSignVerifyType": true,
"EnumEnterpriseCostStatus": true,
"EnumEnterpriseCostType": true,
"EnumEnterpriseRealMethod": true,
diff --git a/auto-imports.d.ts b/auto-imports.d.ts
index 3399137..4ee3e55 100644
--- a/auto-imports.d.ts
+++ b/auto-imports.d.ts
@@ -41,6 +41,7 @@
const EnumDbAuditOperateText: typeof import('./src/constants/apiEnumText')['EnumDbAuditOperateText']
const EnumElectronSignAccess: typeof import('./src/constants/apiEnum')['EnumElectronSignAccess']
const EnumElectronSignAccessText: typeof import('./src/constants/electronSign')['EnumElectronSignAccessText']
+ const EnumElectronSignVerifyType: typeof import('./src/constants/apiEnum')['EnumElectronSignVerifyType']
const EnumEnterpriseCostStatus: typeof import('./src/constants/apiEnum')['EnumEnterpriseCostStatus']
const EnumEnterpriseCostType: typeof import('./src/constants/apiEnum')['EnumEnterpriseCostType']
const EnumEnterpriseRealMethod: typeof import('./src/constants/apiEnum')['EnumEnterpriseRealMethod']
@@ -271,7 +272,7 @@
export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
import('vue')
// @ts-ignore
- export type { EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserBankCardAccess, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, EnumUserWalletTransactionType, EnumWalletTransactionStatus, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus, EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserBankCardAccess, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, EnumUserWalletTransactionType, EnumWalletTransactionStatus, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus } from './src/constants/apiEnum'
+ export type { EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumElectronSignVerifyType, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserBankCardAccess, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, EnumUserWalletTransactionType, EnumWalletTransactionStatus, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus, EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumElectronSignVerifyType, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserBankCardAccess, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, EnumUserWalletTransactionType, EnumWalletTransactionStatus, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus } from './src/constants/apiEnum'
import('./src/constants/apiEnum')
// @ts-ignore
export type { FlexWorkerEleSignEnum, FlexTaskWorkerHireEnum, FlexWorkerEleSignEnum, FlexTaskWorkerHireEnum } from './src/constants/cPerson'
@@ -351,6 +352,7 @@
readonly EnumDbAuditOperateText: UnwrapRef<typeof import('./src/constants/apiEnumText')['EnumDbAuditOperateText']>
readonly EnumElectronSignAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumElectronSignAccess']>
readonly EnumElectronSignAccessText: UnwrapRef<typeof import('./src/constants/electronSign')['EnumElectronSignAccessText']>
+ readonly EnumElectronSignVerifyType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumElectronSignVerifyType']>
readonly EnumEnterpriseCostStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCostStatus']>
readonly EnumEnterpriseCostType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCostType']>
readonly EnumEnterpriseRealMethod: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseRealMethod']>
diff --git a/src/constants/apiEnum.ts b/src/constants/apiEnum.ts
index 3407d01..5e7d264 100644
--- a/src/constants/apiEnum.ts
+++ b/src/constants/apiEnum.ts
@@ -19,6 +19,8 @@
PcWeb = 10,
/**寰俊灏忕▼搴� */
Wxmp = 20,
+ /**H5鐧诲綍 */
+ H5 = 30,
}
/** 缂栧彿鍦板潃鍦烘櫙 */
@@ -77,6 +79,14 @@
BestSign = 10,
/**鏀粯瀹濅俊浠荤 */
AlipaySign = 20,
+}
+
+/** 鐢靛瓙绛炬牎楠岀被鍨� */
+export enum EnumElectronSignVerifyType {
+ /**鐭俊 */
+ SMS = 10,
+ /**浜鸿劯 */
+ Face = 20,
}
/** 浼佷笟鐢ㄩ噺鎵h垂鐘舵�� */
@@ -217,6 +227,8 @@
export enum EnumOcrAccess {
/**鐧惧害 */
Baidu = 10,
+ /**涓婁笂绛� */
+ BestSign = 20,
}
/** 鍒嗛〉鍒楄〃鎺掑簭 */
diff --git a/src/services/api/electronSign.ts b/src/services/api/electronSign.ts
index abd2700..8b63a80 100644
--- a/src/services/api/electronSign.ts
+++ b/src/services/api/electronSign.ts
@@ -166,8 +166,6 @@
method: 'GET',
params: {
...params,
- request: undefined,
- ...params['request'],
},
...(options || {}),
}
@@ -179,14 +177,17 @@
body: API.PersonalUserFaceRealCommand,
options?: API.RequestConfig
) {
- return request<string>('/api/user/electronSign/personalUserFaceReal', {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json-patch+json',
- },
- data: body,
- ...(options || {}),
- });
+ return request<API.PersonalUserFaceRealCommandResult>(
+ '/api/user/electronSign/personalUserFaceReal',
+ {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ }
+ );
}
/** 涓汉涓夎绱犲疄鍚嶈璇� POST /api/user/electronSign/personalUserIdentity3Real */
diff --git a/src/services/api/enterpriseWallet.ts b/src/services/api/enterpriseWallet.ts
index dc65418..3ccb9f2 100644
--- a/src/services/api/enterpriseWallet.ts
+++ b/src/services/api/enterpriseWallet.ts
@@ -330,15 +330,3 @@
}
);
}
-
-/** 娴嬭瘯闃块噷鏀粯 POST /api/user/enterpriseWallet/testAliPay */
-export async function testAliPay(body: API.TestAliPayCommand, options?: API.RequestConfig) {
- return request<string>('/api/user/enterpriseWallet/testAliPay', {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json-patch+json',
- },
- data: body,
- ...(options || {}),
- });
-}
diff --git a/src/services/api/index.ts b/src/services/api/index.ts
index 2d2b182..99078ea 100644
--- a/src/services/api/index.ts
+++ b/src/services/api/index.ts
@@ -9,6 +9,7 @@
import * as task from './task';
import * as enterprise from './enterprise';
import * as resource from './resource';
+import * as logRecords from './logRecords';
import * as dictionary from './dictionary';
import * as enterpriseWallet from './enterpriseWallet';
import * as codeUrl from './codeUrl';
@@ -18,7 +19,6 @@
import * as taskCheckReceive from './taskCheckReceive';
import * as taskUser from './taskUser';
import * as menu from './menu';
-import * as logRecords from './logRecords';
import * as fileUtils from './fileUtils';
import * as syncDatabase from './syncDatabase';
export default {
@@ -29,6 +29,7 @@
task,
enterprise,
resource,
+ logRecords,
dictionary,
enterpriseWallet,
codeUrl,
@@ -38,7 +39,6 @@
taskCheckReceive,
taskUser,
menu,
- logRecords,
fileUtils,
syncDatabase,
};
diff --git a/src/services/api/ocrUtils.ts b/src/services/api/ocrUtils.ts
index 75d1669..c342ddd 100644
--- a/src/services/api/ocrUtils.ts
+++ b/src/services/api/ocrUtils.ts
@@ -2,6 +2,18 @@
// @ts-ignore
import { request } from '@/utils/request';
+/** 鏌ヨ閾惰鍗¤瘑鍒� POST /api/common/ocrUtils/getBankOcr */
+export async function getBankOcr(body: API.GetBankOcrCommand, options?: API.RequestConfig) {
+ return request<API.GetBankOcrCommandResult>('/api/common/ocrUtils/getBankOcr', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
/** 鏂囧瓧璇嗗埆韬唤璇佽儗闈� POST /api/common/ocrUtils/getIdentityBackOcr */
export async function getIdentityBackOcr(
body: API.GetIdentityBackOcrCommand,
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index 93aa633..5623a46 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -161,6 +161,8 @@
}
interface APIgetPersonalUserBankCardParams {
+ /** 鐏靛伐Id */
+ enterpriseEmployeeId?: string;
/** 閫氶亾 */
access?: EnumUserBankCardAccess;
}
@@ -173,8 +175,8 @@
}
interface APIgetPersonalUserRealResultParams {
- /** 鏌ヨ涓汉瀹炲悕缁撴灉 */
- request?: GetPersonalUserRealResultQuery;
+ /** 鐏靛伐Id */
+ enterpriseEmployeeId?: string;
}
interface APIgetPersonalUserTransactionParams {
@@ -550,6 +552,8 @@
PcWeb = 10,
/**寰俊灏忕▼搴� */
Wxmp = 20,
+ /**H5鐧诲綍 */
+ H5 = 30,
}
enum EnumCodeUrlScene {
@@ -601,6 +605,13 @@
BestSign = 10,
/**鏀粯瀹濅俊浠荤 */
AlipaySign = 20,
+ }
+
+ enum EnumElectronSignVerifyType {
+ /**鐭俊 */
+ SMS = 10,
+ /**浜鸿劯 */
+ Face = 20,
}
enum EnumEnterpriseCostStatus {
@@ -728,6 +739,8 @@
enum EnumOcrAccess {
/**鐧惧害 */
Baidu = 10,
+ /**涓婁笂绛� */
+ BestSign = 20,
}
enum EnumPagedListOrder {
@@ -1102,6 +1115,24 @@
/** 閿欒鐮� */
errorCode?: string;
data?: GetArrangeTaskUsersQueryResult;
+ /** 鎵ц鎴愬姛 */
+ success?: boolean;
+ /** 閿欒淇℃伅 */
+ msg?: any;
+ /** 闄勫姞鏁版嵁 */
+ extras?: any;
+ /** 鏃堕棿鎴� */
+ timestamp?: number;
+ }
+
+ interface FriendlyResultGetBankOcrCommandResult {
+ /** 璺熻釜Id */
+ traceId?: string;
+ /** 鐘舵�佺爜 */
+ code?: number;
+ /** 閿欒鐮� */
+ errorCode?: string;
+ data?: GetBankOcrCommandResult;
/** 鎵ц鎴愬姛 */
success?: boolean;
/** 閿欒淇℃伅 */
@@ -2604,6 +2635,24 @@
timestamp?: number;
}
+ interface FriendlyResultPersonalUserFaceRealCommandResult {
+ /** 璺熻釜Id */
+ traceId?: string;
+ /** 鐘舵�佺爜 */
+ code?: number;
+ /** 閿欒鐮� */
+ errorCode?: string;
+ data?: PersonalUserFaceRealCommandResult;
+ /** 鎵ц鎴愬姛 */
+ success?: boolean;
+ /** 閿欒淇℃伅 */
+ msg?: any;
+ /** 闄勫姞鏁版嵁 */
+ extras?: any;
+ /** 鏃堕棿鎴� */
+ timestamp?: number;
+ }
+
interface FriendlyResultRechargeEnterpriseWalletCommandResult {
/** 璺熻釜Id */
traceId?: string;
@@ -2706,7 +2755,7 @@
}
interface GetArrangeTaskUsersQueryResultItem {
- /** 浠诲姟浜哄憳Id */
+ /** 鐏靛伐Id */
id?: string;
/** 澶村儚 */
avatar?: string;
@@ -2737,6 +2786,21 @@
/** 宸ヤ綔缁忛獙 */
workExperience?: string;
arrangeStatus?: EnumTaskUserArrangeStatus;
+ }
+
+ interface GetBankOcrCommand {
+ access?: EnumOcrAccess;
+ /** 鍦烘櫙 */
+ scene?: string;
+ /** 閾炬帴鍦板潃 */
+ url?: string;
+ /** 鏄惁涓轰簯瀛樺偍鐩稿鍦板潃 */
+ isOssUrl?: boolean;
+ }
+
+ interface GetBankOcrCommandResult {
+ /** 鍗″彿 */
+ number?: string;
}
interface GetCheckReceiveTaskQuery {
@@ -3202,6 +3266,8 @@
enterpriseId?: string;
/** 鍏抽敭瀛� */
keywords?: string;
+ /** 閫氶亾 */
+ accesses?: EnumElectronSignAccess[];
status?: EnumContractTemplateStatus;
/** 瀹㈡埛涓婁紶鏃堕棿-璧峰 */
createdTimeBegin?: string;
@@ -3965,6 +4031,8 @@
interface GetPersonalUserBankCardQueryResult {
access?: EnumUserBankCardAccess;
+ /** 閾惰鍗$収鐗囧湴鍧� */
+ bankImageUrl?: string;
/** 閾惰鍗″彿 */
code?: string;
/** 鎵�灞為摱琛� */
@@ -4111,9 +4179,9 @@
signContractTime?: string;
}
- type GetPersonalUserRealResultQuery = Record<string, any>;
-
interface GetPersonalUserRealResultQueryResult {
+ /** 鐢ㄦ埛Id */
+ id?: string;
/** 鏄惁瀹炲悕 */
isReal?: boolean;
/** 瀹炲悕鏃堕棿 */
@@ -5389,6 +5457,12 @@
id?: string;
/** 閭�绾︾煭淇$紪鍙凤紙浜岄�変竴锛� */
smsCode?: string;
+ /** 鍚堝悓妯℃澘Id锛堢绾﹀伐鍏锋椂浣跨敤锛� */
+ contractTemplateId?: string;
+ /** 绛剧害鏍¢獙绫诲瀷 */
+ verifyTypes?: EnumElectronSignVerifyType[];
+ /** 绛剧害瀹屾垚鍚庤皟鏁村湴鍧� */
+ returnUrl?: string;
}
interface PersonalUserElectronSignCommandResult {
@@ -5407,6 +5481,22 @@
identityImg: string;
/** 韬唤璇佸浗寰介潰 */
identityBackImg: string;
+ /** 浜鸿劯璇嗗埆鎴愬姛璋冩暣椤甸潰 */
+ faceRealCallbackUrl?: string;
+ }
+
+ interface PersonalUserFaceRealCommandResult {
+ /** 鐢ㄦ埛Id */
+ userId?: string;
+ /** 鐏靛伐Id */
+ enterpriseEmployeeId?: string;
+ userSignContractStatus?: EnumTaskUserSignContractStatus;
+ /** 鏄惁瀹炲悕 */
+ isReal?: boolean;
+ realMethod?: EnumUserRealMethod;
+ realStatus?: EnumPersonalUserRealStatus;
+ /** 浜鸿劯璇嗗埆鍦板潃 */
+ faceUrl?: string;
}
interface PersonalUserIdentity3RealCommand {
@@ -5725,7 +5815,11 @@
}
interface SavePersonalUserBankCardCommand {
+ /** 鐏靛伐Id */
+ enterpriseEmployeeId?: string;
access?: EnumUserBankCardAccess;
+ /** 閾惰鍗$収鐗囧湴鍧� */
+ bankImageUrl?: string;
/** 閾惰鍗″彿 */
code?: string;
/** 鎵�灞為摱琛� */
@@ -5986,6 +6080,10 @@
interface SetTaskUserArrangeCommand {
/** 浠诲姟浜哄憳Id */
id?: string;
+ /** 浠诲姟Id */
+ taskInfoId?: string;
+ /** 鐏靛伐Id */
+ enterpriseEmployeeId?: string;
arrangeStatus?: EnumTaskUserArrangeStatus;
}
@@ -6167,11 +6265,6 @@
status?: EnumUserStatus;
/** 澶囨敞 */
remark?: string;
- }
-
- interface TestAliPayCommand {
- code?: string;
- freezeNo?: string;
}
interface UpdatePhoneNumberVerifyCodeCommand {
--
Gitblit v1.9.1