@choiceform/os-client-core 3.3.3 → 3.4.3
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/changelog.md +31 -7
- package/dist/core.js +1 -1
- package/dist/web-core.js +1 -1
- package/index.d.ts +200 -207
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -166,18 +166,27 @@ interface CFEnvSystem {
|
|
|
166
166
|
* 生成一个div
|
|
167
167
|
* 举例,web端提供的该方法为如下,其他端需要使用兼容的方式提供
|
|
168
168
|
* ```typescript
|
|
169
|
-
* function
|
|
169
|
+
* function newDiv():HTMLElement {
|
|
170
170
|
* return document.createElement('div');
|
|
171
|
-
|
|
172
171
|
* }
|
|
173
172
|
* ```
|
|
174
173
|
*/
|
|
175
174
|
newDiv(): HTMLElement;
|
|
175
|
+
/**
|
|
176
|
+
* 生成一个div
|
|
177
|
+
* 举例,web端提供的该方法为如下,其他端需要使用兼容的方式提供
|
|
178
|
+
* ```typescript
|
|
179
|
+
* function newDiv():HTMLElement {
|
|
180
|
+
* return document.createElement('div');
|
|
181
|
+
* }
|
|
182
|
+
* ```
|
|
183
|
+
*/
|
|
184
|
+
newSpan(): HTMLSpanElement;
|
|
176
185
|
/**
|
|
177
186
|
* 生成一个文本节点的方法
|
|
178
187
|
* 举例,web端提供的该方法为如下,其他端需要使用兼容的方式提供
|
|
179
188
|
* ```typescript
|
|
180
|
-
* function newTextNode(
|
|
189
|
+
* function newTextNode():Text {
|
|
181
190
|
* return document.createText();
|
|
182
191
|
* }
|
|
183
192
|
* ```
|
|
@@ -492,9 +501,9 @@ interface CFEnvHook {
|
|
|
492
501
|
beforeForceLeave?(): void;
|
|
493
502
|
/**
|
|
494
503
|
* 当语言发生变化时的回调
|
|
495
|
-
* @param
|
|
504
|
+
* @param langItem
|
|
496
505
|
*/
|
|
497
|
-
onLangChange?(
|
|
506
|
+
onLangChange?(langItem: CFLangTableItem): void;
|
|
498
507
|
/**
|
|
499
508
|
* 当进行上一题/下一题切换题目时的回调
|
|
500
509
|
*/
|
|
@@ -1500,27 +1509,27 @@ declare const enum RICH_NODE_NAME {
|
|
|
1500
1509
|
/**
|
|
1501
1510
|
* span
|
|
1502
1511
|
*/
|
|
1503
|
-
SPAN = '
|
|
1512
|
+
SPAN = 'SPAN',
|
|
1504
1513
|
/**
|
|
1505
1514
|
* div
|
|
1506
1515
|
*/
|
|
1507
|
-
DIV = '
|
|
1516
|
+
DIV = 'DIV',
|
|
1508
1517
|
/**
|
|
1509
1518
|
* script
|
|
1510
1519
|
*/
|
|
1511
|
-
SCRIPT = '
|
|
1520
|
+
SCRIPT = 'SCRIPT',
|
|
1512
1521
|
/**
|
|
1513
1522
|
* ol
|
|
1514
1523
|
*/
|
|
1515
|
-
OL = '
|
|
1524
|
+
OL = 'OL',
|
|
1516
1525
|
/**
|
|
1517
1526
|
* ul
|
|
1518
1527
|
*/
|
|
1519
|
-
UL = '
|
|
1528
|
+
UL = 'UL',
|
|
1520
1529
|
/**
|
|
1521
1530
|
* br
|
|
1522
1531
|
*/
|
|
1523
|
-
BR = '
|
|
1532
|
+
BR = 'BR',
|
|
1524
1533
|
}
|
|
1525
1534
|
|
|
1526
1535
|
/**
|
|
@@ -1695,16 +1704,6 @@ declare const enum OPT_MARK {
|
|
|
1695
1704
|
* 块状选项
|
|
1696
1705
|
*/
|
|
1697
1706
|
BLOCK = 'block',
|
|
1698
|
-
/**
|
|
1699
|
-
* 只有级联题使用,
|
|
1700
|
-
* 展示成下拉列表嵌套选择
|
|
1701
|
-
*/
|
|
1702
|
-
DROPDOWN = 'dropdown',
|
|
1703
|
-
/**
|
|
1704
|
-
* 只有级联题使用
|
|
1705
|
-
* 展示成普通选项嵌套选择
|
|
1706
|
-
*/
|
|
1707
|
-
STRETCH = 'stretch',
|
|
1708
1707
|
}
|
|
1709
1708
|
|
|
1710
1709
|
/**
|
|
@@ -1869,24 +1868,6 @@ declare const enum OPT_MAP_TYPE {
|
|
|
1869
1868
|
NUMBER = 'number',
|
|
1870
1869
|
}
|
|
1871
1870
|
|
|
1872
|
-
/**
|
|
1873
|
-
* 矩阵展示方式枚举
|
|
1874
|
-
*/
|
|
1875
|
-
declare const enum MATRIX_DISPLAY {
|
|
1876
|
-
/**
|
|
1877
|
-
* 自动适应
|
|
1878
|
-
*/
|
|
1879
|
-
AUTO = 'auto',
|
|
1880
|
-
/**
|
|
1881
|
-
* 层级排布
|
|
1882
|
-
*/
|
|
1883
|
-
STRETCH = 'stretch',
|
|
1884
|
-
/**
|
|
1885
|
-
* 展示成矩阵表
|
|
1886
|
-
*/
|
|
1887
|
-
MATRIX = 'matrix',
|
|
1888
|
-
}
|
|
1889
|
-
|
|
1890
1871
|
/**
|
|
1891
1872
|
* 权重输入方式
|
|
1892
1873
|
*/
|
|
@@ -2027,20 +2008,6 @@ declare const enum VERIFY_TYPE {
|
|
|
2027
2008
|
IMAGE = 'image',
|
|
2028
2009
|
}
|
|
2029
2010
|
|
|
2030
|
-
/**
|
|
2031
|
-
* 演示评价题评分方式枚举
|
|
2032
|
-
*/
|
|
2033
|
-
declare const enum SLIDE_RATE_TYPE {
|
|
2034
|
-
/**
|
|
2035
|
-
* 演示评价
|
|
2036
|
-
*/
|
|
2037
|
-
SLIDE = 'slide',
|
|
2038
|
-
/**
|
|
2039
|
-
* 表格评价
|
|
2040
|
-
*/
|
|
2041
|
-
TABLE = 'table',
|
|
2042
|
-
}
|
|
2043
|
-
|
|
2044
2011
|
/**
|
|
2045
2012
|
* 表格评价时的表头展示方式枚举
|
|
2046
2013
|
*/
|
|
@@ -2209,7 +2176,7 @@ declare const enum VAR_TYPE {
|
|
|
2209
2176
|
*/
|
|
2210
2177
|
VAR_MEDIA = 'var-media',
|
|
2211
2178
|
/**
|
|
2212
|
-
*
|
|
2179
|
+
* 循环仰视变量
|
|
2213
2180
|
*/
|
|
2214
2181
|
VAR_LOOP = 'var-loop',
|
|
2215
2182
|
/**
|
|
@@ -2745,6 +2712,78 @@ interface ICFStretchConfig {
|
|
|
2745
2712
|
}
|
|
2746
2713
|
|
|
2747
2714
|
|
|
2715
|
+
// -------------- types/outer/flow/group-table.d.ts ---------------
|
|
2716
|
+
|
|
2717
|
+
/**
|
|
2718
|
+
* 单页组表格
|
|
2719
|
+
* 主要用于在答题过程中,如果是单页组并且开始了 renderAsTable 这个选项的时候
|
|
2720
|
+
* 需要优先使用这个字段来渲染,
|
|
2721
|
+
* 在这种模式下,单页组中的题目按照表格的形式渲染题目
|
|
2722
|
+
*/
|
|
2723
|
+
interface ISinglePageGroupTable {
|
|
2724
|
+
/**
|
|
2725
|
+
* 表格标题
|
|
2726
|
+
*/
|
|
2727
|
+
title: string
|
|
2728
|
+
/**
|
|
2729
|
+
* 表格头部数据
|
|
2730
|
+
*/
|
|
2731
|
+
header: ISinglePageGroupTableHeaderCell[]
|
|
2732
|
+
/**
|
|
2733
|
+
* 每一行的数据
|
|
2734
|
+
*/
|
|
2735
|
+
rows: ISinglePageGroupTableRow[]
|
|
2736
|
+
|
|
2737
|
+
}
|
|
2738
|
+
|
|
2739
|
+
/**
|
|
2740
|
+
* 单页组的某一列的数据结构
|
|
2741
|
+
*/
|
|
2742
|
+
interface ISinglePageGroupTableHeaderCell {
|
|
2743
|
+
/**
|
|
2744
|
+
* 列的标题
|
|
2745
|
+
*/
|
|
2746
|
+
title: string
|
|
2747
|
+
/**
|
|
2748
|
+
* 列的uuid
|
|
2749
|
+
*/
|
|
2750
|
+
uuid: string
|
|
2751
|
+
}
|
|
2752
|
+
|
|
2753
|
+
/**
|
|
2754
|
+
* 单页组的一行的数据结构
|
|
2755
|
+
*/
|
|
2756
|
+
interface ISinglePageGroupTableRow {
|
|
2757
|
+
/**
|
|
2758
|
+
* uuid
|
|
2759
|
+
*/
|
|
2760
|
+
uuid: string
|
|
2761
|
+
/**
|
|
2762
|
+
* 行头需要显示的文本
|
|
2763
|
+
*/
|
|
2764
|
+
readonly title: string;
|
|
2765
|
+
/**
|
|
2766
|
+
* 每一行所关联的问题,横向排布。
|
|
2767
|
+
*/
|
|
2768
|
+
cells: ISinglePageGroupTableRowCell[]
|
|
2769
|
+
}
|
|
2770
|
+
|
|
2771
|
+
/**
|
|
2772
|
+
* 单页组的一行的数据结构
|
|
2773
|
+
*/
|
|
2774
|
+
interface ISinglePageGroupTableRowCell {
|
|
2775
|
+
/**
|
|
2776
|
+
* cell 的 uuid
|
|
2777
|
+
* 在有node 的情况下,会使用node的renderId
|
|
2778
|
+
* 如果没有的家。则自动生成一个uuid
|
|
2779
|
+
*/
|
|
2780
|
+
uuid: string
|
|
2781
|
+
/**
|
|
2782
|
+
* 单元格子内的关联问题
|
|
2783
|
+
*/
|
|
2784
|
+
node?: CFQuestion
|
|
2785
|
+
}
|
|
2786
|
+
|
|
2748
2787
|
// -------------- types/outer/flow/payload.d.ts ---------------
|
|
2749
2788
|
|
|
2750
2789
|
/**
|
|
@@ -3459,6 +3498,15 @@ interface ICFNodeGroup {
|
|
|
3459
3498
|
* 组内节点排列方向
|
|
3460
3499
|
*/
|
|
3461
3500
|
readonly displayDirection: GROUP_DISPLAY_DIRECTION;
|
|
3501
|
+
/**
|
|
3502
|
+
* 是否需要渲染成单页表格的样式
|
|
3503
|
+
* @param
|
|
3504
|
+
*/
|
|
3505
|
+
readonly renderAsTable?: boolean;
|
|
3506
|
+
/**
|
|
3507
|
+
* 如果需要渲染成单页表格,则这个就是表格上方的标题
|
|
3508
|
+
*/
|
|
3509
|
+
readonly tableTitle?: string;
|
|
3462
3510
|
}
|
|
3463
3511
|
//#endregion
|
|
3464
3512
|
|
|
@@ -3613,6 +3661,10 @@ interface ICFNode {
|
|
|
3613
3661
|
* @ignore
|
|
3614
3662
|
*/
|
|
3615
3663
|
readonly questionText: string;
|
|
3664
|
+
/**
|
|
3665
|
+
* 是否隐藏问题区,如果为true,不要渲染node-head
|
|
3666
|
+
*/
|
|
3667
|
+
readonly headHidden?: boolean;
|
|
3616
3668
|
/**
|
|
3617
3669
|
* 原始问题描述
|
|
3618
3670
|
* @ignore
|
|
@@ -3651,7 +3703,7 @@ interface ICFNode {
|
|
|
3651
3703
|
/**
|
|
3652
3704
|
* @ignore
|
|
3653
3705
|
*/
|
|
3654
|
-
readonly
|
|
3706
|
+
readonly runtimeNodeName: string;
|
|
3655
3707
|
/**
|
|
3656
3708
|
* 节点类型
|
|
3657
3709
|
*/
|
|
@@ -3938,11 +3990,6 @@ interface ICFMatrixNode extends ICFSubjectNode {
|
|
|
3938
3990
|
* 如果是以列为主,则先列后行
|
|
3939
3991
|
*/
|
|
3940
3992
|
readonly flatten: CFFlatItem[];
|
|
3941
|
-
/**
|
|
3942
|
-
* 矩阵展示方式
|
|
3943
|
-
* UI根据不同的类型,展示成不同的方格
|
|
3944
|
-
*/
|
|
3945
|
-
readonly displayType: MATRIX_DISPLAY;
|
|
3946
3993
|
/**
|
|
3947
3994
|
* 列选项
|
|
3948
3995
|
* @ignore
|
|
@@ -4495,7 +4542,7 @@ interface ICFStartNode extends ICFNode, ICFStartMiniState, ICFOutputNodeMixin, C
|
|
|
4495
4542
|
* 循环节点
|
|
4496
4543
|
* @ignore
|
|
4497
4544
|
*/
|
|
4498
|
-
interface ICFLoopNode extends ICFInOutNodeMixin {
|
|
4545
|
+
interface ICFLoopNode extends ICFInOutNodeMixin , ICFOptNodeMixin {
|
|
4499
4546
|
readonly loopEnd: ICFPort;
|
|
4500
4547
|
readonly loopStart: ICFPort;
|
|
4501
4548
|
}
|
|
@@ -4564,7 +4611,7 @@ interface ICFOptGroupNodeMixin extends ICFNode {
|
|
|
4564
4611
|
* 选项分组设置,当题目上发现该属性时,放弃使用[[CFSubjectQuestion.options]],转而使用该属性的结构来渲染选项
|
|
4565
4612
|
* 该属性是树形递归结构,
|
|
4566
4613
|
* 虽然当前所有题目的类型上都有该属性,
|
|
4567
|
-
*
|
|
4614
|
+
* 但只有`选择题`,`图标选择题`,`图片选择题`,`拖拽打分题`,`图形打分题`,`填空题`,`数值分配题`等这几题需要支持组渲染
|
|
4568
4615
|
*
|
|
4569
4616
|
* 其他题目还是维持以前的状态。
|
|
4570
4617
|
*
|
|
@@ -5140,22 +5187,6 @@ interface CFOption extends ICFPort {
|
|
|
5140
5187
|
* UI需要渲染该消息,让答题者知道为什么错了
|
|
5141
5188
|
*/
|
|
5142
5189
|
readonly errorMessage: string;
|
|
5143
|
-
/**
|
|
5144
|
-
* @ignore
|
|
5145
|
-
*/
|
|
5146
|
-
readonly _previewTransferred: boolean;
|
|
5147
|
-
/**
|
|
5148
|
-
* 原始索引
|
|
5149
|
-
* @ignore
|
|
5150
|
-
*/
|
|
5151
|
-
readonly index: number;
|
|
5152
|
-
/**
|
|
5153
|
-
* 展示后的真实索引,未展示的为负值.
|
|
5154
|
-
* 因为选项可能被隐藏,索引需要保证真实索引
|
|
5155
|
-
* 用于在随机顺序追随引用源时作为可靠的参考
|
|
5156
|
-
* @ignore
|
|
5157
|
-
*/
|
|
5158
|
-
readonly realIndex: number;
|
|
5159
5190
|
/**
|
|
5160
5191
|
* @ignore
|
|
5161
5192
|
*/
|
|
@@ -5285,7 +5316,7 @@ interface CFIconMarkOption extends CFOption {
|
|
|
5285
5316
|
}
|
|
5286
5317
|
|
|
5287
5318
|
/**
|
|
5288
|
-
*
|
|
5319
|
+
* 拖拽打分题选项
|
|
5289
5320
|
*/
|
|
5290
5321
|
interface CFValueMarkOption extends CFOption {
|
|
5291
5322
|
/**
|
|
@@ -5454,10 +5485,7 @@ interface CFUploadOption extends CFOption, ICFUploadResult {
|
|
|
5454
5485
|
readonly image: CFImageInNode;
|
|
5455
5486
|
}
|
|
5456
5487
|
|
|
5457
|
-
|
|
5458
|
-
* 图片热点选项
|
|
5459
|
-
*/
|
|
5460
|
-
interface CFHotSpotOption extends CFOption {
|
|
5488
|
+
interface CFHotSpotGraph {
|
|
5461
5489
|
/**
|
|
5462
5490
|
* @ignore
|
|
5463
5491
|
*/
|
|
@@ -5466,6 +5494,10 @@ interface CFHotSpotOption extends CFOption {
|
|
|
5466
5494
|
* @ignore
|
|
5467
5495
|
*/
|
|
5468
5496
|
readonly y: number;
|
|
5497
|
+
/**
|
|
5498
|
+
* 唯一id
|
|
5499
|
+
*/
|
|
5500
|
+
readonly uuid: string;
|
|
5469
5501
|
/**
|
|
5470
5502
|
* 偏移
|
|
5471
5503
|
*/
|
|
@@ -5475,11 +5507,7 @@ interface CFHotSpotOption extends CFOption {
|
|
|
5475
5507
|
*/
|
|
5476
5508
|
readonly pathD: string;
|
|
5477
5509
|
/**
|
|
5478
|
-
*
|
|
5479
|
-
*/
|
|
5480
|
-
readonly color: string;
|
|
5481
|
-
/**
|
|
5482
|
-
* @ignore
|
|
5510
|
+
* 图形区域,主要用于判断图形层级,图形区域小的应该在图形面积大的上方
|
|
5483
5511
|
*/
|
|
5484
5512
|
readonly area: number;
|
|
5485
5513
|
/**
|
|
@@ -5488,6 +5516,20 @@ interface CFHotSpotOption extends CFOption {
|
|
|
5488
5516
|
points: { x: number; y: number }[];
|
|
5489
5517
|
}
|
|
5490
5518
|
|
|
5519
|
+
/**
|
|
5520
|
+
* 图片热点选项
|
|
5521
|
+
*/
|
|
5522
|
+
interface CFHotSpotOption extends CFOption {
|
|
5523
|
+
/**
|
|
5524
|
+
* 颜色
|
|
5525
|
+
*/
|
|
5526
|
+
readonly color: string;
|
|
5527
|
+
/**
|
|
5528
|
+
* 图形列表
|
|
5529
|
+
*/
|
|
5530
|
+
graphs: CFHotSpotGraph[]
|
|
5531
|
+
}
|
|
5532
|
+
|
|
5491
5533
|
/**
|
|
5492
5534
|
* 热图选项
|
|
5493
5535
|
*/
|
|
@@ -5580,14 +5622,6 @@ interface ICFRefOption extends CFOption {
|
|
|
5580
5622
|
* 关联的选项引用id
|
|
5581
5623
|
*/
|
|
5582
5624
|
readonly referId: string;
|
|
5583
|
-
/**
|
|
5584
|
-
* 引用源的真实索引
|
|
5585
|
-
*/
|
|
5586
|
-
readonly refIndex: number;
|
|
5587
|
-
/**
|
|
5588
|
-
* 引用源展示后的真实索引
|
|
5589
|
-
*/
|
|
5590
|
-
readonly refRealIndex: number;
|
|
5591
5625
|
}
|
|
5592
5626
|
|
|
5593
5627
|
/**
|
|
@@ -5698,11 +5732,6 @@ interface CFQuestion extends ICFNode, ICFTypeInfo {
|
|
|
5698
5732
|
* @ignore
|
|
5699
5733
|
*/
|
|
5700
5734
|
readonly actions: ICFNodeAction[];
|
|
5701
|
-
/**
|
|
5702
|
-
* 刷新动态属性
|
|
5703
|
-
* @ignore
|
|
5704
|
-
*/
|
|
5705
|
-
dynamicNodeProps: () => void;
|
|
5706
5735
|
/**
|
|
5707
5736
|
* 是否已经被回复,包含了答案
|
|
5708
5737
|
*/
|
|
@@ -5954,7 +5983,6 @@ interface CFSequenceQuestion extends CFSubjectQuestion {
|
|
|
5954
5983
|
*
|
|
5955
5984
|
* 或者使用[[CFMatrixQuestion.flatten]]渲染层级排布方式的选项
|
|
5956
5985
|
*
|
|
5957
|
-
* 使用哪种方式由[[CFMatrixQuestion.displayType]]决定
|
|
5958
5986
|
*
|
|
5959
5987
|
* 矩阵题的普通选项也是选择类型的,点击后调用[[CFUIEventHandler.handleOptionClick]]方法
|
|
5960
5988
|
*
|
|
@@ -6087,12 +6115,12 @@ interface CFVerifyQuestion extends ICFValidateNode, CFQuestion {
|
|
|
6087
6115
|
}
|
|
6088
6116
|
|
|
6089
6117
|
/**
|
|
6090
|
-
*
|
|
6118
|
+
* 图片框选题
|
|
6091
6119
|
* 基本内容请参考选择题[[CFSelectQuestion]]
|
|
6092
|
-
*
|
|
6093
|
-
*
|
|
6120
|
+
* 特殊点,图片框选题的选项不是以列表方式渲染的,而是以覆盖在图片上的区域点的方式渲染
|
|
6121
|
+
* 图片框选题的选项是[[CFHotSpotOption]]类型
|
|
6094
6122
|
*
|
|
6095
|
-
*
|
|
6123
|
+
* 渲染图片框选题的选项再渲染时,先使用[[CFHotSpotQuestion.mapImage]]渲染出底图.
|
|
6096
6124
|
*
|
|
6097
6125
|
* 在根据每个选项的路径[[CFHotSpotOption.pathD]]和位置[[CFHotSpotOption.transform]]在底图上方绘制选项区域.
|
|
6098
6126
|
*
|
|
@@ -6159,73 +6187,9 @@ interface CFFillQuestion extends ICFFillNode, CFSubjectQuestion {
|
|
|
6159
6187
|
}
|
|
6160
6188
|
|
|
6161
6189
|
/**
|
|
6162
|
-
*
|
|
6190
|
+
* 连续评价题
|
|
6163
6191
|
* 基本内容请参考选择题[[CFSelectQuestion]]
|
|
6164
|
-
*
|
|
6165
|
-
* 特殊点:演示评价题通过[[CFSlideRateQuestion.rateType]]属性区分有两种评分方式的UI:
|
|
6166
|
-
*
|
|
6167
|
-
* 1. slide-演示评价
|
|
6168
|
-
*
|
|
6169
|
-
* 它的普通选项不是直接以列表的方式展示出来,而是一页一个逐一展示出来的.
|
|
6170
|
-
* 它的选项是[[CFSlideRateOption]]类型的数组
|
|
6171
|
-
* 每次只渲染一个选项,选项中如有有文字和图片需要渲染
|
|
6172
|
-
* 同时关注[[CFSlideRateQuestion.rateOptions]]属性,为该选项渲染出几个打分图形和打分文字.
|
|
6173
|
-
* 每个图形和文字代表不同的分值,当答题者点击这些图形的时候就是为该选项评分
|
|
6174
|
-
* 评分后需要调用[[CFUIEventHandler.handleOptionInput]]方法
|
|
6175
|
-
*
|
|
6176
|
-
* 需要进行分页控制:
|
|
6177
|
-
* - 初始渲染[[CFSlideRateQuestion.currentOption]];
|
|
6178
|
-
* - 渲染上一页,下一页按钮,点击后分别调用[[CFSlideRateQuestion.gotoNextOption]]方法
|
|
6179
|
-
* 或[[CFSlideRateQuestion.gotoPrevOption]]方法要求核心包来切换当前选项,[[CFSlideRateQuestion.gotoOption]]跳转到指定的选项
|
|
6180
|
-
* - 当前是几分之几项如:1/6,每次切任务后更新进度,当前索引可以到靠查询当前选项在总选项表中的位置获取到。
|
|
6181
|
-
*
|
|
6182
|
-
* 2. table-表格评价
|
|
6183
|
-
*
|
|
6184
|
-
* 使用[[CFSlideRateQuestion.options]]与[[CFSlideRateQuestion.rateOptions]]组成生成表格
|
|
6185
|
-
* [[CFSlideRateQuestion.options]]当行,[[CFSlideRateQuestion.rateOptions]]当列。
|
|
6186
|
-
*
|
|
6187
|
-
* 比如下面的水果是选项,喜欢不喜欢是评价项,
|
|
6188
|
-
* 这UI看起来和矩阵题的行列单选简直一模一样,但其实是个打分题,提交数据的结构和矩阵题是不一样的。
|
|
6189
|
-
*
|
|
6190
|
-
*
|
|
6191
|
-
* | |非常不喜欢|比较不喜欢|一般|比较喜欢|非常喜欢|
|
|
6192
|
-
* | :-: | :-: | :-: | :-: | :-: | :-: |
|
|
6193
|
-
* | | 1 | 2 |3 | 4 | 5 |
|
|
6194
|
-
* |苹果| ○ | ⊙ | ○ | ○ | ○ |
|
|
6195
|
-
* |香蕉| ○ | ○ | ○ | ○ | ⊙ |
|
|
6196
|
-
* |雪梨| ○ | ○ | ○ | ⊙ | ○ |
|
|
6197
|
-
* |菠萝| ○ | ○ | ○ | ○ | ⊙ |
|
|
6198
|
-
*
|
|
6199
|
-
*
|
|
6200
|
-
*
|
|
6201
|
-
* 默认表头会显示两行,第一行是评价项的文字,第二行是评价项的分值
|
|
6202
|
-
* 参照[[CFSlideRateQuestion.tableHead]]的值来控制表头的展示方式,有以下可能:
|
|
6203
|
-
*
|
|
6204
|
-
* + none: 不显示表头
|
|
6205
|
-
* + text: 仅显示文字表头
|
|
6206
|
-
* + value: 仅显示分值表头
|
|
6207
|
-
* + text_value 同时显示文字表头和分值表头,文字表头在上。
|
|
6208
|
-
*
|
|
6209
|
-
*
|
|
6210
|
-
* 点击某个网格时调用[[CFUIEventHandler.handleOptionInput]]方法
|
|
6211
|
-
* 传入的分值就是该网格所在列对应的评价项的分值,传入的选项就是该网格所在的行所对应的选项。
|
|
6212
|
-
*
|
|
6213
|
-
* 渲染网格时检查网格所在行的选项的分值是否和网格所在列的评价项的分值一致,如果一致,则这个网格要被选中。
|
|
6214
|
-
*
|
|
6215
|
-
* 如果相邻的评价项是一样的(包含都是空字符串的情况)则相邻的的文字表头网格需要合并
|
|
6216
|
-
*
|
|
6217
|
-
* 如:五个评价项的文字分别是 讨厌-无感-无感-无感-喜欢,则中间三个无感要合并成一个单元格
|
|
6218
|
-
*
|
|
6219
|
-
* 分值表头则不需要合并
|
|
6220
|
-
*
|
|
6221
|
-
* 表格评价模式下表头和选项的文字中可能有富文本,需要能支持。
|
|
6222
|
-
*
|
|
6223
|
-
* 表格评价模式下选项的图片和评价项的图标无视掉,无需支持。
|
|
6224
|
-
*
|
|
6225
|
-
* 这个情况一般是在较大屏上使用,简单起见对小屏的是适配暂无要求
|
|
6226
|
-
* 如果在手机上存在评价项较多即使尽量挤压也在水平方向上显示不下的情况,
|
|
6227
|
-
* 这时候让它自动超出屏幕触发系统滚动条也是可以的。
|
|
6228
|
-
*
|
|
6192
|
+
*
|
|
6229
6193
|
* 其他选项的渲染方式和选择题一样
|
|
6230
6194
|
*
|
|
6231
6195
|
*/
|
|
@@ -6254,10 +6218,6 @@ interface CFSlideRateQuestion extends ICFSlideRateNode, CFSubjectQuestion {
|
|
|
6254
6218
|
* 切换到指定选项
|
|
6255
6219
|
*/
|
|
6256
6220
|
gotoOption(option: CFSlideRateOption): void;
|
|
6257
|
-
/**
|
|
6258
|
-
* 评价UI展示方式
|
|
6259
|
-
*/
|
|
6260
|
-
readonly rateType: SLIDE_RATE_TYPE;
|
|
6261
6221
|
/**
|
|
6262
6222
|
* 表格评价时的表头展示方式
|
|
6263
6223
|
*/
|
|
@@ -6265,11 +6225,11 @@ interface CFSlideRateQuestion extends ICFSlideRateNode, CFSubjectQuestion {
|
|
|
6265
6225
|
}
|
|
6266
6226
|
|
|
6267
6227
|
/**
|
|
6268
|
-
*
|
|
6228
|
+
* 数值分配题
|
|
6269
6229
|
*
|
|
6270
6230
|
* 基本内容请参考选择题[[CFSelectQuestion]]
|
|
6271
6231
|
*
|
|
6272
|
-
*
|
|
6232
|
+
* 特殊点:数值分配题的普通选项要以可评分的方式渲染出来,输入框输入分值,或滑杆拖动输入分值等等都可,UI自行决定.
|
|
6273
6233
|
*
|
|
6274
6234
|
* 当输入分值后,需要调用[[CFUIEventHandler.handleOptionInput]]方法
|
|
6275
6235
|
*
|
|
@@ -6317,10 +6277,10 @@ interface CFWeightQuestion extends CFSubjectQuestion {
|
|
|
6317
6277
|
|
|
6318
6278
|
|
|
6319
6279
|
/**
|
|
6320
|
-
*
|
|
6280
|
+
* 拖拽打分题
|
|
6321
6281
|
* 基本内容请参考选择题[[CFSelectQuestion]]
|
|
6322
6282
|
*
|
|
6323
|
-
*
|
|
6283
|
+
* 特殊点:拖拽打分题的每个选项是用于评分的,一般渲染一个滑杆让答题者拖动滑杆评分
|
|
6324
6284
|
* 选项是[[CFValueMarkOption]]类型,其中定义了最大分支,最小分值限制,每次拖动滑杆时的分值步进
|
|
6325
6285
|
* 还有最大分值描述,和最小分值描述,这些内容可以选择性的渲染.
|
|
6326
6286
|
* 答题者给选项评分后需要回调[[CFUIEventHandler.handleOptionInput]]方法
|
|
@@ -6500,7 +6460,7 @@ interface CFCascadeQuestion extends ICFCascadeNode, CFSubjectQuestion {
|
|
|
6500
6460
|
}
|
|
6501
6461
|
|
|
6502
6462
|
/**
|
|
6503
|
-
*
|
|
6463
|
+
* 素材展示页面
|
|
6504
6464
|
*
|
|
6505
6465
|
* 没有选项,其他方面同选择题[[CFSelectQuestion]]
|
|
6506
6466
|
*
|
|
@@ -6804,15 +6764,15 @@ interface CFMaxDiffTask {
|
|
|
6804
6764
|
}
|
|
6805
6765
|
|
|
6806
6766
|
/**
|
|
6807
|
-
*
|
|
6767
|
+
* MaxDiff问题
|
|
6808
6768
|
* 基本内容请参考选择题[[CFSelectQuestion]]
|
|
6809
6769
|
*
|
|
6810
6770
|
* 特殊点:
|
|
6811
6771
|
*
|
|
6812
6772
|
*
|
|
6813
|
-
*
|
|
6773
|
+
* MaxDiff问题不直接渲染选项,而是渲染任务:其中总任务列表时[[CFMaxDiffQuestion.tasks]],不直接渲染这个列表,
|
|
6814
6774
|
*
|
|
6815
|
-
*
|
|
6775
|
+
* 而是像连续评价题一样一次只显示一个任务卡片[[CFMaxDiffQuestion.currentTask]]。
|
|
6816
6776
|
*
|
|
6817
6777
|
* 卡片展示成下面这样:
|
|
6818
6778
|
*
|
|
@@ -6833,14 +6793,14 @@ interface CFMaxDiffTask {
|
|
|
6833
6793
|
*
|
|
6834
6794
|
* 渲染的时候也是当[[CFMaxDiffTaskItem.value]]为1时,左侧checkbox被选中,如果为-1时,右侧checkbox被选中。
|
|
6835
6795
|
*
|
|
6836
|
-
*
|
|
6796
|
+
* 由于一个MaxDiff问题包含多一个任务页,所以需要提供切换任务的功能
|
|
6837
6797
|
*
|
|
6838
6798
|
* 1. 渲染当前[[CFMaxDiffQuestion.currentTask]]任务卡片
|
|
6839
6799
|
*
|
|
6840
6800
|
* 2. 渲染`上一页`,`下一页`按钮,点击后分别调用[[CFMaxDiffQuestion.gotoPrevTask]]方法或[[CFMaxDiffQuestion.gotoNextTask]]方法来要求
|
|
6841
6801
|
* 核心包切换当前任务, [[CFMaxDiffQuestion.gotoTask]]跳转到指定的任务。
|
|
6842
6802
|
*
|
|
6843
|
-
* 3.
|
|
6803
|
+
* 3. 同时像连续评价题一样显示当前是几分之几项如:1/6,每次切任务后更新进度。当前索引可以到靠查询当前任务在总任务中的位置获取到。
|
|
6844
6804
|
*
|
|
6845
6805
|
*/
|
|
6846
6806
|
interface CFMaxDiffQuestion extends CFSubjectQuestion, ICFMaxDiffNode {
|
|
@@ -6879,9 +6839,9 @@ interface ICFDataHub extends ICFSubjectNode, CFSubjectQuestion {
|
|
|
6879
6839
|
* 虚拟循环题
|
|
6880
6840
|
* @ignore
|
|
6881
6841
|
*/
|
|
6882
|
-
interface ICFLoopHub extends ICFLoopNode, CFQuestion {
|
|
6842
|
+
interface ICFLoopHub extends ICFLoopNode, CFQuestion , ICFOptNodeMixin{
|
|
6883
6843
|
/**
|
|
6884
|
-
*
|
|
6844
|
+
* 包含的循环仰视变量列表
|
|
6885
6845
|
*/
|
|
6886
6846
|
readonly varList: ICFLoopVar[];
|
|
6887
6847
|
}
|
|
@@ -8144,20 +8104,13 @@ interface CFSurveyState
|
|
|
8144
8104
|
* @ignore
|
|
8145
8105
|
*/
|
|
8146
8106
|
readonly resumeEnabled: boolean;
|
|
8107
|
+
|
|
8108
|
+
|
|
8147
8109
|
/**
|
|
8148
|
-
*
|
|
8149
|
-
*
|
|
8150
|
-
*/
|
|
8151
|
-
first: () => CFQuestion;
|
|
8152
|
-
/**
|
|
8153
|
-
* 单页的时候方便获取到最后一个题目
|
|
8154
|
-
* @ignore
|
|
8155
|
-
*/
|
|
8156
|
-
last: () => CFQuestion;
|
|
8157
|
-
/**
|
|
8158
|
-
* @ignore
|
|
8110
|
+
* 是否需要以表格的方式渲染问题,
|
|
8111
|
+
* 这个的优先级比 nodes 的要高
|
|
8159
8112
|
*/
|
|
8160
|
-
|
|
8113
|
+
groupTable?: ISinglePageGroupTable
|
|
8161
8114
|
}
|
|
8162
8115
|
|
|
8163
8116
|
|
|
@@ -8269,6 +8222,10 @@ interface CFLangTableItem {
|
|
|
8269
8222
|
* 语言名称
|
|
8270
8223
|
*/
|
|
8271
8224
|
readonly value: string;
|
|
8225
|
+
/**
|
|
8226
|
+
* 语言方向,不指定则认为是ltr
|
|
8227
|
+
*/
|
|
8228
|
+
direction?: 'rtl' | 'ltr'
|
|
8272
8229
|
}
|
|
8273
8230
|
|
|
8274
8231
|
/**
|
|
@@ -8892,6 +8849,10 @@ interface CFPreviewTimeDisplay {
|
|
|
8892
8849
|
* 节点名称
|
|
8893
8850
|
*/
|
|
8894
8851
|
readonly name: string;
|
|
8852
|
+
/**
|
|
8853
|
+
* 唯一渲染id
|
|
8854
|
+
*/
|
|
8855
|
+
readonly renderId: string;
|
|
8895
8856
|
/**
|
|
8896
8857
|
* 节点描述
|
|
8897
8858
|
*/
|
|
@@ -9281,7 +9242,7 @@ interface ICFQuestionCache {
|
|
|
9281
9242
|
readonly failedSkipActivated: boolean;
|
|
9282
9243
|
readonly tasks: ICFMaxDiffTaskCache[];
|
|
9283
9244
|
/**
|
|
9284
|
-
*
|
|
9245
|
+
* MaxDiff问题和连续评价题当前任务索引
|
|
9285
9246
|
*/
|
|
9286
9247
|
readonly currentTaskIndex: number;
|
|
9287
9248
|
readonly rankList: string[];
|
|
@@ -9382,7 +9343,7 @@ interface CFUIEventHandler {
|
|
|
9382
9343
|
|
|
9383
9344
|
/**
|
|
9384
9345
|
* 选项点击回调,适用题型:
|
|
9385
|
-
*
|
|
9346
|
+
* 选择题/图标题/图片选择题/矩阵题/图片框选题/图片上传题点击上传
|
|
9386
9347
|
* @param option 点击的选项
|
|
9387
9348
|
* @param question 所在题目
|
|
9388
9349
|
*/
|
|
@@ -9431,7 +9392,7 @@ interface CFUIEventHandler {
|
|
|
9431
9392
|
handleGetCodeClick?(question: CFQuestion): Promise<void>;
|
|
9432
9393
|
|
|
9433
9394
|
/**
|
|
9434
|
-
*
|
|
9395
|
+
* 选项输入回调函数:适用题目填空题,打分题,数值分配题,连续评价题,上传题,输入方式排序或挑选方式排序的排序题以及有其他选项需要输入的题型
|
|
9435
9396
|
* 对与挑选排序的排序题,如果是要放弃序号,data参数传入-1即可
|
|
9436
9397
|
* @param data 输入的数据
|
|
9437
9398
|
* @param option 所在的选项
|
|
@@ -9506,7 +9467,7 @@ interface CFUIEventHandler {
|
|
|
9506
9467
|
sortTargetOpt: CFSequenceOption,
|
|
9507
9468
|
): Promise<void>;
|
|
9508
9469
|
/**
|
|
9509
|
-
*
|
|
9470
|
+
* MaxDiff问题评分后的回调
|
|
9510
9471
|
* @param value 分值,只能是-1或者1
|
|
9511
9472
|
* @param item 被评价的项目
|
|
9512
9473
|
* @param task 关联的任务
|
|
@@ -9999,9 +9960,9 @@ interface ICFVarInfo extends ICFVarDetail, ICFVarRaw, ICFVarPart {
|
|
|
9999
9960
|
*/
|
|
10000
9961
|
readonly optionFilter?: ICFVarPart;
|
|
10001
9962
|
/**
|
|
10002
|
-
*
|
|
9963
|
+
* 循环仰视变量关联循环节点的id
|
|
10003
9964
|
*/
|
|
10004
|
-
readonly
|
|
9965
|
+
readonly lookupLoopNodeId?: string;
|
|
10005
9966
|
/**
|
|
10006
9967
|
* 用于变量映射表中匹配变量的映射id,一般有uuid,limit,limitSrc,limitRnd拼接而成
|
|
10007
9968
|
*/
|
|
@@ -10010,6 +9971,20 @@ interface ICFVarInfo extends ICFVarDetail, ICFVarRaw, ICFVarPart {
|
|
|
10010
9971
|
readonly inEdist?: boolean;
|
|
10011
9972
|
}
|
|
10012
9973
|
|
|
9974
|
+
/**
|
|
9975
|
+
* 内部循环轮次,仅靠```ICFLoopVar```不能找到真正的循环圈。
|
|
9976
|
+
* 所以需要记忆它所属的外部轮次ID
|
|
9977
|
+
*/
|
|
9978
|
+
interface ICFInnerLoopVar {
|
|
9979
|
+
/**
|
|
9980
|
+
* 外部轮次Id
|
|
9981
|
+
*/
|
|
9982
|
+
readonly outerRoundId: string;
|
|
9983
|
+
/**
|
|
9984
|
+
* 关联轮次
|
|
9985
|
+
*/
|
|
9986
|
+
round: ICFLoopVar
|
|
9987
|
+
}
|
|
10013
9988
|
/**
|
|
10014
9989
|
* @ignore
|
|
10015
9990
|
*/
|
|
@@ -10221,6 +10196,24 @@ interface IRawVarIdentity {
|
|
|
10221
10196
|
* 选项数据分部id
|
|
10222
10197
|
*/
|
|
10223
10198
|
readonly optPartId: string;
|
|
10199
|
+
/**
|
|
10200
|
+
* 关联循环节点后8位id
|
|
10201
|
+
*/
|
|
10202
|
+
readonly loopNodeId?: string;
|
|
10203
|
+
/**
|
|
10204
|
+
* 关联的第几轮循环
|
|
10205
|
+
* 如果是`LOOP_ALL_ROUND`,则是所有次循环
|
|
10206
|
+
* 如果是某个循环选项的8位短id,则是该循环选项的这次循环
|
|
10207
|
+
*/
|
|
10208
|
+
readonly loopRoundId?: string;
|
|
10209
|
+
/**
|
|
10210
|
+
* 同上,但针对内层循环
|
|
10211
|
+
*/
|
|
10212
|
+
readonly innerLoopNodeId?: string;
|
|
10213
|
+
/**
|
|
10214
|
+
* 同上,但针对内层循环
|
|
10215
|
+
*/
|
|
10216
|
+
readonly innerLoopRoundId?: string;
|
|
10224
10217
|
}
|
|
10225
10218
|
|
|
10226
10219
|
|
|
@@ -10381,7 +10374,7 @@ interface CFVarStyleGroup {
|
|
|
10381
10374
|
*/
|
|
10382
10375
|
readonly reqJson: CFVarStyle;
|
|
10383
10376
|
/**
|
|
10384
|
-
*
|
|
10377
|
+
* 循环仰视变量,对应var-loop
|
|
10385
10378
|
*/
|
|
10386
10379
|
readonly loopJson: CFVarStyle;
|
|
10387
10380
|
}
|