centaline-data-driven 1.2.22 → 1.2.23
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.
- package/package.json +1 -1
- package/src/centaline/api/index.js +8 -0
- package/src/centaline/css/common.css +9 -1
- package/src/centaline/dynamicDetail/src/dynamicContactList.vue +59 -131
- package/src/centaline/dynamicDetail/src/dynamicPropertyDetailRET.vue +4 -61
- package/src/centaline/loader/src/ctl/ContactList.js +31 -0
- package/src/centaline/loader/src/ctl/Detail.js +15 -0
- package/src/centaline/loader/src/ctl.js +1 -0
- package/wwwroot/static/centaline/centaline-data-driven.js +3 -3
- package/wwwroot/static/centaline/centaline-data-driven.js.map +1 -1
package/package.json
CHANGED
|
@@ -214,6 +214,14 @@ const api = {
|
|
|
214
214
|
}
|
|
215
215
|
else {
|
|
216
216
|
Vue.prototype.$message.error(response.data.rtnMsg);
|
|
217
|
+
// Vue.prototype.$message({
|
|
218
|
+
// message: response.data.rtnMsg,//消息文字
|
|
219
|
+
// dangerouslyUseHTMLString: false,
|
|
220
|
+
// type: 'error',//主题:success/warning/info/error
|
|
221
|
+
// center: true,//是否居中
|
|
222
|
+
// duration: 0, //显示时间, 毫秒。设为 0 则不会自动关闭
|
|
223
|
+
// showClose: true,//是否显示关闭按钮
|
|
224
|
+
// });
|
|
217
225
|
}
|
|
218
226
|
}
|
|
219
227
|
return Promise.reject(response);
|
|
@@ -768,4 +768,12 @@ html {
|
|
|
768
768
|
}
|
|
769
769
|
.ct-table-content .checkbox-td .el-checkbox{
|
|
770
770
|
min-width: initial;
|
|
771
|
-
}
|
|
771
|
+
}
|
|
772
|
+
|
|
773
|
+
.el-message__content{
|
|
774
|
+
white-space: pre-line;
|
|
775
|
+
line-height: 20px;
|
|
776
|
+
}
|
|
777
|
+
.details-mid .st-serach-screen,.details-mid .ct-searchtable{
|
|
778
|
+
border-radius: initial;
|
|
779
|
+
}
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
<!-- 联系人 -->
|
|
4
4
|
<div class="contacts-head">
|
|
5
5
|
<div class="title-l">联系人信息</div>
|
|
6
|
-
<
|
|
6
|
+
<component class="el-button contacts-but el-button--info el-button--mini max-info"
|
|
7
|
+
v-if="apiRouter!==null && !flagLook" :is="apiRouter.is" :vmodel="apiRouter"
|
|
8
|
+
@click="lookOwner(apiRouter,$event)"></component>
|
|
7
9
|
<div class="contacts-tips" v-else>
|
|
8
10
|
<button class="el-button el-button--primary el-button--mini max-btn-add">新增联系人</button>
|
|
9
11
|
<button class="el-button el-button--primary el-button--mini max-btn-add">通话记录</button>
|
|
@@ -11,33 +13,18 @@
|
|
|
11
13
|
</div>
|
|
12
14
|
</div>
|
|
13
15
|
<!-- 表格 -->
|
|
14
|
-
<div class="contacts-table" v-show="
|
|
15
|
-
<el-table
|
|
16
|
-
:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
:min-width="item.width"
|
|
27
|
-
>
|
|
28
|
-
<template slot-scope="scope">
|
|
29
|
-
<span v-if="scope.column.property=='phone'">{{ scope.row.phone }}
|
|
30
|
-
|
|
31
|
-
</span>
|
|
32
|
-
<span v-else-if="scope.column.property=='tel'">
|
|
33
|
-
{{scope.row.tel}}
|
|
34
|
-
|
|
35
|
-
</span>
|
|
36
|
-
<span v-else>
|
|
37
|
-
{{scope.row[scope.column.property]}}
|
|
38
|
-
</span>
|
|
39
|
-
</template>
|
|
40
|
-
</el-table-column>
|
|
16
|
+
<div class="contacts-table" v-show="flagLook">
|
|
17
|
+
<el-table :data="tableData" stripe fit style="width: 100%" :header-cell-style="{background:'#f3f3f3',color:'#333333'}">
|
|
18
|
+
<el-table-column v-for="(item,index) in columnList" :key="index"
|
|
19
|
+
:property="item.prop" :label="item.label" :min-width="item.width" >
|
|
20
|
+
<template slot-scope="scope">
|
|
21
|
+
<span v-if="scope.column.property=='phone'">{{scope.row.phone }}</span>
|
|
22
|
+
<span v-else-if="scope.column.property=='tel'">{{scope.row.tel}}</span>
|
|
23
|
+
<span v-else>
|
|
24
|
+
{{scope.row[scope.column.property]}}
|
|
25
|
+
</span>
|
|
26
|
+
</template>
|
|
27
|
+
</el-table-column>
|
|
41
28
|
</el-table>
|
|
42
29
|
</div>
|
|
43
30
|
</div>
|
|
@@ -53,10 +40,14 @@
|
|
|
53
40
|
vmodel: Object,
|
|
54
41
|
api: String,
|
|
55
42
|
apiParam: Object,
|
|
43
|
+
apiRouter: {
|
|
44
|
+
Object,
|
|
45
|
+
default:{}
|
|
46
|
+
},
|
|
56
47
|
},
|
|
57
48
|
data() {
|
|
58
49
|
return {
|
|
59
|
-
|
|
50
|
+
flagLook: false,
|
|
60
51
|
columnList: [
|
|
61
52
|
{
|
|
62
53
|
prop: 'name',
|
|
@@ -115,40 +106,31 @@
|
|
|
115
106
|
opening:'first',
|
|
116
107
|
}
|
|
117
108
|
},
|
|
118
|
-
mounted() {
|
|
119
|
-
var self = this;
|
|
120
|
-
this.$nextTick(function () {
|
|
121
|
-
if (self.vmodel) {
|
|
122
|
-
self.load(self.vmodel);
|
|
123
|
-
}
|
|
124
|
-
else if (typeof self.source !== 'undefined') {
|
|
125
|
-
self.loaderObj.Detail(self.source,null,self.load);
|
|
126
|
-
}
|
|
127
|
-
else if (typeof self.api !== 'undefined') {
|
|
128
|
-
self.loaderObj.Detail(self.api,self.apiParam, self.load);
|
|
129
|
-
}
|
|
130
|
-
});
|
|
109
|
+
mounted() {
|
|
131
110
|
},
|
|
132
111
|
activated() {
|
|
133
112
|
this.$nextTick(() => {
|
|
134
|
-
|
|
113
|
+
this.setDetailHeight();
|
|
135
114
|
})
|
|
136
115
|
},
|
|
137
116
|
methods: {
|
|
138
117
|
load(data) {
|
|
139
118
|
var self = this;
|
|
140
|
-
this.model = data;
|
|
119
|
+
this.model = data;
|
|
141
120
|
this.model.$vue = self;
|
|
142
|
-
|
|
143
121
|
},
|
|
144
122
|
loadFields() {
|
|
145
123
|
var self = this;
|
|
146
124
|
},
|
|
147
|
-
lookOwner() {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
125
|
+
lookOwner(router) {
|
|
126
|
+
var self = this;
|
|
127
|
+
var submitData=router.getActionPara({}).para;
|
|
128
|
+
router.doAction(submitData, (res) => {
|
|
129
|
+
if (res.rtnCode === Enum.ReturnCode.Successful) {
|
|
130
|
+
self.loaderObj.ContactList(res.content,null,self.load);
|
|
131
|
+
self.flagLook = true;
|
|
132
|
+
}
|
|
133
|
+
});
|
|
152
134
|
},
|
|
153
135
|
setDetailHeight() {
|
|
154
136
|
this.$nextTick(() => {
|
|
@@ -320,53 +302,6 @@
|
|
|
320
302
|
}
|
|
321
303
|
</script>
|
|
322
304
|
<style lang="scss" scoped>
|
|
323
|
-
.main{
|
|
324
|
-
background: #ECEFF2;
|
|
325
|
-
}
|
|
326
|
-
.rel{
|
|
327
|
-
position: relative;
|
|
328
|
-
}
|
|
329
|
-
.y-auto {
|
|
330
|
-
overflow-y: auto;
|
|
331
|
-
overflow-x: auto;
|
|
332
|
-
}
|
|
333
|
-
.w64{width: 64px!important}
|
|
334
|
-
.w93{width: 93px!important}
|
|
335
|
-
.w300 {
|
|
336
|
-
width: 300px;
|
|
337
|
-
}
|
|
338
|
-
.mt5{
|
|
339
|
-
margin-top: 5px;
|
|
340
|
-
}
|
|
341
|
-
.mt10{
|
|
342
|
-
margin-top: 10px;
|
|
343
|
-
}
|
|
344
|
-
.mt15{
|
|
345
|
-
margin-top: 15px;
|
|
346
|
-
}
|
|
347
|
-
.mb10{
|
|
348
|
-
margin-bottom: 10px;
|
|
349
|
-
}
|
|
350
|
-
.mb20 {
|
|
351
|
-
margin-bottom: 20px;
|
|
352
|
-
}
|
|
353
|
-
.mr10{
|
|
354
|
-
margin-right: 10px;
|
|
355
|
-
}
|
|
356
|
-
.p0 {
|
|
357
|
-
padding: 0 !important;
|
|
358
|
-
}
|
|
359
|
-
.pb10{
|
|
360
|
-
padding-bottom: 10px!important;
|
|
361
|
-
}
|
|
362
|
-
.f-wb {
|
|
363
|
-
font-weight: bold;
|
|
364
|
-
}
|
|
365
|
-
.base-box {
|
|
366
|
-
background: #FFFFFF;
|
|
367
|
-
border-radius: 6px;
|
|
368
|
-
width: 100%;
|
|
369
|
-
}
|
|
370
305
|
.details-content{
|
|
371
306
|
font-size: 12px;
|
|
372
307
|
.title-l{
|
|
@@ -963,36 +898,33 @@
|
|
|
963
898
|
}
|
|
964
899
|
}
|
|
965
900
|
// 按钮
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
color: #fff;
|
|
994
|
-
}
|
|
995
|
-
.max-btn-add button{ /*list-button*/
|
|
901
|
+
.max-info{
|
|
902
|
+
height: 26px;
|
|
903
|
+
color: #333333;
|
|
904
|
+
background-color: #FFFFFF;
|
|
905
|
+
border: 1px solid #E0E0E0;
|
|
906
|
+
border-radius: 6px;
|
|
907
|
+
font-size: 12px;
|
|
908
|
+
}
|
|
909
|
+
.max-default{
|
|
910
|
+
border: 1px solid #EE6B6B;
|
|
911
|
+
color: #EE6B6B;
|
|
912
|
+
height: 26px;
|
|
913
|
+
|
|
914
|
+
border-radius: 6px;
|
|
915
|
+
font-size: 12px;
|
|
916
|
+
}
|
|
917
|
+
.max-info:hover,.max-default:hover{
|
|
918
|
+
background-color:#FF9393;
|
|
919
|
+
border-color: #FF9393;
|
|
920
|
+
color: #fff;
|
|
921
|
+
}
|
|
922
|
+
.max-info:active,.max-default:active{
|
|
923
|
+
background-color: #B33136;
|
|
924
|
+
border-color: #B33136;
|
|
925
|
+
color: #fff;
|
|
926
|
+
}
|
|
927
|
+
.max-btn-add button{ /*list-button*/
|
|
996
928
|
height: 26px;
|
|
997
929
|
background: #EE6B6B;
|
|
998
930
|
box-shadow: 0px 2px 4px 0px rgba(238,107,107,0.25);
|
|
@@ -1010,11 +942,7 @@
|
|
|
1010
942
|
height: 26px;
|
|
1011
943
|
border-radius: 6px;
|
|
1012
944
|
}
|
|
1013
|
-
.follow-search-bar{
|
|
1014
|
-
display: flex;
|
|
1015
|
-
}
|
|
1016
945
|
.r{
|
|
1017
946
|
float: right;
|
|
1018
947
|
}
|
|
1019
|
-
|
|
1020
948
|
</style>
|
|
@@ -135,12 +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
|
-
<ct-contactList v-if="model.
|
|
142
|
+
<ct-contactList v-if="model.contactApiRouter!==null" :apiRouter="model.contactApiRouter" ></ct-contactList>
|
|
144
143
|
</div>
|
|
145
144
|
<div class="tablist-info base-box">
|
|
146
145
|
<div class="details-tabs-box">
|
|
@@ -327,66 +326,10 @@
|
|
|
327
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' },
|
|
328
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' },
|
|
329
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' },
|
|
330
|
-
|
|
331
|
-
allInfo: false,
|
|
332
|
-
allIn:false,
|
|
333
|
-
codeOwner: false,
|
|
334
|
-
columnList: [
|
|
335
|
-
{
|
|
336
|
-
prop: 'name',
|
|
337
|
-
label: '联系人',
|
|
338
|
-
width: '80'
|
|
339
|
-
},
|
|
340
|
-
{
|
|
341
|
-
prop: 'type',
|
|
342
|
-
label: '类型',
|
|
343
|
-
width: '60'
|
|
344
|
-
},
|
|
345
|
-
{
|
|
346
|
-
prop: 'phone',
|
|
347
|
-
label: '手机',
|
|
348
|
-
width: '125'
|
|
349
|
-
},
|
|
350
|
-
{
|
|
351
|
-
prop: 'tel',
|
|
352
|
-
label: '座机',
|
|
353
|
-
width: '170'
|
|
354
|
-
},
|
|
355
|
-
{
|
|
356
|
-
prop: 'wx',
|
|
357
|
-
label: '微信',
|
|
358
|
-
width: '150'
|
|
329
|
+
],
|
|
359
330
|
},
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
label: '录入时间',
|
|
363
|
-
width: '150'
|
|
364
|
-
},
|
|
365
|
-
{
|
|
366
|
-
prop: 'entUser',
|
|
367
|
-
label: '录入人',
|
|
368
|
-
width: '80'
|
|
369
|
-
},
|
|
370
|
-
{
|
|
371
|
-
prop: 'remarks',
|
|
372
|
-
label: '操作',
|
|
373
|
-
// width:'180'
|
|
374
|
-
},
|
|
375
|
-
],
|
|
376
|
-
tableData: [
|
|
377
|
-
{
|
|
378
|
-
name: '王建国先生',
|
|
379
|
-
type: '业主',
|
|
380
|
-
phone: '13866668888',
|
|
381
|
-
tel: '0275-55556666-5896',
|
|
382
|
-
wx: '555566665896',
|
|
383
|
-
entTime: '2021-10-26 29:27:25',
|
|
384
|
-
entUser: '王天',
|
|
385
|
-
remarks: '删除',
|
|
386
|
-
isIcon: true,
|
|
387
|
-
},
|
|
388
|
-
],
|
|
389
|
-
opening:'first',
|
|
331
|
+
allInfo: false,
|
|
332
|
+
allIn:false,
|
|
390
333
|
}
|
|
391
334
|
},
|
|
392
335
|
mounted() {
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
|
|
12
|
+
};
|
|
13
|
+
return rtn;
|
|
14
|
+
}
|
|
15
|
+
if (typeof source === 'string') {
|
|
16
|
+
Vue.prototype.$api.postHandler(common.globalUri(), { action: source,para:para}).then(
|
|
17
|
+
function (response) {
|
|
18
|
+
if (response.rtnCode === Enum.ReturnCode.Successful) {
|
|
19
|
+
var rtn = init(response.content);
|
|
20
|
+
if (callBack) {
|
|
21
|
+
callBack(rtn);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
return init(source);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
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) {
|
|
@@ -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;
|