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,181 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var vue = require('vue');
|
|
4
|
+
var handler = require('../../../utils/handler.js');
|
|
5
|
+
var date = require('../../../utils/date.js');
|
|
6
|
+
var useLocale = require('../../../hooks/useLocale.js');
|
|
7
|
+
var is = require('../../../utils/is.js');
|
|
8
|
+
|
|
9
|
+
const genPlaceholderHandler = (config) => {
|
|
10
|
+
const { t } = useLocale.useLocale();
|
|
11
|
+
const { type, label, attrs = {} } = config || {};
|
|
12
|
+
let placeholder = attrs.placeholder, startPlaceholder = attrs.startPlaceholder, endPlaceholder = attrs.endPlaceholder;
|
|
13
|
+
switch (type) {
|
|
14
|
+
case "input":
|
|
15
|
+
placeholder = placeholder || t("hy.pleaseEnterPlaceholder", [label]);
|
|
16
|
+
case "select":
|
|
17
|
+
placeholder = placeholder || t("hy.pleaseSelectPlaceholder", [label]);
|
|
18
|
+
case "date-picker":
|
|
19
|
+
if (["datetimerange", "daterange", "monthrange", "yearrange"].includes(
|
|
20
|
+
attrs == null ? void 0 : attrs.type
|
|
21
|
+
)) {
|
|
22
|
+
switch (attrs.type) {
|
|
23
|
+
case "yearrange":
|
|
24
|
+
startPlaceholder = startPlaceholder || t("hy.startYear");
|
|
25
|
+
endPlaceholder = endPlaceholder || t("hy.endYear");
|
|
26
|
+
break;
|
|
27
|
+
case "monthrange":
|
|
28
|
+
startPlaceholder = startPlaceholder || t("hy.startMonth");
|
|
29
|
+
endPlaceholder = endPlaceholder || t("hy.endMonth");
|
|
30
|
+
break;
|
|
31
|
+
case "daterange":
|
|
32
|
+
startPlaceholder = startPlaceholder || t("hy.startDate");
|
|
33
|
+
endPlaceholder = endPlaceholder || t("hy.endDate");
|
|
34
|
+
break;
|
|
35
|
+
case "datetimerange":
|
|
36
|
+
startPlaceholder = startPlaceholder || t("hy.startDateTime");
|
|
37
|
+
endPlaceholder = endPlaceholder || t("hy.endDateTime");
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
} else {
|
|
41
|
+
placeholder = placeholder || t("hy.pleaseSelectPlaceholder", [label]);
|
|
42
|
+
}
|
|
43
|
+
default:
|
|
44
|
+
placeholder = placeholder || label;
|
|
45
|
+
}
|
|
46
|
+
return { placeholder, startPlaceholder, endPlaceholder };
|
|
47
|
+
};
|
|
48
|
+
const genColumnWidth = (config) => {
|
|
49
|
+
let { width, type, attrs } = config || {};
|
|
50
|
+
let inputWidth;
|
|
51
|
+
if (!width) {
|
|
52
|
+
if (type === "date-picker") {
|
|
53
|
+
switch (attrs == null ? void 0 : attrs.type) {
|
|
54
|
+
case "datetimerange":
|
|
55
|
+
inputWidth = 390;
|
|
56
|
+
break;
|
|
57
|
+
case "daterange":
|
|
58
|
+
inputWidth = 240;
|
|
59
|
+
break;
|
|
60
|
+
case "datetime":
|
|
61
|
+
inputWidth = 220;
|
|
62
|
+
break;
|
|
63
|
+
default:
|
|
64
|
+
inputWidth = 145;
|
|
65
|
+
}
|
|
66
|
+
} else {
|
|
67
|
+
width = 250;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return { width, inputWidth };
|
|
71
|
+
};
|
|
72
|
+
const timeRangeOptionsHandler = (config) => {
|
|
73
|
+
const { t } = useLocale.useLocale();
|
|
74
|
+
const { timeRangeOptions } = config || {};
|
|
75
|
+
if (!(timeRangeOptions == null ? void 0 : timeRangeOptions.length)) return timeRangeOptions;
|
|
76
|
+
return timeRangeOptions.reduce((list, item) => {
|
|
77
|
+
let { value, label, unit } = item;
|
|
78
|
+
if (!value || !is.isNumber(value) || isNaN(value)) return list;
|
|
79
|
+
const isPlural = value > 1;
|
|
80
|
+
if (!label) {
|
|
81
|
+
switch (unit) {
|
|
82
|
+
case "year":
|
|
83
|
+
label = `${value} ` + t(isPlural ? "hy.years" : "hy.year");
|
|
84
|
+
break;
|
|
85
|
+
case "month":
|
|
86
|
+
label = `${value} ` + t(isPlural ? "hy.months" : "hy.month");
|
|
87
|
+
break;
|
|
88
|
+
case "day":
|
|
89
|
+
default:
|
|
90
|
+
unit = "day";
|
|
91
|
+
label = value === 1 ? t("hy.today") : `${value} ` + t(isPlural ? "hy.days" : "hy.day");
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
list.push({ ...item, label, unit });
|
|
95
|
+
return list;
|
|
96
|
+
}, []);
|
|
97
|
+
};
|
|
98
|
+
function appSearchItemHandler(column = {}) {
|
|
99
|
+
const { placeholder, startPlaceholder, endPlaceholder } = genPlaceholderHandler(column);
|
|
100
|
+
const attrs = {
|
|
101
|
+
clearable: true,
|
|
102
|
+
...column.attrs || {},
|
|
103
|
+
placeholder
|
|
104
|
+
};
|
|
105
|
+
const { width, inputWidth } = genColumnWidth(column);
|
|
106
|
+
column = handler.mergeDeep(
|
|
107
|
+
{ ...column },
|
|
108
|
+
{
|
|
109
|
+
key: /* @__PURE__ */ Symbol("appFormItemKey"),
|
|
110
|
+
field: column.prop,
|
|
111
|
+
readonly: column.readonly || false,
|
|
112
|
+
width,
|
|
113
|
+
inputWidth,
|
|
114
|
+
timeRangeOptions: timeRangeOptionsHandler(column)
|
|
115
|
+
}
|
|
116
|
+
);
|
|
117
|
+
if (/^(input)$/.test(column.type)) {
|
|
118
|
+
return {
|
|
119
|
+
...column,
|
|
120
|
+
attrs: {
|
|
121
|
+
maxlength: attrs.type === "textarea" ? 255 : attrs.type === "text" ? 100 : void 0,
|
|
122
|
+
...attrs
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
} else if (/^(radio|checkbox|select)$/.test(column.type)) {
|
|
126
|
+
return {
|
|
127
|
+
...column,
|
|
128
|
+
attrs: {
|
|
129
|
+
...attrs,
|
|
130
|
+
props: {
|
|
131
|
+
label: "label",
|
|
132
|
+
value: "value",
|
|
133
|
+
disabled: "disabled",
|
|
134
|
+
options: "options",
|
|
135
|
+
...attrs.props
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
} else if (/^date-picker$/.test(column.type)) {
|
|
140
|
+
return {
|
|
141
|
+
...column,
|
|
142
|
+
attrs: {
|
|
143
|
+
format: attrs.format || date.getDefaultValueFormatByType(attrs.type),
|
|
144
|
+
valueFormat: attrs.valueFormat || date.getDefaultValueFormatByType(attrs.type),
|
|
145
|
+
...attrs,
|
|
146
|
+
startPlaceholder,
|
|
147
|
+
endPlaceholder
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
return column;
|
|
152
|
+
}
|
|
153
|
+
const resetAppSearchValue = (columns = [], obj = {}) => {
|
|
154
|
+
for (const item of columns) {
|
|
155
|
+
const value = handler.funRunHandler(item.defaultValue);
|
|
156
|
+
if (Array.isArray(item.prop)) {
|
|
157
|
+
for (let i = 0; i < item.prop.length; i++) {
|
|
158
|
+
obj[item.prop[i]] = value && Array.isArray(value) ? value[i] : void 0;
|
|
159
|
+
}
|
|
160
|
+
} else {
|
|
161
|
+
obj[item.prop] = value;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return obj;
|
|
165
|
+
};
|
|
166
|
+
const useAppSearch = (config = [], model) => {
|
|
167
|
+
const columns = [];
|
|
168
|
+
for (const item of vue.unref(config)) {
|
|
169
|
+
const target = appSearchItemHandler(item);
|
|
170
|
+
columns.push(target);
|
|
171
|
+
}
|
|
172
|
+
const formModel = resetAppSearchValue(columns, model);
|
|
173
|
+
return {
|
|
174
|
+
formModel: vue.toRef(formModel),
|
|
175
|
+
formColumns: vue.toRef(columns)
|
|
176
|
+
};
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
exports.resetAppSearchValue = resetAppSearchValue;
|
|
180
|
+
exports.useAppSearch = useAppSearch;
|
|
181
|
+
//# sourceMappingURL=useAppSearch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAppSearch.js","sources":["../../../../packages/components/appSearch/js/useAppSearch.js"],"sourcesContent":["import { toRef, unref } from 'vue'\nimport { useLocale } from '@hy-dispatch-ui-v3/hooks'\nimport {\n isNumber,\n funRunHandler,\n mergeDeep,\n getDefaultValueFormatByType,\n} from '@hy-dispatch-ui-v3/utils'\n\n// 生成表单组件占位字符\nconst genPlaceholderHandler = (config) => {\n const { t } = useLocale()\n const { type, label, attrs = {} } = config || {}\n let placeholder = attrs.placeholder,\n startPlaceholder = attrs.startPlaceholder,\n endPlaceholder = attrs.endPlaceholder\n switch (type) {\n case 'input':\n placeholder = placeholder || t('hy.pleaseEnterPlaceholder', [label])\n case 'select':\n placeholder = placeholder || t('hy.pleaseSelectPlaceholder', [label])\n case 'date-picker':\n if (\n ['datetimerange', 'daterange', 'monthrange', 'yearrange'].includes(\n attrs?.type\n )\n ) {\n switch (attrs.type) {\n case 'yearrange':\n startPlaceholder = startPlaceholder || t('hy.startYear')\n endPlaceholder = endPlaceholder || t('hy.endYear')\n break\n case 'monthrange':\n startPlaceholder = startPlaceholder || t('hy.startMonth')\n endPlaceholder = endPlaceholder || t('hy.endMonth')\n break\n case 'daterange':\n startPlaceholder = startPlaceholder || t('hy.startDate')\n endPlaceholder = endPlaceholder || t('hy.endDate')\n break\n case 'datetimerange':\n startPlaceholder = startPlaceholder || t('hy.startDateTime')\n endPlaceholder = endPlaceholder || t('hy.endDateTime')\n break\n }\n } else {\n placeholder = placeholder || t('hy.pleaseSelectPlaceholder', [label])\n }\n default:\n placeholder = placeholder || label\n }\n return { placeholder, startPlaceholder, endPlaceholder }\n}\n\nconst genColumnWidth = (config) => {\n let { width, type, attrs } = config || {}\n let inputWidth\n if (!width) {\n if (type === 'date-picker') {\n switch (attrs?.type) {\n case 'datetimerange':\n inputWidth = 390\n break\n case 'daterange':\n inputWidth = 240\n break\n case 'datetime':\n inputWidth = 220\n break\n default:\n inputWidth = 145\n }\n } else {\n width = 250\n }\n }\n return { width, inputWidth }\n}\n\nconst timeRangeOptionsHandler = (config) => {\n const { t } = useLocale()\n const { timeRangeOptions } = config || {}\n if (!timeRangeOptions?.length) return timeRangeOptions\n return timeRangeOptions.reduce((list, item) => {\n let { value, label, unit } = item\n if (!value || !isNumber(value) || isNaN(value)) return list\n const isPlural = value > 1\n if (!label) {\n switch (unit) {\n case 'year':\n label = `${value} ` + t(isPlural ? 'hy.years' : 'hy.year')\n break\n case 'month':\n label = `${value} ` + t(isPlural ? 'hy.months' : 'hy.month')\n break\n case 'day':\n default:\n unit = 'day'\n label =\n value === 1\n ? t('hy.today')\n : `${value} ` + t(isPlural ? 'hy.days' : 'hy.day')\n }\n }\n list.push({ ...item, label, unit })\n return list\n }, [])\n}\n\n/**\n * @function 创建表单项\n * @param {\n * prop: string | Array<string>, // 表单prop,在日期选择范围可填入数据\n * label: string, // 表单项label\n * defaultValue: function | any // 默认值\n * slot: string // 自定义插槽名称\n * type: 'input' | 'select' | 'date-picker' | 'radio' | 'checkbox' // 表单组件类型\n * timeRangeFill: boolean, // 仅对 date-picker 的 daterange 类型生效,是否填充开始结束时间\n * timeRangeOptions: Array<{ label?: string, value: number, unit: 'day' | 'month' | 'year' }> // 仅对 date-picker 的 daterange、datetimerange 生效,可配置日期范围按钮\n * attrs: any // 表单组件配置\n * } column\n * @returns column\n */\nfunction appSearchItemHandler(column = {}) {\n const { placeholder, startPlaceholder, endPlaceholder } =\n genPlaceholderHandler(column)\n const attrs = {\n clearable: true,\n ...(column.attrs || {}),\n placeholder,\n }\n const { width, inputWidth } = genColumnWidth(column)\n column = mergeDeep(\n { ...column },\n {\n key: Symbol('appFormItemKey'),\n field: column.prop,\n readonly: column.readonly || false,\n width,\n inputWidth,\n timeRangeOptions: timeRangeOptionsHandler(column),\n }\n )\n\n if (/^(input)$/.test(column.type)) {\n return {\n ...column,\n attrs: {\n maxlength:\n attrs.type === 'textarea'\n ? 255\n : attrs.type === 'text'\n ? 100\n : undefined,\n ...attrs,\n },\n }\n } else if (/^(radio|checkbox|select)$/.test(column.type)) {\n return {\n ...column,\n attrs: {\n ...attrs,\n props: {\n label: 'label',\n value: 'value',\n disabled: 'disabled',\n options: 'options',\n ...attrs.props,\n },\n },\n }\n } else if (/^date-picker$/.test(column.type)) {\n return {\n ...column,\n attrs: {\n format: attrs.format || getDefaultValueFormatByType(attrs.type),\n valueFormat:\n attrs.valueFormat || getDefaultValueFormatByType(attrs.type),\n ...attrs,\n startPlaceholder,\n endPlaceholder,\n },\n }\n }\n\n return column\n}\n\n// 重置表单默认值\nexport const resetAppSearchValue = (columns = [], obj = {}) => {\n for (const item of columns) {\n const value = funRunHandler(item.defaultValue)\n if (Array.isArray(item.prop)) {\n for (let i = 0; i < item.prop.length; i++) {\n obj[item.prop[i]] = value && Array.isArray(value) ? value[i] : undefined\n }\n } else {\n obj[item.prop] = value\n }\n }\n return obj\n}\n\n// 生成表单配置\nexport const useAppSearch = (config = [], model) => {\n const columns = []\n for (const item of unref(config)) {\n const target = appSearchItemHandler(item)\n columns.push(target)\n }\n const formModel = resetAppSearchValue(columns, model)\n return {\n formModel: toRef(formModel),\n formColumns: toRef(columns),\n }\n}\n"],"names":["useLocale","isNumber","mergeDeep","getDefaultValueFormatByType","funRunHandler","unref","toRef"],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
.app-search {
|
|
2
|
+
border-radius: 4px;
|
|
3
|
+
border: 1px solid var(--border);
|
|
4
|
+
background-color: var(--background);
|
|
5
|
+
padding: 12px 6px 16px 20px;
|
|
6
|
+
opacity: 1;
|
|
7
|
+
transition: all 0.3s linear;
|
|
8
|
+
overflow: hidden;
|
|
9
|
+
&.app-search-hidden {
|
|
10
|
+
padding-top: 0;
|
|
11
|
+
padding-bottom: 0;
|
|
12
|
+
opacity: 0;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
.app-search-header {
|
|
16
|
+
@apply h-4 flex items-center text-xs text-main mb-4;
|
|
17
|
+
transition: all 0.3s linear;
|
|
18
|
+
&.app-search-header-hidden {
|
|
19
|
+
@apply h-0 mb-0;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
.app-search-form {
|
|
23
|
+
overflow: hidden;
|
|
24
|
+
transition: all 0.3s;
|
|
25
|
+
}
|
|
26
|
+
.app-search-container {
|
|
27
|
+
display: flex;
|
|
28
|
+
flex-wrap: wrap;
|
|
29
|
+
gap: 16px;
|
|
30
|
+
position: relative;
|
|
31
|
+
.el-form-item {
|
|
32
|
+
margin-bottom: 0;
|
|
33
|
+
&.hidden {
|
|
34
|
+
display: none;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
.el-input,
|
|
38
|
+
.el-date-editor {
|
|
39
|
+
--el-input-bg-color: transparent;
|
|
40
|
+
--el-input-border: none;
|
|
41
|
+
--el-border-color: transparent;
|
|
42
|
+
--el-input-border-color: transparent;
|
|
43
|
+
--el-input-text-color: var(--main);
|
|
44
|
+
--el-input-border-radius: 0px 4px 4px 0px;
|
|
45
|
+
--el-input-hover-border-color: var(--theme);
|
|
46
|
+
}
|
|
47
|
+
.el-select {
|
|
48
|
+
--el-border-color: transparent;
|
|
49
|
+
--el-fill-color-blank: transparent;
|
|
50
|
+
--el-border-radius-base: 0px 4px 4px 0px;
|
|
51
|
+
--el-border-color-hover: var(--theme);
|
|
52
|
+
}
|
|
53
|
+
}
|