@ctzy-web-client/plugin-component-vue 1.0.23 → 1.0.25

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 (131) hide show
  1. package/es/advance-select/advance-operation.mjs +51 -37
  2. package/es/advance-select/advance-option.mjs +167 -97
  3. package/es/advance-select/advance-option.vue_vue_type_style_index_0_scoped_bc8f5626_lang.mjs +7 -0
  4. package/es/advance-select/advance-select.mjs +368 -310
  5. package/es/advance-select/index.mjs +5 -5
  6. package/es/application-slot/breadcrumb-item.mjs +20 -17
  7. package/es/application-slot/header-tools-item.mjs +20 -17
  8. package/es/breadcrumb-select/breadcrumb-select.mjs +134 -112
  9. package/es/contextmenu/contextmenu-item.mjs +19 -15
  10. package/es/contextmenu/contextmenu.mjs +72 -56
  11. package/es/data-form/data-form-item.mjs +48 -30
  12. package/es/data-form/data-form.mjs +213 -166
  13. package/es/data-form/form-components/bwa-date-picker.mjs +51 -39
  14. package/es/data-form/form-components/bwa-date-time-picker.mjs +56 -44
  15. package/es/data-form/form-components/bwa-input-float.mjs +48 -37
  16. package/es/data-form/form-components/bwa-input-integer.mjs +68 -50
  17. package/es/data-form/form-components/bwa-input.mjs +43 -32
  18. package/es/data-form/form-components/bwa-multi-select.mjs +40 -29
  19. package/es/data-form/form-components/bwa-rich-text-tinymce.mjs +554 -218
  20. package/es/data-form/form-components/bwa-rich-text.mjs +404 -316
  21. package/es/data-form/form-components/bwa-select.mjs +84 -70
  22. package/es/data-form/form-components/bwa-textarea.mjs +38 -27
  23. package/es/data-form/form-components/bwa-upload.mjs +172 -148
  24. package/es/data-form/form-components/bwa-user-multi-select.mjs +35 -24
  25. package/es/data-form/form-components/bwa-user-select.mjs +86 -61
  26. package/es/data-table/data-column-view.mjs +146 -115
  27. package/es/data-table/data-table-card.mjs +48 -40
  28. package/es/data-table/data-table-column.mjs +58 -45
  29. package/es/data-table/data-table.mjs +402 -316
  30. package/es/datatable-settings/datatable-settings.mjs +329 -254
  31. package/es/date-range/date-picker.mjs +130 -116
  32. package/es/date-range/date-range.mjs +215 -161
  33. package/es/drag-list/drag-item.mjs +56 -42
  34. package/es/drag-list/drag-list.mjs +60 -47
  35. package/es/dragable/dragable-item.mjs +23 -18
  36. package/es/dragable/dragable-operation.mjs +32 -24
  37. package/es/dragable/dragable.mjs +32 -23
  38. package/es/filter-panel/conditions/date-range-condition.mjs +50 -40
  39. package/es/filter-panel/conditions/department-condition/department-condition.mjs +99 -72
  40. package/es/filter-panel/conditions/department-condition/department-node.mjs +73 -59
  41. package/es/filter-panel/conditions/input-condition.mjs +90 -76
  42. package/es/filter-panel/conditions/multi-user-condition.mjs +67 -57
  43. package/es/filter-panel/conditions/multiple-menu-condition.mjs +54 -35
  44. package/es/filter-panel/conditions/single-menu-condition.mjs +65 -60
  45. package/es/filter-panel/conditions/single-user-condition.mjs +67 -57
  46. package/es/filter-panel/filter-panel-item.mjs +54 -39
  47. package/es/filter-panel/filter-panel.mjs +153 -135
  48. package/es/layout/layout.mjs +85 -78
  49. package/es/menu/menu-item.mjs +67 -52
  50. package/es/menu/menu.mjs +70 -53
  51. package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs +28 -0
  52. package/es/panel/panel.mjs +53 -40
  53. package/es/pct-filter-panel/pct-compents/pct-Input-condition.mjs +74 -63
  54. package/es/pct-filter-panel/pct-compents/pct-date-range-condition.mjs +76 -67
  55. package/es/pct-filter-panel/pct-compents/pct-multiple-menu-condition.mjs +406 -178
  56. package/es/pct-filter-panel/pct-compents/pct-multiple-menu-condition2.mjs +153 -138
  57. package/es/pct-filter-panel/pct-filter-panel-item.mjs +55 -40
  58. package/es/pct-filter-panel/pct-filter-panel.mjs +247 -227
  59. package/es/progress/progress-item.mjs +81 -61
  60. package/es/progress/progress.mjs +78 -64
  61. package/es/where-filter-panel/where-filter-panel.mjs +15 -12
  62. package/lib/advance-select/advance-operation.js +50 -36
  63. package/lib/advance-select/advance-option.js +166 -96
  64. package/lib/advance-select/advance-option.vue_vue_type_style_index_0_scoped_bc8f5626_lang.js +12 -0
  65. package/lib/advance-select/advance-select.js +366 -308
  66. package/lib/application-slot/breadcrumb-item.js +19 -16
  67. package/lib/application-slot/header-tools-item.js +19 -16
  68. package/lib/breadcrumb-select/breadcrumb-select.js +133 -111
  69. package/lib/contextmenu/contextmenu-item.js +18 -14
  70. package/lib/contextmenu/contextmenu.js +71 -55
  71. package/lib/data-form/data-form-item.js +47 -29
  72. package/lib/data-form/data-form.js +212 -165
  73. package/lib/data-form/form-components/bwa-date-picker.js +50 -38
  74. package/lib/data-form/form-components/bwa-date-time-picker.js +55 -43
  75. package/lib/data-form/form-components/bwa-input-float.js +47 -36
  76. package/lib/data-form/form-components/bwa-input-integer.js +67 -49
  77. package/lib/data-form/form-components/bwa-input.js +42 -31
  78. package/lib/data-form/form-components/bwa-multi-select.js +39 -28
  79. package/lib/data-form/form-components/bwa-rich-text-tinymce.js +553 -217
  80. package/lib/data-form/form-components/bwa-rich-text.js +403 -315
  81. package/lib/data-form/form-components/bwa-select.js +83 -69
  82. package/lib/data-form/form-components/bwa-textarea.js +37 -26
  83. package/lib/data-form/form-components/bwa-upload.js +171 -147
  84. package/lib/data-form/form-components/bwa-user-multi-select.js +34 -23
  85. package/lib/data-form/form-components/bwa-user-select.js +85 -60
  86. package/lib/data-table/data-column-view.js +146 -115
  87. package/lib/data-table/data-table-card.js +48 -40
  88. package/lib/data-table/data-table-column.js +57 -44
  89. package/lib/data-table/data-table.js +401 -315
  90. package/lib/datatable-settings/datatable-settings.js +328 -253
  91. package/lib/date-range/date-picker.js +129 -115
  92. package/lib/date-range/date-range.js +214 -160
  93. package/lib/drag-list/drag-item.js +55 -41
  94. package/lib/drag-list/drag-list.js +59 -46
  95. package/lib/dragable/dragable-item.js +22 -17
  96. package/lib/dragable/dragable-operation.js +31 -23
  97. package/lib/dragable/dragable.js +31 -22
  98. package/lib/filter-panel/conditions/date-range-condition.js +49 -39
  99. package/lib/filter-panel/conditions/department-condition/department-condition.js +98 -71
  100. package/lib/filter-panel/conditions/department-condition/department-node.js +72 -58
  101. package/lib/filter-panel/conditions/input-condition.js +89 -75
  102. package/lib/filter-panel/conditions/multi-user-condition.js +66 -56
  103. package/lib/filter-panel/conditions/multiple-menu-condition.js +53 -34
  104. package/lib/filter-panel/conditions/single-menu-condition.js +64 -59
  105. package/lib/filter-panel/conditions/single-user-condition.js +66 -56
  106. package/lib/filter-panel/filter-panel-item.js +53 -38
  107. package/lib/filter-panel/filter-panel.js +152 -134
  108. package/lib/layout/layout.js +84 -77
  109. package/lib/menu/menu-item.js +66 -51
  110. package/lib/menu/menu.js +69 -52
  111. package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js +32 -0
  112. package/lib/panel/panel.js +52 -39
  113. package/lib/pct-filter-panel/pct-compents/pct-Input-condition.js +73 -62
  114. package/lib/pct-filter-panel/pct-compents/pct-date-range-condition.js +75 -66
  115. package/lib/pct-filter-panel/pct-compents/pct-multiple-menu-condition.js +405 -177
  116. package/lib/pct-filter-panel/pct-compents/pct-multiple-menu-condition2.js +152 -137
  117. package/lib/pct-filter-panel/pct-filter-panel-item.js +54 -39
  118. package/lib/pct-filter-panel/pct-filter-panel.js +246 -226
  119. package/lib/progress/progress-item.js +80 -60
  120. package/lib/progress/progress.js +77 -63
  121. package/lib/where-filter-panel/where-filter-panel.js +14 -11
  122. package/package.json +2 -1
  123. package/src/advance-select/advance-option.vue +64 -13
  124. package/src/data-form/form-components/bwa-rich-text-tinymce.vue +1 -1
  125. package/src/datatable-settings/datatable-settings.vue +33 -3
  126. package/src/date-range/date-picker.vue +1 -1
  127. package/src/filter-panel/filter-panel.vue +2 -2
  128. package/src/pct-filter-panel/pct-compents/pct-Input-condition.vue +64 -64
  129. package/src/pct-filter-panel/pct-compents/pct-date-range-condition.vue +61 -61
  130. package/src/pct-filter-panel/pct-compents/pct-multiple-menu-condition.vue +302 -178
  131. package/src/pct-filter-panel/pct-filter-panel.vue +4 -4
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, watch, provide, computed, resolveComponent, openBlock, createBlock, unref, withCtx, renderSlot, createVNode, createElementVNode, normalizeClass, createTextVNode } from 'vue';
1
+ import { ref, watch, provide, computed, resolveComponent, openBlock, createBlock, unref, withCtx, renderSlot, createVNode, createElementVNode, normalizeClass, createTextVNode } from 'vue';
2
2
  import { ROOT_PICKER_INJECTION_KEY } from 'element-plus/es/components/date-picker/src/constants';
3
3
  import ElPanelDatePicker from 'element-plus/es/components/date-picker/src/date-picker-com/panel-date-pick';
4
4
  import { parseDate, valueEquals, formatter } from 'element-plus/es/components/time-picker/src/utils';
@@ -6,123 +6,137 @@ import { useLocale } from 'element-plus/es/hooks/index';
6
6
  import { useNamespace } from '@ctzy-web-client/web-base-client-vue';
7
7
  import _export_sfc from '../_virtual/_plugin-vue_export-helper.mjs';
8
8
 
9
- const __default__ = defineComponent({ name: "BwaDatePicker" });
10
- const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
11
- props: {
12
- modelValue: {
13
- type: [String, Date, Array]
14
- },
15
- visible: {
16
- type: Boolean
17
- },
18
- format: {
19
- type: String,
20
- default: "YYYY-MM-DD"
21
- },
22
- shortcuts: {
23
- type: Array,
24
- default: () => []
25
- }
26
- },
27
- emits: ["update:modelValue", "update:visible"],
9
+ const _sfc_main = {
10
+ __name: 'date-picker',
11
+ props: {
12
+ modelValue: {
13
+ type: [String, Date, Array],
14
+ },
15
+ visible: {
16
+ type: Boolean,
17
+ },
18
+ format: {
19
+ type: String,
20
+ default: 'YYYY-MM-DD',
21
+ },
22
+ shortcuts: {
23
+ type: Array,
24
+ default: () => [],
25
+ },
26
+ },
27
+ emits: ['update:modelValue', 'update:visible'],
28
28
  setup(__props, { emit }) {
29
- const props = __props;
30
- const ns = useNamespace("datepicker");
31
- const { lang } = useLocale();
32
- const visible = ref(false);
33
- watch(visible, () => {
34
- emit("update:visible", visible.value);
35
- });
36
- provide("EP_PICKER_BASE", {
37
- props
38
- });
39
- provide(ROOT_PICKER_INJECTION_KEY, {
40
- slots: {},
41
- pickerNs: null
42
- });
43
- const parsedValue = computed(() => {
44
- return parseDate(props.modelValue, props.format, lang);
45
- });
46
- const emitInput = (input) => {
47
- if (valueEquals(props.modelValue, input)) {
48
- return;
49
- }
50
- let formatted;
51
- if (Array.isArray(input)) {
52
- formatted = input.map((item) => formatter(item, props.format, lang.value));
53
- } else {
54
- formatted = formatter(input, props.format, lang.value);
55
- }
56
- emit("update:modelValue", formatted);
57
- };
58
- const onPick = (date) => {
59
- let result;
60
- if (Array.isArray(date)) {
61
- result = date.map((_) => _.toDate());
62
- } else {
63
- result = date ? date.toDate() : date;
64
- }
65
- emitInput(result);
66
- visible.value = false;
67
- };
68
- const onClear = () => {
69
- emit("update:modelValue", "");
70
- visible.value = false;
71
- };
72
- return (_ctx, _cache) => {
73
- const _component_ElButton = resolveComponent("ElButton");
74
- const _component_ElTooltip = resolveComponent("ElTooltip");
75
- return openBlock(), createBlock(_component_ElTooltip, {
76
- trigger: "click",
77
- pure: "",
78
- teleported: "",
79
- effect: "light",
80
- role: "dialog",
81
- transition: `el-zoom-in-top`,
82
- "fallback-placements": ["bottom", "top", "right", "left"],
83
- "gpu-acceleration": false,
84
- "show-arrow": false,
85
- "stop-popper-mouse-event": false,
86
- visible: visible.value,
87
- "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => visible.value = $event),
88
- "hide-after": 0,
89
- "popper-class": unref(ns).b(),
90
- persistent: "",
91
- "append-to": ".bwa-application"
29
+
30
+ const props = __props;
31
+
32
+ defineOptions({ name: 'BwaDatePicker' });
33
+
34
+
35
+
36
+ const ns = useNamespace('datepicker');
37
+
38
+ const { lang } = useLocale();
39
+
40
+ const visible = ref(false);
41
+
42
+ watch(visible, () => {
43
+ emit('update:visible', visible.value);
44
+ });
45
+
46
+ provide('EP_PICKER_BASE', {
47
+ props,
48
+ });
49
+ provide(ROOT_PICKER_INJECTION_KEY, {
50
+ slots: {},
51
+ pickerNs: null,
52
+ });
53
+
54
+ const parsedValue = computed(() => {
55
+ return parseDate(props.modelValue, props.format, lang);
56
+ });
57
+
58
+ const emitInput = (input) => {
59
+ if (valueEquals(props.modelValue, input)) {
60
+ return;
61
+ }
62
+ let formatted;
63
+ if (Array.isArray(input)) {
64
+ formatted = input.map((item) => formatter(item, props.format, lang.value));
65
+ } else {
66
+ formatted = formatter(input, props.format, lang.value);
67
+ }
68
+ emit('update:modelValue', formatted);
69
+ };
70
+
71
+ const onPick = (date) => {
72
+ let result;
73
+ if (Array.isArray(date)) {
74
+ result = date.map((_) => _.toDate());
75
+ } else {
76
+ result = date ? date.toDate() : date;
77
+ }
78
+ emitInput(result);
79
+ visible.value = false;
80
+ };
81
+
82
+ const onClear = () => {
83
+ emit('update:modelValue', '');
84
+ visible.value = false;
85
+ };
86
+
87
+ return (_ctx, _cache) => {
88
+ const _component_ElButton = resolveComponent("ElButton");
89
+ const _component_ElTooltip = resolveComponent("ElTooltip");
90
+
91
+ return (openBlock(), createBlock(_component_ElTooltip, {
92
+ trigger: "click",
93
+ pure: "",
94
+ teleported: "",
95
+ effect: "light",
96
+ role: "dialog",
97
+ transition: `el-zoom-in-top`,
98
+ "fallback-placements": ['bottom', 'top', 'right', 'left'],
99
+ "gpu-acceleration": false,
100
+ "show-arrow": false,
101
+ "stop-popper-mouse-event": false,
102
+ visible: visible.value,
103
+ "onUpdate:visible": _cache[0] || (_cache[0] = $event => ((visible).value = $event)),
104
+ "hide-after": 0,
105
+ "popper-class": unref(ns).b(),
106
+ persistent: "",
107
+ "append-to": ".bwa-application"
108
+ }, {
109
+ default: withCtx(() => [
110
+ renderSlot(_ctx.$slots, "default", { visible: visible.value })
111
+ ]),
112
+ content: withCtx(() => [
113
+ createVNode(unref(ElPanelDatePicker), {
114
+ type: "date",
115
+ "parsed-value": unref(parsedValue),
116
+ onPick: onPick,
117
+ teleported: false
92
118
  }, {
93
- default: withCtx(() => [
94
- renderSlot(_ctx.$slots, "default", { visible: visible.value })
119
+ sidebar: withCtx(() => [
120
+ createElementVNode("div", {
121
+ class: normalizeClass(unref(ns).e('sidebar'))
122
+ }, [
123
+ createVNode(_component_ElButton, { onClick: onClear }, {
124
+ default: withCtx(() => [
125
+ createTextVNode("清空")
126
+ ]),
127
+ _: 1 /* STABLE */
128
+ })
129
+ ], 2 /* CLASS */)
95
130
  ]),
96
- content: withCtx(() => [
97
- createVNode(unref(ElPanelDatePicker), {
98
- type: "date",
99
- "parsed-value": unref(parsedValue),
100
- onPick,
101
- teleported: false
102
- }, {
103
- sidebar: withCtx(() => [
104
- createElementVNode("div", {
105
- class: normalizeClass(unref(ns).e("sidebar"))
106
- }, [
107
- createVNode(_component_ElButton, {
108
- size: "small",
109
- onClick: onClear
110
- }, {
111
- default: withCtx(() => [
112
- createTextVNode("\u6E05\u7A7A")
113
- ]),
114
- _: 1
115
- })
116
- ], 2)
117
- ]),
118
- _: 1
119
- }, 8, ["parsed-value"])
120
- ]),
121
- _: 3
122
- }, 8, ["visible", "popper-class"]);
123
- };
124
- }
125
- });
126
- var datePicker = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "date-picker.vue"]]);
131
+ _: 1 /* STABLE */
132
+ }, 8 /* PROPS */, ["parsed-value"])
133
+ ]),
134
+ _: 3 /* FORWARDED */
135
+ }, 8 /* PROPS */, ["visible", "popper-class"]))
136
+ }
137
+ }
138
+
139
+ };
140
+ var datePicker = /*#__PURE__*/_export_sfc(_sfc_main, [['__file',"date-picker.vue"]]);
127
141
 
128
142
  export { datePicker as default };
@@ -1,170 +1,224 @@
1
- import { defineComponent, ref, inject, computed, useSlots, unref, provide, watch, resolveComponent, openBlock, createBlock, withCtx, renderSlot, createElementVNode, normalizeClass, createElementBlock, toDisplayString, createCommentVNode, createVNode, createTextVNode } from 'vue';
1
+ import { ref, inject, computed, useSlots, unref, provide, watch, resolveComponent, openBlock, createBlock, withCtx, renderSlot, createElementVNode, normalizeClass, createElementBlock, toDisplayString, createCommentVNode, createVNode, createTextVNode } from 'vue';
2
2
  import { useNamespace, filterPanelItemKey, useGlobalConfig } from '@ctzy-web-client/web-base-client-vue';
3
3
  import { timePickerDefaultProps, ROOT_PICKER_INJECTION_KEY, useNamespace as useNamespace$1, dayjs, parseDate, valueEquals, formatter } from 'element-plus';
4
4
  import _export_sfc from '../_virtual/_plugin-vue_export-helper.mjs';
5
5
 
6
- const __default__ = defineComponent({ name: "BwaDateRange" });
7
- const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
8
- props: {
9
- ...timePickerDefaultProps,
10
- modelValue: {
11
- type: null,
12
- required: true
13
- }
14
- },
15
- emits: ["update:modelValue"],
6
+ const _sfc_main = {
7
+ __name: 'date-range',
8
+ props: {
9
+ ...timePickerDefaultProps,
10
+ modelValue: {
11
+ type: null,
12
+ required: true,
13
+ },
14
+ },
15
+ emits: ['update:modelValue'],
16
16
  setup(__props, { emit }) {
17
- const props = __props;
18
- const ns = useNamespace("daterange");
19
- const pickerVisivle = ref(false);
20
- const filterPanelItem = inject(filterPanelItemKey);
21
- const column = computed(() => {
22
- var _a;
23
- return (_a = filterPanelItem == null ? void 0 : filterPanelItem.column) != null ? _a : null;
24
- });
25
- const slots = useSlots();
26
- const locale = useGlobalConfig("locale", "ZH");
27
- const lang = computed(() => unref(locale).name);
28
- provide(ROOT_PICKER_INJECTION_KEY, {
29
- slots,
30
- pickerNs: useNamespace$1("picker-panel")
31
- });
32
- provide("EP_PICKER_BASE", {
33
- props
34
- });
35
- watch(
36
- computed(() => props.modelValue),
37
- () => {
38
- if (!props.modelValue || Array.isArray(props.modelValue) || typeof props.modelValue !== "object") {
39
- emit("update:modelValue", { start: "", end: "" });
40
- }
41
- },
42
- { immediate: true }
43
- );
44
- const formatShowTime = (date) => {
45
- return date ? dayjs(date).format("YYYY-MM-DD") : "";
46
- };
47
- const startTime = computed(() => {
48
- var _a;
49
- if (!((_a = props.modelValue) == null ? void 0 : _a.start)) {
50
- return "";
51
- }
52
- return dayjs(props.modelValue.start).set("hour", 0).set("minute", 0).set("second", 0).format("YYYY-MM-DD HH:mm:ss");
53
- });
54
- const endTime = computed(() => {
55
- var _a;
56
- if (!((_a = props.modelValue) == null ? void 0 : _a.end)) {
57
- return "";
58
- }
59
- return dayjs(props.modelValue.end).set("hour", 23).set("minute", 59).set("second", 59).format("YYYY-MM-DD HH:mm:ss");
60
- });
61
- const formatStartTime = computed(() => formatShowTime(unref(startTime)));
62
- const formatEndTime = computed(() => formatShowTime(unref(endTime)));
63
- const dateRangeValue = computed(() => [unref(startTime), unref(endTime)]);
64
- const valueIsEmpty = computed(() => {
65
- const value = unref(dateRangeValue);
66
- return !value || Array.isArray(value) && !value.filter(Boolean).length;
67
- });
68
- const parsedValue = computed(() => {
69
- const { valueFormat } = props;
70
- const value = unref(dateRangeValue);
71
- if (!unref(valueIsEmpty)) {
72
- return value.map((d) => parseDate(d, valueFormat, unref(lang)));
73
- }
74
- return [];
75
- });
76
- const emitInput = (input) => {
77
- if (!valueEquals(unref(dateRangeValue), input)) {
78
- const formatted = input.map(
79
- (item) => formatter(item, props.valueFormat, unref(lang))
80
- );
81
- emit("update:modelValue", {
82
- start: formatted[0] ? dayjs(formatted[0]).set("hour", 0).set("minute", 0).set("second", 0).format("YYYY-MM-DD HH:mm:ss") : "",
83
- end: formatted[1] ? dayjs(formatted[1]).set("hour", 23).set("minute", 59).set("second", 59).format("YYYY-MM-DD HH:mm:ss") : ""
84
- });
85
- }
86
- };
87
- const onPick = (date, visible = false) => {
88
- pickerVisivle.value = visible;
89
- emitInput(date.map((item) => item.toDate()));
90
- };
91
- return (_ctx, _cache) => {
92
- const _component_CaretBottom = resolveComponent("CaretBottom");
93
- const _component_ElIcon = resolveComponent("ElIcon");
94
- const _component_ElTooltip = resolveComponent("ElTooltip");
95
- return openBlock(), createBlock(_component_ElTooltip, {
96
- visible: pickerVisivle.value,
97
- "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => pickerVisivle.value = $event),
98
- pure: "",
99
- teleported: "",
100
- effect: "light",
101
- role: "dialog",
102
- transition: `el-zoom-in-top`,
103
- "fallback-placements": ["bottom", "top", "right", "left"],
104
- "gpu-acceleration": false,
105
- "show-arrow": false,
106
- "stop-popper-mouse-event": false,
107
- "hide-after": 0,
108
- persistent: "",
109
- trigger: "click",
110
- "append-to": ".bwa-application"
111
- }, {
112
- default: withCtx(() => [
113
- renderSlot(_ctx.$slots, "pct-default", {
114
- formatStartTime: unref(formatStartTime),
115
- formatEndTime: unref(formatEndTime)
116
- }, () => [
117
- createElementVNode("div", {
118
- class: normalizeClass([unref(ns).b(), unref(ns).is("active", pickerVisivle.value)])
119
- }, [
120
- renderSlot(_ctx.$slots, "label", {}, () => [
121
- unref(column) ? (openBlock(), createElementBlock("span", {
17
+
18
+ const props = __props;
19
+
20
+ defineOptions({ name: 'BwaDateRange' });
21
+
22
+
23
+
24
+ const ns = useNamespace('daterange');
25
+
26
+ const pickerVisivle = ref(false);
27
+
28
+ const filterPanelItem = inject(filterPanelItemKey);
29
+ const column = computed(() => filterPanelItem?.column ?? null);
30
+
31
+
32
+
33
+ const slots = useSlots();
34
+
35
+ const locale = useGlobalConfig('locale', 'ZH');
36
+ const lang = computed(() => unref(locale).name);
37
+
38
+ provide(ROOT_PICKER_INJECTION_KEY, {
39
+ slots,
40
+ pickerNs: useNamespace$1('picker-panel'),
41
+ });
42
+ provide('EP_PICKER_BASE', {
43
+ props,
44
+ });
45
+
46
+ watch(
47
+ computed(() => props.modelValue),
48
+ () => {
49
+ if (
50
+ !props.modelValue ||
51
+ Array.isArray(props.modelValue) ||
52
+ typeof props.modelValue !== 'object'
53
+ ) {
54
+ emit('update:modelValue', { start: '', end: '' });
55
+ }
56
+ },
57
+ { immediate: true }
58
+ );
59
+
60
+ const formatShowTime = (date) => {
61
+ return date ? dayjs(date).format('YYYY-MM-DD') : '';
62
+ };
63
+
64
+ /** @type {import('vue').ComputedRef<string>} */
65
+ const startTime = computed(() => {
66
+ if (!props.modelValue?.start) {
67
+ return '';
68
+ }
69
+
70
+ return dayjs(props.modelValue.start)
71
+ .set('hour', 0)
72
+ .set('minute', 0)
73
+ .set('second', 0)
74
+ .format('YYYY-MM-DD HH:mm:ss');
75
+ });
76
+ /** @type {import('vue').ComputedRef<string>} */
77
+ const endTime = computed(() => {
78
+ if (!props.modelValue?.end) {
79
+ return '';
80
+ }
81
+
82
+ return dayjs(props.modelValue.end)
83
+ .set('hour', 23)
84
+ .set('minute', 59)
85
+ .set('second', 59)
86
+ .format('YYYY-MM-DD HH:mm:ss');
87
+ });
88
+
89
+ const formatStartTime = computed(() => formatShowTime(unref(startTime)));
90
+ const formatEndTime = computed(() => formatShowTime(unref(endTime)));
91
+
92
+ const dateRangeValue = computed(() => [unref(startTime), unref(endTime)]);
93
+
94
+ const valueIsEmpty = computed(() => {
95
+ const value = unref(dateRangeValue);
96
+ return !value || (Array.isArray(value) && !value.filter(Boolean).length);
97
+ });
98
+
99
+ const parsedValue = computed(() => {
100
+ const { valueFormat } = props;
101
+ const value = unref(dateRangeValue);
102
+
103
+ if (!unref(valueIsEmpty)) {
104
+ return value.map((d) => parseDate(d, valueFormat, unref(lang)));
105
+ }
106
+
107
+ return [];
108
+ });
109
+
110
+ const emitInput = (input) => {
111
+ if (!valueEquals(unref(dateRangeValue), input)) {
112
+ const formatted = input.map((item) =>
113
+ formatter(item, props.valueFormat, unref(lang))
114
+ );
115
+
116
+ emit('update:modelValue', {
117
+ start: formatted[0]
118
+ ? dayjs(formatted[0])
119
+ .set('hour', 0)
120
+ .set('minute', 0)
121
+ .set('second', 0)
122
+ .format('YYYY-MM-DD HH:mm:ss')
123
+ : '',
124
+ end: formatted[1]
125
+ ? dayjs(formatted[1])
126
+ .set('hour', 23)
127
+ .set('minute', 59)
128
+ .set('second', 59)
129
+ .format('YYYY-MM-DD HH:mm:ss')
130
+ : '',
131
+ });
132
+ }
133
+ };
134
+
135
+ const onPick = (date, visible = false) => {
136
+ pickerVisivle.value = visible;
137
+
138
+ emitInput(date.map((item) => item.toDate()));
139
+ };
140
+
141
+ return (_ctx, _cache) => {
142
+ const _component_CaretBottom = resolveComponent("CaretBottom");
143
+ const _component_ElIcon = resolveComponent("ElIcon");
144
+ const _component_ElTooltip = resolveComponent("ElTooltip");
145
+
146
+ return (openBlock(), createBlock(_component_ElTooltip, {
147
+ visible: pickerVisivle.value,
148
+ "onUpdate:visible": _cache[0] || (_cache[0] = $event => ((pickerVisivle).value = $event)),
149
+ pure: "",
150
+ teleported: "",
151
+ effect: "light",
152
+ role: "dialog",
153
+ transition: `el-zoom-in-top`,
154
+ "fallback-placements": ['bottom', 'top', 'right', 'left'],
155
+ "gpu-acceleration": false,
156
+ "show-arrow": false,
157
+ "stop-popper-mouse-event": false,
158
+ "hide-after": 0,
159
+ persistent: "",
160
+ trigger: "click",
161
+ "append-to": ".bwa-application"
162
+ }, {
163
+ default: withCtx(() => [
164
+ renderSlot(_ctx.$slots, "pct-default", {
165
+ formatStartTime: unref(formatStartTime),
166
+ formatEndTime: unref(formatEndTime)
167
+ }, () => [
168
+ createElementVNode("div", {
169
+ class: normalizeClass([unref(ns).b(), unref(ns).is('active', pickerVisivle.value)])
170
+ }, [
171
+ renderSlot(_ctx.$slots, "label", {}, () => [
172
+ (unref(column))
173
+ ? (openBlock(), createElementBlock("span", {
122
174
  key: 0,
123
- class: normalizeClass(unref(ns).e("label"))
124
- }, toDisplayString(unref(column).title), 3)) : createCommentVNode("v-if", true)
175
+ class: normalizeClass(unref(ns).e('label'))
176
+ }, toDisplayString(unref(column).title), 3 /* TEXT, CLASS */))
177
+ : createCommentVNode("v-if", true)
178
+ ]),
179
+ createElementVNode("span", {
180
+ class: normalizeClass([unref(ns).e('time'), unref(ns).is('empty', !unref(formatStartTime))])
181
+ }, [
182
+ createElementVNode("span", {
183
+ class: normalizeClass(unref(ns).e('content'))
184
+ }, toDisplayString(unref(formatStartTime) ? unref(formatStartTime) : '开始日期'), 3 /* TEXT, CLASS */),
185
+ createVNode(_component_ElIcon, {
186
+ class: normalizeClass(unref(ns).e('caret'))
187
+ }, {
188
+ default: withCtx(() => [
189
+ createVNode(_component_CaretBottom)
125
190
  ]),
126
- createElementVNode("span", {
127
- class: normalizeClass([unref(ns).e("time"), unref(ns).is("empty", !unref(formatStartTime))])
128
- }, [
129
- createElementVNode("span", {
130
- class: normalizeClass(unref(ns).e("content"))
131
- }, toDisplayString(unref(formatStartTime) ? unref(formatStartTime) : "\u5F00\u59CB\u65E5\u671F"), 3),
132
- createVNode(_component_ElIcon, {
133
- class: normalizeClass(unref(ns).e("caret"))
134
- }, {
135
- default: withCtx(() => [
136
- createVNode(_component_CaretBottom)
137
- ]),
138
- _: 1
139
- }, 8, ["class"])
140
- ], 2),
141
- createTextVNode(" \u81F3 "),
142
- createElementVNode("span", {
143
- class: normalizeClass([unref(ns).e("time"), unref(ns).is("empty", !unref(formatEndTime))])
144
- }, [
145
- createElementVNode("span", {
146
- class: normalizeClass(unref(ns).e("content"))
147
- }, toDisplayString(unref(formatEndTime) ? unref(formatEndTime) : "\u7ED3\u675F\u65E5\u671F"), 3),
148
- createVNode(_component_ElIcon, {
149
- class: normalizeClass(unref(ns).e("caret"))
150
- }, {
151
- default: withCtx(() => [
152
- createVNode(_component_CaretBottom)
153
- ]),
154
- _: 1
155
- }, 8, ["class"])
156
- ], 2)
157
- ], 2)
158
- ])
159
- ]),
160
- content: withCtx(() => [
161
- createCommentVNode(' <PanelDateRange\r\n :parsed-value="parsedValue"\r\n type="daterange"\r\n :visible="pickerVisivle"\r\n @pick="onPick"\r\n :teleported="false"\r\n /> ')
162
- ]),
163
- _: 3
164
- }, 8, ["visible"]);
165
- };
166
- }
167
- });
168
- var DateRange = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "date-range.vue"]]);
191
+ _: 1 /* STABLE */
192
+ }, 8 /* PROPS */, ["class"])
193
+ ], 2 /* CLASS */),
194
+ createTextVNode(""),
195
+ createElementVNode("span", {
196
+ class: normalizeClass([unref(ns).e('time'), unref(ns).is('empty', !unref(formatEndTime))])
197
+ }, [
198
+ createElementVNode("span", {
199
+ class: normalizeClass(unref(ns).e('content'))
200
+ }, toDisplayString(unref(formatEndTime) ? unref(formatEndTime) : '结束日期'), 3 /* TEXT, CLASS */),
201
+ createVNode(_component_ElIcon, {
202
+ class: normalizeClass(unref(ns).e('caret'))
203
+ }, {
204
+ default: withCtx(() => [
205
+ createVNode(_component_CaretBottom)
206
+ ]),
207
+ _: 1 /* STABLE */
208
+ }, 8 /* PROPS */, ["class"])
209
+ ], 2 /* CLASS */)
210
+ ], 2 /* CLASS */)
211
+ ])
212
+ ]),
213
+ content: withCtx(() => [
214
+ createCommentVNode(" <PanelDateRange\r\n :parsed-value=\"parsedValue\"\r\n type=\"daterange\"\r\n :visible=\"pickerVisivle\"\r\n @pick=\"onPick\"\r\n :teleported=\"false\"\r\n /> ")
215
+ ]),
216
+ _: 3 /* FORWARDED */
217
+ }, 8 /* PROPS */, ["visible"]))
218
+ }
219
+ }
220
+
221
+ };
222
+ var DateRange = /*#__PURE__*/_export_sfc(_sfc_main, [['__file',"date-range.vue"]]);
169
223
 
170
224
  export { DateRange as default };