centaline-data-driven 1.4.11 → 1.4.13

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.
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "centaline-data-driven",
3
- "version": "1.4.11",
3
+ "version": "1.4.13",
4
4
  "description": "ccai",
5
5
  "author": "hjc <3226136347@qq.com>",
6
6
  "private": false,
package/src/Detail.vue CHANGED
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div id="appDetail" style="height:100%;">
3
- <ct-Detail :api="'PropertyOFI/readDetailForBrowse'" :apiParam="apiParam" :pageType="'PropertyDetailOFI'"></ct-Detail>
3
+ <ct-Detail :api="'PropertyRET/readDetailForBrowse'" :apiParam="apiParam" :pageType="'PropertyDetailRET'"></ct-Detail>
4
4
  <ct-dialog-list></ct-dialog-list>
5
5
  </div>
6
6
  </template>
@@ -10,7 +10,7 @@
10
10
  name: 'DataDrivendetail',
11
11
  data() {
12
12
  return {
13
- apiParam: {actionType: 1,chanceID: "1590537844491948032"} ,
13
+ apiParam: {actionType: 1,chanceID: "1511930510518128640"} ,
14
14
  }
15
15
  },
16
16
  mounted() {
@@ -11,16 +11,16 @@
11
11
  :searchStatsApi="'/ProfileWorklistList/getListStats'">
12
12
  </ct-searchlist> -->
13
13
 
14
- <!-- <ct-searchlist
15
- :searchConditionApi="'/report/monthly/region/layout'"
16
- :searchDataApi="'/report/monthly/region/list'">
17
- </ct-searchlist> -->
18
-
19
14
  <ct-searchlist
15
+ :searchConditionApi="'/api/distribution/distributionList/getLayoutOfSearch'"
16
+ :searchDataApi="'/api/distribution/distributionList'">
17
+ </ct-searchlist>
18
+
19
+ <!-- <ct-searchlist
20
20
  :searchCategoryApi="'/PropertyPublishList/getLayoutOfSearchCategory'"
21
21
  :searchConditionApi="'/PropertyPublishList/getLayoutOfSearchForRET'"
22
22
  :searchDataApi="'/PropertyPublishList/getListOfSearchModelForRET'">
23
- </ct-searchlist>
23
+ </ct-searchlist> -->
24
24
 
25
25
  <!-- <ct-searchlist :searchConditionApi="'/PropertyRETList/getLayoutOfSearch'"
26
26
  :searchDataApi="'/PropertyRETList/getListOfSearchModel'"
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div style="width:100%;height:100%;">
3
- <iframe :src="src" ref="iframe" style="width:100%;height:99%;" frameborder="0" @load="sendMessage()"></iframe>
3
+ <iframe :src="src" ref="iframe" style="width:100%;height:99%;border-width: 0px;" frameborder="0" @load="sendMessage()"></iframe>
4
4
  </div>
5
5
  </template>
6
6
  <script>
@@ -40,6 +40,9 @@
40
40
  {{tag.label}}
41
41
  </div>
42
42
  </div>
43
+ <div v-if="model.fields1Dic.PropertyDepict" v-html="model.fields1Dic.PropertyDepict.value"
44
+ style="font-weight: bold;font-size: 13px; margin-top: 10px;background: rgb(236, 249, 255); flex: 1;align-items: center;padding: 5px;border-radius: 5px;">
45
+ </div>
43
46
  </div>
44
47
  <div style="margin-top: 16px;display: flex;height: 65px;border: 1px solid #ECEFF2;box-shadow: 0 2px 4px 0 rgba(0,0,0,0.06);border-radius: 6px;text-align: center;">
45
48
  <div style="width: 33.33%;">
@@ -1,9 +1,9 @@
1
1
  <template>
2
- <div style="width: 100%" v-if="model !== null" class="block ct-file" :class="[model.attrs.size ? 'ct-checkbox-' + model.attrs.size : '']">
2
+ <div style="width: 100%" ref="refupload" v-if="model !== null" class="block ct-file" :class="[model.attrs.size ? 'ct-checkbox-' + model.attrs.size : '']">
3
3
  <!--分片上传-->
4
4
  <template v-if="model.type==51">
5
5
  <el-upload :class="disableUpload ? 'ct-upload-display-none' : ''"
6
- :http-request="SliceUpload"
6
+ :http-request="SliceUpload"
7
7
  :disabled="model.lock"
8
8
  :accept="model.fileAccept"
9
9
  :on-change="handleChange"
@@ -62,7 +62,14 @@
62
62
  </el-dropdown>
63
63
  </span>
64
64
  </div>
65
- <el-progress type="circle" v-if="file.progressFlag" :percentage="Number(file.loadProgress.toFixed(2))" :width="96" :height="96" class="file-cirle"></el-progress>
65
+ <div>
66
+ <el-progress type="circle" v-if="file.progressFlag" :show-text="false"
67
+ :percentage="typeof file.loadProgress !== 'undefined' && file.loadProgress !== null ? file.loadProgress : 0.00"
68
+ :width="96" :height="96" class="file-cirle"></el-progress>
69
+ <div class="circleCenter" v-if="file.progressFlag">
70
+ <div style="font-size: 12px;color: #666;"> {{ file.loadProgress.toFixed(2) }}%</div>
71
+ </div>
72
+ </div>
66
73
  </div>
67
74
  </el-upload>
68
75
  </template>
@@ -128,7 +135,14 @@
128
135
  </el-dropdown>
129
136
  </span>
130
137
  </div>
131
- <el-progress type="circle" v-if="file.progressFlag" :percentage="Number(file.loadProgress.toFixed(2))" :width="96" :height="96" class="file-cirle"></el-progress>
138
+ <div>
139
+ <el-progress type="circle" v-if="file.progressFlag" :show-text="false"
140
+ :percentage="typeof file.loadProgress !== 'undefined' && file.loadProgress !== null ? file.loadProgress : 0.00"
141
+ :width="96" :height="96" class="file-cirle"></el-progress>
142
+ <div class="circleCenter" v-if="file.progressFlag">
143
+ <div style="font-size: 12px;color: #666;"> {{ file.loadProgress.toFixed(2) }}%</div>
144
+ </div>
145
+ </div>
132
146
  </div>
133
147
  </el-upload>
134
148
  </template>
@@ -441,32 +455,36 @@
441
455
  uploadguid() {
442
456
  return (this.S4() + this.S4() + '-' + this.S4() + '-' + this.S4() + '-' + this.S4() + '-' + this.S4() + this.S4() + this.S4());
443
457
  },
444
- uploadpro(uploadOptions, res, xhr) {
458
+ uploadpro(uploadOptions, res, xhr, flagError) {
445
459
  const { file, onProgress, onSuccess, onError } = uploadOptions;
446
- if (xhr.status >= 400) {
447
- this.$message.error(res);
448
- file.source = { "actionType": 2 };
449
- this.model.deleteFile(file, false);
450
- this.selfValidExcute("remove");
451
- }
452
- else if (xhr.status == 0) {
453
- this.$message.error(res);
454
- file.source= { "actionType": 2 } ;
455
- this.model.deleteFile(file, false);
456
- this.selfValidExcute("remove");
457
- }
458
- else if (xhr.status == 200) {
459
- if (res.rtnCode != 200 && res.rtnMsg != "") {
460
- this.$message.error(res.rtnMsg);
461
- return;
460
+
461
+ var refupload = this.$refs.refupload;
462
+ if (refupload) {
463
+ if (flagError) {
464
+ this.$message.error(res);
465
+ file.source = { "actionType": 2 };
466
+ this.model.deleteFile(file, false);
467
+ this.selfValidExcute("remove");
468
+ return false;
462
469
  }
463
- const Progress = Math.min(100, Math.floor(1E4 * parseInt(res.content.nextOffSet) / parseInt(file.size)) / 100);
464
- this.model.setByPieces(res, Progress, file);
470
+ else if (xhr.status == 200) {
471
+ if (res.rtnCode != 200 && res.rtnMsg != "") {
472
+ this.$message.error(res.rtnMsg);
473
+ return false;
474
+ }
475
+ const Progress = Math.min(100, Math.floor(1E4 * parseInt(res.content.nextOffSet) / parseInt(file.size)) / 100);
476
+ this.model.setByPieces(res, Progress, file);
465
477
 
466
- if (res.content.finished == 1) {
467
- this.handleChange();
478
+ if (res.content.finished == 1) {
479
+ this.handleChange();
480
+ }
481
+ return true;
468
482
  }
469
483
  }
484
+ else {
485
+ xhr = null;
486
+ return false;
487
+ }
470
488
  },
471
489
 
472
490
 
@@ -576,4 +594,10 @@
576
594
  .file-cirle .el-progress-circle {
577
595
  margin-left: 15px;
578
596
  }
597
+
598
+ .circleCenter {
599
+ position: absolute;
600
+ top: 38px;
601
+ left: 32px;
602
+ }
579
603
  </style>
@@ -162,8 +162,6 @@
162
162
  else {
163
163
  this.$refs.table.searchComplate(this.$refs.screen.model,this.$refs.screen.model.defaultSearch);
164
164
  }
165
-
166
- this.$refs.table.loadStats();
167
165
  },
168
166
  searchComplate(index) {
169
167
  this.pageDisabled=false;
@@ -169,7 +169,7 @@
169
169
  </el-button>
170
170
  </div>
171
171
  <div v-if="isLoading && searchLoading" v-loading="isLoading" style="top: 30px"></div>
172
- <iframe :src="downloadUrl" style="height:0px;width:0px">
172
+ <iframe :src="downloadUrl" style="height:0px;width:0px;border-width: 0px;">
173
173
  </iframe>
174
174
  </div>
175
175
  </template>
@@ -1422,6 +1422,7 @@ export default {
1422
1422
  this.model.setButtonsDisabled();
1423
1423
  this.model.setSelectAll();
1424
1424
  this.selectAllType = this.model.getSelectAll();
1425
+ this.$forceUpdate();
1425
1426
  },
1426
1427
  calculatingRowHeight() {
1427
1428
  let self = this;
@@ -40,7 +40,7 @@
40
40
  <template v-if="itemFile.mediaTypeID == '1'">
41
41
  <iframe :src="resultObject"
42
42
  :height="displayAreaHeight - 80 + 'px'"
43
- :width="displayAreaWidth + 'px'">
43
+ :width="displayAreaWidth + 'px'" style="border-width: 0px;">
44
44
  </iframe>
45
45
  </template>
46
46
  <!--Photo-->
@@ -160,7 +160,7 @@
160
160
  </div>
161
161
  </el-main>
162
162
  </el-container>
163
- <iframe :src="downloadUrl" style="height:0px;width:0px">
163
+ <iframe :src="downloadUrl" style="height:0px;width:0px;border-width: 0px;">
164
164
  </iframe>
165
165
  </div>
166
166
  </template>
@@ -8,7 +8,7 @@
8
8
  :height="displayAreaHeight - 78 + 'px'"
9
9
  :width="displayAreaWidth + 'px'"
10
10
  @load="complete()"
11
- @contextmenu="handleMouse"
11
+ @contextmenu="handleMouse" style="border-width: 0px;"
12
12
  >
13
13
  </iframe>
14
14
  </div>
@@ -277,7 +277,6 @@ const SearchTable = function (data, callBack, searchModel, flagSearch, defaultSe
277
277
  }
278
278
  },
279
279
  setSelectAll() {
280
-
281
280
  if (rtn.listData.length === 0) {
282
281
  return;
283
282
  }
@@ -288,7 +287,8 @@ const SearchTable = function (data, callBack, searchModel, flagSearch, defaultSe
288
287
  });
289
288
  if (!rtnData || rtnData.length > 0) {
290
289
  this.selectAll = 0;
291
- } else {
290
+ }
291
+ else {
292
292
  this.selectAll = 1;
293
293
  }
294
294
  }
@@ -1,24 +1,24 @@
1
1
 
2
2
  async function postFile(api, data, callback) {
3
- var xhr = new XMLHttpRequest();
4
- xhr.open('POST', api)
3
+ var xhr = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP");
4
+ xhr.open('POST', api, !0)
5
5
  xhr.onreadystatechange = function () {
6
- if (xhr.readyState === 4 && xhr.status === 200) {
7
- var rtn = JSON.parse(xhr.responseText);
8
- callback(xhr, rtn);
6
+ if (xhr.readyState != 4 || xhr.status < 200) {
7
+ return false;
9
8
  }
10
- else if (xhr.readyState === 4 && (xhr.status === 0 || xhr.status >= 400)) {
11
- var rtn = xhr.responseText || xhr.statusText;
12
- if (rtn == "") {
13
- if (xhr.status === 0) {
14
- rtn = "网络请求失败:" + api;
15
- } else {
16
- rtn = "status:" + xhr.status;
17
- }
18
- }
19
- callback(xhr, rtn);
9
+ else if (xhr.status >= 400) {
10
+ var msg = "\u521B\u5EFA\u4E0A\u4F20\u4EFB\u52A1\u5931\u8D25,\u72B6\u6001\u7801:" + xhr.status + xhr.responseText + ",\u8BF7\u68C0\u6D4B\u7F51\u7EDC...";
11
+ callback(xhr, msg, true);
12
+ return false;
20
13
  }
14
+ var rtn = JSON.parse(xhr.responseText);
15
+ callback(xhr, rtn, false);
21
16
  }
17
+ window.XMLHttpRequest && (xhr.onerror = function () {
18
+ var msg = "\u521B\u5EFA\u4E0A\u4F20\u4EFB\u52A1\u5931\u8D25,\u72B6\u6001\u7801:" + xhr.status + xhr.responseText + ",\u8BF7\u68C0\u6D4B\u7F51\u7EDC...";
19
+ callback(xhr, msg, true);
20
+ xhr = null;
21
+ });
22
22
  xhr.send(data)
23
23
  }
24
24
 
@@ -34,20 +34,20 @@ const uploadByPieces = async (url, { file }, callback, uploadOptions) => {
34
34
  };
35
35
 
36
36
  // 分片上传接口
37
- const uploadChunk = async (xhr, data) => {
37
+ const uploadChunk = async (xhr, data, flagError) => {
38
38
  return new Promise((resolve, reject) => {
39
-
40
- callback(uploadOptions, data, xhr);
41
- if (xhr.status === 200) {
42
- if (data.rtnCode == 200) {
43
- if (data.content.finished != 1) {
44
- uploadData.nextOffSet = data.content.nextOffSet;
45
- uploadData.blockSize = data.content.blockSize;
46
- readChunk(uploadData);
39
+ if (callback(uploadOptions, data, xhr, flagError)) {
40
+ if (xhr.status === 200) {
41
+ xhr = null;
42
+ if (data.rtnCode == 200) {
43
+ if (data.content.finished != 1) {
44
+ uploadData.nextOffSet = data.content.nextOffSet;
45
+ uploadData.blockSize = data.content.blockSize;
46
+ readChunk(uploadData);
47
+ }
47
48
  }
48
49
  }
49
50
  }
50
-
51
51
  })
52
52
  }
53
53
  function readFile(filechunk) {
@@ -1,97 +1,112 @@
1
1
  <template>
2
2
  <div class="ct-progress">
3
3
  <div style="padding: 5px;">
4
- <el-progress type="circle" :percentage="percentage"></el-progress>
4
+ <!-- <el-progress type="circle" :percentage="percentage"></el-progress> -->
5
+ <div class="circleBox">
6
+ <el-progress type="circle" v-if="progressFlag" :show-text="false"
7
+ :percentage="typeof percentage !== 'undefined' && percentage !== null ? percentage : 0.00" class="file-cirle">
8
+ </el-progress>
9
+ <div class="circleCenter" v-if="progressFlag">
10
+ <div style="font-size: 16px;color: #666;"> {{ percentage.toFixed(2) }}%</div>
11
+ </div>
12
+ </div>
5
13
  <span class="progressMsg">{{ message }}</span>
6
14
  </div>
7
- <iframe :src="downloadUrl" style="height:0px;width:0px">
15
+ <iframe :src="downloadUrl" style="height:0px;width:0px;border-width: 0px;">
8
16
  </iframe>
9
17
  </div>
10
18
  </template>
11
19
  <script>
12
- import { setTimeout } from 'timers';
13
- export default {
14
- name: 'ct-progress',
15
- props: {
16
- progressAction: String,
17
- progressKey: String,
18
- progressType: {
19
- type: String,
20
- default: 'export'
21
- },
20
+ import { setTimeout } from 'timers';
21
+ export default {
22
+ name: 'ct-progress',
23
+ props: {
24
+ progressAction: String,
25
+ progressKey: String,
26
+ progressType: {
27
+ type: String,
28
+ default: 'export'
22
29
  },
23
- data() {
24
- return {
25
- message: '',
26
- percentage: 0,
27
- isDestroy: false,
28
- downloadUrl:"",
29
- };
30
+ },
31
+ data() {
32
+ return {
33
+ message: '',
34
+ percentage: 0,
35
+ isDestroy: false,
36
+ downloadUrl: "",
37
+ progressFlag: false,
38
+ };
39
+ },
40
+ methods: {
41
+ load() {
30
42
  },
31
- methods: {
32
- load() {
33
- },
34
- getApiData() {
35
- const self = this;
36
- let params = {
37
- action: this.progressAction,
38
- para: {
39
- key: this.progressKey
40
- }
43
+ getApiData() {
44
+ const self = this;
45
+ let params = {
46
+ action: this.progressAction,
47
+ para: {
48
+ key: this.progressKey
41
49
  }
50
+ }
42
51
 
43
- if (self.isDestroy) {
44
- return;
45
- }
52
+ if (self.isDestroy) {
53
+ return;
54
+ }
46
55
 
47
- this.$api.postHandler(this.$common.globalUri(), params, null).then((response) => {
48
- const data = response.content;
49
- if (data) {
50
- if(data.processTaskName){
51
- self.message = data.processTaskName;
52
- }
53
- else if(data.rtnMsg){
54
- self.message = data.rtnMsg;
55
- }
56
- else if(response.rtnMsg){
57
- self.message = response.rtnMsg;
58
- }
56
+ this.$api.postHandler(this.$common.globalUri(), params, null).then((response) => {
57
+ const data = response.content;
58
+ if (data) {
59
+ if (data.processTaskName) {
60
+ self.message = data.processTaskName;
61
+ }
62
+ else if (data.rtnMsg) {
63
+ self.message = data.rtnMsg;
64
+ }
65
+ else if (response.rtnMsg) {
66
+ self.message = response.rtnMsg;
59
67
  }
60
-
61
- if (response.rtnCode === 200 && data.rtnCode === 200) {
62
- this.percentage = data.percentage;
63
- if (data.flagFinished) {
64
- if(this.progressType=='export' && data.content){
65
- if (data.content.indexOf("?") > -1) {
66
- self.downloadUrl = data.content + "&" + Math.random();
67
- }
68
- else {
69
- self.downloadUrl = data.content + "?" + Math.random();
70
- }
71
- // document.body.addEventListener('click', function() {
72
- // window.open(data.content, "_blank");
73
- // });
68
+ }
69
+
70
+ if (response.rtnCode === 200 && data.rtnCode === 200) {
71
+ this.progressFlag = true;
72
+ this.percentage = data.percentage;
73
+ if (data.flagFinished) {
74
+ if (this.progressType == 'export' && data.content) {
75
+ if (data.content.indexOf("?") > -1) {
76
+ self.downloadUrl = data.content + "&" + Math.random();
74
77
  }
75
- setTimeout(() => { self.$emit('finished',data); }, 800);
76
- }
77
- else {
78
- setTimeout(() => { self.getApiData() }, 1000);
78
+ else {
79
+ self.downloadUrl = data.content + "?" + Math.random();
80
+ }
81
+ // document.body.addEventListener('click', function() {
82
+ // window.open(data.content, "_blank");
83
+ // });
79
84
  }
85
+ setTimeout(() => {
86
+ self.$emit('finished', data);
87
+ }, 800);
80
88
  }
81
89
  else {
82
- self.isDestroy = true;
83
- self.$emit('error',data);
90
+ setTimeout(() => {
91
+ self.getApiData();
92
+ }, 1000);
84
93
  }
85
- });
86
- }
87
- },
88
- mounted() {
89
- this.getApiData();
90
- },
91
- beforeDestroy() {
92
- this.isDestroy = true;
94
+ }
95
+ else {
96
+ self.isDestroy = true;
97
+ self.$emit('error', data);
98
+ this.progressFlag = false;
99
+ }
100
+ });
93
101
  }
102
+ },
103
+ mounted() {
104
+ this.getApiData();
105
+ },
106
+ beforeDestroy() {
107
+ this.isDestroy = true;
94
108
  }
109
+ }
95
110
  </script>
96
111
  <style>
97
112
  .ct-progress {
@@ -102,4 +117,15 @@
102
117
  margin-top: 5px;
103
118
  display: block;
104
119
  }
120
+
121
+ .circleBox {
122
+ margin: 0 auto;
123
+ position: relative;
124
+ }
125
+
126
+ .circleCenter {
127
+ position: absolute;
128
+ top: 55px;
129
+ left: 145px;
130
+ }
105
131
  </style>
@@ -106,6 +106,7 @@ export default {
106
106
  text-align: left;
107
107
  top: 6px;
108
108
  right: 22px;
109
+ z-index: 10;
109
110
  }
110
111
 
111
112
  .my-icon-more {
@@ -324,6 +324,7 @@ const valid = {
324
324
  rtnValidate.push(valid.requiredMultiCombo);
325
325
  break;
326
326
  case Enum.ControlType.File:
327
+ case Enum.ControlType.SliceUpload:
327
328
  rtnValidate.push(valid.requiredFile);
328
329
  break;
329
330
  case Enum.ControlType.PhotoSelect:
package/src/main.js CHANGED
@@ -42,8 +42,8 @@ Vue.use(centaline, {
42
42
  // 获取请求头
43
43
  getRequestHeaders: function () {
44
44
  return {
45
- oldToken: '20ad6f77-b0fc-4a65-9334-eda7a89c5bcf',
46
- token:'aplus eyJhbGciOiJIUzI1NiIsInppcCI6IkRFRiJ9.eNrEjrEOgkAQRP9lazZhufX2jk4ObPwIcndugZURSDTGfxcjdPS-4hWTSWZeMM4JapAV3NFG71dwRxs9EXsh2-HRS0C2bNBRcBjYBj61nQlNCwXo4wY1WesqplKkgCFOv4AObL_BPOr9rM9_nLtOwzJbSZZoMqGLmpeyMeiVSmStLlKq-kQJ3h8AAAD__w.IYKSKulo_uX60Qc84xUSb5OPIb_Eir5EbSHfO9k1l3A',
45
+ oldToken: '94083010-671d-465a-95a9-1a3318ceb239',
46
+ token:'aplus eyJhbGciOiJIUzI1NiIsInppcCI6IkRFRiJ9.eNrEjrsOgkAQRf9laiZhmNnH0MmCjR9BdsOaYGUEEo3x39UIHb2nOMVp7n3CtCSowa3gjjZ6XcEdbfREoo5shwd1AcUKo6fgMYgNcmw7Dk0LBeT7FWqy1jsmQ1rAGOdfsGLoG5Yp30758Y9zl3n8zKaB1Q-lR61UUBxlTIYjVo6TlPHsDZfwegMAAP__.QfhMlAY_T_oYDtowkrq5sZ68l1iqJ4nvaxGUgo7fUS8',
47
47
 
48
48
  originalRequestURL: 'http://10.88.22.67:8080',
49
49
  EstateInfo: '{"estateId":"FAF029E8-EC28-4297-83CF-B8FFD826DB91","estateName":"AABBCC"}',