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
@@ -59,6 +59,7 @@ const paths = {
59
59
  "dynamicDragSort": "./src/centaline/dynamicDragSort/index.js", //上下拖拽排序组件
60
60
  "dynamicEditPictures": "./src/centaline/dynamicEditPictures/index.js", //图片编辑组件
61
61
  "dynamicMapBaidu": "./src/centaline/dynamicMapBaidu/index.js", //地图
62
+ "dynamicContainer": "./src/centaline/dynamicContainer/index.js", //容器控件
62
63
  },
63
64
  "plugs": {
64
65
  "api": "./src/centaline/api/index.js", //调用API插件
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "centaline-data-driven",
3
- "version": "1.5.20",
3
+ "version": "1.5.22",
4
4
  "description": "ccai",
5
5
  "author": "hjc <3226136347@qq.com>",
6
6
  "private": false,
package/release-log.md CHANGED
@@ -1,3 +1,56 @@
1
+ ## v1.5.22
2
+ 2023-06-05
3
+
4
+ 优化
5
+
6
+ 容器控件
7
+
8
+ 右侧表单
9
+
10
+ 右侧列表
11
+
12
+ 右侧楼盘详情页
13
+
14
+ 弹层列表修改标题
15
+
16
+ 新增浏览器存取表格列宽
17
+
18
+ 文本框标题实现可换行效果以及checkbox 点击文字可以选择和取消
19
+
20
+ Layout组件优化
21
+
22
+ 优化盘源和楼盘列表页抽屉组件样式
23
+
24
+ 优化盘源和楼盘列表页右边栏按钮的布局和逻辑以及更多的逻辑展示
25
+
26
+ 表单列表弹层新增时,可以取到表单的关联值
27
+
28
+ bug修复
29
+
30
+ BUG修复图片选择 无标签时,设置默认项消失
31
+
32
+ 统计切换没有刷新右侧处理
33
+
34
+ 重置弹层引用列表样式居上高度
35
+
36
+
37
+ ## v1.5.21
38
+ 2023-05-25
39
+
40
+ 优化
41
+
42
+ 树组件新增loading加载
43
+
44
+ 下拉框locked状态下字体的颜色
45
+
46
+ 表格支持替换当前行数据
47
+
48
+ bug修复
49
+
50
+ 路由切换时树组件高度计算错误
51
+
52
+ baseUrl添加判断是否为空
53
+
1
54
  ## v1.5.19
2
55
  2023-05-23
3
56
 
package/src/Detail.vue CHANGED
@@ -1,6 +1,9 @@
1
1
  <template>
2
2
  <div id="appDetail" style="height:100%;">
3
- <ct-Detail :api="'PropertyOFI/readDetailForBrowse'" :apiParam="apiParam" :pageType="'PropertyDetailOFI'"></ct-Detail>
3
+ <!-- <ct-Detail :api="'PropertyOFI/readDetailForBrowse'" :apiParam="apiParam" :pageType="'PropertyDetailOFI'"></ct-Detail> -->
4
+ <!-- <ct-Detail :api="'PropertyRET/readDetailForBrowse'" :apiParam="apiParam" :pageType="'PropertyDetailRET'"></ct-Detail> -->
5
+ <!-- <ct-Detail :api="'Estate/readDetailForBrowse'" :apiParam="apiParam" :pageType="'EstateDetail'"></ct-Detail> -->
6
+ <ct-Detail :api="'EstateBuilding/readDetailForBrowse'" :apiParam="apiParam" :pageType="'EstateBuildingDetail'"></ct-Detail>
4
7
  <ct-dialog-list></ct-dialog-list>
5
8
  </div>
6
9
  </template>
@@ -10,7 +13,12 @@
10
13
  name: 'DataDrivendetail',
11
14
  data() {
12
15
  return {
13
- apiParam: {actionType: 1,chanceID: "1604775272433979392"} ,
16
+ apiParam: {
17
+ actionType: 1,
18
+ chanceID: "1604775272433979392",
19
+ estateID:'',
20
+ buildingID:'9717',
21
+ } ,
14
22
  }
15
23
  },
16
24
  mounted() {
package/src/Form.vue CHANGED
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div id="form-app" class="data-driven" style="width:100%;height:100%;overflow:auto">
3
3
  <!-- <ct-form :source="formdata.content" :apiParam="apiParam"></ct-form> -->
4
- <ct-form :api="'/PropertyTranToActive/getLayoutOfNew'" :apiParam="apiParam" :topHeight="topHeight"></ct-form>
4
+ <ct-form :api="'/api/third-dept-tran/transaction/edit'" :apiParam="apiParam" :topHeight="topHeight"></ct-form>
5
5
  <ct-dialog-list></ct-dialog-list>
6
6
  </div>
7
7
  </template>
@@ -12,7 +12,7 @@
12
12
  data() {
13
13
  return {
14
14
  apiParam:{
15
- "chanceID":"10155931","actionType":2
15
+ "originalTraId":"1663810304614531074","actionType":"3","pageStyle":"2","pageTitle":"修改成交单","pageOnly":"true"
16
16
  },
17
17
  topHeight:10,
18
18
  }
@@ -50,9 +50,19 @@
50
50
  :searchStatsApi="'/PropertyOFIList/getListStats'">
51
51
  </ct-searchlist> -->
52
52
 
53
- <ct-searchlist :searchConditionApi="'/EstateList/getLayoutOfSearch'"
53
+ <!-- <ct-searchlist :searchConditionApi="'/EstateList/getLayoutOfSearch'"
54
54
  :searchDataApi="'/EstateList/getListOfSearchModel'">
55
- </ct-searchlist>
55
+ </ct-searchlist> -->
56
+
57
+ <!-- <ct-searchlist :searchConditionApi="'/EstateBuildingList/getLayoutOfSearch'"
58
+ :searchDataApi="'/EstateBuildingList/getListOfSearchModel'">
59
+ </ct-searchlist> -->
60
+
61
+ <!-- <ct-searchlist :searchConditionApi="'/DistrictList/getLayoutOfSearch'"
62
+ :searchDataApi="'/DistrictList/getListOfSearchModel'">
63
+ </ct-searchlist> -->
64
+
65
+ <ct-searchlist :searchConditionApi="'/RoleList/getLayoutOfSearch'" :searchStatsApi="'/RoleList/getListStats'" :searchDataApi="'/RoleList/getListOfSearchModel'"></ct-searchlist>
56
66
 
57
67
  <ct-dialog-list></ct-dialog-list>
58
68
  </div>
@@ -1,8 +1,8 @@
1
1
  <template>
2
2
  <div id="app-Tree" style="height:100%;position: fixed;width:100%">
3
3
  <ct-treelist :flagsearch="true" :apiParam="apiParam" :leftWidth="'280'"
4
- :searchConditionApi="'/orgtree/getLayoutOfSearch'"
5
- :searchDataApi="'/orgtree/getList'" @loaded="loaded"></ct-treelist>
4
+ :searchConditionApi="'/DepartmentList/getLayoutOfSearch'"
5
+ :searchDataApi="'/DepartmentList/getListOfSearchModel'" @loaded="loaded"></ct-treelist>
6
6
  <ct-dialog-list></ct-dialog-list>
7
7
  </div>
8
8
  </template>
@@ -128,7 +128,7 @@ Axios.defaults.maxContentLength = 400000;
128
128
  const api = {
129
129
  get(url, params, callback) {
130
130
  if (common.flagRouterSelf()) {
131
- url = url + (url.substr(-1)=='/'?'':'/') + params.action;
131
+ url = url + (url=='' || url.substr(-1)=='/'?'':'/') + params.action;
132
132
  params = params.para;
133
133
  }
134
134
  return Axios.get(url, params, {
@@ -143,7 +143,7 @@ const api = {
143
143
  },
144
144
  post(url, params, callback) {
145
145
  if (common.flagRouterSelf()) {
146
- url = url + (url.substr(-1)=='/'?'':'/') + params.action;
146
+ url = url + (url=='' || url.substr(-1)=='/'?'':'/') + params.action;
147
147
  params = params.para;
148
148
  }
149
149
  return Axios.post(url, params, {
@@ -245,7 +245,7 @@ const api = {
245
245
  },
246
246
  postHandler(url, params, scripts) {
247
247
  if (common.flagRouterSelf()) {
248
- url = url + (url.substr(-1)=='/'?'':'/') + params.action;
248
+ url = url + (url=='' || url.substr(-1)=='/'?'':'/') + params.action;
249
249
  params = params.para;
250
250
  }
251
251
  return Axios.post(url, params, {
@@ -296,7 +296,8 @@ html {
296
296
  .ct-is-disabled {
297
297
  background-color: #f5f7fa;
298
298
  border-color: #e4e7ed;
299
- color: #c0c4cc!important;
299
+ /* color: #c0c4cc!important; */
300
+ color: var(--centalineBlue) !important;
300
301
  cursor: not-allowed;
301
302
  -webkit-appearance: none;
302
303
  border-radius: 4px;
@@ -308,6 +309,7 @@ html {
308
309
  line-height: 26px;
309
310
  outline: 0;
310
311
  padding: 0 15px;
312
+ padding-left: 5px;
311
313
  padding-right: 30px;
312
314
  -webkit-transition: border-color .2s cubic-bezier(.645,.045,.355,1);
313
315
  transition: border-color .2s cubic-bezier(.645,.045,.355,1);
@@ -598,7 +600,7 @@ html {
598
600
 
599
601
  .ct-searchtable{
600
602
  margin-top: 10px;
601
- padding: 20px 10px 0 10px;
603
+ padding: 10px 10px 0 10px;
602
604
  background: #fff;
603
605
  -webkit-box-sizing: border-box;
604
606
  border-radius:6px;
@@ -809,7 +811,7 @@ color: var(--centalinePlaceholder);
809
811
  }
810
812
  /* 重置弹层引用列表样式居上高度 */
811
813
  .ct-dialog_content .ct-searchtable{
812
- margin-top: 0px!important;
814
+ /* margin-top: 0px!important; */
813
815
  }
814
816
  .ct-table-content .checkbox-td .el-checkbox{
815
817
  min-width: initial;
@@ -2,7 +2,7 @@
2
2
  <div class="field-top">
3
3
  <div v-if="model !== null" class="ct-checkbox checkboxHeight">
4
4
  <div :class="[model.showLabel?'el-input-group el-input-group--prepend':'',!valid?'inputError':'']">
5
- <div v-if="model.showLabel && model.label" class="el-input-group__prepend line-feed" :class="[model.labelClass]">
5
+ <div v-if="model.showLabel && model.label" class="el-input-group__prepend line-feed" :class="[model.labelClass]" @click="toggleCheckbox">
6
6
  {{model.label}}
7
7
  </div>
8
8
  <div class="ct-radios">
@@ -51,6 +51,9 @@
51
51
  load(data) {
52
52
  this.model = data;
53
53
  },
54
+ toggleCheckbox() {
55
+ this.model.value = !this.model.value;
56
+ },
54
57
  changeCheckBoxHandler: function (event) {
55
58
  this.changeHandler();
56
59
  if(this.model.autoSearch) this.$emit('click');
@@ -73,6 +76,7 @@
73
76
  }
74
77
  .ct-form .line-feed {
75
78
  white-space: normal;
79
+ cursor: pointer;
76
80
  }
77
81
  .ct-checkbox .ct-radios .el-checkbox {
78
82
  min-width: 0px;
@@ -0,0 +1,14 @@
1
+ import dynamicContainer from './src/dynamicContainer'
2
+ import api from '../api/index'
3
+
4
+ dynamicContainer.install = function (Vue) {
5
+ Vue.component(dynamicContainer.name, dynamicContainer);
6
+
7
+ Vue.use(api);
8
+ }
9
+
10
+ if (typeof window !== 'undefined' && window.Vue) {
11
+ window.Vue.use(dynamicContainer);
12
+ }
13
+
14
+ export default dynamicContainer;
@@ -0,0 +1,151 @@
1
+ <template>
2
+ <el-container v-if="model.fields.length > 0" class="ct-container">
3
+ <el-aside class="lable" width="160px"><span v-html="model.label"></span></el-aside>
4
+ <el-main class="main">
5
+ <el-row>
6
+ <el-col v-for="(col, index) in model.fields" :key="index" v-if="col.show !== false"
7
+ :class="[index>0&&(col.label==''||col.is=='ct-btn')?'complex-left-10':'','containerCol']"
8
+ :style="{'width':(col.width!='0'?col.width+'px':'100%'),'flex':(col.width!='0'?'0 0 '+col.width+'px':'100%')}">
9
+ <component ref="Fields" :is="col.is" :vmodel="col" :api="model.OptApi" v-bind="col.bindPara"
10
+ @click="fieldClickHandler(col,$event)" @change="changeHandler(col,$event)" @enter="enterHandler(col,$event)"
11
+ @input="inputHandler(col,$event)"></component>
12
+ </el-col>
13
+ </el-row>
14
+ </el-main>
15
+ </el-container>
16
+ </template>
17
+
18
+ <script>
19
+ export default {
20
+ name: 'ct-container',
21
+ components: {
22
+ },
23
+ props: {
24
+ vmodel: Object,
25
+ api: String,
26
+ parentModel: Object,
27
+ },
28
+ data() {
29
+ return {
30
+ model: null,
31
+ foucus: false,
32
+ itemKey: Math.random(),
33
+ validMessage:'',
34
+ }
35
+ },
36
+ created() {
37
+ this.model = this.vmodel;
38
+ this.model.OptApi = this.api;
39
+ },
40
+ methods: {
41
+ fieldsValidExcute() {
42
+ var self = this;
43
+ var rtnBool = true;
44
+ if (typeof self.$refs.Fields !== 'undefined') {
45
+ self.$refs.Fields.forEach((f) => {
46
+ if (typeof f.validExcute !== 'undefined') {
47
+ if (!f.validExcute()) {
48
+ rtnBool = false;
49
+ if(self.validMessage=='')self.validMessage='【' + f.model.label + '】' +f.validMessage;
50
+ }
51
+ }
52
+ });
53
+ }
54
+ return rtnBool;
55
+ },
56
+ validExcute() {
57
+ var self = this;
58
+ var rtnBool = true;
59
+ if (!self.fieldsValidExcute()) {
60
+ rtnBool = false;
61
+ }
62
+ return rtnBool;
63
+ },
64
+ changeHandler(field) {
65
+ var self = this;
66
+
67
+ self.model.isChanged = true;
68
+ self.model.hiddenHandle(field);
69
+ self.model.requiredHandle(field);
70
+ //self.model.validMrf(field);
71
+
72
+ if (field.onAfterChanged) {
73
+ var router = self.model.actionRouters.find((v) => {
74
+ return v.id === field.onAfterChanged;
75
+ });
76
+ self.$parent.$parent.$parent.$parent.clickHandler(router);
77
+ }
78
+
79
+ self.$forceUpdate();
80
+ },
81
+ enterHandler(field) {
82
+ var self = this;
83
+
84
+ self.model.isChanged = true;
85
+ self.model.hiddenHandle(field);
86
+ self.model.requiredHandle(field);
87
+ //self.model.validMrf(field);
88
+
89
+ if (field.routerKeyForEnterKey) {
90
+ var router = self.model.actionRouters.find((v) => {
91
+ return v.id === field.routerKeyForEnterKey;
92
+ });
93
+ self.$parent.$parent.$parent.$parent.clickHandler(router);
94
+ }
95
+
96
+ self.$forceUpdate();
97
+ },
98
+ inputHandler(field) {
99
+ var self = this;
100
+ this.model.input = field.input;//当前小组件事件作为大组件事件
101
+ self.$emit('input');
102
+
103
+ },
104
+ fieldClickHandler(field) {
105
+ let submitData = null;
106
+ var router = this.model.buttons.find((v) => {
107
+ return v.id === field.id;
108
+ });
109
+ if (router == undefined) {
110
+ router = this.model.links.find((v) => {
111
+ return v.id === field.id;
112
+ });
113
+ }
114
+ if (router == undefined) {
115
+ router = this.model.actionRouters.find((v) => {
116
+ return v.id === field.id;
117
+ });
118
+ }
119
+ if (router && field.isSubmitDataFromSelf) {
120
+ submitData = {};
121
+ router.submitFormField.forEach((v) => {
122
+ submitData[v] = field.list[field.listIndex].code;
123
+ });
124
+ }
125
+ this.$parent.$parent.$parent.$parent.clickHandler(router, submitData);
126
+ },
127
+ }
128
+ }
129
+ </script>
130
+ <style>
131
+ .complex-left-10 {
132
+ padding-left: 10px;
133
+ }
134
+ .ct-container{
135
+ border: 1px solid #e0e0e0;
136
+ }
137
+ .ct-container main{
138
+ padding: 6px 0;
139
+ }
140
+ .containerCol{
141
+ padding: 5px;
142
+ }
143
+ .ct-container .lable{
144
+ display: flex;
145
+ justify-content: flex-start;
146
+ align-items: center;
147
+ flex-wrap: wrap;
148
+ background: #f3f3f3;
149
+ padding-left: 16px;
150
+ }
151
+ </style>
@@ -5,10 +5,10 @@
5
5
  <template v-if="carouselMediaAlbums.length > 0">
6
6
  <el-carousel
7
7
  arrow="hover"
8
- height="199px"
8
+ :height="imgHeight+'px'"
9
9
  :autoplay="false"
10
10
  indicator-position="none"
11
- :initial-index="getinitialIndex(carouselMediaAlbums)" @change="changeAlbumsIndex" ref="mediaAlbumsCarousel"
11
+ :initial-index="getinitialIndex(carouselMediaAlbums)" @change="changeAlbumsIndex" ref="mediaAlbumsCarousel" style="border-radius: 4px;"
12
12
  >
13
13
  <template v-for="(item, index) in carouselMediaAlbums">
14
14
  <el-carousel-item :key="index">
@@ -27,7 +27,7 @@
27
27
  <div class="page">{{page}}</div>
28
28
  <div
29
29
  class="hous-img"
30
- style="position: absolute; bottom: 0; z-index: 9"
30
+ style="position: absolute; bottom: 4px; z-index: 9"
31
31
  v-if="newMediaAlbums.length > 1"
32
32
  >
33
33
  <div class="img-i">
@@ -184,7 +184,7 @@ export default {
184
184
  }
185
185
  .page{
186
186
  position: absolute;
187
- bottom: 20px;
187
+ bottom: 7px;
188
188
  text-align: right;
189
189
  right: 0px;
190
190
  background-color: rgb(14 12 24 / 38%);
@@ -199,7 +199,7 @@ export default {
199
199
  overflow-x: hidden;
200
200
  overflow-y: hidden;
201
201
  white-space: nowrap;
202
- background-color: rgb(255 255 255);
202
+ // background-color: rgb(255 255 255);
203
203
  opacity: 0.8;
204
204
  .img-i {
205
205
  width: auto;
@@ -1,18 +1,31 @@
1
1
  <template>
2
- <div>
3
- <ct-PropertyDetailOFI :api="api" :apiParam="apiParam" :parentModel="parentModel" :top="top" class="ct-PropertyDetailOFI" v-if="pageType=='PropertyDetailOFI'"
2
+ <div :style="{position:pageType=='Form'?'relative':''}">
3
+ <ct-PropertyDetailOFI v-if="pageType=='PropertyDetailOFI'" :api="api" :apiParam="apiParam" :parentModel="parentModel" :top="top" class="ct-PropertyDetailOFI"
4
4
  @loaded="loaded" @scrollHandle="scrollHandle" ></ct-PropertyDetailOFI>
5
5
 
6
- <ct-PropertyDetailRET :api="api" :apiParam="apiParam" :parentModel="parentModel" :top="top" class="ct-PropertyDetailRET" v-if="pageType=='PropertyDetailRET'"
6
+ <ct-PropertyDetailRET v-if="pageType=='PropertyDetailRET'" :api="api" :apiParam="apiParam" :parentModel="parentModel" :top="top" class="ct-PropertyDetailRET"
7
7
  @loaded="loaded" @scrollHandle="scrollHandle" ></ct-PropertyDetailRET>
8
8
 
9
- <ct-PropertySimpleDetailRET :api="api" :apiParam="apiParam" :selectIndex="selectIndex" :rowCount="rowCount" class="ct-PropertySimpleDetailRET"
9
+ <ct-PropertySimpleDetailRET v-if="pageType=='PropertySimpleDetailRET' || pageType=='PropertySimpleDetailOFI'" :api="api" :apiParam="apiParam"
10
+ :selectIndex="selectIndex" :rowCount="rowCount" class="ct-PropertySimpleDetailRET"
10
11
  @loaded="loaded" @clickNextHandler="clickNextHandler" @clickPrevHandler="clickPrevHandler" @simpleRouterclickHandler="simpleRouterclickHandler"
11
- v-if="pageType=='PropertySimpleDetailRET' || pageType=='PropertySimpleDetailOFI'" @closeSideHandler="closeSideHandler" :drowerClose="drowerClose"></ct-PropertySimpleDetailRET>
12
+ @closeSideHandler="closeSideHandler" :drowerClose="drowerClose"></ct-PropertySimpleDetailRET>
12
13
 
13
- <ct-EstateSimpleDetail :api="api" :apiParam="apiParam" :selectIndex="selectIndex" :rowCount="rowCount" class="ct-EstateSimpleDetail"
14
+ <ct-EstateSimpleDetail v-if="pageType=='EstateSimpleDetail' || pageType=='EstateBuildingSimpleDetail'" :api="api" :apiParam="apiParam" :selectIndex="selectIndex" :rowCount="rowCount" class="ct-EstateSimpleDetail"
14
15
  @loaded="loaded" @clickNextHandler="clickNextHandler" @clickPrevHandler="clickPrevHandler" @simpleRouterclickHandler="simpleRouterclickHandler"
15
- v-if="pageType=='EstateSimpleDetail'" @closeSideHandler="closeSideHandler" :drowerClose="drowerClose"></ct-EstateSimpleDetail>
16
+ @closeSideHandler="closeSideHandler" :drowerClose="drowerClose"></ct-EstateSimpleDetail>
17
+
18
+ <ct-EstateBuildingDetail v-if="pageType=='EstateBuildingDetail'" :api="api" :apiParam="apiParam" :parentModel="parentModel" :top="top" class="ct-EstateBuildingDetail"
19
+ @loaded="loaded" @scrollHandle="scrollHandle" ></ct-EstateBuildingDetail>
20
+
21
+ <ct-SearchList v-if="pageType=='SearchList'" :searchConditionApi="searchConditionApi" :searchStatsApi="searchStatsApi" :searchDataApi="searchDataApi"
22
+ :apiParam="apiParam" :pageHeight="listHeight+'px'" @tableLoaded="loaded">
23
+ </ct-SearchList>
24
+
25
+ <div v-if="pageType=='Form'" style="overflow: auto;" :style="{height:listHeight+'px'}">
26
+ <ct-form :api="api" :apiParam="apiParam" @loaded="loaded">
27
+ </ct-form>
28
+ </div>
16
29
 
17
30
  </div>
18
31
  </template>
@@ -22,6 +35,9 @@
22
35
  import dynamicPropertyDetailRET from './dynamicPropertyDetailRET'
23
36
  import dynamicPropertySimpleDetailRET from './dynamicPropertySimpleDetailRET'
24
37
  import dynamicEstateSimpleDetail from './dynamicEstateSimpleDetail'
38
+ import dynamicEstateBuildingDetail from './dynamicEstateBuildingDetail'
39
+ import dynamicSearchList from '../../dynamicSearchList/src/dynamicSearchList.vue';
40
+ import dynamicForm from '../../dynamicForm/src/dynamicForm.vue';
25
41
  export default {
26
42
  name: 'ct-Detail',
27
43
  components: {
@@ -29,6 +45,9 @@
29
45
  'ct-PropertyDetailRET': dynamicPropertyDetailRET,
30
46
  'ct-PropertySimpleDetailRET': dynamicPropertySimpleDetailRET,
31
47
  'ct-EstateSimpleDetail': dynamicEstateSimpleDetail,
48
+ 'ct-EstateBuildingDetail': dynamicEstateBuildingDetail,
49
+ 'ct-SearchList': dynamicSearchList,
50
+ 'ct-form': dynamicForm,
32
51
  },
33
52
  props: {
34
53
  vmodel: Object,
@@ -40,6 +59,10 @@
40
59
  rowCount:Number,
41
60
  top:Number,
42
61
  drowerClose:String,
62
+ searchConditionApi: String,
63
+ searchStatsApi: String,
64
+ searchDataApi: String,
65
+ listHeight:Number,
43
66
  },
44
67
  data() {
45
68
  return {