fstarter 2.10.56 → 2.10.57

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.
Files changed (93) hide show
  1. package/.babelrc +6 -6
  2. package/.editorconfig +9 -9
  3. package/index.html +22 -22
  4. package/index.js +222 -222
  5. package/package.json +104 -104
  6. package/src/App.vue +38 -38
  7. package/src/i18n/en-US.js +35 -35
  8. package/src/i18n/zh-CN.js +35 -35
  9. package/src/main.js +95 -95
  10. package/src/plugins/assets/ak.js +948 -948
  11. package/src/plugins/assets/callNative.js +490 -490
  12. package/src/plugins/assets/compressImg.js +75 -75
  13. package/src/plugins/assets/config.js +106 -106
  14. package/src/plugins/assets/fileServer.js +469 -469
  15. package/src/plugins/assets/http.js +344 -344
  16. package/src/plugins/assets/ua.js +27 -27
  17. package/src/plugins/components/BSButton.vue +61 -61
  18. package/src/plugins/components/BSCascader.vue +465 -465
  19. package/src/plugins/components/BSCell.vue +48 -48
  20. package/src/plugins/components/BSDatePicker.vue +167 -167
  21. package/src/plugins/components/BSImage.vue +42 -42
  22. package/src/plugins/components/BSInput.vue +140 -140
  23. package/src/plugins/components/BSList.vue +81 -81
  24. package/src/plugins/components/BSPicCode.vue +96 -96
  25. package/src/plugins/components/BSPopup.vue +43 -43
  26. package/src/plugins/components/BSRadio.vue +97 -97
  27. package/src/plugins/components/BSSearch.vue +109 -109
  28. package/src/plugins/components/BSSelect.vue +144 -144
  29. package/src/plugins/components/BSSign.vue +454 -454
  30. package/src/plugins/components/BSStepper.vue +115 -115
  31. package/src/plugins/components/BSUpload.vue +92 -92
  32. package/src/plugins/components/BSUpload2.vue +397 -397
  33. package/src/plugins/components/BSVerCode.vue +128 -128
  34. package/src/plugins/components/BSViewer.vue +92 -92
  35. package/src/plugins/components/base.js +496 -496
  36. package/src/plugins/components/base2.js +489 -489
  37. package/src/plugins/lib/weixin.js +20 -20
  38. package/src/plugins/platform/index.js +7 -7
  39. package/src/plugins/platform/isp_phone.js +310 -310
  40. package/src/plugins/plugins/README.md +560 -0
  41. package/src/plugins/plugins/browserUtils.js +925 -0
  42. package/src/plugins/plugins/components/imageCropper.vue +299 -0
  43. package/src/plugins/plugins/components/images/bz.png +0 -0
  44. package/src/plugins/plugins/components/images/correct.png +0 -0
  45. package/src/plugins/plugins/components/images/error.png +0 -0
  46. package/src/plugins/plugins/components/images/mohu.png +0 -0
  47. package/src/plugins/plugins/components/images/qs.png +0 -0
  48. package/src/plugins/plugins/components/images/zd.png +0 -0
  49. package/src/plugins/plugins/components/pdfPreview.vue +688 -0
  50. package/src/plugins/plugins/demo.vue +832 -0
  51. package/src/plugins/plugins/native-js-sdk.js +360 -0
  52. package/src/plugins/plugins/nativeUtils.js +1444 -0
  53. package/src/plugins/route/index.js +140 -140
  54. package/src/plugins/selector/index.js +342 -342
  55. package/src/plugins/service/index.js +81 -81
  56. package/src/plugins/services/callCamera.js +53 -53
  57. package/src/plugins/services/exit.js +37 -36
  58. package/src/plugins/services/face.js +69 -69
  59. package/src/plugins/services/faceH5.js +54 -54
  60. package/src/plugins/services/faceInApp.js +31 -31
  61. package/src/plugins/services/faceTx.js +61 -61
  62. package/src/plugins/services/getFaceResult.js +104 -104
  63. package/src/plugins/services/getH5FaceResult.js +62 -62
  64. package/src/plugins/services/getMenus.js +40 -40
  65. package/src/plugins/services/getSystemData.js +144 -128
  66. package/src/plugins/services/getToken.js +93 -79
  67. package/src/plugins/services/getTxFaceResult.js +83 -83
  68. package/src/plugins/services/getUserInfo.js +47 -47
  69. package/src/plugins/services/goSetPage.js +40 -40
  70. package/src/plugins/services/hideFhoneTitle.js +36 -36
  71. package/src/plugins/services/index.js +45 -45
  72. package/src/plugins/services/init.js +35 -35
  73. package/src/plugins/services/jumpView.js +42 -40
  74. package/src/plugins/services/logout.js +44 -43
  75. package/src/plugins/services/share.js +113 -113
  76. package/src/plugins/services/statusBarHeight.js +39 -39
  77. package/src/plugins/session/index.js +32 -32
  78. package/src/services/getAuthInfo.js +22 -22
  79. package/src/services/index.js +9 -9
  80. package/src/services/sendVerCode.js +23 -23
  81. package/src/views/auth.vue +367 -367
  82. package/src/views/auth2.vue +90 -90
  83. package/src/views/auth3.vue +157 -157
  84. package/src/views/auth4.vue +8979 -8979
  85. package/src/views/auth5.vue +50 -50
  86. package/src/views/authh5.vue +369 -369
  87. package/src/views/components/BankSelect.vue +55 -55
  88. package/src/views/foot.vue +140 -140
  89. package/src/views/page.vue +222 -222
  90. package/src/views/shellFunc.vue +41 -41
  91. package/themes/basic.css +1 -1
  92. package/webpack.config.js +144 -144
  93. package/fstarter.iml +0 -9
@@ -1,470 +1,470 @@
1
- import isp_phone from '../platform/isp_phone'
2
- import { EBType, SHELL } from './callNative'
3
- // import { FilePathPkg } from './filePath'
4
- // import { callService } from '../../../assets/libs/service/serviceImpl'
5
- // import SC from '../service/requestName'
6
- // import { ParamName as PN } from '../../../assets/libs/service/serviceParam'
7
- // import { getStateValue, setStateValue } from '../../../store'
8
- // import { copyObject, isEmptyObject } from '../../util/copyUtil'
9
- // import * as EM from '../../../store/recruitManage/module-info'
10
- // import * as EM from '../../../store/eleinsure/module-info'
11
- import Vue from 'vue'
12
- import config from './config'
13
- // import { ImagesPkg } from './images'
14
-
15
- export const FileServerPkg = {}
16
- export const EventGetFilename = 'getFileName'
17
- export const EventGetMessage = 'getMessage'
18
-
19
- // 文件服务器的地址
20
- FileServerPkg.baseHost = config.file.baseURL
21
- // 获取显示的基本地址
22
- FileServerPkg.fileBasePath = config.file.baseURL + '/file/v1/hasl/fileAdmin/fileAdmin/get/'
23
-
24
- // 照会文件服务器地址
25
- // FileServerPkg.enoteBaseHost = FilePathPkg.enoteBaseHost
26
- // // 照会路径
27
- // FileServerPkg.enoteFileBasePath = FilePathPkg.enoteFileBasePath
28
-
29
- // 监听壳的事件
30
- FileServerPkg.EB = new Vue()
31
- // 事件唤起者(实际调用vnode)
32
- FileServerPkg.fnCaller = null
33
- FileServerPkg.callerType = ''
34
- FileServerPkg.callerParam = null // 参数组
35
- FileServerPkg.callerServiceName = null // 调用服务名
36
- FileServerPkg.callerServiceParamFn = null // 调用服务用的参数
37
- FileServerPkg.callerStateSetFn = null // 保存状态值用的函数
38
-
39
- // 添事件监听
40
- FileServerPkg.EB.$on(EBType.getPIC, (data) => {
41
- handleShellCall(data.fileName, data.actions)
42
- })
43
-
44
- // 添加身份证OCR事件监听
45
- FileServerPkg.EB.$on(EBType.IDCard, (data) => {
46
- handleShellCall(data.fileName, data.actions)
47
- })
48
-
49
- // 添加活体识别监听
50
- FileServerPkg.EB.$on(EBType.Live, (data) => {
51
- handleShellCall(data.fileName, data.actions)
52
- })
53
-
54
- // 处理壳返回的结果
55
- function handleShellCall(fileName, actions) {
56
- const callerType = FileServerPkg.callerType // 分类处理
57
- const serviceName = FileServerPkg.callerServiceName
58
- const paramFn = FileServerPkg.callerServiceParamFn
59
- if (serviceName && paramFn) {
60
- try {
61
- const p = paramFn(fileName)
62
- callService(serviceName, p).then(d => {
63
- if (FileServerPkg.callerStateSetFn) FileServerPkg.callerStateSetFn(fileName) // 设置状态值
64
- })
65
- } catch (e) {
66
- console.log(e + '异常!!!壳上传后调用【保存影像】发生异常。上传类型:' + callerType)
67
- }
68
- // 现在无论如何先显示吧。。
69
- if (fileName) FileServerPkg.fnCaller.$emit(EventGetFilename, fileName)
70
- if (actions) FileServerPkg.fnCaller.$emit(EventGetMessage, actions)
71
- } else {
72
- console.log('注意!壳上传没有配置调用【保存服务】的服务;上传类型' + callerType)
73
- // 直接发送事件,不调用服务
74
- if (fileName) FileServerPkg.fnCaller.$emit(EventGetFilename, fileName)
75
- if (actions) FileServerPkg.fnCaller.$emit(EventGetMessage, actions)
76
- if (FileServerPkg.callerStateSetFn) FileServerPkg.callerStateSetFn(fileName) // 设置状态值
77
- }
78
- }
79
-
80
- // 通过壳上传的文件类型
81
- FileServerPkg.UploadType = {
82
- IdCard_Front_Applicant: 'IdCard_Front_Applicant',
83
- IdCard_Back_Applicant: 'IdCard_Back_Applicant',
84
- Card_Applicant: 'Card_Applicant',
85
- IdCard_Front_Insured: 'IdCard_Front_Insured',
86
- IdCard_Back_Insured: 'IdCard_Back_Insured',
87
- Card_Insured: 'Card_Insured',
88
- IdCard_Front_Guard: 'IdCard_Front_Guard',
89
- IdCard_Back_Guard: 'IdCard_Back_Guard',
90
- Card_Guard: 'Card_Guard',
91
- IdCard_Front_Beneficiary: 'IdCard_Front_Beneficiary',
92
- IdCard_Back_Beneficiary: 'IdCard_Back_Beneficiary',
93
- Card_Beneficary: 'Card_Beneficary',
94
- BankCard_Applicant: 'BankCard_Applicant',
95
- BankCard_Survival: 'BankCard_Survival',
96
- Live_Applicant: 'Live_Applicant',
97
- Live_Insured: 'Live_Insured',
98
- Live_Guard: 'Live_Guard',
99
- // 签名也许需要细分 TODO
100
- Sign_Applicant: 'Sign_Applicant',
101
- Sign_Insured: 'Sign_Insured',
102
- Sign_Guard: 'Sign_Guard',
103
- Sign_Agent: 'Sign_Agent',
104
- EleImage_Applicant: 'EleImage_Applicant', // 其他类型影像件(应该不用)
105
- EleImage_Insured: 'EleImage_Insured', // 其他类型影像件(应该不用)
106
- EleImage_Beneficiary: 'EleImage_Beneficiary', // 其他类型影像件(应该不用)
107
- CustomImg: 'CustomImg',
108
- EleQRcode: 'EleQRcode',
109
- EleImage_Other: 'EleImage_Other',
110
- NoOcrImg: 'NoOcrImg' // 不带OCR的图片上传
111
- }
112
-
113
- // 通过壳上传的文件类型
114
- const UType2Shell = {
115
- IdCard_Front: 'IdCard_Front',
116
- IdCard_Back: 'IdCard_Back',
117
- Bank_Card: 'BankCard',
118
- Live: 'Live',
119
- // IdCard_Front_Applicant: 'IdCard_Front',
120
- // IdCard_Back_Applicant: 'IdCard_Back',
121
- // Card_Applicant: 'EleImage',
122
- // IdCard_Front_Insured: 'IdCard_Front',
123
- // IdCard_Back_Insured: 'IdCard_Back',
124
- // Card_Insured: 'EleImage',
125
- // IdCard_Front_Guard: 'IdCard_Front',
126
- // IdCard_Back_Guard: 'IdCard_Back',
127
- // Card_Guard: 'EleImage',
128
- // IdCard_Front_Beneficiary: 'IdCard_Front',
129
- // IdCard_Back_Beneficiary: 'IdCard_Back',
130
- // Card_Beneficary: 'EleImage',
131
- // BankCard_Applicant: 'BankCard',
132
- // BankCard_Survival: 'BankCard',
133
- // Live_Applicant: 'Live',
134
- // Live_Insured: 'Live',
135
- // Live_Guard: 'Live',
136
- // // 签名也许需要细分 TODO
137
- // Sign_Applicant: 'Sign',
138
- // Sign_Insured: 'Sign',
139
- // Sign_Guard: 'Sign',
140
- // Sign_Agent: 'Sign',
141
- // EleImage_Applicant: 'EleImage', // 其他类型影像件(应该不用)
142
- // EleImage_Insured: 'EleImage', // 其他类型影像件(应该不用)
143
- // EleImage_Beneficiary: 'EleImage', // 其他类型影像件(应该不用)
144
- // CustomImg: 'CustomImg',
145
- // EleQRcode: 'EleQRcode',
146
- // EleImage_Other: 'EleOtherImage',
147
- // NoOcrImg: 'NoOcrImg' // 不带OCR的图片上传
148
- }
149
-
150
- // const IB = ImagesPkg.BasicImageType
151
-
152
- // 上传类型对应的图像分类
153
- FileServerPkg.UType2Image = {
154
- // IdCard_Front_Applicant: IB.IDFront,
155
- // IdCard_Back_Applicant: IB.IDBack,
156
- // Card_Applicant: IB.Card,
157
- // IdCard_Front_Insured: IB.IDFront,
158
- // IdCard_Back_Insured: IB.IDBack,
159
- // Card_Insured: IB.Card,
160
- // IdCard_Front_Guard: IB.IDFront,
161
- // IdCard_Back_Guard: IB.IDBack,
162
- // Card_Guard: IB.Card,
163
- // IdCard_Front_Beneficiary: IB.IDFront,
164
- // IdCard_Back_Beneficiary: IB.IDBack,
165
- // Card_Beneficary: IB.Card,
166
- // BankCard: IB.BankCard,
167
- // BankCard_Applicant: IB.BankCard,
168
- // BankCard_Survival: IB.BankCardSurvival,
169
- // Live_Applicant: IB.Live_App,
170
- // Live_Insured: IB.Live_Insured,
171
-
172
- // // 也许需要细分。则补充细分类型 TODO
173
- // Sign_Applicant: IB.Sign_1_App,
174
- // Sign_Insured: IB.Sign_1_Insured,
175
- // Sign_Guard: IB.Sign_1_Insured,
176
- // Sign_Agent: IB.Sign_1_Agent,
177
- // EleImage: IB.Addi_Other,
178
- // EleImage_Applicant: IB.Addi_Other, // 其他类型影像件(应该不用)
179
- // EleImage_Insured: IB.Addi_Other, // 其他类型影像件(应该不用)
180
- // EleImage_Beneficiary: IB.Addi_Other, // 其他类型影像件(应该不用)
181
- // EleImage_Other: IB.Addi_Other, // 其他类型
182
- // NoOcrImg: 'NoOcrImg' // 不带OCR的图片上传
183
- }
184
-
185
- // 上传影像件类型与state值对应
186
- const UType2State = {
187
- // IdCard_Front_Applicant: { pUUID: EM.STATE_ELEINSURE_APPLICANT_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_APPLICANT_IDCARD_FRONT },
188
- // IdCard_Back_Applicant: { pUUID: EM.STATE_ELEINSURE_APPLICANT_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_APPLICANT_IDCARD_BACK },
189
- // Card_Applicant: { pUUID: EM.STATE_ELEINSURE_APPLICANT_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_APPLICANT_CARD },
190
- // IdCard_Front_Insured: { pUUID: EM.STATE_ELEINSURE_INSUREDS_$1_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_INSURED_$1_IDCARD_FRONT },
191
- // IdCard_Back_Insured: { pUUID: EM.STATE_ELEINSURE_INSUREDS_$1_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_INSURED_$1_IDCARD_BACK },
192
- // Card_Insured: { pUUID: EM.STATE_ELEINSURE_INSUREDS_$1_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_INSUREDS_$INSUREDKEY_CARD },
193
- // IdCard_Front_Guard: { pUUID: EM.STATE_ELEINSURE_GURADS_$INSUREDKEY_PARTY_UUID, save: EM.STATE_ELEINSURE_IMAGES_GURADS_$INSUREDKEY_IDCARD_FRONT },
194
- // IdCard_Back_Guard: { pUUID: EM.STATE_ELEINSURE_GURADS_$INSUREDKEY_PARTY_UUID, save: EM.STATE_ELEINSURE_IMAGES_GURADS_$INSUREDKEY_IDCARD_BACK },
195
- // Card_Guard: { pUUID: EM.STATE_ELEINSURE_GURADS_$INSUREDKEY_PARTY_UUID, save: EM.STATE_ELEINSURE_IMAGES_GURADS_$INSUREDKEY_CARD },
196
- // IdCard_Front_Beneficiary: { pUUID: EM.STATE_ELEINSURE_BENEFICIARY_$BCODE_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_BENEFICIARY_$1_IDCARD_FRONT },
197
- // IdCard_Back_Beneficiary: { pUUID: EM.STATE_ELEINSURE_BENEFICIARY_$BCODE_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_BENEFICIARY_$1_IDCARD_BACK },
198
- // BankCard_Applicant: { pUUID: EM.STATE_ELEINSURE_APPLICANT_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_APPLICANT_BANKCARD },
199
- // BankCard_Survival: { pUUID: EM.STATE_ELEINSURE_BENEFICIARY_$BCODE_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_BENEFICIARY_$BCODE_BANKCARD },
200
- // Live_Applicant: { pUUID: EM.STATE_ELEINSURE_APPLICANT_PERSON_UUID, save: EM.STATE_ELEINSURE_SUBMIT_LIVES_APPLICANT_IMAGE },
201
- // Live_Insured: { pUUID: EM.STATE_ELEINSURE_INSUREDS_$1_PERSON_UUID, save: EM.STATE_ELEINSURE_SUBMIT_LIVES_INSUREDS_$INSUREDKEY_IMAGE },
202
- // // 签名使用 sign还是submit,确定后改一下 TODO
203
- // Sign_Applicant: { pUUID: EM.STATE_ELEINSURE_APPLICANT_PERSON_UUID, save: EM.STATE_ELEINSURE_SIGN_APPLICANT },
204
- // Sign_Insured: { pUUID: EM.STATE_ELEINSURE_INSUREDS_$1_PERSON_UUID, save: EM.STATE_ELEINSURE_SIGN_INSUREDS_$INSUREDKEY },
205
- // Sign_Agent: { pUUID: EM.STATE_ELEINSURE_AGENT_ID, save: EM.STATE_ELEINSURE_SIGN_AGENT },
206
- // EleImage_Applicant: { pUUID: EM.STATE_ELEINSURE_APPLICANT_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_APPLICANT }, // 此处应切换到真正位置---后面接详情
207
- // EleImage_Insured: { pUUID: EM.STATE_ELEINSURE_INSUREDS_$1_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_INSUREDS_$INSUREDKEY },
208
- // EleImage_Beneficiary: { pUUID: EM.STATE_ELEINSURE_BENEFICIARY_$BCODE_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_BENEFICIARY }
209
- // Live_Guard: 'Live', 监护人活体识别 TODO
210
- // Sign_Guard: 'Sign', 监护人签名 TODO
211
- // CustomImg: 'CustomImg' // 客户管理不需要保存state???
212
- }
213
-
214
- // 壳调用参数
215
- const shellUploadParam = {
216
- IdCard_Front: getP('POLICY', 'POLICY_FILE', 'ocr_id0', '0'),
217
- IdCard_Back: getP('POLICY', 'POLICY_FILE', 'ocr_id1', '1'),
218
- BankCard: getP('POLICY', 'POLICY_FILE', 'ocr_bc'),
219
- Live: getP('POLICY', 'POLICY_FILE', ''),
220
- // Sign: getP('POLICY', 'POLICY_PICTURE'),
221
- // EleImage: getP('POLICY', 'POLICY_FILE'),
222
- // CustomImg: getP('CUSTOMER', 'CUSTOMER_FILE'),
223
- // NoOcrImg: getP('POLICY', 'POLICY_FILE', '', '0'),
224
- // EleOtherImage: getP('POLICY', 'POLICY_FILE')
225
- }
226
-
227
- // 调用的壳服务
228
- const TypeShellMapping = {
229
- // IdCard_Front: SHELL.GET_IDCARD_PIC,
230
- // IdCard_Back: SHELL.GET_IDCARD_PIC,
231
- // BankCard: SHELL.CALL_CAMERA,
232
- // Live: SHELL.LIVE,
233
- // Sign: SHELL.CALL_CAMERA,
234
- // EleImage: SHELL.CALL_CAMERA,
235
- // CustomImg: SHELL.CALL_CAMERA,
236
- // EleQRcode: SHELL.QRCODE,
237
- // NoOcrImg: SHELL.CALL_CAMERA,
238
- // EleOtherImage: SHELL.CALL_CAMERA_OTHER,
239
- IdCard_Front: 'GET_IDCARD_PIC',
240
- IdCard_Back: 'GET_IDCARD_PIC',
241
- BankCard: 'CALL_CAMERA',
242
- Live: 'LIVE',
243
- Sign: SHELL.CALL_CAMERA,
244
- EleImage: SHELL.CALL_CAMERA,
245
- CustomImg: SHELL.CALL_CAMERA,
246
- EleQRcode: SHELL.QRCODE,
247
- NoOcrImg: SHELL.CALL_CAMERA,
248
- EleOtherImage: SHELL.CALL_CAMERA_OTHER,
249
- }
250
-
251
- // 调用的后端保存服务
252
- const ServiceNameMapping = {
253
- // IdCard_Front: SC.ELEINSURE_SAVE_IMAGE,
254
- // IdCard_Back: SC.ELEINSURE_SAVE_IMAGE,
255
- // BankCard: SC.ELEINSURE_SAVE_IMAGE,
256
- // Live: SC.ELEINSURE_SAVE_IMAGE,
257
- // Sign: SC.ELEINSURE_SAVE_IMAGE,
258
- // EleImage: SC.ELEINSURE_SAVE_IMAGE,
259
- // CustomImg: SC.CUSTOM_SAVE_PICTURE
260
- }
261
-
262
- /* *************************************************************************
263
-
264
- 壳上传服务暴露API
265
- 图片调用壳上传:流程:包括拿到fileNo回显文件,并调用服务保存影像件信息(fileNo)
266
- 参数说明:
267
- uploadType: FileServerPkg.UploadType的枚举
268
- eventSender: 上传的组件vue对象。组件传this
269
- callerParam:调用壳服务、上传服务、必须的参数
270
- callerParam必须的结构
271
- callerParam: {
272
- shell : {
273
- buzId: '111111'
274
- },
275
- service: {
276
- personKey: 'Children1',
277
- image_type: '01', // 不传则按uploadType默认值。见UType2Image,以及ImagesPkg.BasicImageType
278
- image_page: '3', // 不传则按uploadType默认值。见UType2Image,以及ImagesPkg.BasicImageType
279
- party_uuid: 'abc123', // 不传则按uploadType默认值.见UType2State的pUUID
280
- },
281
- state: {
282
- personKey: 'Children1'
283
- }
284
- }
285
- * *************************************************************************/
286
- FileServerPkg.pictureUploadSaveShow = function(uploadType, eventSender, callerParam, isCallService = false) {
287
- debugger
288
- const shellType = UType2Shell[uploadType]
289
- FileServerPkg.fnCaller = eventSender // 实际调用者
290
- FileServerPkg.callerType = shellType
291
- FileServerPkg.callerServiceName = ServiceNameMapping[shellType]
292
- FileServerPkg.callerParam = callerParam
293
- console.log(`${JSON.stringify(callerParam)}`, `调用壳上传图片。uploadType=${uploadType},附带参数:`)
294
- // const shellParam = setShellParam(shellType, callerParam.shell, callerParam.maxSizeKB, callerParam.count)
295
- const shellParam = setShellParam(shellType, callerParam.shell, callerParam.maxSizeKB)
296
- FileServerPkg.callerServiceParamFn = setServiceParamFn(uploadType, callerParam.service, isCallService)
297
- FileServerPkg.callerStateSetFn = getStateSetFn(uploadType, callerParam.state)
298
- isp_phone.callShell(TypeShellMapping[shellType], shellParam, null, eventSender)
299
- }
300
-
301
- /* *************************************************************************
302
- 壳上传服务暴露API
303
- 获取壳调用参数。配合FileServerPkg.pictureUploadSaveShow使用,准备callerParam入参
304
- ************************************************************************* */
305
- FileServerPkg.getCallerParam = function(buzId, personKey, shellMore = {}, serviceMore = {}, stateMore = {}) {
306
- return {
307
- shell: Object.assign({}, { buzId }, shellMore),
308
- service: Object.assign({}, { personKey }, serviceMore),
309
- state: Object.assign({}, { personKey }, stateMore)
310
- }
311
- }
312
-
313
- // 设置唤起壳功能时要的参数
314
- function setShellParam(uploadType, param, maxSizeKB, count) {
315
- if (param) {
316
- const shellParam = copyObject(shellUploadParam[uploadType])
317
- shellParam.buzId = param.buzId || 'NULL'
318
- if (maxSizeKB) {
319
- shellParam.maxSizeKB = maxSizeKB
320
- }
321
- if (count) {
322
- shellParam.count = count
323
- }
324
- console.log(JSON.stringify(shellParam), '获取壳上传参数')
325
- return shellParam
326
- } else if (uploadType === 'NoOcrImg') {
327
- const shellParam = copyObject(shellUploadParam[uploadType])
328
- shellParam.buzId = 'NULL'
329
- if (maxSizeKB) {
330
- shellParam.maxSizeKB = maxSizeKB
331
- }
332
- return shellParam
333
- } else {
334
- console.log(uploadType, '注意!壳上传没有传入合法调用【壳】服务的参数;上传类型:')
335
- }
336
- }
337
-
338
- // 设置服务调用时传递的参数,返回接受fileName的函数
339
- function setServiceParamFn(uploadType, param, isCallService) {
340
- if (isCallService) {
341
- const shellType = UType2Shell[uploadType]
342
-
343
- if (param) {
344
- // 如果是影像件上传服务的入参(默认是电投)
345
- return function(fileName) {
346
- if (fileName) {
347
- let fileInfo = {}
348
- const fs = fileName.split('.')
349
- if (fs.length < 2) {
350
- console.log(param, '注意!【保存影像】入参发生异常!filename非法。filename = ' + fileName + '.uploadType = ' + uploadType)
351
- return {}
352
- }
353
- fileInfo = { [PN.ImageList.FileNo]: fs[0], [PN.ImageList.FileSuffix]: fs[1] } // 影像件的文件名相关信息
354
- const sparam = { [PN.Eleinsure.OrderUuid]: getStateValue(EM.STATE_ELEINSURE_ELEORDER_ORDER_UUID) }
355
- const basicImgParam = FileServerPkg.UType2Image[uploadType] || {}
356
- // 如果传入personKey。获取默认的人员信息
357
- const personKey = param.personKey
358
- const pUUID = UType2State[uploadType] ? UType2State[uploadType].pUUID : null
359
- const pInfo = (personKey && pUUID) ? getStateValue(pUUID, [personKey]) : {}
360
- // 用户指定入参,可以覆盖默认值:由上传类型决定的party_uuid、image_type、image_page等
361
- const psn = copyObject(param)
362
- delete psn.personKey
363
- const imageObj = Object.assign({}, basicImgParam, pInfo, fileInfo, psn)
364
- sparam.image_list = [imageObj]
365
- console.log(sparam, '信息:壳【保存影像】ELEINSURE_SAVE_IMAGE,入参--')
366
- return sparam
367
- } else {
368
- console.log(param, '注意!【保存影像】入参发生异常!没有获取到壳返回的filename。uploadType=' + uploadType)
369
- return {}
370
- }
371
- }
372
- } else {
373
- console.log(param, '注意!壳上传没有传入合法调用【保存影像】服务的参数;uploadType=' + uploadType)
374
- }
375
- } else {
376
- console.log(param, '注意!壳上传文件服务器完毕,被指定成【不调用相关服务保存fileId】。请注意后续对于上传文件的保存。uploadType=' + uploadType)
377
- }
378
- }
379
-
380
- // state保存返回的是一个可执行的函数,传入filename即可
381
- function getStateSetFn(uploadType, param) {
382
-
383
- if (param) {
384
- const stateParams = param.personKey ? [param.personKey] : []
385
- if (UType2State[uploadType] && UType2State[uploadType].save) {
386
- const stateKey = UType2State[uploadType].save // 保存的state的key
387
- return function(fileName) {
388
- if (stateKey && fileName) setStateValue(stateKey, fileName, stateParams)
389
- }
390
- } else {
391
- console.log(uploadType, '注意!没有uploadType对应【UType2State】的配置。注意核实')
392
- }
393
- } else {
394
- console.log(uploadType, '注意!壳上传没有传入合法调用【存储state】服务的参数;上传类型:')
395
- }
396
- }
397
-
398
- // 获取用户信息图片文件名 file_no 文件名,ext扩展名。没有ext不传
399
- FileServerPkg.getImgPath = function(file_no, ext) {
400
- if (file_no.indexOf(FileServerPkg.fileBasePath) > -1) {
401
- return file_no
402
- } else {
403
- return FileServerPkg.fileBasePath + file_no + (ext ? '.' + ext : '')
404
- }
405
- }
406
-
407
- // 壳调用参数辅助构造函数
408
- function getP(domain, buz, actions, direction) {
409
- const p = { domain, buz, actions }
410
- // if (actions) p.actions = actions
411
- if (!isEmptyObject(direction)) p.direction = direction
412
- return p
413
- }
414
-
415
- /*
416
- 电投:身份证件、银行卡
417
- domain:POLICY
418
- buz: POLICY_FILE
419
- actions 字段
420
- 1 ocr_id0 身份证正面OCR
421
- 2 ocr_id1 身份证反面OCR
422
- 3 ocr_bc 银行卡OCR
423
- 电投:活体识别
424
- domain:POLICY
425
- buz: POLICY_FILE
426
- 无action
427
- 电投:签字图片
428
- domain:POLICY
429
- buz: POLICY_PICTURE
430
- 无action
431
- 电投:其他影像件:
432
- domain:POLICY
433
- buz: POLICY_FILE
434
- 无action
435
- 客户管理:客户资料 头像
436
- domain: CUSTOMER
437
- buz: CUSTOMER_FILE
438
- */
439
-
440
- // 判断是否为空对象
441
- function isEmptyObject(obj) {
442
- return (typeof obj === 'object' && Object.keys(obj).length === 0)
443
- }
444
- function copyObject(obj) {
445
- if (obj === null) return null
446
- if (typeof obj !== 'object') return obj
447
- if (obj.constructor === Date) return new Date(obj)
448
- if (obj.constructor === RegExp) return new RegExp(obj)
449
-
450
- let newObj
451
- if (typeof obj === 'object') {
452
- if (!(Array.isArray(obj))) {
453
- newObj = {}
454
- for (var key in obj) {
455
- newObj[key] = copyObject(obj[key])
456
- }
457
- } else {
458
- newObj = []
459
- obj.forEach((s) => {
460
- const r = copyObject(s)
461
- // if (!isEmptyObject(r)) {
462
- newObj.push(r)
463
- // }
464
- })
465
- }
466
- } else if (typeof obj === 'function') {
467
- newObj = JSON.parse(JSON.stringify(obj))
468
- }
469
- return newObj
1
+ import isp_phone from '../platform/isp_phone'
2
+ import { EBType, SHELL } from './callNative'
3
+ // import { FilePathPkg } from './filePath'
4
+ // import { callService } from '../../../assets/libs/service/serviceImpl'
5
+ // import SC from '../service/requestName'
6
+ // import { ParamName as PN } from '../../../assets/libs/service/serviceParam'
7
+ // import { getStateValue, setStateValue } from '../../../store'
8
+ // import { copyObject, isEmptyObject } from '../../util/copyUtil'
9
+ // import * as EM from '../../../store/recruitManage/module-info'
10
+ // import * as EM from '../../../store/eleinsure/module-info'
11
+ import Vue from 'vue'
12
+ import config from './config'
13
+ // import { ImagesPkg } from './images'
14
+
15
+ export const FileServerPkg = {}
16
+ export const EventGetFilename = 'getFileName'
17
+ export const EventGetMessage = 'getMessage'
18
+
19
+ // 文件服务器的地址
20
+ FileServerPkg.baseHost = config.file.baseURL
21
+ // 获取显示的基本地址
22
+ FileServerPkg.fileBasePath = config.file.baseURL + '/file/v1/hasl/fileAdmin/fileAdmin/get/'
23
+
24
+ // 照会文件服务器地址
25
+ // FileServerPkg.enoteBaseHost = FilePathPkg.enoteBaseHost
26
+ // // 照会路径
27
+ // FileServerPkg.enoteFileBasePath = FilePathPkg.enoteFileBasePath
28
+
29
+ // 监听壳的事件
30
+ FileServerPkg.EB = new Vue()
31
+ // 事件唤起者(实际调用vnode)
32
+ FileServerPkg.fnCaller = null
33
+ FileServerPkg.callerType = ''
34
+ FileServerPkg.callerParam = null // 参数组
35
+ FileServerPkg.callerServiceName = null // 调用服务名
36
+ FileServerPkg.callerServiceParamFn = null // 调用服务用的参数
37
+ FileServerPkg.callerStateSetFn = null // 保存状态值用的函数
38
+
39
+ // 添事件监听
40
+ FileServerPkg.EB.$on(EBType.getPIC, (data) => {
41
+ handleShellCall(data.fileName, data.actions)
42
+ })
43
+
44
+ // 添加身份证OCR事件监听
45
+ FileServerPkg.EB.$on(EBType.IDCard, (data) => {
46
+ handleShellCall(data.fileName, data.actions)
47
+ })
48
+
49
+ // 添加活体识别监听
50
+ FileServerPkg.EB.$on(EBType.Live, (data) => {
51
+ handleShellCall(data.fileName, data.actions)
52
+ })
53
+
54
+ // 处理壳返回的结果
55
+ function handleShellCall(fileName, actions) {
56
+ const callerType = FileServerPkg.callerType // 分类处理
57
+ const serviceName = FileServerPkg.callerServiceName
58
+ const paramFn = FileServerPkg.callerServiceParamFn
59
+ if (serviceName && paramFn) {
60
+ try {
61
+ const p = paramFn(fileName)
62
+ callService(serviceName, p).then(d => {
63
+ if (FileServerPkg.callerStateSetFn) FileServerPkg.callerStateSetFn(fileName) // 设置状态值
64
+ })
65
+ } catch (e) {
66
+ console.log(e + '异常!!!壳上传后调用【保存影像】发生异常。上传类型:' + callerType)
67
+ }
68
+ // 现在无论如何先显示吧。。
69
+ if (fileName) FileServerPkg.fnCaller.$emit(EventGetFilename, fileName)
70
+ if (actions) FileServerPkg.fnCaller.$emit(EventGetMessage, actions)
71
+ } else {
72
+ console.log('注意!壳上传没有配置调用【保存服务】的服务;上传类型' + callerType)
73
+ // 直接发送事件,不调用服务
74
+ if (fileName) FileServerPkg.fnCaller.$emit(EventGetFilename, fileName)
75
+ if (actions) FileServerPkg.fnCaller.$emit(EventGetMessage, actions)
76
+ if (FileServerPkg.callerStateSetFn) FileServerPkg.callerStateSetFn(fileName) // 设置状态值
77
+ }
78
+ }
79
+
80
+ // 通过壳上传的文件类型
81
+ FileServerPkg.UploadType = {
82
+ IdCard_Front_Applicant: 'IdCard_Front_Applicant',
83
+ IdCard_Back_Applicant: 'IdCard_Back_Applicant',
84
+ Card_Applicant: 'Card_Applicant',
85
+ IdCard_Front_Insured: 'IdCard_Front_Insured',
86
+ IdCard_Back_Insured: 'IdCard_Back_Insured',
87
+ Card_Insured: 'Card_Insured',
88
+ IdCard_Front_Guard: 'IdCard_Front_Guard',
89
+ IdCard_Back_Guard: 'IdCard_Back_Guard',
90
+ Card_Guard: 'Card_Guard',
91
+ IdCard_Front_Beneficiary: 'IdCard_Front_Beneficiary',
92
+ IdCard_Back_Beneficiary: 'IdCard_Back_Beneficiary',
93
+ Card_Beneficary: 'Card_Beneficary',
94
+ BankCard_Applicant: 'BankCard_Applicant',
95
+ BankCard_Survival: 'BankCard_Survival',
96
+ Live_Applicant: 'Live_Applicant',
97
+ Live_Insured: 'Live_Insured',
98
+ Live_Guard: 'Live_Guard',
99
+ // 签名也许需要细分 TODO
100
+ Sign_Applicant: 'Sign_Applicant',
101
+ Sign_Insured: 'Sign_Insured',
102
+ Sign_Guard: 'Sign_Guard',
103
+ Sign_Agent: 'Sign_Agent',
104
+ EleImage_Applicant: 'EleImage_Applicant', // 其他类型影像件(应该不用)
105
+ EleImage_Insured: 'EleImage_Insured', // 其他类型影像件(应该不用)
106
+ EleImage_Beneficiary: 'EleImage_Beneficiary', // 其他类型影像件(应该不用)
107
+ CustomImg: 'CustomImg',
108
+ EleQRcode: 'EleQRcode',
109
+ EleImage_Other: 'EleImage_Other',
110
+ NoOcrImg: 'NoOcrImg' // 不带OCR的图片上传
111
+ }
112
+
113
+ // 通过壳上传的文件类型
114
+ const UType2Shell = {
115
+ IdCard_Front: 'IdCard_Front',
116
+ IdCard_Back: 'IdCard_Back',
117
+ Bank_Card: 'BankCard',
118
+ Live: 'Live',
119
+ // IdCard_Front_Applicant: 'IdCard_Front',
120
+ // IdCard_Back_Applicant: 'IdCard_Back',
121
+ // Card_Applicant: 'EleImage',
122
+ // IdCard_Front_Insured: 'IdCard_Front',
123
+ // IdCard_Back_Insured: 'IdCard_Back',
124
+ // Card_Insured: 'EleImage',
125
+ // IdCard_Front_Guard: 'IdCard_Front',
126
+ // IdCard_Back_Guard: 'IdCard_Back',
127
+ // Card_Guard: 'EleImage',
128
+ // IdCard_Front_Beneficiary: 'IdCard_Front',
129
+ // IdCard_Back_Beneficiary: 'IdCard_Back',
130
+ // Card_Beneficary: 'EleImage',
131
+ // BankCard_Applicant: 'BankCard',
132
+ // BankCard_Survival: 'BankCard',
133
+ // Live_Applicant: 'Live',
134
+ // Live_Insured: 'Live',
135
+ // Live_Guard: 'Live',
136
+ // // 签名也许需要细分 TODO
137
+ // Sign_Applicant: 'Sign',
138
+ // Sign_Insured: 'Sign',
139
+ // Sign_Guard: 'Sign',
140
+ // Sign_Agent: 'Sign',
141
+ // EleImage_Applicant: 'EleImage', // 其他类型影像件(应该不用)
142
+ // EleImage_Insured: 'EleImage', // 其他类型影像件(应该不用)
143
+ // EleImage_Beneficiary: 'EleImage', // 其他类型影像件(应该不用)
144
+ // CustomImg: 'CustomImg',
145
+ // EleQRcode: 'EleQRcode',
146
+ // EleImage_Other: 'EleOtherImage',
147
+ // NoOcrImg: 'NoOcrImg' // 不带OCR的图片上传
148
+ }
149
+
150
+ // const IB = ImagesPkg.BasicImageType
151
+
152
+ // 上传类型对应的图像分类
153
+ FileServerPkg.UType2Image = {
154
+ // IdCard_Front_Applicant: IB.IDFront,
155
+ // IdCard_Back_Applicant: IB.IDBack,
156
+ // Card_Applicant: IB.Card,
157
+ // IdCard_Front_Insured: IB.IDFront,
158
+ // IdCard_Back_Insured: IB.IDBack,
159
+ // Card_Insured: IB.Card,
160
+ // IdCard_Front_Guard: IB.IDFront,
161
+ // IdCard_Back_Guard: IB.IDBack,
162
+ // Card_Guard: IB.Card,
163
+ // IdCard_Front_Beneficiary: IB.IDFront,
164
+ // IdCard_Back_Beneficiary: IB.IDBack,
165
+ // Card_Beneficary: IB.Card,
166
+ // BankCard: IB.BankCard,
167
+ // BankCard_Applicant: IB.BankCard,
168
+ // BankCard_Survival: IB.BankCardSurvival,
169
+ // Live_Applicant: IB.Live_App,
170
+ // Live_Insured: IB.Live_Insured,
171
+
172
+ // // 也许需要细分。则补充细分类型 TODO
173
+ // Sign_Applicant: IB.Sign_1_App,
174
+ // Sign_Insured: IB.Sign_1_Insured,
175
+ // Sign_Guard: IB.Sign_1_Insured,
176
+ // Sign_Agent: IB.Sign_1_Agent,
177
+ // EleImage: IB.Addi_Other,
178
+ // EleImage_Applicant: IB.Addi_Other, // 其他类型影像件(应该不用)
179
+ // EleImage_Insured: IB.Addi_Other, // 其他类型影像件(应该不用)
180
+ // EleImage_Beneficiary: IB.Addi_Other, // 其他类型影像件(应该不用)
181
+ // EleImage_Other: IB.Addi_Other, // 其他类型
182
+ // NoOcrImg: 'NoOcrImg' // 不带OCR的图片上传
183
+ }
184
+
185
+ // 上传影像件类型与state值对应
186
+ const UType2State = {
187
+ // IdCard_Front_Applicant: { pUUID: EM.STATE_ELEINSURE_APPLICANT_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_APPLICANT_IDCARD_FRONT },
188
+ // IdCard_Back_Applicant: { pUUID: EM.STATE_ELEINSURE_APPLICANT_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_APPLICANT_IDCARD_BACK },
189
+ // Card_Applicant: { pUUID: EM.STATE_ELEINSURE_APPLICANT_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_APPLICANT_CARD },
190
+ // IdCard_Front_Insured: { pUUID: EM.STATE_ELEINSURE_INSUREDS_$1_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_INSURED_$1_IDCARD_FRONT },
191
+ // IdCard_Back_Insured: { pUUID: EM.STATE_ELEINSURE_INSUREDS_$1_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_INSURED_$1_IDCARD_BACK },
192
+ // Card_Insured: { pUUID: EM.STATE_ELEINSURE_INSUREDS_$1_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_INSUREDS_$INSUREDKEY_CARD },
193
+ // IdCard_Front_Guard: { pUUID: EM.STATE_ELEINSURE_GURADS_$INSUREDKEY_PARTY_UUID, save: EM.STATE_ELEINSURE_IMAGES_GURADS_$INSUREDKEY_IDCARD_FRONT },
194
+ // IdCard_Back_Guard: { pUUID: EM.STATE_ELEINSURE_GURADS_$INSUREDKEY_PARTY_UUID, save: EM.STATE_ELEINSURE_IMAGES_GURADS_$INSUREDKEY_IDCARD_BACK },
195
+ // Card_Guard: { pUUID: EM.STATE_ELEINSURE_GURADS_$INSUREDKEY_PARTY_UUID, save: EM.STATE_ELEINSURE_IMAGES_GURADS_$INSUREDKEY_CARD },
196
+ // IdCard_Front_Beneficiary: { pUUID: EM.STATE_ELEINSURE_BENEFICIARY_$BCODE_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_BENEFICIARY_$1_IDCARD_FRONT },
197
+ // IdCard_Back_Beneficiary: { pUUID: EM.STATE_ELEINSURE_BENEFICIARY_$BCODE_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_BENEFICIARY_$1_IDCARD_BACK },
198
+ // BankCard_Applicant: { pUUID: EM.STATE_ELEINSURE_APPLICANT_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_APPLICANT_BANKCARD },
199
+ // BankCard_Survival: { pUUID: EM.STATE_ELEINSURE_BENEFICIARY_$BCODE_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_BENEFICIARY_$BCODE_BANKCARD },
200
+ // Live_Applicant: { pUUID: EM.STATE_ELEINSURE_APPLICANT_PERSON_UUID, save: EM.STATE_ELEINSURE_SUBMIT_LIVES_APPLICANT_IMAGE },
201
+ // Live_Insured: { pUUID: EM.STATE_ELEINSURE_INSUREDS_$1_PERSON_UUID, save: EM.STATE_ELEINSURE_SUBMIT_LIVES_INSUREDS_$INSUREDKEY_IMAGE },
202
+ // // 签名使用 sign还是submit,确定后改一下 TODO
203
+ // Sign_Applicant: { pUUID: EM.STATE_ELEINSURE_APPLICANT_PERSON_UUID, save: EM.STATE_ELEINSURE_SIGN_APPLICANT },
204
+ // Sign_Insured: { pUUID: EM.STATE_ELEINSURE_INSUREDS_$1_PERSON_UUID, save: EM.STATE_ELEINSURE_SIGN_INSUREDS_$INSUREDKEY },
205
+ // Sign_Agent: { pUUID: EM.STATE_ELEINSURE_AGENT_ID, save: EM.STATE_ELEINSURE_SIGN_AGENT },
206
+ // EleImage_Applicant: { pUUID: EM.STATE_ELEINSURE_APPLICANT_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_APPLICANT }, // 此处应切换到真正位置---后面接详情
207
+ // EleImage_Insured: { pUUID: EM.STATE_ELEINSURE_INSUREDS_$1_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_INSUREDS_$INSUREDKEY },
208
+ // EleImage_Beneficiary: { pUUID: EM.STATE_ELEINSURE_BENEFICIARY_$BCODE_PERSON_UUID, save: EM.STATE_ELEINSURE_IMAGES_BENEFICIARY }
209
+ // Live_Guard: 'Live', 监护人活体识别 TODO
210
+ // Sign_Guard: 'Sign', 监护人签名 TODO
211
+ // CustomImg: 'CustomImg' // 客户管理不需要保存state???
212
+ }
213
+
214
+ // 壳调用参数
215
+ const shellUploadParam = {
216
+ IdCard_Front: getP('POLICY', 'POLICY_FILE', 'ocr_id0', '0'),
217
+ IdCard_Back: getP('POLICY', 'POLICY_FILE', 'ocr_id1', '1'),
218
+ BankCard: getP('POLICY', 'POLICY_FILE', 'ocr_bc'),
219
+ Live: getP('POLICY', 'POLICY_FILE', ''),
220
+ // Sign: getP('POLICY', 'POLICY_PICTURE'),
221
+ // EleImage: getP('POLICY', 'POLICY_FILE'),
222
+ // CustomImg: getP('CUSTOMER', 'CUSTOMER_FILE'),
223
+ // NoOcrImg: getP('POLICY', 'POLICY_FILE', '', '0'),
224
+ // EleOtherImage: getP('POLICY', 'POLICY_FILE')
225
+ }
226
+
227
+ // 调用的壳服务
228
+ const TypeShellMapping = {
229
+ // IdCard_Front: SHELL.GET_IDCARD_PIC,
230
+ // IdCard_Back: SHELL.GET_IDCARD_PIC,
231
+ // BankCard: SHELL.CALL_CAMERA,
232
+ // Live: SHELL.LIVE,
233
+ // Sign: SHELL.CALL_CAMERA,
234
+ // EleImage: SHELL.CALL_CAMERA,
235
+ // CustomImg: SHELL.CALL_CAMERA,
236
+ // EleQRcode: SHELL.QRCODE,
237
+ // NoOcrImg: SHELL.CALL_CAMERA,
238
+ // EleOtherImage: SHELL.CALL_CAMERA_OTHER,
239
+ IdCard_Front: 'GET_IDCARD_PIC',
240
+ IdCard_Back: 'GET_IDCARD_PIC',
241
+ BankCard: 'CALL_CAMERA',
242
+ Live: 'LIVE',
243
+ Sign: SHELL.CALL_CAMERA,
244
+ EleImage: SHELL.CALL_CAMERA,
245
+ CustomImg: SHELL.CALL_CAMERA,
246
+ EleQRcode: SHELL.QRCODE,
247
+ NoOcrImg: SHELL.CALL_CAMERA,
248
+ EleOtherImage: SHELL.CALL_CAMERA_OTHER,
249
+ }
250
+
251
+ // 调用的后端保存服务
252
+ const ServiceNameMapping = {
253
+ // IdCard_Front: SC.ELEINSURE_SAVE_IMAGE,
254
+ // IdCard_Back: SC.ELEINSURE_SAVE_IMAGE,
255
+ // BankCard: SC.ELEINSURE_SAVE_IMAGE,
256
+ // Live: SC.ELEINSURE_SAVE_IMAGE,
257
+ // Sign: SC.ELEINSURE_SAVE_IMAGE,
258
+ // EleImage: SC.ELEINSURE_SAVE_IMAGE,
259
+ // CustomImg: SC.CUSTOM_SAVE_PICTURE
260
+ }
261
+
262
+ /* *************************************************************************
263
+
264
+ 壳上传服务暴露API
265
+ 图片调用壳上传:流程:包括拿到fileNo回显文件,并调用服务保存影像件信息(fileNo)
266
+ 参数说明:
267
+ uploadType: FileServerPkg.UploadType的枚举
268
+ eventSender: 上传的组件vue对象。组件传this
269
+ callerParam:调用壳服务、上传服务、必须的参数
270
+ callerParam必须的结构
271
+ callerParam: {
272
+ shell : {
273
+ buzId: '111111'
274
+ },
275
+ service: {
276
+ personKey: 'Children1',
277
+ image_type: '01', // 不传则按uploadType默认值。见UType2Image,以及ImagesPkg.BasicImageType
278
+ image_page: '3', // 不传则按uploadType默认值。见UType2Image,以及ImagesPkg.BasicImageType
279
+ party_uuid: 'abc123', // 不传则按uploadType默认值.见UType2State的pUUID
280
+ },
281
+ state: {
282
+ personKey: 'Children1'
283
+ }
284
+ }
285
+ * *************************************************************************/
286
+ FileServerPkg.pictureUploadSaveShow = function(uploadType, eventSender, callerParam, isCallService = false) {
287
+ debugger
288
+ const shellType = UType2Shell[uploadType]
289
+ FileServerPkg.fnCaller = eventSender // 实际调用者
290
+ FileServerPkg.callerType = shellType
291
+ FileServerPkg.callerServiceName = ServiceNameMapping[shellType]
292
+ FileServerPkg.callerParam = callerParam
293
+ console.log(`${JSON.stringify(callerParam)}`, `调用壳上传图片。uploadType=${uploadType},附带参数:`)
294
+ // const shellParam = setShellParam(shellType, callerParam.shell, callerParam.maxSizeKB, callerParam.count)
295
+ const shellParam = setShellParam(shellType, callerParam.shell, callerParam.maxSizeKB)
296
+ FileServerPkg.callerServiceParamFn = setServiceParamFn(uploadType, callerParam.service, isCallService)
297
+ FileServerPkg.callerStateSetFn = getStateSetFn(uploadType, callerParam.state)
298
+ isp_phone.callShell(TypeShellMapping[shellType], shellParam, null, eventSender)
299
+ }
300
+
301
+ /* *************************************************************************
302
+ 壳上传服务暴露API
303
+ 获取壳调用参数。配合FileServerPkg.pictureUploadSaveShow使用,准备callerParam入参
304
+ ************************************************************************* */
305
+ FileServerPkg.getCallerParam = function(buzId, personKey, shellMore = {}, serviceMore = {}, stateMore = {}) {
306
+ return {
307
+ shell: Object.assign({}, { buzId }, shellMore),
308
+ service: Object.assign({}, { personKey }, serviceMore),
309
+ state: Object.assign({}, { personKey }, stateMore)
310
+ }
311
+ }
312
+
313
+ // 设置唤起壳功能时要的参数
314
+ function setShellParam(uploadType, param, maxSizeKB, count) {
315
+ if (param) {
316
+ const shellParam = copyObject(shellUploadParam[uploadType])
317
+ shellParam.buzId = param.buzId || 'NULL'
318
+ if (maxSizeKB) {
319
+ shellParam.maxSizeKB = maxSizeKB
320
+ }
321
+ if (count) {
322
+ shellParam.count = count
323
+ }
324
+ console.log(JSON.stringify(shellParam), '获取壳上传参数')
325
+ return shellParam
326
+ } else if (uploadType === 'NoOcrImg') {
327
+ const shellParam = copyObject(shellUploadParam[uploadType])
328
+ shellParam.buzId = 'NULL'
329
+ if (maxSizeKB) {
330
+ shellParam.maxSizeKB = maxSizeKB
331
+ }
332
+ return shellParam
333
+ } else {
334
+ console.log(uploadType, '注意!壳上传没有传入合法调用【壳】服务的参数;上传类型:')
335
+ }
336
+ }
337
+
338
+ // 设置服务调用时传递的参数,返回接受fileName的函数
339
+ function setServiceParamFn(uploadType, param, isCallService) {
340
+ if (isCallService) {
341
+ const shellType = UType2Shell[uploadType]
342
+
343
+ if (param) {
344
+ // 如果是影像件上传服务的入参(默认是电投)
345
+ return function(fileName) {
346
+ if (fileName) {
347
+ let fileInfo = {}
348
+ const fs = fileName.split('.')
349
+ if (fs.length < 2) {
350
+ console.log(param, '注意!【保存影像】入参发生异常!filename非法。filename = ' + fileName + '.uploadType = ' + uploadType)
351
+ return {}
352
+ }
353
+ fileInfo = { [PN.ImageList.FileNo]: fs[0], [PN.ImageList.FileSuffix]: fs[1] } // 影像件的文件名相关信息
354
+ const sparam = { [PN.Eleinsure.OrderUuid]: getStateValue(EM.STATE_ELEINSURE_ELEORDER_ORDER_UUID) }
355
+ const basicImgParam = FileServerPkg.UType2Image[uploadType] || {}
356
+ // 如果传入personKey。获取默认的人员信息
357
+ const personKey = param.personKey
358
+ const pUUID = UType2State[uploadType] ? UType2State[uploadType].pUUID : null
359
+ const pInfo = (personKey && pUUID) ? getStateValue(pUUID, [personKey]) : {}
360
+ // 用户指定入参,可以覆盖默认值:由上传类型决定的party_uuid、image_type、image_page等
361
+ const psn = copyObject(param)
362
+ delete psn.personKey
363
+ const imageObj = Object.assign({}, basicImgParam, pInfo, fileInfo, psn)
364
+ sparam.image_list = [imageObj]
365
+ console.log(sparam, '信息:壳【保存影像】ELEINSURE_SAVE_IMAGE,入参--')
366
+ return sparam
367
+ } else {
368
+ console.log(param, '注意!【保存影像】入参发生异常!没有获取到壳返回的filename。uploadType=' + uploadType)
369
+ return {}
370
+ }
371
+ }
372
+ } else {
373
+ console.log(param, '注意!壳上传没有传入合法调用【保存影像】服务的参数;uploadType=' + uploadType)
374
+ }
375
+ } else {
376
+ console.log(param, '注意!壳上传文件服务器完毕,被指定成【不调用相关服务保存fileId】。请注意后续对于上传文件的保存。uploadType=' + uploadType)
377
+ }
378
+ }
379
+
380
+ // state保存返回的是一个可执行的函数,传入filename即可
381
+ function getStateSetFn(uploadType, param) {
382
+
383
+ if (param) {
384
+ const stateParams = param.personKey ? [param.personKey] : []
385
+ if (UType2State[uploadType] && UType2State[uploadType].save) {
386
+ const stateKey = UType2State[uploadType].save // 保存的state的key
387
+ return function(fileName) {
388
+ if (stateKey && fileName) setStateValue(stateKey, fileName, stateParams)
389
+ }
390
+ } else {
391
+ console.log(uploadType, '注意!没有uploadType对应【UType2State】的配置。注意核实')
392
+ }
393
+ } else {
394
+ console.log(uploadType, '注意!壳上传没有传入合法调用【存储state】服务的参数;上传类型:')
395
+ }
396
+ }
397
+
398
+ // 获取用户信息图片文件名 file_no 文件名,ext扩展名。没有ext不传
399
+ FileServerPkg.getImgPath = function(file_no, ext) {
400
+ if (file_no.indexOf(FileServerPkg.fileBasePath) > -1) {
401
+ return file_no
402
+ } else {
403
+ return FileServerPkg.fileBasePath + file_no + (ext ? '.' + ext : '')
404
+ }
405
+ }
406
+
407
+ // 壳调用参数辅助构造函数
408
+ function getP(domain, buz, actions, direction) {
409
+ const p = { domain, buz, actions }
410
+ // if (actions) p.actions = actions
411
+ if (!isEmptyObject(direction)) p.direction = direction
412
+ return p
413
+ }
414
+
415
+ /*
416
+ 电投:身份证件、银行卡
417
+ domain:POLICY
418
+ buz: POLICY_FILE
419
+ actions 字段
420
+ 1 ocr_id0 身份证正面OCR
421
+ 2 ocr_id1 身份证反面OCR
422
+ 3 ocr_bc 银行卡OCR
423
+ 电投:活体识别
424
+ domain:POLICY
425
+ buz: POLICY_FILE
426
+ 无action
427
+ 电投:签字图片
428
+ domain:POLICY
429
+ buz: POLICY_PICTURE
430
+ 无action
431
+ 电投:其他影像件:
432
+ domain:POLICY
433
+ buz: POLICY_FILE
434
+ 无action
435
+ 客户管理:客户资料 头像
436
+ domain: CUSTOMER
437
+ buz: CUSTOMER_FILE
438
+ */
439
+
440
+ // 判断是否为空对象
441
+ function isEmptyObject(obj) {
442
+ return (typeof obj === 'object' && Object.keys(obj).length === 0)
443
+ }
444
+ function copyObject(obj) {
445
+ if (obj === null) return null
446
+ if (typeof obj !== 'object') return obj
447
+ if (obj.constructor === Date) return new Date(obj)
448
+ if (obj.constructor === RegExp) return new RegExp(obj)
449
+
450
+ let newObj
451
+ if (typeof obj === 'object') {
452
+ if (!(Array.isArray(obj))) {
453
+ newObj = {}
454
+ for (var key in obj) {
455
+ newObj[key] = copyObject(obj[key])
456
+ }
457
+ } else {
458
+ newObj = []
459
+ obj.forEach((s) => {
460
+ const r = copyObject(s)
461
+ // if (!isEmptyObject(r)) {
462
+ newObj.push(r)
463
+ // }
464
+ })
465
+ }
466
+ } else if (typeof obj === 'function') {
467
+ newObj = JSON.parse(JSON.stringify(obj))
468
+ }
469
+ return newObj
470
470
  }