centaline-data-driven 1.4.93 → 1.4.95

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 (34) hide show
  1. package/package.json +1 -1
  2. package/src/SearchTree.vue +2 -2
  3. package/src/assets/B1.png +0 -0
  4. package/src/assets/T1.png +0 -0
  5. package/src/assets/more1.png +0 -0
  6. package/src/centaline/css/common.css +46 -30
  7. package/src/centaline/css/max.css +112 -42
  8. package/src/centaline/dynamicComboBoxWithTextBox/src/dynamicComboBoxWithTextBox.vue +1 -1
  9. package/src/centaline/dynamicDetail/src/dynamicContactList.vue +15 -16
  10. package/src/centaline/dynamicDetail/src/dynamicPropertyDetailOFI.vue +40 -37
  11. package/src/centaline/dynamicDetail/src/dynamicPropertyDetailRET.vue +42 -38
  12. package/src/centaline/dynamicDetail/src/dynamicPropertySimpleDetailRET.vue +652 -602
  13. package/src/centaline/dynamicFile/src/dynamicFile.vue +2 -2
  14. package/src/centaline/dynamicIti/src/dynamicIti.vue +1 -1
  15. package/src/centaline/dynamicLayout/src/dynamicLayoutLabel.vue +1 -1
  16. package/src/centaline/dynamicMo/src/dynamicMo.vue +3 -3
  17. package/src/centaline/dynamicSearchList/src/dynamicSearchCategory.vue +12 -6
  18. package/src/centaline/dynamicSearchList/src/dynamicSearchTable.vue +5 -5
  19. package/src/centaline/dynamicSearchList/src/dynamicTableStats.vue +6 -6
  20. package/src/centaline/dynamicSearchList/src/dynamicTableTip.vue +1 -1
  21. package/src/centaline/dynamicSearchListTab/src/dynamicSearchListOne.vue +372 -0
  22. package/src/centaline/dynamicSearchListTab/src/dynamicSearchListTab.vue +36 -249
  23. package/src/centaline/dynamicSo/src/dynamicSo.vue +4 -4
  24. package/src/centaline/dynamicT/src/dynamicT.vue +1 -1
  25. package/src/centaline/dynamicTags/src/dynamicTags.vue +3 -3
  26. package/src/centaline/dynamicTree/src/dynamicTree.vue +1 -1
  27. package/src/centaline/loader/src/ctl/lib/LibFunction.js +1 -1
  28. package/src/centaline/quickInput/src/quickInput.vue +1 -1
  29. package/src/centaline/quickInputSos/src/quickInput.vue +1 -1
  30. package/src/centaline/selectOption/src/selectOptionVertical.vue +1 -1
  31. package/src/centaline/templateControls/src/dynamicTableCurrency.vue +1 -1
  32. package/src/main.js +5 -5
  33. package/wwwroot/static/centaline/centaline-data-driven.js +3 -3
  34. package/wwwroot/static/centaline/centaline-data-driven.js.map +1 -1
@@ -731,8 +731,8 @@
731
731
  }
732
732
 
733
733
  .browseDefault .el-radio__input.is-checked .el-radio__inner {
734
- border-color: #409eff ;
735
- background: #409eff ;
734
+ border-color: var(--centalineBlue) ;
735
+ background: var(--centalineBlue) ;
736
736
  }
737
737
 
738
738
  .ct-file .cover-list-item-play{
@@ -164,7 +164,7 @@ span.ct-unitname.el-input__suffix.el-input__suffix-inner {
164
164
  top:0;
165
165
  }
166
166
  .hoverColor:hover {
167
- border-color: #409EFF;
167
+ border-color: var(--centalineBlue);
168
168
  }
169
169
  .is-show-Span {
170
170
  display: none;
@@ -50,7 +50,7 @@
50
50
  padding-left: 0px;
51
51
  padding-right: 4px;
52
52
  cursor: pointer;
53
- color: #388cd3;
53
+ color: #2E58E6;
54
54
  }
55
55
 
56
56
  .ct-tablecurrencyItem:hover {
@@ -379,11 +379,11 @@
379
379
  }
380
380
 
381
381
  .ct-mo.isfocus .ct-input_inner:hover {
382
- border-color: #409EFF; /*border-color:#c0c4cc*/
382
+ border-color: var(--centalineBlue); /*border-color:#c0c4cc*/
383
383
  }
384
384
 
385
385
  .ct-mo.isfocus .ct-input_inner {
386
- border-color: #409EFF;
386
+ border-color: var(--centalineBlue);
387
387
  }
388
388
 
389
389
  .ct-mo .el-input__suffix {
@@ -392,7 +392,7 @@
392
392
  }
393
393
 
394
394
  .ct-mo .el-select__caret {
395
- color: #c0c4cc;
395
+ color: #BBBBBB;
396
396
  font-size: inherit;
397
397
  -webkit-transition: -webkit-transform .3s;
398
398
  transition: -webkit-transform .3s;
@@ -92,7 +92,7 @@
92
92
  .ct-searchcategory .el-input-group__prepend{
93
93
  text-align: left;
94
94
  padding-left: 0px!important;
95
- color: #ee6b6b !important;
95
+ color: var(--chinaRed) !important;
96
96
  font-weight: Bold;
97
97
  text-shadow: 0 2px 2px rgb(121 0 4 / 10%);
98
98
  font-size: 16px;
@@ -118,12 +118,18 @@
118
118
  }
119
119
  .ct-searchcategory .el-radio-button__orig-radio:checked+.el-radio-button__inner {
120
120
  color: #FFF;
121
- background-color: #EE6B6B;
122
- border-color: #EE6B6B;
123
- -webkit-box-shadow: -1px 0 0 0 #EE6B6B;
124
- box-shadow: -1px 0 0 0 #EE6B6B;
121
+ background-color: var(--chinaRed);
122
+ border-color: var(--chinaRed);
123
+ -webkit-box-shadow: -1px 0 0 0 var(--chinaRed);
124
+ box-shadow: -1px 0 0 0 var(--chinaRed);
125
+ font-weight: 700;
126
+ font-size: 14px;
127
+ }
128
+ .ct-searchcategory .el-radio-button__inner{
129
+ font-size: 14px;
130
+ color: var(--centalineBlack);
125
131
  }
126
132
  .ct-searchcategory .el-radio-button__inner:hover {
127
- color: #EE6B6B;
133
+ color: var(--chinaRed);
128
134
  }
129
135
  </style>
@@ -144,9 +144,8 @@
144
144
 
145
145
  <!--可点击的列-->
146
146
  <template v-else-if="column.router">
147
- <div v-if="column.router.rightField && row[column.router.rightField] === 0"></div>
148
- <ct-tablecurrency v-else
149
- :ref="'router' + column.router.id + rowindex"
147
+ <div v-if="column.router.rightField && row[column.router.rightField] === 0" v-html="row[column.id]"></div>
148
+ <ct-tablecurrency v-else :ref="'router' + column.router.id + rowindex"
150
149
  :rowindex="rowindex" :align="column.attrs.align"
151
150
  :class="column.autoRowHeight ? 'lineFeedCell' : 'cell'" :router="column.router"
152
151
  :colValue="row[column.id]" :rowData="row" @click="rolRouterClickHandler">
@@ -1832,7 +1831,7 @@ export default {
1832
1831
  }
1833
1832
 
1834
1833
  .ct-searchtable .ct-table th {
1835
- background-color: #f4f7fa !important;
1834
+ background-color: #F1F2F4 !important;
1836
1835
  }
1837
1836
 
1838
1837
  .ct-searchtable .ct-tr>.ct-td {
@@ -1843,6 +1842,7 @@ export default {
1843
1842
  padding: 2px 20px;
1844
1843
  cursor: default;
1845
1844
  background-color: #ffffff;
1845
+ color: var(--centalineBlack);
1846
1846
  }
1847
1847
 
1848
1848
  .ct-searchtable .ct-tr>.ct-td1 {
@@ -1880,7 +1880,7 @@ export default {
1880
1880
  }
1881
1881
 
1882
1882
  .ct-table {
1883
- color: #606266;
1883
+ color: #1F2233;
1884
1884
  font-size: 18px;
1885
1885
  line-height: 40px;
1886
1886
  min-height: 40px;
@@ -280,12 +280,12 @@ export default {
280
280
 
281
281
  .tab-list .btnTab:hover,
282
282
  .tab-list .tablf:hover {
283
- color: #ee5d56;
283
+ color: var(--chinaRed);
284
284
  }
285
285
 
286
286
  .tab-list .popoverbtnTab:hover,
287
287
  .tab-list .popovertablf:hover {
288
- color: #ee5d56;
288
+ color: var(--chinaRed);
289
289
  }
290
290
 
291
291
  .tab-list .tabl-el {
@@ -325,15 +325,15 @@ export default {
325
325
  }
326
326
 
327
327
  .tab-list .active {
328
- color: #ee5d56 !important;
328
+ color: var(--chinaRed) !important;
329
329
  /* border-bottom-right-radius: 12px !important; */
330
330
  /* border-top-right-radius: 11px; */
331
331
  width: 20px;
332
- border-bottom: #ee5d56 solid 3px;
332
+ border-bottom: var(--chinaRed) solid 3px;
333
333
  }
334
334
 
335
335
  .tab-list .activecolor {
336
- color: #ee5d56 !important;
336
+ color: var(--chinaRed) !important;
337
337
  }
338
338
 
339
339
  .tab-list .btnTab span,
@@ -342,7 +342,7 @@ export default {
342
342
  }
343
343
 
344
344
  .tab-list .icon-more {
345
- color: #ee5d56;
345
+ color: var(--chinaRed);
346
346
  font-size: 20px;
347
347
  font-weight: 900;
348
348
  display: inline-block;
@@ -25,7 +25,7 @@ export default {
25
25
  </script>
26
26
  <style>
27
27
  .ct-table-tip {
28
- color: #606266;
28
+ color: var(--centalineBlack);
29
29
  font-size: 18px;
30
30
  line-height: 40px;
31
31
  min-height: 40px;
@@ -0,0 +1,372 @@
1
+ <template>
2
+ <div ref="main" style="width: 100%;height: 100%;display: flex;" :class="{'domDisabled':pageDisabled}">
3
+ <div class="ct-search-list" :style="{'height': pageHeight? pageHeight:'100%','width':searchWidth?searchWidth+'px':'100%'}" >
4
+ <ct-searchscreen ref="screen" :api="searchConditionApi" :key="reloadKeyScreen"
5
+ @loaded="screenLoaded" :screenPara="screenPara"
6
+ :categoryLoaded="loaded.categoryLoaded" @search="search()" @saveShortcut="saveShortcut"
7
+ @showTitle="showTitleScreenHandler"></ct-searchscreen>
8
+
9
+ <ct-searchtable ref="table" :api="searchDataApi" :searchStatsApi="searchStatsApi" :from="from" :isIframe="isIframe" :documentHeight="documentHeight"
10
+ @loaded="tableLoaded" :documentWidth="documentWidth" :flagPopupSearchlist="flagPopupSearchlist" :screenTop="screenTop" :flagAppMode="flagAppMode"
11
+ @toolbarClick="toolbarClickHandler" @refreshParent="refreshParentHandler" :key="reloadKeyTable" @searchComplate="searchComplate"
12
+ @rowClickHandle="rowClickHandle" @scrollHandle="scrollHandle" @refreshRowHandle="refreshRowHandle" @doClosePopoverHandle="doClosePopoverHandle"
13
+ @showTitle="showTitleHandler" @popupClickHandler="popupClickHandler"></ct-searchtable>
14
+ </div>
15
+ <div ref="sidebar" v-if="flagSideBar && flagSideBarOfData"
16
+ :style="{'height': pageHeight? pageHeight:'100%','width':sideBarWidth+'px',right:sideBarRight+'px'}"
17
+ class="sidebar">
18
+ <ct-Detail ref="detail" :api="sideBarApi" :apiParam="sideBarApiParam" :pageType="sideBarPageType"
19
+ :selectIndex="selectIndex" :rowCount="rowCount" :key="detailKey" :drowerClose="drowerClose"
20
+ @clickNextHandler="clickNextHandler" @clickPrevHandler="clickPrevHandler" @simpleRouterclickHandler="simpleRouterclickHandler"
21
+ @closeSideHandler="closeSideHandler"></ct-Detail>
22
+ <ct-SearchSideMenu ref="sideMenu" :sideBarMenuRight="sideBarMenuRight" :sideBarStatus="sideBarStatus"
23
+ @sideMenuClickHandler="sideMenuClickHandler"></ct-SearchSideMenu>
24
+ </div>
25
+ </div>
26
+ </template>
27
+ <script>
28
+ import dynamicElement from '../../mixins/dynamicElement';
29
+ import dynamicSearchScreen from '../../dynamicSearchList/src/dynamicSearchScreen.vue';
30
+ import dynamicSearchTable from '../../dynamicSearchList/src/dynamicSearchTable.vue';
31
+ import dynamicSearchSideMenu from '../../dynamicSearchList/src/dynamicSearchSideMenu.vue';
32
+ import progress from '../../progress/src/progress.vue';
33
+ export default {
34
+ name: 'ct-searchlist',
35
+ mixins: [dynamicElement],
36
+ components: {
37
+ 'ct-searchscreen': dynamicSearchScreen,
38
+ 'ct-searchtable': dynamicSearchTable,
39
+ 'ct-progress': progress,
40
+ 'ct-SearchSideMenu': dynamicSearchSideMenu,
41
+ 'ct-Detail': ()=>import('../../dynamicDetail/src/dynamicDetail.vue'),
42
+ },
43
+ props: {
44
+ vmodel: Object,
45
+ searchCategoryApi: String,
46
+ searchConditionApi: String,
47
+ searchDataApi: String,
48
+ searchStatsApi: String,
49
+ pageHeight: String,
50
+ flagAppMode:Boolean,
51
+ apiParam: {
52
+ type: Object,
53
+ default: () => { }
54
+ },
55
+ from: {
56
+ String,
57
+ default:'searchlist'
58
+ },
59
+ documentHeight:{
60
+ String,
61
+ default: 'auto',
62
+ },
63
+ documentWidth:{
64
+ String,
65
+ default: 'auto',
66
+ },
67
+ flagPopupSearchlist:{
68
+ Boolean,
69
+ default:false,
70
+ },
71
+ },
72
+ created() {
73
+ this.model = this.vmodel;
74
+ this.screenPara=this.apiParam;
75
+ if(this.searchCategoryApi){
76
+ this.loaded.categoryLoaded=false;
77
+ }
78
+ if(this.apiParam && this.apiParam.isIframe && this.apiParam.isIframe=='true'){
79
+ this.isIframe=true;
80
+ }
81
+ },
82
+ computed: {
83
+ },
84
+ activated() {
85
+ this.$nextTick(() => {
86
+ if(this.$refs.detail){
87
+ if(this.$refs.detail.$children && this.$refs.detail.$children.length>0){
88
+ this.$refs.detail.$children[0].refreshPage();
89
+ }
90
+ }
91
+ })
92
+ },
93
+ data() {
94
+ return {
95
+ loaded: {
96
+ screenLoaded: false,
97
+ tableLoaded: false,
98
+ categoryLoaded: true,
99
+ categoryTabLoaded: false,
100
+ },
101
+ title:'',
102
+ showTitle:false,
103
+ screenPara:null,
104
+ screenTop:0,
105
+ reloadKey:0,
106
+ reloadKeyScreen:'s0',
107
+ reloadKeyTable:'t0',
108
+ isReload:false,
109
+ pageDisabled:false,
110
+ drowerClose:'',
111
+
112
+ flagSideBar:false,
113
+ flagSideBarOfData:true,
114
+ flagDefaultDisplaySideBar:false,
115
+ sideBarWidth:0,
116
+ searchWidth:0,
117
+ sideBarRight:0,
118
+ sideBarMenuRight:0,
119
+ sideBarStatus:'',
120
+ sideBarApi:'',
121
+ sideBarApiParam:null,
122
+ sideBarPageType:'',
123
+ selectIndex:-1,
124
+ rowCount:0,
125
+ detailKey:0,
126
+ isIframe: false,
127
+ }
128
+ },
129
+ methods: {
130
+ screenLoaded(defaultSearch) {
131
+ this.loaded.screenLoaded = true;
132
+ if(this.from && this.from=='detail'){
133
+ this.screenTop=this.$refs.screen.$el.offsetTop;
134
+ }
135
+ this.$refs.table.searchComplate(this.$refs.screen.model, defaultSearch);
136
+
137
+ this.$emit('loaded', this.$refs.screen.model);
138
+ },
139
+ categoryLoaded(param) {
140
+ this.loaded.categoryLoaded = true;
141
+ this.loaded.categoryTabLoaded = true;
142
+ if(param)this.screenPara=param;
143
+ this.$refs.screen.searchComplate();
144
+ },
145
+ categoryLoadedError() {
146
+ this.$refs.screen.isLoading=false;
147
+ this.$refs.table.isLoading=false;
148
+ },
149
+ categorychange(param) {
150
+ if(param)this.screenPara=param;
151
+ this.reloadKey = this.reloadKey+1;
152
+ this.reloadKeyScreen='s'+this.reloadKey;
153
+ this.reloadKeyTable='t'+this.reloadKey;
154
+ },
155
+ search() {
156
+ this.selectIndex=-1;
157
+ if (this.$refs.table.model) {
158
+ this.pageDisabled=true;
159
+ this.$refs.table.getPage(1);
160
+ }
161
+ else {
162
+ this.$refs.table.searchComplate(this.$refs.screen.model,this.$refs.screen.model.defaultSearch);
163
+ }
164
+ },
165
+ searchComplate(index) {
166
+ this.pageDisabled=false;
167
+ if(this.flagSideBar && this.$refs.table.model.listData.length>0){
168
+ if(!this.flagSideBarOfData || index===1){
169
+ this.flagSideBarOfData=true;
170
+ this.sideMenuClickHandler(this.sideBarStatus =='close'?'open':'close');
171
+ }
172
+ }
173
+ else{
174
+ this.flagSideBarOfData=false;
175
+ this.searchWidth=0;
176
+ }
177
+ },
178
+ toolbarClickHandler(field, submitData) {
179
+ if (field.isExport) {
180
+ this.$refs.screen.model.export(field, submitData);
181
+ }
182
+ else if (field.isRefreshParent) {
183
+ this.isRefreshParent();
184
+ }
185
+ },
186
+ refreshParentHandler() {
187
+ this.$emit('refreshParent');
188
+ },
189
+ resize() {
190
+ if(this.$refs.table){
191
+ this.$refs.table.setTableHeight();
192
+ }
193
+ },
194
+ resizeSearchList() {
195
+ if(this.flagSideBar && this.flagSideBarOfData){
196
+ if(this.sideBarStatus=='open' && this.$refs.main){
197
+ this.searchWidth=this.$refs.main.clientWidth-this.sideBarWidth;
198
+ }
199
+ }
200
+ },
201
+ showTitleHandler() {
202
+ if (this.$refs.table.model && this.$refs.table.model.flagShowTitle) {
203
+ this.title=this.$refs.table.model.title;
204
+ this.showTitle=this.$refs.table.model.flagShowTitle;
205
+ }
206
+ },
207
+ showTitleScreenHandler() {
208
+ if (this.$refs.screen.model && this.$refs.screen.model.flagShowTitle) {
209
+ this.title=this.$refs.screen.model.title;
210
+ this.showTitle=this.$refs.screen.model.flagShowTitle;
211
+ }
212
+ },
213
+ tableLoaded() {
214
+ var self = this;
215
+ if (typeof this.$refs.table.model.cellLayout !== "undefined") {
216
+ this.$refs.screen.LoadLayout();
217
+ }
218
+ if(this.$refs.table.model.listData.length>0){
219
+ this.flagSideBarOfData=true;
220
+ this.flagSideBar=this.$refs.table.model.flagSideBar;
221
+ this.flagDefaultDisplaySideBar=this.$refs.table.model.flagDefaultDisplaySideBar;
222
+
223
+ if(this.$refs.table.model.rowSelectRouter){
224
+ this.sideBarApi=this.$refs.table.model.rowSelectRouter.action;
225
+ this.sideBarPageType=this.$refs.table.model.rowSelectRouter.actionSource;
226
+ }
227
+ else{
228
+ this.flagSideBar=false;
229
+ }
230
+
231
+ if(document.body.clientWidth && document.body.clientWidth<1024){
232
+ this.flagSideBar=false;
233
+ }
234
+
235
+ if(this.flagSideBar){
236
+ this.selectIndex=-1;
237
+ if(this.flagDefaultDisplaySideBar && !this.sideBarStatus){
238
+ this.sideMenuClickHandler('close');
239
+ }
240
+ else{
241
+ let status='open';
242
+ if(this.sideBarStatus=='open')status='close';
243
+ else if(this.sideBarStatus=='close')status='open';
244
+ this.sideMenuClickHandler(status);
245
+ }
246
+ }
247
+
248
+ window.addEventListener("resize", (ev) => {
249
+ self.resizeSearchList();
250
+ });
251
+ }
252
+ else{
253
+ this.flagSideBarOfData=false;
254
+ this.searchWidth=0;
255
+ }
256
+ this.$emit('tableLoaded', this.$refs.table.model);
257
+ },
258
+ rowClickHandle() {
259
+ var self = this;
260
+ if(self.selectIndex!==self.$refs.table.model.selectIndex && self.$refs.table.model.rowSelectRouter){
261
+ self.selectIndex=self.$refs.table.model.selectIndex;
262
+ self.rowCount=self.$refs.table.model.listData.length;
263
+ self.sideBarApiParam = {};
264
+ if(self.$refs.table.model.rowSelectRouter.submitListField){
265
+ self.$refs.table.model.rowSelectRouter.submitListField.forEach((k) => {
266
+ self.sideBarApiParam[k] = self.$refs.table.model.listData[self.selectIndex][k];
267
+ });
268
+ }
269
+ self.sideBarApiParam.actionType = self.$refs.table.model.rowSelectRouter.actionType;
270
+ self.detailKey = self.detailKey+1;
271
+ }
272
+ },
273
+ refreshRowHandle(){
274
+ this.selectIndex=-1;
275
+ this.rowClickHandle();
276
+ },
277
+ sideMenuClickHandler(v) {
278
+ this.drowerClose = v;
279
+ let popoverCallTels=document.getElementsByClassName('el-popoverCallTel');
280
+ if(v=='open'){
281
+ this.sideBarStatus ='close';
282
+ this.sideBarRight=-this.sideBarWidth;
283
+ this.sideBarWidth=0;
284
+ this.searchWidth=0;
285
+ this.sideBarMenuRight=0;
286
+ for(var i=0;i<popoverCallTels.length;i++){
287
+ popoverCallTels[i].style.display='none';
288
+ }
289
+ }
290
+ else if(v=='close'){
291
+ this.sideBarStatus ='open';
292
+ this.sideBarRight=0;
293
+ this.sideBarWidth=this.$refs.table.model.sideBarWidth;
294
+ this.searchWidth=this.$refs.main.clientWidth-this.sideBarWidth;
295
+ this.sideBarMenuRight=this.sideBarWidth-2;
296
+ this.rowClickHandle();
297
+ for(var i=0;i<popoverCallTels.length;i++){
298
+ popoverCallTels[i].style.display='block';
299
+ }
300
+ if(this.$refs.detail){
301
+ if(this.$refs.detail.$children && this.$refs.detail.$children.length>0){
302
+ this.$refs.detail.$children[0].refreshPage();
303
+ }
304
+ }
305
+ }
306
+ this.$refs.table.setTableHeight();
307
+ },
308
+ closeSideHandler() {
309
+ this.$refs.sideMenu.clickHandler();
310
+ },
311
+ clickNextHandler() {
312
+ this.$refs.table.rowKeyDownHandle(null,1);
313
+ },
314
+ clickPrevHandler() {
315
+ this.$refs.table.rowKeyDownHandle(null,-1);
316
+ },
317
+ simpleRouterclickHandler(field,data) {
318
+ this.$refs.table.refreshFromSimple(field,data);
319
+ this.selectIndex=-1;
320
+ this.rowClickHandle();
321
+ },
322
+ saveShortcut(){
323
+ this.$refs.table.getPage(1);
324
+ },
325
+ scrollHandle(scrollTop,scrollLeft){
326
+ this.$emit('scrollHandle',scrollTop,scrollLeft)
327
+ },
328
+ doClosePopoverHandle(){
329
+ this.$refs.screen.$refs.doClosePopover.click();
330
+ },
331
+ popupClickHandler(tempListData){
332
+ this.$emit('submit', tempListData);
333
+ this.$common.closeDialog(this);
334
+ },
335
+ },
336
+ beforeDestroy() {
337
+ async function destroyDeep(vnode) {
338
+ let vnodes
339
+ if (vnode.children || (typeof vnode.componentInstance !== 'undefined' && vnode.componentInstance._vnode.children)) {
340
+ vnodes = vnode.children || vnode.componentInstance._vnode.children
341
+ for (const vn of vnodes) {
342
+ destroyDeep(vn)
343
+ }
344
+ }
345
+ if (typeof vnode.componentInstance !== 'undefined') {
346
+ vnode.componentInstance.$destroy()
347
+ }
348
+ setTimeout(() => {
349
+ vnode.componentInstance = undefined
350
+ vnode.elm.innerHTML = ''
351
+ }, 0)
352
+ }
353
+ destroyDeep(this._vnode)
354
+ },
355
+ }
356
+ </script>
357
+ <style lang="scss" scoped>
358
+ .sidebar {
359
+ z-index: 1000;
360
+ top: -1px;
361
+ bottom: -1px;
362
+ padding: 0px;
363
+ width: auto;
364
+ background-color: #fff;
365
+ -webkit-background-clip: padding-box;
366
+ background-clip: padding-box;
367
+ border: 1px solid #ccc;
368
+ border: 1px solid rgba(0, 0, 0, .15);
369
+ -webkit-box-shadow: 0 6px 12px rgb(0 0 0 / 18%);
370
+ box-shadow: 0 6px 12px rgb(0 0 0 / 18%);
371
+ }
372
+ </style>