@choiceform/os-client-core 3.6.49 → 3.6.50
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/dist/core.js +1 -1
- package/dist/web-core.js +1 -1
- package/index.d.ts +527 -523
- package/package.json +1 -1
package/index.d.ts
CHANGED
@@ -588,529 +588,533 @@ interface CCEnvOptions {
|
|
588
588
|
|
589
589
|
// -------------- types/outer/config/setup.d.ts ---------------
|
590
590
|
|
591
|
-
//#region 核心与核心初始化配置相关说明
|
592
|
-
/**
|
593
|
-
* 服务配置信息
|
594
|
-
*/
|
595
|
-
interface CCHostConfig {
|
596
|
-
/**
|
597
|
-
* logo名称
|
598
|
-
*/
|
599
|
-
LOGO_NAME: string;
|
600
|
-
/**
|
601
|
-
* 操作记录接口地址
|
602
|
-
*/
|
603
|
-
recordUrl: string;
|
604
|
-
/**
|
605
|
-
* 主服务接口主机地址
|
606
|
-
*/
|
607
|
-
host: string;
|
608
|
-
/**
|
609
|
-
* web socket服务主机地址
|
610
|
-
*/
|
611
|
-
wsHost: string;
|
612
|
-
/**
|
613
|
-
* cdn资源主机地址
|
614
|
-
*/
|
615
|
-
cdnHost: string;
|
616
|
-
/**
|
617
|
-
* 媒体资源地址
|
618
|
-
*/
|
619
|
-
mediaHost: string;
|
620
|
-
/**
|
621
|
-
* 公共资源主机地址
|
622
|
-
*/
|
623
|
-
publicHost: string;
|
624
|
-
/**
|
625
|
-
* client端接口地址
|
626
|
-
*/
|
627
|
-
qApiHost?: string;
|
628
|
-
/**
|
629
|
-
* client通用静态资源地址
|
630
|
-
*/
|
631
|
-
qStaticHost?: string;
|
632
|
-
}
|
633
|
-
|
634
|
-
interface CCLoadRetry {
|
635
|
-
status: 'wait-retry' | 'retrying' | '';
|
636
|
-
onRetry?: Function;
|
637
|
-
}
|
638
|
-
|
639
|
-
/**
|
640
|
-
* 客户端初始化配置信息
|
641
|
-
*/
|
642
|
-
interface CCSetupOptions {
|
643
|
-
/**
|
644
|
-
* 答题程序所在的根据路由位置,
|
645
|
-
* 一般用location.origin即可
|
646
|
-
* 但是如果程序是深层路由中,则一定要指定具体的位置,
|
647
|
-
* 核心包需要依赖此进行路由跳转时避免跑到上层路径中
|
648
|
-
*/
|
649
|
-
appRoot: string;
|
650
|
-
/**
|
651
|
-
* 指定该客户端是不是动态加载模板的
|
652
|
-
* 对支持动态加载的客户端,核心会尝试去动态模板服务器上加载动态的模板。
|
653
|
-
* 当前只有web版客户端有可能支持动态模板功能,小程序和本地应用不支持该功能,所以无需配置。
|
654
|
-
* 默认:false
|
655
|
-
*/
|
656
|
-
dynamic?: boolean;
|
657
|
-
/**
|
658
|
-
* 动态加载的模板文件夹所在路径
|
659
|
-
* 如果是动态加载的,则一定要准备好该属性,
|
660
|
-
* 核心会去这个路径寻找动态模板文件,
|
661
|
-
* 如果dynamic属性指定为true,而不提供这个路径,初始化时会报错。
|
662
|
-
* 当前只有web版客户端有可能支持动态模板功能,小程序和本地应用不支持该功能,所以无需配置。
|
663
|
-
* 默认:空字符串
|
664
|
-
*/
|
665
|
-
templatePath?: string;
|
666
|
-
/**
|
667
|
-
* 模板树所在地址,如果指定一定要指定根目录开始的绝对路径。
|
668
|
-
* 如果是动态加载的,则一定要准备好该属性
|
669
|
-
* 核心会去获取这个文件来了解动态模板的依赖情况,
|
670
|
-
* 如果dynamic属性指定为true,而不提供这个路径,初始化时会报错。
|
671
|
-
* 当前只有web版客户端有可能支持动态模板功能,小程序和本地应用不支持该功能,所以无需配置。
|
672
|
-
* 默认:/tree.json
|
673
|
-
*/
|
674
|
-
treeUrl?: string;
|
675
|
-
/**
|
676
|
-
* 是否要使用wx sdk
|
677
|
-
* 当前只有web版可能支持,小程序和本地应用不支持该功能,所以无需配置。
|
678
|
-
* 默认:false
|
679
|
-
*/
|
680
|
-
useWxSdk?: boolean;
|
681
|
-
/**
|
682
|
-
* os-client的开发者凭证,这是个保留属性,暂时可以不设置
|
683
|
-
* 默认:空字符串
|
684
|
-
*/
|
685
|
-
key?: string;
|
686
|
-
/**
|
687
|
-
* 资源访问地址配置
|
688
|
-
* 默认情况下都指向正式环境服务器的资源地址,如果想访问其他服务器的资源
|
689
|
-
* 则需要重写该配置,详情请看每个具体的属性说明
|
690
|
-
* 默认:正式环境服务的资源地址
|
691
|
-
*/
|
692
|
-
hostConfig?: CCHostConfig;
|
693
|
-
/**
|
694
|
-
* 如果有配置该方法,问卷主题发生变化时,该方法会被调用。
|
695
|
-
* 然后可以做一些自定义的事情。
|
696
|
-
* 不支持系统主题的客户端不需要配置这个方法
|
697
|
-
* 默认行为:什么也不做
|
698
|
-
* @param theme 变化后的主题内容
|
699
|
-
*/
|
700
|
-
setTheme?(theme: CFPDGlobalThemeBack): void;
|
701
|
-
/**
|
702
|
-
* 常规消息提示方法,如果一道必答题还没有进行作答就点击下一题按钮
|
703
|
-
* 这时候不会进入下一题,而是会发出类似”必须作答“这样的提示消息,
|
704
|
-
* 通过配置该方法来决定如何在UI中展示这些提示消息。
|
705
|
-
*
|
706
|
-
* @param message 消息内容
|
707
|
-
*/
|
708
|
-
notify(message: string): void;
|
709
|
-
/**
|
710
|
-
* 弹框方式提示消息,比提示消息更重要一些,需要弹框,并且用户点击后才消失
|
711
|
-
* @param message
|
712
|
-
*/
|
713
|
-
alert(message: string): void;
|
714
|
-
/**
|
715
|
-
* 严重错误消息提示方法
|
716
|
-
* 如尝试下载某份问卷进行作答,但这份问卷已经下线,则不会得到问卷内容
|
717
|
-
* 而是会发出一个类似”问卷已下线“的错误消息
|
718
|
-
* 通过配置该方法来决定如何在UI中展示这些错误消息。
|
719
|
-
* 发生任何错误后,不允许继续操作。
|
720
|
-
* @param message 错误内容
|
721
|
-
*/
|
722
|
-
error(message: string): void;
|
723
|
-
/**
|
724
|
-
* 加载因失败次数挂起的提示
|
725
|
-
* @param data 消息,如果有内容说明加载失败,等待用户手动重试,如果没有内容,则说明重试后加载成功
|
726
|
-
*/
|
727
|
-
markLoadRetry(data: CCLoadRetry): void;
|
728
|
-
/**
|
729
|
-
* 上传日志的方法,核心包运行时会生成一些有利于追踪已知错误的日志,希望能通过这个方法上传。
|
730
|
-
* 如果不设置则不会上传错误。而是在控制台打印出来
|
731
|
-
* 配合 os-client-live 的 sentry 相关设置, level 为 'warning' 时,信息会被上报到 sentry 平台
|
732
|
-
* @param message
|
733
|
-
* @param level
|
734
|
-
*/
|
735
|
-
uploadLog?(message: string, level?: 'log' | 'error' | 'warning'): void;
|
736
|
-
/**
|
737
|
-
* 如果在单页模式中有很多题目,进行作答后点击下一题,其中某道题目的答案不满足要求,
|
738
|
-
* 这时候可能这道题目不再滚动条所在的可见范围内,
|
739
|
-
* 通过配置该方法,可以自定义定位错误的方式。
|
740
|
-
* 第一个参数中有一个[[CFValidateResult.dueToNode]]属性,找到该题目,定位其位置。
|
741
|
-
* 比如:可以移动滚动条到有错误的题目位置。
|
742
|
-
* 注意这个方法只需用来定位有错误的题目,至于题目中有什么错误,不归这里管,那个归题目渲染模板管。
|
743
|
-
* 默认行为:什么都不做
|
744
|
-
* @param result 错误信息
|
745
|
-
* @param state 总状态
|
746
|
-
*/
|
747
|
-
locateError?(result: CCIValidateResult, state: CCSurveyState): void;
|
748
|
-
/**
|
749
|
-
* 如果觉得核心包中逻辑相关的提示文字多语言翻译不满足你的要求,或者支持的语言不够多
|
750
|
-
* 你可以配置该属性指定使用自己准备的翻译文本,这个配置的每个属性的属性名是语言代号,
|
751
|
-
* 其属性值是该语言翻译文本对象
|
752
|
-
* 比如,核心模块当前仅提供了中文(zh_cn)和英文(en_us)的多语言
|
753
|
-
* 现在你对核心模块的中文翻译是满意的但是对核心模块的英文的翻译内容不满意,
|
754
|
-
* 这样你就可以配置该属性如下内容
|
755
|
-
*
|
756
|
-
* ```
|
757
|
-
* {
|
758
|
-
* en_us: {...}
|
759
|
-
* }
|
760
|
-
* ```
|
761
|
-
* 以上配置会覆盖掉默认的英文翻译,当进行英文翻译时,会只用你提供的这个对象作为翻译依据,
|
762
|
-
* 核心模块提供的英文翻译会被丢弃
|
763
|
-
*
|
764
|
-
* 如果在此基础上,同时你希望有日文版的多语言翻译,这时你可以添加配置日文翻译文本
|
765
|
-
* ```
|
766
|
-
* {
|
767
|
-
* en_us: {...}
|
768
|
-
* ja_jp: {...}
|
769
|
-
* }
|
770
|
-
* ```
|
771
|
-
* 以上的配置覆盖了英文翻译,同时新增了日文翻译。
|
772
|
-
*
|
773
|
-
* 每个json对象要准备的数据格式在[[LANG_ZH_CN]]中做出了示范.
|
774
|
-
*
|
775
|
-
* 各种语言的代号可参照[百科全书](https://en.wikipedia.org/wiki/Language_localisation)
|
776
|
-
*
|
777
|
-
* 我们统一使用`xx_xx`小写字母加下划线形式的代号
|
778
|
-
*
|
779
|
-
* 默认值:空
|
780
|
-
*/
|
781
|
-
langSrcMap?: { [key: string]: any };
|
782
|
-
|
783
|
-
/**
|
784
|
-
* 设置该方法来监听核心包的多语言变化,当核心包多语言切换时,会调用该方法
|
785
|
-
* UI程序中监听到这个变化后也要切换多语言
|
786
|
-
* 才能做到核心包提示的信息和UI组件中自己的显示内容使用了同一种语言
|
787
|
-
* 不支持多语言的客户端可以不配置这个方法
|
788
|
-
* 默认行为:什么都不做
|
789
|
-
* @param key 变化后的语言代号,如zh_cn,
|
790
|
-
*/
|
791
|
-
setLocale?(key: string): void;
|
792
|
-
/**
|
793
|
-
* 自定义中断回调方法
|
794
|
-
* 当核心包中运行发生异常,或者需要去往外部程序时,会中断答题流程,同时触发调用这个方法
|
795
|
-
* 客户端中可以配置该方法来在此时机做一些自定义的事情。
|
796
|
-
* 默认行为:总是会在方法被调用的一秒内压制系统消息
|
797
|
-
*/
|
798
|
-
customAbort?(): void;
|
799
|
-
/**
|
800
|
-
* 自定义的去往开始页面方法,只有使用web核心包是需要关注这个方法
|
801
|
-
*
|
802
|
-
* 非web核心包使用者无需配置该方法。
|
803
|
-
*
|
804
|
-
* web定制核心包中配置的页面切换方法是使用的浏览器原始location.replace方法实现的
|
805
|
-
* 当使用了单页引用页面的框架实现web客户端时,原生的跳转方法可能会导致页面刷新,使得单页应用的状态丢失。
|
806
|
-
* 而不同的框架在单页面内控制路由控制的方式是不一样的,所以需要用该方法提供。
|
807
|
-
*
|
808
|
-
* 默认行为:浏览器原生location.replace跳转
|
809
|
-
* @param routeParam 路由信息
|
810
|
-
*/
|
811
|
-
switchRoute?(routeParam: CCRouteSwitchParam): void;
|
812
|
-
}
|
813
|
-
|
814
|
-
/**
|
815
|
-
* 路由跳转参数,仅web端需要关注
|
816
|
-
* 传入参数就是该类型
|
817
|
-
*/
|
818
|
-
interface CCRouteSwitchParam {
|
819
|
-
/**
|
820
|
-
* 完整的URL
|
821
|
-
*/
|
822
|
-
url: string;
|
823
|
-
/**
|
824
|
-
* 路由路径
|
825
|
-
*/
|
826
|
-
route: string;
|
827
|
-
/**
|
828
|
-
* 从URL主机根目录开始的路由部分内容
|
829
|
-
*/
|
830
|
-
tail: string;
|
831
|
-
/**
|
832
|
-
* 全部的查询参数对象
|
833
|
-
*/
|
834
|
-
params: CCQueryParams;
|
835
|
-
}
|
836
|
-
|
837
|
-
/**
|
838
|
-
* 已完成选项概要信息
|
839
|
-
*/
|
840
|
-
interface CCTaskOption {
|
841
|
-
/**
|
842
|
-
* 选项文字
|
843
|
-
*/
|
844
|
-
text: string;
|
845
|
-
/**
|
846
|
-
* 选项输入内容,只有输入型的选项才有
|
847
|
-
*/
|
848
|
-
value?: string;
|
849
|
-
}
|
850
|
-
|
851
|
-
/**
|
852
|
-
* 已完成节点概要信息
|
853
|
-
*/
|
854
|
-
interface CCTaskNode {
|
855
|
-
/**
|
856
|
-
* 题目标题,优先使用问题文字,其实用问题编号
|
857
|
-
*/
|
858
|
-
title: string;
|
859
|
-
/**
|
860
|
-
* 题目描述
|
861
|
-
*/
|
862
|
-
description: string;
|
863
|
-
/**
|
864
|
-
* 直接放在题目上的答案信息,不同题目内容不同:
|
865
|
-
* 手动定位题:手选的位置信息
|
866
|
-
* 自动定位题:定位的位置信息
|
867
|
-
*/
|
868
|
-
value?: string;
|
869
|
-
/**
|
870
|
-
* 放在选项中的答案
|
871
|
-
*/
|
872
|
-
options?: CCTaskOption[];
|
873
|
-
}
|
874
|
-
|
875
|
-
/**
|
876
|
-
* 答题任务进展情况数据
|
877
|
-
*/
|
878
|
-
interface CCTaskInfo {
|
879
|
-
/**
|
880
|
-
* 进度
|
881
|
-
*/
|
882
|
-
progress: number;
|
883
|
-
/**
|
884
|
-
* 原始的结果
|
885
|
-
*/
|
886
|
-
result: CCIResult;
|
887
|
-
/**
|
888
|
-
* 任务概览信息,比起的原始结果来更多一些描述信息,方便查看
|
889
|
-
*/
|
890
|
-
nodes: CCTaskNode[];
|
891
|
-
}
|
892
|
-
|
893
|
-
/**
|
894
|
-
* 核心中暴露的一些辅助工具方法
|
895
|
-
*/
|
896
|
-
interface CCUtil {
|
897
|
-
/**
|
898
|
-
* 将JSON样式配置转成css样式
|
899
|
-
* @param varStyle
|
900
|
-
*/
|
901
|
-
convertVarStyle(varStyle: CFPDRichTextStyle): string;
|
902
|
-
/**
|
903
|
-
* 获取当前答题任务已完成的概要信息
|
904
|
-
*/
|
905
|
-
getTaskInfo(): Promise<CCTaskInfo>;
|
906
|
-
/**
|
907
|
-
* 获取一道题目的答案
|
908
|
-
* @param node 题目
|
909
|
-
*/
|
910
|
-
getAnswer(node: CCBQuestionNode): CCIAnswer;
|
911
|
-
/**
|
912
|
-
* 初始化变量依赖信息
|
913
|
-
* @param depends
|
914
|
-
*/
|
915
|
-
initVarDepends(depends: CCIVarRelatedDependency): void;
|
916
|
-
/**
|
917
|
-
* 为开始状态中添加动态内容
|
918
|
-
*/
|
919
|
-
addStartStateDynamics(state: CCStartState): void;
|
920
|
-
/**
|
921
|
-
* 为问卷状态中的添加态内容
|
922
|
-
*/
|
923
|
-
addSurveyStateDynamics(state: CCSurveyState): void;
|
924
|
-
/**
|
925
|
-
* 为题目状态添加动态内容
|
926
|
-
*/
|
927
|
-
addNodeDynamics(node: CCBNode): void;
|
928
|
-
/**
|
929
|
-
* 为选项状态添加动态内容
|
930
|
-
*/
|
931
|
-
addOptionDynamics(option: CCOption): void;
|
932
|
-
/**
|
933
|
-
* 为图片列表粘附变量解析能力
|
934
|
-
* @param imageList
|
935
|
-
*/
|
936
|
-
extendImageListGetter(imageList: CFPDImage[]): void;
|
937
|
-
/**
|
938
|
-
* 加载fake脚本
|
939
|
-
* @param startState
|
940
|
-
*/
|
941
|
-
loadFakeServers(startState: CCStartState): Promise<void>;
|
942
|
-
}
|
943
|
-
|
944
|
-
/**
|
945
|
-
* 核心对象
|
946
|
-
*/
|
947
|
-
interface CCCore extends CCSetupOptions {
|
948
|
-
|
949
|
-
|
950
|
-
|
951
|
-
|
952
|
-
|
953
|
-
/**
|
954
|
-
*
|
955
|
-
*/
|
956
|
-
|
957
|
-
/**
|
958
|
-
*
|
959
|
-
|
960
|
-
|
961
|
-
|
962
|
-
*
|
963
|
-
*
|
964
|
-
*
|
965
|
-
*
|
966
|
-
*
|
967
|
-
*
|
968
|
-
*
|
969
|
-
*
|
970
|
-
*
|
971
|
-
*
|
972
|
-
*
|
973
|
-
*
|
974
|
-
*
|
975
|
-
*
|
976
|
-
*
|
977
|
-
*
|
978
|
-
*
|
979
|
-
*
|
980
|
-
*
|
981
|
-
|
982
|
-
|
983
|
-
|
984
|
-
*
|
985
|
-
*/
|
986
|
-
|
987
|
-
/**
|
988
|
-
*
|
989
|
-
|
990
|
-
|
991
|
-
|
992
|
-
*
|
993
|
-
|
994
|
-
|
995
|
-
|
996
|
-
*
|
997
|
-
*/
|
998
|
-
|
999
|
-
/**
|
1000
|
-
*
|
1001
|
-
*/
|
1002
|
-
|
1003
|
-
/**
|
1004
|
-
*
|
1005
|
-
*/
|
1006
|
-
|
1007
|
-
/**
|
1008
|
-
*
|
1009
|
-
*/
|
1010
|
-
|
1011
|
-
/**
|
1012
|
-
*
|
1013
|
-
*/
|
1014
|
-
|
1015
|
-
/**
|
1016
|
-
*
|
1017
|
-
*/
|
1018
|
-
|
1019
|
-
/**
|
1020
|
-
*
|
1021
|
-
*/
|
1022
|
-
|
1023
|
-
/**
|
1024
|
-
*
|
1025
|
-
*/
|
1026
|
-
|
1027
|
-
/**
|
1028
|
-
*
|
1029
|
-
*/
|
1030
|
-
|
1031
|
-
/**
|
1032
|
-
*
|
1033
|
-
|
1034
|
-
|
1035
|
-
|
1036
|
-
|
1037
|
-
*
|
1038
|
-
|
1039
|
-
|
1040
|
-
|
1041
|
-
*
|
1042
|
-
*
|
1043
|
-
*
|
1044
|
-
*
|
1045
|
-
*
|
1046
|
-
|
1047
|
-
|
1048
|
-
|
1049
|
-
*
|
1050
|
-
*/
|
1051
|
-
|
1052
|
-
/**
|
1053
|
-
*
|
1054
|
-
*/
|
1055
|
-
|
1056
|
-
/**
|
1057
|
-
*
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1061
|
-
*
|
1062
|
-
*
|
1063
|
-
*
|
1064
|
-
*
|
1065
|
-
|
1066
|
-
|
1067
|
-
|
1068
|
-
*
|
1069
|
-
|
1070
|
-
|
1071
|
-
|
1072
|
-
*
|
1073
|
-
*
|
1074
|
-
|
1075
|
-
|
1076
|
-
|
1077
|
-
*
|
1078
|
-
|
1079
|
-
|
1080
|
-
|
1081
|
-
|
1082
|
-
|
1083
|
-
*
|
1084
|
-
|
1085
|
-
|
1086
|
-
|
1087
|
-
|
1088
|
-
|
1089
|
-
*
|
1090
|
-
|
1091
|
-
|
1092
|
-
|
1093
|
-
|
1094
|
-
|
1095
|
-
*
|
1096
|
-
*/
|
1097
|
-
|
1098
|
-
/**
|
1099
|
-
*
|
1100
|
-
*/
|
1101
|
-
|
1102
|
-
/**
|
1103
|
-
*
|
1104
|
-
|
1105
|
-
|
1106
|
-
|
1107
|
-
|
1108
|
-
*
|
1109
|
-
*/
|
1110
|
-
|
1111
|
-
|
1112
|
-
|
1113
|
-
|
591
|
+
//#region 核心与核心初始化配置相关说明
|
592
|
+
/**
|
593
|
+
* 服务配置信息
|
594
|
+
*/
|
595
|
+
interface CCHostConfig {
|
596
|
+
/**
|
597
|
+
* logo名称
|
598
|
+
*/
|
599
|
+
LOGO_NAME: string;
|
600
|
+
/**
|
601
|
+
* 操作记录接口地址
|
602
|
+
*/
|
603
|
+
recordUrl: string;
|
604
|
+
/**
|
605
|
+
* 主服务接口主机地址
|
606
|
+
*/
|
607
|
+
host: string;
|
608
|
+
/**
|
609
|
+
* web socket服务主机地址
|
610
|
+
*/
|
611
|
+
wsHost: string;
|
612
|
+
/**
|
613
|
+
* cdn资源主机地址
|
614
|
+
*/
|
615
|
+
cdnHost: string;
|
616
|
+
/**
|
617
|
+
* 媒体资源地址
|
618
|
+
*/
|
619
|
+
mediaHost: string;
|
620
|
+
/**
|
621
|
+
* 公共资源主机地址
|
622
|
+
*/
|
623
|
+
publicHost: string;
|
624
|
+
/**
|
625
|
+
* client端接口地址
|
626
|
+
*/
|
627
|
+
qApiHost?: string;
|
628
|
+
/**
|
629
|
+
* client通用静态资源地址
|
630
|
+
*/
|
631
|
+
qStaticHost?: string;
|
632
|
+
}
|
633
|
+
|
634
|
+
interface CCLoadRetry {
|
635
|
+
status: 'wait-retry' | 'retrying' | '';
|
636
|
+
onRetry?: Function;
|
637
|
+
}
|
638
|
+
|
639
|
+
/**
|
640
|
+
* 客户端初始化配置信息
|
641
|
+
*/
|
642
|
+
interface CCSetupOptions {
|
643
|
+
/**
|
644
|
+
* 答题程序所在的根据路由位置,
|
645
|
+
* 一般用location.origin即可
|
646
|
+
* 但是如果程序是深层路由中,则一定要指定具体的位置,
|
647
|
+
* 核心包需要依赖此进行路由跳转时避免跑到上层路径中
|
648
|
+
*/
|
649
|
+
appRoot: string;
|
650
|
+
/**
|
651
|
+
* 指定该客户端是不是动态加载模板的
|
652
|
+
* 对支持动态加载的客户端,核心会尝试去动态模板服务器上加载动态的模板。
|
653
|
+
* 当前只有web版客户端有可能支持动态模板功能,小程序和本地应用不支持该功能,所以无需配置。
|
654
|
+
* 默认:false
|
655
|
+
*/
|
656
|
+
dynamic?: boolean;
|
657
|
+
/**
|
658
|
+
* 动态加载的模板文件夹所在路径
|
659
|
+
* 如果是动态加载的,则一定要准备好该属性,
|
660
|
+
* 核心会去这个路径寻找动态模板文件,
|
661
|
+
* 如果dynamic属性指定为true,而不提供这个路径,初始化时会报错。
|
662
|
+
* 当前只有web版客户端有可能支持动态模板功能,小程序和本地应用不支持该功能,所以无需配置。
|
663
|
+
* 默认:空字符串
|
664
|
+
*/
|
665
|
+
templatePath?: string;
|
666
|
+
/**
|
667
|
+
* 模板树所在地址,如果指定一定要指定根目录开始的绝对路径。
|
668
|
+
* 如果是动态加载的,则一定要准备好该属性
|
669
|
+
* 核心会去获取这个文件来了解动态模板的依赖情况,
|
670
|
+
* 如果dynamic属性指定为true,而不提供这个路径,初始化时会报错。
|
671
|
+
* 当前只有web版客户端有可能支持动态模板功能,小程序和本地应用不支持该功能,所以无需配置。
|
672
|
+
* 默认:/tree.json
|
673
|
+
*/
|
674
|
+
treeUrl?: string;
|
675
|
+
/**
|
676
|
+
* 是否要使用wx sdk
|
677
|
+
* 当前只有web版可能支持,小程序和本地应用不支持该功能,所以无需配置。
|
678
|
+
* 默认:false
|
679
|
+
*/
|
680
|
+
useWxSdk?: boolean;
|
681
|
+
/**
|
682
|
+
* os-client的开发者凭证,这是个保留属性,暂时可以不设置
|
683
|
+
* 默认:空字符串
|
684
|
+
*/
|
685
|
+
key?: string;
|
686
|
+
/**
|
687
|
+
* 资源访问地址配置
|
688
|
+
* 默认情况下都指向正式环境服务器的资源地址,如果想访问其他服务器的资源
|
689
|
+
* 则需要重写该配置,详情请看每个具体的属性说明
|
690
|
+
* 默认:正式环境服务的资源地址
|
691
|
+
*/
|
692
|
+
hostConfig?: CCHostConfig;
|
693
|
+
/**
|
694
|
+
* 如果有配置该方法,问卷主题发生变化时,该方法会被调用。
|
695
|
+
* 然后可以做一些自定义的事情。
|
696
|
+
* 不支持系统主题的客户端不需要配置这个方法
|
697
|
+
* 默认行为:什么也不做
|
698
|
+
* @param theme 变化后的主题内容
|
699
|
+
*/
|
700
|
+
setTheme?(theme: CFPDGlobalThemeBack): void;
|
701
|
+
/**
|
702
|
+
* 常规消息提示方法,如果一道必答题还没有进行作答就点击下一题按钮
|
703
|
+
* 这时候不会进入下一题,而是会发出类似”必须作答“这样的提示消息,
|
704
|
+
* 通过配置该方法来决定如何在UI中展示这些提示消息。
|
705
|
+
*
|
706
|
+
* @param message 消息内容
|
707
|
+
*/
|
708
|
+
notify(message: string): void;
|
709
|
+
/**
|
710
|
+
* 弹框方式提示消息,比提示消息更重要一些,需要弹框,并且用户点击后才消失
|
711
|
+
* @param message
|
712
|
+
*/
|
713
|
+
alert(message: string): void;
|
714
|
+
/**
|
715
|
+
* 严重错误消息提示方法
|
716
|
+
* 如尝试下载某份问卷进行作答,但这份问卷已经下线,则不会得到问卷内容
|
717
|
+
* 而是会发出一个类似”问卷已下线“的错误消息
|
718
|
+
* 通过配置该方法来决定如何在UI中展示这些错误消息。
|
719
|
+
* 发生任何错误后,不允许继续操作。
|
720
|
+
* @param message 错误内容
|
721
|
+
*/
|
722
|
+
error(message: string): void;
|
723
|
+
/**
|
724
|
+
* 加载因失败次数挂起的提示
|
725
|
+
* @param data 消息,如果有内容说明加载失败,等待用户手动重试,如果没有内容,则说明重试后加载成功
|
726
|
+
*/
|
727
|
+
markLoadRetry(data: CCLoadRetry): void;
|
728
|
+
/**
|
729
|
+
* 上传日志的方法,核心包运行时会生成一些有利于追踪已知错误的日志,希望能通过这个方法上传。
|
730
|
+
* 如果不设置则不会上传错误。而是在控制台打印出来
|
731
|
+
* 配合 os-client-live 的 sentry 相关设置, level 为 'warning' 时,信息会被上报到 sentry 平台
|
732
|
+
* @param message
|
733
|
+
* @param level
|
734
|
+
*/
|
735
|
+
uploadLog?(message: string, level?: 'log' | 'error' | 'warning'): void;
|
736
|
+
/**
|
737
|
+
* 如果在单页模式中有很多题目,进行作答后点击下一题,其中某道题目的答案不满足要求,
|
738
|
+
* 这时候可能这道题目不再滚动条所在的可见范围内,
|
739
|
+
* 通过配置该方法,可以自定义定位错误的方式。
|
740
|
+
* 第一个参数中有一个[[CFValidateResult.dueToNode]]属性,找到该题目,定位其位置。
|
741
|
+
* 比如:可以移动滚动条到有错误的题目位置。
|
742
|
+
* 注意这个方法只需用来定位有错误的题目,至于题目中有什么错误,不归这里管,那个归题目渲染模板管。
|
743
|
+
* 默认行为:什么都不做
|
744
|
+
* @param result 错误信息
|
745
|
+
* @param state 总状态
|
746
|
+
*/
|
747
|
+
locateError?(result: CCIValidateResult, state: CCSurveyState): void;
|
748
|
+
/**
|
749
|
+
* 如果觉得核心包中逻辑相关的提示文字多语言翻译不满足你的要求,或者支持的语言不够多
|
750
|
+
* 你可以配置该属性指定使用自己准备的翻译文本,这个配置的每个属性的属性名是语言代号,
|
751
|
+
* 其属性值是该语言翻译文本对象
|
752
|
+
* 比如,核心模块当前仅提供了中文(zh_cn)和英文(en_us)的多语言
|
753
|
+
* 现在你对核心模块的中文翻译是满意的但是对核心模块的英文的翻译内容不满意,
|
754
|
+
* 这样你就可以配置该属性如下内容
|
755
|
+
*
|
756
|
+
* ```
|
757
|
+
* {
|
758
|
+
* en_us: {...}
|
759
|
+
* }
|
760
|
+
* ```
|
761
|
+
* 以上配置会覆盖掉默认的英文翻译,当进行英文翻译时,会只用你提供的这个对象作为翻译依据,
|
762
|
+
* 核心模块提供的英文翻译会被丢弃
|
763
|
+
*
|
764
|
+
* 如果在此基础上,同时你希望有日文版的多语言翻译,这时你可以添加配置日文翻译文本
|
765
|
+
* ```
|
766
|
+
* {
|
767
|
+
* en_us: {...}
|
768
|
+
* ja_jp: {...}
|
769
|
+
* }
|
770
|
+
* ```
|
771
|
+
* 以上的配置覆盖了英文翻译,同时新增了日文翻译。
|
772
|
+
*
|
773
|
+
* 每个json对象要准备的数据格式在[[LANG_ZH_CN]]中做出了示范.
|
774
|
+
*
|
775
|
+
* 各种语言的代号可参照[百科全书](https://en.wikipedia.org/wiki/Language_localisation)
|
776
|
+
*
|
777
|
+
* 我们统一使用`xx_xx`小写字母加下划线形式的代号
|
778
|
+
*
|
779
|
+
* 默认值:空
|
780
|
+
*/
|
781
|
+
langSrcMap?: { [key: string]: any };
|
782
|
+
|
783
|
+
/**
|
784
|
+
* 设置该方法来监听核心包的多语言变化,当核心包多语言切换时,会调用该方法
|
785
|
+
* UI程序中监听到这个变化后也要切换多语言
|
786
|
+
* 才能做到核心包提示的信息和UI组件中自己的显示内容使用了同一种语言
|
787
|
+
* 不支持多语言的客户端可以不配置这个方法
|
788
|
+
* 默认行为:什么都不做
|
789
|
+
* @param key 变化后的语言代号,如zh_cn,
|
790
|
+
*/
|
791
|
+
setLocale?(key: string): void;
|
792
|
+
/**
|
793
|
+
* 自定义中断回调方法
|
794
|
+
* 当核心包中运行发生异常,或者需要去往外部程序时,会中断答题流程,同时触发调用这个方法
|
795
|
+
* 客户端中可以配置该方法来在此时机做一些自定义的事情。
|
796
|
+
* 默认行为:总是会在方法被调用的一秒内压制系统消息
|
797
|
+
*/
|
798
|
+
customAbort?(): void;
|
799
|
+
/**
|
800
|
+
* 自定义的去往开始页面方法,只有使用web核心包是需要关注这个方法
|
801
|
+
*
|
802
|
+
* 非web核心包使用者无需配置该方法。
|
803
|
+
*
|
804
|
+
* web定制核心包中配置的页面切换方法是使用的浏览器原始location.replace方法实现的
|
805
|
+
* 当使用了单页引用页面的框架实现web客户端时,原生的跳转方法可能会导致页面刷新,使得单页应用的状态丢失。
|
806
|
+
* 而不同的框架在单页面内控制路由控制的方式是不一样的,所以需要用该方法提供。
|
807
|
+
*
|
808
|
+
* 默认行为:浏览器原生location.replace跳转
|
809
|
+
* @param routeParam 路由信息
|
810
|
+
*/
|
811
|
+
switchRoute?(routeParam: CCRouteSwitchParam): void;
|
812
|
+
}
|
813
|
+
|
814
|
+
/**
|
815
|
+
* 路由跳转参数,仅web端需要关注
|
816
|
+
* 传入参数就是该类型
|
817
|
+
*/
|
818
|
+
interface CCRouteSwitchParam {
|
819
|
+
/**
|
820
|
+
* 完整的URL
|
821
|
+
*/
|
822
|
+
url: string;
|
823
|
+
/**
|
824
|
+
* 路由路径
|
825
|
+
*/
|
826
|
+
route: string;
|
827
|
+
/**
|
828
|
+
* 从URL主机根目录开始的路由部分内容
|
829
|
+
*/
|
830
|
+
tail: string;
|
831
|
+
/**
|
832
|
+
* 全部的查询参数对象
|
833
|
+
*/
|
834
|
+
params: CCQueryParams;
|
835
|
+
}
|
836
|
+
|
837
|
+
/**
|
838
|
+
* 已完成选项概要信息
|
839
|
+
*/
|
840
|
+
interface CCTaskOption {
|
841
|
+
/**
|
842
|
+
* 选项文字
|
843
|
+
*/
|
844
|
+
text: string;
|
845
|
+
/**
|
846
|
+
* 选项输入内容,只有输入型的选项才有
|
847
|
+
*/
|
848
|
+
value?: string;
|
849
|
+
}
|
850
|
+
|
851
|
+
/**
|
852
|
+
* 已完成节点概要信息
|
853
|
+
*/
|
854
|
+
interface CCTaskNode {
|
855
|
+
/**
|
856
|
+
* 题目标题,优先使用问题文字,其实用问题编号
|
857
|
+
*/
|
858
|
+
title: string;
|
859
|
+
/**
|
860
|
+
* 题目描述
|
861
|
+
*/
|
862
|
+
description: string;
|
863
|
+
/**
|
864
|
+
* 直接放在题目上的答案信息,不同题目内容不同:
|
865
|
+
* 手动定位题:手选的位置信息
|
866
|
+
* 自动定位题:定位的位置信息
|
867
|
+
*/
|
868
|
+
value?: string;
|
869
|
+
/**
|
870
|
+
* 放在选项中的答案
|
871
|
+
*/
|
872
|
+
options?: CCTaskOption[];
|
873
|
+
}
|
874
|
+
|
875
|
+
/**
|
876
|
+
* 答题任务进展情况数据
|
877
|
+
*/
|
878
|
+
interface CCTaskInfo {
|
879
|
+
/**
|
880
|
+
* 进度
|
881
|
+
*/
|
882
|
+
progress: number;
|
883
|
+
/**
|
884
|
+
* 原始的结果
|
885
|
+
*/
|
886
|
+
result: CCIResult;
|
887
|
+
/**
|
888
|
+
* 任务概览信息,比起的原始结果来更多一些描述信息,方便查看
|
889
|
+
*/
|
890
|
+
nodes: CCTaskNode[];
|
891
|
+
}
|
892
|
+
|
893
|
+
/**
|
894
|
+
* 核心中暴露的一些辅助工具方法
|
895
|
+
*/
|
896
|
+
interface CCUtil {
|
897
|
+
/**
|
898
|
+
* 将JSON样式配置转成css样式
|
899
|
+
* @param varStyle
|
900
|
+
*/
|
901
|
+
convertVarStyle(varStyle: CFPDRichTextStyle): string;
|
902
|
+
/**
|
903
|
+
* 获取当前答题任务已完成的概要信息
|
904
|
+
*/
|
905
|
+
getTaskInfo(): Promise<CCTaskInfo>;
|
906
|
+
/**
|
907
|
+
* 获取一道题目的答案
|
908
|
+
* @param node 题目
|
909
|
+
*/
|
910
|
+
getAnswer(node: CCBQuestionNode): CCIAnswer;
|
911
|
+
/**
|
912
|
+
* 初始化变量依赖信息
|
913
|
+
* @param depends
|
914
|
+
*/
|
915
|
+
initVarDepends(depends: CCIVarRelatedDependency): void;
|
916
|
+
/**
|
917
|
+
* 为开始状态中添加动态内容
|
918
|
+
*/
|
919
|
+
addStartStateDynamics(state: CCStartState): void;
|
920
|
+
/**
|
921
|
+
* 为问卷状态中的添加态内容
|
922
|
+
*/
|
923
|
+
addSurveyStateDynamics(state: CCSurveyState): void;
|
924
|
+
/**
|
925
|
+
* 为题目状态添加动态内容
|
926
|
+
*/
|
927
|
+
addNodeDynamics(node: CCBNode): void;
|
928
|
+
/**
|
929
|
+
* 为选项状态添加动态内容
|
930
|
+
*/
|
931
|
+
addOptionDynamics(option: CCOption): void;
|
932
|
+
/**
|
933
|
+
* 为图片列表粘附变量解析能力
|
934
|
+
* @param imageList
|
935
|
+
*/
|
936
|
+
extendImageListGetter(imageList: CFPDImage[]): void;
|
937
|
+
/**
|
938
|
+
* 加载fake脚本
|
939
|
+
* @param startState
|
940
|
+
*/
|
941
|
+
loadFakeServers(startState: CCStartState): Promise<void>;
|
942
|
+
}
|
943
|
+
|
944
|
+
/**
|
945
|
+
* 核心对象
|
946
|
+
*/
|
947
|
+
interface CCCore extends CCSetupOptions {
|
948
|
+
/**
|
949
|
+
* 暴露的cfpd处理工具
|
950
|
+
*/
|
951
|
+
cfpd: CFPD;
|
952
|
+
customStore: Record<string, any>;
|
953
|
+
/**
|
954
|
+
* 发布的版本号
|
955
|
+
*/
|
956
|
+
releaseVersion: string;
|
957
|
+
/**
|
958
|
+
* 发布日期
|
959
|
+
*/
|
960
|
+
releaseDate: string;
|
961
|
+
/**
|
962
|
+
* 主题是否已经更新为何服务器上的一致,还未更新好时,APP页面渲染但是不要显示,可以控制透明度或display。
|
963
|
+
* 等稍后改属性准备好后再显示出来。
|
964
|
+
*
|
965
|
+
* 问:为什么要这么做?
|
966
|
+
*
|
967
|
+
*
|
968
|
+
* 我们的app初始化流程是这样的
|
969
|
+
*
|
970
|
+
* 1. APP初始化,调用核心包的setup
|
971
|
+
* 2. APP开始渲染(还没来得及获取主题,使用默认主题)
|
972
|
+
* 3. APP渲染后转到默认主路由
|
973
|
+
* 4. 主路由调用核心包的fetchStartState方法获取开始页面的数据,获取到了服务器的而主题,重新设置为当前主题,同时该属性变成true.
|
974
|
+
* 5. APP重新用新主题渲染页面。
|
975
|
+
*
|
976
|
+
* 因为我们的主题信息是存在服务器上的,初始APP渲染的时候还没有主题,为了保证渲染不出错(不给主题,渲染的时候就读不到东西),核心包先给了一个默认主题。
|
977
|
+
* 但是在第2步和第5步之间,如果默认主题和服务器上的主题颜色不一样,则会出现页面闪烁效果。所以我们第2步渲染后暂时掩藏内容,等到第5步的时候再显示。
|
978
|
+
* 就不会闪烁了。
|
979
|
+
*
|
980
|
+
* 问:如果没有主题就不渲染,等有主题了在渲染可以吗?
|
981
|
+
*
|
982
|
+
* 不可以,因步渲染APP组件,就没有机会引导到主路由,也就没有机会进行第4步,获取远程数据,从而永远也拿不到主题,程序初始化就被中断了,永远也运行不起来了。
|
983
|
+
*
|
984
|
+
* 所以只能先渲染,但不显示,等该属性准备好后在显示
|
985
|
+
*/
|
986
|
+
themeUpdated: boolean;
|
987
|
+
/**
|
988
|
+
* 挂载的事件中心
|
989
|
+
*/
|
990
|
+
eventHub: CCEventHub;
|
991
|
+
/**
|
992
|
+
* 配置此属性让setter执行以后不派发变化事件
|
993
|
+
* 这个事件被派发的比较频繁,当运行测试和自动推导的时候
|
994
|
+
* 可以禁用之,以节约时间。
|
995
|
+
* 测试专用,平时不用配置
|
996
|
+
* @ignore
|
997
|
+
*/
|
998
|
+
silentSetter?: boolean;
|
999
|
+
/**
|
1000
|
+
* 环境配置
|
1001
|
+
*/
|
1002
|
+
env: CCEnvOptions;
|
1003
|
+
/**
|
1004
|
+
* 是否为预览模式
|
1005
|
+
*/
|
1006
|
+
preview?: boolean;
|
1007
|
+
/**
|
1008
|
+
* 是否禁用预览工具条
|
1009
|
+
*/
|
1010
|
+
needPreviewFlag: boolean;
|
1011
|
+
/**
|
1012
|
+
* 是否初始化成功了
|
1013
|
+
*/
|
1014
|
+
initialized?: boolean;
|
1015
|
+
/**
|
1016
|
+
* 是否已经终止运行
|
1017
|
+
*/
|
1018
|
+
crashed?: boolean;
|
1019
|
+
/**
|
1020
|
+
* 开始页面/封面数据
|
1021
|
+
*/
|
1022
|
+
startState: CCStartState;
|
1023
|
+
/**
|
1024
|
+
* 答题页面数据
|
1025
|
+
*/
|
1026
|
+
surveyState: CCSurveyState;
|
1027
|
+
/**
|
1028
|
+
* 奖励页面数据
|
1029
|
+
*/
|
1030
|
+
rewardState: CCRewardState;
|
1031
|
+
/**
|
1032
|
+
* 实时预览页面数据
|
1033
|
+
*/
|
1034
|
+
realtime: CCRealtime;
|
1035
|
+
/**
|
1036
|
+
* 收集器id,必须设置,如果是预览模式则是问卷的原始长id
|
1037
|
+
* 如果是正式答题模式,则是当前收集器短id
|
1038
|
+
*/
|
1039
|
+
sid: string;
|
1040
|
+
/**
|
1041
|
+
* 离线任务任务id,一般为空,当前只有离线应用会指明该id
|
1042
|
+
* 如果指明了任务id,则:
|
1043
|
+
* 1. 会强制开启断点续答
|
1044
|
+
* 2. 则缓存的数据会使用任务id+问卷id的方式分区
|
1045
|
+
* 否则缓存的数据只按问卷id分区
|
1046
|
+
* 3. 答题期间每答完一题会往离线服务器发送最新的数
|
1047
|
+
*
|
1048
|
+
* 预览模式下总是为空
|
1049
|
+
*
|
1050
|
+
*/
|
1051
|
+
offlineTaskId?: string;
|
1052
|
+
/**
|
1053
|
+
* 是否为实时预览
|
1054
|
+
*/
|
1055
|
+
realTimePreview: boolean;
|
1056
|
+
/**
|
1057
|
+
* 提示消息是否已挂起,挂起后不会发出提示消息
|
1058
|
+
*/
|
1059
|
+
notifySuspended: boolean;
|
1060
|
+
/**
|
1061
|
+
* 注册环境适配信息,之后才能初始化
|
1062
|
+
*
|
1063
|
+
* 核心包中包含的是与运行平台无关纯答题流程的逻辑代码,但是运行过程中某些时候需要访问系统页面或者外部资源。
|
1064
|
+
* 当运行的平台不同时,访问这些信息的方式也不同,所以[[CCEnvOptions]]中列出了所有可能需要与系统或外界交互的需求项
|
1065
|
+
* 其中大部分是可选实现的,小部分是必须实现的,构建答题端时请参考文档按需实现配置。
|
1066
|
+
* 如果你使用的是纯核心包,则在[[CCCore.setup]]之前需要调用该方法将配置传入,然后才调用[[CCCore.setup]]方法初始化
|
1067
|
+
* 如果使用的是已经配置好的web包,则不需要调用该方法
|
1068
|
+
* @param options 具体的环境配置内容
|
1069
|
+
*/
|
1070
|
+
registerEnv(options: CCEnvOptions): void;
|
1071
|
+
/**
|
1072
|
+
* 初始化方法
|
1073
|
+
* 多次调用时,调用前请先调用[[CCCore.reset]]方法,才会重新setup
|
1074
|
+
* 否则会使用前一次setup的记过,不会重新setup
|
1075
|
+
* 如果你使用的是纯核心包,则在此之前需要调用[[CCCore.registerEnv]]方法进行环境适配
|
1076
|
+
* 如果使用的是已经配置好的包,如web适配包则可以直接初始化
|
1077
|
+
* @param options 初始化配置
|
1078
|
+
*/
|
1079
|
+
setup(options: CCSetupOptions): Promise<CCCore>;
|
1080
|
+
/**
|
1081
|
+
* 获取首页数据的方法
|
1082
|
+
* 多次调用,只有第一次会发送请求
|
1083
|
+
* 请求的数据会放到缓存中,后面几次获得的都是返回的缓存数据
|
1084
|
+
*/
|
1085
|
+
fetchStartState(): Promise<CCStartState | null>;
|
1086
|
+
/**
|
1087
|
+
* 获取答题也数据的方法
|
1088
|
+
* 多次调用,只有第一次会发送请求
|
1089
|
+
* 请求的数据会放到缓存中,后面几次获得的都是返回的缓存数据
|
1090
|
+
*/
|
1091
|
+
fetchSurveyState(): Promise<CCSurveyState | null>;
|
1092
|
+
/**
|
1093
|
+
* 获取奖励页面数据的方法
|
1094
|
+
* 多次调用,只有第一次会发送请求
|
1095
|
+
* 请求的数据会放到缓存中,后面几次获得的都是返回的缓存数据
|
1096
|
+
*/
|
1097
|
+
fetchRewardState(): Promise<CCRewardState | null>;
|
1098
|
+
/**
|
1099
|
+
* 获取主题
|
1100
|
+
*/
|
1101
|
+
theme: CFPDGlobalThemeBack;
|
1102
|
+
/**
|
1103
|
+
* 初始化实时预览
|
1104
|
+
*/
|
1105
|
+
initRealtimePreview(): void;
|
1106
|
+
/**
|
1107
|
+
* 重置,重置以后需要重新进行初始化流程
|
1108
|
+
* 适用于多问卷应用中切换问卷的时候使用
|
1109
|
+
*/
|
1110
|
+
reset(): void;
|
1111
|
+
/**
|
1112
|
+
* 工具类
|
1113
|
+
*/
|
1114
|
+
util: CCUtil;
|
1115
|
+
}
|
1116
|
+
|
1117
|
+
//#endregion
|
1114
1118
|
|
1115
1119
|
|
1116
1120
|
// -------------- types/outer/enum.d.ts ---------------
|