use-on-demand
Version:
290 lines (248 loc) • 8.12 kB
TypeScript
import {IPositionLineAdapter} from '../../../tradingview/charting_library/charting_library.min';
import {xX___CAreaTypeE} from '../../../cookie/store/CEnum';
// import {PositionType_QuanOrZhu} from '~/assets/js/_enum/ApiEnum';
// import {xX___CAreaTypeE} from '~/assets/js/_enum/CEnum';
declare global {
interface BgHeaderMixins_NaveData {
visible: boolean;
name: any;
basePath?: string;
path?: string;
exactMatch?: boolean;
clickFn?: () => void; // 会成为<a>标签,并带有点击事件
noLink?: boolean;
isHighlight?: boolean; // true-始终高亮
children?: BgHeaderMixins_NaveData[];
}
interface Window {
position_test(long: any, sort: any): void;
}
namespace AlertNS {
interface Info {
type: 'success' | 'error';
title: string;
message: string;
}
}
namespace CreateSwapAccountNS {
interface BeginQuestion {
title: string;
choices: Array<BeginQuestion_Choice>;
}
interface BeginQuestion_Choice {
content: string;
correct: boolean;
checked: boolean;
}
}
namespace DepthCpNS {
interface BitCfg {
price: number;
size: number;
}
interface DeepStyleType {
axisFontColor: string;
textBoxWidth: number;
textLineHeight: number;
dotColor1: string;
textBoxHeight: number;
bottom: number;
spaceY: number;
spaceX: number;
axisColor: string;
textBgColor: string;
sideSpace: number;
textFontColor: string;
right: number;
dotColor2: string;
textPaddingLeft: number;
markLine: number;
lineWidth: number;
color1: string;
color2: string;
top: number;
left: number;
textFont: string;
radius: number;
font: string;
}
interface RangeType {
rangeX: number;
startX: number;
endY?: number;
}
interface DrawParamInfo {
Ox: number;
Oy: number;
x1: number;
x0: number;
//
innerWidth: number;
numX: number;
numY: number;
//
pxX: number;
pxY: number;
}
}
namespace PositionNS {
type PositionEntity_Type = Combined_PositionListItem & {
money: number;
fairPxMoney: number; // 用【合理价】算的未实现盈亏
liquidatePrice: number; // 根据【仓位信息】,计算出,该仓位【强平价格】
positionValue: number;
positionValue2: number;
on_vol: number;
inital: number;
open_type?: number; // FIXME 这个值,和【不存在的值-open_type】相关,但实际意思是什么???
//
trueMargin_RateText: string; // 实时保证金率,的文字
maintenance_RateText: string; // 维持保证金率,的文字
};
// type GetLiquidate_Fn = (
// side: SimplePosit_DuoKongSide,
// position_type: PositionType_QuanOrZhu,
// addIM ?: number,
// info_or_firstInfo ?: { // WARN 此处,之前edit-margin-window.vue文件传递【EditMarginWindow】Vue实例的方式,过于累赘; 传递一个JSON对象进来,更好一点。
// liquidatePrice?: number, // 用作 _Position.ts
// firstLiquidatePrice?: number, // 用作 edit-margin-window.vue
// },
// ) => number
// WARN 使用这种方式,实时获取【Vue组件内方法】的类型,以保持【随时同步】
// type PositionCpType = InstanceType<typeof _Position>;
// type GetLiquidate_Fn = VueInlineCp.PositionCpType['getLiquidate']; // TIP 这种方式,应该是最优方式了
// @ts-ignore
type New_0609Version_getLiquidate_Fn = VueInlineCp.PositionCpType['New_0609Version_getLiquidate'];
type PositionLineCfg_Type = {
// pid: number;
// line: IPositionLineAdapter;
[key: string]: IPositionLineAdapter_Type;
};
interface PositionLine_TextInfo_Type {
[key: string]: undefined | string; // 每个pid,对应一条【盈亏文本】
}
export interface PositionContractInfo {
contractSize: number; // 合约面值
quoteCoin: string; // 目标币种
priceCoin: string; // 报价币种
}
// 【setLeverageInfo_fromOpenLever】方法,所用到的【数据结构】
interface LeverageInfo_FromCurrentOpenLever {
leverage: string;
// position_type?: PositionType_QuanOrZhu; // WARN 1-逐仓 ; 2-全仓
}
// 【当前委托 列表】的大小
interface LongOrShort_PendingOrder_Size {
Amount: number;
Vol: number;
}
// 【用户持有仓位】的大小
interface LongOrShort_HoldPosition_Size {
HoldVol: string; // 当前仓位数量
HoldAvgPrice: string; // 当前持仓均价
position_id: number; // 仓位ID
FreezeVol: string; // 冻结数量
// 有些情况下,才会出现
IM?: number;
MM?: number;
}
// 正要开仓的订单信息
interface LongOrShort_SubmittingOrderInfo
extends LongOrShort_SubmittingOrderInfo_LocalExpand {
Vol: number;
Price: number;
Leverage: number;
TakeFeeRatio: string;
longOrSort: boolean;
}
type LongOrShort_SubmittingOrderInfo_LocalExpand = {
// 后来附加的值
IMR?: number;
};
interface TrueLeverage_CalcInfo {
text: string;
ceiledLeverage: number;
noCeiledLeverage: number;
finalTotalTrueMargin: number;
positionValue: number;
trueMarginRatio: number;
trueMarginRatio_text: string;
}
}
namespace MainNavFourNS {
interface ContractProduct_Type {
ticker: FunnyTrade;
priceUnit: number;
contract: InstrumentsApiNS.IInstrument;
}
interface ContractArea_Type {
areaV: xX___CAreaTypeE;
label: string;
}
}
namespace HistoryEntrustNS {
interface ListAction_Param {
instrument_id: number;
offset: number;
originList: Array<UserOrdersApiNS.IOrder>;
size?: void; // 统一用固定值20,便于修改 WARN 使用void,禁止传值
}
}
namespace RiskLimitNS {
// TIP 标准系数,基准值
interface RiskLimitInfo_StandardMeta {
BaseLimit: number;
Step: number;
InitialMargin: number;
MaintenanceMargin: number;
}
// TIP 具体业务逻辑,数值参数
interface RiskLimitInfo_BzVal {
totalValue: number; //
sum: number;
initial: number;
maintenance: number;
level: number;
}
type RiskLimitInfo_StoreType = {
long: NullableType<RiskLimitNS.RiskLimitInfo_BzVal>;
short: NullableType<RiskLimitNS.RiskLimitInfo_BzVal>;
};
}
namespace SubmitEntrustNS {
// 缩写
interface SE_ContractInfo {
FeeConfig: {
TakerFee: number;
};
Contract: PositionNS.PositionContractInfo;
RiskLimit: RiskLimitNS.RiskLimitInfo_StandardMeta;
}
// 缩写
interface SE_OrderInfo {
OpenType?: boolean; // true-全仓 ; false-逐仓
Leverage: number;
Vol: number | string;
Price: string | number;
}
}
namespace ChatRoomNS {
// type ChatRoomList_CpType = InstanceType<typeof ChatRoomList>;
interface Base_ChatMember_Bean {
}
type GuestMember_Bean_List = {};
interface Interface {
}
interface JMemberItem {
key: 'j-ownerList' | 'j-managerList' | 'j-normalList' | 'j-otherList';
list: Array<NimNS.MemberType_Type>;
}
interface JMemberInfo {
ownerList: Array<NimNS.MemberType_Type>;
managerList: Array<NimNS.MemberType_Type>;
normalList: Array<NimNS.MemberType_Type>;
otherList: Array<NimNS.MemberType_Type>;
guestList: Array<NimNS.MemberType_Type>;
}
}
}