centaline-data-driven 1.5.20 → 1.5.22

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.
Files changed (41) hide show
  1. package/build/centaline/centaline.path.js +1 -0
  2. package/package.json +1 -1
  3. package/release-log.md +53 -0
  4. package/src/Detail.vue +10 -2
  5. package/src/Form.vue +2 -2
  6. package/src/SearchList.vue +12 -2
  7. package/src/SearchTree.vue +2 -2
  8. package/src/centaline/api/index.js +3 -3
  9. package/src/centaline/css/common.css +5 -3
  10. package/src/centaline/dynamicCb/src/dynamicCb.vue +5 -1
  11. package/src/centaline/dynamicContainer/index.js +14 -0
  12. package/src/centaline/dynamicContainer/src/dynamicContainer.vue +151 -0
  13. package/src/centaline/dynamicDetail/src/dynamicAlbums.vue +5 -5
  14. package/src/centaline/dynamicDetail/src/dynamicDetail.vue +30 -7
  15. package/src/centaline/dynamicDetail/src/dynamicEstateBuildingDetail.vue +1659 -0
  16. package/src/centaline/dynamicDetail/src/dynamicEstateSimpleDetail.vue +42 -20
  17. package/src/centaline/dynamicDetail/src/dynamicPropertySimpleDetailRET.vue +30 -11
  18. package/src/centaline/dynamicForm/src/dynamicForm.vue +19 -4
  19. package/src/centaline/dynamicForm/src/dynamicFormListTable.vue +1 -1
  20. package/src/centaline/dynamicInputNumber/src/dynamicInputNumber.vue +5 -1
  21. package/src/centaline/dynamicLayout/src/dynamicLayout.vue +1 -2
  22. package/src/centaline/dynamicLayout/src/dynamicLayoutLabel.vue +2 -2
  23. package/src/centaline/dynamicPhotoSelect/src/dynamicPhotoSelect.vue +3 -2
  24. package/src/centaline/dynamicSearchList/src/dynamicSearchList.vue +64 -30
  25. package/src/centaline/dynamicSearchList/src/dynamicSearchTable.vue +53 -15
  26. package/src/centaline/dynamicSeg/src/dynamicSeg.vue +5 -1
  27. package/src/centaline/dynamicTree/src/dynamicTree.vue +4 -5
  28. package/src/centaline/dynamicTree/src/dynamicTreeList.vue +9 -2
  29. package/src/centaline/loader/src/ctl/CellLayout.js +20 -3
  30. package/src/centaline/loader/src/ctl/Container.js +208 -0
  31. package/src/centaline/loader/src/ctl/Form.js +12 -0
  32. package/src/centaline/loader/src/ctl/FormList.js +5 -3
  33. package/src/centaline/loader/src/ctl/Router.js +3 -0
  34. package/src/centaline/loader/src/ctl/SearchTable.js +28 -6
  35. package/src/centaline/loader/src/ctl/lib/Enum.js +7 -0
  36. package/src/centaline/loader/src/ctl/lib/LibFunction.js +5 -1
  37. package/src/centaline/loader/src/ctl.js +1 -0
  38. package/src/centaline/validate/index.js +4 -2
  39. package/src/main.js +5 -5
  40. package/wwwroot/static/centaline/centaline-data-driven.js +3 -3
  41. package/wwwroot/static/centaline/centaline-data-driven.js.map +1 -1
@@ -0,0 +1,1659 @@
1
+ <template>
2
+ <div ref="main" class="main" v-if="model !== null">
3
+ <div class="details-content">
4
+ <div ref="header" class="details-head base-box mb10">
5
+ <div class="head-info">
6
+ <div class="title">
7
+ <!-- <span>{{ model.fields1Dic.StatusName.value }}</span> -->
8
+ <!-- <span class="head-line"></span> -->
9
+ <!-- <span class="cursorLink" @click="fieldClickHandler(model.actionRouterEstate, $event)">{{ model.fields1Dic.EstateName.value }}</span> -->
10
+ <span>{{ model.fields1Dic.BuildingName.value }}</span>
11
+ <span v-if="model.fields1Dic.BuildingRightsName.value">{{ model.fields1Dic.BuildingRightsName.value }}</span>
12
+ <!-- <img v-if="model.actionRouterFavorite" :src="model.actionRouterFavorite.imgUrl" alt="" @click="fieldClickHandler(model.actionRouterFavorite, $event)" class="collection" /> -->
13
+ <component v-if="model.otherTradeActionRouter !== null" v-bind="model.otherTradeActionRouter" class="max-default w93"
14
+ :is="model.otherTradeActionRouter.is" :vmodel="model.otherTradeActionRouter" :api="model.optionApi" style="margin-left: 10px;"
15
+ @click="fieldClickHandler(model.otherTradeActionRouter, $event)"></component>
16
+ </div>
17
+ <div class="title-other">
18
+ <span v-if="model.fields1Dic.Address1.value">{{ model.fields1Dic.Address1.label }}{{ model.fields1Dic.Address1.value }}</span>
19
+ <!-- <span>{{ model.fields1Dic.GovNo.label }}{{ model.fields1Dic.GovNo.value }}</span> -->
20
+ <!-- <span class="mr10">{{model.fields1Dic["DistrictName"].value + model.fields1Dic.AreaName.value}}</span> -->
21
+ <img v-if="model.actionRouterMap" @click="fieldClickHandler(model.actionRouterMap, $event)" :src="model.actionRouterMap.imgUrl || model.fields1Dic.LocationUrl.value" alt="" class="location cursor"/>
22
+ </div>
23
+ <div class="title-tags">
24
+ <div class="t-tag" v-for="(tag, index) in model.actionRouterLabel" :key="index"
25
+ :style="{color: tag.textColor,backgroundColor: tag.bgColor,borderColor: tag.borderColor,}">
26
+ {{ tag.label }}
27
+ </div>
28
+ </div>
29
+ <div v-if="model.fields1Dic.PropertyDepict && model.fields1Dic.PropertyDepict.value !== ''" v-html="model.fields1Dic.PropertyDepict.value"
30
+ 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;">
31
+ </div>
32
+ </div>
33
+ <div class="head-but" :key="actionRoutersKey">
34
+ <div>
35
+ <component class="max-report w93"
36
+ v-if="model.actionRouters !== null && model.actionRouters[0]"
37
+ :is="model.actionRouters[0].is" :vmodel="model.actionRouters[0]" :api="model.optionApi"
38
+ @click="fieldClickHandler(model.actionRouters[0], $event)">
39
+ </component>
40
+ <component class="max-report w93"
41
+ v-if="model.actionRouters !== null && model.actionRouters[1]"
42
+ :is="model.actionRouters[1].is" :vmodel="model.actionRouters[1]" :api="model.optionApi"
43
+ @click="fieldClickHandler(model.actionRouters[1], $event)">
44
+ </component>
45
+ <button type="button" class="el-button el-button--info el-button--mini max-report rel w93"
46
+ v-if="model.actionRoutersMoreList !== null && model.actionRoutersMoreList.length > 0">
47
+ <!-- <img src="../../../assets/dian.png" alt="" class="report" /> -->
48
+ <i class="el-icon-more"></i>
49
+ <ul class="report-cont">
50
+ <li v-for="(col, index) in model.actionRoutersMoreList" :key="index" v-if="col.show !== false">
51
+ <component class="max-report w93" :is="col.is" :vmodel="col" :api="model.optionApi"
52
+ @click="fieldClickHandler(col, $event)"></component>
53
+ </li>
54
+ </ul>
55
+ </button>
56
+ <component v-else-if="model.actionRouters !== null && model.actionRouters.length === 3" class="max-report w93"
57
+ :is="model.actionRouters[2].is" :vmodel="model.actionRouters[2]" :api="model.optionApi"
58
+ @click="fieldClickHandler(model.actionRouters[2], $event)">
59
+ </component>
60
+ <img :class="{domDisabled:flagDisabledPrev,}" @click="clickPrevHandler"
61
+ src="../../../assets/T1.png" alt="" style="width: 26px;height: 26px;vertical-align: bottom;margin-left: 10px;cursor: pointer;"/>
62
+ <img :class="{domDisabled:flagDisabledNext,}" @click="clickNextHandler"
63
+ src="../../../assets/B1.png" alt="" style="width: 26px;height: 26px;vertical-align: bottom;margin-left: 10px;margin-right: 13px;cursor: pointer;"/>
64
+ </div>
65
+ </div>
66
+ </div>
67
+ <div v-if="model.flagHiddenSensitiveInfo" :style="{height:flagHiddenSensitiveInfoHeight+'px'}" style="display: flex;align-items: center;justify-content: center;">
68
+ <div v-html="model.hiddenSensitiveInfoReason"></div>
69
+ </div>
70
+ <div v-if="!model.flagHiddenSensitiveInfo" ref="detail" class="details-mid y-auto" @scroll="scrollHandle($event)" :style="{height: model.detailHeight ? model.detailHeight + 'px' : '780px',}">
71
+ <div ref="midl" class="mid-l" :style="{width: model.midlWidth ? model.midlWidth + 'px' : '1200px',}">
72
+ <!-- 图片内容部分 -->
73
+ <div class="hous-info base-box">
74
+ <div class="info-conten">
75
+ <div class="hous-t">
76
+ <ct-albums :mediaAlbums="model.mediaAlbums" :noMediaUrl="model.noMediaUrl" @addMedia="addMedia" :title="model.title">
77
+ </ct-albums>
78
+ </div>
79
+ <div class="hous-b">
80
+ <el-popover v-if="model.routerForQRCode !== null" placement="left-start" trigger="hover" @show="fieldClickHandler(model.routerForQRCode, $event)">
81
+ <div style="border-bottom:none">
82
+ <div style="text-align: center;margin-bottom:10px;">APP扫码</div>
83
+ <div style="width:200px; height:200px;"><img :src="model.QRCode" @click="fieldClickHandler(model.routerForQRCode, $event)" /></div>
84
+ <div style="text-align: center;margin-top:10px;">点击二维码刷新</div>
85
+ </div>
86
+ <img class="code-ewm" slot="reference" :src="model.fields1Dic.ewmUrl.value" />
87
+ </el-popover>
88
+ <div class="info-row">
89
+ <div v-if="model.fields1Dic.Price" class="row-i">
90
+ <div class="rowLable">{{ model.fields1Dic.Price.label }}</div>
91
+ <div style="height:26px;">
92
+ <span class="base-clolr expand-f" v-html="model.fields1Dic.Price.value"></span>
93
+ <span class="base-clolr">{{model.fields1Dic.Price.unitName}}</span>
94
+ <component v-if="model.actionRouterPrice" class="ml10"
95
+ :is="model.actionRouterPrice.is" :vmodel="model.actionRouterPrice" :api="model.optionApi"
96
+ @click="fieldClickHandler(model.actionRouterPrice, $event)">
97
+ </component>
98
+ </div>
99
+ </div>
100
+ <div v-if="model.fields1Dic.PriceUnit" class="row-i">
101
+ <div class="rowLable">{{ model.fields1Dic.PriceUnit.label }}</div>
102
+ <div>
103
+ <span class="base-clolr expand-f" v-html="model.fields1Dic.PriceUnit.value"></span>
104
+ <span class="base-clolr">{{model.fields1Dic.PriceUnit.unitName}}</span>
105
+ </div>
106
+ </div>
107
+ <div v-if="model.fields1Dic.PriceLine" class="row-i row-b">
108
+ <div class="rowLable">{{ model.fields1Dic.PriceLine.label }}</div>
109
+ <div>
110
+ {{ model.fields1Dic.PriceLine.value}}{{ model.fields1Dic.PriceLine.unitName }}
111
+ </div>
112
+ </div>
113
+ </div>
114
+ <div class="info-row" style="padding: 10px 0;">
115
+ <div v-if="model.fields1Dic.PriceLine" class="row-i row-b">
116
+ <div class="rowLable">{{ model.fields1Dic.MarketRateOfReturn.label }}</div>
117
+ <div>
118
+ <span>{{ model.fields1Dic.MarketRateOfReturn.value }} </span>
119
+ <span>{{ model.fields1Dic.MarketRateOfReturn.unitName }}</span>
120
+ </div>
121
+ </div>
122
+ <div v-if="model.fields1Dic.EstimatePriceRent" class="row-i row-b">
123
+ <div class="rowLable">{{ model.fields1Dic.EstimatePriceRent.label }}</div>
124
+ <div>
125
+ {{ model.fields1Dic.EstimatePriceRent.value }}
126
+ <span>{{ model.fields1Dic.EstimatePriceRent.unitName }}</span>
127
+ </div>
128
+ </div>
129
+ <div v-if="model.fields1Dic.EstimatePriceRentUnit" class="row-i row-b">
130
+ <div class="rowLable">{{ model.fields1Dic.EstimatePriceRentUnit.label }}</div>
131
+ <div>
132
+ <span>{{ model.fields1Dic.EstimatePriceRentUnit.value }}</span>
133
+ <span>{{ model.fields1Dic.EstimatePriceRentUnit.unitName }}</span>
134
+ </div>
135
+ </div>
136
+ </div>
137
+ <div class="info-mid">
138
+ <div class="mid-i" v-if="model.fields1Dic.Area">
139
+ <div class="rowLable">{{ model.fields1Dic.Area.label }}</div>
140
+ <div>
141
+ {{ model.fields1Dic.Area.value}}{{ model.fields1Dic.Area.unitName }}
142
+ </div>
143
+ </div>
144
+ <div class="mid-i" v-if="model.fields1Dic.AreaNet">
145
+ <div class="rowLable">{{ model.fields1Dic.AreaNet.label }}</div>
146
+ <div>
147
+ {{ model.fields1Dic.AreaNet.value}}{{ model.fields1Dic.AreaNet.unitName }}
148
+ </div>
149
+ </div>
150
+ <div class="mid-i" v-if="model.fields1Dic.FloorName">
151
+ <div class="rowLable">{{ model.fields1Dic.FloorName.label }}</div>
152
+ <div>{{ model.fields1Dic.FloorName.value }}</div>
153
+ </div>
154
+ <div class="mid-i" v-if="model.fields1Dic.PropertyDirectionID">
155
+ <div class="rowLable">{{ model.fields1Dic.PropertyDirectionID.label }}</div>
156
+ <div>{{ model.fields1Dic.PropertyDirectionID.value }}</div>
157
+ </div>
158
+ </div>
159
+ </div>
160
+ </div>
161
+ <div v-for="(col, index) in collapse" :key="index" class="info-conten-b" v-show="allInfo">
162
+ <div class="info-row">
163
+ <div v-for="(c, i) in col" :key="i" :class="c.singleLine === true ? 'row-i100' : 'row-i'">
164
+ <span class="rowLable">{{ c.label }}</span><span class="rowValue">{{ c.value }}</span>
165
+ </div>
166
+ </div>
167
+ </div>
168
+ <div class="open-mero" @click="allInfo = !allInfo">
169
+ {{ allInfo ? "收起全部" : "查看全部" }}
170
+ <i :class="allInfo ? 'more-colose' : 'mero-open'"></i>
171
+ </div>
172
+ </div>
173
+ <div class="contacts-info base-box">
174
+ <ct-contactList v-if="model.contactApiRouter !== null" :apiRouter="model.contactApiRouter" :key="'contact' + refershKey"></ct-contactList>
175
+ </div>
176
+ <div class="tablist-info base-box" style="padding-bottom: 0px;">
177
+ <div class="details-tabs-box">
178
+ <!--计算占用宽度-->
179
+ <div style="position: relative">
180
+ <div ref="tabsbox" style="position: absolute; left: -10000px">
181
+ <el-tabs>
182
+ <el-tab-pane v-for="(col, index) in model.tags1" :key="col.appID" :index="index.toString()" :name="index.toString()">
183
+ <div slot="label" v-html="col.appName" :ref="'StatisticsItem' + index"></div>
184
+ </el-tab-pane>
185
+ </el-tabs>
186
+ </div>
187
+ </div>
188
+ <!--展示-->
189
+ <div>
190
+ <div v-if="showData.length === 1">
191
+ <el-tabs :value="model.activeIndex1" @tab-click="handleSelect">
192
+ <el-tab-pane v-for="(col, index) in showData[0]" :key="col.appID" :index="index.toString()" :name="index.toString()">
193
+ <div slot="label" v-html="col.appName"></div>
194
+ </el-tab-pane>
195
+ </el-tabs>
196
+ </div>
197
+ <div v-if="showData.length > 1" style="position: relative">
198
+ <el-tabs :value="model.activeIndex1" @tab-click="handleSelect">
199
+ <el-tab-pane v-for="(col, index) in showData[0]" :key="col.appID" :index="index.toString()" :name="index.toString()">
200
+ <div slot="label" v-html="col.appName"></div>
201
+ </el-tab-pane>
202
+ </el-tabs>
203
+ <div class="more-dropdown">
204
+ <el-dropdown trigger="click" placement="bottom">
205
+ <span class="el-dropdown-link svgIcon">
206
+ <!-- <div class="my-icon-more"></div> -->
207
+ <img :src="iconSort" alt="" width="100%" />
208
+ </span>
209
+ <el-dropdown-menu slot="dropdown" class="tabsMore">
210
+ <el-dropdown-item v-for="(col, index) in showData[1]" :key="col.appID" :index="index.toString()"
211
+ :name="index.toString()" :class="{ 'is-active': showData[0].length + index == model.activeIndex1,}">
212
+ <div @click="handleDropDown(col, index)" :value="model.activeIndex1">
213
+ <div slot="label" v-html="col.appName"></div>
214
+ </div>
215
+ </el-dropdown-item>
216
+ </el-dropdown-menu>
217
+ </el-dropdown>
218
+ </div>
219
+ </div>
220
+ <ct-searchlist v-if="model.searchConditionApiTags1" :key="'list' + listKey.toString() + refershKey"
221
+ :pageHeight="'450px'" :from="'detail'" :apiParam="model.paramDataTags1" :flagFocus="false"
222
+ :searchConditionApi="model.searchConditionApiTags1" :searchDataApi="model.searchDataApiTags1">
223
+ </ct-searchlist>
224
+ </div>
225
+ </div>
226
+ </div>
227
+
228
+ <div class="contribute-info base-box" v-if="model._commissionList !== null">
229
+ <div class="title-l">贡献人信息</div>
230
+ <div class="contribute-list">
231
+ <div class="contribute-i" v-for="(m, index) in model._commissionList" :key="index">
232
+ <img :src="m.regEmpImgUrl" alt="图片" />
233
+ <div>
234
+ <div style="display: flex">
235
+ <div class="user-title" v-html="m.empNameCN"></div>
236
+ <div class="user-title" style="margin-left: 10px" v-html="m.commissionPercentDesc"></div>
237
+ </div>
238
+ <div class="user-but" v-html="m.commissionRoleName"></div>
239
+ </div>
240
+ </div>
241
+ </div>
242
+ </div>
243
+ </div>
244
+ </div>
245
+ </div>
246
+ </div>
247
+ </template>
248
+
249
+ <script>
250
+ import dynamicElement from "../../mixins/dynamicElement";
251
+ import dynamicSearchList from "../../dynamicSearchList/src/dynamicSearchList.vue";
252
+ import dynamicContactList from "./dynamicContactList.vue";
253
+ import dynamicAlbums from "./dynamicAlbums.vue";
254
+ import dynamicMatchCustomer from "./dynamicMatchCustomer.vue";
255
+ export default {
256
+ name: "ct-EstateBuildingDetail",
257
+ mixins: [dynamicElement],
258
+ components: {
259
+ "ct-searchlist": dynamicSearchList,
260
+ "ct-contactList": dynamicContactList,
261
+ "ct-albums": dynamicAlbums,
262
+ "ct-MatchCustomer": dynamicMatchCustomer,
263
+ },
264
+ props: {
265
+ vmodel: Object,
266
+ api: String,
267
+ apiParam: Object,
268
+ parentModel: Object,
269
+ top: {
270
+ type: Number,
271
+ default: 0,
272
+ },
273
+ },
274
+ data() {
275
+ return {
276
+ allInfo: false,
277
+ allIn: false,
278
+ refershKey: 0,
279
+ listKey: 0,
280
+ flagDisabledPrev:false,
281
+ flagDisabledNext:false,
282
+ showData: [],
283
+ FlagStatistics: false,
284
+ dropDownSelected: false,
285
+ iconSort: require("../../../assets/sort.png"),
286
+ actionRoutersKey: Math.random(),
287
+ flagHiddenSensitiveInfoHeight:0,
288
+ };
289
+ },
290
+ mounted() {
291
+ var self = this;
292
+ this.$nextTick(function () {
293
+ if(self.parentModel && self.parentModel.$refs && self.parentModel.$refs.table){
294
+ if(self.parentModel.$refs.table.model.selectIndex <= 0){
295
+ self.flagDisabledPrev=true;
296
+ }
297
+ if(self.parentModel.$refs.table.model.listData && self.parentModel.$refs.table.model.selectIndex ===self.parentModel.$refs.table.model.listData.length - 1){
298
+ self.flagDisabledNext=true;
299
+ }
300
+ }
301
+ else{
302
+ self.flagDisabledPrev=true;
303
+ self.flagDisabledNext=true;
304
+ }
305
+
306
+ if (self.vmodel) {
307
+ self.load(self.vmodel);
308
+ }
309
+ else if (typeof self.source !== "undefined") {
310
+ self.loaderObj.Detail(self.source, null, self.load);
311
+ }
312
+ else if (typeof self.api !== "undefined") {
313
+ self.loaderObj.Detail(self.api, self.apiParam, self.load);
314
+ }
315
+ });
316
+ },
317
+ activated() {
318
+ this.$nextTick(() => {
319
+ this.setDetailHeight();
320
+ });
321
+ },
322
+ methods: {
323
+ showStats() {
324
+ var self = this;
325
+ this.$nextTick(function () {
326
+ if (self.model.tags1.length > 0) {
327
+ var showIndex = 0;
328
+ var sumWidth = 0;
329
+ for (var i = 0; i < self.model.tags1.length; i++) {
330
+ var moreWidth = 22;
331
+
332
+ if(self.$refs["StatisticsItem" + i][0] && self.$refs["StatisticsItem" + i][0].offsetParent){
333
+ sumWidth = sumWidth + self.$refs["StatisticsItem" + i][0].offsetParent.offsetWidth;
334
+ }
335
+ var nextWidth = 0;
336
+ if (i + 1 < self.model.tags1.length) {
337
+ try {
338
+ nextWidth = self.$refs["StatisticsItem" + (i + 1)][0].offsetParent.offsetWidth;
339
+ } catch (e) { }
340
+ }
341
+ else {
342
+ moreWidth = 0;
343
+ }
344
+ if (self.model.midlWidth - 42 < sumWidth + moreWidth) {
345
+ showIndex = i;
346
+ break;
347
+ }
348
+ else if (self.model.midlWidth - 42 < nextWidth + moreWidth) {
349
+ showIndex = i + 1;
350
+ break;
351
+ }
352
+ }
353
+ if (showIndex > 0) {
354
+ self.showData = [
355
+ self.model.tags1.slice(0, showIndex),
356
+ self.model.tags1.slice(showIndex),
357
+ ];
358
+ }
359
+ else {
360
+ self.showData = [self.model.tags1];
361
+ }
362
+ }
363
+ });
364
+ },
365
+ load(data) {
366
+ var self = this;
367
+ this.model = data;
368
+ this.model.$vue = self;
369
+ this.refershKey = this.refershKey + 1;
370
+ this.loadFields();
371
+ if (this.model.tags2 && this.model.tags2[0]) {
372
+ this.model.getTags2List(0);
373
+ }
374
+ if (typeof window.localStorage !== "undefined") {
375
+ var tagkey = window.localStorage.getItem("detailtagkey");
376
+ if(self.model.tags1){
377
+ for (var i = 0; i < self.model.tags1.length; i++) {
378
+ if (tagkey == self.model.tags1[i].appID) {
379
+ self.model.activeIndex1 = i.toString();
380
+ if (self.model.tags1 && self.model.tags1[i]) {
381
+ self.listKey = self.listKey + 1;
382
+ self.model.searchConditionApiTags1 =
383
+ self.model.tags1[i].searchConditionAction || "";
384
+ self.model.searchDataApiTags1 =
385
+ self.model.tags1[i].searchDataAction || "";
386
+ self.model.paramDataTags1 = self.model.tags1[i].paramData || "";
387
+ }
388
+ }
389
+ }
390
+ }
391
+ }
392
+ this.loadOperation();
393
+ this.loadCommission();
394
+ this.setDetailHeight();
395
+ this.$nextTick(() => {
396
+ window.addEventListener("resize", (ev) => {
397
+ self.setDetailHeight();
398
+ });
399
+ });
400
+ //通知父组件加载完成
401
+ this.$emit("loaded", this.model);
402
+ },
403
+ loadFields() {
404
+ var self = this;
405
+ if(!self.model.fields2Dic) return;
406
+ self.collapse = [];
407
+ var collapseItemArr = [];
408
+ var col = 0;
409
+ var colCount = 4;
410
+ self.model.fields2Dic.forEach((v, index) => {
411
+ if (v.type === 13) {
412
+ collapseItemArr = [];
413
+ col = 0;
414
+ }
415
+ else if (v.singleLine) {
416
+ if (collapseItemArr.length > 0) {
417
+ self.collapse.push(collapseItemArr);
418
+ collapseItemArr = [];
419
+ }
420
+ collapseItemArr.push(v);
421
+ self.collapse.push(collapseItemArr);
422
+ collapseItemArr = [];
423
+ col = 0;
424
+ }
425
+ else if (v.spanCols) {
426
+ collapseItemArr.push(v);
427
+ col = col + v.spanCols;
428
+ if (col === colCount || index === self.model.fields2Dic.length - 1) {
429
+ self.collapse.push(collapseItemArr);
430
+ collapseItemArr = [];
431
+ col = 0;
432
+ }
433
+ }
434
+ else {
435
+ collapseItemArr.push(v);
436
+ col = col + 1;
437
+ if (col === colCount || index === self.model.fields2Dic.length - 1) {
438
+ self.collapse.push(collapseItemArr);
439
+ collapseItemArr = [];
440
+ col = 0;
441
+ }
442
+ }
443
+ });
444
+ },
445
+ loadOperation() {
446
+ this.model._operationList = null;
447
+ this.model._operationRouters = [];
448
+ this.model.getOperationList();
449
+ },
450
+ loadCommission() {
451
+ this.model.getCommissionList();
452
+ },
453
+ lookOwner() {
454
+ this.codeOwner = true;
455
+ },
456
+ loadBaseInfo(field) {
457
+ this.model.loadBaseInfo();
458
+ if(field.id == "PropertyChanceQuestion"){
459
+ this.loadOperation();
460
+ }
461
+ },
462
+ loadFavorite() {
463
+ this.model.loadFavorite();
464
+ },
465
+ loadqrCode() {
466
+ this.model.loadqrCode();
467
+ },
468
+ handleClick(tab, event) {
469
+ let i = tab.index;
470
+ if (this.model.tags2 && this.model.tags2[i]) {
471
+ this.model.getTags2List(i);
472
+ }
473
+ },
474
+ setDetailHeight() {
475
+ this.$nextTick(() => {
476
+ if (this.$refs.detail && this.$refs.main) {
477
+ var h1 = document.body.clientHeight | 0;
478
+ var h2 = this.$refs.detail.offsetTop | 0;
479
+ let detailHeight = h1 - h2 - this.top;
480
+ this.model.detailHeight = detailHeight < 40 ? 350 : detailHeight;
481
+
482
+ var w1 = this.$refs.detail.clientWidth | 0;
483
+ var w2 = this.$refs.midr.clientWidth | 0;
484
+ this.model.midlWidth = w1 - w2 - 10;
485
+
486
+ this.showStats();
487
+ }
488
+ if(this.$refs.main){
489
+ var m1 = document.body.clientHeight | 0;
490
+ var m2 = this.$refs.header.clientHeight | 0;
491
+ this.flagHiddenSensitiveInfoHeight=m1-m2-this.top;
492
+ }
493
+ });
494
+ },
495
+ handleSelect(key, keyPath) {
496
+ let i = key.index;
497
+ this.model.activeIndex1 = i;
498
+ if (this.model.tags1 && this.model.tags1[i]) {
499
+ this.listKey = this.listKey + 1;
500
+ this.model.searchConditionApiTags1 =
501
+ this.model.tags1[i].searchConditionAction || "";
502
+ this.model.searchDataApiTags1 =
503
+ this.model.tags1[i].searchDataAction || "";
504
+ this.model.paramDataTags1 = this.model.tags1[i].paramData || "";
505
+ window.localStorage.setItem("detailtagkey", this.model.tags1[i].appID); //存储
506
+ }
507
+ },
508
+ handleDropDown(key, index) {
509
+ let i = index;
510
+ this.model.activeIndex1 = (this.showData[0].length + i).toString();
511
+ let dropDownData = this.showData[1];
512
+ this.dropDownSelected = true;
513
+ if (dropDownData && dropDownData[i]) {
514
+ this.listKey = this.listKey + 1;
515
+ this.model.searchConditionApiTags1 = dropDownData[i].searchConditionAction || "";
516
+ this.model.searchDataApiTags1 = dropDownData[i].searchDataAction || "";
517
+ this.model.paramDataTags1 = dropDownData[i].paramData || "";
518
+ window.localStorage.setItem("detailtagkey", dropDownData[i].appID); //存储
519
+ }
520
+ },
521
+ fieldClickHandler(field) {
522
+ if(field == null || field==undefined){
523
+ return;
524
+ }
525
+
526
+ var self = this;
527
+ var callBack = null;
528
+ let submitData = {};
529
+ var router = this.model.actionRoutersAll.find((v) => {
530
+ return v.id === field.id;
531
+ });
532
+ if (router == undefined && this.model.otherTradeActionRouter) {
533
+ if (field.id === this.model.otherTradeActionRouter.id) {
534
+ router = this.model.otherTradeActionRouter;
535
+ }
536
+ }
537
+ if (router == undefined && this.model.operationRouters) {
538
+ router = this.model.operationRouters.find((v) => {
539
+ return v.id === field.id;
540
+ });
541
+ callBack = "loadOperation";
542
+ }
543
+ if (router == undefined && this.model.actionRouterFavorite) {
544
+ if (field.id === this.model.actionRouterFavorite.id) {
545
+ router = this.model.actionRouterFavorite;
546
+ }
547
+ }
548
+ if (router == undefined && this.model.routerForQRCode) {
549
+ if (field.id === this.model.routerForQRCode.id) {
550
+ router = this.model.routerForQRCode;
551
+ }
552
+ }
553
+ if (router == undefined && this.model.dutyHistoryApiRouter) {
554
+ if (field.id === this.model.dutyHistoryApiRouter.id) {
555
+ router = this.model.dutyHistoryApiRouter;
556
+ }
557
+ }
558
+ if (router == undefined && this.model.actionRouterMap) {
559
+ if (field.id === this.model.actionRouterMap.id) {
560
+ router = this.model.actionRouterMap;
561
+ }
562
+ }
563
+
564
+ if (router) {
565
+ if (field.isSubmitDataFromSelf) {
566
+ router.submitFormField.forEach((v) => {
567
+ submitData[v] = field.list[field.listIndex].code;
568
+ });
569
+ }
570
+ else {
571
+ router.submitFormField.forEach((v) => {
572
+ submitData[v] = self.model.fields1Dic[v].value;
573
+ });
574
+ }
575
+ if (router.id == "PropertyEdit"
576
+ || router.id == "QuestionAppeal"
577
+ || router.id == "PropertyChanceQuestion"
578
+ || router.id == "TranToActive"
579
+ || router.id == "TranToNotActive"
580
+ || router.id == "PropertyChanceTipOff") {
581
+ callBack="loadBaseInfo"
582
+ }
583
+ else if (router.id == "Favorite") {
584
+ callBack = "loadFavorite"
585
+ }
586
+ else if (router.id == "qrCode") {
587
+ callBack = "loadqrCode"
588
+ }
589
+ }
590
+
591
+ if (callBack) {
592
+ if(callBack=='loadOperation'){
593
+ this.routerClickHandler(router, submitData, self.loadOperation);
594
+ }
595
+ else if(callBack=='loadBaseInfo'){
596
+ this.routerClickHandler(router, submitData, self.loadBaseInfo);
597
+ }
598
+ else if (callBack == 'loadFavorite') {
599
+ this.routerClickHandler(router, submitData, self.loadFavorite);
600
+ }
601
+ else if (callBack == 'loadqrCode') {
602
+ self.loadqrCode();
603
+ }
604
+ }
605
+ else {
606
+ this.routerClickHandler(router, submitData);
607
+ }
608
+ },
609
+ addMedia() {
610
+ if (this.model.routerForNoMedia) {
611
+ this.routerClickHandler(this.model.routerForNoMedia, {});
612
+ }
613
+ },
614
+ routerClickHandler(field, submitData, callBack) {
615
+ var self = this;
616
+ // this.model.scripts.$fd = field.id;
617
+ // this.model.scripts.$result = [];
618
+
619
+ var clickAcion = function (field) {
620
+ //若不是客户端方法,则直接访问接口
621
+ if (!field.isClientFuntion) {
622
+ // if (typeof field.onClick !== 'undefined') {
623
+ // verified = self.$common.excute.call(self.model.scripts, field.onClick);
624
+ // }
625
+ if(field.isTabInSystem){
626
+ if(field.isOpenBaiduMap){
627
+ submitData = field.getActionPara(submitData).para;
628
+ self.$common.getDataDrivenOpts().handler.openTabBaiduMap(submitData,field.pageTitle || field.label);
629
+ }
630
+ }
631
+ else if(field.isTabInBrowse){
632
+
633
+ }
634
+ else if(field.isLayerInSystem){
635
+ if(field.isOpenBaiduMap){
636
+ var dialogOption = {
637
+ title: field.pageTitle,
638
+ pane: self.$common.getParentPane(self),
639
+ content: [
640
+ {
641
+ component: "ct-mapBaidu",
642
+ attrs: {
643
+ field: field,
644
+ apiParam: field.getActionPara(submitData).para,
645
+ width: field.dialogWidth + "px",
646
+ height: field.dialogHeight + "px",
647
+ },
648
+ on: {
649
+ submit(ev) {
650
+ if (callBack) {
651
+ callBack(field);
652
+ }
653
+ self.$common.closeDialog(dialogOption.dialog);
654
+ },
655
+ closeDialog(ev) {
656
+ }
657
+ },
658
+ },
659
+ ],
660
+ };
661
+ self.$common.openDialog(dialogOption);
662
+ }
663
+ }
664
+ else if (field.isBrowseAttachment) {//浏览附件
665
+ var mediaviewpagetype=(field.isFormPageInTab||field.isSearchPageInTab)?2:0;
666
+ var MediaAlbum = [
667
+ { albumName: self.model.title || "媒体", medias: [] },
668
+ ];
669
+ if (field.action) {
670
+ var callback = function (data) {
671
+ if(typeof data =='object'&&data.mediaAlbums)
672
+ {
673
+ MediaAlbum = data.mediaAlbums;
674
+ }
675
+ else
676
+ {
677
+ MediaAlbum[0].medias = data;
678
+ }
679
+ self.$common.viewerfile(field.pageTitle, MediaAlbum, 0, 0,mediaviewpagetype);
680
+ }
681
+ var vsubmitData = {
682
+ ...field.getActionPara(submitData).para,
683
+ ...submitData
684
+ };
685
+ self.model.getAction(field.action, vsubmitData, callback);
686
+ }
687
+ else {
688
+ submitData.mediaData.forEach((v) => {
689
+ MediaAlbum[0].medias.push(v);
690
+ });
691
+ self.$common.viewerfile(field.pageTitle, MediaAlbum, 0, 0,mediaviewpagetype);
692
+ }
693
+ }
694
+ else if (field.isOpenForm) {
695
+ var dialogOption = {
696
+ title: field.pageTitle,
697
+ pane: self.$common.getParentPane(self),
698
+ content: [
699
+ {
700
+ component: "ct-form",
701
+ attrs: {
702
+ api: field.action,
703
+ apiParam: field.getActionPara(submitData).para,
704
+ showTitle: false,
705
+ width: field.dialogWidth + "px",
706
+ height: field.dialogHeight + "px",
707
+ },
708
+ on: {
709
+ submit(ev) {
710
+ self.model.doAction(ev, field);
711
+ if (callBack) {
712
+ callBack(field);
713
+ }
714
+ self.$common.closeDialog(dialogOption.dialog);
715
+ },
716
+ },
717
+ },
718
+ ],
719
+ };
720
+ self.$common.openDialog(dialogOption);
721
+ }
722
+ else if (field.isOpenList) {
723
+ var dialogOption = {
724
+ title: field.pageTitle,
725
+ pane: self.$common.getParentPane(self),
726
+ content: [
727
+ {
728
+ component: "ct-searchlist",
729
+ attrs: {
730
+ searchConditionApi: field.actionForSearchLayout,
731
+ searchDataApi: field.actionForSearch,
732
+ apiParam: submitData,
733
+ width: field.dialogWidth + "px",
734
+ height: field.dialogHeight + "px",
735
+ },
736
+ on: {
737
+ submit(ev) {
738
+ self.model.updateFields(ev, () => {
739
+ self.$refs.Fields.forEach((fd) => {
740
+ fd.$forceUpdate();
741
+ });
742
+ });
743
+ self.$common.closeDialog(dialogOption.dialog);
744
+ },
745
+ closeDialog(ev) {
746
+ if (field.id == "Favorite" && callBack) {
747
+ callBack();
748
+ }
749
+ }
750
+ },
751
+ },
752
+ ],
753
+ };
754
+ self.$common.openDialog(dialogOption);
755
+ }
756
+ else if (field.isFormPageInTab) {// 外部框架tab页打开
757
+ submitData = field.getActionPara(submitData).para;
758
+ self.$common.getDataDrivenOpts().handler.openTab(field.action,submitData,field.pageTitle,self.model,field.dialogWidth);
759
+ }
760
+ else if (field.isSearchPageInTab) {// 外部框架tab页打开
761
+ submitData = field.getActionPara(submitData).para;
762
+ self.$common.getDataDrivenOpts().handler.openTabSearch(field, submitData);
763
+ }
764
+ else if (field.isUrlInSystemTab) {//外部框架tab页打开URl
765
+ submitData = field.getActionPara(submitData).para;
766
+ let query = self.$common.objectToQueryStr(submitData);
767
+ let urlTab = field.action + query;
768
+ if(field.action.indexOf('?')>-1 && query.indexOf('?')>-1){
769
+ urlTab = field.action + '&' +query.substr(1, query.length);
770
+ }
771
+ self.$common.getDataDrivenOpts().handler.openTabUrl(urlTab,field.pageTitle||field.label);
772
+ }
773
+ else if (field.isBrowserNewTab) {// 浏览器打开
774
+ submitData = field.getActionPara(submitData).para;
775
+ let query = self.$common.objectToQueryStr(submitData);
776
+ let urlTab = field.action + query;
777
+ if(field.action.indexOf('?')>-1 && query.indexOf('?')>-1){
778
+ urlTab = field.action + '&' +query.substr(1, query.length);
779
+ }
780
+ window.open(urlTab, "_blank");
781
+ }
782
+ else if (field.isOpenUrlInBrowse) {// 浏览器打开
783
+ window.open(submitData[field.submitFormField], "_blank");
784
+ }
785
+ else if (field.isSeeVoice) {//看视频
786
+ self.$common.browseVideo(field, submitData);
787
+ }
788
+ else {
789
+ field.doAction(submitData, (data) => {
790
+ if (data.rtnCode === 200) {
791
+ self.model.doAction(data, field);
792
+ if (callBack) {
793
+ callBack(field);
794
+ }
795
+ }
796
+ });
797
+ }
798
+ }
799
+ //执行客户端脚本
800
+ else {
801
+ submitData = field.getActionPara(submitData).para;
802
+ let title = field.pageTitle == undefined ? field.label : field.pageTitle;
803
+ submitData.actionType = field.actionType;
804
+ var fun = self.$common.getDataDrivenOpts().handler[field.action];
805
+ fun(submitData, title, null);
806
+ }
807
+ };
808
+
809
+ if (field.isSubmit && !self.validExcute()) {
810
+ return;
811
+ }
812
+
813
+ if (field.alert) {
814
+ self.$common
815
+ .confirm(field.alertMsg, field.alertCaption, {
816
+ confirmButtonText: field.alertOKButtonText,
817
+ cancelButtonText: field.alertCancelButtonText,
818
+ //type: 'warning'
819
+ center: field.alertCenter,
820
+ })
821
+ .then(() => {
822
+ clickAcion(field, submitData);
823
+ })
824
+ .catch(() => {});
825
+ }
826
+ else {
827
+ clickAcion(field, submitData);
828
+ }
829
+ },
830
+ clickNextHandler() {
831
+ let key = "chanceID";
832
+ if (this.parentModel && this.parentModel.$refs.table) {
833
+ let oldValue = this.parentModel.$refs.table.model.listData[this.parentModel.$refs.table.model.selectIndex][key];
834
+ this.parentModel.$refs.table.rowKeyDownHandle(null, 1);
835
+ let newValue = this.parentModel.$refs.table.model.listData[this.parentModel.$refs.table.model.selectIndex][key];
836
+ if (oldValue !== newValue) {
837
+ let parm = this.$common.cloneObject(this.apiParam);
838
+ parm[key] = newValue;
839
+ // this.loaderObj.Detail(this.api, parm, this.load);
840
+ this.$common.getDataDrivenOpts().handler.refreshPropertyDetail(parm,this.parentModel,"PropertyDetailOFI");
841
+ }
842
+ }
843
+ },
844
+ clickPrevHandler() {
845
+ let key = "chanceID";
846
+ if (this.parentModel && this.parentModel.$refs.table) {
847
+ let oldValue = this.parentModel.$refs.table.model.listData[this.parentModel.$refs.table.model.selectIndex][key];
848
+ this.parentModel.$refs.table.rowKeyDownHandle(null, -1);
849
+ let newValue = this.parentModel.$refs.table.model.listData[this.parentModel.$refs.table.model.selectIndex][key];
850
+ if (oldValue !== newValue) {
851
+ let parm = this.$common.cloneObject(this.apiParam);
852
+ parm[key] = newValue;
853
+ // this.loaderObj.Detail(this.api, parm, this.load);
854
+ this.$common.getDataDrivenOpts().handler.refreshPropertyDetail(parm,this.parentModel,"PropertyDetailOFI");
855
+ }
856
+ }
857
+ },
858
+ scrollHandle(ev) {
859
+ this.$emit('scrollHandle',this.$refs.detail.scrollTop,this.$refs.detail.scrollLeft)
860
+ ev.cancelBubble = true;
861
+ ev.stopPropagation();
862
+ },
863
+ },
864
+ };
865
+ </script>
866
+ <style lang="scss" scoped>
867
+ .operation0,
868
+ .operation20,
869
+ .operation-1000 {
870
+ color: #000000;
871
+ }
872
+ .operation1,
873
+ .operation10 {
874
+ color: #388cd3;
875
+ }
876
+ .operation2 {
877
+ color: #388cd3;
878
+ }
879
+ .main {
880
+ background: #eceff2;
881
+ }
882
+ .rel {
883
+ position: relative;
884
+ }
885
+ .y-auto {
886
+ overflow-y: auto;
887
+ overflow-x: auto;
888
+ }
889
+ .w64 {
890
+ width: 64px !important;
891
+ }
892
+ .w93 {
893
+ width: 93px !important;
894
+ }
895
+ .w300 {
896
+ width: 300px;
897
+ }
898
+ .mt5 {
899
+ margin-top: 5px;
900
+ }
901
+ .mt10 {
902
+ margin-top: 10px;
903
+ }
904
+ .mt15 {
905
+ margin-top: 15px;
906
+ }
907
+ .mb10 {
908
+ margin-bottom: 10px;
909
+ }
910
+ .mb20 {
911
+ margin-bottom: 20px;
912
+ }
913
+ .mr10 {
914
+ margin-right: 10px;
915
+ }
916
+ .p0 {
917
+ padding: 0 !important;
918
+ }
919
+ .pb10 {
920
+ padding-bottom: 10px !important;
921
+ }
922
+ .f-wb {
923
+ font-weight: bold;
924
+ }
925
+ .base-box {
926
+ background: #ffffff;
927
+ border-radius: 6px;
928
+ width: 100%;
929
+ }
930
+ .details-content {
931
+ font-size: 12px;
932
+ .title-l {
933
+ font-weight: Bold;
934
+ font-size: 16px;
935
+ color: #333333;
936
+ }
937
+ .details-head {
938
+ padding: 16px;
939
+ display: flex;
940
+ .head-type {
941
+ font-size: 20px;
942
+ background: var(--chinaRed);
943
+ color: #ffffff;
944
+ padding: 0 14px;
945
+ border-radius: 6px;
946
+ max-height: 40px;
947
+ line-height: 40px;
948
+ font-weight: Bold;
949
+ }
950
+ .head-info {
951
+ margin-left: 10px;
952
+ }
953
+ .title {
954
+ font-weight: Bold;
955
+ font-size: 16px;
956
+ margin-bottom: 3px;
957
+ }
958
+ .head-line {
959
+ display: inline-block;
960
+ height: 16px;
961
+ width: 2px;
962
+ background: #333333;
963
+ margin: 0 4px;
964
+ position: relative;
965
+ top: 1.5px;
966
+ }
967
+ .collection {
968
+ font-size: 18px;
969
+ margin-left: 10px;
970
+ cursor: pointer;
971
+ vertical-align: -2.85px;
972
+ width: 18px;
973
+ height: 18px;
974
+ }
975
+ .title-other {
976
+ color: var(--centalineMediumGray);
977
+ margin-bottom: 14px;
978
+ font-size: 12px;
979
+ span {
980
+ margin-right: 20px;
981
+ }
982
+ .other-icon {
983
+ font-size: 16px;
984
+ }
985
+ .location {
986
+ font-size: 16px;
987
+ vertical-align: -2.85px;
988
+ }
989
+ }
990
+ .title-tags {
991
+ display: flex;
992
+ .t-tag {
993
+ color: #333333;
994
+ background: #E8EAED;
995
+ border: 1px solid #C6C6C6;
996
+ padding: 2px 9px;
997
+ border-radius: 3px;
998
+ margin-right: 10px;
999
+ }
1000
+ }
1001
+ .head-but {
1002
+ margin-left: auto;
1003
+ font-size: 12px;
1004
+ text-align: right;
1005
+ min-width: 400px;
1006
+ .max-report {
1007
+ height: 26px;
1008
+ line-height: 26px;
1009
+ color: var(--centalineBlack);
1010
+ background-color: #ffffff;
1011
+ border: 1px solid #C6C6C6;
1012
+ border-radius: 6px;
1013
+ font-size: 12px;
1014
+ z-index: 1;
1015
+ }
1016
+ .max-report:hover{
1017
+ background-color:var(--btnHoverRed) !important;
1018
+ border-color: var(--btnHoverRed) !important;
1019
+ color: #fff !important;
1020
+ }
1021
+ .max-report:hover .report-cont {
1022
+ display: block;
1023
+ color: var(--centalineBlack);
1024
+ }
1025
+ .report-cont {
1026
+ display: none;
1027
+ width: 115px;
1028
+ background: #fff;
1029
+ -webkit-box-shadow: 0 0 10px 0 rgb(0 0 0 / 15%);
1030
+ box-shadow: 0 0 10px 0 rgb(0 0 0 / 15%);
1031
+ border-radius: 5px;
1032
+ list-style: none;
1033
+ position: absolute;
1034
+ left: -61px;
1035
+ top: 26px;
1036
+ padding: 5px 0;
1037
+ color: var(--centalineBlack);
1038
+ }
1039
+ .report-cont li {
1040
+ padding: 5px 10px;
1041
+ }
1042
+ }
1043
+ }
1044
+ .details-mid {
1045
+ display: flex;
1046
+ justify-content: space-between;
1047
+ .mid-l {
1048
+ flex: 1;
1049
+ display: flex;
1050
+ flex-direction: column;
1051
+
1052
+ .hous-info {
1053
+ padding-bottom: 10px;
1054
+ .base-clolr {
1055
+ color: var(--chinaRed);
1056
+ }
1057
+ .expand-f {
1058
+ line-height: 15px;
1059
+ font-size: 16px;
1060
+ font-weight: bold;
1061
+ img {
1062
+ width: 15px !important;
1063
+ margin-left: 0 !important;
1064
+ }
1065
+ span {
1066
+ float: right;
1067
+ }
1068
+ }
1069
+ .img-jsq {
1070
+ width: 14px;
1071
+ height: 14px;
1072
+ display: inline-block;
1073
+ margin-left: 10px;
1074
+ }
1075
+ .info-conten {
1076
+ display: flex;
1077
+ .info-row {
1078
+ display: flex;
1079
+ }
1080
+
1081
+ .hous-t {
1082
+ width: 260px;
1083
+ margin-top: 10px;
1084
+ .swiper-i {
1085
+ position: relative;
1086
+ width: 100%;
1087
+ height: 100%;
1088
+ img {
1089
+ width: 100%;
1090
+ height: 100%;
1091
+ }
1092
+ .hous-icon {
1093
+ width: 60px;
1094
+ height: 60px;
1095
+ position: absolute;
1096
+ top: 50%;
1097
+ left: 50%;
1098
+ transform: translate(-50%, -50%);
1099
+ }
1100
+ }
1101
+
1102
+ .hous-img {
1103
+ margin-top: 10px;
1104
+ width: 100%;
1105
+ overflow-x: hidden;
1106
+ overflow-y: hidden;
1107
+ white-space: nowrap;
1108
+ .img-i {
1109
+ position: relative;
1110
+ width: 82px;
1111
+ height: 45px;
1112
+ margin-right: 10px;
1113
+ display: inline-block;
1114
+ border: 2px #fff solid;
1115
+ img {
1116
+ width: 100%;
1117
+ height: 100%;
1118
+ }
1119
+ .img-bot {
1120
+ width: 100%;
1121
+ height: 16px;
1122
+ background: rgba(0, 0, 0, 0.5);
1123
+ color: #fff;
1124
+ position: absolute;
1125
+ bottom: 0;
1126
+ font-weight: Bold;
1127
+ .img-icon {
1128
+ width: 12px;
1129
+ height: 12px;
1130
+ margin: 0 5px;
1131
+ margin: 0 5px;
1132
+ vertical-align: -1.5px;
1133
+ }
1134
+ }
1135
+ }
1136
+ }
1137
+ }
1138
+ .hous-b {
1139
+ position: relative;
1140
+ margin-left: 16px;
1141
+ margin-top: 20px;
1142
+ flex: 1;
1143
+ .code-ewm {
1144
+ width: 32px;
1145
+ height: 32px;
1146
+ position: absolute;
1147
+ top: -32px;
1148
+ right: -12px;
1149
+ }
1150
+
1151
+ .row-i {
1152
+ width: 25%;
1153
+ text-align: left;
1154
+ }
1155
+ .row-i div:nth-child(1) {
1156
+ margin-bottom: 10px;
1157
+ }
1158
+ .row-b div:nth-child(2) {
1159
+ font-size: 14px;
1160
+ font-weight: bold;
1161
+ }
1162
+ .info-mid {
1163
+ // margin: 35px 0 0 0;
1164
+ // padding: 20px;
1165
+ border-top: 1px solid #e0e0e0;
1166
+ border-bottom: 1px solid #e0e0e0;
1167
+ display: flex;
1168
+ padding: 15px 0;
1169
+
1170
+ .mid-i {
1171
+ text-align: left;
1172
+ width: 25%;
1173
+ }
1174
+ .mid-i div:nth-child(1) {
1175
+ margin-bottom: 10px;
1176
+ }
1177
+ .mid-i div:nth-child(2) {
1178
+ font-size: 14px;
1179
+ font-weight: bold;
1180
+ }
1181
+ }
1182
+ }
1183
+ }
1184
+ .info-conten-b {
1185
+ display: flex;
1186
+ margin-top: 16px;
1187
+ .info-row {
1188
+ display: flex;
1189
+ width: 100%;
1190
+ padding-left: 9px;
1191
+ }
1192
+ .row-i {
1193
+ width: 25%;
1194
+ }
1195
+ .row-i100 {
1196
+ width: 100%;
1197
+ }
1198
+ }
1199
+ .open-mero {
1200
+ text-align: center;
1201
+ padding: 3px 0;
1202
+ }
1203
+ .more-colose {
1204
+ background: url("../../../assets/mero-colose.png") no-repeat;
1205
+ background-size: 100% 100%;
1206
+ width: 18px;
1207
+ height: 9px;
1208
+ display: inline-block;
1209
+ }
1210
+ .mero-open {
1211
+ background: url("../../../assets/more-open.png") no-repeat;
1212
+ background-size: 100% 100%;
1213
+ width: 18px;
1214
+ height: 9px;
1215
+ display: inline-block;
1216
+ }
1217
+ .hous-mero {
1218
+ display: flex;
1219
+ .mero-labe {
1220
+ min-width: 60px;
1221
+ }
1222
+ }
1223
+ }
1224
+
1225
+ .contacts-info {
1226
+ padding: 16px;
1227
+ .contacts-head {
1228
+ display: flex;
1229
+ align-items: center;
1230
+ justify-content: space-between;
1231
+
1232
+ .contacts-but {
1233
+ height: 30px;
1234
+ font-weight: Bold;
1235
+ }
1236
+ .contacts-tips {
1237
+ display: flex;
1238
+ }
1239
+ }
1240
+ .contacts-table {
1241
+ margin-top: 16px;
1242
+ .table-icon {
1243
+ font-size: 14px;
1244
+ margin-left: 4px;
1245
+ }
1246
+ .el-table {
1247
+ font-size: 12px;
1248
+ }
1249
+ .el-table th.el-table__cell > .cell {
1250
+ padding-left: 16px;
1251
+ }
1252
+ .el-table .cell {
1253
+ padding-left: 16px;
1254
+ }
1255
+ .el-table--striped
1256
+ .el-table__body
1257
+ tr.el-table__row--striped
1258
+ td.el-table__cell {
1259
+ background: 1px solid #e0e0e0;
1260
+ }
1261
+ }
1262
+ }
1263
+
1264
+ .tablist-info {
1265
+ .details-tabs-box {
1266
+ .el-menu--horizontal > .el-menu-item {
1267
+ height: 30px;
1268
+ line-height: 30px;
1269
+ border-radius: none;
1270
+ }
1271
+ }
1272
+ }
1273
+
1274
+ .contribute-info {
1275
+ .contribute-list {
1276
+ width: 100%;
1277
+ display: flex;
1278
+ align-content: flex-start;
1279
+ flex-flow: row wrap;
1280
+ .contribute-i {
1281
+ width: calc((100% - 16px * 3) / 4);
1282
+ margin: 16px 16px 0 0;
1283
+ padding: 16px 0 16px 16px;
1284
+ border: 1px solid #e0e0e0;
1285
+ border-radius: 6px;
1286
+ display: flex;
1287
+ img {
1288
+ width: 50px;
1289
+ height: 50px;
1290
+ margin-right: 6px;
1291
+ }
1292
+ .user-title {
1293
+ font-weight: Bold;
1294
+ font-size: 14px;
1295
+ margin-bottom: 8px;
1296
+ }
1297
+ .user-but {
1298
+ cursor: pointer;
1299
+ font-size: 12px;
1300
+ color: #ffffff;
1301
+ background: #fbd46d;
1302
+ height: 20px;
1303
+ line-height: 20px;
1304
+ border-radius: 3px;
1305
+ text-align: center;
1306
+ padding: 0 10px;
1307
+ }
1308
+ }
1309
+
1310
+ .contribute-i:nth-child(4n) {
1311
+ margin-right: 0;
1312
+ }
1313
+ }
1314
+ }
1315
+ }
1316
+ .mid-l > div {
1317
+ margin-bottom: 10px;
1318
+ padding: 16px;
1319
+ }
1320
+ .mid-r > div {
1321
+ margin-bottom: 10px;
1322
+ padding: 16px;
1323
+ }
1324
+ .mid-r {
1325
+ width: 26.666%;
1326
+ margin-left: 10px;
1327
+
1328
+ display: flex;
1329
+ flex-direction: column;
1330
+ .tab-conten {
1331
+ display: flex;
1332
+ margin-bottom: 16px;
1333
+ img {
1334
+ width: 50px;
1335
+ height: 50px;
1336
+ margin-right: 10px;
1337
+ }
1338
+ .user-name {
1339
+ display: flex;
1340
+ }
1341
+ .text {
1342
+ font-size: 14px;
1343
+ font-weight: Bold;
1344
+ margin-right: 10px;
1345
+ }
1346
+ .user-other {
1347
+ min-height: 200px;
1348
+ }
1349
+ .user-but {
1350
+ cursor: pointer;
1351
+ font-size: 12px;
1352
+ color: #ffffff;
1353
+ background: #fbd46d;
1354
+ height: 20px;
1355
+ line-height: 20px;
1356
+ border-radius: 3px;
1357
+ text-align: center;
1358
+ padding: 0 10px;
1359
+ }
1360
+ }
1361
+ .take-info {
1362
+ font-size: 16px;
1363
+ .red-text {
1364
+ font-size: 18px;
1365
+ font-weight: bold;
1366
+ color: var(--chinaRed);
1367
+ }
1368
+ }
1369
+ .staff-info {
1370
+ padding: 10px;
1371
+ .open-mero {
1372
+ text-align: center;
1373
+ padding: 3px 0;
1374
+ }
1375
+ .more-colose {
1376
+ background: url("../../../assets/mero-colose.png") no-repeat;
1377
+ background-size: 100% 100%;
1378
+ width: 18px;
1379
+ height: 9px;
1380
+ display: inline-block;
1381
+ }
1382
+ .mero-open {
1383
+ background: url("../../../assets/more-open.png") no-repeat;
1384
+ background-size: 100% 100%;
1385
+ width: 18px;
1386
+ height: 9px;
1387
+ display: inline-block;
1388
+ }
1389
+ .hous-mero {
1390
+ display: flex;
1391
+ .mero-labe {
1392
+ min-width: 60px;
1393
+ }
1394
+ }
1395
+ }
1396
+ .operation-list {
1397
+ display: flex;
1398
+ align-items: center;
1399
+ justify-content: space-between;
1400
+ .list-item {
1401
+ width: 120px;
1402
+ height: 62px;
1403
+ font-size: 14px;
1404
+ text-align: center;
1405
+ font-weight: bold;
1406
+ border: none;
1407
+ }
1408
+ .list-item:hover {
1409
+ color: #fff;
1410
+ background: var(--btnHoverRed);
1411
+ }
1412
+ .list-item:nth-child(2) {
1413
+ margin: 0 10px;
1414
+ }
1415
+ .list-item:nth-child(3) {
1416
+ margin-left: 0;
1417
+ }
1418
+ }
1419
+
1420
+ .operation-table {
1421
+ padding: 0;
1422
+ .table-box {
1423
+ display: flex;
1424
+ border-bottom: 1px solid #e0e0e0;
1425
+ .t-item {
1426
+ padding: 5px 8px;
1427
+ font-size: 14px;
1428
+ flex: 1;
1429
+ position: relative;
1430
+ display: flex;
1431
+ flex-flow: column;
1432
+ align-items: flex-start;
1433
+ border-right: 1px solid #e0e0e0;
1434
+ justify-content: center;
1435
+ min-width: 0;
1436
+ .t-but {
1437
+ font-size: 12px;
1438
+ margin-left: 0;
1439
+ width: 104px;
1440
+ margin-top: 8px;
1441
+ padding: 0;
1442
+ }
1443
+ .t-but:nth-last-child(1) {
1444
+ margin-bottom: 8px;
1445
+ }
1446
+ }
1447
+ .t-item:nth-last-child(1) {
1448
+ border-right: 0;
1449
+ }
1450
+ }
1451
+ .table-box:nth-last-child(1) {
1452
+ border-bottom: 0;
1453
+ }
1454
+ }
1455
+
1456
+ .customer {
1457
+ background: #fff;
1458
+ border-radius: 6px;
1459
+ width: 100%;
1460
+ .customer-title {
1461
+ font-weight: Bold;
1462
+ font-size: 16px;
1463
+ color: #333;
1464
+ }
1465
+ .customre-line {
1466
+ width: 100%;
1467
+ height: 1px;
1468
+ margin-top: 10px;
1469
+ background: #e0e0e0;
1470
+ }
1471
+ .match-customre {
1472
+ display: flex;
1473
+ margin-top: 10px;
1474
+ .customre-name {
1475
+ font-weight: Bold;
1476
+ font-size: 14px;
1477
+ color: #333333;
1478
+ margin-right: 10px;
1479
+ }
1480
+ .t-tag {
1481
+ width: 41px;
1482
+ color: #999;
1483
+ background: #f3f3f3;
1484
+ border: 1px solid #d8d8d8;
1485
+ padding: 2px 9px;
1486
+ border-radius: 3px;
1487
+ margin-right: 10px;
1488
+ }
1489
+ }
1490
+ .user-but {
1491
+ cursor: pointer;
1492
+ font-size: 12px;
1493
+ color: #ffffff;
1494
+ background: #fbd46d;
1495
+ height: 20px;
1496
+ line-height: 20px;
1497
+ border-radius: 3px;
1498
+ text-align: center;
1499
+ padding: 0 10px;
1500
+ }
1501
+ .customr-name {
1502
+ position: absolute;
1503
+ right: 0;
1504
+ }
1505
+ .clearfix {
1506
+ clear: both;
1507
+ }
1508
+ .customre-l {
1509
+ float: left;
1510
+ width: 50%;
1511
+ margin-top: 10px;
1512
+ .row-i {
1513
+ padding: 5px 0;
1514
+ }
1515
+ }
1516
+
1517
+ .customre-r {
1518
+ float: right;
1519
+ width: 50%;
1520
+ margin-top: 10px;
1521
+ .row-i {
1522
+ padding: 5px 0;
1523
+ }
1524
+ }
1525
+ }
1526
+ }
1527
+ }
1528
+ }
1529
+ // 按钮
1530
+ .max-info {
1531
+ height: 26px;
1532
+ color: #333333;
1533
+ background-color: #ffffff;
1534
+ border: 1px solid #e0e0e0;
1535
+ border-radius: 6px;
1536
+ font-size: 12px;
1537
+ }
1538
+ .max-default {
1539
+ border: 1px solid var(--chinaRed);
1540
+ color: var(--chinaRed);
1541
+ height: 26px;
1542
+
1543
+ border-radius: 6px;
1544
+ font-size: 12px;
1545
+ }
1546
+ .max-info:hover,
1547
+ .max-default:hover {
1548
+ background-color: var(--btnHoverRed);
1549
+ border-color: var(--btnHoverRed);
1550
+ color: #fff;
1551
+ }
1552
+ // .max-infon:hover.report,.max-info:active.report{
1553
+ // color: #fff;
1554
+ // }
1555
+ .max-info:active,
1556
+ .max-default:active {
1557
+ background-color: var(--btnFocusRed);
1558
+ border-color: var(--btnFocusRed);
1559
+ color: #fff;
1560
+ }
1561
+ .max-btn-add button {
1562
+ /*list-button*/
1563
+ height: 26px;
1564
+ background: var(--chinaRed);
1565
+ box-shadow: 0px 2px 4px 0px rgba(238, 107, 107, 0.25);
1566
+ border-radius: 6px;
1567
+ }
1568
+ .max-btn-add button:hover {
1569
+ background-color: var(--btnHoverRed);
1570
+ border-color: var(--btnHoverRed);
1571
+ }
1572
+ .max-btn-add button:focus,
1573
+ .max-btn-add button:active {
1574
+ background-color: var(--btnFocusRed);
1575
+ border-color: var(--btnFocusRed);
1576
+ }
1577
+ .max-comfirm-content button {
1578
+ height: 26px;
1579
+ border-radius: 6px;
1580
+ }
1581
+ .follow-search-bar {
1582
+ display: flex;
1583
+ }
1584
+ .r {
1585
+ float: right;
1586
+ }
1587
+ .my-icon-more {
1588
+ width: 14px;
1589
+ height: 15px;
1590
+ border-top: 3px solid rgb(153, 153, 153);
1591
+ border-bottom: 3px solid rgb(153, 153, 153);
1592
+ background-color: rgb(153, 153, 153);
1593
+ padding: 3px 0;
1594
+ background-clip: content-box;
1595
+ cursor: pointer;
1596
+ }
1597
+ >>>.el-tabs__nav-prev {
1598
+ display: none;
1599
+ }
1600
+
1601
+ >>>.el-tabs__nav-next {
1602
+ display: none;
1603
+ }
1604
+
1605
+ .more-dropdown {
1606
+ position: absolute;
1607
+ width: 16px;
1608
+ height: 20px;
1609
+ text-align: left;
1610
+ top: 13px;
1611
+ right: -1px;
1612
+ }
1613
+
1614
+ .el-dropdown-menu--mini .el-dropdown-menu__item {
1615
+ font-size: 14px;
1616
+ font-weight: 700;
1617
+ color: #303133;
1618
+ }
1619
+
1620
+ .el-dropdown-menu__item:focus,
1621
+ .el-dropdown-menu__item:not(.is-disabled):hover {
1622
+ background-color: #fff;
1623
+ color: var(--chinaRed);
1624
+ border-bottom: 3px solid var(--chinaRed);
1625
+ }
1626
+
1627
+ .tabsMore .is-active {
1628
+ cursor: pointer;
1629
+ background-color: #fff;
1630
+ color: var(--chinaRed);
1631
+ border-bottom: 3px solid var(--chinaRed);
1632
+ }
1633
+
1634
+ >>>.el-tabs--bottom .el-tabs__item.is-bottom:last-child,
1635
+ >>>.el-tabs--bottom .el-tabs__item.is-top:last-child,
1636
+ >>>.el-tabs--top .el-tabs__item.is-bottom:last-child,
1637
+ >>>.el-tabs--top .el-tabs__item.is-top:last-child {
1638
+ padding-right: 15px;
1639
+ }
1640
+
1641
+ .svgIcon {
1642
+ width: 16px;
1643
+ text-align: center;
1644
+ cursor: pointer;
1645
+ }
1646
+
1647
+ .table-box .t-item button.el-button.el-button.t-but.el-button--info.max-info.el-button--primary.el-button--mini.is-disabled {
1648
+ cursor: not-allowed;
1649
+ background-image: none;
1650
+ color: #bcbec2;
1651
+ background-color: #f4f4f5;
1652
+ border-color: #e9e9eb;
1653
+ }
1654
+ .rowLable,.rowValue{
1655
+ color: var(--centalineBlack);
1656
+ }
1657
+ </style>
1658
+
1659
+