centaline-data-driven 1.2.21 → 1.2.24

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.
@@ -135,52 +135,11 @@
135
135
  </div>
136
136
  </div>
137
137
  <div class="open-mero" @click="allInfo=!allInfo">{{allInfo?'收起全部':'查看全部'}}
138
- <!-- <img src="../../../assets/mero.png" alt="" class="mero" > :class="allInfo?'more-colose':'more-open'" -->
139
138
  <i :class="allInfo?'more-colose':'mero-open'"></i>
140
139
  </div>
141
140
  </div>
142
141
  <div class="contacts-info base-box">
143
- <!-- 联系人 -->
144
- <div class="contacts-head">
145
- <div class="title-l">联系人信息</div>
146
- <button type="button" v-if="!codeOwner" @click="lookOwner" class="el-button contacts-but el-button--info el-button--mini max-info">查看业主</button>
147
- <div class="contacts-tips" v-else>
148
- <button class="el-button el-button--primary el-button--mini max-btn-add">新增联系人</button>
149
- <button class="el-button el-button--primary el-button--mini max-btn-add">通话记录</button>
150
- <button class="el-button el-button--primary el-button--mini max-btn-add">查看历史号码</button>
151
- </div>
152
-
153
- </div>
154
- <!-- 表格 -->
155
- <div class="contacts-table" v-show="codeOwner">
156
- <el-table
157
- :data="tableData"
158
- stripe
159
- fit
160
- style="width: 100%"
161
- :header-cell-style="{background:'#f3f3f3',color:'#333333'}">
162
- <el-table-column
163
- v-for="(item,index) in columnList"
164
- :key="index"
165
- :property="item.prop"
166
- :label="item.label"
167
- :min-width="item.width"
168
- >
169
- <template slot-scope="scope">
170
- <span v-if="scope.column.property=='phone'">{{ scope.row.phone }}
171
-
172
- </span>
173
- <span v-else-if="scope.column.property=='tel'">
174
- {{scope.row.tel}}
175
-
176
- </span>
177
- <span v-else>
178
- {{scope.row[scope.column.property]}}
179
- </span>
180
- </template>
181
- </el-table-column>
182
- </el-table>
183
- </div>
142
+ <ct-contactList v-if="model.contactApiRouter!==null" :apiRouter="model.contactApiRouter" ></ct-contactList>
184
143
  </div>
185
144
  <div class="tablist-info base-box">
186
145
  <div class="details-tabs-box">
@@ -230,6 +189,17 @@
230
189
  <div>该房源共<span class="red-text">{{model.fields1Dic.LookCustomerCount.value}}</span>位客户看房</div>
231
190
  <div>最近7天带看<span class="red-text">{{model.fields1Dic.CustomerLookCount7.value}}</span>次,总带看<span class="red-text">{{model.fields1Dic.CustomerLookCountAll.value}}</span>次。</div>
232
191
  </div>
192
+ <div v-if="model.operationList!==null" :key="model.operationKey" class="operation-table base-box">
193
+ <div v-for="(col, index) in model.operationList" :key="index" class="table-box">
194
+ <div class="t-item">
195
+ <span class="i">{{col.operationName}}</span>
196
+ </div>
197
+ <div class="t-item"><span class="i" :class="'operation'+col.flagKey">{{col.desc}}</span></div>
198
+ <div class="t-item" style="height: 50px;">
199
+ <component class="el-button t-but el-button--info max-info" v-if="col.router && col.router.show" :is="col.router.is" :vmodel="col.router" :api="model.optionApi" @click="fieldClickHandler(col.router,$event)"></component>
200
+ </div>
201
+ </div>
202
+ </div>
233
203
  <div class="staff-info base-box">
234
204
  <el-tabs :value="model.activeIndex2" @tab-click="handleClick">
235
205
  <el-tab-pane v-for="(col, index) in model.tags2" :key="col.appID"
@@ -262,17 +232,6 @@
262
232
  </el-tab-pane>
263
233
  </el-tabs>
264
234
  </div>
265
- <div v-if="model.operationList!==null" :key="model.operationKey" class="operation-table base-box">
266
- <div v-for="(col, index) in model.operationList" :key="index" class="table-box">
267
- <div class="t-item">
268
- <span class="i">{{col.operationName}}</span>
269
- </div>
270
- <div class="t-item"><span class="i" :class="'operation'+col.flagKey">{{col.desc}}</span></div>
271
- <div class="t-item" style="height: 50px;">
272
- <component class="el-button t-but el-button--info max-info" v-if="col.router && col.router.show" :is="col.router.is" :vmodel="col.router" :api="model.optionApi" @click="fieldClickHandler(col.router,$event)"></component>
273
- </div>
274
- </div>
275
- </div>
276
235
  <div class="customer">
277
236
  <div class="customer-title">
278
237
  匹配客户
@@ -346,11 +305,13 @@
346
305
  <script>
347
306
  import dynamicElement from '../../mixins/dynamicElement';
348
307
  import dynamicSearchList from '../../dynamicSearchList/src/dynamicSearchList.vue';
308
+ import dynamicContactList from './dynamicContactList.vue';
349
309
  export default {
350
310
  name: 'ct-PropertyDetailRET',
351
311
  mixins: [dynamicElement],
352
312
  components: {
353
313
  'ct-searchlist': dynamicSearchList,
314
+ 'ct-contactList': dynamicContactList,
354
315
  },
355
316
  props: {
356
317
  vmodel: Object,
@@ -365,66 +326,10 @@
365
326
  { name: '餐厅', url: 'http://10.5.10.44:13031/Images/20210705/112124_4f83c6d5-36bd-444f-9ea1-fa4e3f4de5e0.jpg?width=140&height=135&mode=stretch', isVr: false, type: 'img' },
366
327
  { name: '户型图', url: 'http://10.5.10.44:13031/Images/20210705/112505_6a3cb2d4-c773-4aba-91af-df6721eadb34.jpg?width=140&height=135&mode=stretch', isVr: false, type: 'video' },
367
328
  { name: '其它', url: 'http://10.5.10.44:13031/Images/20210705/112133_b62d7a78-96b3-4801-b94c-47b83263a001.jpg?width=140&height=135&mode=stretch', isVr: false, type: 'video' },
368
- ],},
369
- allInfo: false,
370
- allIn:false,
371
- codeOwner: false,
372
- columnList: [
373
- {
374
- prop: 'name',
375
- label: '联系人',
376
- width: '80'
329
+ ],
377
330
  },
378
- {
379
- prop: 'type',
380
- label: '类型',
381
- width: '60'
382
- },
383
- {
384
- prop: 'phone',
385
- label: '手机',
386
- width: '125'
387
- },
388
- {
389
- prop: 'tel',
390
- label: '座机',
391
- width: '170'
392
- },
393
- {
394
- prop: 'wx',
395
- label: '微信',
396
- width: '150'
397
- },
398
- {
399
- prop: 'entTime',
400
- label: '录入时间',
401
- width: '150'
402
- },
403
- {
404
- prop: 'entUser',
405
- label: '录入人',
406
- width: '80'
407
- },
408
- {
409
- prop: 'remarks',
410
- label: '操作',
411
- // width:'180'
412
- },
413
- ],
414
- tableData: [
415
- {
416
- name: '王建国先生',
417
- type: '业主',
418
- phone: '13866668888',
419
- tel: '0275-55556666-5896',
420
- wx: '555566665896',
421
- entTime: '2021-10-26 29:27:25',
422
- entUser: '王天',
423
- remarks: '删除',
424
- isIcon: true,
425
- },
426
- ],
427
- opening:'first',
331
+ allInfo: false,
332
+ allIn:false,
428
333
  }
429
334
  },
430
335
  mounted() {
@@ -107,6 +107,7 @@
107
107
  });
108
108
  self.FlagPhoto = true;
109
109
  self.imageList = sourceRows;
110
+ //self.imageList=[{thumbnailUrl:'lmg.jj20.com/up/allimg/tp01/1ZZH250054149-0-lp.jpg',mediaUrl:'lmg.jj20.com/up/allimg/tp01/1ZZH250054149-0-lp.jpg'}];
110
111
  } catch (e) {
111
112
  self.$message.warning(e);
112
113
  }
@@ -139,7 +140,7 @@
139
140
  if (this.chooseList && this.chooseList.length > 0) {
140
141
  this.$emit('handlePhoto', this.chooseList);
141
142
  } else {
142
- self.$message.warning("请选择至少一张图片");
143
+ this.$message.warning("请选择至少一张图片");
143
144
  }
144
145
 
145
146
  },
@@ -719,7 +719,7 @@
719
719
  },
720
720
  on: {
721
721
  submit(ev) {
722
- if (!field.flagFreshCurrentRow) {
722
+ if (!field.flagFreshCurrentRow && !field.flagAddRowAfterAction) {
723
723
  self.model.doAction(ev);
724
724
  }
725
725
  self.$forceUpdate();
@@ -790,7 +790,7 @@
790
790
  self.operationLoading = true;
791
791
  field.doAction(submitData, (data) => {
792
792
  self.operationLoading = false;
793
- if (!field.flagFreshCurrentRow) {
793
+ if (!field.flagFreshCurrentRow && !field.flagAddRowAfterAction) {
794
794
  self.model.doAction({ responseData: data });
795
795
  }
796
796
  self.$forceUpdate();
@@ -867,7 +867,7 @@
867
867
  },
868
868
  updateCurrentRow(router,data) {
869
869
  let self = this;
870
- if (router.flagFreshCurrentRow) {
870
+ if (router.flagFreshCurrentRow || router.flagAddRowAfterAction) {
871
871
  self.tableComplate = true;
872
872
  self.model.getCurrentRowApiData(function () {
873
873
  self.$forceUpdate();
@@ -0,0 +1,86 @@
1
+ import base from '../../index';
2
+ import Base from './Base';
3
+ import Enum from './lib/Enum';
4
+ import common from '../../../common';
5
+ import Router from './Router';
6
+ import Vue from 'vue';
7
+ const ContactList = function (source,para ,callBack) {
8
+ var init = function (data) {
9
+ var rtn = {
10
+ $vue: null,
11
+ _buttons: null,
12
+ _actionRouter: null,
13
+ _rowRouter: null,
14
+ get buttons() {
15
+ if (rtn._buttons !== null) {
16
+ return rtn._buttons;
17
+ }
18
+ else {
19
+ if (source.content.toolButtons) {
20
+ rtn._buttons = [];
21
+ source.content.toolButtons.forEach((v) => {
22
+ var button = Router(v);
23
+ button.is = "ct-btn";
24
+ button.attrs = { size: "mini", class: 'max-btn-gray' }
25
+ rtn._buttons.push(button);
26
+ });
27
+ }
28
+ return rtn._buttons;
29
+ }
30
+ },
31
+ get actionRouter() {
32
+ if (rtn._actionRouter !== null) {
33
+ return rtn._actionRouter;
34
+ }
35
+ else {
36
+ rtn._actionRouter = [];
37
+ if (source.content.actionRouters) {
38
+ source.content.actionRouters.forEach((v) => {
39
+ var router = Router(v);
40
+ //router.is = "ct-btn";
41
+ //router.attrs = { size: "mini" }
42
+ rtn._actionRouter.push(router);
43
+ });
44
+ }
45
+ return rtn._actionRouter;
46
+ }
47
+ },
48
+ get rowRouter() {
49
+ if (rtn._rowRouter !== null) {
50
+ return rtn._rowRouter;
51
+ }
52
+ else {
53
+ rtn._rowRouter = [];
54
+ if (rtn.actionRouter) {
55
+ rtn.actionRouter.forEach((v) => {
56
+ if (v.show) {
57
+ rtn._rowRouter.push(v);
58
+ }
59
+ });
60
+ }
61
+ return rtn._rowRouter;
62
+ }
63
+ },
64
+ };
65
+ return rtn;
66
+ }
67
+ if (typeof source === 'string') {
68
+ Vue.prototype.$api.postHandler(common.globalUri(), { action: source,para:para}).then(
69
+ function (response) {
70
+ if (response.rtnCode === Enum.ReturnCode.Successful) {
71
+ var rtn = init(response.content);
72
+ if (callBack) {
73
+ callBack(rtn);
74
+ }
75
+ }
76
+ }
77
+ );
78
+ }
79
+ else {
80
+ var rtn = init(source);
81
+ if (callBack) {
82
+ callBack(rtn);
83
+ }
84
+ }
85
+ }
86
+ export default ContactList;
@@ -14,6 +14,7 @@ const Detail = function (source,para ,callBack) {
14
14
  _otherTradeActionRouter: null,//对应另外种交易的 router 如:本盘出售 则可能对应的出租的交易,没有则为空
15
15
  _actionRouters:null,//页面上的动作行为
16
16
  _actionRoutersMoreList:null,//页面上的更多动作行为
17
+ _contactApiRouter:null,//查看联系人
17
18
  detailHeight:750,
18
19
  activeIndex1:'0',
19
20
  activeIndex2:'0',
@@ -130,6 +131,20 @@ const Detail = function (source,para ,callBack) {
130
131
  }
131
132
  return rtn._otherTradeActionRouter;
132
133
  }
134
+ },
135
+ get contactApiRouter() {
136
+ if (rtn._contactApiRouter !== null) {
137
+ return rtn._contactApiRouter;
138
+ }
139
+ else {
140
+ if (data.contactApiRouter) {
141
+ var router = Router(data.contactApiRouter);
142
+ router.is = "ct-btn";
143
+ router.attrs = { size: "mini" }
144
+ rtn._contactApiRouter=router;
145
+ }
146
+ return rtn._contactApiRouter;
147
+ }
133
148
  },
134
149
  get actionRouters() {
135
150
  if (rtn._actionRouters !== null) {
@@ -295,7 +310,7 @@ const Detail = function (source,para ,callBack) {
295
310
  }
296
311
  if(field.id=='Follow'
297
312
  || field.id=='Trust' || field.id=='TrustZJJ' || field.id=='TrustDJ' || field.id=='TrustPT'
298
- || field.id=='RealLook'
313
+ || field.id=='RealLook' || field.id=='RealLookVR'
299
314
  || field.id=='StatusAdjust'
300
315
  || field.id=='OperationKey' || field.id=='OperationKeyCommon' || field.id=='OperationKeyPassword'
301
316
  || field.id=='Key'){
@@ -306,6 +321,9 @@ const Detail = function (source,para ,callBack) {
306
321
  else if(field.id=='TrustZJJ' || field.id=='TrustDJ' || field.id=='TrustPT'){
307
322
  id='Trust';
308
323
  }
324
+ else if(field.id=='RealLookVR'){
325
+ id='RealLook';
326
+ }
309
327
  var advIndex = rtn.tags1.findIndex((v) => {
310
328
  return v.appID === id;
311
329
  });
@@ -183,6 +183,10 @@ const Router = function (source) {
183
183
  get flagFreshCurrentRow() {
184
184
  return source.flagFreshCurrentRow;
185
185
  },
186
+ //路由操作完成后是根据返回ID读取数据新增行
187
+ get flagAddRowAfterAction() {
188
+ return source.flagAddRowAfterAction;
189
+ },
186
190
  get textColor() {
187
191
  return source.textColor || '';
188
192
  },
@@ -563,7 +563,7 @@ const SearchTable = function (data, callBack, searchModel, flagSearch, defaultSe
563
563
  groupName: self.primaryKey,
564
564
  operation: 2,
565
565
  searchDataType: 3,
566
- searchValue1: router.actionType==Enum.ActionType.New? rtnData.responseData.content: rtn.listData[rtn.selectIndex][self.primaryKey],
566
+ searchValue1: router.flagAddRowAfterAction? rtnData.responseData.content: rtn.listData[rtn.selectIndex][self.primaryKey],
567
567
  });
568
568
  }
569
569
  Vue.prototype.$api.postHandler(common.globalUri(), {
@@ -577,7 +577,7 @@ const SearchTable = function (data, callBack, searchModel, flagSearch, defaultSe
577
577
  .then(function (response) {
578
578
  if (response.rtnCode === Enum.ReturnCode.Successful) {
579
579
  if (response.content.rows.length > 0) {
580
- if(router.actionType==Enum.ActionType.New){
580
+ if(router.flagAddRowAfterAction){
581
581
  rtn.setStyleRow(response.content.rows);
582
582
  response.content.rows.forEach((nr) => {
583
583
  rtn.listData.unshift(nr);
@@ -36,6 +36,7 @@ const loader = {
36
36
  PhotoSelect: require("./ctl/PhotoSelect.js").default,
37
37
  PhotoSelectList: require("./ctl/PhotoSelectList.js").default,
38
38
  QuickInputSos: require("./ctl/QuickInputSos.js").default,
39
+ ContactList: require("./ctl/ContactList.js").default,
39
40
  };
40
41
 
41
42
  export default loader;