@fecp/mobile 1.0.52 → 1.0.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/es/mobile.css +18 -2
  2. package/es/packages/mobile/src/axios/config.mjs +18 -0
  3. package/es/packages/mobile/src/axios/index.mjs +5 -3
  4. package/es/packages/mobile/src/components/form/checkboxGroup/CheckboxGroup.vue.mjs +8 -2
  5. package/es/packages/mobile/src/components/form/checkboxGroup/index.mjs +2 -2
  6. package/es/packages/mobile/src/components/form/fieldCascaderPicker/fieldCascaderPicker.vue.mjs +31 -5
  7. package/es/packages/mobile/src/components/form/fieldCheckbox/FieldCheckbox.vue.mjs +15 -8
  8. package/es/packages/mobile/src/components/form/fieldPicker/FieldPicker.vue.mjs +37 -10
  9. package/es/packages/mobile/src/components/form/fieldRadio/FieldRadio.vue.mjs +17 -8
  10. package/es/packages/mobile/src/components/form/form/Form.vue.mjs +24 -3
  11. package/es/packages/mobile/src/components/form/formItem/FormItem.vue.mjs +4 -2
  12. package/es/packages/mobile/src/components/form/radioGroup/RadioGroup.vue.mjs +4 -1
  13. package/es/packages/mobile/src/components/form/uploader/Uploader.vue.mjs +198 -16
  14. package/es/packages/mobile/src/utils/env.mjs +8 -0
  15. package/es/packages/mobile/src/utils/optionUtil.mjs +94 -0
  16. package/lib/mobile.css +18 -2
  17. package/lib/packages/mobile/src/axios/config.js +18 -0
  18. package/lib/packages/mobile/src/axios/index.js +5 -3
  19. package/lib/packages/mobile/src/components/form/checkboxGroup/CheckboxGroup.vue.js +8 -2
  20. package/lib/packages/mobile/src/components/form/fieldCascaderPicker/fieldCascaderPicker.vue.js +30 -4
  21. package/lib/packages/mobile/src/components/form/fieldCheckbox/FieldCheckbox.vue.js +14 -7
  22. package/lib/packages/mobile/src/components/form/fieldPicker/FieldPicker.vue.js +36 -9
  23. package/lib/packages/mobile/src/components/form/fieldRadio/FieldRadio.vue.js +16 -7
  24. package/lib/packages/mobile/src/components/form/form/Form.vue.js +23 -2
  25. package/lib/packages/mobile/src/components/form/formItem/FormItem.vue.js +4 -2
  26. package/lib/packages/mobile/src/components/form/radioGroup/RadioGroup.vue.js +4 -1
  27. package/lib/packages/mobile/src/components/form/uploader/Uploader.vue.js +197 -15
  28. package/lib/packages/mobile/src/utils/env.js +8 -0
  29. package/lib/packages/mobile/src/utils/optionUtil.js +94 -0
  30. package/package.json +1 -1
@@ -9,24 +9,206 @@
9
9
  /* empty css */
10
10
  /* empty css */
11
11
  /* empty css */
12
- import { createBlock, openBlock, normalizeProps, guardReactiveProps, createSlots, renderList, withCtx, renderSlot } from "vue";
12
+ import { computed, createBlock, openBlock, mergeProps, unref, isRef, createSlots, withCtx, createElementBlock, createCommentVNode, createVNode, createElementVNode, toDisplayString, renderList, renderSlot } from "vue";
13
+ import { useDataSource } from "../../../utils/dataSourceUtil.mjs";
14
+ /* empty css */
13
15
  import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.mjs";
14
16
  import { Uploader } from "../../../../../../node_modules/.pnpm/vant@4.9.17_vue@3.5.13_typescript@5.7.3_/node_modules/vant/es/uploader/index.mjs";
15
- const _sfc_main = {};
16
- function _sfc_render(_ctx, _cache) {
17
- const _component_van_uploader = Uploader;
18
- return openBlock(), createBlock(_component_van_uploader, normalizeProps(guardReactiveProps(_ctx.$attrs)), createSlots({ _: 2 }, [
19
- renderList(_ctx.$slots, (item, key) => {
20
- return {
21
- name: key,
22
- fn: withCtx(() => [
23
- renderSlot(_ctx.$slots, key)
24
- ])
25
- };
26
- })
27
- ]), 1040);
28
- }
29
- const _Uploader = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
17
+ import { showToast } from "../../../../../../node_modules/.pnpm/vant@4.9.17_vue@3.5.13_typescript@5.7.3_/node_modules/vant/es/toast/function-call.mjs";
18
+ import "../../../../../../node_modules/.pnpm/vant@4.9.17_vue@3.5.13_typescript@5.7.3_/node_modules/vant/es/toast/index.mjs";
19
+ import { Icon } from "../../../../../../node_modules/.pnpm/vant@4.9.17_vue@3.5.13_typescript@5.7.3_/node_modules/vant/es/icon/index.mjs";
20
+ const _hoisted_1 = { class: "preview-cover van-ellipsis" };
21
+ const _hoisted_2 = {
22
+ key: 0,
23
+ class: "van-uploader__preview-delete--shadow"
24
+ };
25
+ const _sfc_main = {
26
+ __name: "Uploader",
27
+ props: {
28
+ modelValue: {
29
+ type: Array,
30
+ default: []
31
+ },
32
+ autoUpload: {
33
+ //选择文件后自动上传
34
+ type: Boolean,
35
+ default: false
36
+ },
37
+ dataSource: {
38
+ type: String,
39
+ default: ""
40
+ },
41
+ dataSourceParams: {
42
+ type: Object,
43
+ default: {}
44
+ },
45
+ acceptType: {
46
+ //上传文件类型
47
+ type: Array,
48
+ default: []
49
+ },
50
+ maxSize: {
51
+ //文件大小限制,单位为 MB
52
+ type: Number,
53
+ default: 5
54
+ },
55
+ previewSize: {
56
+ //上传区域的尺寸
57
+ type: Number,
58
+ default: 80
59
+ },
60
+ readonly: {
61
+ type: Boolean,
62
+ default: false
63
+ }
64
+ },
65
+ emits: ["update:modelValue"],
66
+ setup(__props, { emit: __emit }) {
67
+ const props = __props;
68
+ const emit = __emit;
69
+ const fileList = computed({
70
+ get: () => {
71
+ return props.modelValue;
72
+ },
73
+ set: (val) => {
74
+ emit("update:modelValue", val);
75
+ }
76
+ });
77
+ const compMaxSize = computed(() => {
78
+ return props.maxSize * 1024 * 1024;
79
+ });
80
+ const accept = computed(() => {
81
+ const acceptArr = [];
82
+ if (props.acceptType.includes("image")) {
83
+ acceptArr.push("image/*");
84
+ }
85
+ if (props.acceptType.includes("video")) {
86
+ acceptArr.push("video/*");
87
+ }
88
+ if (props.acceptType.includes("audio")) {
89
+ acceptArr.push("audio/*");
90
+ }
91
+ if (props.acceptType.includes("text")) {
92
+ acceptArr.push("text/plain");
93
+ }
94
+ if (props.acceptType.includes("doc")) {
95
+ acceptArr.push(".doc");
96
+ acceptArr.push(".docx");
97
+ }
98
+ if (props.acceptType.includes("xls")) {
99
+ acceptArr.push(".xls");
100
+ acceptArr.push(".xlsx");
101
+ }
102
+ if (props.acceptType.includes("ppt")) {
103
+ acceptArr.push(".ppt");
104
+ acceptArr.push(".pptx");
105
+ }
106
+ if (props.acceptType.includes("pdf")) {
107
+ acceptArr.push("application/pdf");
108
+ }
109
+ if (props.acceptType.includes("zip")) {
110
+ acceptArr.push("application/zip");
111
+ acceptArr.push("application/x-rar-compressed");
112
+ }
113
+ return acceptArr.join(",");
114
+ });
115
+ const validators = {
116
+ image: (file) => ["image/jpeg", "image/png", "image/gif", "image/svg+xml"].includes(
117
+ file.type
118
+ ),
119
+ video: (file) => file.type.startsWith("video/"),
120
+ audio: (file) => file.type.startsWith("audio/"),
121
+ text: (file) => file.type === "text/plain",
122
+ doc: (file) => [".doc", ".docx"].some((ext) => file.name.endsWith(ext)),
123
+ xls: (file) => [".xls", ".xlsx"].some((ext) => file.name.endsWith(ext)),
124
+ ppt: (file) => [".ppt", ".pptx"].some((ext) => file.name.endsWith(ext)),
125
+ pdf: (file) => file.type === "application/pdf",
126
+ zip: (file) => ["application/zip", "application/x-rar-compressed"].includes(file.type)
127
+ };
128
+ const typeChineseMap = {
129
+ image: "图片",
130
+ video: "视频",
131
+ audio: "音频",
132
+ text: "文本",
133
+ doc: "Word文档",
134
+ xls: "Excel文档",
135
+ ppt: "PowerPoint文档",
136
+ pdf: "PDF文档",
137
+ zip: "压缩包"
138
+ };
139
+ const beforeRead = (file) => {
140
+ console.log("🚀 ~ beforeRead:", file);
141
+ for (const type of props.acceptType) {
142
+ if (validators[type] && !validators[type](file)) {
143
+ showToast(`上传的文件不是有效的${typeChineseMap[type]}`);
144
+ return false;
145
+ }
146
+ }
147
+ return true;
148
+ };
149
+ const afterRead = (file) => {
150
+ console.log("🚀 ~ file:", file);
151
+ if (!props.autoUpload) {
152
+ return;
153
+ }
154
+ file.status = "uploading";
155
+ file.message = "上传中...";
156
+ fileList.value.map((item) => {
157
+ return {
158
+ file: item.file
159
+ };
160
+ });
161
+ const dataSource = useDataSource(props.dataSource);
162
+ dataSource == null ? void 0 : dataSource.load({ fileList: fileList.value, ...props.dataSourceParams }).then((res) => {
163
+ }).catch((err) => {
164
+ file.status = "failed";
165
+ file.message = "上传失败";
166
+ });
167
+ };
168
+ const onOversize = (file) => {
169
+ console.log(file);
170
+ showToast(`文件大小不能超过 ${props.maxSize}kb`);
171
+ };
172
+ return (_ctx, _cache) => {
173
+ const _component_van_icon = Icon;
174
+ const _component_van_uploader = Uploader;
175
+ return openBlock(), createBlock(_component_van_uploader, mergeProps(_ctx.$attrs, {
176
+ modelValue: unref(fileList),
177
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(fileList) ? fileList.value = $event : null),
178
+ accept: unref(accept),
179
+ "after-read": afterRead,
180
+ "before-read": beforeRead,
181
+ onOversize,
182
+ "max-size": unref(compMaxSize),
183
+ "result-type": "file",
184
+ "preview-size": __props.previewSize + "px"
185
+ }), createSlots({
186
+ "preview-cover": withCtx(({ file }) => [
187
+ createElementVNode("div", _hoisted_1, toDisplayString((file == null ? void 0 : file.name) || ""), 1)
188
+ ]),
189
+ "preview-delete": withCtx(() => [
190
+ !__props.readonly ? (openBlock(), createElementBlock("div", _hoisted_2, [
191
+ createVNode(_component_van_icon, {
192
+ name: "cross",
193
+ class: "van-uploader__preview-delete-icon"
194
+ })
195
+ ])) : createCommentVNode("", true)
196
+ ]),
197
+ _: 2
198
+ }, [
199
+ renderList(_ctx.$slots, (item, key) => {
200
+ return {
201
+ name: key,
202
+ fn: withCtx(() => [
203
+ key != "preview-cover" && key != "preview-delete" ? renderSlot(_ctx.$slots, key, { key: 0 }, void 0, true) : createCommentVNode("", true)
204
+ ])
205
+ };
206
+ })
207
+ ]), 1040, ["modelValue", "accept", "max-size", "preview-size"]);
208
+ };
209
+ }
210
+ };
211
+ const _Uploader = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-cbd8c56a"]]);
30
212
  export {
31
213
  _Uploader as default
32
214
  };
@@ -0,0 +1,8 @@
1
+ function getEnvConfig() {
2
+ const configName = "configProd";
3
+ return window[configName] || window.parent[configName];
4
+ }
5
+ const envConfig = getEnvConfig();
6
+ export {
7
+ envConfig as default
8
+ };
@@ -0,0 +1,94 @@
1
+ import XEUtils from "../../../../_virtual/index.mjs";
2
+ import useHttp from "../axios/index.mjs";
3
+ import { useDataSource } from "./dataSourceUtil.mjs";
4
+ import envConfig from "./env.mjs";
5
+ const baseUrl = envConfig.api_base_url;
6
+ const getOptions = ({
7
+ optionType,
8
+ dicKey,
9
+ dicList,
10
+ dataSource,
11
+ dataSourceParams,
12
+ staticOptions,
13
+ optionsFieldNames
14
+ }) => {
15
+ return new Promise((resolve, reject) => {
16
+ switch (optionType) {
17
+ case "static":
18
+ resolve(staticOptions);
19
+ case "dic":
20
+ let dicListToOption = function(dicList2) {
21
+ return dicList2.map((item) => {
22
+ return {
23
+ text: item.optName,
24
+ value: item.optCode
25
+ };
26
+ });
27
+ };
28
+ if (dicList && !XEUtils.isEmpty(dicList)) {
29
+ resolve(dicListToOption(dicList));
30
+ } else {
31
+ getParmDicMapByKeys(dicKey).then((data) => {
32
+ const option = dicListToOption(data[dicKey]);
33
+ resolve(option);
34
+ });
35
+ }
36
+ break;
37
+ case "library":
38
+ const dataSourceRef = useDataSource(dataSource);
39
+ dataSourceRef == null ? void 0 : dataSourceRef.load(dataSourceParams || {}).then((res) => {
40
+ var _a;
41
+ const data = ((_a = res == null ? void 0 : res.data) == null ? void 0 : _a.records) || (res == null ? void 0 : res.data) || res || [];
42
+ const option = data.map((item) => {
43
+ return {
44
+ text: item[optionsFieldNames.text],
45
+ value: XEUtils.toValueString(item[optionsFieldNames.value])
46
+ };
47
+ });
48
+ resolve(option);
49
+ }).catch((err) => {
50
+ console.error(err);
51
+ });
52
+ break;
53
+ }
54
+ });
55
+ };
56
+ const getTreeOptions = ({
57
+ optionType,
58
+ dataSource,
59
+ dataSourceParams,
60
+ staticOptions,
61
+ optionsFieldNames
62
+ }) => {
63
+ return new Promise((resolve, reject) => {
64
+ switch (optionType) {
65
+ case "static":
66
+ resolve(staticOptions);
67
+ case "library":
68
+ const dataSourceRef = useDataSource(dataSource);
69
+ dataSourceRef == null ? void 0 : dataSourceRef.load(dataSourceParams || {}).then((res) => {
70
+ var _a;
71
+ const data = ((_a = res == null ? void 0 : res.data) == null ? void 0 : _a.records) || (res == null ? void 0 : res.data) || res || [];
72
+ resolve(data);
73
+ }).catch((err) => {
74
+ console.error(err);
75
+ });
76
+ break;
77
+ }
78
+ });
79
+ };
80
+ const getParmDicMapByKeys = async (dicKeys) => {
81
+ const http = useHttp();
82
+ const res = await http.postForm(
83
+ `${baseUrl}/parm/sysParmDic/getDicListByKey`,
84
+ {
85
+ keyName: dicKeys
86
+ }
87
+ );
88
+ return res.data;
89
+ };
90
+ export {
91
+ getOptions,
92
+ getParmDicMapByKeys,
93
+ getTreeOptions
94
+ };
package/lib/mobile.css CHANGED
@@ -57,6 +57,10 @@
57
57
  .van-swipe-cell{position:relative;overflow:hidden;cursor:-webkit-grab;cursor:grab}.van-swipe-cell__wrapper{transition-timing-function:cubic-bezier(.18,.89,.32,1);transition-property:transform}.van-swipe-cell__left,.van-swipe-cell__right{position:absolute;top:0;height:100%}.van-swipe-cell__left{left:0;transform:translate3d(-100%,0,0)}.van-swipe-cell__right{right:0;transform:translate3d(100%,0,0)}
58
58
  .van-checkbox-group--horizontal{display:flex;flex-wrap:wrap}
59
59
  :root,:host{--van-checkbox-size: 20px;--van-checkbox-border-color: var(--van-gray-5);--van-checkbox-duration: var(--van-duration-fast);--van-checkbox-label-margin: var(--van-padding-xs);--van-checkbox-label-color: var(--van-text-color);--van-checkbox-checked-icon-color: var(--van-primary-color);--van-checkbox-disabled-icon-color: var(--van-gray-5);--van-checkbox-disabled-label-color: var(--van-text-color-3);--van-checkbox-disabled-background: var(--van-border-color)}.van-checkbox{display:flex;align-items:center;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.van-checkbox--disabled{cursor:not-allowed}.van-checkbox--label-disabled{cursor:default}.van-checkbox--horizontal{margin-right:var(--van-padding-sm)}.van-checkbox__icon{flex:none;height:1em;font-size:var(--van-checkbox-size);line-height:1em;cursor:pointer}.van-checkbox__icon .van-icon{display:block;box-sizing:border-box;width:1.25em;height:1.25em;color:transparent;font-size:.8em;line-height:1.25;text-align:center;border:1px solid var(--van-checkbox-border-color);transition-duration:var(--van-checkbox-duration);transition-property:color,border-color,background-color}.van-checkbox__icon--round .van-icon{border-radius:100%}.van-checkbox__icon--indeterminate .van-icon{display:flex;align-items:center;justify-content:center;color:var(--van-white);border-color:var(--van-checkbox-checked-icon-color);background-color:var(--van-checkbox-checked-icon-color)}.van-checkbox__icon--checked .van-icon{color:var(--van-white);background-color:var(--van-checkbox-checked-icon-color);border-color:var(--van-checkbox-checked-icon-color)}.van-checkbox__icon--disabled{cursor:not-allowed}.van-checkbox__icon--disabled .van-icon{background-color:var(--van-checkbox-disabled-background);border-color:var(--van-checkbox-disabled-icon-color)}.van-checkbox__icon--disabled.van-checkbox__icon--checked .van-icon{color:var(--van-checkbox-disabled-icon-color)}.van-checkbox__label{margin-left:var(--van-checkbox-label-margin);color:var(--van-checkbox-label-color);line-height:var(--van-checkbox-size)}.van-checkbox__label--left{margin:0 var(--van-checkbox-label-margin) 0 0}.van-checkbox__label--disabled{color:var(--van-checkbox-disabled-label-color)}
60
+
61
+ /* .fec-m-checkbox:deep(.van-checkbox) {
62
+ margin-bottom: 8px;
63
+ } */
60
64
  :root,:host{--van-field-label-width: 6.2em;--van-field-label-color: var(--van-text-color);--van-field-label-margin-right: var(--van-padding-sm);--van-field-input-text-color: var(--van-text-color);--van-field-input-error-text-color: var(--van-danger-color);--van-field-input-disabled-text-color: var(--van-text-color-3);--van-field-placeholder-text-color: var(--van-text-color-3);--van-field-icon-size: 18px;--van-field-clear-icon-size: 18px;--van-field-clear-icon-color: var(--van-gray-5);--van-field-right-icon-color: var(--van-gray-6);--van-field-error-message-color: var(--van-danger-color);--van-field-error-message-font-size: 12px;--van-field-text-area-min-height: 60px;--van-field-word-limit-color: var(--van-gray-7);--van-field-word-limit-font-size: var(--van-font-size-sm);--van-field-word-limit-line-height: 16px;--van-field-disabled-text-color: var(--van-text-color-3);--van-field-required-mark-color: var(--van-red)}.van-field{flex-wrap:wrap}.van-field__label{flex:none;box-sizing:border-box;width:var(--van-field-label-width);margin-right:var(--van-field-label-margin-right);color:var(--van-field-label-color);text-align:left;word-wrap:break-word}.van-field__label--center{text-align:center}.van-field__label--right{text-align:right}.van-field__label--top{display:flex;width:100%;text-align:left;margin-bottom:var(--van-padding-base);overflow-wrap:break-word}.van-field__label--required:before{margin-right:2px;color:var(--van-field-required-mark-color);content:"*"}.van-field--disabled .van-field__label{color:var(--van-field-disabled-text-color)}.van-field__value{overflow:visible}.van-field__body{display:flex;align-items:center}.van-field__control{display:block;box-sizing:border-box;width:100%;min-width:0;margin:0;padding:0;color:var(--van-field-input-text-color);line-height:inherit;text-align:left;background-color:transparent;border:0;resize:none;-webkit-user-select:auto;user-select:auto}.van-field__control::-webkit-input-placeholder{color:var(--van-field-placeholder-text-color)}.van-field__control::placeholder{color:var(--van-field-placeholder-text-color)}.van-field__control:read-only{cursor:default}.van-field__control:disabled{color:var(--van-field-input-disabled-text-color);cursor:not-allowed;opacity:1;-webkit-text-fill-color:var(--van-field-input-disabled-text-color)}.van-field__control--center{justify-content:center;text-align:center}.van-field__control--right{justify-content:flex-end;text-align:right}.van-field__control--custom{display:flex;align-items:center;min-height:var(--van-cell-line-height)}.van-field__control--error::-webkit-input-placeholder{color:var(--van-field-input-error-text-color);-webkit-text-fill-color:currentColor}.van-field__control--error,.van-field__control--error::placeholder{color:var(--van-field-input-error-text-color);-webkit-text-fill-color:currentColor}.van-field__control--min-height{min-height:var(--van-field-text-area-min-height)}.van-field__control[type=date],.van-field__control[type=time],.van-field__control[type=datetime-local]{min-height:var(--van-cell-line-height)}.van-field__control[type=search]{-webkit-appearance:none}.van-field__clear,.van-field__icon,.van-field__button,.van-field__right-icon{flex-shrink:0}.van-field__clear,.van-field__right-icon{margin-right:calc(var(--van-padding-xs) * -1);padding:0 var(--van-padding-xs);line-height:inherit}.van-field__clear{color:var(--van-field-clear-icon-color);font-size:var(--van-field-clear-icon-size);cursor:pointer}.van-field__left-icon .van-icon,.van-field__right-icon .van-icon{display:block;font-size:var(--van-field-icon-size);line-height:inherit}.van-field__left-icon{margin-right:var(--van-padding-base)}.van-field__right-icon{color:var(--van-field-right-icon-color)}.van-field__button{padding-left:var(--van-padding-xs)}.van-field__error-message{color:var(--van-field-error-message-color);font-size:var(--van-field-error-message-font-size);text-align:left}.van-field__error-message--center{text-align:center}.van-field__error-message--right{text-align:right}.van-field__word-limit{margin-top:var(--van-padding-base);color:var(--van-field-word-limit-color);font-size:var(--van-field-word-limit-font-size);line-height:var(--van-field-word-limit-line-height);text-align:right}
61
65
 
62
66
  .custom-close-icon {
@@ -75,15 +79,27 @@
75
79
  .van-radio-group--horizontal{display:flex;flex-wrap:wrap}
76
80
  :root,:host{--van-radio-size: 20px;--van-radio-dot-size: 8px;--van-radio-border-color: var(--van-gray-5);--van-radio-duration: var(--van-duration-fast);--van-radio-label-margin: var(--van-padding-xs);--van-radio-label-color: var(--van-text-color);--van-radio-checked-icon-color: var(--van-primary-color);--van-radio-disabled-icon-color: var(--van-gray-5);--van-radio-disabled-label-color: var(--van-text-color-3);--van-radio-disabled-background: var(--van-border-color)}.van-radio{display:flex;align-items:center;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.van-radio--disabled{cursor:not-allowed}.van-radio--label-disabled{cursor:default}.van-radio--horizontal{margin-right:var(--van-padding-sm)}.van-radio__icon{flex:none;height:1em;font-size:var(--van-radio-size);line-height:1em;cursor:pointer}.van-radio__icon .van-icon{display:block;box-sizing:border-box;width:1.25em;height:1.25em;color:transparent;font-size:.8em;line-height:1.25;text-align:center;border:1px solid var(--van-radio-border-color);transition-duration:var(--van-radio-duration);transition-property:color,border-color,background-color}.van-radio__icon--round .van-icon{border-radius:100%}.van-radio__icon--dot{position:relative;border-radius:100%;box-sizing:border-box;width:var(--van-radio-size);height:var(--van-radio-size);border:1px solid var(--van-radio-border-color);transition-duration:var(--van-radio-duration);transition-property:border-color}.van-radio__icon--dot__icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:100%;height:calc(100% - var(--van-radio-dot-size));width:calc(100% - var(--van-radio-dot-size));transition-duration:var(--van-radio-duration);transition-property:background-color}.van-radio__icon--checked .van-icon{color:var(--van-white);background-color:var(--van-radio-checked-icon-color);border-color:var(--van-radio-checked-icon-color)}.van-radio__icon--checked.van-radio__icon--dot{border-color:var(--van-radio-checked-icon-color)}.van-radio__icon--checked.van-radio__icon--dot .van-radio__icon--dot__icon{background:var(--van-radio-checked-icon-color)}.van-radio__icon--disabled{cursor:not-allowed}.van-radio__icon--disabled .van-icon{background-color:var(--van-radio-disabled-background);border-color:var(--van-radio-disabled-icon-color)}.van-radio__icon--disabled.van-radio__icon--checked .van-icon{color:var(--van-radio-disabled-icon-color)}.van-radio__label{margin-left:var(--van-radio-label-margin);color:var(--van-radio-label-color);line-height:var(--van-radio-size)}.van-radio__label--left{margin:0 var(--van-radio-label-margin) 0 0}.van-radio__label--disabled{color:var(--van-radio-disabled-label-color)}
77
81
 
78
- .fecMForm[data-v-e0489cda] .van-cell-group--inset {
82
+ .fecMForm[data-v-17ab5a76] .van-cell-group--inset {
79
83
  margin: 12px;
80
84
  }
81
- .fecMForm.isShadow[data-v-e0489cda] .van-cell-group--inset {
85
+ .fecMForm.isShadow[data-v-17ab5a76] .van-cell-group--inset {
82
86
  box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.12);
83
87
  }
84
88
  :root,:host{--van-search-padding: 10px var(--van-padding-sm);--van-search-background: var(--van-background-2);--van-search-content-background: var(--van-background);--van-search-input-height: 34px;--van-search-label-padding: 0 5px;--van-search-label-color: var(--van-text-color);--van-search-label-font-size: var(--van-font-size-md);--van-search-left-icon-color: var(--van-gray-6);--van-search-action-padding: 0 var(--van-padding-xs);--van-search-action-text-color: var(--van-text-color);--van-search-action-font-size: var(--van-font-size-md)}.van-search{display:flex;align-items:center;box-sizing:border-box;padding:var(--van-search-padding);background:var(--van-search-background)}.van-search__content{display:flex;flex:1;padding-left:var(--van-padding-sm);background:var(--van-search-content-background);border-radius:var(--van-radius-sm)}.van-search__content--round{border-radius:var(--van-radius-max)}.van-search__label{padding:var(--van-search-label-padding);color:var(--van-search-label-color);font-size:var(--van-search-label-font-size);line-height:var(--van-search-input-height)}.van-search__field{flex:1;align-items:center;padding:0 var(--van-padding-xs) 0 0;height:var(--van-search-input-height);background-color:transparent}.van-search__field .van-field__left-icon{color:var(--van-search-left-icon-color)}.van-search__field--with-message{height:auto;align-items:flex-start;padding-top:5px;padding-bottom:5px}.van-search--show-action{padding-right:0}.van-search input::-webkit-search-decoration,.van-search input::-webkit-search-cancel-button,.van-search input::-webkit-search-results-button,.van-search input::-webkit-search-results-decoration{display:none}.van-search__action{padding:var(--van-search-action-padding);color:var(--van-search-action-text-color);font-size:var(--van-search-action-font-size);line-height:var(--van-search-input-height);cursor:pointer;-webkit-user-select:none;user-select:none}.van-search__action:active{background-color:var(--van-active-color)}
85
89
  :root,:host{--van-image-preview-index-text-color: var(--van-white);--van-image-preview-index-font-size: var(--van-font-size-md);--van-image-preview-index-line-height: var(--van-line-height-md);--van-image-preview-index-text-shadow: 0 1px 1px var(--van-gray-8);--van-image-preview-overlay-background: rgba(0, 0, 0, .9);--van-image-preview-close-icon-size: 22px;--van-image-preview-close-icon-color: var(--van-gray-5);--van-image-preview-close-icon-margin: var(--van-padding-md);--van-image-preview-close-icon-z-index: 1}.van-image-preview{position:fixed;top:0;left:0;width:100%;height:100%;max-width:none;background-color:transparent;transform:none}.van-image-preview__swipe{height:100%}.van-image-preview__swipe-item{display:flex;align-items:center;justify-content:center;overflow:hidden}.van-image-preview__cover{position:absolute;top:0;left:0}.van-image-preview__image,.van-image-preview__image-wrap{width:100%;transition-property:transform}.van-image-preview__image--vertical,.van-image-preview__image-wrap--vertical{width:auto;height:100%}.van-image-preview__image img,.van-image-preview__image-wrap img,.van-image-preview__image video,.van-image-preview__image-wrap video{-webkit-user-drag:none}.van-image-preview__image .van-image__error,.van-image-preview__image-wrap .van-image__error{top:30%;height:40%}.van-image-preview__image .van-image__error-icon,.van-image-preview__image-wrap .van-image__error-icon{font-size:36px}.van-image-preview__image .van-image__loading,.van-image-preview__image-wrap .van-image__loading{background-color:transparent}.van-image-preview__index{position:absolute;top:var(--van-padding-md);left:50%;color:var(--van-image-preview-index-text-color);font-size:var(--van-image-preview-index-font-size);line-height:var(--van-image-preview-index-line-height);text-shadow:var(--van-image-preview-index-text-shadow);transform:translate(-50%)}.van-image-preview__overlay{background:var(--van-image-preview-overlay-background)}.van-image-preview__close-icon{position:absolute;z-index:var(--van-image-preview-close-icon-z-index);color:var(--van-image-preview-close-icon-color);font-size:var(--van-image-preview-close-icon-size)}.van-image-preview__close-icon--top-left{top:var(--van-image-preview-close-icon-margin);left:var(--van-image-preview-close-icon-margin)}.van-image-preview__close-icon--top-right{top:var(--van-image-preview-close-icon-margin);right:var(--van-image-preview-close-icon-margin)}.van-image-preview__close-icon--bottom-left{bottom:var(--van-image-preview-close-icon-margin);left:var(--van-image-preview-close-icon-margin)}.van-image-preview__close-icon--bottom-right{right:var(--van-image-preview-close-icon-margin);bottom:var(--van-image-preview-close-icon-margin)}
86
90
  :root,:host{--van-uploader-size: 80px;--van-uploader-icon-size: 24px;--van-uploader-icon-color: var(--van-gray-4);--van-uploader-text-color: var(--van-text-color-2);--van-uploader-text-font-size: var(--van-font-size-sm);--van-uploader-upload-background: var(--van-gray-1);--van-uploader-upload-active-color: var(--van-active-color);--van-uploader-delete-color: var(--van-white);--van-uploader-delete-icon-size: 14px;--van-uploader-delete-background: rgba(0, 0, 0, .7);--van-uploader-file-background: var(--van-background);--van-uploader-file-icon-size: 20px;--van-uploader-file-icon-color: var(--van-gray-7);--van-uploader-file-name-padding: 0 var(--van-padding-base);--van-uploader-file-name-margin-top: var(--van-padding-xs);--van-uploader-file-name-font-size: var(--van-font-size-sm);--van-uploader-file-name-text-color: var(--van-gray-7);--van-uploader-mask-text-color: var(--van-white);--van-uploader-mask-background: rgba(50, 50, 51, .88);--van-uploader-mask-icon-size: 22px;--van-uploader-mask-message-font-size: var(--van-font-size-sm);--van-uploader-mask-message-line-height: var(--van-line-height-xs);--van-uploader-loading-icon-size: 22px;--van-uploader-loading-icon-color: var(--van-white);--van-uploader-disabled-opacity: var(--van-disabled-opacity);--van-uploader-border-radius: 0px}.van-uploader{position:relative;display:inline-block}.van-uploader__wrapper{display:flex;flex-wrap:wrap}.van-uploader__wrapper--disabled{opacity:var(--van-uploader-disabled-opacity)}.van-uploader__input{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;cursor:pointer;opacity:0}.van-uploader__input-wrapper{position:relative}.van-uploader__input:disabled{cursor:not-allowed}.van-uploader__upload{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;width:var(--van-uploader-size);height:var(--van-uploader-size);margin:0 var(--van-padding-xs) var(--van-padding-xs) 0;background:var(--van-uploader-upload-background);border-radius:var(--van-uploader-border-radius)}.van-uploader__upload:active{background-color:var(--van-uploader-upload-active-color)}.van-uploader__upload--readonly:active{background-color:var(--van-uploader-upload-background)}.van-uploader__upload-icon{color:var(--van-uploader-icon-color);font-size:var(--van-uploader-icon-size)}.van-uploader__upload-text{margin-top:var(--van-padding-xs);color:var(--van-uploader-text-color);font-size:var(--van-uploader-text-font-size)}.van-uploader__preview{position:relative;margin:0 var(--van-padding-xs) var(--van-padding-xs) 0;cursor:pointer}.van-uploader__preview-image{display:block;width:var(--van-uploader-size);height:var(--van-uploader-size);overflow:hidden;border-radius:var(--van-uploader-border-radius)}.van-uploader__preview-delete{position:absolute;top:0;right:0}.van-uploader__preview-delete--shadow{width:var(--van-uploader-delete-icon-size);height:var(--van-uploader-delete-icon-size);background:var(--van-uploader-delete-background);border-radius:0 0 0 12px}.van-uploader__preview-delete-icon{position:absolute;top:0;right:0;color:var(--van-uploader-delete-color);font-size:var(--van-uploader-delete-icon-size);transform:scale(.7) translate(10%,-10%)}.van-uploader__preview-cover{position:absolute;top:0;right:0;bottom:0;left:0}.van-uploader__mask{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--van-uploader-mask-text-color);background:var(--van-uploader-mask-background);border-radius:var(--van-uploader-border-radius)}.van-uploader__mask-icon{font-size:var(--van-uploader-mask-icon-size)}.van-uploader__mask-message{margin-top:6px;padding:0 var(--van-padding-base);font-size:var(--van-uploader-mask-message-font-size);line-height:var(--van-uploader-mask-message-line-height)}.van-uploader__loading{width:var(--van-uploader-loading-icon-size);height:var(--van-uploader-loading-icon-size);color:var(--van-uploader-loading-icon-color)}.van-uploader__file{display:flex;flex-direction:column;align-items:center;justify-content:center;width:var(--van-uploader-size);height:var(--van-uploader-size);background:var(--van-uploader-file-background)}.van-uploader__file-icon{color:var(--van-uploader-file-icon-color);font-size:var(--van-uploader-file-icon-size)}.van-uploader__file-name{box-sizing:border-box;width:100%;margin-top:var(--van-uploader-file-name-margin-top);padding:var(--van-uploader-file-name-padding);color:var(--van-uploader-file-name-text-color);font-size:var(--van-uploader-file-name-font-size);text-align:center}
91
+
92
+ .preview-cover[data-v-cbd8c56a] {
93
+ position: absolute;
94
+ bottom: 0;
95
+ box-sizing: border-box;
96
+ width: 100%;
97
+ color: #fff;
98
+ font-size: 12px;
99
+ text-align: center;
100
+ background: rgba(0, 0, 0, 0.3);
101
+ line-height: 24px;
102
+ }
87
103
  :root,:host{--van-action-bar-background: var(--van-background-2);--van-action-bar-height: 50px}.van-action-bar{position:fixed;right:0;bottom:0;left:0;display:flex;align-items:center;box-sizing:content-box;height:var(--van-action-bar-height);background:var(--van-action-bar-background)}
88
104
  :root,:host{--van-back-top-size: 40px;--van-back-top-right: 30px;--van-back-top-bottom: 40px;--van-back-top-z-index: 100;--van-back-top-icon-size: 20px;--van-back-top-text-color: #fff;--van-back-top-background: var(--van-blue)}.van-back-top{position:fixed;display:flex;align-items:center;justify-content:center;width:var(--van-back-top-size);height:var(--van-back-top-size);right:var(--van-back-top-right);bottom:var(--van-back-top-bottom);z-index:var(--van-back-top-z-index);cursor:pointer;color:var(--van-back-top-text-color);border-radius:var(--van-radius-max);box-shadow:0 2px 8px rgba(0,0,0,.12);transform:scale(0);transition:var(--van-duration-base) cubic-bezier(.25,.8,.5,1);background-color:var(--van-back-top-background)}.van-back-top:active{opacity:var(--van-active-opacity)}.van-back-top__placeholder{display:none}.van-back-top--active{transform:scale(1)}.van-back-top__icon{font-size:var(--van-back-top-icon-size);font-weight:var(--van-font-bold)}
89
105
  .van-grid{display:flex;flex-wrap:wrap}
@@ -81,6 +81,24 @@ const axios = () => {
81
81
  request(config) {
82
82
  return service(config);
83
83
  },
84
+ get(url, config) {
85
+ return service.get(url, config);
86
+ },
87
+ delete(url, config) {
88
+ return service.delete(url, config);
89
+ },
90
+ head(url, config) {
91
+ return service.head(url, config);
92
+ },
93
+ post(url, data, config) {
94
+ return service.post(url, data, config);
95
+ },
96
+ postForm(url, data, config) {
97
+ return service.postForm(url, data, config);
98
+ },
99
+ put(url, data, config) {
100
+ return service.put(url, data, config);
101
+ },
84
102
  interceptors: {
85
103
  request: {
86
104
  use(fnHandle, fnError) {
@@ -3,9 +3,11 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const config = require("./config.js");
4
4
  const useHttp = (dataHandler) => {
5
5
  const http = config.default();
6
- http.interceptors.response.use(dataHandler, (error) => {
7
- return Promise.reject(error);
8
- });
6
+ if (dataHandler) {
7
+ http.interceptors.response.use(dataHandler, (error) => {
8
+ return Promise.reject(error);
9
+ });
10
+ }
9
11
  return http;
10
12
  };
11
13
  exports.default = useHttp;
@@ -6,6 +6,8 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
6
6
  ;/* empty css */
7
7
  ;/* empty css */
8
8
  const vue = require("vue");
9
+ ;/* empty css */
10
+ const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.js");
9
11
  const index = require("../../../../../../node_modules/.pnpm/vant@4.9.17_vue@3.5.13_typescript@5.7.3_/node_modules/vant/es/checkbox-group/index.js");
10
12
  const index$1 = require("../../../../../../node_modules/.pnpm/vant@4.9.17_vue@3.5.13_typescript@5.7.3_/node_modules/vant/es/checkbox/index.js");
11
13
  const _sfc_main = {
@@ -28,7 +30,10 @@ const _sfc_main = {
28
30
  return (_ctx, _cache) => {
29
31
  const _component_van_checkbox = index$1.Checkbox;
30
32
  const _component_van_checkbox_group = index.CheckboxGroup;
31
- return vue.openBlock(), vue.createBlock(_component_van_checkbox_group, vue.mergeProps(_ctx.$attrs, { shape: "square" }), {
33
+ return vue.openBlock(), vue.createBlock(_component_van_checkbox_group, vue.mergeProps(_ctx.$attrs, {
34
+ shape: "square",
35
+ class: "fec-m-checkbox"
36
+ }), {
32
37
  default: vue.withCtx(() => [
33
38
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.options, (item) => {
34
39
  return vue.openBlock(), vue.createBlock(_component_van_checkbox, {
@@ -47,4 +52,5 @@ const _sfc_main = {
47
52
  };
48
53
  }
49
54
  };
50
- exports.default = _sfc_main;
55
+ const _CheckboxGroup = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-eeda4504"]]);
56
+ exports.default = _CheckboxGroup;
@@ -13,6 +13,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
13
13
  ;/* empty css */
14
14
  const vue = require("vue");
15
15
  const index = require("../field/index.js");
16
+ const optionUtil = require("../../../utils/optionUtil.js");
16
17
  const index$2 = require("../../../../../../node_modules/.pnpm/vant@4.9.17_vue@3.5.13_typescript@5.7.3_/node_modules/vant/es/cascader/index.js");
17
18
  const index$1 = require("../../../../../../node_modules/.pnpm/vant@4.9.17_vue@3.5.13_typescript@5.7.3_/node_modules/vant/es/popup/index.js");
18
19
  const index$3 = require("../../../../../../node_modules/.pnpm/vant@4.9.17_vue@3.5.13_typescript@5.7.3_/node_modules/vant/es/icon/index.js");
@@ -48,6 +49,31 @@ const _sfc_main = {
48
49
  emits: ["update:modelValue"],
49
50
  setup(__props, { emit: __emit }) {
50
51
  const props = __props;
52
+ const attrs = vue.useAttrs();
53
+ const finalOptions = vue.ref([]);
54
+ optionUtil.getTreeOptions({
55
+ ...attrs,
56
+ staticOptions: props.treeOptions,
57
+ optionsFieldNames: props.treeOptionsFieldNames
58
+ }).then((data) => {
59
+ finalOptions.value = clearEmptyChildren(data);
60
+ });
61
+ function clearEmptyChildren(data) {
62
+ if (typeof data === "object" && data !== null) {
63
+ if (Array.isArray(data)) {
64
+ return data.map((item) => clearEmptyChildren(item));
65
+ } else {
66
+ const newData = { ...data };
67
+ if (newData.children && newData.children.length === 0) {
68
+ delete newData.children;
69
+ } else if (newData.children) {
70
+ newData.children = clearEmptyChildren(newData.children);
71
+ }
72
+ return newData;
73
+ }
74
+ }
75
+ return data;
76
+ }
51
77
  const fieldTextValue = vue.ref("");
52
78
  const showPicker = vue.ref(false);
53
79
  const emit = __emit;
@@ -87,14 +113,14 @@ const _sfc_main = {
87
113
  return displayValues.join("/");
88
114
  }
89
115
  vue.watch(
90
- () => props.modelValue,
91
- (value) => {
116
+ [() => props.modelValue, finalOptions],
117
+ ([value, options]) => {
92
118
  if (!value) {
93
119
  fieldTextValue.value = "";
94
120
  return;
95
121
  }
96
122
  fieldTextValue.value = getDisplayValue(
97
- props.treeOptions,
123
+ options,
98
124
  props.treeOptionsFieldNames,
99
125
  value
100
126
  );
@@ -132,7 +158,7 @@ const _sfc_main = {
132
158
  vue.createVNode(_component_van_cascader, vue.mergeProps(_ctx.$attrs, {
133
159
  modelValue: vue.unref(pickerValue),
134
160
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.isRef(pickerValue) ? pickerValue.value = $event : null),
135
- options: __props.treeOptions,
161
+ options: vue.unref(finalOptions),
136
162
  "field-names": __props.treeOptionsFieldNames,
137
163
  placeholder: "请选择",
138
164
  onFinish,
@@ -2,6 +2,7 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const index = require("../field/index.js");
5
+ const optionUtil = require("../../../utils/optionUtil.js");
5
6
  const index$1 = require("../checkboxGroup/index.js");
6
7
  const _hoisted_1 = { key: 1 };
7
8
  const _sfc_main = {
@@ -31,6 +32,15 @@ const _sfc_main = {
31
32
  emits: ["update:modelValue"],
32
33
  setup(__props, { emit: __emit }) {
33
34
  const props = __props;
35
+ const attrs = vue.useAttrs();
36
+ const finalOptions = vue.ref([]);
37
+ optionUtil.getOptions({
38
+ ...attrs,
39
+ staticOptions: props.options,
40
+ optionsFieldNames: props.fieldNames
41
+ }).then((data) => {
42
+ finalOptions.value = data;
43
+ });
34
44
  const emit = __emit;
35
45
  const compValue = vue.computed({
36
46
  get: () => {
@@ -50,10 +60,8 @@ const _sfc_main = {
50
60
  });
51
61
  const fieldTextValue = vue.computed(() => {
52
62
  return compValue.value.map((value) => {
53
- const option = props.options.find(
54
- (opt) => opt[props.fieldNames.value] === value
55
- );
56
- return option ? option[props.fieldNames.text] : value;
63
+ const option = finalOptions.value.find((opt) => opt.value === value);
64
+ return option ? option.text : value;
57
65
  }).join(", ");
58
66
  });
59
67
  return (_ctx, _cache) => {
@@ -64,11 +72,10 @@ const _sfc_main = {
64
72
  }), {
65
73
  input: vue.withCtx(() => [
66
74
  !__props.readonly ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.MobileCheckboxGroup), vue.mergeProps({ key: 0 }, _ctx.$attrs, {
67
- options: __props.options,
68
- fieldNames: __props.fieldNames,
75
+ options: vue.unref(finalOptions),
69
76
  modelValue: vue.unref(compValue),
70
77
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(compValue) ? compValue.value = $event : null)
71
- }), null, 16, ["options", "fieldNames", "modelValue"])) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_1, vue.toDisplayString(vue.unref(fieldTextValue)), 1))
78
+ }), null, 16, ["options", "modelValue"])) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_1, vue.toDisplayString(vue.unref(fieldTextValue)), 1))
72
79
  ]),
73
80
  _: 1
74
81
  }, 16, ["readonly", "modelValue"]);