centaline-data-driven 1.5.37 → 1.5.39

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