fstarter 2.10.41 → 2.10.45

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "fstarter",
3
3
  "description": "A Vue.js project",
4
- "version": "2.10.41",
4
+ "version": "2.10.45",
5
5
  "author": "han.zhang <zhanghan810810@163.com>",
6
6
  "license": "MIT",
7
7
  "private": false,
@@ -26,7 +26,7 @@
26
26
  <van-datetime-picker
27
27
  type="date"
28
28
  show-toolbar
29
- v-model="dateComponentVal"
29
+ v-model="model.defaultPickerVal"
30
30
  :title="model.placeholder"
31
31
  :min-date="minDate"
32
32
  :max-date="maxDate"
@@ -47,9 +47,6 @@
47
47
  export default {
48
48
  name: "bs-datePicker",
49
49
  mixins: [base2],
50
- props: {
51
-
52
- },
53
50
  data() {
54
51
  return {
55
52
  validateCtl:true,
@@ -57,20 +54,22 @@
57
54
  }
58
55
  },
59
56
  mounted() {
60
-
61
-
57
+ if (this.mod.defaultPickerVal) {
58
+ this.model.defaultPickerVal = new Date(this.mod.defaultPickerVal)
59
+ }
62
60
  },
63
61
  methods: {
64
62
  createDefaultModel() {
65
63
  return {
66
64
  value:'',
67
65
  text: '',
68
- type:'BSDatePicker',
69
- placeholder:'lang.ctl.BSDatePicker.placeholder',
70
- minDate:'2011-08-01',
71
- maxDate:'2019-01-01',
72
- dateFormat:'yyyy-MM-dd',
73
- needStar: true
66
+ type: 'BSDatePicker',
67
+ placeholder:' lang.ctl.BSDatePicker.placeholder',
68
+ minDate:' 2011-08-01',
69
+ maxDate: '2019-01-01',
70
+ dateFormat: 'yyyy-MM-dd',
71
+ needStar: true,
72
+ defaultPickerVal: ''
74
73
  };
75
74
  },
76
75
  popUp(){
@@ -127,7 +126,10 @@
127
126
 
128
127
  }
129
128
  },
130
- set() {}
129
+ set() {
130
+ if (this.mod.defaultVal) return this.mod.defaultVal
131
+
132
+ }
131
133
 
132
134
  }
133
135
  },
@@ -17,14 +17,15 @@
17
17
  <van-image :src="model.bgImage"/>
18
18
  </van-uploader>
19
19
 
20
- <van-popup
21
- v-model="showCooper"
22
- position="right"
20
+ <div
21
+ v-show="showCooper"
22
+ class="pop"
23
23
  closeable
24
24
  :overlay="false"
25
25
  :style="{
26
26
  width: '100%',
27
- height: '100%'
27
+ height: '100%',
28
+ zIndex: '999'
28
29
  }"
29
30
  @click-close-icon="cancel"
30
31
  >
@@ -70,7 +71,7 @@
70
71
  </van-button>
71
72
  </div>
72
73
  </div>
73
- </van-popup>
74
+ </div>
74
75
  </div>
75
76
  </template>
76
77
 
@@ -366,6 +367,15 @@
366
367
  width: 50%;
367
368
  }
368
369
  }
370
+ .pop {
371
+ position: fixed;
372
+ top: 50%;
373
+ left:0;
374
+ transform: translate3d(0,-50%,0);
375
+ max-height: 100%;
376
+ overflow-y: auto;
377
+ background-color: #fff;
378
+ }
369
379
  </style>
370
380
  <style scoped>
371
381
  /* .cropper-container >>> .van-button--info{
@@ -3,15 +3,14 @@
3
3
  <van-field
4
4
  :label="model.label"
5
5
  v-model="model.value"
6
- :placeholder="sent?model.placeholder:''"
6
+ :placeholder="sent === 'leave' ?model.placeholder:''"
7
7
  slot="button"
8
8
  @blur="blur"
9
9
  :class="ctlClass"
10
- :readonly="!sent"
11
10
  :clearable="model.clearable"
12
11
  :error-message="model.hiddenValidate ? '': model.validateResult.message"
13
12
  >
14
- <van-button slot="button" @click="sendVerCode" :disabled="model.disabled">{{model.sendButtonLabel}}</van-button>
13
+ <van-button slot="button" @click="sendVerCode" :disabled="modelData.disabled">{{model.sendButtonLabel}}</van-button>
15
14
  </van-field>
16
15
 
17
16
  </template>
@@ -32,7 +31,7 @@
32
31
  data() {
33
32
  return {
34
33
  validateCtl:true,
35
- sent:true
34
+ sent: 'leave'
36
35
  }
37
36
  },
38
37
  mounted() {
@@ -47,35 +46,39 @@
47
46
  placeholder:'lang.ctl.BSVerCode.placeholder',
48
47
  sendButtonLabel:'lang.ctl.BSVerCode.sendButtonLabel',
49
48
  expiredTime:60,
50
- expiredLabel:'{0}s'
49
+ expiredLabel:'{0}s',
50
+ disabled: false
51
51
  };
52
52
  },
53
53
  sendVerCode(){
54
-
55
- if(this.sent){
54
+ debugger
55
+ if(this.sent === 'sending'){
56
56
  return
57
57
  }
58
58
 
59
59
  let self = this
60
60
  this.$emit('send-verCode',function(){
61
-
62
- self.sent = true
61
+
62
+ debugger
63
+ self.sent = 'sending'
63
64
  self.model.expiredTime = self.modelData.expiredTime
64
65
 
65
66
  var source = Rx.Observable.timer(0, 1000)
66
67
 
67
- source = source.pipe(take(self.modelData.expiredTime)).pipe(filter(num => self.sent));
68
+ source = source.pipe(take(self.modelData.expiredTime)).pipe(filter(num => self.sent === 'sending'));
68
69
 
69
70
  source.subscribe({
70
71
  next: function(value) {
71
-
72
+ // self.sent = true
72
73
  self.model.expiredTime = self.model.expiredTime - 1
73
74
  self.model.sendButtonLabel = self.modelData.expiredLabel.format(self.model.expiredTime)
75
+ // self.sent = false
76
+
74
77
  },
75
78
  complete: function() {
76
79
 
77
80
  self.model.sendButtonLabel = self.modelData.sendButtonLabel
78
- self.sent = false
81
+ self.sent = 'leave'
79
82
  self.model.value = ''
80
83
  },
81
84
  error: function(error) {
@@ -88,7 +91,7 @@
88
91
  },
89
92
  reset(){
90
93
 
91
- this.sent = false
94
+ this.sent = 'leave'
92
95
  this.model.label = this.modelData.label
93
96
  this.model.disabled = this.modelData.disabled
94
97
  this.model.value = this.modelData.value
@@ -51,7 +51,7 @@ export default {
51
51
 
52
52
  let self = this
53
53
  this.$service.callService('init').then(()=>{
54
- self.$service.callService('getFaceResult',{},false)
54
+ self.$service.callService('getTxFaceResult',{},false)
55
55
  })
56
56
 
57
57
  }
@@ -36,6 +36,7 @@ var service = {
36
36
  buzId: params.buzId,
37
37
  cancelCrop: params.cancelCrop
38
38
  }
39
+ if (Number(params.cropType) === 1) requestJson['cropType'] = 1
39
40
  let isMultiple = params.multiple ? 'CALL_CAMERA_OTHER' : 'CALL_CAMERA'
40
41
  isp_phone.callShell(isMultiple, requestJson, null, params.vnode)
41
42
  return Promise.resolve({})
@@ -0,0 +1,61 @@
1
+ import http from '../assets/http.js'
2
+ import ak from '../assets/ak.js'
3
+ import config from '../assets/config.js'
4
+ import {ua} from "../assets/ua";
5
+
6
+ var faceTx = {
7
+
8
+ getData(params){
9
+ let nonce = radomKey()
10
+ return {
11
+ 'idcard_name': params.idcard_name,
12
+ 'idcard_number': params.idcard_number,
13
+ 'comparison_type': '1',
14
+ 'nonce': nonce
15
+ }
16
+ },
17
+
18
+ invoke(params){
19
+
20
+ if(ua.isIspPhone){
21
+
22
+
23
+ }else if(ua.microMsg){
24
+ debugger
25
+ let apiUrl = config.file.baseURL + '/file/v1/hasl/fileAdmin/fileAdmin/getTXFaceDomain'
26
+ // if(faceType == 'wy'){
27
+ // apiUrl = config.file.baseURL + '/file/v1/hasl/fileAdmin/fileAdmin/getTXFaceDomain'
28
+ // }else{
29
+ // apiUrl = config.file.baseURL + '/file/v1/hasl/fileAdmin/fileAdmin/getFaceTokenNew'
30
+ // }
31
+
32
+ return http.post(apiUrl,params,true,true).then((data)=>{
33
+ const objstr = JSON.stringify(Object.assign(params, data))
34
+ debugger
35
+ localStorage.setItem('faceAbout', objstr)
36
+ let cbUrl = ak.http.concatParams(params.cbUrl ? params.cbUrl : window.location.href,'facetoken=1')
37
+ const url = `https://${data.optimalDomain}/api/web/login?webankAppId=TIDA55eC&version=1.0.0&nonce=${params.nonce}&orderNo=${data.orderNo}&h5faceId=${data.h5faceId}&url=${encodeURIComponent(cbUrl)}&from=browser&userId=${data.userId}&sign=${data.sign}&redirectType=1&resultType=1`
38
+ window.location.href = url
39
+ return Promise.resolve(data)
40
+
41
+ })
42
+
43
+ }else{
44
+ Promise.reject()
45
+ }
46
+
47
+ }
48
+
49
+ }
50
+ function radomKey(length = 32, needChars = true) {
51
+ let chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
52
+ let num = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
53
+ let final = needChars ? chars : num
54
+ let nums = ''
55
+ for (var i = 0; i < length; i++) {
56
+ const id = parseInt(Math.random() * 61)
57
+ nums += final[id]
58
+ }
59
+ return nums
60
+ }
61
+ export default faceTx;
@@ -0,0 +1,83 @@
1
+ import http from '../assets/http.js'
2
+ import ak from '../assets/ak.js'
3
+ import config from '../assets/config.js'
4
+ import {ua} from "../assets/ua";
5
+ import service from "../service"
6
+
7
+ var getTxFaceResult = {
8
+
9
+ need(){
10
+
11
+ let token = ak.http.getQueryString('facetoken')
12
+ if(ak.utils.isEmpty(token)){
13
+ localStorage.removeItem('faceAbout')
14
+ return false
15
+ } else {
16
+ return true
17
+ }
18
+
19
+ },
20
+ getData(){
21
+
22
+ let obj = JSON.parse(localStorage.getItem('faceAbout'))
23
+
24
+ localStorage.removeItem('faceAbout')
25
+ return {
26
+ biz_no: obj.bizSeqNo,
27
+ userId: obj.userId,
28
+ orderNo: obj.orderNo,
29
+ nonce: obj.nonce,
30
+ expired: '-1000',
31
+ buz: 'POLICY_FILE',
32
+ domain: 'POLICY',
33
+ buzId: radomNum(16),
34
+ fileName: radomNum(16)
35
+
36
+ }
37
+ },
38
+
39
+ invoke(params){
40
+ // let faceType = params.faceType
41
+ // delete params.faceType
42
+
43
+ if(ua.isIspPhone){
44
+
45
+
46
+ }else if(ua.microMsg){
47
+ let apiUrl = config.file.baseURL + '/file/v1/hasl/fileAdmin/fileAdmin/getTXFaceCompareResult'
48
+ return http.post(apiUrl,params,true,true).then((data)=>{
49
+ let res = data.result
50
+ let resData = {
51
+ confidence: res.similarity,
52
+ imageFile: res.faceFileId,
53
+ success: true
54
+ }
55
+ service.saveInitService('getTxFaceResult',resData)
56
+ let reUrl = ak.http.deleteParams(window.location.href,'facetoken')
57
+ window.location.href = reUrl
58
+ return Promise.resolve(resData)
59
+ }).catch(err => {
60
+ let reUrl = ak.http.deleteParams(window.location.href,'facetoken')
61
+ reUrl = ak.http.deleteParams(reUrl,'orderNo')
62
+ reUrl = ak.http.deleteParams(reUrl,'signature')
63
+ reUrl = ak.http.deleteParams(reUrl,'h5faceId')
64
+ reUrl = ak.http.deleteParams(reUrl,'code')
65
+ window.location.href = reUrl
66
+ return Promise.reject(err)
67
+ })
68
+
69
+ }else{
70
+ Promise.reject()
71
+ }
72
+
73
+ }
74
+
75
+ }
76
+ function radomNum(n) {
77
+ var rnd = ''
78
+ for (var i = 0; i < n; i++) {
79
+ rnd += Math.floor(Math.random() * 10)
80
+ }
81
+ return rnd
82
+ }
83
+ export default getTxFaceResult;
@@ -14,6 +14,8 @@ import jumpView from './jumpView'
14
14
  import statusBarHeight from './statusBarHeight'
15
15
  import goSetPage from './goSetPage'
16
16
  import faceInApp from './faceInApp'
17
+ import faceTx from './faceTx'
18
+ import getTxFaceResult from './getTxFaceResult'
17
19
 
18
20
 
19
21
  var services = services || {}
@@ -34,4 +36,6 @@ services['jumpView'] = jumpView
34
36
  services['goSetPage'] = goSetPage
35
37
  services['statusBarHeight'] = statusBarHeight
36
38
  services['faceInApp'] = faceInApp
39
+ services['faceTx'] = faceTx
40
+ services['getTxFaceResult'] = getTxFaceResult
37
41
  export default services;
@@ -81,13 +81,15 @@
81
81
  return {
82
82
  vname:'auth',
83
83
  needProcessEvent:true,
84
+ needLoadData: true,
84
85
  submodel:{
85
86
  data: {
86
87
  required:true, // 必填
87
88
  needStar: false,
88
89
  text: '',
89
90
  maxDate: '2030-02-03',
90
- placeholder: '123123'
91
+ placeholder: '123123',
92
+ defaultPickerVal: '2020-02-03'
91
93
  },
92
94
  stepper:{
93
95
  min: -2,
@@ -128,12 +130,12 @@
128
130
  bank:{required:true,readonly:false},
129
131
  cardno:{label:'扣款卡号',placeholder:'请输入扣款卡号',required:true,readonly:true},
130
132
  vercode:{
131
- label:'验证码', // label
132
- placeholder:'请输入验证码', // placeholder
133
- disabled:true, // 禁用
134
- required:true, // 必填
133
+ label: '验证码', // label
134
+ placeholder: '请输入验证码', // placeholder
135
+ disabled: false, // 禁用
136
+ required: true, // 必填
135
137
  sendButtonLabel: '发送短信', // 按钮文字
136
- expiredTime: 60, // 倒计时时长
138
+ expiredTime: 3, // 倒计时时长
137
139
  expiredLabel: '{0}s', // 倒计时格式
138
140
  validateType:'CUS' // 校验类型。见文档校验
139
141
  },
@@ -186,10 +188,10 @@
186
188
  methods: {
187
189
  face() {
188
190
  const a = {
189
- buzId: '13123',
190
- vnode: this
191
+ idcard_number: '152531199103160179',
192
+ idcard_name: '胡玉泽'
191
193
  }
192
- this.$service.callService('faceInApp', a)
194
+ this.$service.callService('faceTx', a)
193
195
  },
194
196
  gosetPage() {
195
197
  this.$service.callService('goSetPage')
@@ -234,7 +236,9 @@
234
236
  buzId: 'asdf123123',
235
237
  cancelCrop: true,
236
238
  // 相册是否多选
237
- multiple: true
239
+ multiple: false,
240
+ cropType: '1' // 图片裁剪类型 ,0 横向裁剪 宽 :高 = 8 :5, 1 竖向裁剪 宽 :高 = 5 :7
241
+
238
242
  }
239
243
  this.$service.callService('camera', param)
240
244
  },
@@ -271,20 +275,22 @@
271
275
 
272
276
  },
273
277
  loadData(res){
274
-
278
+ if (res.serviceId === 'getTxFaceResult') {
279
+ console.log(res)
280
+ }
275
281
  if(res.serviceId == 'getAuthInfo'){
276
- console.log('aaaaaaa')
277
- console.log(this.selector('>page').ctls)
278
- let data = res.data
279
- this.selector('#auth').selector('')
280
- this.selector('#name').selector('#name').setValue(data.name)
281
- this.selector('#bank').setValue(data.bank)
282
- this.selector('#sex').setValue('1')
283
- // this.selector('#sex').set('items',[{value:"dddd",key:"21"},{value:"ffff",key:"01"}])
284
-
285
- this.selector('#cardno').setValue(data.cardno)
286
-
287
- console.log(this.regedit)
282
+ // console.log('aaaaaaa')
283
+ // console.log(this.selector('>page').ctls)
284
+ // let data = res.data
285
+ // this.selector('#auth').selector('')
286
+ // this.selector('#name').selector('#name').setValue(data.name)
287
+ // this.selector('#bank').setValue(data.bank)
288
+ // this.selector('#sex').setValue('1')
289
+ // // this.selector('#sex').set('items',[{value:"dddd",key:"21"},{value:"ffff",key:"01"}])
290
+
291
+ // this.selector('#cardno').setValue(data.cardno)
292
+
293
+ // console.log(this.regedit)
288
294
  }
289
295
 
290
296
 
@@ -295,11 +301,15 @@
295
301
  };
296
302
  },
297
303
  sendVerCode(resolve){
298
-
299
- this.$service.callService('sendVerCode').then((data)=>{
300
- resolve()
301
- }
302
- )
304
+ debugger
305
+ setTimeout(function() {
306
+ resolve()
307
+ }, 1000)
308
+
309
+ // this.$service.callService('sendVerCode').then((data)=>{
310
+ // resolve()
311
+ // }
312
+ // )
303
313
 
304
314
  },
305
315
  authWatchHandle(){
@@ -8,21 +8,22 @@
8
8
  cname="upload"
9
9
  @done="done"
10
10
  @delete="deleteFn"
11
+ ref="a"
11
12
  >
12
13
  </bs-upload2>
13
- <bs-upload2
14
+ <!-- <bs-upload2
14
15
  id="abv"
15
16
  :mod="submodel.upload2"
16
17
  cname="upload"
17
18
  @done="done"
18
19
  @delete="deleteFn"
19
20
  >
20
- </bs-upload2>
21
+ </bs-upload2> -->
21
22
  <bs-upload
22
23
  id="abv"
23
24
  :mod="submodel.upload2"
24
25
  cname="upload2"
25
- @done="done"
26
+ @done="done1"
26
27
  @delete="deleteFn"
27
28
  >
28
29
  </bs-upload>
@@ -74,10 +75,10 @@
74
75
  // actions: 'ocr_bc', // 银行卡
75
76
  },
76
77
  upload2:{
77
- // uploadType: 'IdCard_Front' //身份证正面
78
+ uploadType: 'IdCard_Front', //身份证正面
78
79
  // uploadType: 'IdCard_Back' //身份证反面
79
- uploadType: 'Bank_Card', // 银行卡
80
- buzId: '2321' // 前端自生成uuid
80
+ // uploadType: 'ocr_id0', // 银行卡
81
+ buzId: '2321123123' // 前端自生成uuid
81
82
  },
82
83
  viewer:{
83
84
  value:'https://testfile.ihasl.com/file/v1/hasl/fileAdmin/fileAdmin/get/4cba0c329a994356aa7f4e958c88373b.pdf'
@@ -113,12 +114,20 @@
113
114
  },
114
115
  done() {
115
116
  const a = this.selector('#upload').get('data')
117
+ console.log()
118
+ this.bb = `${a.fileId}.${a.ext}`
119
+
120
+ },
121
+ done1() {
122
+ const a = this.selector('#upload2').get('data')
123
+ console.log(a)
116
124
  this.bb = `${a.fileId}.${a.ext}`
117
125
  },
118
126
  a(){
119
127
  // this.$service.callService('face',{fileUrl: this.bb}).then(()=>{
120
128
  // localStorage.setItem('face.flag',true)
121
129
  // })
130
+ console.log(this.$refs.a.fileList = [])
122
131
  },
123
132
  loadData(data) {
124
133
  if(data.serviceId == 'getFaceResult'){