meixioacomponent 1.1.49 → 2.0.1

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 (107) hide show
  1. package/lib/components/index.d.ts +1 -1
  2. package/lib/components/index.d.ts.map +1 -1
  3. package/lib/components/index.js +3 -3
  4. package/lib/config/use/UseImg.d.ts.map +1 -1
  5. package/lib/config/use/UseImg.js +1 -0
  6. package/lib/meixioacomponent.common.js +17531 -38668
  7. package/lib/meixioacomponent.umd.js +17584 -38721
  8. package/lib/meixioacomponent.umd.min.js +6 -159
  9. package/lib/style/font-family.less +2 -1
  10. package/lib/style/index.less +9 -2
  11. package/lib/style/meixioacomponenticonfont/TCloudNumberVF.ttf +0 -0
  12. package/lib/style/tableStyle.less +15 -13
  13. package/lib/style/tdesignStyle.less +9 -0
  14. package/lib/style/variables.less +1 -1
  15. package/package.json +3 -3
  16. package/packages/components/base/baseAppendix/baseAppendix.vue +12 -11
  17. package/packages/components/base/baseArea/baseArea.vue +49 -54
  18. package/packages/components/base/baseAvatar/baseAvatar.vue +16 -14
  19. package/packages/components/base/baseButton/baseButton.vue +80 -0
  20. package/packages/components/base/baseButton/index.js +6 -0
  21. package/packages/components/base/baseButtonHandle/baseButtonHandle.vue +36 -4
  22. package/packages/components/base/baseDialog/index.vue +131 -102
  23. package/packages/components/base/baseDialogTable/dialogTable.vue +1 -0
  24. package/packages/components/base/baseDrawer/index.vue +119 -89
  25. package/packages/components/base/baseEdito/baseEdito.vue +56 -50
  26. package/packages/components/base/baseFixedHeader/baseFixedHeader.vue +44 -37
  27. package/packages/components/base/baseImageViewer/image-viewer.vue +29 -311
  28. package/packages/components/base/baseImg/baseImg.vue +8 -7
  29. package/packages/components/base/baseInforWrap/baseInforWrap.vue +14 -7
  30. package/packages/components/base/baseLineInfoItem/baseLineInfoItem.vue +4 -4
  31. package/packages/components/base/baseList/index.vue +10 -23
  32. package/packages/components/base/baseMoverVerifiBar/baseMoverVerifiBar.vue +7 -13
  33. package/packages/components/base/baseNumberInput/index.vue +42 -158
  34. package/packages/components/base/basePagination/index.vue +24 -31
  35. package/packages/components/base/basePlainTable/basePlainTable.vue +89 -183
  36. package/packages/components/base/basePopoverButton/index.vue +45 -36
  37. package/packages/components/base/baseSection/baseSection.vue +17 -8
  38. package/packages/components/base/baseSingleImgUpload/index.vue +2 -2
  39. package/packages/components/base/baseSkeleton/baseSkeleton.vue +0 -1
  40. package/packages/components/base/baseStoreSelect/index.vue +48 -64
  41. package/packages/components/base/baseTag/index.vue +12 -96
  42. package/packages/components/base/baseText/index.vue +66 -79
  43. package/packages/components/base/baseTimeLine/baseTimeLineLeft.vue +1 -1
  44. package/packages/components/base/baseTimeLine/baseTimeLineRight.vue +1 -1
  45. package/packages/components/base/baseTimeTypeSelect/base_time_type_select.vue +73 -78
  46. package/packages/components/base/baseToggle/toggle.vue +28 -48
  47. package/packages/components/base/baseTreeSelect/index.vue +20 -147
  48. package/packages/components/base/baseUpload/baseUploadItem.vue +74 -77
  49. package/packages/components/base/baseUpload/mixins.js +0 -1
  50. package/packages/components/base/baseUpload/uploadMediaView.vue +14 -13
  51. package/packages/components/base/baseUploadImgAndName/index.vue +28 -11
  52. package/packages/components/base/baseUploadTemplate/index.vue +27 -11
  53. package/packages/components/base/baseVideo/index.vue +9 -7
  54. package/packages/components/base/upload/upload.vue +17 -14
  55. package/packages/components/base/upload/uploadItem.vue +40 -46
  56. package/packages/components/dialogCache/index.vue +30 -24
  57. package/packages/components/index.js +3 -3
  58. package/packages/components/index.ts +4 -3
  59. package/packages/components/mixins/tableSectionMixins.js +0 -12
  60. package/packages/components/proForm/dialogForm/baseDialogForm.vue +17 -14
  61. package/packages/components/proForm/proForm/proFormItem/pro_form_item.vue +95 -79
  62. package/packages/components/proForm/proForm/pro_form.vue +47 -52
  63. package/packages/components/proPageTable/oaProTableSearch/oa_pro-table-search.vue +2 -2
  64. package/packages/components/proPageTable/oaProTableSearch/oa_pro_screen.vue +19 -10
  65. package/packages/components/proPageTable/oaProTableSearch/oa_pro_screen_item.vue +28 -27
  66. package/packages/components/proPageTable/oa_pro_colum_config.vue +8 -10
  67. package/packages/components/proPageTable/oa_pro_footer.vue +15 -15
  68. package/packages/components/proPageTable/oa_pro_table-header.vue +19 -31
  69. package/packages/components/proPageTable/oa_pro_table.vue +208 -284
  70. package/packages/components/proPageTable/oa_pro_table_check_handle_bar.vue +28 -16
  71. package/packages/components/searchHeader/searchHeader.vue +16 -17
  72. package/packages/components/style/font-family.less +2 -1
  73. package/packages/components/style/index.less +9 -2
  74. package/packages/components/style/meixioacomponenticonfont/TCloudNumberVF.ttf +0 -0
  75. package/packages/components/style/tableStyle.less +15 -13
  76. package/packages/components/style/tdesignStyle.less +9 -0
  77. package/packages/components/style/variables.less +1 -1
  78. package/packages/config/use/UseImg.js +1 -0
  79. package/packages/config/use/UseImg.ts +1 -0
  80. package/packages/utils/upload.js +61 -72
  81. package/packages/utils/utils.js +316 -276
  82. package/lib/fonts/element-icons.f1a45d74.ttf +0 -0
  83. package/lib/fonts/element-icons.ff18efd1.woff +0 -0
  84. package/lib/style/element/common_class.less +0 -3
  85. package/lib/style/element/fonts/element-icons.ttf +0 -0
  86. package/lib/style/element/fonts/element-icons.woff +0 -0
  87. package/lib/style/element/index.css +0 -30219
  88. package/packages/components/base/elDatePicker/basic/date-table.vue +0 -441
  89. package/packages/components/base/elDatePicker/basic/month-table.vue +0 -269
  90. package/packages/components/base/elDatePicker/basic/time-spinner.vue +0 -304
  91. package/packages/components/base/elDatePicker/basic/year-table.vue +0 -111
  92. package/packages/components/base/elDatePicker/index.js +0 -6
  93. package/packages/components/base/elDatePicker/index.vue +0 -28
  94. package/packages/components/base/elDatePicker/panel/date-range.vue +0 -680
  95. package/packages/components/base/elDatePicker/panel/date.vue +0 -609
  96. package/packages/components/base/elDatePicker/panel/month-range.vue +0 -289
  97. package/packages/components/base/elDatePicker/panel/time-range.vue +0 -248
  98. package/packages/components/base/elDatePicker/panel/time-select.vue +0 -178
  99. package/packages/components/base/elDatePicker/panel/time.vue +0 -186
  100. package/packages/components/base/elDatePicker/picker/date-picker.js +0 -55
  101. package/packages/components/base/elDatePicker/picker/time-picker.js +0 -39
  102. package/packages/components/base/elDatePicker/picker/time-select.js +0 -21
  103. package/packages/components/base/elDatePicker/picker.vue +0 -956
  104. package/packages/components/style/element/common_class.less +0 -3
  105. package/packages/components/style/element/fonts/element-icons.ttf +0 -0
  106. package/packages/components/style/element/fonts/element-icons.woff +0 -0
  107. package/packages/components/style/element/index.css +0 -30219
@@ -1,90 +1,88 @@
1
1
  <template>
2
2
  <div v-if="isShow" class="dialog-wrap">
3
- <el-dialog
4
- ref="dialog"
5
- :append-to-body="appendToBody"
6
- :close-on-click-modal="false"
7
- :close-on-press-escape="false"
8
- :destroy-on-close="destroyOnClose"
9
- :modal="modal"
10
- :modal-append-to-body="appendToBody"
11
- :show-close="false"
12
- :top="`0px`"
13
- :visible.sync="centerDialogVisible"
14
- :width="width"
15
- >
16
- <base-wait
17
- :duration="0"
18
- :show-overlay="true"
19
- :wait="status === 'wait'"
20
- :wait-text="waitText"
21
- >
22
- <div slot="waitContent" class="dialog__content">
23
- <div ref="dialogTitleWrap" class="dialog-title-wrap">
24
- <span>{{ title }}</span>
25
- <div class="title-handle-wrap">
26
- <base-icon
27
- v-if="isCache"
28
- :color="`d`"
29
- :event="true"
30
- :iconClass="`element`"
31
- :name="`el-icon-minus`"
32
- :size="`d`"
33
- @iconClick="handleCache"
34
- ></base-icon>
35
-
36
- <base-icon
37
- v-if="onDrag"
38
- ref="dragIcon"
39
- :color="`d`"
40
- :event="true"
41
- :iconClass="`element`"
42
- :name="`el-icon-rank`"
43
- :size="`d`"
44
- ></base-icon>
45
-
46
- <base-icon
47
- v-if="hasCloseIcon"
48
- :color="`d`"
49
- :event="true"
50
- :name="`meixicomponenticon-close`"
51
- :size="`d`"
52
- @iconClick="onHandleClose"
53
- ></base-icon>
54
-
55
- <slot name="dialog-title-right-plugin"></slot>
3
+
4
+ <t-dialog
5
+ ref="dialog"
6
+ :footer="false"
7
+ :header="false"
8
+ :closeBtn="false"
9
+ :attach="attach" :showOverlay="modal" :closeOnOverlayClick="false" :closeOnEscKeydown="false"
10
+ :top="top"
11
+ :destroy-on-close="destroyOnClose"
12
+ :width="width" :visible.sync="centerDialogVisible">
13
+
14
+ <template #body>
15
+
16
+ <base-wait
17
+ :duration="0"
18
+ :show-overlay="true"
19
+ :wait="status === 'wait'"
20
+ :wait-text="waitText"
21
+ >
22
+ <div slot="waitContent" class="dialog__content">
23
+ <div ref="dialogTitleWrap" class="dialog-title-wrap">
24
+ <span>{{ title }}</span>
25
+ <div class="title-handle-wrap">
26
+
27
+ <t-button shape="square" variant="outline" v-if="isCache" @click="handleCache">
28
+ <template #icon>
29
+ <remove-icon
30
+ ></remove-icon>
31
+ </template>
32
+ </t-button>
33
+
34
+ <drag-move-icon
35
+ v-if="onDrag"
36
+ ref="dragIcon"
37
+ ></drag-move-icon>
38
+
39
+ <t-button shape="square" variant="outline" v-if="hasCloseIcon" @click="onHandleClose">
40
+ <template #icon>
41
+ <close-icon
42
+ ></close-icon>
43
+ </template>
44
+ </t-button>
45
+
46
+
47
+ <slot name="dialog-title-right-plugin"></slot>
48
+ </div>
56
49
  </div>
57
- </div>
58
- <div v-show="status !== 'loading'">
59
- <base-list
60
- ref="baseListRef"
61
- :noresize="false"
62
- :style="dialogContentStyle"
63
- class="dialog-content-wrap"
64
- >
65
- <slot name="dialog-content"></slot>
66
- </base-list>
67
-
68
- <div class="dialog__footer__wrap">
69
- <slot name="dialog-footer"></slot>
50
+ <div v-show="status !== 'loading'">
51
+ <base-list
52
+ ref="baseListRef"
53
+ :noresize="false"
54
+ :style="dialogContentStyle"
55
+ class="dialog-content-wrap"
56
+ >
57
+ <slot name="dialog-content"></slot>
58
+ </base-list>
59
+
60
+ <div class="dialog__footer__wrap">
61
+ <slot name="dialog-footer"></slot>
62
+ </div>
70
63
  </div>
71
64
  </div>
72
- </div>
73
- <div v-if="status === 'loading'" slot="waitContent">
74
- <dialog-skeleton></dialog-skeleton>
75
- </div>
76
- </base-wait>
77
- </el-dialog>
65
+ <div v-if="status === 'loading'" slot="waitContent">
66
+ <dialog-skeleton></dialog-skeleton>
67
+ </div>
68
+ </base-wait>
69
+ </template>
70
+
71
+
72
+ </t-dialog>
73
+
74
+
78
75
  </div>
79
76
  </template>
80
77
 
81
78
  <script>
82
- import UseDrag from "../../../config/use/useDrag";
83
79
  import DialogSkeleton from "./dialogSkeleton";
80
+ import UseDrag from "../../../config/use/useDrag";
81
+ import {CloseIcon, DragMoveIcon, RemoveIcon} from "tdesign-icons-vue"
84
82
 
85
83
  export default {
86
84
  name: "baseDialog",
87
- components: { DialogSkeleton },
85
+ components: {DialogSkeleton, RemoveIcon, CloseIcon, DragMoveIcon},
88
86
  data() {
89
87
  return {
90
88
  isShow: true,
@@ -94,9 +92,10 @@ export default {
94
92
  };
95
93
  },
96
94
 
97
- mounted() {},
95
+ mounted() {
96
+ },
98
97
  beforeDestroy() {
99
- const { isCache } = this.$props;
98
+ const {isCache} = this.$props;
100
99
  if (isCache) {
101
100
  this.$store.dispatch("dialogCacheStore/closeCache", this);
102
101
  }
@@ -132,7 +131,7 @@ export default {
132
131
  // 是否关闭后销毁dom
133
132
  isDestroy: {
134
133
  type: Boolean,
135
- default: false,
134
+ default: true,
136
135
  },
137
136
  // 关闭前的回调方法
138
137
  beforeClose: {
@@ -196,24 +195,35 @@ export default {
196
195
  };
197
196
  },
198
197
  destroyOnClose() {
199
- const { isDestroy, isCache } = this.$props;
198
+ const {isDestroy, isCache} = this.$props;
200
199
  if (isCache) {
201
200
  return false;
202
201
  }
203
202
  return isDestroy;
204
203
  },
205
- },
206
- methods: {
207
- init() {
208
- let target = this.$refs.dialog.$el.childNodes[0];
209
204
 
210
- let left =
211
- (document.documentElement.clientWidth - target.clientWidth) / 2;
205
+ attach() {
206
+ if (this.$props.appendToBody) {
207
+ return () => {
208
+ return document.body;
209
+ }
210
+ }
211
+ return ''
212
+ }
212
213
 
213
- target.style.cssText += `top:${parseInt(
214
- this.$props.top
215
- )}px;left:${left}px;margin:0px !important`;
216
214
 
215
+ },
216
+ methods: {
217
+ init() {
218
+ // let target = this.$refs.dialog.$el.childNodes[0];
219
+ //
220
+ // let left =
221
+ // (document.documentElement.clientWidth - target.clientWidth) / 2;
222
+ //
223
+ // target.style.cssText += `top:${parseInt(
224
+ // this.$props.top
225
+ // )}px;left:${left}px;margin:0px !important`;
226
+ //
217
227
  this.$nextTick(() => {
218
228
  if (this.$props.onDrag) {
219
229
  let iconEl = this.$refs.dragIcon.$el;
@@ -232,7 +242,8 @@ export default {
232
242
  this.useDrag = new UseDrag({
233
243
  target: target,
234
244
  handle: target.childNodes[0],
235
- onDragEnd: () => {},
245
+ onDragEnd: () => {
246
+ },
236
247
  });
237
248
  this.$nextTick(() => {
238
249
  this.useDrag.startDrag(e);
@@ -256,7 +267,7 @@ export default {
256
267
  });
257
268
  },
258
269
  closeDialog() {
259
- const { isDestroy } = this.$props;
270
+ const {isDestroy} = this.$props;
260
271
  this.onUnListen();
261
272
  if (isDestroy) {
262
273
  this.isShow = false;
@@ -268,7 +279,7 @@ export default {
268
279
  }
269
280
  },
270
281
  onHandleClose() {
271
- const { beforeClose, closeNotice } = this.$props;
282
+ const {beforeClose, closeNotice} = this.$props;
272
283
  if (beforeClose) {
273
284
  // 先执行传入的方法 this.closeDialog 再手动执行关闭的方法
274
285
  this.beforeClose(this.closeDialog);
@@ -288,21 +299,39 @@ export default {
288
299
  this.closeDialog();
289
300
  return;
290
301
  }
291
- this.$confirm(`${this.noticeText}`, "提示", {
292
- type: "warning",
293
- cancelButtonText: "取消",
294
- confirmButtonText: "确定",
295
- })
296
- .then((res) => {
302
+ // this.$confirm(`${this.noticeText}`, "提示", {
303
+ // type: "warning",
304
+ // cancelButtonText: "取消",
305
+ // confirmButtonText: "确定",
306
+ // })
307
+ // .then((res) => {
308
+ // this.closeDialog();
309
+ // })
310
+ // .catch(() => {
311
+ // });
312
+
313
+ const confirmDia = this.$dialog.confirm({
314
+ header: '关闭对话框',
315
+ body: `${this.noticeText}`,
316
+ confirmBtn: '确定',
317
+ cancelBtn: '取消',
318
+ onConfirm: ({e}) => {
319
+ confirmDia.destroy();
297
320
  this.closeDialog();
298
- })
299
- .catch(() => {});
321
+ },
322
+ onClose: ({e, trigger}) => {
323
+ confirmDia.destroy();
324
+ },
325
+ });
326
+
327
+
300
328
  },
301
329
  onUnListen() {
302
330
  try {
303
331
  let iconEl = this.$refs.dragIcon.$el;
304
332
  iconEl.removeEventListener("mousedown", this.startDrag);
305
- } catch (error) {}
333
+ } catch (error) {
334
+ }
306
335
  },
307
336
  },
308
337
  };
@@ -318,9 +347,9 @@ export default {
318
347
  position: relative;
319
348
 
320
349
 
321
- /deep/.el-scrollbar__view{
322
- height: 100%;
323
- }
350
+ /deep/ .el-scrollbar__view {
351
+ height: 100%;
352
+ }
324
353
  }
325
354
 
326
355
  .dialog-content-wrap {
@@ -1,3 +1,4 @@
1
+ <!--废弃-->
1
2
  <template>
2
3
  <base-dialog
3
4
  ref="dialog"
@@ -1,58 +1,59 @@
1
1
  <template>
2
- <el-drawer
3
- ref="drawer"
4
- :append-to-body="true"
5
- :before-close="beforeClose"
6
- :close-on-press-escape="closeOnPressEscape"
7
- :destroy-on-close="destroyOnClose"
8
- :direction="direction"
9
- :modal="false"
10
- :modal-append-to-body="true"
11
- :size="drawerSize"
12
- :visible.sync="open"
13
- :withHeader="false"
14
- :wrapperClosable="wrapperClosable"
15
- @close="close"
16
- @closed="drawerClosed"
17
- @opened="opened"
2
+
3
+ <t-drawer ref="drawer"
4
+ :attach="attach"
5
+ :placement="placement"
6
+ :destroy-on-close="destroyOnClose"
7
+ :visible.sync="open"
8
+ :showOverlay="false"
9
+ :size="drawerSize.toString()"
10
+ :header="false"
11
+ :footer="false"
12
+ @close="close"
13
+ :close-on-esc-keydown="closeOnPressEscape"
14
+ :close-on-overlay-click="wrapperClosable"
18
15
  >
19
- <!-- 插槽插入你需要渲染的内容 -->
20
- <div v-clickOutside="closeDrawerByOutside" class="drawer-content-wrap">
21
- <div v-if="handleShow" :style="handleStyle" class="drawer-handle-wrap">
22
- <div class="drawer-handle-content">
23
- <el-button
24
- v-if="showCloseButton"
25
- class="drawer-close-button"
26
- icon="el-icon-close"
27
- type="primary"
28
- @click="hiddenDrawer"
29
- ></el-button>
30
- <div ref="handleResize" class="drawer-handle-resize"></div>
16
+ <template #body>
17
+ <!-- 插槽插入你需要渲染的内容 -->
18
+ <div v-clickOutside="closeDrawerByOutside" class="drawer-content-wrap">
19
+ <div v-if="handleShow" :style="handleStyle" class="drawer-handle-wrap">
20
+ <div class="drawer-handle-content">
21
+
22
+ <base-button type="primary" size="small" shape="square" variant="base" @click="hiddenDrawer"
23
+ style="margin-top: 100px;width: 44px;height: 44px">
24
+ <template #icon>
25
+ <close-icon></close-icon>
26
+ </template>
27
+ </base-button>
28
+
29
+ <div ref="handleResize" class="drawer-handle-resize"></div>
30
+ </div>
31
+ </div>
32
+ <div class="drawer-container-wrap" :style="containerStyle">
33
+ <div v-if="header" class="drawer-content-title">
34
+ {{ title }}
35
+ </div>
36
+ <!--成功的状态-->
37
+ <base-list
38
+ v-if="status !== 'error'"
39
+ v-show="status === 'success'"
40
+ :style="contentStyle"
41
+ class="drawer-content"
42
+ >
43
+ <slot name="drawer-content"></slot>
44
+ </base-list>
45
+ <!--骨架屏-->
46
+ <drawer-skeleton v-if="status === 'loading'"></drawer-skeleton>
47
+ <!--错误状态-->
48
+ <drawer-error
49
+ :style="contentStyle"
50
+ v-if="status === 'error'"
51
+ :default-text="defaultText"
52
+ ></drawer-error>
31
53
  </div>
32
54
  </div>
33
-
34
- <div v-if="header" class="drawer-content-title">
35
- {{ title }}
36
- </div>
37
- <!--成功的状态-->
38
- <base-list
39
- v-if="status !== 'error'"
40
- v-show="status === 'success'"
41
- :noresize="false"
42
- :style="contentStyle"
43
- class="drawer-content"
44
- >
45
- <slot name="drawer-content"></slot>
46
- </base-list>
47
- <!--骨架屏-->
48
- <drawer-skeleton v-if="status === 'loading'"></drawer-skeleton>
49
- <!--错误状态-->
50
- <drawer-error
51
- v-if="status === 'error'"
52
- :default-text="defaultText"
53
- ></drawer-error>
54
- </div>
55
- </el-drawer>
55
+ </template>
56
+ </t-drawer>
56
57
  </template>
57
58
 
58
59
  <script>
@@ -62,6 +63,7 @@ import DrawerSkeleton from "./drawerSkeleton";
62
63
  import drawerController from "./drawerController";
63
64
  //
64
65
  import UseResize from "../../../config/use/UseResize";
66
+ import {CloseIcon} from "tdesign-icons-vue"
65
67
 
66
68
  export default {
67
69
  name: "baseDrawer",
@@ -69,34 +71,17 @@ export default {
69
71
  return {
70
72
  open: false,
71
73
  useResize: null,
72
- drawerSize: null,
73
-
74
74
  ignoreList: [
75
- "el-image-viewer__wrapper",
76
- "guide-content-wrap",
77
- "base-guide-overlay",
78
- "el-drawer__wrapper",
79
- "el-message-box__wrapper",
80
- "v-modal",
81
- "el-dialog__wrapper",
82
- "el-drawer__container",
83
- "el-message",
84
75
  ],
85
-
86
76
  showCloseButton: false
87
77
  };
88
78
  },
89
79
  created() {
90
- this.drawerSize = this.$props.size;
91
-
92
80
  this.setCloseButton(this.$props.useCloseButton);
93
-
94
-
95
81
  },
96
-
97
82
  mounted() {
98
83
  },
99
- components: {DrawerError, DrawerSkeleton, baseList},
84
+ components: {DrawerError, DrawerSkeleton, baseList, CloseIcon},
100
85
  props: {
101
86
  resize: {
102
87
  type: Boolean,
@@ -216,10 +201,18 @@ export default {
216
201
 
217
202
  hiddenDrawer() {
218
203
  if (this.isExis()) {
219
- this.$refs.drawer.closeDrawer();
204
+ if (this.$props.beforeClose) {
205
+ this.$props.beforeClose(this.closeDrawerAfter);
206
+ } else {
207
+ this.$refs.drawer.closeDrawer();
208
+ }
220
209
  }
221
210
  },
222
211
 
212
+ closeDrawerAfter() {
213
+ this.$refs.drawer.closeDrawer();
214
+ },
215
+
223
216
  closeDrawerByOutside(event) {
224
217
  // if (drawerController.drawerIds.length === 1) {
225
218
  // this.hiddenDrawer();
@@ -312,6 +305,30 @@ export default {
312
305
 
313
306
  },
314
307
  computed: {
308
+ drawerSize() {
309
+ if (this.handleShow) {
310
+ return this.$props.size + 44
311
+ }
312
+ return this.$props.size;
313
+ },
314
+ containerStyle() {
315
+ return {
316
+ width: `${this.handleShow ? "calc(100% - 44px)" : '100%'}`
317
+ }
318
+ },
319
+ placement() {
320
+ let direction = this.$props.direction;
321
+ switch (direction) {
322
+ case 'rtl':
323
+ return 'right';
324
+ case 'ltr':
325
+ return 'left'
326
+ default:
327
+ return 'right'
328
+ }
329
+ },
330
+
331
+
315
332
  handleShow() {
316
333
  let direction = this.$props.direction;
317
334
  return direction === "rtl" || direction === "ltr";
@@ -319,7 +336,7 @@ export default {
319
336
 
320
337
  contentStyle() {
321
338
  if (this.$props.header) {
322
- return {height: `calc(100% - 44px)`};
339
+ return {height: `calc(100% - 40px)`};
323
340
  } else {
324
341
  return {height: `calc(100%)`};
325
342
  }
@@ -329,18 +346,30 @@ export default {
329
346
  if (direction === "rtl") {
330
347
  return {
331
348
  width: "44px",
332
- left: `calc(100% - 44px - ${this.drawerSize}px)`,
333
349
  };
334
350
  } else if (direction === "ltr") {
335
351
  return {
336
352
  width: "44px",
337
- left: `calc(${this.drawerSize}px)`,
338
353
  };
339
354
  }
340
355
  },
341
356
 
342
-
357
+ attach() {
358
+ if (this.$props.appendToBody) {
359
+ return () => {
360
+ return document.body;
361
+ }
362
+ }
363
+ return ''
364
+ }
343
365
  },
366
+ watch: {
367
+ open(newVal) {
368
+ if (newVal) {
369
+ this.opened();
370
+ }
371
+ }
372
+ }
344
373
  };
345
374
  </script>
346
375
 
@@ -349,7 +378,10 @@ export default {
349
378
  width: 100%;
350
379
  height: 100%;
351
380
  overflow-y: auto;
352
- position: relative;
381
+ display: flex;
382
+ align-items: flex-start;
383
+ flex-flow: row nowrap;
384
+ justify-content: flex-start;
353
385
  box-sizing: border-box;
354
386
 
355
387
  .drawer-content-title {
@@ -368,6 +400,16 @@ export default {
368
400
  line-height: calc(var(--font-size-xl) + 8);
369
401
  }
370
402
 
403
+ .drawer-container-wrap {
404
+ width: 100%;
405
+ height: 100%;
406
+ padding: var(--td-comp-paddingTB-l) var(--td-comp-paddingLR-l);
407
+ box-sizing: border-box;
408
+ box-shadow: var(--shadow-fixed);
409
+ background: var(--bg-white);
410
+
411
+ }
412
+
371
413
  .drawer-content {
372
414
  width: 100%;
373
415
  overflow-y: auto;
@@ -376,27 +418,15 @@ export default {
376
418
  }
377
419
 
378
420
  .drawer-handle-wrap {
379
- top: 0;
421
+ width: 0;
380
422
  height: 100%;
381
- position: fixed;
382
- background: transparent;
383
- justify-content: center;
423
+
384
424
 
385
425
  .drawer-handle-content {
386
426
  width: 100%;
387
427
  height: 100%;
388
428
  position: relative;
389
429
 
390
- .drawer-close-button {
391
- right: 0;
392
- top: 100px;
393
- width: 40px;
394
- height: 40px;
395
- display: flex;
396
- flex-flow: row;
397
- position: absolute;
398
- justify-content: center;
399
- }
400
430
 
401
431
  .drawer-handle-resize {
402
432
  top: 0;