centaline-data-driven 1.3.39 → 1.3.40

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,6 +1,6 @@
1
1
  {
2
2
  "name": "centaline-data-driven",
3
- "version": "1.3.39",
3
+ "version": "1.3.40",
4
4
  "description": "ccai",
5
5
  "author": "hjc <3226136347@qq.com>",
6
6
  "private": false,
@@ -8,8 +8,8 @@
8
8
  :searchCategoryApi="'/ProfileWorklistList/getLayoutOfSearchCategory'"
9
9
  :searchDataApi="'/ProfileWorklistList/getListOfSearchModel'" :apiParam="para"></ct-searchlist> -->
10
10
 
11
- <ct-searchlist :searchConditionApi="'/PropertyContactImportList/getLayoutOfSearch'"
12
- :searchDataApi="'/PropertyContactImportList/getListOfSearchModel'">
11
+ <ct-searchlist :searchConditionApi="'/api/third-dept-tran/tran-list/layout'"
12
+ :searchDataApi="'/api/third-dept-tran/tran-list'">
13
13
  </ct-searchlist>
14
14
 
15
15
  <!-- <ct-searchlist :searchConditionApi="'/PropertyRETList/getLayoutOfSearch'"
@@ -9,7 +9,7 @@
9
9
  <div class="contacts-tips" v-else>
10
10
  <component class="el-button el-button--primary el-button--mini max-btn-add"
11
11
  v-if="model && model.buttons!==null && model.buttons.length>0"
12
- v-for="(col, index) in model.buttons" :key="col.key"
12
+ v-for="(col, index) in model.buttons.filter((v, i) => {return v.show==true})" :key="col.key"
13
13
  :is="col.is" :vmodel="col"
14
14
  @click="fieldClickHandler(col,$event)"></component>
15
15
  </div>
@@ -889,8 +889,29 @@ export default {
889
889
  // if (typeof field.onClick !== 'undefined') {
890
890
  // verified = self.$common.excute.call(self.model.scripts, field.onClick);
891
891
  // }
892
-
893
- if (field.isOpenForm) {
892
+ if (field.isBrowseAttachment) {//浏览附件
893
+ var MediaAlbum = [
894
+ { albumName: self.model.title || "媒体", medias: [] },
895
+ ];
896
+ if (field.action) {
897
+ var callback = function (data) {
898
+ MediaAlbum[0].medias = data;
899
+ self.$common.viewerfile(field, MediaAlbum, 0, 0);
900
+ }
901
+ var vsubmitData = {
902
+ ...field.getActionPara(submitData).para,
903
+ ...submitData
904
+ };
905
+ self.model.getAction(field.action, vsubmitData, callback);
906
+ }
907
+ else {
908
+ submitData.mediaData.forEach((v) => {
909
+ MediaAlbum[0].medias.push(v);
910
+ });
911
+ self.$common.viewerfile(field, MediaAlbum, 0, 0);
912
+ }
913
+ }
914
+ else if (field.isOpenForm) {
894
915
  var dialogOption = {
895
916
  title: field.pageTitle,
896
917
  pane: self.$common.getParentPane(self),
@@ -23,7 +23,9 @@
23
23
  </span>
24
24
  </span>
25
25
  <label v-else class="ct-lable" :class="{ isWidth: model.labelValue.length > 30 }">
26
+ <el-tooltip :content="model.labelValue" placement="top" effect="light">
26
27
  <span :class="{ isEllipsis: model.labelValue.length > 30 }"> {{ model.labelValue }}</span>
28
+ </el-tooltip>
27
29
  </label>
28
30
  <span slot="suffix" v-if="model.unitName" class="ct-unitnameLable">{{model.unitName}}</span>
29
31
  <span v-if="model.sufLabel" style="width:auto" class="spanMessage">{{model.sufLabel}}</span>
@@ -285,7 +285,7 @@
285
285
  this.$emit('scrollHandle',scrollTop,scrollLeft)
286
286
  },
287
287
  doClosePopoverHandle(){
288
-
288
+ this.$refs.screen.$refs.doClosePopover.click();
289
289
  },
290
290
  }
291
291
  }
@@ -21,8 +21,8 @@
21
21
  </el-popover>
22
22
  </div>
23
23
  <div v-if="isLoading" v-loading="isLoading" style="min-height:100px">
24
-
25
24
  </div>
25
+ <div ref="doClosePopover"></div>
26
26
  </div>
27
27
  </template>
28
28
  <script>
@@ -813,10 +813,12 @@ export default {
813
813
  if (field.pageStyle) {
814
814
  submitData.pageStyle = field.pageStyle;
815
815
  }
816
+ self.$emit('doClosePopoverHandle');
816
817
  self.$common.getDataDrivenOpts().handler.openTab(action,submitData,field.pageTitle,self.model,field.dialogWidth);
817
818
  }
818
819
  else if (field.isSearchPageInTab) {// 外部框架tab页打开
819
820
  submitData = field.getActionPara(submitData).para;
821
+ self.$emit('doClosePopoverHandle');
820
822
  self.$common.getDataDrivenOpts().handler.openTabSearch(field, submitData);
821
823
  }
822
824
  else if (field.isBrowserNewTab) {// 浏览器打开
@@ -5,10 +5,10 @@ import common from '../../../common';
5
5
  import Router from './Router';
6
6
  import Vue from 'vue';
7
7
  import formData from '../../../formData';
8
- const ContactList = function (source,para ,callBack) {
8
+ const ContactList = function (source, para, callBack) {
9
9
  var init = function (data) {
10
10
  var rtn = {
11
- $vue: null,
11
+ $vue: null,
12
12
  _buttons: null,
13
13
  _actionRouter: null,
14
14
  _rowRouter: null,
@@ -21,10 +21,10 @@ const ContactList = function (source,para ,callBack) {
21
21
  isMergeTitle: false,//是否合并标题
22
22
  selectIndex: 0,
23
23
  formData: formData,
24
- rowHiddenKey:'contactID',
25
- rowHiddenColumns:['contactNameDesc','propertyIdentityTypeID'],
26
- columnShow:'contactNoTypeDesc',
27
- rowHiddenKeyData:[],
24
+ rowHiddenKey: 'contactID',
25
+ rowHiddenColumns: ['contactNameDesc', 'propertyIdentityTypeID'],
26
+ columnShow: 'contactNoTypeDesc',
27
+ rowHiddenKeyData: [],
28
28
  attrs: {
29
29
  size: 'mini'
30
30
  },
@@ -51,7 +51,7 @@ const ContactList = function (source,para ,callBack) {
51
51
  }
52
52
  return rtn._buttons;
53
53
  }
54
- },
54
+ },
55
55
  get actionRouter() {
56
56
  if (rtn._actionRouter !== null) {
57
57
  return rtn._actionRouter;
@@ -84,20 +84,20 @@ const ContactList = function (source,para ,callBack) {
84
84
  }
85
85
  return rtn._rowRouter;
86
86
  }
87
- },
87
+ },
88
88
  get listData() {
89
- if (rtn._listData.length<=0) {
90
- if(data.content.rows && data.content.rows.length>0){
91
- data.content.rows.forEach((v,i) => {
89
+ if (rtn._listData.length <= 0) {
90
+ if (data.content.rows && data.content.rows.length > 0) {
91
+ data.content.rows.forEach((v, i) => {
92
92
  rtn._listData.push(v);
93
- if(v.descNewRow){
94
- var newRow = {};
95
- newRow[rtn.rowHiddenKey]=v[rtn.rowHiddenKey];
96
- newRow.descNewRow = v.descNewRow;
97
- newRow.colspan = rtn.dataFieldcolumnsShow.length-rtn.rowMergedColumns.length;
98
- newRow.columnShow=rtn.columnShow;
99
- newRow.flagRow=true;
100
- rtn._listData.push(newRow);
93
+ if (v.descNewRow) {
94
+ var newRow = {};
95
+ newRow[rtn.rowHiddenKey] = v[rtn.rowHiddenKey];
96
+ newRow.descNewRow = v.descNewRow;
97
+ newRow.colspan = rtn.dataFieldcolumnsShow.length - rtn.rowMergedColumns.length;
98
+ newRow.columnShow = rtn.columnShow;
99
+ newRow.flagRow = true;
100
+ rtn._listData.push(newRow);
101
101
  }
102
102
  });
103
103
  }
@@ -106,7 +106,7 @@ const ContactList = function (source,para ,callBack) {
106
106
  },
107
107
  set listData(v) {
108
108
  if (v) {
109
- rtn._listData=v;
109
+ rtn._listData = v;
110
110
  }
111
111
  },
112
112
  get columns() {
@@ -181,7 +181,7 @@ const ContactList = function (source,para ,callBack) {
181
181
  if (col._router !== null) {
182
182
  return col._router;
183
183
  }
184
- if (typeof v.routerKey !== "undefined" && v.routerKey && v.routerKey.indexOf(',')===-1) {
184
+ if (typeof v.routerKey !== "undefined" && v.routerKey && v.routerKey.indexOf(',') === -1) {
185
185
  let router = rtn.actionRouter.find(b => {
186
186
  return b.id === v.routerKey;
187
187
  });
@@ -195,8 +195,8 @@ const ContactList = function (source,para ,callBack) {
195
195
  return col._routers;
196
196
  }
197
197
  if (typeof v.routerKey !== "undefined" && v.routerKey) {
198
- col._routers=[];
199
- v.routerKey.split(',').forEach((v) => {
198
+ col._routers = [];
199
+ v.routerKey.split(',').forEach((v) => {
200
200
  let router = rtn.actionRouter.find(b => {
201
201
  return b.id === v;
202
202
  });
@@ -309,7 +309,7 @@ const ContactList = function (source,para ,callBack) {
309
309
  self._dataFieldcolumns = arr;
310
310
  return self._dataFieldcolumns;
311
311
  }
312
- },
312
+ },
313
313
  get dataFieldcolumnsShow() {
314
314
  var self = this;
315
315
  if (self._dataFieldcolumnsShow.length > 0) {
@@ -330,10 +330,10 @@ const ContactList = function (source,para ,callBack) {
330
330
  get apiRouter() {
331
331
  return source.apiRouter;
332
332
  },
333
- getCurrentRowApiData(rtnData,router) {
333
+ getCurrentRowApiData(rtnData, router, callBack) {
334
334
  var self = this;
335
335
  var searchFields = self.apiRouter.getSearchPara();
336
- var searchValue1=router.flagAddRowAfterAction? rtnData.content: rtn.listData[rtn.selectIndex][self.primaryKey];
336
+ var searchValue1 = router.flagAddRowAfterAction ? rtnData.content : rtn.listData[rtn.selectIndex][self.primaryKey];
337
337
  if (self.primaryKey) {
338
338
  searchFields.fields.push({
339
339
  fieldName1: self.primaryFieldMappingDBName ? self.primaryFieldMappingDBName : self.primaryKey,
@@ -351,41 +351,47 @@ const ContactList = function (source,para ,callBack) {
351
351
  flagSearch: true
352
352
  }
353
353
  })
354
- .then(function (response) {
355
- if (response.rtnCode === Enum.ReturnCode.Successful) {
356
- if (response.content.rows.length > 0) {
357
- if(router.flagAddRowAfterAction){
358
- rtn.doNew(response.content.rows);
354
+ .then(function (response) {
355
+ if (response.rtnCode === Enum.ReturnCode.Successful) {
356
+ if (response.notification == Enum.ActionType.Refersh) {
357
+ var rtn = init(response);
358
+ if (callBack) {
359
+ callBack(rtn);
360
+ }
359
361
  }
360
- else{
361
- rtn.doUpdate(response.content.rows,searchValue1);
362
+ else if (response.content.rows.length > 0) {
363
+ if (router.flagAddRowAfterAction) {
364
+ rtn.doNew(response.content.rows);
365
+ }
366
+ else {
367
+ rtn.doUpdate(response.content.rows, searchValue1);
368
+ }
362
369
  }
363
370
  }
364
- }
365
- })
366
- .catch((error) => {
367
- });
371
+ })
372
+ .catch((error) => {
373
+ });
368
374
  },
369
- doAction(response,field) {
375
+ doAction(response, field) {
370
376
  if (response.responseData) {
371
377
  response = response.responseData;
372
378
  }
373
- if(field.flagFreshCurrentRow || field.flagAddRowAfterAction){
374
- rtn.getCurrentRowApiData(response,field);
379
+ if (field.flagFreshCurrentRow || field.flagAddRowAfterAction) {
380
+ rtn.getCurrentRowApiData(response, field);
375
381
  }
376
- else{
382
+ else {
377
383
  switch (response.notification) {
378
384
  case Enum.ActionType.Delete://删除
379
385
  case Enum.ActionType.CloseTabThenDelete://删除
380
386
  var deleteRow = response.content.split(',');
381
387
  if (deleteRow) {
382
388
  deleteRow.forEach((r) => {
383
- let strat=-1;
384
- let count=0;
385
- rtn._listData.forEach((v,i) => {
386
- if(v[rtn.rowHiddenKey]===r){
387
- if(strat===-1)strat=i;
388
- count=count+1;
389
+ let strat = -1;
390
+ let count = 0;
391
+ rtn._listData.forEach((v, i) => {
392
+ if (v[rtn.rowHiddenKey] === r) {
393
+ if (strat === -1) strat = i;
394
+ count = count + 1;
389
395
  }
390
396
  });
391
397
  rtn._listData.splice(strat, count);
@@ -394,12 +400,15 @@ const ContactList = function (source,para ,callBack) {
394
400
  break;
395
401
  case Enum.ActionType.New://新增
396
402
  case Enum.ActionType.CloseTabThenNew://新增
397
- rtn.doNew(response.content);
403
+ rtn.doNew(response.content);
404
+ break;
405
+ case Enum.ActionType.Refersh: //刷新
406
+ rtn.getCurrentRowApiData(response, field, rtn.$vue.load);
398
407
  break;
399
408
  case Enum.ActionType.Update://修改
400
409
  case Enum.ActionType.CloseTabThenUpdate://修改
401
- var searchValue1=rtn.listData[rtn.selectIndex][self.primaryKey];
402
- rtn.doUpdate(response.content,searchValue1);
410
+ var searchValue1 = rtn.listData[rtn.selectIndex][self.primaryKey];
411
+ rtn.doUpdate(response.content, searchValue1);
403
412
  break;
404
413
  default:
405
414
  break;
@@ -407,60 +416,60 @@ const ContactList = function (source,para ,callBack) {
407
416
  }
408
417
  rtn.$vue.$forceUpdate();
409
418
  },
410
- doNew(data){
419
+ doNew(data) {
411
420
  data.forEach((v) => {
412
- if(v.descNewRow){
421
+ if (v.descNewRow) {
413
422
  var newRow = {};
414
- newRow[rtn.rowHiddenKey]=v[rtn.rowHiddenKey];
423
+ newRow[rtn.rowHiddenKey] = v[rtn.rowHiddenKey];
415
424
  newRow.descNewRow = v.descNewRow;
416
- newRow.colspan = rtn.dataFieldcolumnsShow.length-rtn.rowMergedColumns.length;
417
- newRow.columnShow=rtn.columnShow;
418
- newRow.flagRow=true;
425
+ newRow.colspan = rtn.dataFieldcolumnsShow.length - rtn.rowMergedColumns.length;
426
+ newRow.columnShow = rtn.columnShow;
427
+ newRow.flagRow = true;
419
428
  rtn._listData.unshift(newRow);
420
429
  }
421
430
  rtn._listData.unshift(v);
422
431
  });
423
432
  rtn.setHiddenRow();
424
433
  },
425
- doUpdate(data,searchValue1){
426
- let updateData=[];
434
+ doUpdate(data, searchValue1) {
435
+ let updateData = [];
427
436
  data.forEach((v) => {
428
437
  updateData.push(v);
429
- if(v.descNewRow){
438
+ if (v.descNewRow) {
430
439
  var newRow = {};
431
- newRow[rtn.rowHiddenKey]=v[rtn.rowHiddenKey];
440
+ newRow[rtn.rowHiddenKey] = v[rtn.rowHiddenKey];
432
441
  newRow.descNewRow = v.descNewRow;
433
- newRow.colspan = rtn.dataFieldcolumnsShow.length-rtn.rowMergedColumns.length;
434
- newRow.columnShow=rtn.columnShow;
435
- newRow.flagRow=true;
442
+ newRow.colspan = rtn.dataFieldcolumnsShow.length - rtn.rowMergedColumns.length;
443
+ newRow.columnShow = rtn.columnShow;
444
+ newRow.flagRow = true;
436
445
  updateData.push(newRow);
437
446
  }
438
447
  });
439
- let strat=-1;
440
- let count=0;
441
- rtn._listData.forEach((v,i) => {
442
- if(v[rtn.rowHiddenKey]===searchValue1){
443
- if(strat===-1)strat=i;
444
- count=count+1;
448
+ let strat = -1;
449
+ let count = 0;
450
+ rtn._listData.forEach((v, i) => {
451
+ if (v[rtn.rowHiddenKey] === searchValue1) {
452
+ if (strat === -1) strat = i;
453
+ count = count + 1;
445
454
  }
446
455
  });
447
- if(updateData.length===1){
448
- rtn._listData.splice(strat, count,updateData[0]);
449
- }
450
- else if(updateData.length===2){
451
- rtn._listData.splice(strat, count,updateData[0],updateData[1]);
452
- }
453
- else if(updateData.length===3){
454
- rtn._listData.splice(strat, count,updateData[0],updateData[1],updateData[2]);
455
- }
456
- else if(updateData.length===4){
457
- rtn._listData.splice(strat, count,updateData[0],updateData[1],updateData[2],updateData[3]);
458
- }
459
- else if(updateData.length===5){
460
- rtn._listData.splice(strat, count,updateData[0],updateData[1],updateData[2],updateData[3],updateData[4]);
461
- }
462
- else if(updateData.length===6){
463
- rtn._listData.splice(strat, count,updateData[0],updateData[1],updateData[2],updateData[3],updateData[4],updateData[5]);
456
+ if (updateData.length === 1) {
457
+ rtn._listData.splice(strat, count, updateData[0]);
458
+ }
459
+ else if (updateData.length === 2) {
460
+ rtn._listData.splice(strat, count, updateData[0], updateData[1]);
461
+ }
462
+ else if (updateData.length === 3) {
463
+ rtn._listData.splice(strat, count, updateData[0], updateData[1], updateData[2]);
464
+ }
465
+ else if (updateData.length === 4) {
466
+ rtn._listData.splice(strat, count, updateData[0], updateData[1], updateData[2], updateData[3]);
467
+ }
468
+ else if (updateData.length === 5) {
469
+ rtn._listData.splice(strat, count, updateData[0], updateData[1], updateData[2], updateData[3], updateData[4]);
470
+ }
471
+ else if (updateData.length === 6) {
472
+ rtn._listData.splice(strat, count, updateData[0], updateData[1], updateData[2], updateData[3], updateData[4], updateData[5]);
464
473
  }
465
474
  rtn.setHiddenRow();
466
475
  },
@@ -495,39 +504,39 @@ const ContactList = function (source,para ,callBack) {
495
504
  return c;
496
505
  },
497
506
  setHiddenRow() {
498
- if (rtn.rowHiddenColumns.length===0) {
507
+ if (rtn.rowHiddenColumns.length === 0) {
499
508
  return;
500
509
  }
501
- let lastKey='';
502
- let count=1;
503
- let firstIndex=0;
504
- rtn.rowHiddenKeyData=[];
510
+ let lastKey = '';
511
+ let count = 1;
512
+ let firstIndex = 0;
513
+ rtn.rowHiddenKeyData = [];
505
514
  for (let i = 0; i < rtn.listData.length; i++) {
506
- if(!rtn.rowHiddenKeyData.includes(rtn.listData[i][rtn.rowHiddenKey])){
515
+ if (!rtn.rowHiddenKeyData.includes(rtn.listData[i][rtn.rowHiddenKey])) {
507
516
  rtn.rowHiddenKeyData.push(rtn.listData[i][rtn.rowHiddenKey])
508
517
  }
509
- rtn.listData[i].$rowspan=0;
510
- if(lastKey){
511
- if(rtn.listData[i][rtn.rowHiddenKey]){
512
- if(rtn.listData[i][rtn.rowHiddenKey]===lastKey){
513
- rtn.listData[i].rowHiddenColumns=rtn.rowHiddenColumns;
518
+ rtn.listData[i].$rowspan = 0;
519
+ if (lastKey) {
520
+ if (rtn.listData[i][rtn.rowHiddenKey]) {
521
+ if (rtn.listData[i][rtn.rowHiddenKey] === lastKey) {
522
+ rtn.listData[i].rowHiddenColumns = rtn.rowHiddenColumns;
514
523
  count++;
515
- if(i===rtn.listData.length-1){
516
- rtn.listData[firstIndex].$rowspan=count;
524
+ if (i === rtn.listData.length - 1) {
525
+ rtn.listData[firstIndex].$rowspan = count;
517
526
  }
518
527
  }
519
- else{
520
- rtn.listData[firstIndex].$rowspan=count;
521
- lastKey=rtn.listData[i][rtn.rowHiddenKey];
522
- count=1;
523
- firstIndex=i;
528
+ else {
529
+ rtn.listData[firstIndex].$rowspan = count;
530
+ lastKey = rtn.listData[i][rtn.rowHiddenKey];
531
+ count = 1;
532
+ firstIndex = i;
524
533
  }
525
534
  }
526
535
  }
527
- else{
528
- lastKey=rtn.listData[i][rtn.rowHiddenKey];
529
- count=1;
530
- firstIndex=i;
536
+ else {
537
+ lastKey = rtn.listData[i][rtn.rowHiddenKey];
538
+ count = 1;
539
+ firstIndex = i;
531
540
  }
532
541
  }
533
542
  },
@@ -535,7 +544,7 @@ const ContactList = function (source,para ,callBack) {
535
544
  return rtn;
536
545
  }
537
546
  if (typeof source === 'string') {
538
- Vue.prototype.$api.postHandler(common.globalUri(), { action: source,para:para}).then(
547
+ Vue.prototype.$api.postHandler(common.globalUri(), { action: source, para: para }).then(
539
548
  function (response) {
540
549
  if (response.rtnCode === Enum.ReturnCode.Successful) {
541
550
  var rtn = init(response);
@@ -469,6 +469,25 @@ const Detail = function (source, para, callBack) {
469
469
  get shortcutFollowForm() {
470
470
  return data.shortcutFollowForm;
471
471
  },
472
+ getAction(api, submitData, callback) {
473
+ Vue.prototype.$api.postHandler(common.globalUri(), {
474
+ action: api,
475
+ para: submitData
476
+ })
477
+ .then(function (response) {
478
+ if (response.rtnCode === Enum.ReturnCode.Successful) {
479
+ if (typeof callback !== 'undefined') {
480
+ callback(response.content);
481
+ }
482
+ }
483
+ })
484
+ .catch((error) => {
485
+ console.error(error);
486
+ if (typeof callback !== 'undefined') {
487
+ callback();
488
+ }
489
+ });
490
+ },
472
491
  doAction(response, field) {
473
492
  if (response.responseData) {
474
493
  response = response.responseData;
@@ -400,6 +400,9 @@ const Form = function (source, callBack, apiParam, failCallBack, isFormList) {
400
400
  && data.listData.currentRow.data.$sourceIndex === data.listData.source.rows[rowNum].$sourceIndex) {
401
401
  let currentField = data.listData.currentRow.data[fiedlId];
402
402
  currentField.source[attrName] = value;
403
+ // if (typeof currentField.self.$set === "function") {
404
+ // currentField.self.$set(currentField,attrName,value);
405
+ // }
403
406
  data.listData.currentRow.data[fiedlId].rowKey=Math.random();
404
407
  //校验自己
405
408
  if (currentField.self && currentField.self.validExcute) {
@@ -168,7 +168,7 @@ const FormList = function (source, master) {
168
168
  }
169
169
  if (item instanceof Object) {
170
170
  item.form = rtn.form;
171
- item.rowKey=Math.random(),
171
+ item.rowKey=Math.random();
172
172
  row.field.push(item);
173
173
  }
174
174
  });
package/src/main.js CHANGED
@@ -41,7 +41,7 @@ Vue.use(centaline, {
41
41
  // 获取请求头
42
42
  getRequestHeaders: function () {
43
43
  return {
44
- oldToken: '75bb9cb0-be2e-4f13-b833-932abc089020',
44
+ oldToken: '012d6b6a-db4b-47b1-b4ee-fea22af4f4fb',
45
45
  originalRequestURL: 'http://10.88.22.67:8080',
46
46
  EstateInfo: '{"estateId":"201703020943128D8A8FCF463E4016D6","estateName":"%E4%B8%87%E7%A7%91%E4%BA%91%E5%9F%8E"}',
47
47
  Authorization:'Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjE2OGI1YThjLThiZTUtNDQyZi04NTA4LWMyODY4N2NkYmEzMSJ9.Rk26QdZSUzDVdjdRxGxDApOt5W6KYjmyjmsXpWeZb5E5NwZjpXnHYwhYkKjNxIeyg--OV2UrzFa2SxGzZ-Wneg',