hy-dispatch-ui-v3 0.1.0
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/LICENSE +21 -0
- package/README.md +3 -0
- package/dist/tailwind.css +1083 -0
- package/es/bussiness/index.mjs +2 -0
- package/es/bussiness/index.mjs.map +1 -0
- package/es/components/appConfirmDialog/appConfirmDialog.vue.mjs +204 -0
- package/es/components/appConfirmDialog/appConfirmDialog.vue.mjs.map +1 -0
- package/es/components/appConfirmDialog/appConfirmMethod.mjs +73 -0
- package/es/components/appConfirmDialog/appConfirmMethod.mjs.map +1 -0
- package/es/components/appConfirmDialog/index.mjs +8 -0
- package/es/components/appConfirmDialog/index.mjs.map +1 -0
- package/es/components/appConfirmDialog/style/appConfirmDialog.scss +5 -0
- package/es/components/appDatePicker/appDatePicker.vue.mjs +99 -0
- package/es/components/appDatePicker/appDatePicker.vue.mjs.map +1 -0
- package/es/components/appDatePicker/index.mjs +7 -0
- package/es/components/appDatePicker/index.mjs.map +1 -0
- package/es/components/appDatePicker/style/appDatePicker.scss +0 -0
- package/es/components/appForm/appForm.vue.mjs +331 -0
- package/es/components/appForm/appForm.vue.mjs.map +1 -0
- package/es/components/appForm/index.mjs +8 -0
- package/es/components/appForm/index.mjs.map +1 -0
- package/es/components/appForm/js/index.mjs +87 -0
- package/es/components/appForm/js/index.mjs.map +1 -0
- package/es/components/appForm/js/useAppForm.mjs +149 -0
- package/es/components/appForm/js/useAppForm.mjs.map +1 -0
- package/es/components/appForm/style/appForm.scss +16 -0
- package/es/components/appOrgCascader/appOrgCascader.vue.mjs +229 -0
- package/es/components/appOrgCascader/appOrgCascader.vue.mjs.map +1 -0
- package/es/components/appOrgCascader/index.mjs +7 -0
- package/es/components/appOrgCascader/index.mjs.map +1 -0
- package/es/components/appOrgCascader/style/appOrgCascader.scss +0 -0
- package/es/components/appSearch/appSearch.vue.mjs +408 -0
- package/es/components/appSearch/appSearch.vue.mjs.map +1 -0
- package/es/components/appSearch/index.mjs +8 -0
- package/es/components/appSearch/index.mjs.map +1 -0
- package/es/components/appSearch/js/index.mjs +114 -0
- package/es/components/appSearch/js/index.mjs.map +1 -0
- package/es/components/appSearch/js/useAppSearch.mjs +178 -0
- package/es/components/appSearch/js/useAppSearch.mjs.map +1 -0
- package/es/components/appSearch/style/appSearch.scss +53 -0
- package/es/components/appTable/appTable.vue.mjs +578 -0
- package/es/components/appTable/appTable.vue.mjs.map +1 -0
- package/es/components/appTable/cpns/columnSelect.vue.mjs +414 -0
- package/es/components/appTable/cpns/columnSelect.vue.mjs.map +1 -0
- package/es/components/appTable/index.mjs +8 -0
- package/es/components/appTable/index.mjs.map +1 -0
- package/es/components/appTable/js/index.mjs +304 -0
- package/es/components/appTable/js/index.mjs.map +1 -0
- package/es/components/appTable/js/search.mjs +129 -0
- package/es/components/appTable/js/search.mjs.map +1 -0
- package/es/components/appTable/js/useAppTable.mjs +63 -0
- package/es/components/appTable/js/useAppTable.mjs.map +1 -0
- package/es/components/appTable/style/appTable.scss +15 -0
- package/es/components/appTooltip/appTooltip.vue.mjs +94 -0
- package/es/components/appTooltip/appTooltip.vue.mjs.map +1 -0
- package/es/components/appTooltip/index.mjs +7 -0
- package/es/components/appTooltip/index.mjs.map +1 -0
- package/es/components/appTooltip/style/appTooltip.scss +0 -0
- package/es/components/index.mjs +12 -0
- package/es/components/index.mjs.map +1 -0
- package/es/components/svgIcon/iconBox.vue.mjs +99 -0
- package/es/components/svgIcon/iconBox.vue.mjs.map +1 -0
- package/es/components/svgIcon/index.mjs +9 -0
- package/es/components/svgIcon/index.mjs.map +1 -0
- package/es/components/svgIcon/style/iconBox.scss +13 -0
- package/es/components/svgIcon/style/svgIcon.scss +12 -0
- package/es/components/svgIcon/svgIcon.vue.mjs +47 -0
- package/es/components/svgIcon/svgIcon.vue.mjs.map +1 -0
- package/es/config/index.mjs +2 -0
- package/es/config/index.mjs.map +1 -0
- package/es/constants/index.mjs +4 -0
- package/es/constants/index.mjs.map +1 -0
- package/es/constants/keys.mjs +2 -0
- package/es/constants/keys.mjs.map +1 -0
- package/es/hooks/index.mjs +5 -0
- package/es/hooks/index.mjs.map +1 -0
- package/es/hooks/useApi.mjs +10 -0
- package/es/hooks/useApi.mjs.map +1 -0
- package/es/hooks/useGlobalConfig.mjs +56 -0
- package/es/hooks/useGlobalConfig.mjs.map +1 -0
- package/es/hooks/useLocale.mjs +34 -0
- package/es/hooks/useLocale.mjs.map +1 -0
- package/es/hooks/useMixins.mjs +19 -0
- package/es/hooks/useMixins.mjs.map +1 -0
- package/es/index.mjs +30 -0
- package/es/index.mjs.map +1 -0
- package/es/locale/en_US.mjs +67 -0
- package/es/locale/en_US.mjs.map +1 -0
- package/es/locale/index.mjs +3 -0
- package/es/locale/index.mjs.map +1 -0
- package/es/locale/zh_CN.mjs +67 -0
- package/es/locale/zh_CN.mjs.map +1 -0
- package/es/make-installer.mjs +29 -0
- package/es/make-installer.mjs.map +1 -0
- package/es/store/index.mjs +7 -0
- package/es/store/index.mjs.map +1 -0
- package/es/store/maintain.mjs +90 -0
- package/es/store/maintain.mjs.map +1 -0
- package/es/style/index.scss +46 -0
- package/es/style/tailwind.scss +3 -0
- package/es/style/theme.scss +123 -0
- package/es/utils/adaptive.mjs +30 -0
- package/es/utils/adaptive.mjs.map +1 -0
- package/es/utils/bus.mjs +6 -0
- package/es/utils/bus.mjs.map +1 -0
- package/es/utils/crypto.mjs +21 -0
- package/es/utils/crypto.mjs.map +1 -0
- package/es/utils/date.mjs +25 -0
- package/es/utils/date.mjs.map +1 -0
- package/es/utils/handler.mjs +83 -0
- package/es/utils/handler.mjs.map +1 -0
- package/es/utils/index.mjs +7 -0
- package/es/utils/index.mjs.map +1 -0
- package/es/utils/is.mjs +19 -0
- package/es/utils/is.mjs.map +1 -0
- package/es/version.mjs +4 -0
- package/es/version.mjs.map +1 -0
- package/lib/bussiness/index.js +3 -0
- package/lib/bussiness/index.js.map +1 -0
- package/lib/components/appConfirmDialog/appConfirmDialog.vue.js +208 -0
- package/lib/components/appConfirmDialog/appConfirmDialog.vue.js.map +1 -0
- package/lib/components/appConfirmDialog/appConfirmMethod.js +77 -0
- package/lib/components/appConfirmDialog/appConfirmMethod.js.map +1 -0
- package/lib/components/appConfirmDialog/index.js +13 -0
- package/lib/components/appConfirmDialog/index.js.map +1 -0
- package/lib/components/appConfirmDialog/style/appConfirmDialog.scss +5 -0
- package/lib/components/appDatePicker/appDatePicker.vue.js +103 -0
- package/lib/components/appDatePicker/appDatePicker.vue.js.map +1 -0
- package/lib/components/appDatePicker/index.js +12 -0
- package/lib/components/appDatePicker/index.js.map +1 -0
- package/lib/components/appDatePicker/style/appDatePicker.scss +0 -0
- package/lib/components/appForm/appForm.vue.js +335 -0
- package/lib/components/appForm/appForm.vue.js.map +1 -0
- package/lib/components/appForm/index.js +14 -0
- package/lib/components/appForm/index.js.map +1 -0
- package/lib/components/appForm/js/index.js +93 -0
- package/lib/components/appForm/js/index.js.map +1 -0
- package/lib/components/appForm/js/useAppForm.js +152 -0
- package/lib/components/appForm/js/useAppForm.js.map +1 -0
- package/lib/components/appForm/style/appForm.scss +16 -0
- package/lib/components/appOrgCascader/appOrgCascader.vue.js +233 -0
- package/lib/components/appOrgCascader/appOrgCascader.vue.js.map +1 -0
- package/lib/components/appOrgCascader/index.js +12 -0
- package/lib/components/appOrgCascader/index.js.map +1 -0
- package/lib/components/appOrgCascader/style/appOrgCascader.scss +0 -0
- package/lib/components/appSearch/appSearch.vue.js +412 -0
- package/lib/components/appSearch/appSearch.vue.js.map +1 -0
- package/lib/components/appSearch/index.js +14 -0
- package/lib/components/appSearch/index.js.map +1 -0
- package/lib/components/appSearch/js/index.js +122 -0
- package/lib/components/appSearch/js/index.js.map +1 -0
- package/lib/components/appSearch/js/useAppSearch.js +181 -0
- package/lib/components/appSearch/js/useAppSearch.js.map +1 -0
- package/lib/components/appSearch/style/appSearch.scss +53 -0
- package/lib/components/appTable/appTable.vue.js +582 -0
- package/lib/components/appTable/appTable.vue.js.map +1 -0
- package/lib/components/appTable/cpns/columnSelect.vue.js +418 -0
- package/lib/components/appTable/cpns/columnSelect.vue.js.map +1 -0
- package/lib/components/appTable/index.js +14 -0
- package/lib/components/appTable/index.js.map +1 -0
- package/lib/components/appTable/js/index.js +311 -0
- package/lib/components/appTable/js/index.js.map +1 -0
- package/lib/components/appTable/js/search.js +131 -0
- package/lib/components/appTable/js/search.js.map +1 -0
- package/lib/components/appTable/js/useAppTable.js +65 -0
- package/lib/components/appTable/js/useAppTable.js.map +1 -0
- package/lib/components/appTable/style/appTable.scss +15 -0
- package/lib/components/appTooltip/appTooltip.vue.js +98 -0
- package/lib/components/appTooltip/appTooltip.vue.js.map +1 -0
- package/lib/components/appTooltip/index.js +12 -0
- package/lib/components/appTooltip/index.js.map +1 -0
- package/lib/components/appTooltip/style/appTooltip.scss +0 -0
- package/lib/components/index.js +29 -0
- package/lib/components/index.js.map +1 -0
- package/lib/components/svgIcon/iconBox.vue.js +103 -0
- package/lib/components/svgIcon/iconBox.vue.js.map +1 -0
- package/lib/components/svgIcon/index.js +15 -0
- package/lib/components/svgIcon/index.js.map +1 -0
- package/lib/components/svgIcon/style/iconBox.scss +13 -0
- package/lib/components/svgIcon/style/svgIcon.scss +12 -0
- package/lib/components/svgIcon/svgIcon.vue.js +51 -0
- package/lib/components/svgIcon/svgIcon.vue.js.map +1 -0
- package/lib/config/index.js +3 -0
- package/lib/config/index.js.map +1 -0
- package/lib/constants/index.js +6 -0
- package/lib/constants/index.js.map +1 -0
- package/lib/constants/keys.js +3 -0
- package/lib/constants/keys.js.map +1 -0
- package/lib/hooks/index.js +21 -0
- package/lib/hooks/index.js.map +1 -0
- package/lib/hooks/useApi.js +13 -0
- package/lib/hooks/useApi.js.map +1 -0
- package/lib/hooks/useGlobalConfig.js +59 -0
- package/lib/hooks/useGlobalConfig.js.map +1 -0
- package/lib/hooks/useLocale.js +41 -0
- package/lib/hooks/useLocale.js.map +1 -0
- package/lib/hooks/useMixins.js +21 -0
- package/lib/hooks/useMixins.js.map +1 -0
- package/lib/index.js +85 -0
- package/lib/index.js.map +1 -0
- package/lib/locale/en_US.js +71 -0
- package/lib/locale/en_US.js.map +1 -0
- package/lib/locale/index.js +10 -0
- package/lib/locale/index.js.map +1 -0
- package/lib/locale/zh_CN.js +71 -0
- package/lib/locale/zh_CN.js.map +1 -0
- package/lib/make-installer.js +33 -0
- package/lib/make-installer.js.map +1 -0
- package/lib/store/index.js +10 -0
- package/lib/store/index.js.map +1 -0
- package/lib/store/maintain.js +92 -0
- package/lib/store/maintain.js.map +1 -0
- package/lib/style/index.scss +46 -0
- package/lib/style/tailwind.scss +3 -0
- package/lib/style/theme.scss +123 -0
- package/lib/utils/adaptive.js +35 -0
- package/lib/utils/adaptive.js.map +1 -0
- package/lib/utils/bus.js +8 -0
- package/lib/utils/bus.js.map +1 -0
- package/lib/utils/crypto.js +25 -0
- package/lib/utils/crypto.js.map +1 -0
- package/lib/utils/date.js +27 -0
- package/lib/utils/date.js.map +1 -0
- package/lib/utils/handler.js +89 -0
- package/lib/utils/handler.js.map +1 -0
- package/lib/utils/index.js +38 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/is.js +32 -0
- package/lib/utils/is.js.map +1 -0
- package/lib/version.js +6 -0
- package/lib/version.js.map +1 -0
- package/package.json +102 -0
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
import { defineComponent, useTemplateRef, computed, unref, onUnmounted, openBlock, createElementBlock, normalizeClass, createElementVNode, createVNode, withCtx, toDisplayString, Fragment, createCommentVNode, normalizeStyle, mergeProps, renderList, createBlock, renderSlot, withKeys } from 'vue';
|
|
2
|
+
import { ElIcon, ElForm, ElFormItem, ElInput, ElSelect } from 'element-plus';
|
|
3
|
+
import { Filter, ArrowDown } from '@element-plus/icons-vue';
|
|
4
|
+
import _sfc_main$1 from '../appDatePicker/appDatePicker.vue.mjs';
|
|
5
|
+
import { useShrink, isEmptyValue, columnShowHandler, columnItemStyle, columnItemInputStyle, isDisabled, timeRangeHandler } from './js/index.mjs';
|
|
6
|
+
import { resetAppSearchValue } from './js/useAppSearch.mjs';
|
|
7
|
+
import { useLocale } from '../../hooks/useLocale.mjs';
|
|
8
|
+
import { isArray } from '../../utils/is.mjs';
|
|
9
|
+
|
|
10
|
+
import "./style/appSearch.scss";
|
|
11
|
+
|
|
12
|
+
const __default__ = defineComponent({
|
|
13
|
+
name: "AppSearch"
|
|
14
|
+
});
|
|
15
|
+
const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
|
|
16
|
+
props: {
|
|
17
|
+
model: {
|
|
18
|
+
type: Object,
|
|
19
|
+
default: () => ({})
|
|
20
|
+
},
|
|
21
|
+
columns: {
|
|
22
|
+
type: Array,
|
|
23
|
+
default: () => []
|
|
24
|
+
},
|
|
25
|
+
loading: {
|
|
26
|
+
type: Boolean,
|
|
27
|
+
default: false
|
|
28
|
+
},
|
|
29
|
+
size: {
|
|
30
|
+
type: String,
|
|
31
|
+
default: "default"
|
|
32
|
+
// '' | 'large' | 'default' | 'small'
|
|
33
|
+
},
|
|
34
|
+
hidden: {
|
|
35
|
+
type: Boolean,
|
|
36
|
+
default: false
|
|
37
|
+
},
|
|
38
|
+
class: {
|
|
39
|
+
type: [String, Array, Object]
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
emits: ["search"],
|
|
43
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
44
|
+
const props = __props;
|
|
45
|
+
const emits = __emit;
|
|
46
|
+
const { t } = useLocale();
|
|
47
|
+
const formItemWrapper = useTemplateRef("formItemWrapper");
|
|
48
|
+
const { isExpand, containerHeight, switchShrink, shrinkDestroy } = useShrink(
|
|
49
|
+
props,
|
|
50
|
+
formItemWrapper
|
|
51
|
+
);
|
|
52
|
+
const formColumnMap = computed(() => {
|
|
53
|
+
return (props.columns || []).reduce((map, column) => {
|
|
54
|
+
if (isArray(column.field)) {
|
|
55
|
+
column.field.forEach((key) => map.set(key, column));
|
|
56
|
+
} else {
|
|
57
|
+
map.set(column.field, column);
|
|
58
|
+
}
|
|
59
|
+
return map;
|
|
60
|
+
}, /* @__PURE__ */ new Map());
|
|
61
|
+
});
|
|
62
|
+
const filterCount = computed(() => {
|
|
63
|
+
const defaultValue = resetAppSearchValue(props.columns);
|
|
64
|
+
const keys = Object.keys(defaultValue);
|
|
65
|
+
if (!(keys == null ? void 0 : keys.length)) return 0;
|
|
66
|
+
const keySet = keys.reduce((keySet2, key) => {
|
|
67
|
+
if (isEmptyValue(defaultValue[key]) ? !isEmptyValue(props.model[key]) : defaultValue[key] !== props.model[key]) {
|
|
68
|
+
if (unref(formColumnMap).has(key)) {
|
|
69
|
+
keySet2.add(unref(formColumnMap).get(key).key);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return keySet2;
|
|
73
|
+
}, /* @__PURE__ */ new Set());
|
|
74
|
+
return keySet.size;
|
|
75
|
+
});
|
|
76
|
+
const appClass = computed(() => {
|
|
77
|
+
return [
|
|
78
|
+
props.class,
|
|
79
|
+
{ "app-search-hidden": props.hidden }
|
|
80
|
+
].filter(Boolean);
|
|
81
|
+
});
|
|
82
|
+
const containerStyle = computed(() => {
|
|
83
|
+
const style = {};
|
|
84
|
+
if (props.hidden) {
|
|
85
|
+
style.height = `0px`;
|
|
86
|
+
} else if (unref(containerHeight)) {
|
|
87
|
+
style.height = `${unref(containerHeight)}px`;
|
|
88
|
+
}
|
|
89
|
+
return style;
|
|
90
|
+
});
|
|
91
|
+
onUnmounted(() => {
|
|
92
|
+
shrinkDestroy();
|
|
93
|
+
});
|
|
94
|
+
function onChangeHandler(value, column) {
|
|
95
|
+
var _a;
|
|
96
|
+
if ((_a = column.attrs) == null ? void 0 : _a.onChange) {
|
|
97
|
+
column.attrs.onChange(value);
|
|
98
|
+
}
|
|
99
|
+
emits("search");
|
|
100
|
+
}
|
|
101
|
+
function onKeydownEnterHander(e) {
|
|
102
|
+
emits("search");
|
|
103
|
+
}
|
|
104
|
+
function resetFields(fields) {
|
|
105
|
+
let columns = props.columns || [];
|
|
106
|
+
if (fields && (fields == null ? void 0 : fields.length)) {
|
|
107
|
+
columns = fields.map((key) => formColumnMap.get(key)).filter(Boolean);
|
|
108
|
+
}
|
|
109
|
+
resetAppSearchValue(columns, props.model);
|
|
110
|
+
}
|
|
111
|
+
function onResetHandler() {
|
|
112
|
+
resetFields();
|
|
113
|
+
emits("search");
|
|
114
|
+
}
|
|
115
|
+
function onTimeRangeClickHandler(column, options) {
|
|
116
|
+
const { field } = column;
|
|
117
|
+
const dateValue = timeRangeHandler(column, options);
|
|
118
|
+
if (isArray(field)) {
|
|
119
|
+
props.model[field[0]] = dateValue[0];
|
|
120
|
+
props.model[field[1]] = dateValue[1];
|
|
121
|
+
} else {
|
|
122
|
+
props.model[field] = dateValue;
|
|
123
|
+
}
|
|
124
|
+
emits("search");
|
|
125
|
+
}
|
|
126
|
+
__expose({
|
|
127
|
+
resetFields
|
|
128
|
+
});
|
|
129
|
+
return (_ctx, _cache) => {
|
|
130
|
+
return openBlock(), createElementBlock(
|
|
131
|
+
"div",
|
|
132
|
+
{
|
|
133
|
+
class: normalizeClass(["app-search", appClass.value])
|
|
134
|
+
},
|
|
135
|
+
[
|
|
136
|
+
createElementVNode(
|
|
137
|
+
"div",
|
|
138
|
+
{
|
|
139
|
+
class: normalizeClass(["app-search-header", { "app-search-header-hidden": __props.hidden }])
|
|
140
|
+
},
|
|
141
|
+
[
|
|
142
|
+
createElementVNode("div", { class: "flex items-center gap-2" }, [
|
|
143
|
+
createVNode(unref(ElIcon), { size: "12" }, {
|
|
144
|
+
default: withCtx(() => [
|
|
145
|
+
createVNode(unref(Filter))
|
|
146
|
+
]),
|
|
147
|
+
_: 1
|
|
148
|
+
/* STABLE */
|
|
149
|
+
}),
|
|
150
|
+
createElementVNode(
|
|
151
|
+
"span",
|
|
152
|
+
null,
|
|
153
|
+
toDisplayString(unref(t)("hy.filter")),
|
|
154
|
+
1
|
|
155
|
+
/* TEXT */
|
|
156
|
+
),
|
|
157
|
+
filterCount.value > 0 ? (openBlock(), createElementBlock(
|
|
158
|
+
Fragment,
|
|
159
|
+
{ key: 0 },
|
|
160
|
+
[
|
|
161
|
+
createElementVNode(
|
|
162
|
+
"span",
|
|
163
|
+
{ class: "bg-theme02 text-theme font-bold leading-4 px-[6px]" },
|
|
164
|
+
toDisplayString(filterCount.value),
|
|
165
|
+
1
|
|
166
|
+
/* TEXT */
|
|
167
|
+
),
|
|
168
|
+
createElementVNode(
|
|
169
|
+
"span",
|
|
170
|
+
{
|
|
171
|
+
class: "text-auxiliary cursor-pointer",
|
|
172
|
+
onClick: onResetHandler
|
|
173
|
+
},
|
|
174
|
+
toDisplayString(unref(t)("hy.reset")),
|
|
175
|
+
1
|
|
176
|
+
/* TEXT */
|
|
177
|
+
)
|
|
178
|
+
],
|
|
179
|
+
64
|
|
180
|
+
/* STABLE_FRAGMENT */
|
|
181
|
+
)) : createCommentVNode("v-if", true)
|
|
182
|
+
]),
|
|
183
|
+
createElementVNode("div", {
|
|
184
|
+
class: "ml-auto flex items-center gap-4 cursor-pointer select-none",
|
|
185
|
+
onClick: unref(switchShrink)
|
|
186
|
+
}, [
|
|
187
|
+
createElementVNode(
|
|
188
|
+
"span",
|
|
189
|
+
{ class: "text-auxiliary" },
|
|
190
|
+
toDisplayString(unref(isExpand) ? unref(t)("hy.packUp") : unref(t)("hy.expand")),
|
|
191
|
+
1
|
|
192
|
+
/* TEXT */
|
|
193
|
+
),
|
|
194
|
+
createVNode(unref(ElIcon), {
|
|
195
|
+
size: "12",
|
|
196
|
+
class: "transition-all duration-300",
|
|
197
|
+
style: normalizeStyle({ transform: `rotateX(${unref(isExpand) ? -180 : 0}deg)` })
|
|
198
|
+
}, {
|
|
199
|
+
default: withCtx(() => [
|
|
200
|
+
createVNode(unref(ArrowDown))
|
|
201
|
+
]),
|
|
202
|
+
_: 1
|
|
203
|
+
/* STABLE */
|
|
204
|
+
}, 8, ["style"])
|
|
205
|
+
], 8, ["onClick"])
|
|
206
|
+
],
|
|
207
|
+
2
|
|
208
|
+
/* CLASS */
|
|
209
|
+
),
|
|
210
|
+
createVNode(unref(ElForm), mergeProps({
|
|
211
|
+
model: __props.model,
|
|
212
|
+
"label-position": "top",
|
|
213
|
+
size: __props.size,
|
|
214
|
+
class: "app-search-form"
|
|
215
|
+
}, _ctx.$attrs, { style: containerStyle.value }), {
|
|
216
|
+
default: withCtx(() => [
|
|
217
|
+
createElementVNode(
|
|
218
|
+
"div",
|
|
219
|
+
{
|
|
220
|
+
ref_key: "formItemWrapper",
|
|
221
|
+
ref: formItemWrapper,
|
|
222
|
+
class: "app-search-container"
|
|
223
|
+
},
|
|
224
|
+
[
|
|
225
|
+
createCommentVNode(" \u8868\u5355\u9879 "),
|
|
226
|
+
(openBlock(true), createElementBlock(
|
|
227
|
+
Fragment,
|
|
228
|
+
null,
|
|
229
|
+
renderList(__props.columns, (column) => {
|
|
230
|
+
return openBlock(), createElementBlock(
|
|
231
|
+
Fragment,
|
|
232
|
+
{
|
|
233
|
+
key: column.key
|
|
234
|
+
},
|
|
235
|
+
[
|
|
236
|
+
unref(columnShowHandler)(props, column) ? (openBlock(), createBlock(unref(ElFormItem), {
|
|
237
|
+
key: 0,
|
|
238
|
+
prop: unref(isArray)(column.field) ? column.field[0] : column.field
|
|
239
|
+
}, {
|
|
240
|
+
default: withCtx(() => {
|
|
241
|
+
var _a, _b, _c;
|
|
242
|
+
return [
|
|
243
|
+
createElementVNode("div", { class: "flex bg-backgroundv2 rounded" }, [
|
|
244
|
+
createElementVNode(
|
|
245
|
+
"div",
|
|
246
|
+
{
|
|
247
|
+
class: "flex",
|
|
248
|
+
style: normalizeStyle(unref(columnItemStyle)(props, column))
|
|
249
|
+
},
|
|
250
|
+
[
|
|
251
|
+
createCommentVNode(" \u8868\u5355label "),
|
|
252
|
+
createElementVNode("div", { class: "flex items-center text-auxiliary text-xs px-3 whitespace-nowrap border-r border-border" }, [
|
|
253
|
+
column.labelSlot && _ctx.$slots[column.labelSlot] ? renderSlot(_ctx.$slots, column.labelSlot, {
|
|
254
|
+
key: 0,
|
|
255
|
+
column
|
|
256
|
+
}) : (openBlock(), createElementBlock(
|
|
257
|
+
"span",
|
|
258
|
+
{ key: 1 },
|
|
259
|
+
toDisplayString(column.label),
|
|
260
|
+
1
|
|
261
|
+
/* TEXT */
|
|
262
|
+
))
|
|
263
|
+
]),
|
|
264
|
+
createCommentVNode(" \u8868\u5355\u7EC4\u4EF6 "),
|
|
265
|
+
createElementVNode(
|
|
266
|
+
"div",
|
|
267
|
+
{
|
|
268
|
+
style: normalizeStyle(unref(columnItemInputStyle)(props, column))
|
|
269
|
+
},
|
|
270
|
+
[
|
|
271
|
+
createCommentVNode(" \u81EA\u5B9A\u4E49\u5177\u540D\u63D2\u69FD "),
|
|
272
|
+
column.slot ? renderSlot(_ctx.$slots, column.slot, {
|
|
273
|
+
key: 0,
|
|
274
|
+
column
|
|
275
|
+
}) : column.type === "input" ? (openBlock(), createElementBlock(
|
|
276
|
+
Fragment,
|
|
277
|
+
{ key: 1 },
|
|
278
|
+
[
|
|
279
|
+
createCommentVNode(" \u8F93\u5165\u6846 "),
|
|
280
|
+
createVNode(unref(ElInput), mergeProps({
|
|
281
|
+
modelValue: __props.model[column.field],
|
|
282
|
+
"onUpdate:modelValue": ($event) => __props.model[column.field] = $event
|
|
283
|
+
}, { ref_for: true }, column.attrs, {
|
|
284
|
+
disabled: unref(isDisabled)(props, column),
|
|
285
|
+
onKeydown: withKeys(($event) => onKeydownEnterHander(), ["enter"]),
|
|
286
|
+
onChange: ($event) => onChangeHandler($event, column)
|
|
287
|
+
}), null, 16, ["modelValue", "onUpdate:modelValue", "disabled", "onKeydown", "onChange"])
|
|
288
|
+
],
|
|
289
|
+
2112
|
|
290
|
+
/* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
|
|
291
|
+
)) : column.type === "select" ? (openBlock(), createElementBlock(
|
|
292
|
+
Fragment,
|
|
293
|
+
{ key: 2 },
|
|
294
|
+
[
|
|
295
|
+
createCommentVNode(" \u9009\u62E9\u6846 "),
|
|
296
|
+
createVNode(unref(ElSelect), mergeProps({
|
|
297
|
+
modelValue: __props.model[column.field],
|
|
298
|
+
"onUpdate:modelValue": ($event) => __props.model[column.field] = $event
|
|
299
|
+
}, { ref_for: true }, column.attrs, {
|
|
300
|
+
disabled: unref(isDisabled)(props, column),
|
|
301
|
+
onChange: ($event) => onChangeHandler($event, column)
|
|
302
|
+
}), null, 16, ["modelValue", "onUpdate:modelValue", "disabled", "onChange"])
|
|
303
|
+
],
|
|
304
|
+
2112
|
|
305
|
+
/* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
|
|
306
|
+
)) : column.type === "date-picker" ? (openBlock(), createElementBlock(
|
|
307
|
+
Fragment,
|
|
308
|
+
{ key: 3 },
|
|
309
|
+
[
|
|
310
|
+
createCommentVNode(" \u65E5\u671F\u9009\u62E9\u6846 "),
|
|
311
|
+
[
|
|
312
|
+
"datetimerange",
|
|
313
|
+
"daterange",
|
|
314
|
+
"monthrange",
|
|
315
|
+
"yearrange"
|
|
316
|
+
].includes((_a = column.attrs) == null ? void 0 : _a.type) && unref(isArray)(column.field) ? (openBlock(), createBlock(_sfc_main$1, mergeProps({
|
|
317
|
+
key: 0,
|
|
318
|
+
start: __props.model[column.field[0]],
|
|
319
|
+
"onUpdate:start": ($event) => __props.model[column.field[0]] = $event,
|
|
320
|
+
end: __props.model[column.field[1]],
|
|
321
|
+
"onUpdate:end": ($event) => __props.model[column.field[1]] = $event,
|
|
322
|
+
"is-range": true,
|
|
323
|
+
style: { "width": "100%" }
|
|
324
|
+
}, { ref_for: true }, column.attrs, {
|
|
325
|
+
disabled: unref(isDisabled)(props, column),
|
|
326
|
+
timeRangeFill: column.timeRangeFill,
|
|
327
|
+
onChange: ($event) => onChangeHandler($event, column)
|
|
328
|
+
}), null, 16, ["start", "onUpdate:start", "end", "onUpdate:end", "disabled", "timeRangeFill", "onChange"])) : (openBlock(), createBlock(_sfc_main$1, mergeProps({
|
|
329
|
+
key: 1,
|
|
330
|
+
modelValue: __props.model[column.field],
|
|
331
|
+
"onUpdate:modelValue": ($event) => __props.model[column.field] = $event,
|
|
332
|
+
"is-range": false,
|
|
333
|
+
style: { "width": "100%" }
|
|
334
|
+
}, { ref_for: true }, column.attrs, {
|
|
335
|
+
disabled: unref(isDisabled)(props, column),
|
|
336
|
+
timeRangeFill: column.timeRangeFill,
|
|
337
|
+
onChange: ($event) => onChangeHandler($event, column)
|
|
338
|
+
}), null, 16, ["modelValue", "onUpdate:modelValue", "disabled", "timeRangeFill", "onChange"]))
|
|
339
|
+
],
|
|
340
|
+
64
|
|
341
|
+
/* STABLE_FRAGMENT */
|
|
342
|
+
)) : createCommentVNode("v-if", true)
|
|
343
|
+
],
|
|
344
|
+
4
|
|
345
|
+
/* STYLE */
|
|
346
|
+
)
|
|
347
|
+
],
|
|
348
|
+
4
|
|
349
|
+
/* STYLE */
|
|
350
|
+
),
|
|
351
|
+
column.type === "date-picker" && ["daterange", "datetimerange"].includes((_b = column.attrs) == null ? void 0 : _b.type) && ((_c = column.timeRangeOptions) == null ? void 0 : _c.length) ? (openBlock(), createElementBlock("div", {
|
|
352
|
+
key: 0,
|
|
353
|
+
class: "flex text-main"
|
|
354
|
+
}, [
|
|
355
|
+
(openBlock(true), createElementBlock(
|
|
356
|
+
Fragment,
|
|
357
|
+
null,
|
|
358
|
+
renderList(column.timeRangeOptions, (item, index) => {
|
|
359
|
+
return openBlock(), createElementBlock("div", {
|
|
360
|
+
key: index,
|
|
361
|
+
class: "border-l border-border px-[10px] cursor-pointer",
|
|
362
|
+
onClick: ($event) => onTimeRangeClickHandler(column, item)
|
|
363
|
+
}, [
|
|
364
|
+
createElementVNode(
|
|
365
|
+
"span",
|
|
366
|
+
null,
|
|
367
|
+
toDisplayString(item.label),
|
|
368
|
+
1
|
|
369
|
+
/* TEXT */
|
|
370
|
+
)
|
|
371
|
+
], 8, ["onClick"]);
|
|
372
|
+
}),
|
|
373
|
+
128
|
|
374
|
+
/* KEYED_FRAGMENT */
|
|
375
|
+
))
|
|
376
|
+
])) : createCommentVNode("v-if", true)
|
|
377
|
+
])
|
|
378
|
+
];
|
|
379
|
+
}),
|
|
380
|
+
_: 2
|
|
381
|
+
/* DYNAMIC */
|
|
382
|
+
}, 1032, ["prop"])) : createCommentVNode("v-if", true)
|
|
383
|
+
],
|
|
384
|
+
64
|
|
385
|
+
/* STABLE_FRAGMENT */
|
|
386
|
+
);
|
|
387
|
+
}),
|
|
388
|
+
128
|
|
389
|
+
/* KEYED_FRAGMENT */
|
|
390
|
+
))
|
|
391
|
+
],
|
|
392
|
+
512
|
|
393
|
+
/* NEED_PATCH */
|
|
394
|
+
)
|
|
395
|
+
]),
|
|
396
|
+
_: 3
|
|
397
|
+
/* FORWARDED */
|
|
398
|
+
}, 16, ["model", "size", "style"])
|
|
399
|
+
],
|
|
400
|
+
2
|
|
401
|
+
/* CLASS */
|
|
402
|
+
);
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
});
|
|
406
|
+
|
|
407
|
+
export { _sfc_main as default };
|
|
408
|
+
//# sourceMappingURL=appSearch.vue.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appSearch.vue.mjs","sources":["../../../packages/components/appSearch/appSearch.vue"],"sourcesContent":["<script setup>\nimport { computed, onUnmounted, unref, useTemplateRef } from 'vue'\nimport {\n ElForm,\n ElFormItem,\n ElInput,\n ElSelect,\n ElIcon,\n} from 'element-plus'\nimport { ArrowDown, Filter } from '@element-plus/icons-vue'\n// import SvgIcon from '../svgIcon'\nimport { useLocale } from '@hy-dispatch-ui-v3/hooks'\nimport { isArray } from '@hy-dispatch-ui-v3/utils'\nimport appDatePicker from '../appDatePicker/appDatePicker.vue'\nimport {\n useShrink,\n columnItemStyle,\n columnItemInputStyle,\n columnShowHandler,\n isDisabled,\n isEmptyValue,\n timeRangeHandler,\n} from './js/index.js'\nimport { resetAppSearchValue } from './js/useAppSearch.js'\nimport './style/appSearch.scss'\n\ndefineOptions({\n name: 'AppSearch',\n})\n\nconst props = defineProps({\n model: {\n type: Object,\n default: () => ({}),\n },\n columns: {\n type: Array,\n default: () => [],\n },\n loading: {\n type: Boolean,\n default: false,\n },\n size: {\n type: String,\n default: 'default', // '' | 'large' | 'default' | 'small'\n },\n hidden: {\n type: Boolean,\n default: false\n },\n class: {\n type: [String, Array, Object],\n },\n})\nconst emits = defineEmits(['search'])\n\nconst { t } = useLocale()\nconst formItemWrapper = useTemplateRef('formItemWrapper')\nconst { isExpand, containerHeight, switchShrink, shrinkDestroy } = useShrink(\n props,\n formItemWrapper\n)\nconst formColumnMap = computed(() => {\n return (props.columns || []).reduce((map, column) => {\n if (isArray(column.field)) {\n column.field.forEach((key) => map.set(key, column))\n } else {\n map.set(column.field, column)\n }\n return map\n }, new Map())\n})\nconst filterCount = computed(() => {\n const defaultValue = resetAppSearchValue(props.columns)\n const keys = Object.keys(defaultValue)\n if (!keys?.length) return 0\n const keySet = keys.reduce((keySet, key) => {\n if (\n isEmptyValue(defaultValue[key])\n ? !isEmptyValue(props.model[key])\n : defaultValue[key] !== props.model[key]\n ) {\n if (unref(formColumnMap).has(key)) {\n keySet.add(unref(formColumnMap).get(key).key)\n }\n }\n return keySet\n }, new Set())\n return keySet.size\n})\nconst appClass = computed(() => {\n return [\n props.class,\n { 'app-search-hidden': props.hidden },\n ].filter(Boolean)\n})\nconst containerStyle = computed(() => {\n const style = {}\n if (props.hidden) {\n style.height = `0px`\n } else if (unref(containerHeight)) {\n style.height = `${unref(containerHeight)}px`\n }\n return style\n})\n\nonUnmounted(() => {\n shrinkDestroy()\n})\n\nfunction onChangeHandler(value, column) {\n if (column.attrs?.onChange) {\n column.attrs.onChange(value)\n }\n emits('search')\n}\nfunction onKeydownEnterHander(e) {\n emits('search')\n}\nfunction resetFields(fields) {\n let columns = props.columns || []\n if (fields && fields?.length) {\n columns = fields.map((key) => formColumnMap.get(key)).filter(Boolean)\n }\n resetAppSearchValue(columns, props.model)\n}\nfunction onResetHandler() {\n resetFields()\n emits('search')\n}\nfunction onTimeRangeClickHandler(column, options) {\n const { field } = column\n const dateValue = timeRangeHandler(column, options)\n if (isArray(field)) {\n props.model[field[0]] = dateValue[0]\n props.model[field[1]] = dateValue[1]\n } else {\n props.model[field] = dateValue\n }\n emits('search')\n}\n\ndefineExpose({\n resetFields,\n})\n</script>\n\n<template>\n <div class=\"app-search\" :class=\"appClass\">\n <div\n class=\"app-search-header\"\n :class=\"{ 'app-search-header-hidden': hidden }\"\n >\n <div class=\"flex items-center gap-2\">\n <el-icon size=\"12\"><Filter /></el-icon>\n <span>{{ t('hy.filter') }}</span>\n <template v-if=\"filterCount > 0\">\n <span class=\"bg-theme02 text-theme font-bold leading-4 px-[6px]\">{{\n filterCount\n }}</span>\n <span class=\"text-auxiliary cursor-pointer\" @click=\"onResetHandler\">{{\n t('hy.reset')\n }}</span>\n </template>\n </div>\n <div\n class=\"ml-auto flex items-center gap-4 cursor-pointer select-none\"\n @click=\"switchShrink\"\n >\n <span class=\"text-auxiliary\">{{\n isExpand ? t('hy.packUp') : t('hy.expand')\n }}</span>\n <el-icon\n size=\"12\"\n class=\"transition-all duration-300\"\n :style=\"{ transform: `rotateX(${isExpand ? -180 : 0}deg)` }\"\n ><ArrowDown\n /></el-icon>\n </div>\n </div>\n <el-form\n :model=\"model\"\n label-position=\"top\"\n :size=\"size\"\n class=\"app-search-form\"\n v-bind=\"$attrs\"\n :style=\"containerStyle\"\n >\n <div ref=\"formItemWrapper\" class=\"app-search-container\">\n <!-- 表单项 -->\n <template v-for=\"column in columns\" :key=\"column.key\">\n <el-form-item\n v-if=\"columnShowHandler(props, column)\"\n :prop=\"isArray(column.field) ? column.field[0] : column.field\"\n >\n <div class=\"flex bg-backgroundv2 rounded\">\n <div class=\"flex\" :style=\"columnItemStyle(props, column)\">\n <!-- 表单label -->\n <div\n class=\"flex items-center text-auxiliary text-xs px-3 whitespace-nowrap border-r border-border\"\n >\n <slot\n v-if=\"column.labelSlot && $slots[column.labelSlot]\"\n :name=\"column.labelSlot\"\n :column=\"column\"\n ></slot>\n <span v-else>{{ column.label }}</span>\n </div>\n <!-- 表单组件 -->\n <div :style=\"columnItemInputStyle(props, column)\">\n <!-- 自定义具名插槽 -->\n <slot\n v-if=\"column.slot\"\n :name=\"column.slot\"\n :column=\"column\"\n />\n <!-- 输入框 -->\n <el-input\n v-else-if=\"column.type === 'input'\"\n v-model=\"model[column.field]\"\n v-bind=\"column.attrs\"\n :disabled=\"isDisabled(props, column)\"\n @keydown.enter=\"onKeydownEnterHander($event, column)\"\n @change=\"onChangeHandler($event, column)\"\n ></el-input>\n <!-- 选择框 -->\n <el-select\n v-else-if=\"column.type === 'select'\"\n v-model=\"model[column.field]\"\n v-bind=\"column.attrs\"\n :disabled=\"isDisabled(props, column)\"\n @change=\"onChangeHandler($event, column)\"\n ></el-select>\n <!-- 日期选择框 -->\n <template v-else-if=\"column.type === 'date-picker'\">\n <app-date-picker\n v-if=\"\n [\n 'datetimerange',\n 'daterange',\n 'monthrange',\n 'yearrange',\n ].includes(column.attrs?.type) && isArray(column.field)\n \"\n v-model:start=\"model[column.field[0]]\"\n v-model:end=\"model[column.field[1]]\"\n :is-range=\"true\"\n style=\"width: 100%\"\n v-bind=\"column.attrs\"\n :disabled=\"isDisabled(props, column)\"\n :timeRangeFill=\"column.timeRangeFill\"\n @change=\"onChangeHandler($event, column)\"\n ></app-date-picker>\n <app-date-picker\n v-else\n v-model=\"model[column.field]\"\n :is-range=\"false\"\n style=\"width: 100%\"\n v-bind=\"column.attrs\"\n :disabled=\"isDisabled(props, column)\"\n :timeRangeFill=\"column.timeRangeFill\"\n @change=\"onChangeHandler($event, column)\"\n ></app-date-picker>\n </template>\n </div>\n </div>\n <div\n v-if=\"\n column.type === 'date-picker' &&\n ['daterange', 'datetimerange'].includes(column.attrs?.type) &&\n column.timeRangeOptions?.length\n \"\n class=\"flex text-main\"\n >\n <div\n v-for=\"(item, index) in column.timeRangeOptions\"\n :key=\"index\"\n class=\"border-l border-border px-[10px] cursor-pointer\"\n @click=\"onTimeRangeClickHandler(column, item)\"\n >\n <span>{{ item.label }}</span>\n </div>\n </div>\n </div>\n </el-form-item>\n </template>\n </div>\n </el-form>\n </div>\n</template>\n"],"names":["__MACROS_defineComponent","_openBlock","_createElementBlock","_normalizeClass","_createElementVNode"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import _sfc_main from './appSearch.vue.mjs';
|
|
2
|
+
export { useAppSearch } from './js/useAppSearch.mjs';
|
|
3
|
+
import { withInstall } from '../../utils/handler.mjs';
|
|
4
|
+
|
|
5
|
+
const AppSearch = withInstall(_sfc_main);
|
|
6
|
+
|
|
7
|
+
export { AppSearch, AppSearch as default };
|
|
8
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../packages/components/appSearch/index.js"],"sourcesContent":["import componnet from './appSearch.vue'\nimport { withInstall } from '@hy-dispatch-ui-v3/utils'\n\nconst AppSearch = withInstall(componnet)\n\nexport { AppSearch }\n\nexport { useAppSearch } from './js/useAppSearch.js'\n\nexport default AppSearch\n"],"names":["componnet"],"mappings":";;;;AAEK,MAAC,SAAS,GAAG,WAAW,CAACA,SAAS;;;;"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import dayjs from 'dayjs';
|
|
2
|
+
import { ref, watch, nextTick, unref } from 'vue';
|
|
3
|
+
import { useMaintainStore } from '../../../store/maintain.mjs';
|
|
4
|
+
import { isEmpty, isArray, isBoolean, isFunction, isNumber, isString } from '../../../utils/is.mjs';
|
|
5
|
+
|
|
6
|
+
function columnItemStyle(props, column) {
|
|
7
|
+
const { width } = column;
|
|
8
|
+
const style = {};
|
|
9
|
+
if (isNumber(width)) {
|
|
10
|
+
style.width = `${width}px`;
|
|
11
|
+
} else if (isString(width)) {
|
|
12
|
+
style.width = /(px|em|rem|vw|vh)$/.test(width) ? width : `${width}px`;
|
|
13
|
+
}
|
|
14
|
+
return style;
|
|
15
|
+
}
|
|
16
|
+
function columnItemInputStyle(props, column) {
|
|
17
|
+
const { width, inputWidth } = column;
|
|
18
|
+
const style = {};
|
|
19
|
+
if (!width && inputWidth) {
|
|
20
|
+
if (isNumber(inputWidth)) {
|
|
21
|
+
style.width = `${inputWidth}px`;
|
|
22
|
+
} else if (isString(inputWidth)) {
|
|
23
|
+
style.width = /(px|em|rem|vw|vh)$/.test(inputWidth) ? inputWidth : `${inputWidth}px`;
|
|
24
|
+
}
|
|
25
|
+
} else {
|
|
26
|
+
style.width = "0px";
|
|
27
|
+
style.flex = "1 1 0%";
|
|
28
|
+
}
|
|
29
|
+
return style;
|
|
30
|
+
}
|
|
31
|
+
function columnShowHandler(props, column) {
|
|
32
|
+
const show = unref(column.show);
|
|
33
|
+
if (isBoolean(show)) return show;
|
|
34
|
+
if (isFunction(show)) return show(column, props.model);
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
function isDisabled(props, column) {
|
|
38
|
+
var _a;
|
|
39
|
+
return !!(props.loading || ((_a = column.attrs) == null ? void 0 : _a.disabled));
|
|
40
|
+
}
|
|
41
|
+
function isEmptyValue(e) {
|
|
42
|
+
return isEmpty(e) || isArray(e) && !e.length;
|
|
43
|
+
}
|
|
44
|
+
function useShrink(props, templateRef) {
|
|
45
|
+
const isExpand = ref(false);
|
|
46
|
+
const containerHeight = ref(getContainerPickUpHeight());
|
|
47
|
+
const maintainStore = useMaintainStore();
|
|
48
|
+
const resizeExpandKey = /* @__PURE__ */ Symbol("appSearchExpand");
|
|
49
|
+
function getContainerPickUpHeight() {
|
|
50
|
+
switch (props.size) {
|
|
51
|
+
case "large":
|
|
52
|
+
return 41;
|
|
53
|
+
case "small":
|
|
54
|
+
return 25;
|
|
55
|
+
case "":
|
|
56
|
+
case "default":
|
|
57
|
+
default:
|
|
58
|
+
return 33;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function switchShrink() {
|
|
62
|
+
isExpand.value = !isExpand.value;
|
|
63
|
+
shrinkResizeHandler();
|
|
64
|
+
}
|
|
65
|
+
async function shrinkResizeHandler() {
|
|
66
|
+
const container = unref(templateRef);
|
|
67
|
+
containerHeight.value = unref(isExpand) ? container.clientHeight : getContainerPickUpHeight();
|
|
68
|
+
}
|
|
69
|
+
watch(
|
|
70
|
+
() => [props.size, props.model],
|
|
71
|
+
() => {
|
|
72
|
+
nextTick(() => {
|
|
73
|
+
shrinkResizeHandler();
|
|
74
|
+
maintainStore.addResize(shrinkResizeHandler, resizeExpandKey);
|
|
75
|
+
});
|
|
76
|
+
},
|
|
77
|
+
{ immediate: true, deep: true }
|
|
78
|
+
);
|
|
79
|
+
return {
|
|
80
|
+
isExpand,
|
|
81
|
+
containerHeight,
|
|
82
|
+
switchShrink,
|
|
83
|
+
shrinkResizeHandler,
|
|
84
|
+
shrinkDestroy() {
|
|
85
|
+
maintainStore.removeResize(resizeExpandKey);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
function timeRangeHandler(column, options) {
|
|
90
|
+
const { value, unit } = options;
|
|
91
|
+
const { timeRangeFill, attrs } = column;
|
|
92
|
+
const format = attrs.valueFormat || "YYYY-MM-DD";
|
|
93
|
+
const date = dayjs(Date.now());
|
|
94
|
+
switch (unit) {
|
|
95
|
+
case "year":
|
|
96
|
+
case "month":
|
|
97
|
+
return [
|
|
98
|
+
date.subtract(value, unit).format(`${format}${timeRangeFill ? " 00:00:00" : ""}`),
|
|
99
|
+
current
|
|
100
|
+
];
|
|
101
|
+
case "day":
|
|
102
|
+
default:
|
|
103
|
+
return value === 1 ? [
|
|
104
|
+
date.format(`${format}${timeRangeFill ? " 00:00:00" : ""}`),
|
|
105
|
+
date.format(`${format}${timeRangeFill ? " 23:59:59" : ""}`)
|
|
106
|
+
] : [
|
|
107
|
+
date.subtract(value, unit).format(`${format}${timeRangeFill ? " 00:00:00" : ""}`),
|
|
108
|
+
date.format(`${format}${timeRangeFill ? " 23:59:59" : ""}`)
|
|
109
|
+
];
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export { columnItemInputStyle, columnItemStyle, columnShowHandler, isDisabled, isEmptyValue, timeRangeHandler, useShrink };
|
|
114
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../packages/components/appSearch/js/index.js"],"sourcesContent":["import dayjs from 'dayjs'\nimport { ref, unref, nextTick, watch } from 'vue'\nimport {\n isArray,\n isBoolean,\n isEmpty,\n isFunction,\n isNumber,\n isString,\n funRunHandler,\n} from '@hy-dispatch-ui-v3/utils'\nimport { useMaintainStore } from '@hy-dispatch-ui-v3/store'\n\n// 列样式\nexport function columnItemStyle(props, column) {\n const { width } = column\n const style = {}\n if (isNumber(width)) {\n style.width = `${width}px`\n } else if (isString(width)) {\n style.width = /(px|em|rem|vw|vh)$/.test(width) ? width : `${width}px`\n }\n return style\n}\n\nexport function columnItemInputStyle(props, column) {\n const { width, inputWidth } = column\n const style = {}\n if (!width && inputWidth) {\n if (isNumber(inputWidth)) {\n style.width = `${inputWidth}px`\n } else if (isString(inputWidth)) {\n style.width = /(px|em|rem|vw|vh)$/.test(inputWidth)\n ? inputWidth\n : `${inputWidth}px`\n }\n } else {\n style.width = '0px'\n style.flex = '1 1 0%'\n }\n return style\n}\n\nexport function columnShowHandler(props, column) {\n const show = unref(column.show)\n if (isBoolean(show)) return show\n if (isFunction(show)) return show(column, props.model)\n return true\n}\n\n// 是否禁用\nexport function isDisabled(props, column) {\n return !!(props.loading || column.attrs?.disabled)\n}\n\n// 是否为空值\nexport function isEmptyValue(e) {\n return isEmpty(e) || (isArray(e) && !e.length)\n}\n\n// 展开/收起 hook\nexport function useShrink(props, templateRef) {\n const isExpand = ref(false)\n const containerHeight = ref(getContainerPickUpHeight())\n const maintainStore = useMaintainStore()\n const resizeExpandKey = Symbol('appSearchExpand')\n function getContainerPickUpHeight() {\n switch (props.size) {\n case 'large':\n return 41\n case 'small':\n return 25\n case '':\n case 'default':\n default:\n return 33\n }\n }\n function switchShrink() {\n isExpand.value = !isExpand.value\n shrinkResizeHandler()\n }\n async function shrinkResizeHandler() {\n const container = unref(templateRef)\n containerHeight.value = unref(isExpand)\n ? container.clientHeight\n : getContainerPickUpHeight()\n }\n watch(\n () => [props.size, props.model],\n () => {\n nextTick(() => {\n shrinkResizeHandler()\n maintainStore.addResize(shrinkResizeHandler, resizeExpandKey)\n })\n },\n { immediate: true, deep: true }\n )\n return {\n isExpand,\n containerHeight,\n switchShrink,\n shrinkResizeHandler,\n shrinkDestroy() {\n maintainStore.removeResize(resizeExpandKey)\n },\n }\n}\n\n// 时间范围控件处理\nexport function timeRangeHandler(column, options) {\n const { value, unit } = options\n const { timeRangeFill, attrs } = column\n const format = attrs.valueFormat || 'YYYY-MM-DD'\n const date = dayjs(Date.now())\n switch (unit) {\n case 'year':\n case 'month':\n return [\n date\n .subtract(value, unit)\n .format(`${format}${timeRangeFill ? ' 00:00:00' : ''}`),\n current,\n ]\n case 'day':\n default:\n return value === 1\n ? [\n date.format(`${format}${timeRangeFill ? ' 00:00:00' : ''}`),\n date.format(`${format}${timeRangeFill ? ' 23:59:59' : ''}`),\n ]\n : [\n date\n .subtract(value, unit)\n .format(`${format}${timeRangeFill ? ' 00:00:00' : ''}`),\n date.format(`${format}${timeRangeFill ? ' 23:59:59' : ''}`),\n ]\n }\n}\n"],"names":[],"mappings":"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"}
|