centaline-data-driven 1.2.46 → 1.2.49

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "centaline-data-driven",
3
- "version": "1.2.46",
3
+ "version": "1.2.49",
4
4
  "description": "ccai",
5
5
  "author": "hjc <3226136347@qq.com>",
6
6
  "private": false,
Binary file
@@ -800,4 +800,7 @@ html {
800
800
  }
801
801
  .el-input-group{
802
802
  line-height: 26px;
803
- }
803
+ }
804
+
805
+
806
+
@@ -108,6 +108,9 @@
108
108
  min-height: 26px;
109
109
  line-height: 25px;
110
110
  }
111
+ .ct-checkbox .lableNaN{
112
+ padding-left: 3px!important;
113
+ }
111
114
  .cover-list-item .el-checkbox{
112
115
  margin-right: 10px!important;
113
116
  }
@@ -5,7 +5,7 @@
5
5
  <div v-if="model.showLabel && model.label" class="el-input-group__prepend" :class="[model.labelClass]">
6
6
  {{model.label}}
7
7
  </div>
8
- <div class="ct-checkbox-mian cover-list-item" :class="[model.showLabel?'showLabel':'',model.value !== ''?'hasValue':'']">
8
+ <div class="ct-checkbox-mian cover-list-item" :class="[model.showLabel?'showLabel':'',model.value !== ''?'hasValue':'',model.label?'':'lableNaN']">
9
9
  <el-checkbox-group v-model="model.checkedItemArr" @change="changeHandler1">
10
10
  <el-checkbox :disabled="model.lock" v-for="item in model.options" :label="item[model.optionAttrs.value]" :key="item[model.optionAttrs.value]">{{item[model.optionAttrs.label]}}</el-checkbox>
11
11
  <span v-if="!model.lock" class="cover-list-item-span max-cover-list-item">
@@ -2,17 +2,20 @@
2
2
  <div>
3
3
  <ct-PropertyDetailOFI :api="api" :apiParam="apiParam" class="ct-PropertyDetailOFI" v-if="pageType=='PropertyDetailOFI'"></ct-PropertyDetailOFI>
4
4
  <ct-PropertyDetailRET :api="api" :apiParam="apiParam" class="ct-PropertyDetailRET" v-if="pageType=='PropertyDetailRET'"></ct-PropertyDetailRET>
5
+ <ct-PropertySimpleDetailRET :api="api" :apiParam="apiParam" class="ct-PropertySimpleDetailRET" v-if="pageType=='PropertySimpleDetailRET'"></ct-PropertySimpleDetailRET>
5
6
  </div>
6
7
  </template>
7
8
 
8
9
  <script>
9
10
  import dynamicPropertyDetailOFI from './dynamicPropertyDetailOFI'
10
11
  import dynamicPropertyDetailRET from './dynamicPropertyDetailRET'
12
+ import dynamicPropertySimpleDetailRET from './dynamicPropertySimpleDetailRET'
11
13
  export default {
12
14
  name: 'ct-Detail',
13
15
  components: {
14
16
  'ct-PropertyDetailOFI': dynamicPropertyDetailOFI,
15
17
  'ct-PropertyDetailRET': dynamicPropertyDetailRET,
18
+ 'ct-PropertySimpleDetailRET': dynamicPropertySimpleDetailRET,
16
19
  },
17
20
  props: {
18
21
  vmodel: Object,
@@ -110,13 +110,13 @@
110
110
  <img src="../../../assets/jsq.png" class="img-jsq" alt="">
111
111
  </div>
112
112
  <div class="row-i"><span>{{model.fields1Dic.PriceUnit.label}}</span><span class="base-clolr">{{model.fields1Dic.PriceUnit.value}}</span><span class="base-clolr">{{model.fields1Dic.PriceUnit.unitName}}</span></div>
113
- <div class="row-i"><span>{{model.fields1Dic.PriceLine.label}}</span><div>{{model.fields1Dic.PriceLine.value}}{{model.fields1Dic.PriceLine.unitName}}</div></div></div>
113
+ <div v-if="model.fields1Dic.PriceLine" class="row-i"><span>{{model.fields1Dic.PriceLine.label}}</span><div>{{model.fields1Dic.PriceLine.value}}{{model.fields1Dic.PriceLine.unitName}}</div></div></div>
114
114
  <div class="info-row">
115
- <div class="row-i">
115
+ <div v-if="model.fields1Dic.PriceLine" class="row-i">
116
116
  <span >{{model.fields1Dic.MarketRateOfReturn.label}}</span><span>{{model.fields1Dic.MarketRateOfReturn.value}} </span><span>{{model.fields1Dic.MarketRateOfReturn.unitName}}</span>
117
117
  </div>
118
- <div class="row-i"><span>{{model.fields1Dic.EstimatePriceRent.label}}</span><div>{{model.fields1Dic.EstimatePriceRent.value}}<span>{{model.fields1Dic.EstimatePriceRent.unitName}}</span></div></div>
119
- <div class="row-i"><span>{{model.fields1Dic.EstimatePriceRentUnit.label}}</span><span>{{model.fields1Dic.EstimatePriceRentUnit.value}}</span><span>{{model.fields1Dic.EstimatePriceRentUnit.unitName}}</span></div>
118
+ <div v-if="model.fields1Dic.EstimatePriceRent" class="row-i"><span>{{model.fields1Dic.EstimatePriceRent.label}}</span><div>{{model.fields1Dic.EstimatePriceRent.value}}<span>{{model.fields1Dic.EstimatePriceRent.unitName}}</span></div></div>
119
+ <div v-if="model.fields1Dic.EstimatePriceRentUnit" class="row-i"><span>{{model.fields1Dic.EstimatePriceRentUnit.label}}</span><span>{{model.fields1Dic.EstimatePriceRentUnit.value}}</span><span>{{model.fields1Dic.EstimatePriceRentUnit.unitName}}</span></div>
120
120
  </div>
121
121
 
122
122
  <div class="info-mid">
@@ -0,0 +1,316 @@
1
+ <template>
2
+ <div ref="main" class="main">
3
+ <div style="height:36px;margin-top: 10px;display: flex;">
4
+ <img src="../../../assets/ewmA.png" alt="" style="width: 26px;height: 26px;vertical-align: bottom;margin-left:22px">
5
+ <span :style="{'width':computedTopWidth}"></span>
6
+ <img src="../../../assets/T.png" alt="" style="width: 26px;height: 26px;vertical-align: bottom;margin-right:11px">
7
+ <img src="../../../assets/B.png" alt="" style="width: 26px;height: 26px;vertical-align: bottom;margin-right:8px">
8
+ <div class="el-icon-close"></div>
9
+ </div>
10
+ <div v-if="model!==null">
11
+ 11111111111111111111111
12
+ </div>
13
+ </div>
14
+ </template>
15
+
16
+ <script>
17
+ import dynamicElement from '../../mixins/dynamicElement';
18
+ export default {
19
+ name: 'ct-PropertySimpleDetailRET',
20
+ mixins: [dynamicElement],
21
+ components: {
22
+ },
23
+ props: {
24
+ vmodel: Object,
25
+ api: String,
26
+ apiParam: Object,
27
+ },
28
+ computed: {
29
+ computedTopWidth(){
30
+ // debugger
31
+ // let w=this.$refs.main.clientWidth;
32
+ // let wt=w-140;
33
+ return 300+'px';
34
+ }
35
+ },
36
+ data() {
37
+ return {
38
+
39
+ }
40
+ },
41
+ mounted() {
42
+ var self = this;
43
+ this.$nextTick(function () {
44
+ if (self.vmodel) {
45
+ self.load(self.vmodel);
46
+ }
47
+ else if (typeof self.source !== 'undefined') {
48
+ self.loaderObj.Detail(self.source,null,self.load);
49
+ }
50
+ else if (typeof self.api !== 'undefined' && self.apiParam) {
51
+ self.loaderObj.Detail(self.api,self.apiParam, self.load);
52
+ }
53
+ });
54
+ },
55
+ activated() {
56
+ this.$nextTick(() => {
57
+ this.setDetailHeight();
58
+ })
59
+ },
60
+ methods: {
61
+ load(data) {
62
+ var self = this;
63
+ this.model = data;
64
+ this.model.$vue = self;
65
+ this.loadFields();
66
+ if(this.model.tags2 && this.model.tags2[0]){
67
+ this.model.getTags2List(0);
68
+ }
69
+ this.loadOperation();
70
+ this.loadCommission();
71
+ this.setDetailHeight();
72
+ this.$nextTick(() => {
73
+ window.addEventListener("resize", (ev) => {
74
+ self.setDetailHeight();
75
+ });
76
+ });
77
+ },
78
+ loadFields() {
79
+ var self = this;
80
+ self.collapse=[];
81
+ var collapseItemArr = [];
82
+ var col=0;
83
+ var colCount=4;
84
+ self.model.fields2Dic.forEach((v, index) => {
85
+ if(v.type===13){
86
+ collapseItemArr = [];
87
+ col=0;
88
+ }
89
+ else if(v.singleLine){
90
+ if(collapseItemArr.length>0){
91
+ self.collapse.push(collapseItemArr);
92
+ collapseItemArr = [];
93
+ }
94
+ collapseItemArr.push(v);
95
+ self.collapse.push(collapseItemArr);
96
+ collapseItemArr = [];
97
+ col=0;
98
+ }
99
+ else if(v.spanCols){
100
+ collapseItemArr.push(v);
101
+ col=col+v.spanCols;
102
+ if(col===colCount || index===self.model.fields2Dic.length-1){
103
+ self.collapse.push(collapseItemArr);
104
+ collapseItemArr = [];
105
+ col=0;
106
+ }
107
+ }
108
+ else{
109
+ collapseItemArr.push(v);
110
+ col=col+1;
111
+ if(col===colCount || index===self.model.fields2Dic.length-1){
112
+ self.collapse.push(collapseItemArr);
113
+ collapseItemArr = [];
114
+ col=0;
115
+ }
116
+ }
117
+ });
118
+ },
119
+ loadOperation() {
120
+ this.model._operationList=null;
121
+ this.model._operationRouters=[];
122
+ this.model.getOperationList();
123
+ },
124
+ loadCommission() {
125
+ this.model.getCommissionList();
126
+ },
127
+ lookOwner() {
128
+ this.codeOwner = true
129
+ },
130
+ handleClick(tab, event) {
131
+ let i=tab.index;
132
+ if(this.model.tags2 && this.model.tags2[i]){
133
+ this.model.getTags2List(i);
134
+ }
135
+ },
136
+ setDetailHeight() {
137
+ this.$nextTick(() => {
138
+ if (this.$refs.detail && this.$refs.main) {
139
+
140
+ }
141
+ });
142
+ },
143
+ handleSelect(key, keyPath) {
144
+ let i=key.index;
145
+ this.model.activeIndex1=i;
146
+ if(this.model.tags1 && this.model.tags1[i]){
147
+ this.model.searchlistKey=this.model.searchlistKey+1;
148
+ this.model.searchConditionApiTags1=this.model.tags1[i].searchConditionApiUrl||'';
149
+ this.model.searchDataApiTags1=this.model.tags1[i].searchDataApiUrl||'';
150
+ this.model.paramDataTags1=this.model.tags1[i].paramData||'';
151
+ }
152
+ },
153
+ fieldClickHandler(field) {
154
+ var self = this;
155
+ var callBack=null;
156
+ let submitData={};
157
+ var router = this.model.actionRouters.find((v) => {
158
+ return v.id === field.id;
159
+ });
160
+ if(router==undefined && this.model.actionRoutersMoreList){
161
+ router = this.model.actionRoutersMoreList.find((v) => {
162
+ return v.id === field.id;
163
+ });
164
+ }
165
+ if(router==undefined && this.model.otherTradeActionRouter){
166
+ if(field.id===this.model.otherTradeActionRouter.id){
167
+ router = this.model.otherTradeActionRouter
168
+ }
169
+ }
170
+ if(router==undefined && this.model.operationRouters){
171
+ router = this.model.operationRouters.find((v) => {
172
+ return v.id === field.id;
173
+ });
174
+ callBack="loadOperation";
175
+ }
176
+
177
+ if(router){
178
+ if(field.isSubmitDataFromSelf){
179
+ router.submitFormField.forEach((v) => {
180
+ submitData[v] = field.list[field.listIndex].code;
181
+ });
182
+ }
183
+ else{
184
+ router.submitFormField.forEach((v) => {
185
+ submitData[v] = self.model.fields1Dic[v].value;
186
+ });
187
+ }
188
+ }
189
+
190
+ if(callBack && callBack=='loadOperation'){
191
+ this.routerClickHandler(router,submitData,self.loadOperation);
192
+ }
193
+ else{
194
+ this.routerClickHandler(router,submitData);
195
+ }
196
+ },
197
+ routerClickHandler(field, submitData,callBack) {
198
+ var self = this;
199
+ // this.model.scripts.$fd = field.id;
200
+ // this.model.scripts.$result = [];
201
+
202
+ var clickAcion = function (field) {
203
+ //若不是客户端方法,则直接访问接口
204
+ if (!field.isClientFuntion) {
205
+ // if (typeof field.onClick !== 'undefined') {
206
+ // verified = self.$common.excute.call(self.model.scripts, field.onClick);
207
+ // }
208
+
209
+ if (field.isOpenForm) {
210
+ var dialogOption = {
211
+ title: field.pageTitle,
212
+ pane: self.$common.getParentPane(self),
213
+ content: [{
214
+ component: 'ct-form',
215
+ attrs: {
216
+ api: field.action,
217
+ apiParam: field.getActionPara(submitData).para,
218
+ showTitle: false,
219
+ width: field.dialogWidth + 'px',
220
+ height: field.dialogHeight + 'px'
221
+ },
222
+ on: {
223
+ submit(ev) {
224
+ self.model.doAction(ev,field);
225
+ if(callBack){
226
+ callBack();
227
+ }
228
+ self.$common.closeDialog(dialogOption.dialog);
229
+ }
230
+ }
231
+ }]
232
+ };
233
+ self.$common.openDialog(dialogOption);
234
+ }
235
+ else if (field.isOpenList) {
236
+ var dialogOption = {
237
+ title: field.pageTitle,
238
+ pane: self.$common.getParentPane(self),
239
+ content: [{
240
+ component: 'ct-searchlist',
241
+ attrs: {
242
+ searchConditionApi: field.actionForSearchLayout,
243
+ searchDataApi: field.actionForSearch,
244
+ apiParam: submitData,
245
+ width: field.dialogWidth + 'px',
246
+ height: field.dialogHeight + 'px'
247
+ },
248
+ on: {
249
+ submit(ev) {
250
+ self.model.updateFields(ev, () => {
251
+ self.$refs.Fields.forEach((fd) => {
252
+ fd.$forceUpdate();
253
+ });
254
+ });
255
+ self.$common.closeDialog(dialogOption.dialog);
256
+ }
257
+ }
258
+ }]
259
+ };
260
+ self.$common.openDialog(dialogOption);
261
+ }
262
+ else if (field.isFormPageInTab || field.isSearchPageInTab) {// 外部框架tab页打开
263
+ submitData = field.getActionPara(submitData).para;
264
+ self.$common.getDataDrivenOpts().handler.openTab(field.action, submitData, field.pageTitle);
265
+ }
266
+ else if (field.isBrowserNewTab) {// 浏览器打开
267
+ submitData = field.getActionPara(submitData).para;
268
+ let query = self.$common.objectToQueryStr(submitData);
269
+ window.open(field.action + query, "_blank");
270
+ }
271
+ else{
272
+ field.doAction(submitData, (data) => {
273
+ self.model.doAction(data,field);
274
+ if(callBack){
275
+ callBack();
276
+ }
277
+ })
278
+ }
279
+ }
280
+ //执行客户端脚本
281
+ else {
282
+ submitData = field.getActionPara(submitData).para;
283
+ let title=field.pageTitle==undefined ?field.label:field.pageTitle;
284
+ submitData.actionType=field.actionType;
285
+ var fun =self.$common.getDataDrivenOpts().handler[field.action];
286
+ fun(submitData,title,self.model);
287
+ }
288
+ }
289
+
290
+ if (field.isSubmit && !self.validExcute()) {
291
+ return;
292
+ }
293
+
294
+ if (field.alert) {
295
+ self.$common.confirm(field.alertMsg, field.alertCaption, {
296
+ confirmButtonText: field.alertOKButtonText,
297
+ cancelButtonText: field.alertCancelButtonText,
298
+ //type: 'warning'
299
+ center: field.alertCenter
300
+ }).then(() => {
301
+ clickAcion(field,submitData);
302
+ }).catch(() => {
303
+ });
304
+ }
305
+ else {
306
+ clickAcion(field,submitData);
307
+ }
308
+ },
309
+ }
310
+ }
311
+ </script>
312
+ <style lang="scss" scoped>
313
+
314
+ </style>
315
+
316
+
@@ -16,11 +16,11 @@
16
16
  @toolbarClick="toolbarClickHandler" @refreshParent="refreshParentHandler" :key="reloadKeyTable" @searchComplate="searchComplate()"
17
17
  @showTitle="showTitleHandler"></ct-searchtable>
18
18
  </div>
19
- <div v-if="flagSideBar"
20
- :style="{'height': pageHeight? pageHeight:'100%','width':sideBarWidth+'px',right:this.sideBarRight+'px'}"
19
+ <div v-if="flagSideBar && flagSideBarOfData"
20
+ :style="{'height': pageHeight? pageHeight:'100%','width':sideBarWidth+'px',right:sideBarRight+'px'}"
21
21
  class="sidebar">
22
- <div>1111111111111111111111111111111111</div>
23
- <ct-SearchSideMenu :sideBarMenuRight="sideBarMenuRight" :sideBarSide="sideBarSide"
22
+ <ct-Detail :api="sideBarApi" :apiParam="sideBarApiParam" :pageType="sideBarPageType"></ct-Detail>
23
+ <ct-SearchSideMenu :sideBarMenuRight="sideBarMenuRight" :sideBarStatus="sideBarStatus"
24
24
  @sideMenuClickHandler="sideMenuClickHandler"></ct-SearchSideMenu>
25
25
  </div>
26
26
  </div>
@@ -32,6 +32,7 @@
32
32
  import dynamicSearchTable from './dynamicSearchTable.vue';
33
33
  import dynamicSearchSideMenu from './dynamicSearchSideMenu.vue';
34
34
  import progress from '../../progress/src/progress.vue';
35
+ import dynamicDetail from '../../dynamicDetail/src/dynamicDetail.vue';
35
36
  export default {
36
37
  name: 'ct-searchlist',
37
38
  mixins: [dynamicElement],
@@ -40,7 +41,8 @@
40
41
  'ct-searchtable': dynamicSearchTable,
41
42
  'ct-progress': progress,
42
43
  'ct-searchcategory': dynamicSearchCategory,
43
- 'ct-SearchSideMenu': dynamicSearchSideMenu
44
+ 'ct-SearchSideMenu': dynamicSearchSideMenu,
45
+ 'ct-Detail': dynamicDetail,
44
46
  },
45
47
  props: {
46
48
  vmodel: Object,
@@ -84,12 +86,17 @@
84
86
  pageDisabled:false,
85
87
 
86
88
  flagSideBar:false,
89
+ flagSideBarOfData:true,
87
90
  flagDefaultDisplaySideBar:false,
88
91
  sideBarWidth:0,
89
92
  searchWidth:0,
90
93
  sideBarRight:0,
91
94
  sideBarMenuRight:0,
92
- sideBarSide:'',
95
+ sideBarStatus:'',
96
+ sideBarStatus:'',
97
+ sideBarApi:'',
98
+ sideBarApiParam:null,
99
+ sideBarPageType:'',
93
100
  }
94
101
  },
95
102
  methods: {
@@ -111,10 +118,9 @@
111
118
  this.reloadKeyTable='t'+this.reloadKey;
112
119
  },
113
120
  search(btn) {
114
- debugger
115
121
  if (this.$refs.table.model) {
116
122
  this.pageDisabled=true;
117
- this.$refs.table.getPage(1);
123
+ this.$refs.table.getPage(1);
118
124
  }
119
125
  else {
120
126
  this.$refs.table.searchComplate(this.$refs.screen.model);
@@ -124,6 +130,16 @@
124
130
  },
125
131
  searchComplate() {
126
132
  this.pageDisabled=false;
133
+ if(this.flagSideBar && this.$refs.table.model.listData.length>0){
134
+ if(!this.flagSideBarOfData){
135
+ this.flagSideBarOfData=true;
136
+ this.sideMenuClickHandler(this.sideBarStatus =='close'?'open':'close');
137
+ }
138
+ }
139
+ else{
140
+ this.flagSideBarOfData=false;
141
+ this.searchWidth=0;
142
+ }
127
143
  },
128
144
  toolbarClickHandler(field, submitData) {
129
145
  if (field.isExport) {
@@ -151,37 +167,44 @@
151
167
  this.showTitle=this.$refs.screen.model.flagShowTitle;
152
168
  }
153
169
  },
154
- tableLoaded(table) {
155
- if(table.model.listData.length>0){
156
- this.flagSideBar=table.model.flagSideBar;
157
- this.flagDefaultDisplaySideBar=table.model.flagDefaultDisplaySideBar;
158
- this.sideBarWidth=table.model.sideBarWidth;
170
+ tableLoaded() {
171
+ if(this.$refs.table.model.listData.length>0){
172
+ this.flagSideBar=this.$refs.table.model.flagSideBar;
173
+ this.flagDefaultDisplaySideBar=this.$refs.table.model.flagDefaultDisplaySideBar;
174
+
175
+ if(this.$refs.table.model.rowSelectRouter){
176
+ this.sideBarApi=this.$refs.table.model.rowSelectRouter.action;
177
+ this.sideBarPageType=this.$refs.table.model.rowSelectRouter.actionSource;
178
+ }
179
+ else{
180
+ this.flagSideBar=false;
181
+ }
182
+
159
183
  if(this.flagSideBar){
160
- if(this.flagDefaultDisplaySideBar){
161
- this.sideBarSide='right';
162
- this.sideBarRight=0;
163
- this.searchWidth=this.$refs.main.clientWidth-this.sideBarWidth;
164
- this.sideBarMenuRight=this.sideBarWidth-2;
184
+ if(this.flagDefaultDisplaySideBar && !this.sideBarStatus){
185
+ this.sideMenuClickHandler('close');
165
186
  }
166
187
  else{
167
- this.sideBarSide='left';
168
- this.sideBarRight=-this.sideBarWidth;
169
- this.searchWidth=0;
170
- this.sideBarMenuRight=0;
188
+ let status='open';
189
+ if(this.sideBarStatus=='open')status='close';
190
+ else if(this.sideBarStatus=='close')status='open';
191
+ this.sideMenuClickHandler(status);
171
192
  }
172
193
  }
173
194
  }
174
195
  },
175
196
  sideMenuClickHandler(v) {
176
- if(v=='right'){
177
- this.sideBarSide ='left';
197
+ if(v=='open'){
198
+ this.sideBarStatus ='close';
178
199
  this.sideBarRight=-this.sideBarWidth;
200
+ this.sideBarWidth=0;
179
201
  this.searchWidth=0;
180
202
  this.sideBarMenuRight=0;
181
203
  }
182
- else if(v=='left'){
183
- this.sideBarSide ='right';
204
+ else if(v=='close'){
205
+ this.sideBarStatus ='open';
184
206
  this.sideBarRight=0;
207
+ this.sideBarWidth=this.$refs.table.model.sideBarWidth;
185
208
  this.searchWidth=this.$refs.main.clientWidth-this.sideBarWidth;
186
209
  this.sideBarMenuRight=this.sideBarWidth-2;
187
210
  }
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div class="searchSideMenu toggler" :style="{right:sideBarMenuRight+'px'}" @click="clickHandler()" >
3
- <span class="el-icon-arrow-right" v-show="side=='right'"></span>
4
- <span class="el-icon-arrow-left" v-show="side=='left'"></span>
3
+ <span class="el-icon-arrow-right" v-show="side=='open'"></span>
4
+ <span class="el-icon-arrow-left" v-show="side=='close'"></span>
5
5
  </div>
6
6
  </template>
7
7
  <script>
@@ -9,23 +9,23 @@
9
9
  name: 'ct-SearchSideMenu',
10
10
  props: {
11
11
  sideBarMenuRight: Number,
12
- sideBarSide: String,
12
+ sideBarStatus: String,
13
13
  },
14
14
  data() {
15
15
  return {
16
- side:'right',
16
+ side:'open',
17
17
  }
18
18
  },
19
19
  created() {
20
- if(this.sideBarSide){
21
- this.side = this.sideBarSide;
20
+ if(this.sideBarStatus){
21
+ this.side = this.sideBarStatus;
22
22
  }
23
23
  },
24
24
  methods: {
25
25
  clickHandler() {
26
26
  let v=this.side;
27
- if(v=='right')this.side ='left';
28
- if(v=='left')this.side ='right';
27
+ if(v=='close')this.side ='open';
28
+ else if(v=='open')this.side ='close';
29
29
  this.$emit('sideMenuClickHandler',v);
30
30
  },
31
31
  }
@@ -93,7 +93,7 @@
93
93
  v-if="!router.rightField || row[router.rightField] == 1" :isOperationalColumn="true"
94
94
  :router="router" :colValue="router.label" :rowData="row" @click="rolRouterClickHandler">
95
95
  </ct-tablecurrency>
96
- <el-popover :ref="'popover'+rowindex" :append-to-table="option.appendId?option.appendId:''" class="Stats-popover" popper-class="el-popover1"
96
+ <el-popover v-if="getRowRouterDisplay(row).length>0" :ref="'popover'+rowindex" :append-to-table="option.appendId?option.appendId:''" class="Stats-popover" popper-class="el-popover1"
97
97
  :placement="option.placement?option.placement:'left'"
98
98
  :trigger="option.trigger?option.trigger:''">
99
99
  <div class="tab-list" style="border-bottom:none">
@@ -235,7 +235,7 @@
235
235
  this.model.scripts.formData = this.model.formData;
236
236
  this.model.scripts.formData.formTable = this.model;
237
237
 
238
- self.$emit('loaded',self);
238
+ self.$emit('loaded');
239
239
  self.$emit('showTitle');
240
240
  if (this.tempSearchModel !== null) {
241
241
  self.model.searchModel = this.tempSearchModel;
@@ -375,7 +375,7 @@
375
375
  self.tableLoading = false;
376
376
  self.rowColorChange();
377
377
  }
378
- self.$emit('searchComplate',self);
378
+ self.$emit('searchComplate');
379
379
  }
380
380
  self.tableLoading = true;
381
381
 
@@ -25,7 +25,14 @@ const Base = function (source) {
25
25
  source.fieldName2 = v;
26
26
  },
27
27
  get label() {
28
- return source.controlLabel + this.labelDelimiter || '';
28
+ let l='';
29
+ if(source.controlLabel){
30
+ l=source.controlLabel;
31
+ }
32
+ if(source.labelDelimiter){
33
+ l=l+source.labelDelimiter;
34
+ }
35
+ return l;
29
36
  },
30
37
  set label(v) {
31
38
  source.controlLabel = v;
@@ -23,6 +23,9 @@ const Router = function (source) {
23
23
  get actionForSearch() {
24
24
  return source.actionForSearch;
25
25
  },
26
+ get actionSource() {
27
+ return source.actionSource;
28
+ },
26
29
  get onClick() {
27
30
  return source.onChanged;
28
31
  },
@@ -378,6 +378,18 @@ const SearchTable = function (data, callBack, searchModel, flagSearch, defaultSe
378
378
  return rtn._rowRouter;
379
379
  }
380
380
  },
381
+ _rowSelectRouter: null,
382
+ get rowSelectRouter() {
383
+ if (rtn._rowSelectRouter !== null) {
384
+ return rtn._rowSelectRouter;
385
+ }
386
+ else {
387
+ if (source.content.rowSelectRouter && source.content.rowSelectRouter.key) {
388
+ rtn._rowSelectRouter=Router(source.content.rowSelectRouter);
389
+ }
390
+ return rtn._rowSelectRouter;
391
+ }
392
+ },
381
393
  sortData: [],
382
394
  toSort: function (col, action, callback) {
383
395
  this.columns.forEach((v1) => {