@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/index.d.ts CHANGED
@@ -166,18 +166,27 @@ interface CFEnvSystem {
166
166
  * 生成一个div
167
167
  * 举例,web端提供的该方法为如下,其他端需要使用兼容的方式提供
168
168
  * ```typescript
169
- * function parseHtml(html?:string):HTMLElement {
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(html:string):Text {
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 lang 语言代号:zh_cn/en_us/ja_jp格式
504
+ * @param langItem
496
505
  */
497
- onLangChange?(lang: string): void;
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 = 'span',
1512
+ SPAN = 'SPAN',
1504
1513
  /**
1505
1514
  * div
1506
1515
  */
1507
- DIV = 'div',
1516
+ DIV = 'DIV',
1508
1517
  /**
1509
1518
  * script
1510
1519
  */
1511
- SCRIPT = 'script',
1520
+ SCRIPT = 'SCRIPT',
1512
1521
  /**
1513
1522
  * ol
1514
1523
  */
1515
- OL = 'ol',
1524
+ OL = 'OL',
1516
1525
  /**
1517
1526
  * ul
1518
1527
  */
1519
- UL = 'ul',
1528
+ UL = 'UL',
1520
1529
  /**
1521
1530
  * br
1522
1531
  */
1523
- BR = '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 realNodeName: string;
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
- * 图片热点题的选项是[[CFHotSpotOption]]类型
6120
+ * 特殊点,图片框选题的选项不是以列表方式渲染的,而是以覆盖在图片上的区域点的方式渲染
6121
+ * 图片框选题的选项是[[CFHotSpotOption]]类型
6094
6122
  *
6095
- * 渲染图片热点题的选项再渲染时,先使用[[CFHotSpotQuestion.mapImage]]渲染出底图.
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
- * 特殊点:权重题的普通选项要以可评分的方式渲染出来,输入框输入分值,或滑杆拖动输入分值等等都可,UI自行决定.
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
- * 最大差分题不直接渲染选项,而是渲染任务:其中总任务列表时[[CFMaxDiffQuestion.tasks]],不直接渲染这个列表,
6773
+ * MaxDiff问题不直接渲染选项,而是渲染任务:其中总任务列表时[[CFMaxDiffQuestion.tasks]],不直接渲染这个列表,
6814
6774
  *
6815
- * 而是像演示评价题一样一次只显示一个任务卡片[[CFMaxDiffQuestion.currentTask]]。
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. 同时像演示评价题一样显示当前是几分之几项如:1/6,每次切任务后更新进度。当前索引可以到靠查询当前任务在总任务中的位置获取到。
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
- * @ignore
8150
- */
8151
- first: () => CFQuestion;
8152
- /**
8153
- * 单页的时候方便获取到最后一个题目
8154
- * @ignore
8155
- */
8156
- last: () => CFQuestion;
8157
- /**
8158
- * @ignore
8110
+ * 是否需要以表格的方式渲染问题,
8111
+ * 这个的优先级比 nodes 的要高
8159
8112
  */
8160
- dynamicStateProps: () => Promise<void>;
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
- * 关联循环节点的id
9963
+ * 循环仰视变量关联循环节点的id
10003
9964
  */
10004
- readonly loopNodeId?: string;
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
- * 循环变量,对应var-loop
10377
+ * 循环仰视变量,对应var-loop
10385
10378
  */
10386
10379
  readonly loopJson: CFVarStyle;
10387
10380
  }