@choiceform/os-client-core 3.3.1 → 3.4.1

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
  */
@@ -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
  */
@@ -3885,63 +3937,27 @@ interface ICFSubjectNode
3885
3937
  * 矩阵项
3886
3938
  * 矩阵排布的时候代表矩阵项的每个网格
3887
3939
  */
3888
- interface CFMatrixItem extends CFOption {
3940
+ interface CFMatrixOption extends CFOption {
3889
3941
  /**
3890
- * 关联的纵选项ID
3891
- * @ignore
3942
+ * @ignore
3943
+ * json中携带的行选项id
3892
3944
  */
3893
3945
  readonly xid: string;
3894
3946
  /**
3895
- * 关联的行选项ID
3896
- * @ignore
3947
+ * @ignore
3948
+ * json中携带的列选项id
3897
3949
  */
3898
3950
  readonly yid: string;
3899
3951
  /**
3900
- * 自己的id
3901
- */
3902
- readonly uuid: string;
3903
- /**
3904
- * 关联的总选项文字
3905
- */
3906
- readonly xText: string;
3907
- /**
3908
- * 关联的行选项文字
3909
- */
3910
- readonly yText: string;
3911
- /**
3912
- * 关联的行选项排他编号
3913
- * @ignore
3914
- */
3915
- readonly yMutexNumber: number;
3916
- /**
3917
- * 关联的纵选项排他编号
3918
- * @ignore
3919
- */
3920
- readonly xMutexNumber: number;
3921
- /**
3922
- * 自己的文字
3923
- */
3924
- readonly text: string;
3925
- /**
3926
- * 纵选项编号
3927
- * @ignore
3928
- */
3929
- readonly xNumber: number;
3930
- /**
3931
- * 行选项编号
3932
- * @ignore
3933
- */
3934
- readonly yNumber: number;
3935
- /**
3936
- * 表头字符宽度???
3937
3952
  * @ignore
3953
+ * 根据yid重新关联的解析后的行选项
3938
3954
  */
3939
- readonly headLength?: number;
3955
+ readonly optionY: CFOption;
3940
3956
  /**
3941
- * 字符宽度???
3942
3957
  * @ignore
3958
+ * 根据xid重新关联的关联的列选项
3943
3959
  */
3944
- readonly length?: number;
3960
+ readonly optionX: CFOption;
3945
3961
  }
3946
3962
 
3947
3963
  /**
@@ -3951,12 +3967,7 @@ interface CFFlatItem {
3951
3967
  /**
3952
3968
  * 里层项目
3953
3969
  */
3954
- readonly list: CFMatrixItem[];
3955
- /**
3956
- * 字符宽度???
3957
- * @ignore
3958
- */
3959
- readonly length: number;
3970
+ readonly list: CFMatrixOption[];
3960
3971
  /**
3961
3972
  * 文字
3962
3973
  */
@@ -3972,18 +3983,13 @@ interface ICFMatrixNode extends ICFSubjectNode {
3972
3983
  * 矩阵方式的选项表
3973
3984
  * 先行后列
3974
3985
  */
3975
- readonly matrix: CFMatrixItem[][];
3986
+ readonly matrix: CFMatrixOption[][];
3976
3987
  /**
3977
3988
  * 适应动态展开方式的选项表
3978
3989
  * 看情况,如果是以行为主,则先行后列
3979
3990
  * 如果是以列为主,则先列后行
3980
3991
  */
3981
3992
  readonly flatten: CFFlatItem[];
3982
- /**
3983
- * 矩阵展示方式
3984
- * UI根据不同的类型,展示成不同的方格
3985
- */
3986
- readonly displayType: MATRIX_DISPLAY;
3987
3993
  /**
3988
3994
  * 列选项
3989
3995
  * @ignore
@@ -4536,7 +4542,7 @@ interface ICFStartNode extends ICFNode, ICFStartMiniState, ICFOutputNodeMixin, C
4536
4542
  * 循环节点
4537
4543
  * @ignore
4538
4544
  */
4539
- interface ICFLoopNode extends ICFInOutNodeMixin {
4545
+ interface ICFLoopNode extends ICFInOutNodeMixin , ICFOptNodeMixin {
4540
4546
  readonly loopEnd: ICFPort;
4541
4547
  readonly loopStart: ICFPort;
4542
4548
  }
@@ -4605,7 +4611,7 @@ interface ICFOptGroupNodeMixin extends ICFNode {
4605
4611
  * 选项分组设置,当题目上发现该属性时,放弃使用[[CFSubjectQuestion.options]],转而使用该属性的结构来渲染选项
4606
4612
  * 该属性是树形递归结构,
4607
4613
  * 虽然当前所有题目的类型上都有该属性,
4608
- * 但只有`选择题`,`图标选择题`,`图片选择题`,`分值打分题`,`图形打分题`,`填空题`,`权重题`等这几题需要支持组渲染
4614
+ * 但只有`选择题`,`图标选择题`,`图片选择题`,`拖拽打分题`,`图形打分题`,`填空题`,`数值分配题`等这几题需要支持组渲染
4609
4615
  *
4610
4616
  * 其他题目还是维持以前的状态。
4611
4617
  *
@@ -5043,8 +5049,13 @@ interface CFValidateOpt extends CFOption, CFValidateOptBase { }
5043
5049
 
5044
5050
  /**
5045
5051
  * 级联信息
5052
+ * @todo 有些数据能使用选项的,自己不要额外定义
5046
5053
  */
5047
5054
  interface CFCascade {
5055
+ /**
5056
+ * 菜单显示位置
5057
+ */
5058
+ readonly display: string;
5048
5059
  /**
5049
5060
  * 关联的选项
5050
5061
  */
@@ -5079,6 +5090,7 @@ interface CFCascade {
5079
5090
  readonly text?: string;
5080
5091
  /**
5081
5092
  * 是否被选中
5093
+ *
5082
5094
  */
5083
5095
  readonly selected: boolean;
5084
5096
  /**
@@ -5175,22 +5187,6 @@ interface CFOption extends ICFPort {
5175
5187
  * UI需要渲染该消息,让答题者知道为什么错了
5176
5188
  */
5177
5189
  readonly errorMessage: string;
5178
- /**
5179
- * @ignore
5180
- */
5181
- readonly _previewTransferred: boolean;
5182
- /**
5183
- * 原始索引
5184
- * @ignore
5185
- */
5186
- readonly index: number;
5187
- /**
5188
- * 展示后的真实索引,未展示的为负值.
5189
- * 因为选项可能被隐藏,索引需要保证真实索引
5190
- * 用于在随机顺序追随引用源时作为可靠的参考
5191
- * @ignore
5192
- */
5193
- readonly realIndex: number;
5194
5190
  /**
5195
5191
  * @ignore
5196
5192
  */
@@ -5320,7 +5316,7 @@ interface CFIconMarkOption extends CFOption {
5320
5316
  }
5321
5317
 
5322
5318
  /**
5323
- * 分值打分题选项
5319
+ * 拖拽打分题选项
5324
5320
  */
5325
5321
  interface CFValueMarkOption extends CFOption {
5326
5322
  /**
@@ -5489,10 +5485,7 @@ interface CFUploadOption extends CFOption, ICFUploadResult {
5489
5485
  readonly image: CFImageInNode;
5490
5486
  }
5491
5487
 
5492
- /**
5493
- * 图片热点选项
5494
- */
5495
- interface CFHotSpotOption extends CFOption {
5488
+ interface CFHotSpotGraph {
5496
5489
  /**
5497
5490
  * @ignore
5498
5491
  */
@@ -5501,6 +5494,10 @@ interface CFHotSpotOption extends CFOption {
5501
5494
  * @ignore
5502
5495
  */
5503
5496
  readonly y: number;
5497
+ /**
5498
+ * 唯一id
5499
+ */
5500
+ readonly uuid: string;
5504
5501
  /**
5505
5502
  * 偏移
5506
5503
  */
@@ -5510,11 +5507,7 @@ interface CFHotSpotOption extends CFOption {
5510
5507
  */
5511
5508
  readonly pathD: string;
5512
5509
  /**
5513
- * 颜色
5514
- */
5515
- readonly color: string;
5516
- /**
5517
- * @ignore
5510
+ * 图形区域,主要用于判断图形层级,图形区域小的应该在图形面积大的上方
5518
5511
  */
5519
5512
  readonly area: number;
5520
5513
  /**
@@ -5523,6 +5516,20 @@ interface CFHotSpotOption extends CFOption {
5523
5516
  points: { x: number; y: number }[];
5524
5517
  }
5525
5518
 
5519
+ /**
5520
+ * 图片热点选项
5521
+ */
5522
+ interface CFHotSpotOption extends CFOption {
5523
+ /**
5524
+ * 颜色
5525
+ */
5526
+ readonly color: string;
5527
+ /**
5528
+ * 图形列表
5529
+ */
5530
+ graphs: CFHotSpotGraph[]
5531
+ }
5532
+
5526
5533
  /**
5527
5534
  * 热图选项
5528
5535
  */
@@ -5549,46 +5556,6 @@ interface CFSequenceOption extends CFOption {
5549
5556
  readonly seqTarget: boolean;
5550
5557
  }
5551
5558
 
5552
- /**
5553
- * 矩阵选项
5554
- */
5555
- interface CFMatrixOption extends CFOption {
5556
- /**
5557
- * 列选项id
5558
- * @ignore
5559
- */
5560
- readonly xid?: string;
5561
- /**
5562
- * 行选项id
5563
- * @ignore
5564
- */
5565
- readonly yid?: string;
5566
- /**
5567
- * 行文字
5568
- */
5569
- readonly yText: string;
5570
- /**
5571
- * 列文字
5572
- */
5573
- readonly xText: string;
5574
- /**
5575
- * @ignore
5576
- */
5577
- readonly yNumber: number;
5578
- /**
5579
- * @ignore
5580
- */
5581
- readonly xNumber: number;
5582
- /**
5583
- * @ignore
5584
- */
5585
- readonly yMutexNumber: number;
5586
- /**
5587
- * @ignore
5588
- */
5589
- readonly xMutexNumber: number;
5590
- }
5591
-
5592
5559
  /**
5593
5560
  * 矩阵列选项
5594
5561
  */
@@ -5655,14 +5622,6 @@ interface ICFRefOption extends CFOption {
5655
5622
  * 关联的选项引用id
5656
5623
  */
5657
5624
  readonly referId: string;
5658
- /**
5659
- * 引用源的真实索引
5660
- */
5661
- readonly refIndex: number;
5662
- /**
5663
- * 引用源展示后的真实索引
5664
- */
5665
- readonly refRealIndex: number;
5666
5625
  }
5667
5626
 
5668
5627
  /**
@@ -5773,11 +5732,6 @@ interface CFQuestion extends ICFNode, ICFTypeInfo {
5773
5732
  * @ignore
5774
5733
  */
5775
5734
  readonly actions: ICFNodeAction[];
5776
- /**
5777
- * 刷新动态属性
5778
- * @ignore
5779
- */
5780
- dynamicNodeProps: () => void;
5781
5735
  /**
5782
5736
  * 是否已经被回复,包含了答案
5783
5737
  */
@@ -5963,11 +5917,11 @@ interface ICFFlatResult {
5963
5917
  /**
5964
5918
  * 网格矩阵
5965
5919
  */
5966
- readonly options: CFMatrixItem[];
5920
+ readonly options: CFMatrixOption[];
5967
5921
  /**
5968
5922
  * 全部矩阵网格
5969
5923
  */
5970
- readonly fullOptions: CFMatrixItem[];
5924
+ readonly fullOptions: CFMatrixOption[];
5971
5925
  }
5972
5926
 
5973
5927
  /**
@@ -5978,7 +5932,7 @@ interface ICFMatrixResult {
5978
5932
  /**
5979
5933
  * 矩阵
5980
5934
  */
5981
- readonly matrix: CFMatrixItem[][];
5935
+ readonly matrix: CFMatrixOption[][];
5982
5936
  }
5983
5937
 
5984
5938
  /**
@@ -6029,7 +5983,6 @@ interface CFSequenceQuestion extends CFSubjectQuestion {
6029
5983
  *
6030
5984
  * 或者使用[[CFMatrixQuestion.flatten]]渲染层级排布方式的选项
6031
5985
  *
6032
- * 使用哪种方式由[[CFMatrixQuestion.displayType]]决定
6033
5986
  *
6034
5987
  * 矩阵题的普通选项也是选择类型的,点击后调用[[CFUIEventHandler.handleOptionClick]]方法
6035
5988
  *
@@ -6162,12 +6115,12 @@ interface CFVerifyQuestion extends ICFValidateNode, CFQuestion {
6162
6115
  }
6163
6116
 
6164
6117
  /**
6165
- * 图片热点题
6118
+ * 图片框选题
6166
6119
  * 基本内容请参考选择题[[CFSelectQuestion]]
6167
- * 特殊点,图片热点题的选项不是以列表方式渲染的,而是以覆盖在图片上的区域点的方式渲染
6168
- * 图片热点题的选项是[[CFHotSpotOption]]类型
6120
+ * 特殊点,图片框选题的选项不是以列表方式渲染的,而是以覆盖在图片上的区域点的方式渲染
6121
+ * 图片框选题的选项是[[CFHotSpotOption]]类型
6169
6122
  *
6170
- * 渲染图片热点题的选项再渲染时,先使用[[CFHotSpotQuestion.mapImage]]渲染出底图.
6123
+ * 渲染图片框选题的选项再渲染时,先使用[[CFHotSpotQuestion.mapImage]]渲染出底图.
6171
6124
  *
6172
6125
  * 在根据每个选项的路径[[CFHotSpotOption.pathD]]和位置[[CFHotSpotOption.transform]]在底图上方绘制选项区域.
6173
6126
  *
@@ -6234,73 +6187,9 @@ interface CFFillQuestion extends ICFFillNode, CFSubjectQuestion {
6234
6187
  }
6235
6188
 
6236
6189
  /**
6237
- * 演示评价题
6190
+ * 连续评价题
6238
6191
  * 基本内容请参考选择题[[CFSelectQuestion]]
6239
- *
6240
- * 特殊点:演示评价题通过[[CFSlideRateQuestion.rateType]]属性区分有两种评分方式的UI:
6241
- *
6242
- * 1. slide-演示评价
6243
- *
6244
- * 它的普通选项不是直接以列表的方式展示出来,而是一页一个逐一展示出来的.
6245
- * 它的选项是[[CFSlideRateOption]]类型的数组
6246
- * 每次只渲染一个选项,选项中如有有文字和图片需要渲染
6247
- * 同时关注[[CFSlideRateQuestion.rateOptions]]属性,为该选项渲染出几个打分图形和打分文字.
6248
- * 每个图形和文字代表不同的分值,当答题者点击这些图形的时候就是为该选项评分
6249
- * 评分后需要调用[[CFUIEventHandler.handleOptionInput]]方法
6250
- *
6251
- * 需要进行分页控制:
6252
- * - 初始渲染[[CFSlideRateQuestion.currentOption]];
6253
- * - 渲染上一页,下一页按钮,点击后分别调用[[CFSlideRateQuestion.gotoNextOption]]方法
6254
- * 或[[CFSlideRateQuestion.gotoPrevOption]]方法要求核心包来切换当前选项,[[CFSlideRateQuestion.gotoOption]]跳转到指定的选项
6255
- * - 当前是几分之几项如:1/6,每次切任务后更新进度,当前索引可以到靠查询当前选项在总选项表中的位置获取到。
6256
- *
6257
- * 2. table-表格评价
6258
- *
6259
- * 使用[[CFSlideRateQuestion.options]]与[[CFSlideRateQuestion.rateOptions]]组成生成表格
6260
- * [[CFSlideRateQuestion.options]]当行,[[CFSlideRateQuestion.rateOptions]]当列。
6261
- *
6262
- * 比如下面的水果是选项,喜欢不喜欢是评价项,
6263
- * 这UI看起来和矩阵题的行列单选简直一模一样,但其实是个打分题,提交数据的结构和矩阵题是不一样的。
6264
- *
6265
- *
6266
- * | |非常不喜欢|比较不喜欢|一般|比较喜欢|非常喜欢|
6267
- * | :-: | :-: | :-: | :-: | :-: | :-: |
6268
- * | | 1 | 2 |3 | 4 | 5 |
6269
- * |苹果| ○ | ⊙ | ○ | ○ | ○ |
6270
- * |香蕉| ○ | ○ | ○ | ○ | ⊙ |
6271
- * |雪梨| ○ | ○ | ○ | ⊙ | ○ |
6272
- * |菠萝| ○ | ○ | ○ | ○ | ⊙ |
6273
- *
6274
- *
6275
- *
6276
- * 默认表头会显示两行,第一行是评价项的文字,第二行是评价项的分值
6277
- * 参照[[CFSlideRateQuestion.tableHead]]的值来控制表头的展示方式,有以下可能:
6278
- *
6279
- * + none: 不显示表头
6280
- * + text: 仅显示文字表头
6281
- * + value: 仅显示分值表头
6282
- * + text_value 同时显示文字表头和分值表头,文字表头在上。
6283
- *
6284
- *
6285
- * 点击某个网格时调用[[CFUIEventHandler.handleOptionInput]]方法
6286
- * 传入的分值就是该网格所在列对应的评价项的分值,传入的选项就是该网格所在的行所对应的选项。
6287
- *
6288
- * 渲染网格时检查网格所在行的选项的分值是否和网格所在列的评价项的分值一致,如果一致,则这个网格要被选中。
6289
- *
6290
- * 如果相邻的评价项是一样的(包含都是空字符串的情况)则相邻的的文字表头网格需要合并
6291
- *
6292
- * 如:五个评价项的文字分别是 讨厌-无感-无感-无感-喜欢,则中间三个无感要合并成一个单元格
6293
- *
6294
- * 分值表头则不需要合并
6295
- *
6296
- * 表格评价模式下表头和选项的文字中可能有富文本,需要能支持。
6297
- *
6298
- * 表格评价模式下选项的图片和评价项的图标无视掉,无需支持。
6299
- *
6300
- * 这个情况一般是在较大屏上使用,简单起见对小屏的是适配暂无要求
6301
- * 如果在手机上存在评价项较多即使尽量挤压也在水平方向上显示不下的情况,
6302
- * 这时候让它自动超出屏幕触发系统滚动条也是可以的。
6303
- *
6192
+ *
6304
6193
  * 其他选项的渲染方式和选择题一样
6305
6194
  *
6306
6195
  */
@@ -6329,10 +6218,6 @@ interface CFSlideRateQuestion extends ICFSlideRateNode, CFSubjectQuestion {
6329
6218
  * 切换到指定选项
6330
6219
  */
6331
6220
  gotoOption(option: CFSlideRateOption): void;
6332
- /**
6333
- * 评价UI展示方式
6334
- */
6335
- readonly rateType: SLIDE_RATE_TYPE;
6336
6221
  /**
6337
6222
  * 表格评价时的表头展示方式
6338
6223
  */
@@ -6340,11 +6225,11 @@ interface CFSlideRateQuestion extends ICFSlideRateNode, CFSubjectQuestion {
6340
6225
  }
6341
6226
 
6342
6227
  /**
6343
- * 权重题
6228
+ * 数值分配题
6344
6229
  *
6345
6230
  * 基本内容请参考选择题[[CFSelectQuestion]]
6346
6231
  *
6347
- * 特殊点:权重题的普通选项要以可评分的方式渲染出来,输入框输入分值,或滑杆拖动输入分值等等都可,UI自行决定.
6232
+ * 特殊点:数值分配题的普通选项要以可评分的方式渲染出来,输入框输入分值,或滑杆拖动输入分值等等都可,UI自行决定.
6348
6233
  *
6349
6234
  * 当输入分值后,需要调用[[CFUIEventHandler.handleOptionInput]]方法
6350
6235
  *
@@ -6392,10 +6277,10 @@ interface CFWeightQuestion extends CFSubjectQuestion {
6392
6277
 
6393
6278
 
6394
6279
  /**
6395
- * 分值打分题
6280
+ * 拖拽打分题
6396
6281
  * 基本内容请参考选择题[[CFSelectQuestion]]
6397
6282
  *
6398
- * 特殊点:分值打分题的每个选项是用于评分的,一般渲染一个滑杆让答题者拖动滑杆评分
6283
+ * 特殊点:拖拽打分题的每个选项是用于评分的,一般渲染一个滑杆让答题者拖动滑杆评分
6399
6284
  * 选项是[[CFValueMarkOption]]类型,其中定义了最大分支,最小分值限制,每次拖动滑杆时的分值步进
6400
6285
  * 还有最大分值描述,和最小分值描述,这些内容可以选择性的渲染.
6401
6286
  * 答题者给选项评分后需要回调[[CFUIEventHandler.handleOptionInput]]方法
@@ -6575,7 +6460,7 @@ interface CFCascadeQuestion extends ICFCascadeNode, CFSubjectQuestion {
6575
6460
  }
6576
6461
 
6577
6462
  /**
6578
- * 描述节点
6463
+ * 素材展示页面
6579
6464
  *
6580
6465
  * 没有选项,其他方面同选择题[[CFSelectQuestion]]
6581
6466
  *
@@ -6879,15 +6764,15 @@ interface CFMaxDiffTask {
6879
6764
  }
6880
6765
 
6881
6766
  /**
6882
- * 最大差分题
6767
+ * MaxDiff问题
6883
6768
  * 基本内容请参考选择题[[CFSelectQuestion]]
6884
6769
  *
6885
6770
  * 特殊点:
6886
6771
  *
6887
6772
  *
6888
- * 最大差分题不直接渲染选项,而是渲染任务:其中总任务列表时[[CFMaxDiffQuestion.tasks]],不直接渲染这个列表,
6773
+ * MaxDiff问题不直接渲染选项,而是渲染任务:其中总任务列表时[[CFMaxDiffQuestion.tasks]],不直接渲染这个列表,
6889
6774
  *
6890
- * 而是像演示评价题一样一次只显示一个任务卡片[[CFMaxDiffQuestion.currentTask]]。
6775
+ * 而是像连续评价题一样一次只显示一个任务卡片[[CFMaxDiffQuestion.currentTask]]。
6891
6776
  *
6892
6777
  * 卡片展示成下面这样:
6893
6778
  *
@@ -6908,14 +6793,14 @@ interface CFMaxDiffTask {
6908
6793
  *
6909
6794
  * 渲染的时候也是当[[CFMaxDiffTaskItem.value]]为1时,左侧checkbox被选中,如果为-1时,右侧checkbox被选中。
6910
6795
  *
6911
- * 由于一个最大差分题包含多一个任务页,所以需要提供切换任务的功能
6796
+ * 由于一个MaxDiff问题包含多一个任务页,所以需要提供切换任务的功能
6912
6797
  *
6913
6798
  * 1. 渲染当前[[CFMaxDiffQuestion.currentTask]]任务卡片
6914
6799
  *
6915
6800
  * 2. 渲染`上一页`,`下一页`按钮,点击后分别调用[[CFMaxDiffQuestion.gotoPrevTask]]方法或[[CFMaxDiffQuestion.gotoNextTask]]方法来要求
6916
6801
  * 核心包切换当前任务, [[CFMaxDiffQuestion.gotoTask]]跳转到指定的任务。
6917
6802
  *
6918
- * 3. 同时像演示评价题一样显示当前是几分之几项如:1/6,每次切任务后更新进度。当前索引可以到靠查询当前任务在总任务中的位置获取到。
6803
+ * 3. 同时像连续评价题一样显示当前是几分之几项如:1/6,每次切任务后更新进度。当前索引可以到靠查询当前任务在总任务中的位置获取到。
6919
6804
  *
6920
6805
  */
6921
6806
  interface CFMaxDiffQuestion extends CFSubjectQuestion, ICFMaxDiffNode {
@@ -6954,9 +6839,9 @@ interface ICFDataHub extends ICFSubjectNode, CFSubjectQuestion {
6954
6839
  * 虚拟循环题
6955
6840
  * @ignore
6956
6841
  */
6957
- interface ICFLoopHub extends ICFLoopNode, CFQuestion {
6842
+ interface ICFLoopHub extends ICFLoopNode, CFQuestion , ICFOptNodeMixin{
6958
6843
  /**
6959
- * 包含的循环变量列表
6844
+ * 包含的循环仰视变量列表
6960
6845
  */
6961
6846
  readonly varList: ICFLoopVar[];
6962
6847
  }
@@ -7567,6 +7452,7 @@ interface ICFLotteryResult {
7567
7452
  interface ICFRewardResult {
7568
7453
  readonly recipient?: CFUserInfo;
7569
7454
  gift?: {
7455
+ readonly locale: string;
7570
7456
  readonly id: string;
7571
7457
  readonly title: string;
7572
7458
  readonly description: string;
@@ -7675,6 +7561,8 @@ interface ICFRewardInfo extends ICFGiftNode, ICFLotteryResult, ICFCustomLogo {
7675
7561
  readonly activityName: string;
7676
7562
 
7677
7563
  readonly summary: string;
7564
+
7565
+ readonly language: string;
7678
7566
  }
7679
7567
 
7680
7568
  /**
@@ -8216,20 +8104,13 @@ interface CFSurveyState
8216
8104
  * @ignore
8217
8105
  */
8218
8106
  readonly resumeEnabled: boolean;
8107
+
8108
+
8219
8109
  /**
8220
- * 单页的时候方便获取到第一个题目
8221
- * @ignore
8222
- */
8223
- first: () => CFQuestion;
8224
- /**
8225
- * 单页的时候方便获取到最后一个题目
8226
- * @ignore
8227
- */
8228
- last: () => CFQuestion;
8229
- /**
8230
- * @ignore
8110
+ * 是否需要以表格的方式渲染问题,
8111
+ * 这个的优先级比 nodes 的要高
8231
8112
  */
8232
- dynamicStateProps: () => Promise<void>;
8113
+ groupTable?: ISinglePageGroupTable
8233
8114
  }
8234
8115
 
8235
8116
 
@@ -8341,6 +8222,10 @@ interface CFLangTableItem {
8341
8222
  * 语言名称
8342
8223
  */
8343
8224
  readonly value: string;
8225
+ /**
8226
+ * 语言方向,不指定则认为是ltr
8227
+ */
8228
+ direction?: 'rtl' | 'ltr'
8344
8229
  }
8345
8230
 
8346
8231
  /**
@@ -8964,6 +8849,10 @@ interface CFPreviewTimeDisplay {
8964
8849
  * 节点名称
8965
8850
  */
8966
8851
  readonly name: string;
8852
+ /**
8853
+ * 唯一渲染id
8854
+ */
8855
+ readonly renderId: string;
8967
8856
  /**
8968
8857
  * 节点描述
8969
8858
  */
@@ -9353,7 +9242,7 @@ interface ICFQuestionCache {
9353
9242
  readonly failedSkipActivated: boolean;
9354
9243
  readonly tasks: ICFMaxDiffTaskCache[];
9355
9244
  /**
9356
- * 最大差分题和演示评价题当前任务索引
9245
+ * MaxDiff问题和连续评价题当前任务索引
9357
9246
  */
9358
9247
  readonly currentTaskIndex: number;
9359
9248
  readonly rankList: string[];
@@ -9417,28 +9306,6 @@ type CFQuestionInputData = string | CFValidateData | CFMapLocation | ICoords;
9417
9306
  */
9418
9307
  type CFOptionInputData = string | number | ICFUploadResult | null;
9419
9308
 
9420
- /**
9421
- * 级联菜单点击后
9422
- */
9423
- interface CFCascadeClickResult {
9424
- /**
9425
- * 传入的选中文字列表
9426
- */
9427
- readonly resultList: string[];
9428
- /**
9429
- * 级联列表
9430
- */
9431
- readonly list: CFCascade[];
9432
- /**
9433
- * 经逻辑层计算后返回的结果文字列表
9434
- */
9435
- readonly result?: string[];
9436
- /**
9437
- * 所在级联组
9438
- */
9439
- readonly group: CFCascade;
9440
- }
9441
-
9442
9309
  /**
9443
9310
  * UI端进行某些操作是需要进行回调的回调函数规格集合
9444
9311
  */
@@ -9476,14 +9343,11 @@ interface CFUIEventHandler {
9476
9343
 
9477
9344
  /**
9478
9345
  * 选项点击回调,适用题型:
9479
- * 选择题/图标题/图片选择题/矩阵题/图片热点题/图片上传题点击上传
9480
- * 用户信息题
9481
- * 对于级联题,如果你的渲染机制中更容易正确组装一个[[CFCascadeClickResult]]数据,则调用该方法
9482
- * 如果你的渲染机制中更容易找到当前点击的项目索引,也可以调用[[CFUIEventHandler.handleCascadeClick]]方法
9346
+ * 选择题/图标题/图片选择题/矩阵题/图片框选题/图片上传题点击上传
9483
9347
  * @param option 点击的选项
9484
9348
  * @param question 所在题目
9485
9349
  */
9486
- handleOptionClick?(option: CFOption | CFCascadeClickResult, question: CFQuestion): Promise<void>;
9350
+ handleOptionClick?(option: CFOption, question: CFQuestion): Promise<void>;
9487
9351
 
9488
9352
  /**
9489
9353
  * 菜单项选择变化回调,适用题型:菜单题
@@ -9504,7 +9368,7 @@ interface CFUIEventHandler {
9504
9368
  index: number,
9505
9369
  cascade: CFCascade,
9506
9370
  question: CFCascadeQuestion
9507
- ): Promise<string[]>;
9371
+ ): Promise<void>;
9508
9372
 
9509
9373
  /**
9510
9374
  * 级联菜单项被输入时的回调,适用题型:级联菜单题
@@ -9528,7 +9392,7 @@ interface CFUIEventHandler {
9528
9392
  handleGetCodeClick?(question: CFQuestion): Promise<void>;
9529
9393
 
9530
9394
  /**
9531
- * 选项输入回调函数:适用题目填空题,打分题,权重题,演示评价题,上传题,输入方式排序或挑选方式排序的排序题以及有其他选项需要输入的题型
9395
+ * 选项输入回调函数:适用题目填空题,打分题,数值分配题,连续评价题,上传题,输入方式排序或挑选方式排序的排序题以及有其他选项需要输入的题型
9532
9396
  * 对与挑选排序的排序题,如果是要放弃序号,data参数传入-1即可
9533
9397
  * @param data 输入的数据
9534
9398
  * @param option 所在的选项
@@ -9603,7 +9467,7 @@ interface CFUIEventHandler {
9603
9467
  sortTargetOpt: CFSequenceOption,
9604
9468
  ): Promise<void>;
9605
9469
  /**
9606
- * 最大差分题评分后的回调
9470
+ * MaxDiff问题评分后的回调
9607
9471
  * @param value 分值,只能是-1或者1
9608
9472
  * @param item 被评价的项目
9609
9473
  * @param task 关联的任务
@@ -10096,9 +9960,9 @@ interface ICFVarInfo extends ICFVarDetail, ICFVarRaw, ICFVarPart {
10096
9960
  */
10097
9961
  readonly optionFilter?: ICFVarPart;
10098
9962
  /**
10099
- * 关联循环节点的id
9963
+ * 循环仰视变量关联循环节点的id
10100
9964
  */
10101
- readonly loopNodeId?: string;
9965
+ readonly lookupLoopNodeId?: string;
10102
9966
  /**
10103
9967
  * 用于变量映射表中匹配变量的映射id,一般有uuid,limit,limitSrc,limitRnd拼接而成
10104
9968
  */
@@ -10107,6 +9971,20 @@ interface ICFVarInfo extends ICFVarDetail, ICFVarRaw, ICFVarPart {
10107
9971
  readonly inEdist?: boolean;
10108
9972
  }
10109
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
+ }
10110
9988
  /**
10111
9989
  * @ignore
10112
9990
  */
@@ -10318,6 +10196,24 @@ interface IRawVarIdentity {
10318
10196
  * 选项数据分部id
10319
10197
  */
10320
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;
10321
10217
  }
10322
10218
 
10323
10219
 
@@ -10478,7 +10374,7 @@ interface CFVarStyleGroup {
10478
10374
  */
10479
10375
  readonly reqJson: CFVarStyle;
10480
10376
  /**
10481
- * 循环变量,对应var-loop
10377
+ * 循环仰视变量,对应var-loop
10482
10378
  */
10483
10379
  readonly loopJson: CFVarStyle;
10484
10380
  }