@jctrans/dw-sdk 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +587 -0
- package/dist/core/BaseQuery.d.ts +165 -0
- package/dist/core/BaseQuery.js +1 -0
- package/dist/core/GraphQLClient.d.ts +102 -0
- package/dist/core/GraphQLClient.js +1 -0
- package/dist/generated/opportunity/OpportunityEffectiveBoardQuery.d.ts +81 -0
- package/dist/generated/opportunity/OpportunityEffectiveBoardQuery.js +1 -0
- package/dist/generated/opportunity/OpportunityManager.d.ts +64 -0
- package/dist/generated/opportunity/OpportunityManager.js +1 -0
- package/dist/generated/opportunity/types.d.ts +84 -0
- package/dist/generated/opportunity/types.js +1 -0
- package/dist/index.d.ts +124 -0
- package/dist/index.js +1 -0
- package/dist/services/opportunity/BoardService.d.ts +59 -0
- package/dist/services/opportunity/BoardService.js +1 -0
- package/dist/services/opportunity/types.d.ts +70 -0
- package/dist/services/opportunity/types.js +1 -0
- package/dist/services/opportunity/validator.d.ts +35 -0
- package/dist/services/opportunity/validator.js +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ============================================================
|
|
3
|
+
* BaseQuery<TResponse> — 核心查询构造器
|
|
4
|
+
* ============================================================
|
|
5
|
+
*
|
|
6
|
+
* 【设计理念】
|
|
7
|
+
* 模仿 ORM 风格的链式调用,客户端只需写:
|
|
8
|
+
* manager.opportunityEffectiveBoardPage()
|
|
9
|
+
* .select('companyId', 'periodType', 'inquiryCount')
|
|
10
|
+
* .eq('statYear', 2026)
|
|
11
|
+
* .page(1, 20)
|
|
12
|
+
* .query()
|
|
13
|
+
* 底层自动拼接 GraphQL payload,不走 AST,零依赖。
|
|
14
|
+
*
|
|
15
|
+
* 【对齐 Java 后端】
|
|
16
|
+
* - 条件操作符使用小写 (eq/ne/gt/ge/lt/le/like/in/isNull/isNotNull),
|
|
17
|
+
* 与 data-common/Conditions.java 中的操作符完全一致。
|
|
18
|
+
* - 默认 GraphQL 格式对齐 GraphQLQueryBuilder.java:
|
|
19
|
+
* query { topic(pageNum: 1, pageSize: 20, conditions: [...]) { total pageNum pageSize records { fields } } }
|
|
20
|
+
* - 子类可按各自 GraphQL schema 覆盖 buildGraphQL()(如 dto 入参模式)。
|
|
21
|
+
*
|
|
22
|
+
* 【类型推断机制 — 泛型 Response 贯通】
|
|
23
|
+
* 子类继承 BaseQuery<TResponse>,query() 返回 Promise<TResponse>,
|
|
24
|
+
* 链式调用全程自动推断最终返回类型。
|
|
25
|
+
*
|
|
26
|
+
* 【类型推断机制 — 多态 this 实现链式调用类型收窄】
|
|
27
|
+
* 所有链式方法返回 TypeScript 原生多态 `this` 类型,
|
|
28
|
+
* 子类实例调用时自动解析为子类类型。
|
|
29
|
+
*
|
|
30
|
+
* 【SSR 避坑指南 — 实例无状态泄漏】
|
|
31
|
+
* BaseQuery 实例仅在单次请求内使用。每次调用 Manager 方法
|
|
32
|
+
* 都 new 一个新实例,查询条件不会跨请求残留。
|
|
33
|
+
*/
|
|
34
|
+
import type { GraphQLClient } from './GraphQLClient';
|
|
35
|
+
export type ConditionOperator = 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le' | 'like' | 'in' | 'isNull' | 'isNotNull';
|
|
36
|
+
export interface Condition {
|
|
37
|
+
operator: ConditionOperator;
|
|
38
|
+
field: string;
|
|
39
|
+
value: unknown;
|
|
40
|
+
}
|
|
41
|
+
export interface PageResult<TRecord> {
|
|
42
|
+
records: TRecord[];
|
|
43
|
+
total: number;
|
|
44
|
+
/** 当前页码 */
|
|
45
|
+
pageNum: number;
|
|
46
|
+
/** 每页条数 */
|
|
47
|
+
pageSize: number;
|
|
48
|
+
}
|
|
49
|
+
export declare abstract class BaseQuery<TResponse> {
|
|
50
|
+
protected readonly client: GraphQLClient;
|
|
51
|
+
protected readonly domain: string;
|
|
52
|
+
protected readonly topic: string;
|
|
53
|
+
/** 选中的字段列表 */
|
|
54
|
+
protected selectFields: string[];
|
|
55
|
+
/** 筛选条件列表 */
|
|
56
|
+
protected conditions: Condition[];
|
|
57
|
+
/** 额外参数(对应 Java QueryBuilder.arg()) */
|
|
58
|
+
protected extraArgs: Record<string, unknown>;
|
|
59
|
+
/** 表的全部字段列表(由子类在构造函数中设置),select() 未调用时默认查询全量 */
|
|
60
|
+
protected allFields: string[];
|
|
61
|
+
/** 分页参数(默认对齐 Java QueryBuilder: pageNum/pageSize) */
|
|
62
|
+
protected pageNum: number;
|
|
63
|
+
protected pageSize: number;
|
|
64
|
+
/**
|
|
65
|
+
* @param client GraphQLClient 实例(由 Manager 注入)
|
|
66
|
+
* @param domain 业务域(如 'opportunity'),用于构造请求 URL
|
|
67
|
+
* @param topic GraphQL 操作名(如 'opportunityEffectiveBoardPage')
|
|
68
|
+
*/
|
|
69
|
+
constructor(client: GraphQLClient, domain: string, topic: string);
|
|
70
|
+
/**
|
|
71
|
+
* 指定查询字段。
|
|
72
|
+
*
|
|
73
|
+
* 【类型推断机制 — 子类重写 select 约束字段名】
|
|
74
|
+
* 子类重写时限定 fields 为具体表字段的字面量联合类型:
|
|
75
|
+
* select(...fields: Array<keyof OpportunityEffectiveBoard>): this
|
|
76
|
+
* 从而实现 IDE 自动补全 + 编译期字段名校验。
|
|
77
|
+
*/
|
|
78
|
+
select(...fields: string[]): this;
|
|
79
|
+
/**
|
|
80
|
+
* 设置额外参数(对齐 Java QueryBuilder.arg())。
|
|
81
|
+
* 例如:.arg('companyId', 12345)
|
|
82
|
+
*/
|
|
83
|
+
arg(name: string, value: unknown): this;
|
|
84
|
+
/** 等于 */
|
|
85
|
+
eq(field: string, value: unknown): this;
|
|
86
|
+
/** 不等于 */
|
|
87
|
+
ne(field: string, value: unknown): this;
|
|
88
|
+
/** 大于 */
|
|
89
|
+
gt(field: string, value: unknown): this;
|
|
90
|
+
/** 大于等于 */
|
|
91
|
+
ge(field: string, value: unknown): this;
|
|
92
|
+
/** 小于 */
|
|
93
|
+
lt(field: string, value: unknown): this;
|
|
94
|
+
/** 小于等于 */
|
|
95
|
+
le(field: string, value: unknown): this;
|
|
96
|
+
/** 模糊匹配 */
|
|
97
|
+
like(field: string, value: string): this;
|
|
98
|
+
/** IN 查询 */
|
|
99
|
+
in(field: string, values: unknown[]): this;
|
|
100
|
+
/** 判断为空(对齐 Java Conditions.isNull) */
|
|
101
|
+
isNull(field: string): this;
|
|
102
|
+
/** 判断不为空(对齐 Java Conditions.isNotNull) */
|
|
103
|
+
isNotNull(field: string): this;
|
|
104
|
+
/** 分页(pageNum: 当前页码, pageSize: 每页条数,对齐 Java QueryBuilder) */
|
|
105
|
+
page(pageNum: number, pageSize: number): this;
|
|
106
|
+
/**
|
|
107
|
+
* 执行分页查询。
|
|
108
|
+
*
|
|
109
|
+
* 使用 domain + topic 构造 URL:POST {baseUrl}/api/{domain}/{topic}/graphql
|
|
110
|
+
* 这使得每个查询在浏览器 Network 面板中按独立路径可见。
|
|
111
|
+
*
|
|
112
|
+
* 【SSR 避坑指南 — query() 返回 Promise,不修改实例状态】
|
|
113
|
+
* 执行完成后不清空 selectFields/conditions,调用方可以复用同一实例
|
|
114
|
+
* 再调一次 query()。但绝不推荐跨请求复用实例。
|
|
115
|
+
*/
|
|
116
|
+
query(): Promise<TResponse>;
|
|
117
|
+
/**
|
|
118
|
+
* 构建完整的 GraphQL payload。
|
|
119
|
+
*
|
|
120
|
+
* 【对齐 Java GraphQLQueryBuilder.build()】
|
|
121
|
+
* 默认产出格式:
|
|
122
|
+
* query { topic(pageNum: 1, pageSize: 20, conditions: [...])
|
|
123
|
+
* { total pageNum pageSize records { fields } } }
|
|
124
|
+
*
|
|
125
|
+
* 子类可通过覆盖此方法适配不同的 GraphQL schema
|
|
126
|
+
* (例如 dto 入参模式、不同的分页字段名等)。
|
|
127
|
+
*
|
|
128
|
+
* 【无第三方依赖】
|
|
129
|
+
* 纯字符串模板拼接,不引入 graphql AST 库,包体积零增加。
|
|
130
|
+
*/
|
|
131
|
+
protected buildGraphQL(): string;
|
|
132
|
+
/**
|
|
133
|
+
* 构建 GraphQL 条件数组字面量(对齐 Java Conditions.buildJson())。
|
|
134
|
+
*
|
|
135
|
+
* 输出示例:
|
|
136
|
+
* [{operator: "eq", field: "status", value: 1}, {operator: "ge", field: "createTime", value: "2026-01-01"}]
|
|
137
|
+
*
|
|
138
|
+
* @param conditions 可选,传入指定条件列表;不传则使用 this.conditions
|
|
139
|
+
*/
|
|
140
|
+
protected buildConditionsLiteral(conditions?: Condition[]): string;
|
|
141
|
+
/**
|
|
142
|
+
* 判断值是否为"空"(null / undefined / 空字符串)。
|
|
143
|
+
* 用于决定是否在 GraphQL 参数中跳过该字段。
|
|
144
|
+
*/
|
|
145
|
+
protected isEmptyValue(value: unknown): boolean;
|
|
146
|
+
/**
|
|
147
|
+
* 将 JS 值序列化为 GraphQL 字面量(对齐 Java GraphQLQueryBuilder.formatValue())。
|
|
148
|
+
*
|
|
149
|
+
* - string → "value"(双引号,转义内部引号)
|
|
150
|
+
* - number → 原样输出
|
|
151
|
+
* - boolean → true / false
|
|
152
|
+
* - array → ["a", "b"](用于 IN)
|
|
153
|
+
* - null → null
|
|
154
|
+
*/
|
|
155
|
+
protected serializeValue(value: unknown): string;
|
|
156
|
+
private addCondition;
|
|
157
|
+
/**
|
|
158
|
+
* 【调试用】获取当前构造的 GraphQL payload 和端点 URL(不发起请求)。
|
|
159
|
+
*/
|
|
160
|
+
toGraphQL(): string;
|
|
161
|
+
/**
|
|
162
|
+
* 【调试用】获取即将请求的完整 URL。
|
|
163
|
+
*/
|
|
164
|
+
toEndpoint(): string;
|
|
165
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const a0_0x340fa0=a0_0x3867;(function(_0x166334,_0x5c3ada){const _0x9fddfe=a0_0x3867,_0xfe6d51=_0x166334();while(!![]){try{const _0x641d05=parseInt(_0x9fddfe(0xdc))/0x1+parseInt(_0x9fddfe(0xcc))/0x2+-parseInt(_0x9fddfe(0xee))/0x3+-parseInt(_0x9fddfe(0xf5))/0x4+-parseInt(_0x9fddfe(0xc3))/0x5+-parseInt(_0x9fddfe(0xf0))/0x6*(-parseInt(_0x9fddfe(0xcd))/0x7)+-parseInt(_0x9fddfe(0xef))/0x8*(parseInt(_0x9fddfe(0xe0))/0x9);if(_0x641d05===_0x5c3ada)break;else _0xfe6d51['push'](_0xfe6d51['shift']());}catch(_0x508a4d){_0xfe6d51['push'](_0xfe6d51['shift']());}}}(a0_0x49f5,0x7b92c));function a0_0x3867(_0x423dc4,_0x518acd){_0x423dc4=_0x423dc4-0xc0;const _0x417def=a0_0x49f5();let _0x158267=_0x417def[_0x423dc4];if(a0_0x3867['llIuvO']===undefined){var _0x6a52bd=function(_0x1b095b){const _0x4a50ee='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1fffe7='',_0x48c6d3='',_0x2f386b=_0x1fffe7+_0x6a52bd,_0x56f9c8=(''+function(){return 0x0;})['indexOf']('\x0a')!==-0x1;for(let _0x100b31=0x0,_0x54345b,_0x529732,_0x5da850=0x0;_0x529732=_0x1b095b['charAt'](_0x5da850++);~_0x529732&&(_0x54345b=_0x100b31%0x4?_0x54345b*0x40+_0x529732:_0x529732,_0x100b31++%0x4)?_0x1fffe7+=_0x56f9c8||_0x2f386b['charCodeAt'](_0x5da850+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x54345b>>(-0x2*_0x100b31&0x6)):_0x100b31:0x0){_0x529732=_0x4a50ee['indexOf'](_0x529732);}for(let _0x24984=0x0,_0x22bcb0=_0x1fffe7['length'];_0x24984<_0x22bcb0;_0x24984++){_0x48c6d3+='%'+('00'+_0x1fffe7['charCodeAt'](_0x24984)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x48c6d3);};a0_0x3867['ybewwy']=_0x6a52bd,a0_0x3867['DbmWrq']={},a0_0x3867['llIuvO']=!![];}const _0x49f59a=_0x417def[0x0],_0x3867a2=_0x423dc4+_0x49f59a,_0x34814f=a0_0x3867['DbmWrq'][_0x3867a2];if(!_0x34814f){const _0x182db8=function(_0x1c7701){this['YsILeW']=_0x1c7701,this['NhzAsF']=[0x1,0x0,0x0],this['DeLott']=function(){return'newState';},this['JrzqMh']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['dcarju']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x182db8['prototype']['VVESrF']=function(){const _0x388317=new RegExp(this['JrzqMh']+this['dcarju']),_0x231bb7=_0x388317['test'](this['DeLott']['toString']())?--this['NhzAsF'][0x1]:--this['NhzAsF'][0x0];return this['MWCxyf'](_0x231bb7);},_0x182db8['prototype']['MWCxyf']=function(_0x3aba3f){if(!Boolean(~_0x3aba3f))return _0x3aba3f;return this['Zxhrtt'](this['YsILeW']);},_0x182db8['prototype']['Zxhrtt']=function(_0x4c356a){for(let _0x56dc6f=0x0,_0x5ec353=this['NhzAsF']['length'];_0x56dc6f<_0x5ec353;_0x56dc6f++){this['NhzAsF']['push'](Math['round'](Math['random']())),_0x5ec353=this['NhzAsF']['length'];}return _0x4c356a(this['NhzAsF'][0x0]);},(''+function(){return 0x0;})['indexOf']('\x0a')===-0x1&&new _0x182db8(a0_0x3867)['VVESrF'](),_0x158267=a0_0x3867['ybewwy'](_0x158267),a0_0x3867['DbmWrq'][_0x3867a2]=_0x158267;}else _0x158267=_0x34814f;return _0x158267;}const a0_0x6a52bd=(function(){let _0x24679a=!![];return function(_0x34b6ba,_0x4608){const _0x207f74=_0x24679a?function(){const _0x371e64=a0_0x3867;if(_0x4608){const _0x19fc72=_0x4608[_0x371e64(0xdb)](_0x34b6ba,arguments);return _0x4608=null,_0x19fc72;}}:function(){};return _0x24679a=![],_0x207f74;};}()),a0_0x158267=a0_0x6a52bd(this,function(){const _0x3f78d9=a0_0x3867,_0x597396={'Fwyor':'(((.+)+)+)+$'};return a0_0x158267[_0x3f78d9(0xdf)]()[_0x3f78d9(0xea)](_0x3f78d9(0xf9))['toString']()[_0x3f78d9(0xc4)](a0_0x158267)[_0x3f78d9(0xea)](_0x597396['Fwyor']);});a0_0x158267();export class BaseQuery{constructor(_0x399508,_0x43615c,_0x5246f5){const _0x2a887f=a0_0x3867,_0x4f2cc0=_0x2a887f(0xe2)[_0x2a887f(0xc5)]('|');let _0x49c8be=0x0;while(!![]){switch(_0x4f2cc0[_0x49c8be++]){case'0':this[_0x2a887f(0xd4)]=_0x399508;continue;case'1':this['pageSize']=0x14;continue;case'2':this['pageNum']=0x1;continue;case'3':this[_0x2a887f(0xce)]={};continue;case'4':this['allFields']=[];continue;case'5':this[_0x2a887f(0xd1)]=[];continue;case'6':this[_0x2a887f(0xd2)]=_0x5246f5;continue;case'7':this[_0x2a887f(0x101)]=[];continue;case'8':this[_0x2a887f(0xd5)]=_0x43615c;continue;}break;}}['select'](..._0x5d9d1f){const _0x281d2d=a0_0x3867;return this[_0x281d2d(0x101)]=_0x5d9d1f,this;}[a0_0x340fa0(0xf7)](_0x2c170f,_0x5e5301){const _0x4da791=a0_0x340fa0;return this[_0x4da791(0xce)][_0x2c170f]=_0x5e5301,this;}['eq'](_0x2faf46,_0x434d15){const _0x478b92=a0_0x340fa0;return this[_0x478b92(0xf1)]('eq',_0x2faf46,_0x434d15);}['ne'](_0x17ccd4,_0x535fc4){const _0x86c1bf=a0_0x340fa0;return this[_0x86c1bf(0xf1)]('ne',_0x17ccd4,_0x535fc4);}['gt'](_0x14bbea,_0x21dd6a){return this['addCondition']('gt',_0x14bbea,_0x21dd6a);}['ge'](_0x355240,_0x5059e7){return this['addCondition']('ge',_0x355240,_0x5059e7);}['lt'](_0x43bf06,_0x230a2f){return this['addCondition']('lt',_0x43bf06,_0x230a2f);}['le'](_0x2d7baa,_0x4dbb49){const _0x26e009=a0_0x340fa0;return this[_0x26e009(0xf1)]('le',_0x2d7baa,_0x4dbb49);}[a0_0x340fa0(0xf3)](_0xfad484,_0x31a85a){const _0x1c213d=a0_0x340fa0,_0x2f8bd6={'zdsII':_0x1c213d(0xf3)};return this[_0x1c213d(0xf1)](_0x2f8bd6[_0x1c213d(0xed)],_0xfad484,_0x31a85a);}['in'](_0x13f04c,_0x2253d6){return this['addCondition']('in',_0x13f04c,_0x2253d6);}[a0_0x340fa0(0xc9)](_0x32325f){const _0x3513b9=a0_0x340fa0,_0x55283f={'oRXoB':_0x3513b9(0xc9)};return this[_0x3513b9(0xf1)](_0x55283f['oRXoB'],_0x32325f,!![]);}['isNotNull'](_0x537bf2){const _0x2c4793=a0_0x340fa0,_0x2a6edd={'LRboF':'isNotNull'};return this[_0x2c4793(0xf1)](_0x2a6edd[_0x2c4793(0xf8)],_0x537bf2,!![]);}[a0_0x340fa0(0xde)](_0x22c9c1,_0x44e0ce){const _0xac70c5=a0_0x340fa0;return this['pageNum']=_0x22c9c1,this[_0xac70c5(0xe7)]=_0x44e0ce,this;}async[a0_0x340fa0(0xd0)](){const _0x189a4c=a0_0x340fa0,_0x29fca7=this[_0x189a4c(0x102)](),_0x4250a8={'query':_0x29fca7},_0x5ce7f8=await this[_0x189a4c(0xd4)][_0x189a4c(0xe3)](this[_0x189a4c(0xd5)],this['topic'],_0x4250a8);return _0x5ce7f8[this[_0x189a4c(0xd2)]];}[a0_0x340fa0(0x102)](){const _0x70f497=a0_0x340fa0,_0x44d7c4={'pyJtW':function(_0x1986b7,_0x4b4240){return _0x1986b7>_0x4b4240;},'XTJYa':function(_0x117343,_0x565007){return _0x117343>_0x565007;}},_0x5c8e35=_0x44d7c4['pyJtW'](this[_0x70f497(0x101)][_0x70f497(0xdd)],0x0)?this[_0x70f497(0x101)][_0x70f497(0xc1)]('\x20'):this[_0x70f497(0xfe)][_0x70f497(0xdd)]>0x0?this['allFields'][_0x70f497(0xc1)]('\x20'):_0x70f497(0xe6),_0x3a0f49=[];_0x3a0f49[_0x70f497(0xd6)](_0x70f497(0xe4)+this['pageNum']),_0x3a0f49[_0x70f497(0xd6)](_0x70f497(0xe8)+this['pageSize']);for(const [_0x1c60a3,_0x8af4a]of Object[_0x70f497(0xda)](this[_0x70f497(0xce)])){!this[_0x70f497(0xcf)](_0x8af4a)&&_0x3a0f49[_0x70f497(0xd6)](_0x1c60a3+':\x20'+this['serializeValue'](_0x8af4a));}_0x44d7c4[_0x70f497(0xc2)](this[_0x70f497(0xd1)]['length'],0x0)&&_0x3a0f49[_0x70f497(0xd6)](_0x70f497(0x100)+this['buildConditionsLiteral']());const _0x117363=_0x3a0f49['join'](',\x20');return _0x70f497(0xfa)+this[_0x70f497(0xd2)]+'('+_0x117363+_0x70f497(0xd9)+_0x5c8e35+_0x70f497(0xc8);}[a0_0x340fa0(0xd7)](_0x29572c){const _0x426f00=a0_0x340fa0,_0x557b66=_0x29572c??this[_0x426f00(0xd1)],_0x5017fb=_0x557b66['map'](_0x3eaf2a=>{const _0x168376=_0x426f00,_0x4e30a1=this[_0x168376(0xfd)](_0x3eaf2a['value']);return _0x168376(0xec)+_0x3eaf2a[_0x168376(0xca)]+_0x168376(0xd8)+_0x3eaf2a[_0x168376(0xcb)]+'\x22,\x20value:\x20'+_0x4e30a1+'}';})[_0x426f00(0xc1)](',\x20');return'['+_0x5017fb+']';}[a0_0x340fa0(0xcf)](_0x2fdb7d){const _0x2696aa=a0_0x340fa0,_0x3eba4b={'DaHgP':function(_0x684894,_0x1db11d){return _0x684894===_0x1db11d;}};return _0x3eba4b[_0x2696aa(0xf4)](_0x2fdb7d,null)||_0x3eba4b[_0x2696aa(0xf4)](_0x2fdb7d,undefined)||_0x2fdb7d==='';}[a0_0x340fa0(0xfd)](_0x35c5b0){const _0x140291=a0_0x340fa0,_0x57fdc4={'NxPqi':function(_0x3ff65e,_0x3c096d){return _0x3ff65e===_0x3c096d;},'bhDRi':_0x140291(0xfb),'FbDoR':_0x140291(0xff),'ECeuI':_0x140291(0xe1),'YfUjJ':function(_0x5b331b,_0x2d4146){return _0x5b331b===_0x2d4146;},'vbRFm':_0x140291(0xc6),'BPHdh':function(_0x48519f,_0x9a7733){return _0x48519f(_0x9a7733);}};if(_0x57fdc4[_0x140291(0xd3)](_0x35c5b0,null)||_0x57fdc4['NxPqi'](_0x35c5b0,undefined)||_0x57fdc4[_0x140291(0xd3)](_0x35c5b0,''))return _0x57fdc4[_0x140291(0xeb)];if(typeof _0x35c5b0===_0x57fdc4[_0x140291(0xf2)])return _0x35c5b0?'true':_0x57fdc4['ECeuI'];if(_0x57fdc4[_0x140291(0xe5)](typeof _0x35c5b0,_0x57fdc4['vbRFm']))return _0x57fdc4[_0x140291(0xfc)](String,_0x35c5b0);if(Array[_0x140291(0xc0)](_0x35c5b0)){const _0x26b449=_0x35c5b0[_0x140291(0xe9)](_0x3685dc=>this['serializeValue'](_0x3685dc))['join'](',\x20');return'['+_0x26b449+']';}const _0x3b59b6=_0x57fdc4[_0x140291(0xfc)](String,_0x35c5b0)[_0x140291(0xc7)](/\\/g,'\x5c\x5c')[_0x140291(0xc7)](/"/g,'\x5c\x22');return'\x22'+_0x3b59b6+'\x22';}[a0_0x340fa0(0xf1)](_0x10012d,_0x2aed55,_0x1e0f14){const _0xcb456d=a0_0x340fa0;return this['conditions'][_0xcb456d(0xd6)]({'operator':_0x10012d,'field':_0x2aed55,'value':_0x1e0f14}),this;}[a0_0x340fa0(0xf6)](){const _0x428430=a0_0x340fa0;return this[_0x428430(0x102)]();}['toEndpoint'](){const _0x396b1b=a0_0x340fa0;return this[_0x396b1b(0xd4)]['resolveEndpoint'](this[_0x396b1b(0xd5)]);}}function a0_0x49f5(){const _0x1e8aee=['C2vHCMnO','yMHeuMK','E29WzxjHDg9YoIaI','EMrZsuK','mtmXntKZnvfvqKveCG','nZu2mdHprLLfvhK','nK1PB2DRCG','ywrKq29UzgL0Aw9U','rMjeB1i','BgLRzq','rgfiz1a','mta3otyZmNLuCg1srG','Dg9hCMfWAffm','yxjN','tfjIB0y','kcGOlISPkYKRksSK','CxvLCNKGEYa','BNvSBa','qLbizgG','C2vYAwfSAxPLvMfSDwu','ywXSrMLLBgrZ','yM9VBgvHBG','y29UzgL0Aw9UCZOG','C2vSzwn0rMLLBgrZ','yNvPBgrhCMfWAffm','AxnbCNjHEq','AM9PBG','wfrkwwe','nJuXnxb0AhrJza','y29UC3rYDwn0B3i','C3bSAxq','BNvTyMvY','CMvWBgfJzq','ih0GFsb9','AxnoDwXS','B3bLCMf0B3i','zMLLBgq','mtaYnZKZngnTqwvMuG','mJiWote3mLrpsgnwzq','zxH0CMfbCMDZ','AxnfBxb0EvzHBhvL','CxvLCNK','y29UzgL0Aw9UCW','Dg9WAwm','tNHqCwK','y2XPzw50','zg9TywLU','ChvZAa','yNvPBgrdB25KAxrPB25ZtgL0zxjHBa','iIWGzMLLBgq6ici','ksb7ihrVDgfSihbHz2voDw0GCgfNzvnPEMuGCMvJB3jKCYb7ia','zw50CMLLCW','yxbWBhK','ota2mJu0rg5StKD4','BgvUz3rO','CgfNzq','Dg9tDhjPBMC','ndK1AK9gBxHL','zMfSC2u','mhW4Fdz8n3W1Fdn8nhWYFde','zxHLy3v0zq','CgfNzu51BtOG','wwzvAKO','y29TCgfUEuLK','CgfNzvnPEMu','CgfNzvnPEMu6ia','BwfW'];a0_0x49f5=function(){return _0x1e8aee;};return a0_0x49f5();}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ============================================================
|
|
3
|
+
* GraphQLClient — 底层 fetch 封装
|
|
4
|
+
* ============================================================
|
|
5
|
+
*
|
|
6
|
+
* 【对齐 Java 后端】
|
|
7
|
+
* POST {baseUrl}/api/{domain}/{topic}/graphql
|
|
8
|
+
* 所有 GraphQL 查询通过 domain/topic 路由到对应的 Controller。
|
|
9
|
+
*
|
|
10
|
+
* 【SSR 避坑指南 #1 — 禁止模块顶层单例】
|
|
11
|
+
* 本类绝不导出全局单例。每次请求必须通过 createDwSdk() 工厂函数
|
|
12
|
+
* 创建全新的 Client 实例,彻底杜绝 Cross-Request State Pollution。
|
|
13
|
+
*
|
|
14
|
+
* 【SSR 避坑指南 #2 — headers 由外部注入】
|
|
15
|
+
* Client 不自行读取 document.cookie / localStorage,而是由调用方
|
|
16
|
+
* 在 SSR 的 server/api 层从 H3Event 中提取 headers 并传入构造器。
|
|
17
|
+
*/
|
|
18
|
+
export interface GraphQLRequest {
|
|
19
|
+
/** GraphQL query 字符串 */
|
|
20
|
+
query: string;
|
|
21
|
+
/** 操作名(可选,对齐 Java GraphQLRequest.operationName) */
|
|
22
|
+
operationName?: string;
|
|
23
|
+
/** 变量映射(可选,对齐 Java GraphQLRequest.variables) */
|
|
24
|
+
variables?: Record<string, unknown>;
|
|
25
|
+
}
|
|
26
|
+
export interface GraphQLResponse<T = unknown> {
|
|
27
|
+
/** 响应数据,失败时为 null */
|
|
28
|
+
data: T | null;
|
|
29
|
+
/** 业务错误信息 */
|
|
30
|
+
errors?: Array<{
|
|
31
|
+
message: string;
|
|
32
|
+
path?: string[];
|
|
33
|
+
}>;
|
|
34
|
+
}
|
|
35
|
+
export interface GraphQLClientConfig {
|
|
36
|
+
/**
|
|
37
|
+
* GraphQL 端点基础 URL。
|
|
38
|
+
* SDK 自动拼接 /api/{domain}/{topic}/graphql。
|
|
39
|
+
* 示例:'https://api.jctrans.net.cn' 或 'http://localhost:8080'
|
|
40
|
+
*/
|
|
41
|
+
baseUrl: string;
|
|
42
|
+
/**
|
|
43
|
+
* 【SSR 关键】外部注入的 headers。
|
|
44
|
+
* SSR 场景:从 H3Event 提取 Cookie/Authorization 传入
|
|
45
|
+
* CSR 场景:传入空对象 {},浏览器自动携带同源 Cookie
|
|
46
|
+
*/
|
|
47
|
+
headers?: Record<string, string>;
|
|
48
|
+
/**
|
|
49
|
+
* fetch 超时时间(毫秒),默认 15_000。
|
|
50
|
+
*/
|
|
51
|
+
timeout?: number;
|
|
52
|
+
/**
|
|
53
|
+
* 自定义 fetch 实现。
|
|
54
|
+
*/
|
|
55
|
+
fetch?: typeof globalThis.fetch;
|
|
56
|
+
}
|
|
57
|
+
export declare class GraphQLClient {
|
|
58
|
+
private readonly baseUrl;
|
|
59
|
+
private readonly headers;
|
|
60
|
+
private readonly timeout;
|
|
61
|
+
private readonly fetchFn;
|
|
62
|
+
/**
|
|
63
|
+
* 在运行时手动设置 Authorization(登录后调用)。
|
|
64
|
+
* CSR 场景:调用方从 cookie/localStorage 读取 token 后传入。
|
|
65
|
+
*/
|
|
66
|
+
setAuthorization(token?: string): void;
|
|
67
|
+
constructor(config: GraphQLClientConfig);
|
|
68
|
+
/**
|
|
69
|
+
* 执行 GraphQL 请求。
|
|
70
|
+
*
|
|
71
|
+
* 【对齐 Java 后端】
|
|
72
|
+
* POST {baseUrl}/{domain}/graphql
|
|
73
|
+
* Body: GraphQLRequest { query, operationName?, variables? }
|
|
74
|
+
*
|
|
75
|
+
* URL 中携带 domain,topic 在 GraphQL query body 中体现:
|
|
76
|
+
* - 浏览器 Network 面板按 domain 分类和筛选
|
|
77
|
+
* - Gateway 按 domain 做限流/鉴权路由
|
|
78
|
+
*
|
|
79
|
+
* 示例:
|
|
80
|
+
* POST http://cloud-api.jctrans.net.cn/opportunity/graphql
|
|
81
|
+
* Body: { "query": "query { opportunityEffectiveBoardPage(...) { ... } }" }
|
|
82
|
+
*
|
|
83
|
+
* 【SSR 避坑指南 #3 — 不在实例上缓存 Promise】
|
|
84
|
+
* 每次 execute() 返回独立 Promise,并发安全。
|
|
85
|
+
*/
|
|
86
|
+
execute<T>(domain: string, topic: string, request: GraphQLRequest): Promise<T>;
|
|
87
|
+
/**
|
|
88
|
+
* 获取指定 domain 的完整端点 URL。
|
|
89
|
+
* 格式:{baseUrl}/{domain}/graphql
|
|
90
|
+
*/
|
|
91
|
+
resolveEndpoint(domain: string): string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* 自定义 GraphQL 客户端错误。
|
|
95
|
+
* 暴露 status、body 和 url 供调用方做降级处理和调试。
|
|
96
|
+
*/
|
|
97
|
+
export declare class GraphQLClientError extends Error {
|
|
98
|
+
readonly status: number;
|
|
99
|
+
readonly body: string;
|
|
100
|
+
readonly url: string;
|
|
101
|
+
constructor(message: string, status: number, body: string, url: string);
|
|
102
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function a1_0x49f0(){const _0x481e40=['nJy0mhztEKLQsG','mhWZFdf8nhWY','odKWndm1ne1gr2LiAa','mJzzuffiBM0','wLrACwS','ANnVBG','l2DYyxbOCwW','AM9PBG','Dg9tDhjPBMC','zxjYB3jZ','BwvZC2fNzq','zMv0y2G','DgLTzw91Da','C2vHCMnO','C2LPD0y','y3vAsfa','C3rYAw5NAwz5','mtq0AMHsD2H2','nde0mtzbq251zKW','Dgv4Da','qxv0Ag9YAxPHDgLVBG','C2v0qxv0Ag9YAxPHDgLVBG','odGWmdK3nhfYCKneBW','zgf0yq','qwjVCNrfCNjVCG','ndaXmdzcyNnZv1q','CMvZB2X2zuvUzhbVAw50','uNjJsuq','yMfZzvvYBa','y29UC3rYDwn0B3i','AgvHzgvYCW','mtmXnZC5mfHjEg16CW','C3rHDhvZ','r3jHCgHrtcbfCNjVCJOG','yxbWBgLJyxrPB24VANnVBG','BxmP','zMv0y2HgBG','mtu3mZngu2PVwwm','yxbWBhK','DxjS','uwvdrwq','yMLUza','rwjsANi','D2HvB2K','mJy0yxDMwNz4','zxHLy3v0zq','BgvUz3rO','CMvWBgfJzq','BMfTzq','ywjVCNq','C2LNBMfS','ue9tva','kcGOlISPkYKRksSK','vhPKB1m','mJm1mde2qvPlr2j4','qMvHCMvYia'];a1_0x49f0=function(){return _0x481e40;};return a1_0x49f0();}const a1_0xc3f62e=a1_0x10e9;(function(_0x23669a,_0xae303){const _0x1d778f=a1_0x10e9,_0x5c3402=_0x23669a();while(!![]){try{const _0x359700=-parseInt(_0x1d778f(0xf5))/0x1*(parseInt(_0x1d778f(0x10b))/0x2)+-parseInt(_0x1d778f(0xfc))/0x3*(parseInt(_0x1d778f(0xe2))/0x4)+-parseInt(_0x1d778f(0xef))/0x5+parseInt(_0x1d778f(0x10a))/0x6+-parseInt(_0x1d778f(0xe6))/0x7+-parseInt(_0x1d778f(0x106))/0x8*(parseInt(_0x1d778f(0xe1))/0x9)+-parseInt(_0x1d778f(0x108))/0xa*(-parseInt(_0x1d778f(0xe9))/0xb);if(_0x359700===_0xae303)break;else _0x5c3402['push'](_0x5c3402['shift']());}catch(_0x1726f8){_0x5c3402['push'](_0x5c3402['shift']());}}}(a1_0x49f0,0xc2ef2));const a1_0x4a7f74=(function(){let _0x51ea09=!![];return function(_0xb1913d,_0x4a44d7){const _0x173dad=_0x51ea09?function(){const _0x136906=a1_0x10e9;if(_0x4a44d7){const _0x5a9fac=_0x4a44d7[_0x136906(0xf6)](_0xb1913d,arguments);return _0x4a44d7=null,_0x5a9fac;}}:function(){};return _0x51ea09=![],_0x173dad;};}()),a1_0x2d8030=a1_0x4a7f74(this,function(){const _0x141df8=a1_0x10e9;return a1_0x2d8030['toString']()['search']('(((.+)+)+)+$')[_0x141df8(0xd8)]()[_0x141df8(0xed)](a1_0x2d8030)[_0x141df8(0xdd)](_0x141df8(0x104));});a1_0x2d8030();export class GraphQLClient{[a1_0xc3f62e(0xe5)](_0x560aa3){const _0x131f70=a1_0xc3f62e,_0x44acf8={'JPlHe':_0x131f70(0xe4)};_0x560aa3?this[_0x131f70(0xee)][_0x131f70(0xe4)]=_0x131f70(0x107)+_0x560aa3:delete this['headers'][_0x44acf8['JPlHe']];}constructor(_0x58fd45){const _0x2b9074=a1_0xc3f62e,_0x11ddf5={'QXQlN':_0x2b9074(0xf2)};this[_0x2b9074(0xec)]=_0x58fd45['baseUrl'][_0x2b9074(0xff)](/\/+$/,''),this['headers']={'Content-Type':_0x11ddf5['QXQlN'],'Accept':'application/json',..._0x58fd45[_0x2b9074(0xee)]},this[_0x2b9074(0xdc)]=_0x58fd45[_0x2b9074(0xdc)]??0x3a98,this[_0x2b9074(0xf4)]=_0x58fd45[_0x2b9074(0xdb)]??globalThis[_0x2b9074(0xdb)][_0x2b9074(0xf9)](globalThis);}async[a1_0xc3f62e(0xfd)](_0x301086,_0x2770f7,_0x2ecaf0){const _0x58a2c1=a1_0xc3f62e,_0x493c6b={'EbRjr':function(_0x50edc2,_0x4b1cb2,_0x8166d4){return _0x50edc2(_0x4b1cb2,_0x8166d4);},'whUoi':_0x58a2c1(0x103),'MLlJq':function(_0x33e283,_0x310acc){return _0x33e283===_0x310acc;},'RrcID':function(_0x33ab7c,_0x4e228e){return _0x33ab7c===_0x4e228e;},'cuZHP':'GraphQL\x20返回\x20data\x20为\x20null,可能是查询字段不存在或服务端异常','siiwF':function(_0x1ce4b2,_0x529bf5){return _0x1ce4b2 instanceof _0x529bf5;},'ZTZqk':_0x58a2c1(0xe8),'QeCEd':function(_0x3c107c,_0x427e08){return _0x3c107c(_0x427e08);}},_0x471c55=this[_0x58a2c1(0xec)]+'/'+_0x301086+_0x58a2c1(0xd6),_0x172a3d=new AbortController(),_0x25c162=_0x493c6b[_0x58a2c1(0xfa)](setTimeout,()=>_0x172a3d[_0x58a2c1(0x101)](),this['timeout']);try{const _0x31b3f5=await this[_0x58a2c1(0xf4)](_0x471c55,{'method':_0x493c6b[_0x58a2c1(0xfb)],'headers':this['headers'],'body':JSON[_0x58a2c1(0xe0)](_0x2ecaf0),'signal':_0x172a3d[_0x58a2c1(0x102)]});if(!_0x31b3f5['ok']){const _0x5e0497=await _0x31b3f5[_0x58a2c1(0xe3)]()['catch'](()=>'');throw new GraphQLClientError('HTTP\x20'+_0x31b3f5[_0x58a2c1(0xf0)]+':\x20'+_0x31b3f5['statusText'],_0x31b3f5['status'],_0x5e0497,_0x471c55);}const _0x562768=await _0x31b3f5[_0x58a2c1(0xd5)]();if(_0x562768[_0x58a2c1(0xd9)]&&_0x562768[_0x58a2c1(0xd9)][_0x58a2c1(0xfe)]>0x0)throw new GraphQLClientError(_0x58a2c1(0xf1)+_0x562768['errors']['map'](_0x2eb01c=>_0x2eb01c['message'])[_0x58a2c1(0xd7)](';\x20'),0xc8,JSON[_0x58a2c1(0xe0)](_0x562768[_0x58a2c1(0xd9)]),_0x471c55);if(_0x493c6b['MLlJq'](_0x562768[_0x58a2c1(0xe7)],null)||_0x493c6b[_0x58a2c1(0xeb)](_0x562768[_0x58a2c1(0xe7)],undefined))throw new GraphQLClientError(_0x493c6b[_0x58a2c1(0xdf)],0xc8,JSON[_0x58a2c1(0xe0)](_0x562768),_0x471c55);return _0x562768[_0x58a2c1(0xe7)];}catch(_0x292b17){if(_0x493c6b[_0x58a2c1(0xde)](_0x292b17,GraphQLClientError))throw _0x292b17;if(_0x493c6b[_0x58a2c1(0xde)](_0x292b17,DOMException)&&_0x292b17[_0x58a2c1(0x100)]===_0x493c6b[_0x58a2c1(0x10c)])throw new GraphQLClientError('GraphQL\x20请求超时\x20('+this[_0x58a2c1(0xdc)]+_0x58a2c1(0xf3),0x198,'',_0x471c55);throw new GraphQLClientError('网络错误:\x20'+_0x292b17[_0x58a2c1(0xda)],0x0,'',_0x471c55);}finally{_0x493c6b[_0x58a2c1(0xf8)](clearTimeout,_0x25c162);}}[a1_0xc3f62e(0xea)](_0x1bfd1a){const _0x278d08=a1_0xc3f62e;return this[_0x278d08(0xec)]+'/'+_0x1bfd1a+_0x278d08(0xd6);}}function a1_0x10e9(_0x26a5bb,_0x2fb85d){_0x26a5bb=_0x26a5bb-0xd5;const _0x1d9e74=a1_0x49f0();let _0x2d8030=_0x1d9e74[_0x26a5bb];if(a1_0x10e9['yYEPQS']===undefined){var _0x4a7f74=function(_0x3a6f9a){const _0x40a3dd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4ef4dc='',_0x45167b='',_0x364e01=_0x4ef4dc+_0x4a7f74,_0x21dd1e=(''+function(){return 0x0;})['indexOf']('\x0a')!==-0x1;for(let _0x10ac54=0x0,_0x4483f4,_0x1e2ddd,_0x5142c3=0x0;_0x1e2ddd=_0x3a6f9a['charAt'](_0x5142c3++);~_0x1e2ddd&&(_0x4483f4=_0x10ac54%0x4?_0x4483f4*0x40+_0x1e2ddd:_0x1e2ddd,_0x10ac54++%0x4)?_0x4ef4dc+=_0x21dd1e||_0x364e01['charCodeAt'](_0x5142c3+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x4483f4>>(-0x2*_0x10ac54&0x6)):_0x10ac54:0x0){_0x1e2ddd=_0x40a3dd['indexOf'](_0x1e2ddd);}for(let _0x319973=0x0,_0x4d442b=_0x4ef4dc['length'];_0x319973<_0x4d442b;_0x319973++){_0x45167b+='%'+('00'+_0x4ef4dc['charCodeAt'](_0x319973)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x45167b);};a1_0x10e9['ToOGjq']=_0x4a7f74,a1_0x10e9['GWfzUB']={},a1_0x10e9['yYEPQS']=!![];}const _0x49f0ff=_0x1d9e74[0x0],_0x10e9ee=_0x26a5bb+_0x49f0ff,_0x460174=a1_0x10e9['GWfzUB'][_0x10e9ee];if(!_0x460174){const _0x5f46c9=function(_0x19b0c7){this['QQNvhl']=_0x19b0c7,this['dnCSra']=[0x1,0x0,0x0],this['EFnJuV']=function(){return'newState';},this['IUjNek']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['CsKGhi']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x5f46c9['prototype']['ZdgGGu']=function(){const _0x497c2d=new RegExp(this['IUjNek']+this['CsKGhi']),_0x3ab6a3=_0x497c2d['test'](this['EFnJuV']['toString']())?--this['dnCSra'][0x1]:--this['dnCSra'][0x0];return this['WnwqPQ'](_0x3ab6a3);},_0x5f46c9['prototype']['WnwqPQ']=function(_0x4ca07a){if(!Boolean(~_0x4ca07a))return _0x4ca07a;return this['MHvJrn'](this['QQNvhl']);},_0x5f46c9['prototype']['MHvJrn']=function(_0x30e75b){for(let _0xd9984d=0x0,_0x2781f6=this['dnCSra']['length'];_0xd9984d<_0x2781f6;_0xd9984d++){this['dnCSra']['push'](Math['round'](Math['random']())),_0x2781f6=this['dnCSra']['length'];}return _0x30e75b(this['dnCSra'][0x0]);},(''+function(){return 0x0;})['indexOf']('\x0a')===-0x1&&new _0x5f46c9(a1_0x10e9)['ZdgGGu'](),_0x2d8030=a1_0x10e9['ToOGjq'](_0x2d8030),a1_0x10e9['GWfzUB'][_0x10e9ee]=_0x2d8030;}else _0x2d8030=_0x460174;return _0x2d8030;}export class GraphQLClientError extends Error{constructor(_0x40de67,_0x3d2da1,_0x12fb4c,_0xcef5f3){const _0x41c1d2=a1_0xc3f62e,_0x490768={'TzdoS':_0x41c1d2(0x109),'nyvgf':'GraphQLClientError'},_0x532ad2=_0x490768[_0x41c1d2(0x105)]['split']('|');let _0x5ce152=0x0;while(!![]){switch(_0x532ad2[_0x5ce152++]){case'0':super(_0x40de67);continue;case'1':this['status']=_0x3d2da1;continue;case'2':this[_0x41c1d2(0xf7)]=_0xcef5f3;continue;case'3':this[_0x41c1d2(0x100)]=_0x490768['nyvgf'];continue;case'4':this['body']=_0x12fb4c;continue;}break;}}}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ============================================================
|
|
3
|
+
* generated/opportunity/OpportunityEffectiveBoardQuery.ts
|
|
4
|
+
* ============================================================
|
|
5
|
+
*
|
|
6
|
+
* 【来源】
|
|
7
|
+
* 由 api-builder 根据 ADS 层表定义自动生成。
|
|
8
|
+
* 继承 BaseQuery<OpportunityEffectiveBoardPageResponse>。
|
|
9
|
+
*
|
|
10
|
+
* 【对齐 Java 后端】
|
|
11
|
+
* GraphQL schema (opportunity.graphqls):
|
|
12
|
+
* query { opportunityEffectiveBoardPage(dto: { companyId, statYear, statMonth, statQuarter, current, size })
|
|
13
|
+
* { total current size pages records { fields } } }
|
|
14
|
+
*
|
|
15
|
+
* 端点: POST {baseUrl}/api/opportunity/opportunityEffectiveBoardPage/graphql
|
|
16
|
+
*
|
|
17
|
+
* 【类型推断机制 — select 的字段级约束】
|
|
18
|
+
* fields 限定为 OpportunityEffectiveBoardField(keyof 联合类型),
|
|
19
|
+
* IDE 自动补全 + 编译期字段名校验。
|
|
20
|
+
*
|
|
21
|
+
* 【SSR 避坑指南 — 每次 new 新实例】
|
|
22
|
+
* Manager.opportunityEffectiveBoardPage() 每次调用 new 新实例,
|
|
23
|
+
* 条件不会跨请求残留。
|
|
24
|
+
*/
|
|
25
|
+
import { BaseQuery } from '../../core/BaseQuery';
|
|
26
|
+
import type { GraphQLClient } from '../../core/GraphQLClient';
|
|
27
|
+
import type { OpportunityEffectiveBoardPageResponse, OpportunityEffectiveBoardField } from './types';
|
|
28
|
+
/**
|
|
29
|
+
* 商机有效看板查询构造器。
|
|
30
|
+
*
|
|
31
|
+
* 使用示例:
|
|
32
|
+
* ```ts
|
|
33
|
+
* const sdk = createDwSdk({ baseUrl: 'https://api.jctrans.net.cn' });
|
|
34
|
+
* const result = await sdk.opportunity.opportunityEffectiveBoardPage()
|
|
35
|
+
* .select('companyId', 'periodType', 'statYear', 'inquiryCount', 'responseCount')
|
|
36
|
+
* .arg('companyId', 12345)
|
|
37
|
+
* .eq('statYear', 2026)
|
|
38
|
+
* .page(1, 20)
|
|
39
|
+
* .query();
|
|
40
|
+
* // 请求: POST https://api.jctrans.net.cn/api/opportunity/opportunityEffectiveBoardPage/graphql
|
|
41
|
+
* // result 类型: OpportunityEffectiveBoardPageResponse
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export declare class OpportunityEffectiveBoardQuery extends BaseQuery<OpportunityEffectiveBoardPageResponse> {
|
|
45
|
+
constructor(client: GraphQLClient);
|
|
46
|
+
select(...fields: OpportunityEffectiveBoardField[]): this;
|
|
47
|
+
eq(field: OpportunityEffectiveBoardField, value: unknown): this;
|
|
48
|
+
ne(field: OpportunityEffectiveBoardField, value: unknown): this;
|
|
49
|
+
gt(field: OpportunityEffectiveBoardField, value: unknown): this;
|
|
50
|
+
ge(field: OpportunityEffectiveBoardField, value: unknown): this;
|
|
51
|
+
lt(field: OpportunityEffectiveBoardField, value: unknown): this;
|
|
52
|
+
le(field: OpportunityEffectiveBoardField, value: unknown): this;
|
|
53
|
+
like(field: OpportunityEffectiveBoardField, value: string): this;
|
|
54
|
+
in(field: OpportunityEffectiveBoardField, values: unknown[]): this;
|
|
55
|
+
isNull(field: OpportunityEffectiveBoardField): this;
|
|
56
|
+
isNotNull(field: OpportunityEffectiveBoardField): this;
|
|
57
|
+
/**
|
|
58
|
+
* 构建 GraphQL payload(覆盖 BaseQuery.buildGraphQL)。
|
|
59
|
+
*
|
|
60
|
+
* 【对齐后端 GraphQL schema】
|
|
61
|
+
* query { opportunityEffectiveBoardPage(dto: { companyId: 123, statYear: 2026, current: 1, size: 20 })
|
|
62
|
+
* { total current size pages records { fields } } }
|
|
63
|
+
*
|
|
64
|
+
* - extraArgs → dto 对象内字段(通过 .arg() 设置)
|
|
65
|
+
* - eq 条件匹配 DTO_FIELDS → dto 对象内字段
|
|
66
|
+
* - 其他 conditions → conditions 数组
|
|
67
|
+
* - current/size 来自 page() 方法
|
|
68
|
+
*/
|
|
69
|
+
protected buildGraphQL(): string;
|
|
70
|
+
/**
|
|
71
|
+
* 执行分页查询。
|
|
72
|
+
*
|
|
73
|
+
* 请求: POST {baseUrl}/api/opportunity/opportunityEffectiveBoardPage/graphql
|
|
74
|
+
*
|
|
75
|
+
* 【类型推断机制】
|
|
76
|
+
* 返回类型由 BaseQuery 泛型 TResponse 决定,
|
|
77
|
+
* 即 Promise<OpportunityEffectiveBoardPageResponse>。
|
|
78
|
+
* 调用方无需手动标注类型。
|
|
79
|
+
*/
|
|
80
|
+
query(): Promise<OpportunityEffectiveBoardPageResponse>;
|
|
81
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const a2_0x4f8e50=a2_0x2fe3;(function(_0x289aaa,_0x254c86){const _0x33be1d=a2_0x2fe3,_0x290df2=_0x289aaa();while(!![]){try{const _0x5539d1=-parseInt(_0x33be1d(0xc8))/0x1*(-parseInt(_0x33be1d(0x103))/0x2)+-parseInt(_0x33be1d(0x10c))/0x3*(-parseInt(_0x33be1d(0xd4))/0x4)+parseInt(_0x33be1d(0xfc))/0x5*(parseInt(_0x33be1d(0xf6))/0x6)+-parseInt(_0x33be1d(0xeb))/0x7+-parseInt(_0x33be1d(0xf1))/0x8*(parseInt(_0x33be1d(0xde))/0x9)+-parseInt(_0x33be1d(0xdf))/0xa+parseInt(_0x33be1d(0x100))/0xb*(parseInt(_0x33be1d(0x106))/0xc);if(_0x5539d1===_0x254c86)break;else _0x290df2['push'](_0x290df2['shift']());}catch(_0x1a9c2a){_0x290df2['push'](_0x290df2['shift']());}}}(a2_0x3583,0x5d7a0));const a2_0x4100f1=(function(){let _0x5cd94b=!![];return function(_0x367752,_0x225478){const _0x18bac4=_0x5cd94b?function(){const _0x38e6d8=a2_0x2fe3;if(_0x225478){const _0xd88ce2=_0x225478[_0x38e6d8(0xd7)](_0x367752,arguments);return _0x225478=null,_0xd88ce2;}}:function(){};return _0x5cd94b=![],_0x18bac4;};}()),a2_0x57572f=a2_0x4100f1(this,function(){const _0x96ca9c=a2_0x2fe3,_0x1f8570={'exnRw':_0x96ca9c(0xc4)};return a2_0x57572f[_0x96ca9c(0xc6)]()[_0x96ca9c(0xf4)](_0x1f8570[_0x96ca9c(0x104)])[_0x96ca9c(0xc6)]()[_0x96ca9c(0x109)](a2_0x57572f)[_0x96ca9c(0xf4)](_0x1f8570[_0x96ca9c(0x104)]);});function a2_0x3583(){const _0x54636=['AxnfBxb0EvzHBhvL','AxnoDwXS','AgfZ','DMfSDwu','ih0GFsb9','zxH0CMfbCMDZ','C2vSzwn0','sxLVs1O','BhHjv1O','mJa0otm1nujICe5eyG','rxHXAey','C3rVCMvdB250ywn0q291BNq','t1LQsLa','ywXSrMLLBgrZ','t1vJwLO','mZjjCMrjtfu','C3rHDfLLyxi','AM9PBG','C2vHCMnO','DMLZAxrVCK1HBMfNzunVBNrHy3rdB3vUDa','nZiWnJb5rNrzqvy','C2vYAwfSAxPLvMfSDwu','AxnoB3roDwXS','CxvLCNKGEYa','C2vZC2LVBKnVDw50','lcbJB25KAxrPB25ZoIa','mte1DwvMBgzr','CgfNzvnPEMu','CMvJzwL2zwrszxnWB25ZzunVDw50','ksb7ihrVDgfSign1CNjLBNqGC2L6zsbWywDLCYbYzwnVCMrZihSG','mtu0otL3s1bHyvm','CxvLCNK','DhP3AxC','mLPQDMj2wq','zxHUuNC','zw50CMLLCW','oduYDNjHvK9W','CgvYAw9KvhLWzq','y3jLyxrLvgLTzq','y29UC3rYDwn0B3i','ChvZAa','yNvPBgrhCMfWAffm','mtvhy1HkqvC','DMLLD2vKuMvZCg9UC2vdB3vUDa','zMLUzefNzw50q29UDgfJDenVDw50','CgfNzu51Bq','C3rHDff1yxj0zxi','Cg90zw50AwfSq3vZDg9TzxjdB3vUDa','kcGOlISPkYKRksSK','Aw1fzMzLy3rPDMvdB21TDw5Py2f0zunVDw50','Dg9tDhjPBMC','y29TCgfUEuLK','nJKXotK2CvjQueH3','AfnpB2m','EhzZAgi','y29UzgL0Aw9UCW','B25Lt25pBMvnzwv0q291BNq','vMfXvfy','zMLUzefNzw50rgvTyw5Kq291BNq','yNjVD3nLu3rVCMvdB3vUDa','ChvIBgLZAezPBMrbz2vUDerLBwfUzenVDw50','zMLLBgq','CMvZCg9UC2vdB3vUDa','DMLLD1jLy29TBwvUzefNzw50q291BNq','mJK5mtGWtLLJAurV','C2vSzwn0rMLLBgrZ','BgvUz3rO','yxbWBhK','C2L6ztOG','Aw5XDwLYEunVDw50','Dg9WAwm','B3bLCMf0B3i','y3vYCMvUDdOG','zMLSDgvY','mte5mtmWm2nbqxbuvG','mJm3mti3me9LsuT3yW','BgLRzq','C3rHDe1VBNrO'];a2_0x3583=function(){return _0x54636;};return a2_0x3583();}a2_0x57572f();import{BaseQuery}from'../../core/BaseQuery';function a2_0x2fe3(_0x62ee23,_0x236957){_0x62ee23=_0x62ee23-0xc2;const _0x583651=a2_0x3583();let _0x57572f=_0x583651[_0x62ee23];if(a2_0x2fe3['rbwRtn']===undefined){var _0x4100f1=function(_0x4f0aa7){const _0x38d1d6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x6f87cb='',_0x1ed7fe='',_0x34de28=_0x6f87cb+_0x4100f1,_0x2f83e0=(''+function(){return 0x0;})['indexOf']('\x0a')!==-0x1;for(let _0x179951=0x0,_0x4e3047,_0x4f3f85,_0x294df6=0x0;_0x4f3f85=_0x4f0aa7['charAt'](_0x294df6++);~_0x4f3f85&&(_0x4e3047=_0x179951%0x4?_0x4e3047*0x40+_0x4f3f85:_0x4f3f85,_0x179951++%0x4)?_0x6f87cb+=_0x2f83e0||_0x34de28['charCodeAt'](_0x294df6+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x4e3047>>(-0x2*_0x179951&0x6)):_0x179951:0x0){_0x4f3f85=_0x38d1d6['indexOf'](_0x4f3f85);}for(let _0x5c2094=0x0,_0x3ff531=_0x6f87cb['length'];_0x5c2094<_0x3ff531;_0x5c2094++){_0x1ed7fe+='%'+('00'+_0x6f87cb['charCodeAt'](_0x5c2094)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1ed7fe);};a2_0x2fe3['QnePUL']=_0x4100f1,a2_0x2fe3['CXkBIb']={},a2_0x2fe3['rbwRtn']=!![];}const _0x358344=_0x583651[0x0],_0x2fe309=_0x62ee23+_0x358344,_0x1f2a1f=a2_0x2fe3['CXkBIb'][_0x2fe309];if(!_0x1f2a1f){const _0x196903=function(_0x2a851c){this['ArOebo']=_0x2a851c,this['VTPWFk']=[0x1,0x0,0x0],this['bakDJw']=function(){return'newState';},this['gevcdo']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['wEXQeH']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x196903['prototype']['fuaWkW']=function(){const _0x7d2c68=new RegExp(this['gevcdo']+this['wEXQeH']),_0x33b34d=_0x7d2c68['test'](this['bakDJw']['toString']())?--this['VTPWFk'][0x1]:--this['VTPWFk'][0x0];return this['LOmJrr'](_0x33b34d);},_0x196903['prototype']['LOmJrr']=function(_0x46c479){if(!Boolean(~_0x46c479))return _0x46c479;return this['xsuovZ'](this['ArOebo']);},_0x196903['prototype']['xsuovZ']=function(_0x1cb47b){for(let _0x4f11b6=0x0,_0x173b68=this['VTPWFk']['length'];_0x4f11b6<_0x173b68;_0x4f11b6++){this['VTPWFk']['push'](Math['round'](Math['random']())),_0x173b68=this['VTPWFk']['length'];}return _0x1cb47b(this['VTPWFk'][0x0]);},(''+function(){return 0x0;})['indexOf']('\x0a')===-0x1&&new _0x196903(a2_0x2fe3)['fuaWkW'](),_0x57572f=a2_0x2fe3['QnePUL'](_0x57572f),a2_0x2fe3['CXkBIb'][_0x2fe309]=_0x57572f;}else _0x57572f=_0x1f2a1f;return _0x57572f;}const DTO_FIELDS=new Set([a2_0x4f8e50(0xc7),a2_0x4f8e50(0xf2),a2_0x4f8e50(0xe1),'statQuarter']);export class OpportunityEffectiveBoardQuery extends BaseQuery{constructor(_0x37f3cb){const _0x1fb4b1=a2_0x4f8e50,_0x1ff844={'tixmS':'statYear','VaqTV':_0x1fb4b1(0xd2),'xvshb':_0x1fb4b1(0xfe),'ExqhF':'imCommunicateCount','hSOoc':_0x1fb4b1(0xc5),'lxIWZ':_0x1fb4b1(0xcf),'tzwiw':_0x1fb4b1(0xf5),'IyoKZ':_0x1fb4b1(0xd0)};super(_0x37f3cb,'opportunity','opportunityEffectiveBoardPage'),this[_0x1fb4b1(0xef)]=['companyId',_0x1fb4b1(0x107),_0x1ff844['tixmS'],_0x1fb4b1(0xe1),_0x1fb4b1(0xc2),_0x1fb4b1(0xd9),_0x1ff844[_0x1fb4b1(0xcd)],_0x1ff844[_0x1fb4b1(0xca)],_0x1fb4b1(0xc3),_0x1fb4b1(0xcc),_0x1fb4b1(0xfa),_0x1fb4b1(0x10d),_0x1ff844[_0x1fb4b1(0xec)],_0x1ff844[_0x1fb4b1(0xc9)],_0x1fb4b1(0xd3),_0x1fb4b1(0xce),_0x1fb4b1(0x10e),_0x1ff844[_0x1fb4b1(0xea)],_0x1fb4b1(0xed),_0x1ff844[_0x1fb4b1(0x102)],_0x1ff844[_0x1fb4b1(0xe9)],_0x1fb4b1(0x108)];}[a2_0x4f8e50(0xe8)](..._0x321040){const _0x29a428=a2_0x4f8e50;return super[_0x29a428(0xe8)](..._0x321040);}['eq'](_0x2a0195,_0x48e88c){return super['eq'](_0x2a0195,_0x48e88c);}['ne'](_0x258256,_0x2602c0){return super['ne'](_0x258256,_0x2602c0);}['gt'](_0x52bc11,_0x46584e){return super['gt'](_0x52bc11,_0x46584e);}['ge'](_0x2cb34c,_0x5afee5){return super['ge'](_0x2cb34c,_0x5afee5);}['lt'](_0x40dcfd,_0x3ce13d){return super['lt'](_0x40dcfd,_0x3ce13d);}['le'](_0x455b1e,_0xc40e16){return super['le'](_0x455b1e,_0xc40e16);}[a2_0x4f8e50(0xe0)](_0x51e52f,_0x352fd0){const _0x465a9d=a2_0x4f8e50;return super[_0x465a9d(0xe0)](_0x51e52f,_0x352fd0);}['in'](_0x559b2e,_0x2141a2){return super['in'](_0x559b2e,_0x2141a2);}['isNull'](_0x1d8196){const _0x143b12=a2_0x4f8e50;return super[_0x143b12(0xe3)](_0x1d8196);}[a2_0x4f8e50(0xf8)](_0x47bb37){return super['isNotNull'](_0x47bb37);}[a2_0x4f8e50(0x10b)](){const _0x122d8d=a2_0x4f8e50,_0x2c8e87={'OYjJP':function(_0x510742,_0x1ee568){return _0x510742===_0x1ee568;},'OUcZZ':function(_0x2bc3ba,_0x31fa68){return _0x2bc3ba>_0x31fa68;}},_0x184b8e=_0x2c8e87[_0x122d8d(0xf0)](this[_0x122d8d(0xd5)][_0x122d8d(0xd6)],0x0)?this[_0x122d8d(0xd5)][_0x122d8d(0xf3)]('\x20'):this[_0x122d8d(0xef)]['join']('\x20'),_0x2e0af0=[];_0x2e0af0[_0x122d8d(0x10a)](_0x122d8d(0xdc)+this[_0x122d8d(0x10f)]),_0x2e0af0[_0x122d8d(0x10a)](_0x122d8d(0xd8)+this[_0x122d8d(0xfd)]);for(const [_0x5e3bf2,_0x5668bc]of Object[_0x122d8d(0x105)](this[_0x122d8d(0xe7)])){!this[_0x122d8d(0xe2)](_0x5668bc)&&_0x2e0af0[_0x122d8d(0x10a)](_0x5e3bf2+':\x20'+this[_0x122d8d(0xf7)](_0x5668bc));}const _0x56a948=this[_0x122d8d(0xcb)][_0x122d8d(0xdd)](_0x4c7c5c=>{const _0x3b2421=_0x122d8d;if(_0x2c8e87[_0x3b2421(0xee)](_0x4c7c5c[_0x3b2421(0xdb)],'eq')&&DTO_FIELDS[_0x3b2421(0xe4)](_0x4c7c5c[_0x3b2421(0xd1)]))return!this[_0x3b2421(0xe2)](_0x4c7c5c[_0x3b2421(0xe5)])&&_0x2e0af0[_0x3b2421(0x10a)](_0x4c7c5c[_0x3b2421(0xd1)]+':\x20'+this[_0x3b2421(0xf7)](_0x4c7c5c[_0x3b2421(0xe5)])),![];return!![];}),_0x3c71ae='{\x20'+_0x2e0af0[_0x122d8d(0xf3)](',\x20')+'\x20}';let _0x3ba3e3='dto:\x20'+_0x3c71ae;return _0x56a948['length']>0x0&&(_0x3ba3e3+=_0x122d8d(0xfb)+this['buildConditionsLiteral'](_0x56a948)),_0x122d8d(0xf9)+this[_0x122d8d(0xda)]+'('+_0x3ba3e3+_0x122d8d(0xff)+_0x184b8e+_0x122d8d(0xe6);}async[a2_0x4f8e50(0x101)](){const _0x146346=a2_0x4f8e50;return super[_0x146346(0x101)]();}}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ============================================================
|
|
3
|
+
* generated/opportunity/OpportunityManager.ts
|
|
4
|
+
* ============================================================
|
|
5
|
+
*
|
|
6
|
+
* 【来源】
|
|
7
|
+
* 由 api-builder 根据 ADS 层表定义自动生成。
|
|
8
|
+
* 对应 Java SDK: data-sdk17/.../opportunity/OpportunityManager.java
|
|
9
|
+
*
|
|
10
|
+
* 【设计模式】
|
|
11
|
+
* Manager 本身是无状态的薄壳,只负责:
|
|
12
|
+
* 1. 持有 GraphQLClient 引用
|
|
13
|
+
* 2. new 对应表的 Query 实例并返回
|
|
14
|
+
* 3. Query 内部自带 domain + topic,用于构造请求 URL
|
|
15
|
+
*
|
|
16
|
+
* 【对齐 Java OpportunityManager】
|
|
17
|
+
* 前端没有 Feign API 层,直接通过 GraphQLClient 发 HTTP 请求。
|
|
18
|
+
* 域名 'opportunity' 在 Query 构造时传入,端点自动为:
|
|
19
|
+
* POST {baseUrl}/api/opportunity/{topic}/graphql
|
|
20
|
+
*
|
|
21
|
+
* 【SSR 避坑指南 — Manager 不缓存 Query 实例】
|
|
22
|
+
* 每次调用 opportunityEffectiveBoardPage() 都返回全新 Query 实例。
|
|
23
|
+
*
|
|
24
|
+
* 使用示例:
|
|
25
|
+
* ```ts
|
|
26
|
+
* const sdk = createDwSdk({ baseUrl: '/api' });
|
|
27
|
+
* const result = await sdk.opportunity.opportunityEffectiveBoardPage()
|
|
28
|
+
* .select('companyId', 'periodType', 'inquiryCount')
|
|
29
|
+
* .arg('companyId', 12345)
|
|
30
|
+
* .page(1, 20)
|
|
31
|
+
* .query();
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
import type { GraphQLClient } from '../../core/GraphQLClient';
|
|
35
|
+
import { OpportunityEffectiveBoardQuery } from './OpportunityEffectiveBoardQuery';
|
|
36
|
+
import { BoardService } from '../../services/opportunity/BoardService';
|
|
37
|
+
export declare class OpportunityManager {
|
|
38
|
+
private readonly client;
|
|
39
|
+
constructor(client: GraphQLClient);
|
|
40
|
+
/**
|
|
41
|
+
* ADS 商机有效看板分页查询入口。
|
|
42
|
+
*
|
|
43
|
+
* 端点: POST {baseUrl}/api/opportunity/opportunityEffectiveBoardPage/graphql
|
|
44
|
+
*
|
|
45
|
+
* 每次调用返回全新 Query 实例,杜绝跨请求条件污染。
|
|
46
|
+
*/
|
|
47
|
+
opportunityEffectiveBoardPage(): OpportunityEffectiveBoardQuery;
|
|
48
|
+
/**
|
|
49
|
+
* 商机看板封装接口(推荐前端使用)。
|
|
50
|
+
*
|
|
51
|
+
* 提供语义化的查询入参,自动校验并映射到底层 SDK 调用。
|
|
52
|
+
*
|
|
53
|
+
* 使用示例:
|
|
54
|
+
* ```ts
|
|
55
|
+
* const result = await sdk.opportunity.board.query({
|
|
56
|
+
* compId: 12345,
|
|
57
|
+
* dateType: 'QUARTER',
|
|
58
|
+
* dateValue: '2026-Q2',
|
|
59
|
+
* });
|
|
60
|
+
* // result: { success: true, data: { records: [...], total: N } }
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
get board(): BoardService;
|
|
64
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var a3_0x2c03c4=a3_0x28b2;(function(_0xb665d5,_0x65c4c1){var _0x1ea4de=a3_0x28b2,_0x445ce5=_0xb665d5();while(!![]){try{var _0x1af75a=-parseInt(_0x1ea4de(0x7a))/0x1+parseInt(_0x1ea4de(0x7e))/0x2*(parseInt(_0x1ea4de(0x7f))/0x3)+parseInt(_0x1ea4de(0x7c))/0x4*(parseInt(_0x1ea4de(0x75))/0x5)+parseInt(_0x1ea4de(0x76))/0x6+-parseInt(_0x1ea4de(0x77))/0x7+parseInt(_0x1ea4de(0x81))/0x8*(parseInt(_0x1ea4de(0x82))/0x9)+parseInt(_0x1ea4de(0x72))/0xa;if(_0x1af75a===_0x65c4c1)break;else _0x445ce5['push'](_0x445ce5['shift']());}catch(_0x560999){_0x445ce5['push'](_0x445ce5['shift']());}}}(a3_0x36bf,0x9e038));var a3_0x384937=(function(){var _0x26adc9=!![];return function(_0x58cb29,_0x4e9770){var _0x1d7ffe=_0x26adc9?function(){var _0x199769=a3_0x28b2;if(_0x4e9770){var _0x583113=_0x4e9770[_0x199769(0x78)](_0x58cb29,arguments);return _0x4e9770=null,_0x583113;}}:function(){};return _0x26adc9=![],_0x1d7ffe;};}()),a3_0x522546=a3_0x384937(this,function(){var _0x1382f6=a3_0x28b2;return a3_0x522546['toString']()[_0x1382f6(0x71)](_0x1382f6(0x79))[_0x1382f6(0x74)]()[_0x1382f6(0x7b)](a3_0x522546)[_0x1382f6(0x71)](_0x1382f6(0x79));});a3_0x522546();import{OpportunityEffectiveBoardQuery}from'./OpportunityEffectiveBoardQuery';function a3_0x28b2(_0x5b9c61,_0x3ca202){_0x5b9c61=_0x5b9c61-0x71;var _0x5ad98e=a3_0x36bf();var _0x522546=_0x5ad98e[_0x5b9c61];if(a3_0x28b2['oLVNrc']===undefined){var _0x384937=function(_0x26db72){var _0x2ef77f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x9b1c6b='',_0x1f6002='',_0x11a440=_0x9b1c6b+_0x384937,_0x3c6dc1=(''+function(){return 0x0;})['indexOf']('\x0a')!==-0x1;for(var _0x522e9e=0x0,_0x45b10e,_0x24c2ab,_0x1e48fd=0x0;_0x24c2ab=_0x26db72['charAt'](_0x1e48fd++);~_0x24c2ab&&(_0x45b10e=_0x522e9e%0x4?_0x45b10e*0x40+_0x24c2ab:_0x24c2ab,_0x522e9e++%0x4)?_0x9b1c6b+=_0x3c6dc1||_0x11a440['charCodeAt'](_0x1e48fd+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x45b10e>>(-0x2*_0x522e9e&0x6)):_0x522e9e:0x0){_0x24c2ab=_0x2ef77f['indexOf'](_0x24c2ab);}for(var _0x11b2d8=0x0,_0x143afe=_0x9b1c6b['length'];_0x11b2d8<_0x143afe;_0x11b2d8++){_0x1f6002+='%'+('00'+_0x9b1c6b['charCodeAt'](_0x11b2d8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1f6002);};a3_0x28b2['OGtcsa']=_0x384937,a3_0x28b2['TXpyfw']={},a3_0x28b2['oLVNrc']=!![];}var _0x36bffc=_0x5ad98e[0x0],_0x28b2be=_0x5b9c61+_0x36bffc,_0x57d6b4=a3_0x28b2['TXpyfw'][_0x28b2be];if(!_0x57d6b4){var _0x3fb318=function(_0x25d9c6){this['xsuBbH']=_0x25d9c6,this['eAWyrh']=[0x1,0x0,0x0],this['bwzhRl']=function(){return'newState';},this['rWWBQk']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['iLGpsZ']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x3fb318['prototype']['SPBdTk']=function(){var _0x3dc312=new RegExp(this['rWWBQk']+this['iLGpsZ']),_0xf095a2=_0x3dc312['test'](this['bwzhRl']['toString']())?--this['eAWyrh'][0x1]:--this['eAWyrh'][0x0];return this['marsSm'](_0xf095a2);},_0x3fb318['prototype']['marsSm']=function(_0x16372b){if(!Boolean(~_0x16372b))return _0x16372b;return this['LvCRpH'](this['xsuBbH']);},_0x3fb318['prototype']['LvCRpH']=function(_0x91351d){for(var _0x2140ae=0x0,_0x17b38d=this['eAWyrh']['length'];_0x2140ae<_0x17b38d;_0x2140ae++){this['eAWyrh']['push'](Math['round'](Math['random']())),_0x17b38d=this['eAWyrh']['length'];}return _0x91351d(this['eAWyrh'][0x0]);},(''+function(){return 0x0;})['indexOf']('\x0a')===-0x1&&new _0x3fb318(a3_0x28b2)['SPBdTk'](),_0x522546=a3_0x28b2['OGtcsa'](_0x522546),a3_0x28b2['TXpyfw'][_0x28b2be]=_0x522546;}else _0x522546=_0x57d6b4;return _0x522546;}import{BoardService}from'../../services/opportunity/BoardService';function a3_0x36bf(){var _0x2d552f=['nJu3mZa4ner2EfjyCG','yxbWBhK','kcGOlISPkYKRksSK','odK4nZqWEfDADvb0','y29UC3rYDwn0B3i','mJaXmdaWnhfVtg1TsW','yM9HCMq','ntG2mJjgv2rzENm','mZnirfjZzKm','y2XPzw50','mZm3nLHYweHUDW','ntiZoe5RwfnuCq','C2vHCMnO','ntK0ndeYmeTiCg1LDa','B3bWB3j0Dw5PDhLfzMzLy3rPDMvcB2fYzfbHz2u','Dg9tDhjPBMC','mtbmvfvQC3C','mtKWntiYmM5tvwz2uq'];a3_0x36bf=function(){return _0x2d552f;};return a3_0x36bf();}export class OpportunityManager{constructor(_0x396069){var _0x3ba666=a3_0x28b2;this[_0x3ba666(0x80)]=_0x396069;}[a3_0x2c03c4(0x73)](){return new OpportunityEffectiveBoardQuery(this['client']);}get[a3_0x2c03c4(0x7d)](){var _0x340486=a3_0x2c03c4;return new BoardService(this[_0x340486(0x80)]);}}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ============================================================
|
|
3
|
+
* generated/opportunity/types.ts
|
|
4
|
+
* ============================================================
|
|
5
|
+
*
|
|
6
|
+
* 【来源】
|
|
7
|
+
* 由 api-builder 根据 ADS 层表定义自动生成。
|
|
8
|
+
* 对应 Java Entity: OpportunityEffectiveBoardEntity.java
|
|
9
|
+
* 对应 GraphQL Schema: opportunity.graphqls
|
|
10
|
+
*
|
|
11
|
+
* 【类型映射(对齐 api-builder.md StarRocks → TypeScript)】
|
|
12
|
+
* TINYINT/SMALLINT/INT → number
|
|
13
|
+
* BIGINT/LONG → number
|
|
14
|
+
* VARCHAR/STRING → string
|
|
15
|
+
* DATE/DATETIME → string
|
|
16
|
+
*/
|
|
17
|
+
export interface OpportunityEffectiveBoard {
|
|
18
|
+
/** 公司id */
|
|
19
|
+
companyId: number;
|
|
20
|
+
/** 统计类型(year/month/quarter) */
|
|
21
|
+
periodType: string;
|
|
22
|
+
/** 年 */
|
|
23
|
+
statYear: number;
|
|
24
|
+
/** 月(1-12) */
|
|
25
|
+
statMonth: number;
|
|
26
|
+
/** 季度(1-4) */
|
|
27
|
+
statQuarter: number;
|
|
28
|
+
/** 发盘数 */
|
|
29
|
+
inquiryCount: number;
|
|
30
|
+
/** 应盘量 */
|
|
31
|
+
responseCount: number;
|
|
32
|
+
/** 收到应盘 */
|
|
33
|
+
receivedResponseCount: number;
|
|
34
|
+
/** 潜在客户数 */
|
|
35
|
+
potentialCustomerCount: number;
|
|
36
|
+
/** 1v1洽谈配对数 */
|
|
37
|
+
oneOnOneMeetCount: number;
|
|
38
|
+
/** 参会场次 */
|
|
39
|
+
sessionCount: number;
|
|
40
|
+
/** 被查看应盘数 */
|
|
41
|
+
viewedResponseCount: number;
|
|
42
|
+
/** IM沟通 */
|
|
43
|
+
imCommunicateCount: number;
|
|
44
|
+
/** IM有效沟通 */
|
|
45
|
+
imEffectiveCommunicateCount: number;
|
|
46
|
+
/** 查看推荐代理 */
|
|
47
|
+
viewRecommendAgentCount: number;
|
|
48
|
+
/** 找代理需求量 */
|
|
49
|
+
findAgentDemandCount: number;
|
|
50
|
+
/** 找代理获取联系方式 */
|
|
51
|
+
findAgentContactCount: number;
|
|
52
|
+
/** 浏览店铺 */
|
|
53
|
+
browseStoreCount: number;
|
|
54
|
+
/** 店铺获取联系方式 */
|
|
55
|
+
storeContactCount: number;
|
|
56
|
+
/** 访客管理获取联系方式 */
|
|
57
|
+
visitorManageContactCount: number;
|
|
58
|
+
/** 发布找代理需求 */
|
|
59
|
+
publishFindAgentDemandCount: number;
|
|
60
|
+
/** 记录创建时间 */
|
|
61
|
+
createTime: string;
|
|
62
|
+
}
|
|
63
|
+
export interface OpportunityEffectiveBoardInput {
|
|
64
|
+
/** 公司ID(必填) */
|
|
65
|
+
companyId: number;
|
|
66
|
+
/** 年(可选) */
|
|
67
|
+
statYear?: number;
|
|
68
|
+
/** 月(1-12)(可选) */
|
|
69
|
+
statMonth?: number;
|
|
70
|
+
/** 季度(1-4)(可选) */
|
|
71
|
+
statQuarter?: number;
|
|
72
|
+
/** 当前页码(可选,默认 1) */
|
|
73
|
+
current?: number;
|
|
74
|
+
/** 每页条数(可选,默认 20) */
|
|
75
|
+
size?: number;
|
|
76
|
+
}
|
|
77
|
+
export interface OpportunityEffectiveBoardPageResponse {
|
|
78
|
+
total: number;
|
|
79
|
+
current: number;
|
|
80
|
+
size: number;
|
|
81
|
+
pages: number;
|
|
82
|
+
records: OpportunityEffectiveBoard[];
|
|
83
|
+
}
|
|
84
|
+
export type OpportunityEffectiveBoardField = keyof OpportunityEffectiveBoard;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(_0x176218,_0x2fa53f){var _0x237e6d=a4_0x4342,_0x191d39=_0x176218();while(!![]){try{var _0x3ddc04=parseInt(_0x237e6d(0x16f))/0x1+parseInt(_0x237e6d(0x172))/0x2+parseInt(_0x237e6d(0x171))/0x3+-parseInt(_0x237e6d(0x16b))/0x4*(parseInt(_0x237e6d(0x174))/0x5)+-parseInt(_0x237e6d(0x16c))/0x6*(-parseInt(_0x237e6d(0x16a))/0x7)+parseInt(_0x237e6d(0x173))/0x8+-parseInt(_0x237e6d(0x16e))/0x9;if(_0x3ddc04===_0x2fa53f)break;else _0x191d39['push'](_0x191d39['shift']());}catch(_0x4fdd21){_0x191d39['push'](_0x191d39['shift']());}}}(a4_0x1e36,0x77f7a));function a4_0x4342(_0x175a80,_0x2a5216){_0x175a80=_0x175a80-0x16a;var _0x29cac3=a4_0x1e36();var _0x288394=_0x29cac3[_0x175a80];if(a4_0x4342['DfTInd']===undefined){var _0x5eeb02=function(_0x3b4d84){var _0x25ad55='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x5a054d='',_0x1ada39='',_0x3ffeda=_0x5a054d+_0x5eeb02,_0x3005da=(''+function(){return 0x0;})['indexOf']('\x0a')!==-0x1;for(var _0x16a103=0x0,_0x4e2635,_0x25645c,_0x512cc9=0x0;_0x25645c=_0x3b4d84['charAt'](_0x512cc9++);~_0x25645c&&(_0x4e2635=_0x16a103%0x4?_0x4e2635*0x40+_0x25645c:_0x25645c,_0x16a103++%0x4)?_0x5a054d+=_0x3005da||_0x3ffeda['charCodeAt'](_0x512cc9+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x4e2635>>(-0x2*_0x16a103&0x6)):_0x16a103:0x0){_0x25645c=_0x25ad55['indexOf'](_0x25645c);}for(var _0x15a36d=0x0,_0x228d26=_0x5a054d['length'];_0x15a36d<_0x228d26;_0x15a36d++){_0x1ada39+='%'+('00'+_0x5a054d['charCodeAt'](_0x15a36d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1ada39);};a4_0x4342['EbLvTr']=_0x5eeb02,a4_0x4342['jQbbou']={},a4_0x4342['DfTInd']=!![];}var _0x1e3622=_0x29cac3[0x0],_0x4342ab=_0x175a80+_0x1e3622,_0x4e98f8=a4_0x4342['jQbbou'][_0x4342ab];if(!_0x4e98f8){var _0x306716=function(_0x32995b){this['BbqqaI']=_0x32995b,this['GRIfve']=[0x1,0x0,0x0],this['ylBpfP']=function(){return'newState';},this['SVCtKg']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['RLzAnL']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x306716['prototype']['wLUxMF']=function(){var _0x5bc07b=new RegExp(this['SVCtKg']+this['RLzAnL']),_0x58118b=_0x5bc07b['test'](this['ylBpfP']['toString']())?--this['GRIfve'][0x1]:--this['GRIfve'][0x0];return this['jmbilc'](_0x58118b);},_0x306716['prototype']['jmbilc']=function(_0x3f6512){if(!Boolean(~_0x3f6512))return _0x3f6512;return this['SLWbHp'](this['BbqqaI']);},_0x306716['prototype']['SLWbHp']=function(_0x10c80e){for(var _0x219704=0x0,_0xd49e6b=this['GRIfve']['length'];_0x219704<_0xd49e6b;_0x219704++){this['GRIfve']['push'](Math['round'](Math['random']())),_0xd49e6b=this['GRIfve']['length'];}return _0x10c80e(this['GRIfve'][0x0]);},(''+function(){return 0x0;})['indexOf']('\x0a')===-0x1&&new _0x306716(a4_0x4342)['wLUxMF'](),_0x288394=a4_0x4342['EbLvTr'](_0x288394),a4_0x4342['jQbbou'][_0x4342ab]=_0x288394;}else _0x288394=_0x4e98f8;return _0x288394;}var a4_0x5eeb02=(function(){var _0x99cbfc=!![];return function(_0x56f8fd,_0x30365b){var _0x54af18=_0x99cbfc?function(){var _0x54e62e=a4_0x4342;if(_0x30365b){var _0x515733=_0x30365b[_0x54e62e(0x16d)](_0x56f8fd,arguments);return _0x30365b=null,_0x515733;}}:function(){};return _0x99cbfc=![],_0x54af18;};}()),a4_0x288394=a4_0x5eeb02(this,function(){var _0xf462ee=a4_0x4342;return a4_0x288394['toString']()[_0xf462ee(0x170)]('(((.+)+)+)+$')['toString']()['constructor'](a4_0x288394)['search']('(((.+)+)+)+$');});function a4_0x1e36(){var _0x3ddf0d=['C2vHCMnO','mte5mZKZn25AELbhEa','odK1nJK2B0TNvM5R','nJKXnJq3mLbhzezrAW','mZK1rKzUshbc','mtuWmdfvrhrlq1m','mJyYmdb2CK9qDxi','mZKWAM5xqvvU','yxbWBhK','mta0odu4ntv4B095wLK','mZi0mJuWteLSB2r0'];a4_0x1e36=function(){return _0x3ddf0d;};return a4_0x1e36();}a4_0x288394();export{};
|