centaline-data-driven 1.5.16 → 1.5.18

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.
@@ -0,0 +1,766 @@
1
+ <template>
2
+ <div ref="main" class="main" style="position: relative;overflow: hidden;">
3
+ <div v-if="model !== null" style="height:36px;margin-top: 10px;display: flex;border-bottom: solid 2px var(--chinaRed);">
4
+ <el-popover v-if="model.routerForQRCode !== null" placement="left-start" trigger="hover" @show="fieldClickHandler(model.routerForQRCode, $event)">
5
+ <div style="border-bottom:none">
6
+ <div style="text-align: center;margin-bottom:10px;">APP扫码</div>
7
+ <div style="width:200px; height:200px;">
8
+ <img :src="model.QRCode" @click="fieldClickHandler(model.routerForQRCode, $event)" />
9
+ </div>
10
+ <div style="text-align: center;margin-top:10px;">点击二维码刷新</div>
11
+ </div>
12
+ <img class="code-ewm" slot="reference" :src="model.fields1Dic.ewmUrl.value"
13
+ style="width: 26px;height: 26px;vertical-align: bottom;margin-left:22px;" />
14
+ </el-popover>
15
+ <div :style="{ 'width': topWidth + 'px' }" style="font-size: 14px;color: var(--centalineBlack);padding-left: 10px;line-height: 26px;">
16
+ <!-- <span>{{ model.fields1Dic.PropertyNo.label }}</span>
17
+ <span>{{ model.fields1Dic.PropertyNo.value }}</span> -->
18
+ </div>
19
+ <img :class="{ 'domDisabled': selectIndex <= 0 }" @click="clickPrevHandler" src="../../../assets/T1.png" alt=""
20
+ style="width: 26px;height: 26px;vertical-align: bottom;margin-right:11px;cursor: pointer">
21
+ <img :class="{ 'domDisabled': selectIndex === rowCount - 1 }" @click="clickNextHandler" src="../../../assets/B1.png"
22
+ alt="" style="width: 26px;height: 26px;vertical-align: bottom;margin-right:8px;cursor: pointer">
23
+ <div v-if="!model.flagAppMode" class="el-icon-close cursor" style="padding-top: 5px;" @click="closeSideHandler">
24
+ </div>
25
+ <span v-if="model.flagAppMode" :slot="showIndex > 0 ? 'reference' : ''" class="more" style="margin-right: 10px;" @click="drawer = true"></span>
26
+ <el-drawer title="更多操作" :visible.sync="drawer" direction="ttb" :modal="false" class="drawerMore" size="30%" style="position: absolute;">
27
+ <div style="display: flex;flex-flow:row wrap ">
28
+ <component v-for="(router, index) in model.actionRoutersSimple.slice(showIndex)" :key="index" class="drawerButton"
29
+ v-if="!router.rightField || (model.fields1Dic[router.rightField] && model.fields1Dic[router.rightField].value == 1)"
30
+ :is="router.is" :vmodel="router" :flagAppMode="model.flagAppMode" :api="model.optionApi" @click="fieldClickHandler(router)">
31
+ </component>
32
+ </div>
33
+ </el-drawer>
34
+ </div>
35
+ <div v-if="model !== null" style="padding-left: 20px;padding-right: 20px;">
36
+ <!-- <div ref="title" style="margin-top: 18px;">
37
+ <div style="font-weight: Bold;font-size: 16px;color: #333333;display: flex;">
38
+ <img v-if="model.actionRouterFavorite" :src="model.actionRouterFavorite.imgUrl" alt=""
39
+ @click="fieldClickHandler(model.actionRouterFavorite, $event)" class="Simplecollection" />
40
+ <span class="cursorLink" @click="fieldClickHandler(model.actionRouterEstate, $event)">{{
41
+ model.fields1Dic.EstateName.value }}</span>
42
+ <span>{{ model.fields1Dic.BuildingName.value }}</span>
43
+ <span>{{ model.fields1Dic.RoomNo.value }}</span>
44
+ <div style="border: 1px solid #E0E0E0;font-size: 12px;color: #333333;padding-top: 3px;
45
+ width: 68px;height: 26px;border-radius: 6px;text-align: center;margin-left: auto;">
46
+ {{ model.fields1Dic.StatusName.value }}
47
+ </div>
48
+ </div>
49
+ <div style="font-size: 12px;color: #999999;margin-top: 7px;">
50
+ <span>{{ model.fields1Dic.DistrictName.value }}</span>
51
+ <span>{{ model.fields1Dic.AreaName.value }}</span>
52
+ </div>
53
+ <div style="display: flex;flex-wrap: wrap;">
54
+ <div v-for="(tag, index) in model.actionRouterLabel" :key="index" class="t-tag" style="margin-top: 7px;"
55
+ :style="{ color: tag.textColor, backgroundColor: tag.bgColor, borderColor: tag.borderColor }">
56
+ {{ tag.label }}
57
+ </div>
58
+ </div>
59
+ <div v-if="model.fields1Dic.PropertyDepict && model.fields1Dic.PropertyDepict.value !== ''"
60
+ v-html="model.fields1Dic.PropertyDepict.value"
61
+ 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; word-break: break-all;">
62
+ </div>
63
+ </div> -->
64
+ <div style="margin-top: 18px;">
65
+ <ct-albums :mediaAlbums="model.mediaAlbums" :noMediaUrl="model.noMediaUrl" :title="model.title" :imgWidth="'358'">
66
+ </ct-albums>
67
+ </div>
68
+ <div v-if="model.flagHiddenSensitiveInfo"
69
+ style="display: flex;align-items: center;justify-content: center;margin-top: 50%;height: 0px;">
70
+ <div v-html="model.hiddenSensitiveInfoReason"></div>
71
+ </div>
72
+ <!-- <div v-if="!model.flagHiddenSensitiveInfo" class="areaValue">
73
+ <div style="width: 33.33%;">
74
+ <div class="areaValuetile">{{ model.fields1Dic.Area.label.replace(':', '') }}</div>
75
+ <div class="areaValueRed">
76
+ {{ model.fields1Dic.Area.value }}{{ model.fields1Dic.Area.unitName }}</div>
77
+ </div>
78
+ <div style="width: 33.33%;">
79
+ <div class="areaValuetile">{{ model.fields1Dic.Price.label.replace(':', '') }}</div>
80
+ <div class="areaValueRed"><span
81
+ v-html="model.fields1Dic.Price.value"></span><span>{{ model.fields1Dic.Price.unitName }}</span></div>
82
+ </div>
83
+ <div style="width: 33.33%;">
84
+ <div class="areaValuetile">{{ model.fields1Dic.FloorName.label.replace(':', '') }}</div>
85
+ <div class="areaValueRed">
86
+ {{ model.fields1Dic.FloorName.value }}</div>
87
+ </div>
88
+ </div> -->
89
+ <div ref="contact" v-if="!model.flagHiddenSensitiveInfo && model.contactApiRouter !== null" id="contact" style="margin-top: 16px;">
90
+ <ct-contact :key="refreshKey" :apiRouter="model.contactApiRouter" :api="model.contactApiRouter.action" :apiParam="model.contactApiRouter.getSearchPara()"></ct-contact>
91
+ </div>
92
+ <div ref="routers" v-if="!model.flagAppMode && !model.flagHiddenSensitiveInfo && model.actionRoutersSimple !== null"
93
+ style="margin-top: 16px;display: flex;">
94
+ <component
95
+ v-for="(router, index) in model.actionRoutersSimple.slice(0, showIndex > 0 ? showIndex : model.actionRoutersSimple.length)"
96
+ :key="index" :ref="'routers' + index"
97
+ v-if="!router.rightField || (model.fields1Dic[router.rightField] && model.fields1Dic[router.rightField].value == 1)"
98
+ :is="router.is" :vmodel="router" :api="model.optionApi" @click="fieldClickHandler(router)">
99
+ </component>
100
+ <el-popover v-if="showIndex > 0" ref="popover0" :append-to-table="option.appendId ? option.appendId : ''"
101
+ class="Stats-popover" popper-class="elPopoverCenta" :placement="option.placement ? option.placement : 'left'"
102
+ :trigger="option.trigger ? option.trigger : ''">
103
+ <div class="tab-list" style="border-bottom:none;display: flex;flex-direction: column;">
104
+ <component v-for="(router, index) in model.actionRoutersSimple.slice(showIndex)" :key="index"
105
+ style="margin-bottom: 10px;margin-left: 0px;"
106
+ v-if="!router.rightField || (model.fields1Dic[router.rightField] && model.fields1Dic[router.rightField].value == 1)"
107
+ :is="router.is" :vmodel="router" :api="model.optionApi" @click="fieldClickHandler(router)">
108
+ </component>
109
+ </div>
110
+ <span :slot="showIndex > 0 ? 'reference' : ''" class="more" style="margin-left: 10px;"></span>
111
+ </el-popover>
112
+ </div>
113
+ <div ref="shortcutFollow" v-if="!model.flagHiddenSensitiveInfo && model.shortcutFollowForm !== undefined && model.shortcutFollowForm !== null"
114
+ class="shortcutFollow" style="margin-top: 16px;">
115
+ <ct-form :source="model.shortcutFollowForm" @submit="saveShortcutFollow"></ct-form>
116
+ </div>
117
+ <div v-if="!model.flagHiddenSensitiveInfo" class="tablist-info base-box">
118
+ <div class="details-tabs-box">
119
+ <el-tabs :value="model.activeIndex1" @tab-click="handleSelect">
120
+ <el-tab-pane v-for="(col, index) in model.tags1" :key="col.appID" :index="index.toString()"
121
+ :name="index.toString()">
122
+ <div slot="label" v-html="col.appName"></div>
123
+ </el-tab-pane>
124
+ </el-tabs>
125
+ <ct-searchlist ref="searchlist" v-if="model.searchConditionApiTags1"
126
+ :key="'list' + listKey.toString() + refershKey" :apiParam="model.paramDataTags1" :flagFocus="false"
127
+ :searchConditionApi="model.searchConditionApiTags1" :searchDataApi="model.searchDataApiTags1"
128
+ :flagAppMode="model.flagAppMode"></ct-searchlist>
129
+ </div>
130
+ </div>
131
+ </div>
132
+ <div v-if="isLoading" v-loading="isLoading" :style="{'height': loadingHeight+'px',}"></div>
133
+ </div>
134
+ </template>
135
+
136
+ <script>
137
+ import dynamicElement from '../../mixins/dynamicElement';
138
+ import dynamicContact from '../../dynamicContact/src/dynamicContact.vue';
139
+ import dynamicForm from '../../dynamicForm/src/dynamicForm.vue';
140
+ import dynamicAlbums from "./dynamicAlbums.vue";
141
+ export default {
142
+ name: 'ct-PropertySimpleDetailRET',
143
+ mixins: [dynamicElement],
144
+ components: {
145
+ 'ct-contact': dynamicContact,
146
+ 'ct-form': dynamicForm,
147
+ "ct-albums": dynamicAlbums,
148
+ },
149
+ props: {
150
+ vmodel: Object,
151
+ api: String,
152
+ apiParam: Object,
153
+ selectIndex: Number,
154
+ rowCount: Number,
155
+ drowerClose: String,
156
+ },
157
+ computed: {
158
+ },
159
+ data() {
160
+ return {
161
+ refreshKey: 0,
162
+ topWidth: 300,
163
+ showIndex: 0,
164
+ listKey: 0,
165
+ option: {
166
+ isHidden: true,//是否开启操作栏隐藏设置,默认开启
167
+ showNum: 3,//如果isHidden为true时,个数大于3就会隐藏,默认是3
168
+ appendId: '',//将浮动栏添加到对应id或者class节点中。或者.xxx。传空字符串是添加到body中。
169
+ trigger: 'hover',//触发方式,传值可查看Popper UI组件trigger属性
170
+ placement: 'left-start',//方向,传值可查看Popper UI组件placement属性
171
+ },
172
+ drawer: false,
173
+ isLoading:true,
174
+ loadingHeight:0,
175
+ }
176
+ },
177
+ watch: {
178
+ drowerClose(newValue) {
179
+ if (newValue == 'open') {
180
+ this.handleClose();
181
+ }
182
+ }
183
+ },
184
+ mounted() {
185
+ var self = this;
186
+ this.$nextTick(function () {
187
+ this.loadingHeight=this.$refs.main.parentElement.parentElement.offsetHeight;
188
+ if (self.vmodel) {
189
+ self.load(self.vmodel);
190
+ }
191
+ else if (typeof self.source !== 'undefined') {
192
+ self.loaderObj.Detail(self.source, null, self.load);
193
+ }
194
+ else if (typeof self.api !== 'undefined' && self.apiParam) {
195
+ self.loaderObj.Detail(self.api, self.apiParam, self.load);
196
+ }
197
+ });
198
+ },
199
+ activated() {
200
+ this.$nextTick(() => {
201
+ this.setDetailStyle();
202
+ })
203
+ },
204
+ methods: {
205
+ load(data) {
206
+ this.isLoading=false;
207
+ var self = this;
208
+ this.refershKey = this.refershKey + 1;
209
+ this.model = data;
210
+ this.model.$vue = self;
211
+ this.loadFields();
212
+ if (this.model.tags2 && this.model.tags2[0]) {
213
+ this.model.getTags2List(0);
214
+ }
215
+ if (typeof window.localStorage !== 'undefined') {
216
+ var tagkey = window.localStorage.getItem('simpletagkey');
217
+ if (self.model.tags1) {
218
+ for (var i = 0; i < self.model.tags1.length; i++) {
219
+ if (tagkey == self.model.tags1[i].appID) {
220
+ self.model.activeIndex1 = i.toString();
221
+ if (self.model.tags1 && self.model.tags1[i]) {
222
+ self.listKey = self.listKey + 1;
223
+ self.model.searchConditionApiTags1 = self.model.tags1[i].searchConditionAction || '';
224
+ self.model.searchDataApiTags1 = self.model.tags1[i].searchDataAction || '';
225
+ self.model.paramDataTags1 = self.model.tags1[i].paramData || '';
226
+ }
227
+ }
228
+ }
229
+ }
230
+ }
231
+ this.setDetailStyle();
232
+ this.$nextTick(() => {
233
+ window.addEventListener("resize", (ev) => {
234
+ self.setDetailStyle();
235
+ });
236
+ });
237
+ },
238
+ setDetailStyle() {
239
+ let self = this;
240
+ this.$nextTick(() => {
241
+ if (this.$refs.main) {
242
+ this.topWidth = this.$refs.main.clientWidth - 140;
243
+ }
244
+
245
+ let totalWidth = 0;
246
+ let sumWidth = 0;
247
+ let moreWidth = 20;
248
+ if (self.$refs.routers) {
249
+ totalWidth = self.$refs.routers.offsetWidth;
250
+ }
251
+ if (self.model && self.model.actionRoutersSimple) {
252
+ self.model.actionRoutersSimple.forEach((v, i) => {
253
+ if (!v.rightField || (self.model.fields1Dic[v.rightField] && self.model.fields1Dic[v.rightField].value == 1)) {
254
+ if (self.$refs['routers' + i] && self.$refs['routers' + i].length > 0 && self.$refs['routers' + i][0] && self.$refs['routers' + i][0].$el) {
255
+ if (sumWidth + self.$refs['routers' + i][0].$el.offsetWidth + moreWidth + 10 > totalWidth && self.showIndex === 0) {
256
+ self.showIndex = i;
257
+ }
258
+ else {
259
+ sumWidth = sumWidth + self.$refs['routers' + i][0].$el.offsetWidth + (i > 0 ? 10 : 0);
260
+ }
261
+ }
262
+ }
263
+ });
264
+ }
265
+ });
266
+ },
267
+ refreshPage() {
268
+ this.refreshKey = this.refreshKey + 1;
269
+ this.showIndex = 0;
270
+ this.setDetailStyle();
271
+ },
272
+ loadFields() {
273
+ var self = this;
274
+ if (!self.model.fields2Dic) return;
275
+ self.collapse = [];
276
+ var collapseItemArr = [];
277
+ var col = 0;
278
+ var colCount = 4;
279
+ self.model.fields2Dic.forEach((v, index) => {
280
+ if (v.type === 13) {
281
+ collapseItemArr = [];
282
+ col = 0;
283
+ }
284
+ else if (v.singleLine) {
285
+ if (collapseItemArr.length > 0) {
286
+ self.collapse.push(collapseItemArr);
287
+ collapseItemArr = [];
288
+ }
289
+ collapseItemArr.push(v);
290
+ self.collapse.push(collapseItemArr);
291
+ collapseItemArr = [];
292
+ col = 0;
293
+ }
294
+ else if (v.spanCols) {
295
+ collapseItemArr.push(v);
296
+ col = col + v.spanCols;
297
+ if (col === colCount || index === self.model.fields2Dic.length - 1) {
298
+ self.collapse.push(collapseItemArr);
299
+ collapseItemArr = [];
300
+ col = 0;
301
+ }
302
+ }
303
+ else {
304
+ collapseItemArr.push(v);
305
+ col = col + 1;
306
+ if (col === colCount || index === self.model.fields2Dic.length - 1) {
307
+ self.collapse.push(collapseItemArr);
308
+ collapseItemArr = [];
309
+ col = 0;
310
+ }
311
+ }
312
+ });
313
+ },
314
+ loadBaseInfo() {
315
+ this.model.loadBaseInfo();
316
+ },
317
+ loadFavorite() {
318
+ this.model.loadFavorite();
319
+ },
320
+ loadqrCode() {
321
+ this.model.loadqrCode();
322
+ },
323
+ handleClick(tab, event) {
324
+ let i = tab.index;
325
+ if (this.model.tags2 && this.model.tags2[i]) {
326
+ this.model.getTags2List(i);
327
+ }
328
+ },
329
+ handleSelect(key, keyPath) {
330
+ let i = key.index;
331
+ this.model.activeIndex1 = i;
332
+ if (this.model.tags1 && this.model.tags1[i]) {
333
+ this.listKey = this.listKey + 1;
334
+ this.model.searchConditionApiTags1 = this.model.tags1[i].searchConditionAction || '';
335
+ this.model.searchDataApiTags1 = this.model.tags1[i].searchDataAction || '';
336
+ this.model.paramDataTags1 = this.model.tags1[i].paramData || '';
337
+ window.localStorage.setItem("simpletagkey", this.model.tags1[i].appID);//存储
338
+ }
339
+ },
340
+ fieldClickHandler(field) {
341
+ if (this.$refs['popover0']) {
342
+ this.$refs['popover0'].doClose();
343
+ }
344
+ if (field == null || field == undefined) {
345
+ return;
346
+ }
347
+ var self = this;
348
+ self.handleClose();
349
+ var callBack = null;
350
+ let submitData = {};
351
+ var router = this.model.actionRouters.find((v) => {
352
+ return v.id === field.id;
353
+ });
354
+ if (router == undefined && this.model.actionRoutersMoreList) {
355
+ router = this.model.actionRoutersMoreList.find((v) => {
356
+ return v.id === field.id;
357
+ });
358
+ }
359
+ if (router == undefined && this.model.otherTradeActionRouter) {
360
+ if (field.id === this.model.otherTradeActionRouter.id) {
361
+ router = this.model.otherTradeActionRouter
362
+ }
363
+ }
364
+ if (router == undefined && this.model.operationRouters) {
365
+ router = this.model.operationRouters.find((v) => {
366
+ return v.id === field.id;
367
+ });
368
+ callBack = "loadOperation";
369
+ }
370
+ if (router == undefined && this.model.actionRouterFavorite) {
371
+ if (field.id === this.model.actionRouterFavorite.id) {
372
+ router = this.model.actionRouterFavorite;
373
+ }
374
+ }
375
+ if (router == undefined && this.model.routerForQRCode) {
376
+ if (field.id === this.model.routerForQRCode.id) {
377
+ router = this.model.routerForQRCode;
378
+ }
379
+ }
380
+ if (router == undefined && this.model.actionRouterEstate) {
381
+ if (field.id === this.model.actionRouterEstate.id) {
382
+ router = this.model.actionRouterEstate;
383
+ }
384
+ }
385
+ if (router == undefined && this.model.actionRouterMap) {
386
+ if (field.id === this.model.actionRouterMap.id) {
387
+ router = this.model.actionRouterMap;
388
+ }
389
+ }
390
+
391
+ if (router) {
392
+ if (field.isSubmitDataFromSelf) {
393
+ router.submitFormField.forEach((v) => {
394
+ submitData[v] = field.list[field.listIndex].code;
395
+ });
396
+ }
397
+ else {
398
+ router.submitFormField.forEach((v) => {
399
+ submitData[v] = self.model.fields1Dic[v].value;
400
+ });
401
+ }
402
+ if (router.id == "PropertyEdit") {
403
+ callBack = "loadBaseInfo"
404
+ }
405
+ else if (router.id == "Favorite") {
406
+ callBack = "loadFavorite"
407
+ }
408
+ else if (router.id == "qrCode") {
409
+ callBack = "loadqrCode"
410
+ }
411
+ }
412
+
413
+ if (callBack) {
414
+ if (callBack == 'loadOperation') {
415
+ this.routerClickHandler(router, submitData, self.loadOperation);
416
+ }
417
+ else if (callBack == 'loadBaseInfo') {
418
+ this.routerClickHandler(router, submitData, self.loadBaseInfo);
419
+ }
420
+ else if (callBack == 'loadFavorite') {
421
+ this.routerClickHandler(router, submitData, self.loadFavorite);
422
+ }
423
+ else if (callBack == 'loadqrCode') {
424
+ self.loadqrCode();
425
+ }
426
+ }
427
+ else {
428
+ this.routerClickHandler(router, submitData);
429
+ }
430
+ },
431
+ routerClickHandler(field, submitData, callBack) {
432
+ var self = this;
433
+ // this.model.scripts.$fd = field.id;
434
+ // this.model.scripts.$result = [];
435
+
436
+ var clickAcion = function (field) {
437
+ //若不是客户端方法,则直接访问接口
438
+ if (!field.isClientFuntion) {
439
+ // if (typeof field.onClick !== 'undefined') {
440
+ // verified = self.$common.excute.call(self.model.scripts, field.onClick);
441
+ // }
442
+
443
+ if (field.isTabInSystem) {
444
+ if (field.isOpenBaiduMap) {
445
+ submitData = field.getActionPara(submitData).para;
446
+ self.$common.getDataDrivenOpts().handler.openTabBaiduMap(submitData, field.pageTitle || field.label);
447
+ }
448
+ }
449
+ else if (field.isTabInBrowse) {
450
+
451
+ }
452
+ else if (field.isLayerInSystem) {
453
+ if (field.isOpenBaiduMap) {
454
+ var dialogOption = {
455
+ title: field.pageTitle,
456
+ pane: self.$common.getParentPane(self),
457
+ content: [
458
+ {
459
+ component: "ct-mapBaidu",
460
+ attrs: {
461
+ field: field,
462
+ apiParam: field.getActionPara(submitData).para,
463
+ width: field.dialogWidth + "px",
464
+ height: field.dialogHeight + "px",
465
+ },
466
+ on: {
467
+ submit(ev) {
468
+ if (callBack) {
469
+ callBack(field);
470
+ }
471
+ self.$common.closeDialog(dialogOption.dialog);
472
+ },
473
+ closeDialog(ev) {
474
+ }
475
+ },
476
+ },
477
+ ],
478
+ };
479
+ self.$common.openDialog(dialogOption);
480
+ }
481
+ }
482
+ else if (field.isOpenForm) {
483
+ var dialogOption = {
484
+ title: field.pageTitle,
485
+ pane: self.$common.getParentPane(self),
486
+ content: [{
487
+ component: 'ct-form',
488
+ attrs: {
489
+ api: field.action,
490
+ apiParam: field.getActionPara(submitData).para,
491
+ showTitle: false,
492
+ width: field.dialogWidth + 'px',
493
+ height: field.dialogHeight + 'px'
494
+ },
495
+ on: {
496
+ submit(ev) {
497
+ self.model.doAction(ev, field);
498
+ if (callBack) {
499
+ callBack();
500
+ }
501
+ self.$common.closeDialog(dialogOption.dialog);
502
+ if (field.id != "Favorite") {
503
+ self.$emit('simpleRouterclickHandler', field, ev);
504
+ }
505
+ }
506
+ }
507
+ }]
508
+ };
509
+ self.$common.openDialog(dialogOption);
510
+ }
511
+ else if (field.isOpenList) {
512
+ var dialogOption = {
513
+ title: field.pageTitle,
514
+ pane: self.$common.getParentPane(self),
515
+ content: [{
516
+ component: 'ct-searchlist',
517
+ attrs: {
518
+ searchConditionApi: field.actionForSearchLayout,
519
+ searchDataApi: field.actionForSearch,
520
+ apiParam: submitData,
521
+ width: field.dialogWidth + 'px',
522
+ height: field.dialogHeight + 'px'
523
+ },
524
+ on: {
525
+ submit(ev) {
526
+ self.model.updateFields(ev, () => {
527
+ self.$refs.Fields.forEach((fd) => {
528
+ fd.$forceUpdate();
529
+ });
530
+ });
531
+ self.$common.closeDialog(dialogOption.dialog);
532
+ },
533
+ closeDialog(ev) {
534
+ if (field.id == "Favorite" && callBack) {
535
+ callBack();
536
+ }
537
+ }
538
+ }
539
+ }]
540
+ };
541
+ self.$common.openDialog(dialogOption);
542
+ }
543
+ else if (field.isFormPageInTab) {// 外部框架tab页打开
544
+ submitData = field.getActionPara(submitData).para;
545
+ self.$common.getDataDrivenOpts().handler.openTab(field.action, submitData, field.pageTitle, self.model, field.dialogWidth);
546
+ }
547
+ else if (field.isSearchPageInTab) {// 外部框架tab页打开
548
+ submitData = field.getActionPara(submitData).para;
549
+ self.$common.getDataDrivenOpts().handler.openTabSearch(field, submitData);
550
+ }
551
+ else if (field.isUrlInSystemTab) {//外部框架tab页打开URl
552
+ submitData = field.getActionPara(submitData).para;
553
+ let query = self.$common.objectToQueryStr(submitData);
554
+ let urlTab = field.action + query;
555
+ if (field.action.indexOf('?') > -1 && query.indexOf('?') > -1) {
556
+ urlTab = field.action + '&' + query.substr(1, query.length);
557
+ }
558
+ self.$common.getDataDrivenOpts().handler.openTabUrl(urlTab, field.pageTitle || field.label);
559
+ }
560
+ else if (field.isBrowserNewTab) {// 浏览器打开
561
+ submitData = field.getActionPara(submitData).para;
562
+ let query = self.$common.objectToQueryStr(submitData);
563
+ let urlTab = field.action + query;
564
+ if (field.action.indexOf('?') > -1 && query.indexOf('?') > -1) {
565
+ urlTab = field.action + '&' + query.substr(1, query.length);
566
+ }
567
+ window.open(urlTab, "_blank");
568
+ }
569
+ else if (field.isOpenUrlInBrowse) {// 浏览器打开
570
+ window.open(submitData[field.submitFormField], "_blank");
571
+ }
572
+ else if (field.isSeeVoice) {//看视频
573
+ self.$common.browseVideo(field, submitData)
574
+ }
575
+ else {
576
+ field.doAction(submitData, (data) => {
577
+ if (callBack) {
578
+ callBack();
579
+ }
580
+ if (field.isCallTel) {
581
+ self.model.doAction(data, field);
582
+ if (self.model.currentCallTel) {
583
+ self.$refs[self.model.currentCallTel][0].closeCallTel()
584
+ }
585
+ self.model.currentCallTel = 'router' + field.id + field.rowindex;
586
+ self.$refs['router' + field.id + field.rowindex][0].callTelClick(data);
587
+ }
588
+ else {
589
+ self.model.doAction(data, field);
590
+ self.$emit('simpleRouterclickHandler', field, data);
591
+ }
592
+ })
593
+ }
594
+ }
595
+ //执行客户端脚本
596
+ else {
597
+ submitData = field.getActionPara(submitData).para;
598
+ let title = field.pageTitle == undefined ? field.label : field.pageTitle;
599
+ submitData.actionType = field.actionType;
600
+ var fun = self.$common.getDataDrivenOpts().handler[field.action];
601
+ fun(submitData, title, self.model);
602
+ }
603
+ }
604
+
605
+ if (field.isSubmit && !self.validExcute()) {
606
+ return;
607
+ }
608
+
609
+ if (field.alert) {
610
+ self.$common.confirm(field.alertMsg, field.alertCaption, {
611
+ confirmButtonText: field.alertOKButtonText,
612
+ cancelButtonText: field.alertCancelButtonText,
613
+ //type: 'warning'
614
+ center: field.alertCenter
615
+ }).then(() => {
616
+ clickAcion(field, submitData);
617
+ }).catch(() => {
618
+ });
619
+ }
620
+ else {
621
+ clickAcion(field, submitData);
622
+ }
623
+ },
624
+ handleClose() {
625
+ let self = this;
626
+ self.drawer = false;
627
+ },
628
+ closeSideHandler() {
629
+ this.$emit('closeSideHandler');
630
+ },
631
+ setBtnHandler(index, count) {
632
+ this.selectIndex = index;
633
+ this.count = count;
634
+ },
635
+ clickNextHandler() {
636
+ this.$emit('clickNextHandler');
637
+ },
638
+ clickPrevHandler() {
639
+ this.$emit('clickPrevHandler');
640
+ },
641
+ saveShortcutFollow() {
642
+ var self = this;
643
+ self.model.tags1.forEach((v, i) => {
644
+ if (v.appID == 'Follow') {
645
+ self.model.activeIndex1 = i.toString();
646
+ self.listKey = self.listKey + 1;
647
+ self.model.searchConditionApiTags1 = v.searchConditionAction || '';
648
+ self.model.searchDataApiTags1 = v.searchDataAction || '';
649
+ self.model.paramDataTags1 = v.paramData || '';
650
+ }
651
+ });
652
+ },
653
+ }
654
+ }
655
+ </script>
656
+ <style lang="scss" scoped>
657
+ .t-tag {
658
+ color: #999;
659
+ background: #f3f3f3;
660
+ border: 1px solid #d8d8d8;
661
+ padding: 2px 9px;
662
+ border-radius: 3px;
663
+ margin-right: 10px;
664
+ font-size: 12px;
665
+ }
666
+
667
+ .more {
668
+ background: url('../../../assets/more1.png')no-repeat;
669
+ background-size: 100% 100%;
670
+ width: 26px;
671
+ height: 26px;
672
+ display: table-caption;
673
+ cursor: pointer;
674
+ }
675
+ </style>
676
+ <style>
677
+ .drawerMore {
678
+ width: 410px;
679
+ left: auto;
680
+ top: 0;
681
+ }
682
+
683
+ .v-modal {
684
+ position: relative;
685
+ }
686
+
687
+ /* .drawerMore .el-drawer__container {
688
+ top: 27px;
689
+ } */
690
+ .drawerMore .el-drawer.ttb {
691
+ height: auto !important;
692
+ background: rgba(47, 47, 47, 0.8);
693
+ padding-bottom: 10px;
694
+ padding-left: 10px;
695
+ }
696
+
697
+ .drawerMore .el-drawer__header {
698
+ margin-bottom: 5px;
699
+ color: #fff;
700
+ padding-top: 10px;
701
+ padding-left: 10px;
702
+ font-size: 14px;
703
+ }
704
+
705
+ .drawerMore .el-drawer__body {
706
+ padding-left: 3px;
707
+ }
708
+
709
+ .drawerMore .el-drawer__header i.el-dialog__close.el-icon.el-icon-close {
710
+ color: #fff;
711
+ }
712
+
713
+ .drawerButton {
714
+ margin-bottom: 10px !important;
715
+ margin-left: 5px !important;
716
+ background-color: #181818 !important;
717
+ border-color: #181818 !important;
718
+ width: 92px !important;
719
+ height: 56px !important;
720
+ }
721
+
722
+ .drawerButton.el-button--primary:hover {
723
+ background: #2b2b2b;
724
+ border-color: #2b2b2b;
725
+ color: #FFF;
726
+ }
727
+
728
+ .drawerMore .el-icon-close:before {
729
+ content: "\E6DB";
730
+ }
731
+
732
+ .Simplecollection {
733
+ font-size: 18px;
734
+ margin-right: 10px;
735
+ cursor: pointer;
736
+ vertical-align: -2.85px;
737
+ width: 18px;
738
+ height: 18px;
739
+ margin-top: 2px;
740
+ }
741
+
742
+ .areaValue {
743
+ margin-top: 16px;
744
+ display: flex;
745
+ height: 65px;
746
+ border: 1px solid #ECEFF2;
747
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.06);
748
+ border-radius: 6px;
749
+ text-align: center;
750
+ color: var(--centalineBlack);
751
+ }
752
+
753
+ .areaValuetile {
754
+ margin-top: 13px;
755
+ font-size: 12px;
756
+ }
757
+
758
+ .areaValueRed {
759
+ margin-top: 7px;
760
+ font-size: 14px;
761
+ font-weight: Bold;
762
+ color: var(--chinaRed);
763
+ }
764
+ </style>
765
+
766
+