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,335 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var vue = require('vue');
|
|
6
|
+
var elementPlus = require('element-plus');
|
|
7
|
+
var index$1 = require('../svgIcon/index.js');
|
|
8
|
+
var appDatePicker = require('../appDatePicker/appDatePicker.vue.js');
|
|
9
|
+
var index = require('./js/index.js');
|
|
10
|
+
var useAppForm = require('./js/useAppForm.js');
|
|
11
|
+
var useLocale = require('../../hooks/useLocale.js');
|
|
12
|
+
var is = require('../../utils/is.js');
|
|
13
|
+
var handler = require('../../utils/handler.js');
|
|
14
|
+
|
|
15
|
+
import "./style/appForm.scss";
|
|
16
|
+
|
|
17
|
+
const __default__ = vue.defineComponent({
|
|
18
|
+
name: "AppForm"
|
|
19
|
+
});
|
|
20
|
+
const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
|
|
21
|
+
props: {
|
|
22
|
+
model: {
|
|
23
|
+
type: Object,
|
|
24
|
+
default: () => ({})
|
|
25
|
+
},
|
|
26
|
+
columns: {
|
|
27
|
+
type: Array,
|
|
28
|
+
default: () => []
|
|
29
|
+
},
|
|
30
|
+
rules: {
|
|
31
|
+
type: Object,
|
|
32
|
+
default: () => ({})
|
|
33
|
+
},
|
|
34
|
+
columnNum: {
|
|
35
|
+
type: Number,
|
|
36
|
+
default: 1
|
|
37
|
+
},
|
|
38
|
+
readonly: {
|
|
39
|
+
type: Boolean,
|
|
40
|
+
default: false
|
|
41
|
+
},
|
|
42
|
+
loading: {
|
|
43
|
+
type: Boolean,
|
|
44
|
+
default: false
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
setup(__props, { expose: __expose }) {
|
|
48
|
+
const props = __props;
|
|
49
|
+
const { t } = useLocale.useLocale();
|
|
50
|
+
const formTemplateRef = vue.useTemplateRef("formTemplateRef");
|
|
51
|
+
const formColumnMap = vue.computed(() => {
|
|
52
|
+
return (props.columns || []).reduce((map, column) => {
|
|
53
|
+
if (is.isArray(column.field)) {
|
|
54
|
+
column.field.forEach((key) => map.set(key, column));
|
|
55
|
+
} else {
|
|
56
|
+
map.set(column.field, column);
|
|
57
|
+
}
|
|
58
|
+
return map;
|
|
59
|
+
}, /* @__PURE__ */ new Map());
|
|
60
|
+
});
|
|
61
|
+
const containerStyle = vue.computed(() => {
|
|
62
|
+
const columnNum = is.isNumber(props.columnNum) ? props.columnNum || 1 : 1;
|
|
63
|
+
return {
|
|
64
|
+
gridTemplateColumns: `repeat(${columnNum}, minmax(0, 1fr))`
|
|
65
|
+
};
|
|
66
|
+
});
|
|
67
|
+
__expose({
|
|
68
|
+
validate: async (callback) => {
|
|
69
|
+
await vue.nextTick();
|
|
70
|
+
return vue.unref(formTemplateRef).validate(callback);
|
|
71
|
+
},
|
|
72
|
+
validateField: async (fields) => {
|
|
73
|
+
await vue.nextTick();
|
|
74
|
+
return vue.unref(formTemplateRef).validateField(fields);
|
|
75
|
+
},
|
|
76
|
+
resetFields: (fields) => {
|
|
77
|
+
let columns = props.columns || [];
|
|
78
|
+
if (fields && (fields == null ? void 0 : fields.length)) {
|
|
79
|
+
columns = fields.map((key) => formColumnMap.get(key)).filter(Boolean);
|
|
80
|
+
}
|
|
81
|
+
useAppForm.resetAppFormValue(columns, props.model);
|
|
82
|
+
},
|
|
83
|
+
scrollToField: async (fields) => {
|
|
84
|
+
await vue.nextTick();
|
|
85
|
+
vue.unref(formTemplateRef).scrollToField(fields);
|
|
86
|
+
},
|
|
87
|
+
clearValidate: async (fields) => {
|
|
88
|
+
await vue.nextTick();
|
|
89
|
+
vue.unref(formTemplateRef).clearValidate(fields);
|
|
90
|
+
},
|
|
91
|
+
fields: vue.computed(() => {
|
|
92
|
+
var _a;
|
|
93
|
+
return ((_a = vue.unref(formTemplateRef)) == null ? void 0 : _a.fields) || [];
|
|
94
|
+
}),
|
|
95
|
+
getField: async (fields) => {
|
|
96
|
+
await vue.nextTick();
|
|
97
|
+
return vue.unref(formTemplateRef).getField(fields);
|
|
98
|
+
}
|
|
99
|
+
// setInitialValue: async (value) => {
|
|
100
|
+
// await nextTick()
|
|
101
|
+
// unref(formTemplateRef).setInitialValue(value)
|
|
102
|
+
// }
|
|
103
|
+
});
|
|
104
|
+
return (_ctx, _cache) => {
|
|
105
|
+
return vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElForm), vue.mergeProps({
|
|
106
|
+
ref_key: "formTemplateRef",
|
|
107
|
+
ref: formTemplateRef,
|
|
108
|
+
model: __props.model,
|
|
109
|
+
rules: __props.rules,
|
|
110
|
+
"label-position": "top"
|
|
111
|
+
}, _ctx.$attrs), {
|
|
112
|
+
default: vue.withCtx(() => [
|
|
113
|
+
vue.createElementVNode(
|
|
114
|
+
"div",
|
|
115
|
+
{
|
|
116
|
+
class: "app-form-container",
|
|
117
|
+
style: vue.normalizeStyle(containerStyle.value)
|
|
118
|
+
},
|
|
119
|
+
[
|
|
120
|
+
vue.createCommentVNode(" \u8868\u5355\u9879 "),
|
|
121
|
+
(vue.openBlock(true), vue.createElementBlock(
|
|
122
|
+
vue.Fragment,
|
|
123
|
+
null,
|
|
124
|
+
vue.renderList(__props.columns, (column, columnIndex) => {
|
|
125
|
+
return vue.openBlock(), vue.createElementBlock(
|
|
126
|
+
vue.Fragment,
|
|
127
|
+
{
|
|
128
|
+
key: column.key
|
|
129
|
+
},
|
|
130
|
+
[
|
|
131
|
+
vue.unref(index.columnShowHandler)(props, column) ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElFormItem), {
|
|
132
|
+
key: 0,
|
|
133
|
+
rules: column.rules,
|
|
134
|
+
prop: vue.unref(is.isArray)(column.field) ? column.field[0] : column.field,
|
|
135
|
+
style: vue.normalizeStyle(vue.unref(index.columnItemStyle)(props, column))
|
|
136
|
+
}, {
|
|
137
|
+
label: vue.withCtx(() => [
|
|
138
|
+
vue.createElementVNode("div", { class: "flex" }, [
|
|
139
|
+
column.labelSlot && _ctx.$slots[column.labelSlot] ? vue.renderSlot(_ctx.$slots, column.labelSlot, {
|
|
140
|
+
key: 0,
|
|
141
|
+
column
|
|
142
|
+
}) : (vue.openBlock(), vue.createElementBlock(
|
|
143
|
+
"span",
|
|
144
|
+
{
|
|
145
|
+
key: 1,
|
|
146
|
+
class: "text-main"
|
|
147
|
+
},
|
|
148
|
+
vue.toDisplayString(column.label),
|
|
149
|
+
1
|
|
150
|
+
/* TEXT */
|
|
151
|
+
)),
|
|
152
|
+
vue.unref(index.isRequired)(props, column) ? (vue.openBlock(), vue.createElementBlock("span", {
|
|
153
|
+
key: 2,
|
|
154
|
+
class: "label-required"
|
|
155
|
+
})) : vue.createCommentVNode("v-if", true),
|
|
156
|
+
column.help ? (vue.openBlock(), vue.createBlock(
|
|
157
|
+
vue.unref(elementPlus.ElPopover),
|
|
158
|
+
{
|
|
159
|
+
key: 3,
|
|
160
|
+
placement: "bottom-start",
|
|
161
|
+
"popper-class": "popover_echarts w-[200px]",
|
|
162
|
+
trigger: "hover"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
reference: vue.withCtx(() => [
|
|
166
|
+
vue.createElementVNode("div", { class: "flex items-center" }, [
|
|
167
|
+
vue.createVNode(vue.unref(index$1.SvgIcon), {
|
|
168
|
+
"svg-name": "help",
|
|
169
|
+
"class-name": "!w-3 !h-3 ml-1 svgBox"
|
|
170
|
+
}),
|
|
171
|
+
vue.createTextVNode(
|
|
172
|
+
" " + vue.toDisplayString(vue.unref(t)("hy.help")),
|
|
173
|
+
1
|
|
174
|
+
/* TEXT */
|
|
175
|
+
)
|
|
176
|
+
])
|
|
177
|
+
]),
|
|
178
|
+
default: vue.withCtx(() => [
|
|
179
|
+
vue.createElementVNode(
|
|
180
|
+
"div",
|
|
181
|
+
null,
|
|
182
|
+
vue.toDisplayString(vue.unref(handler.funRunHandler)(column.help)),
|
|
183
|
+
1
|
|
184
|
+
/* TEXT */
|
|
185
|
+
)
|
|
186
|
+
]),
|
|
187
|
+
_: 2
|
|
188
|
+
/* DYNAMIC */
|
|
189
|
+
},
|
|
190
|
+
1024
|
|
191
|
+
/* DYNAMIC_SLOTS */
|
|
192
|
+
)) : vue.createCommentVNode("v-if", true),
|
|
193
|
+
column.rightSlot && _ctx.$slots[column.rightSlot] ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
194
|
+
key: 4,
|
|
195
|
+
class: "ml-auto"
|
|
196
|
+
}, [
|
|
197
|
+
vue.renderSlot(_ctx.$slots, column.rightSlot)
|
|
198
|
+
])) : vue.createCommentVNode("v-if", true)
|
|
199
|
+
])
|
|
200
|
+
]),
|
|
201
|
+
default: vue.withCtx(() => {
|
|
202
|
+
var _a;
|
|
203
|
+
return [
|
|
204
|
+
column.readonly || __props.readonly || !column.type && !column.slot ? (vue.openBlock(), vue.createElementBlock(
|
|
205
|
+
"span",
|
|
206
|
+
{ key: 0 },
|
|
207
|
+
vue.toDisplayString(vue.unref(index.renderText)(props, column, columnIndex)),
|
|
208
|
+
1
|
|
209
|
+
/* TEXT */
|
|
210
|
+
)) : (vue.openBlock(), vue.createElementBlock(
|
|
211
|
+
vue.Fragment,
|
|
212
|
+
{ key: 1 },
|
|
213
|
+
[
|
|
214
|
+
vue.createCommentVNode(" \u81EA\u5B9A\u4E49\u5177\u540D\u63D2\u69FD "),
|
|
215
|
+
column.slot && _ctx.$slots[column.slot] ? vue.renderSlot(_ctx.$slots, column.slot, {
|
|
216
|
+
key: 0,
|
|
217
|
+
column
|
|
218
|
+
}) : column.type === "input" ? (vue.openBlock(), vue.createElementBlock(
|
|
219
|
+
vue.Fragment,
|
|
220
|
+
{ key: 1 },
|
|
221
|
+
[
|
|
222
|
+
vue.createCommentVNode(" \u8F93\u5165\u6846 "),
|
|
223
|
+
vue.createVNode(vue.unref(elementPlus.ElInput), vue.mergeProps({
|
|
224
|
+
modelValue: __props.model[column.field],
|
|
225
|
+
"onUpdate:modelValue": ($event) => __props.model[column.field] = $event
|
|
226
|
+
}, { ref_for: true }, column.attrs, {
|
|
227
|
+
disabled: vue.unref(index.isDisabled)(props, column)
|
|
228
|
+
}), null, 16, ["modelValue", "onUpdate:modelValue", "disabled"])
|
|
229
|
+
],
|
|
230
|
+
2112
|
|
231
|
+
/* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
|
|
232
|
+
)) : column.type === "select" ? (vue.openBlock(), vue.createElementBlock(
|
|
233
|
+
vue.Fragment,
|
|
234
|
+
{ key: 2 },
|
|
235
|
+
[
|
|
236
|
+
vue.createCommentVNode(" \u9009\u62E9\u6846 "),
|
|
237
|
+
vue.createVNode(vue.unref(elementPlus.ElSelect), vue.mergeProps({
|
|
238
|
+
modelValue: __props.model[column.field],
|
|
239
|
+
"onUpdate:modelValue": ($event) => __props.model[column.field] = $event
|
|
240
|
+
}, { ref_for: true }, column.attrs, {
|
|
241
|
+
disabled: vue.unref(index.isDisabled)(props, column)
|
|
242
|
+
}), null, 16, ["modelValue", "onUpdate:modelValue", "disabled"])
|
|
243
|
+
],
|
|
244
|
+
2112
|
|
245
|
+
/* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
|
|
246
|
+
)) : column.type === "date-picker" ? (vue.openBlock(), vue.createElementBlock(
|
|
247
|
+
vue.Fragment,
|
|
248
|
+
{ key: 3 },
|
|
249
|
+
[
|
|
250
|
+
vue.createCommentVNode(" \u65E5\u671F\u9009\u62E9\u6846 "),
|
|
251
|
+
[
|
|
252
|
+
"datetimerange",
|
|
253
|
+
"daterange",
|
|
254
|
+
"monthrange",
|
|
255
|
+
"yearrange"
|
|
256
|
+
].includes((_a = column.attrs) == null ? void 0 : _a.type) && vue.unref(is.isArray)(column.field) ? (vue.openBlock(), vue.createBlock(appDatePicker.default, vue.mergeProps({
|
|
257
|
+
key: 0,
|
|
258
|
+
start: __props.model[column.field[0]],
|
|
259
|
+
"onUpdate:start": ($event) => __props.model[column.field[0]] = $event,
|
|
260
|
+
end: __props.model[column.field[1]],
|
|
261
|
+
"onUpdate:end": ($event) => __props.model[column.field[1]] = $event,
|
|
262
|
+
"is-range": true,
|
|
263
|
+
style: { "width": "100%" }
|
|
264
|
+
}, { ref_for: true }, column.attrs, {
|
|
265
|
+
disabled: vue.unref(index.isDisabled)(props, column)
|
|
266
|
+
}), null, 16, ["start", "onUpdate:start", "end", "onUpdate:end", "disabled"])) : (vue.openBlock(), vue.createBlock(appDatePicker.default, vue.mergeProps({
|
|
267
|
+
key: 1,
|
|
268
|
+
modelValue: __props.model[column.field],
|
|
269
|
+
"onUpdate:modelValue": ($event) => __props.model[column.field] = $event,
|
|
270
|
+
"is-range": false,
|
|
271
|
+
style: { "width": "100%" }
|
|
272
|
+
}, { ref_for: true }, column.attrs, {
|
|
273
|
+
disabled: vue.unref(index.isDisabled)(props, column)
|
|
274
|
+
}), null, 16, ["modelValue", "onUpdate:modelValue", "disabled"]))
|
|
275
|
+
],
|
|
276
|
+
64
|
|
277
|
+
/* STABLE_FRAGMENT */
|
|
278
|
+
)) : column.type === "radio" ? (vue.openBlock(), vue.createElementBlock(
|
|
279
|
+
vue.Fragment,
|
|
280
|
+
{ key: 4 },
|
|
281
|
+
[
|
|
282
|
+
vue.createCommentVNode(" \u5355\u9009 "),
|
|
283
|
+
vue.createVNode(vue.unref(elementPlus.ElRadioGroup), vue.mergeProps({
|
|
284
|
+
modelValue: __props.model[column.field],
|
|
285
|
+
"onUpdate:modelValue": ($event) => __props.model[column.field] = $event,
|
|
286
|
+
disabled: vue.unref(index.isDisabled)(props, column)
|
|
287
|
+
}, { ref_for: true }, column.attrs), null, 16, ["modelValue", "onUpdate:modelValue", "disabled"])
|
|
288
|
+
],
|
|
289
|
+
2112
|
|
290
|
+
/* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
|
|
291
|
+
)) : column.type === "checkbox" ? (vue.openBlock(), vue.createElementBlock(
|
|
292
|
+
vue.Fragment,
|
|
293
|
+
{ key: 5 },
|
|
294
|
+
[
|
|
295
|
+
vue.createCommentVNode(" \u591A\u9009 "),
|
|
296
|
+
vue.createVNode(vue.unref(elementPlus.ElCheckboxGroup), vue.mergeProps({
|
|
297
|
+
modelValue: __props.model[column.field],
|
|
298
|
+
"onUpdate:modelValue": ($event) => __props.model[column.field] = $event,
|
|
299
|
+
disabled: vue.unref(index.isDisabled)(props, column)
|
|
300
|
+
}, { ref_for: true }, column.attrs), null, 16, ["modelValue", "onUpdate:modelValue", "disabled"])
|
|
301
|
+
],
|
|
302
|
+
2112
|
|
303
|
+
/* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
|
|
304
|
+
)) : vue.createCommentVNode("v-if", true)
|
|
305
|
+
],
|
|
306
|
+
64
|
|
307
|
+
/* STABLE_FRAGMENT */
|
|
308
|
+
))
|
|
309
|
+
];
|
|
310
|
+
}),
|
|
311
|
+
_: 2
|
|
312
|
+
/* DYNAMIC */
|
|
313
|
+
}, 1032, ["rules", "prop", "style"])) : vue.createCommentVNode("v-if", true)
|
|
314
|
+
],
|
|
315
|
+
64
|
|
316
|
+
/* STABLE_FRAGMENT */
|
|
317
|
+
);
|
|
318
|
+
}),
|
|
319
|
+
128
|
|
320
|
+
/* KEYED_FRAGMENT */
|
|
321
|
+
))
|
|
322
|
+
],
|
|
323
|
+
4
|
|
324
|
+
/* STYLE */
|
|
325
|
+
)
|
|
326
|
+
]),
|
|
327
|
+
_: 3
|
|
328
|
+
/* FORWARDED */
|
|
329
|
+
}, 16, ["model", "rules"]);
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
});
|
|
333
|
+
|
|
334
|
+
exports.default = _sfc_main;
|
|
335
|
+
//# sourceMappingURL=appForm.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appForm.vue.js","sources":["../../../packages/components/appForm/appForm.vue"],"sourcesContent":["<script setup>\nimport { computed, unref, useTemplateRef, nextTick } from 'vue'\nimport {\n ElForm,\n ElFormItem,\n ElInput,\n ElSelect,\n ElRadioGroup,\n ElCheckboxGroup,\n ElPopover,\n} from 'element-plus'\nimport SvgIcon from '../svgIcon'\nimport { useLocale } from '@hy-dispatch-ui-v3/hooks'\nimport { isNumber, isArray, funRunHandler } from '@hy-dispatch-ui-v3/utils'\nimport appDatePicker from '../appDatePicker/appDatePicker.vue'\nimport {\n columnItemStyle,\n columnShowHandler,\n isDisabled,\n isRequired,\n renderText,\n} from './js/index.js'\nimport { resetAppFormValue } from './js/useAppForm.js'\nimport './style/appForm.scss'\n\ndefineOptions({\n name: 'AppForm',\n})\n\nconst props = defineProps({\n model: {\n type: Object,\n default: () => ({}),\n },\n columns: {\n type: Array,\n default: () => [],\n },\n rules: {\n type: Object,\n default: () => ({}),\n },\n columnNum: {\n type: Number,\n default: 1,\n },\n readonly: {\n type: Boolean,\n default: false,\n },\n loading: {\n type: Boolean,\n default: false,\n },\n})\n\nconst { t } = useLocale()\nconst formTemplateRef = useTemplateRef('formTemplateRef')\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 containerStyle = computed(() => {\n const columnNum = isNumber(props.columnNum) ? props.columnNum || 1 : 1\n return {\n gridTemplateColumns: `repeat(${columnNum}, minmax(0, 1fr))`,\n }\n})\n\ndefineExpose({\n validate: async (callback) => {\n await nextTick()\n return unref(formTemplateRef).validate(callback)\n },\n validateField: async (fields) => {\n await nextTick()\n return unref(formTemplateRef).validateField(fields)\n },\n resetFields: (fields) => {\n let columns = props.columns || []\n if (fields && fields?.length) {\n columns = fields.map((key) => formColumnMap.get(key)).filter(Boolean)\n }\n resetAppFormValue(columns, props.model)\n },\n scrollToField: async (fields) => {\n await nextTick()\n unref(formTemplateRef).scrollToField(fields)\n },\n clearValidate: async (fields) => {\n await nextTick()\n unref(formTemplateRef).clearValidate(fields)\n },\n fields: computed(() => {\n return unref(formTemplateRef)?.fields || []\n }),\n getField: async (fields) => {\n await nextTick()\n return unref(formTemplateRef).getField(fields)\n },\n // setInitialValue: async (value) => {\n // await nextTick()\n // unref(formTemplateRef).setInitialValue(value)\n // }\n})\n</script>\n\n<template>\n <el-form\n ref=\"formTemplateRef\"\n :model=\"model\"\n :rules=\"rules\"\n label-position=\"top\"\n v-bind=\"$attrs\"\n >\n <div class=\"app-form-container\" :style=\"containerStyle\">\n <!-- 表单项 -->\n <template v-for=\"(column, columnIndex) in columns\" :key=\"column.key\">\n <el-form-item\n v-if=\"columnShowHandler(props, column)\"\n :rules=\"column.rules\"\n :prop=\"isArray(column.field) ? column.field[0] : column.field\"\n :style=\"columnItemStyle(props, column)\"\n >\n <!-- 表单项label -->\n <template #label>\n <div class=\"flex\">\n <slot\n v-if=\"column.labelSlot && $slots[column.labelSlot]\"\n :name=\"column.labelSlot\"\n :column=\"column\"\n ></slot>\n <span v-else class=\"text-main\">{{ column.label }}</span>\n <span\n v-if=\"isRequired(props, column)\"\n class=\"label-required\"\n ></span>\n <el-popover\n v-if=\"column.help\"\n placement=\"bottom-start\"\n popper-class=\"popover_echarts w-[200px]\"\n trigger=\"hover\"\n >\n <div>\n {{ funRunHandler(column.help) }}\n </div>\n <template #reference>\n <div class=\"flex items-center\">\n <svg-icon\n svg-name=\"help\"\n class-name=\"!w-3 !h-3 ml-1 svgBox\"\n />\n {{ t('hy.help') }}\n </div>\n </template>\n </el-popover>\n <div\n v-if=\"column.rightSlot && $slots[column.rightSlot]\"\n class=\"ml-auto\"\n >\n <slot :name=\"column.rightSlot\"></slot>\n </div>\n </div>\n </template>\n <!-- 表单组件 -->\n <template\n v-if=\"column.readonly || readonly || (!column.type && !column.slot)\"\n >\n <span>{{ renderText(props, column, columnIndex) }}</span>\n </template>\n <template v-else>\n <!-- 自定义具名插槽 -->\n <slot v-if=\"column.slot && $slots[column.slot]\" :name=\"column.slot\" :column=\"column\" />\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 ></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 ></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 ></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 ></app-date-picker>\n </template>\n <!-- 单选 -->\n <el-radio-group\n v-else-if=\"column.type === 'radio'\"\n v-model=\"model[column.field]\"\n :disabled=\"isDisabled(props, column)\"\n v-bind=\"column.attrs\"\n ></el-radio-group>\n <!-- 多选 -->\n <el-checkbox-group\n v-else-if=\"column.type === 'checkbox'\"\n v-model=\"model[column.field]\"\n :disabled=\"isDisabled(props, column)\"\n v-bind=\"column.attrs\"\n ></el-checkbox-group>\n </template>\n </el-form-item>\n </template>\n </div>\n </el-form>\n</template>\n"],"names":["computed","isNumber","nextTick","unref","resetAppFormValue","_openBlock","_createBlock","_unref","ElForm","_mergeProps"],"mappings":";;;;;;;;;;;;;;AAsBA,OAAO,CAAC,GAAC,CAAA,eAAkB,EAAE,CAAA,8BAAwB,CAAA,CAAA;;;;;;AAGvC,IAAA,KAAA,EAAA;AACd,MAAM,YAAW;AACjB,MAAA,OAAA,EAAA,OAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,QAAM,CAAA,MAAQ;;AA2Bd,QAAQ;AACR;AACA,MAAM,CAAA,kBAAgB,IAAA,GAAU,EAAE,CAAC;AACnC,IAAE,CAAA,CAAA;AACF,IAAI,MAAI,cAAe,GAAAA,YAAQ,CAAA,MAAA;AAC/B,MAAM,MAAM,SAAO,GAAAC,WAAa,CAAC,KAAG,CAAG,SAAS,CAAC,GAAA,KAAO,CAAA,SAAA,IAAA,CAAA,GAAA,CAAA;AACxD,MAAM,OAAK;AACX,QAAM,mBAAqB,EAAC,CAAA,OAAM,EAAA,SAAA,CAAA,iBAAA;AAClC,OAAI;AACJ,IAAI,CAAA,CAAA;AACJ,IAAI,QAAQ,CAAC;AACb,MAAC,QAAA,EAAA,OAAA,QAAA,KAAA;AACD,QAAM,MAAAC,YAAgB,EAAC;AACvB,QAAQ,OAAAC,SAAY,CAAA,eAAe,CAAA,CAAA,QAAW,CAAC,QAAO,CAAA;AACtD;AACA,MAAI,aAAA,EAAA,OAAsB,MAAQ;AAClC,QAAE,MAAAD,YAAA,EAAA;AACF,QAAC,OAAAC,SAAA,CAAA,eAAA,CAAA,CAAA,aAAA,CAAA,MAAA,CAAA;;AAED,MAAA,WAAa,EAAA,CAAA,MAAA,KAAA;AACb,QAAE,IAAU,OAAO,GAAA,KAAQ,CAAC,OAAI,IAAA,EAAA;AAChC,QAAI,UAAc,KAAC,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA;AACnB,UAAU,OAAO,GAAA,MAAA,CAAA,GAAA,CAAA,CAAe,GAAE,KAAA,aAAiB,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,CAAA,OAAA,CAAA;AACnD,QAAG;AACH,QAAEC,4BAAsB,CAAA,OAAS,EAAE,KAAA,CAAA,KAAA,CAAA;AACnC,MAAI,CAAA;AACJ,MAAI,aAAa,EAAA,OAAA,MAAiB,KAAA;AAClC,QAAG,MAAAF,YAAA,EAAA;AACH,QAAEC,SAAW,CAAC,eAAa,CAAA,CAAA,aAAA,CAAA,MAAA,CAAA;AAC3B,MAAI,CAAG;AACP,MAAM,aAAY,EAAA,OAAQ,MAAQ,KAAA;AAClC,QAAM,MAAQD,YAAQ,EAAC;AACvB,QAAIC,SAAA,CAAA,eAAA,CAAA,CAAA,aAAA,CAAA,MAAA,CAAA;AACJ,MAAI,CAAA;AACJ,MAAG,MAAA,EAAAH,YAAA,CAAA,MAAA;AACH,QAAE,IAAA,EAAA;AACF,QAAI,WAAe,GAAAG,SAAA,CAAA,eAAA,CAAA,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,MAAA,KAAA,EAAA;AACnB,MAAI,CAAA,CAAA;AACJ,MAAG,QAAA,EAAA,OAAA,MAAA,KAAA;AACH,QAAE,MAAAD,YAAoB,EAAE;AACxB,QAAI,gBAAe,CAAA,eAAA,CAAA,CAAA,QAAA,CAAA,MAAA,CAAA;AACnB,MAAI;AACJ;AACA;AACA;AACA;AACA,KAAE,CAAA;AACF,IAAI,cAAc,MAAC,KAAA;AACnB,MAAI,OAAOG,aAAM,EAAA,EAAAC,eAAiB,CAAAC,SAAS,CAAAC,kBAAM,CAAA,EAAAC,cAAA,CAAA;AACjD,QAAG,OAAA,EAAA,iBAAA;AACH,4BAA4B;AAC5B,QAAO,KAAM,EAAA,OAAS,CAAA,KAAA;AACtB,QAAO,KAAM,EAAA,OAAA,CAAA,KAAe;AAC5B,QAAK,gBAAA,EAAA;AACL,OAAC,EAAA,IAAA,CAAA,MAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var appForm = require('./appForm.vue.js');
|
|
6
|
+
var useAppForm = require('./js/useAppForm.js');
|
|
7
|
+
var handler = require('../../utils/handler.js');
|
|
8
|
+
|
|
9
|
+
const AppForm = handler.withInstall(appForm.default);
|
|
10
|
+
|
|
11
|
+
exports.useAppForm = useAppForm.useAppForm;
|
|
12
|
+
exports.AppForm = AppForm;
|
|
13
|
+
exports.default = AppForm;
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../packages/components/appForm/index.js"],"sourcesContent":["import componnet from './appForm.vue'\nimport { withInstall } from '@hy-dispatch-ui-v3/utils'\n\nconst AppForm = withInstall(componnet)\n\nexport { AppForm }\n\nexport { useAppForm } from './js/useAppForm.js'\n\nexport default AppForm\n"],"names":["withInstall","componnet"],"mappings":";;;;;;;;AAEK,MAAC,OAAO,GAAGA,mBAAW,CAACC,eAAS;;;;;;"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var vue = require('vue');
|
|
4
|
+
var is = require('../../../utils/is.js');
|
|
5
|
+
var handler = require('../../../utils/handler.js');
|
|
6
|
+
|
|
7
|
+
function columnItemStyle(props, column) {
|
|
8
|
+
const style = {};
|
|
9
|
+
let span = handler.funRunHandler(column.span, column, props.model);
|
|
10
|
+
if (is.isNumber(span) && span > 1) {
|
|
11
|
+
span = span >= props.columnNum ? props.columnNum : span;
|
|
12
|
+
style["grid-column"] = `span ${span}`;
|
|
13
|
+
}
|
|
14
|
+
return style;
|
|
15
|
+
}
|
|
16
|
+
function columnShowHandler(props, column) {
|
|
17
|
+
const show = vue.unref(column.show);
|
|
18
|
+
if (is.isBoolean(show)) return show;
|
|
19
|
+
if (is.isFunction(show)) return show(column, props.model);
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
function isRequired(props, column) {
|
|
23
|
+
var _a;
|
|
24
|
+
let { readonly, field, rules } = column;
|
|
25
|
+
if (props.readonly || readonly) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
if (Array.isArray(field)) {
|
|
29
|
+
return field.find((key) => isRequired(props, { ...column, field: key }));
|
|
30
|
+
}
|
|
31
|
+
rules = is.isArray(rules) && (rules == null ? void 0 : rules.length) || is.isObject(rules) ? rules : (_a = props.rules) == null ? void 0 : _a[field];
|
|
32
|
+
if (is.isArray(rules)) {
|
|
33
|
+
return rules.some((item) => item.required);
|
|
34
|
+
}
|
|
35
|
+
if (is.isObject(rules)) {
|
|
36
|
+
return rules == null ? void 0 : rules.required;
|
|
37
|
+
}
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
function isDisabled(props, column) {
|
|
41
|
+
var _a;
|
|
42
|
+
return !!(props.loading || ((_a = column.attrs) == null ? void 0 : _a.disabled));
|
|
43
|
+
}
|
|
44
|
+
function renderText(props, column = {}, index) {
|
|
45
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
46
|
+
const { type, field, customRender } = column;
|
|
47
|
+
const { fieldNames, options = [] } = column.attrs || {};
|
|
48
|
+
if (customRender && typeof customRender === "function") {
|
|
49
|
+
return customRender({
|
|
50
|
+
column: props.columns[index],
|
|
51
|
+
model: props.model,
|
|
52
|
+
value: props.model[field]
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
if (type === "range-picker") {
|
|
56
|
+
const [start, end] = field;
|
|
57
|
+
return ((_a = props.model) == null ? void 0 : _a[start]) ? `${(_b = props.model) == null ? void 0 : _b[start]} ~ ${(_c = props.model) == null ? void 0 : _c[end]}` : "";
|
|
58
|
+
}
|
|
59
|
+
if (type === "location") {
|
|
60
|
+
const [lon, lat] = field;
|
|
61
|
+
return [props.model[lon], props.model[lat]].filter(Boolean).join("\uFF0C");
|
|
62
|
+
}
|
|
63
|
+
if (/^(select|radio|checkbox)$/.test(type)) {
|
|
64
|
+
const target = options.find(
|
|
65
|
+
(item) => {
|
|
66
|
+
var _a2;
|
|
67
|
+
return item[fieldNames.value] === ((_a2 = props.model) == null ? void 0 : _a2[field]);
|
|
68
|
+
}
|
|
69
|
+
);
|
|
70
|
+
return (target == null ? void 0 : target[fieldNames.label]) || ((_d = props.model) == null ? void 0 : _d[field]) || "";
|
|
71
|
+
}
|
|
72
|
+
if (/^dept-select(-all)?$/.test(type)) {
|
|
73
|
+
const dict = /^dept-select$/.test(type) ? deptTreeDict.value : deptTreeAllDict.value;
|
|
74
|
+
return dict[(_e = props.model) == null ? void 0 : _e[field]] || ((_f = props.model) == null ? void 0 : _f[field]) || "";
|
|
75
|
+
}
|
|
76
|
+
if (type === "area-select") {
|
|
77
|
+
return areaTreeDict.value[(_g = props.model) == null ? void 0 : _g[field]] || ((_h = props.model) == null ? void 0 : _h[field]) || "";
|
|
78
|
+
}
|
|
79
|
+
if (Array.isArray(field)) {
|
|
80
|
+
return field.map((key) => {
|
|
81
|
+
var _a2;
|
|
82
|
+
return ((_a2 = props.model) == null ? void 0 : _a2[key]) || "";
|
|
83
|
+
}).filter(Boolean).join(" - ");
|
|
84
|
+
}
|
|
85
|
+
return ((_i = props.model) == null ? void 0 : _i[field]) || ((_j = props.model) == null ? void 0 : _j[field]) || "";
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
exports.columnItemStyle = columnItemStyle;
|
|
89
|
+
exports.columnShowHandler = columnShowHandler;
|
|
90
|
+
exports.isDisabled = isDisabled;
|
|
91
|
+
exports.isRequired = isRequired;
|
|
92
|
+
exports.renderText = renderText;
|
|
93
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../packages/components/appForm/js/index.js"],"sourcesContent":["import { unref } from 'vue'\nimport {\n isArray,\n isBoolean,\n isFunction,\n isNumber,\n isObject,\n funRunHandler,\n} from '@hy-dispatch-ui-v3/utils'\n\n// 列样式\nexport function columnItemStyle(props, column) {\n const style = {}\n let span = funRunHandler(column.span, column, props.model)\n if (isNumber(span) && span > 1) {\n span = span >= props.columnNum ? props.columnNum : span\n style['grid-column'] = `span ${span}`\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 isRequired(props, column) {\n let { readonly, field, rules } = column\n if (props.readonly || readonly) {\n return false\n }\n if (Array.isArray(field)) {\n return field.find((key) => isRequired(props, { ...column, field: key }))\n }\n rules =\n (isArray(rules) && rules?.length) || isObject(rules)\n ? rules\n : props.rules?.[field]\n if (isArray(rules)) {\n return rules.some((item) => item.required)\n }\n if (isObject(rules)) {\n return rules?.required\n }\n return false\n}\n\n// 是否禁用\nexport function isDisabled(props, column) {\n return !!(props.loading || column.attrs?.disabled)\n}\n\n// 渲染文本\nexport function renderText(props, column = {}, index) {\n const { type, field, customRender } = column\n const { fieldNames, options = [] } = column.attrs || {}\n if (customRender && typeof customRender === 'function') {\n return customRender({\n column: props.columns[index],\n model: props.model,\n value: props.model[field],\n })\n }\n if (type === 'range-picker') {\n const [start, end] = field\n return props.model?.[start]\n ? `${props.model?.[start]} ~ ${props.model?.[end]}`\n : ''\n }\n if (type === 'location') {\n const [lon, lat] = field\n return [props.model[lon], props.model[lat]].filter(Boolean).join(',')\n }\n if (/^(select|radio|checkbox)$/.test(type)) {\n const target = options.find(\n (item) => item[fieldNames.value] === props.model?.[field]\n )\n return target?.[fieldNames.label] || props.model?.[field] || ''\n }\n if (/^dept-select(-all)?$/.test(type)) {\n const dict = /^dept-select$/.test(type)\n ? deptTreeDict.value\n : deptTreeAllDict.value\n return dict[props.model?.[field]] || props.model?.[field] || ''\n }\n if (type === 'area-select') {\n return (\n areaTreeDict.value[props.model?.[field]] || props.model?.[field] || ''\n )\n }\n if (Array.isArray(field)) {\n return field\n .map((key) => props.model?.[key] || '')\n .filter(Boolean)\n .join(' - ')\n }\n return props.model?.[field] || props.model?.[field] || ''\n}\n"],"names":["funRunHandler","isNumber","unref","isBoolean","isFunction","isArray","isObject"],"mappings":"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"}
|
|
@@ -0,0 +1,152 @@
|
|
|
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 genRuleRequiredMsgHandler = (config) => {
|
|
49
|
+
const { t } = useLocale.useLocale();
|
|
50
|
+
const { type, prop, label } = config || {};
|
|
51
|
+
if (!prop || !(prop == null ? void 0 : prop.length)) return "";
|
|
52
|
+
switch (type) {
|
|
53
|
+
case "input":
|
|
54
|
+
return t("hy.pleaseEnterPlaceholder", [label]);
|
|
55
|
+
case "select":
|
|
56
|
+
case "radio":
|
|
57
|
+
case "checkbox":
|
|
58
|
+
case "date-picker":
|
|
59
|
+
return t("hy.pleaseSelectPlaceholder", [label]);
|
|
60
|
+
default:
|
|
61
|
+
return t("hy.cannotBeEmpty", [label]);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
const rulesHandler = (config) => {
|
|
65
|
+
let { rules, required } = config || {};
|
|
66
|
+
rules = is.isArray(rules) ? [...rules] : [required].filter(Boolean);
|
|
67
|
+
if (!rules.some((item) => item.required) && required) {
|
|
68
|
+
rules.unshift({
|
|
69
|
+
required: true,
|
|
70
|
+
message: genRuleRequiredMsgHandler(config),
|
|
71
|
+
trigger: "blur"
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
return rules;
|
|
75
|
+
};
|
|
76
|
+
function appFormItemHandler(column = {}) {
|
|
77
|
+
const { placeholder, startPlaceholder, endPlaceholder } = genPlaceholderHandler(column);
|
|
78
|
+
const attrs = { ...column.attrs || {}, placeholder };
|
|
79
|
+
column = handler.mergeDeep(
|
|
80
|
+
{ ...column },
|
|
81
|
+
{
|
|
82
|
+
key: /* @__PURE__ */ Symbol("appFormItemKey"),
|
|
83
|
+
field: column.prop,
|
|
84
|
+
readonly: column.readonly || false,
|
|
85
|
+
rules: rulesHandler(column)
|
|
86
|
+
}
|
|
87
|
+
);
|
|
88
|
+
if (/^(input)$/.test(column.type)) {
|
|
89
|
+
return {
|
|
90
|
+
...column,
|
|
91
|
+
attrs: {
|
|
92
|
+
maxlength: attrs.type === "textarea" ? 255 : attrs.type === "text" ? 100 : void 0,
|
|
93
|
+
...attrs
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
} else if (/^(radio|checkbox|select)$/.test(column.type)) {
|
|
97
|
+
return {
|
|
98
|
+
...column,
|
|
99
|
+
attrs: {
|
|
100
|
+
...attrs,
|
|
101
|
+
props: {
|
|
102
|
+
label: "label",
|
|
103
|
+
value: "value",
|
|
104
|
+
disabled: "disabled",
|
|
105
|
+
options: "options",
|
|
106
|
+
...attrs.props
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
} else if (/^date-picker$/.test(column.type)) {
|
|
111
|
+
return {
|
|
112
|
+
...column,
|
|
113
|
+
attrs: {
|
|
114
|
+
format: attrs.format || date.getDefaultValueFormatByType(attrs.type),
|
|
115
|
+
valueFormat: attrs.valueFormat || date.getDefaultValueFormatByType(attrs.type),
|
|
116
|
+
...attrs,
|
|
117
|
+
startPlaceholder,
|
|
118
|
+
endPlaceholder
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
return column;
|
|
123
|
+
}
|
|
124
|
+
const resetAppFormValue = (columns = [], obj = {}) => {
|
|
125
|
+
for (const item of columns) {
|
|
126
|
+
const value = handler.funRunHandler(item.defaultValue);
|
|
127
|
+
if (Array.isArray(item.prop)) {
|
|
128
|
+
for (let i = 0; i < item.prop.length; i++) {
|
|
129
|
+
obj[item.prop[i]] = value && Array.isArray(value) ? value[i] : void 0;
|
|
130
|
+
}
|
|
131
|
+
} else {
|
|
132
|
+
obj[item.prop] = value;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return obj;
|
|
136
|
+
};
|
|
137
|
+
const useAppForm = (config = [], model) => {
|
|
138
|
+
const columns = [];
|
|
139
|
+
for (const item of vue.unref(config)) {
|
|
140
|
+
const target = appFormItemHandler(item);
|
|
141
|
+
columns.push(target);
|
|
142
|
+
}
|
|
143
|
+
const formModel = resetAppFormValue(columns, model);
|
|
144
|
+
return {
|
|
145
|
+
formModel: vue.toRef(formModel),
|
|
146
|
+
formColumns: vue.toRef(columns)
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
exports.resetAppFormValue = resetAppFormValue;
|
|
151
|
+
exports.useAppForm = useAppForm;
|
|
152
|
+
//# sourceMappingURL=useAppForm.js.map
|