@fecp/mobile 1.0.56 → 1.0.58

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/es/mobile.css CHANGED
@@ -79,17 +79,17 @@
79
79
  .van-radio-group--horizontal{display:flex;flex-wrap:wrap}
80
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)}
81
81
 
82
- .fecMForm[data-v-17ab5a76] .van-cell-group--inset {
82
+ .fecMForm[data-v-69b5b14f] .van-cell-group--inset {
83
83
  margin: 12px;
84
84
  }
85
- .fecMForm.isShadow[data-v-17ab5a76] .van-cell-group--inset {
85
+ .fecMForm.isShadow[data-v-69b5b14f] .van-cell-group--inset {
86
86
  box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.12);
87
87
  }
88
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)}
89
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)}
90
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
91
 
92
- .preview-cover[data-v-f959e5af] {
92
+ .preview-cover[data-v-c2995f7f] {
93
93
  position: absolute;
94
94
  bottom: 0;
95
95
  box-sizing: border-box;
@@ -100,10 +100,10 @@
100
100
  background: rgba(0, 0, 0, 0.3);
101
101
  line-height: 24px;
102
102
  }
103
- .fac-uploader[data-v-f959e5af] .van-uploader__upload {
103
+ .fac-uploader[data-v-c2995f7f] .van-uploader__upload {
104
104
  margin: 0;
105
105
  }
106
- .fac-uploader[data-v-f959e5af] .van-uploader__preview {
106
+ .fac-uploader[data-v-c2995f7f] .van-uploader__preview {
107
107
  margin: 0 8px 0 0;
108
108
  }
109
109
  :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)}
@@ -1,4 +1,4 @@
1
- import { useAttrs, computed, createBlock, openBlock, unref, mergeProps, isRef, withCtx, createVNode } from "vue";
1
+ import { computed, createBlock, openBlock, unref, mergeProps, isRef, withCtx, createVNode } from "vue";
2
2
  import { MobileField } from "../field/index.mjs";
3
3
  import { MobileUploader } from "../uploader/index.mjs";
4
4
  const _sfc_main = {
@@ -16,7 +16,6 @@ const _sfc_main = {
16
16
  emits: ["update:modelValue"],
17
17
  setup(__props, { emit: __emit }) {
18
18
  const props = __props;
19
- useAttrs();
20
19
  const emit = __emit;
21
20
  const compValue = computed({
22
21
  get: () => {
@@ -66,8 +66,10 @@ const _sfc_main = {
66
66
  dicKeyList.push(node.props.dicKey);
67
67
  }
68
68
  });
69
- const uniqueDicKeys = [...new Set(dicKeyList)];
70
- dicListMap.value = await getParmDicMapByKeys(uniqueDicKeys.join(","));
69
+ if (dicKeyList.length > 0) {
70
+ const uniqueDicKeys = [...new Set(dicKeyList)];
71
+ dicListMap.value = await getParmDicMapByKeys(uniqueDicKeys.join(","));
72
+ }
71
73
  dicLoaded.value = true;
72
74
  }
73
75
  };
@@ -93,7 +95,7 @@ const _sfc_main = {
93
95
  };
94
96
  }
95
97
  };
96
- const _Form = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-17ab5a76"]]);
98
+ const _Form = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-69b5b14f"]]);
97
99
  export {
98
100
  _Form as default
99
101
  };
@@ -38,6 +38,8 @@ const _sfc_main = {
38
38
  return defineAsyncComponent(() => import("../fieldRadio/index.mjs"));
39
39
  case "checkbox":
40
40
  return defineAsyncComponent(() => import("../fieldCheckbox/index.mjs"));
41
+ case "upload":
42
+ return defineAsyncComponent(() => import("../fieldUploader/index.mjs"));
41
43
  }
42
44
  });
43
45
  const formData = inject("formData");
@@ -75,7 +77,7 @@ const _sfc_main = {
75
77
  }
76
78
  });
77
79
  const rules = computed(() => {
78
- return parseRule(attrs);
80
+ return parseRule(props.fieldType, attrs);
79
81
  });
80
82
  return (_ctx, _cache) => {
81
83
  return openBlock(), createBlock(resolveDynamicComponent(unref(formItem)), mergeProps(_ctx.$attrs, {
@@ -9,7 +9,7 @@
9
9
  /* empty css */
10
10
  /* empty css */
11
11
  /* empty css */
12
- import { computed, createBlock, openBlock, mergeProps, unref, isRef, createSlots, withCtx, createElementBlock, createCommentVNode, createVNode, toDisplayString, renderList, renderSlot } from "vue";
12
+ import { computed, createBlock, openBlock, mergeProps, unref, isRef, createSlots, withCtx, createElementBlock, createCommentVNode, createVNode, toDisplayString } from "vue";
13
13
  import { useDataSource } from "../../../utils/dataSourceUtil.mjs";
14
14
  /* empty css */
15
15
  import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.mjs";
@@ -160,6 +160,8 @@ const _sfc_main = {
160
160
  };
161
161
  const afterRead = (file) => {
162
162
  if (!props.autoUpload) {
163
+ file.status = "waiting";
164
+ file.message = "等待上传";
163
165
  return;
164
166
  }
165
167
  file.status = "uploading";
@@ -167,6 +169,7 @@ const _sfc_main = {
167
169
  const dataSource = useDataSource(props.dataSource);
168
170
  dataSource == null ? void 0 : dataSource.load({ file: file.file, ...props.dataSourceParams }).then((res) => {
169
171
  file.status = "done";
172
+ file.message = "上传成功";
170
173
  }).catch((err) => {
171
174
  file.status = "failed";
172
175
  file.message = "上传失败";
@@ -188,6 +191,7 @@ const _sfc_main = {
188
191
  onOversize,
189
192
  "max-size": unref(compMaxSize),
190
193
  "result-type": "file",
194
+ readonly: __props.readonly,
191
195
  "preview-size": __props.previewSize + "px"
192
196
  }), createSlots({
193
197
  "preview-cover": withCtx(({ file, name }) => [
@@ -203,19 +207,16 @@ const _sfc_main = {
203
207
  ]),
204
208
  _: 2
205
209
  }, [
206
- renderList(_ctx.$slots, (item, key) => {
207
- return {
208
- name: key,
209
- fn: withCtx(() => [
210
- key != "preview-cover" && key != "preview-delete" ? renderSlot(_ctx.$slots, key, { key: 0 }, void 0, true) : createCommentVNode("", true)
211
- ])
212
- };
213
- })
214
- ]), 1040, ["modelValue", "accept", "max-size", "preview-size"]);
210
+ __props.readonly ? {
211
+ name: "default",
212
+ fn: withCtx(() => []),
213
+ key: "0"
214
+ } : void 0
215
+ ]), 1040, ["modelValue", "accept", "max-size", "readonly", "preview-size"]);
215
216
  };
216
217
  }
217
218
  };
218
- const _Uploader = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f959e5af"]]);
219
+ const _Uploader = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c2995f7f"]]);
219
220
  export {
220
221
  _Uploader as default
221
222
  };
@@ -1,7 +1,13 @@
1
- const parseRule = ({ label, isRequired, ruleType }) => {
1
+ const parseRule = (fieldType, { label, isRequired, ruleType }) => {
2
2
  const ruleList = [];
3
3
  if (isRequired) {
4
- ruleList.push({ required: true, message: `请填写${label}` });
4
+ switch (fieldType) {
5
+ case "upload":
6
+ ruleList.push({ required: true, message: `请选择要上传的文件` });
7
+ break;
8
+ default:
9
+ ruleList.push({ required: true, message: `请填写${label}` });
10
+ }
5
11
  }
6
12
  const errorMessage = `请填写正确的${label}`;
7
13
  const validateEmpty = false;
@@ -16,6 +16,7 @@ const getOptions = ({
16
16
  switch (optionType) {
17
17
  case "static":
18
18
  resolve(staticOptions);
19
+ break;
19
20
  case "dic":
20
21
  let dicListToOption = function(dicList2) {
21
22
  return dicList2.map((item) => {
package/lib/mobile.css CHANGED
@@ -79,17 +79,17 @@
79
79
  .van-radio-group--horizontal{display:flex;flex-wrap:wrap}
80
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)}
81
81
 
82
- .fecMForm[data-v-17ab5a76] .van-cell-group--inset {
82
+ .fecMForm[data-v-69b5b14f] .van-cell-group--inset {
83
83
  margin: 12px;
84
84
  }
85
- .fecMForm.isShadow[data-v-17ab5a76] .van-cell-group--inset {
85
+ .fecMForm.isShadow[data-v-69b5b14f] .van-cell-group--inset {
86
86
  box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.12);
87
87
  }
88
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)}
89
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)}
90
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
91
 
92
- .preview-cover[data-v-f959e5af] {
92
+ .preview-cover[data-v-c2995f7f] {
93
93
  position: absolute;
94
94
  bottom: 0;
95
95
  box-sizing: border-box;
@@ -100,10 +100,10 @@
100
100
  background: rgba(0, 0, 0, 0.3);
101
101
  line-height: 24px;
102
102
  }
103
- .fac-uploader[data-v-f959e5af] .van-uploader__upload {
103
+ .fac-uploader[data-v-c2995f7f] .van-uploader__upload {
104
104
  margin: 0;
105
105
  }
106
- .fac-uploader[data-v-f959e5af] .van-uploader__preview {
106
+ .fac-uploader[data-v-c2995f7f] .van-uploader__preview {
107
107
  margin: 0 8px 0 0;
108
108
  }
109
109
  :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)}
@@ -18,7 +18,6 @@ const _sfc_main = {
18
18
  emits: ["update:modelValue"],
19
19
  setup(__props, { emit: __emit }) {
20
20
  const props = __props;
21
- vue.useAttrs();
22
21
  const emit = __emit;
23
22
  const compValue = vue.computed({
24
23
  get: () => {
@@ -68,8 +68,10 @@ const _sfc_main = {
68
68
  dicKeyList.push(node.props.dicKey);
69
69
  }
70
70
  });
71
- const uniqueDicKeys = [...new Set(dicKeyList)];
72
- dicListMap.value = await optionUtil.getParmDicMapByKeys(uniqueDicKeys.join(","));
71
+ if (dicKeyList.length > 0) {
72
+ const uniqueDicKeys = [...new Set(dicKeyList)];
73
+ dicListMap.value = await optionUtil.getParmDicMapByKeys(uniqueDicKeys.join(","));
74
+ }
73
75
  dicLoaded.value = true;
74
76
  }
75
77
  };
@@ -95,5 +97,5 @@ const _sfc_main = {
95
97
  };
96
98
  }
97
99
  };
98
- const _Form = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-17ab5a76"]]);
100
+ const _Form = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-69b5b14f"]]);
99
101
  exports.default = _Form;
@@ -40,6 +40,8 @@ const _sfc_main = {
40
40
  return vue.defineAsyncComponent(() => Promise.resolve().then(() => require("../fieldRadio/index.js")));
41
41
  case "checkbox":
42
42
  return vue.defineAsyncComponent(() => Promise.resolve().then(() => require("../fieldCheckbox/index.js")));
43
+ case "upload":
44
+ return vue.defineAsyncComponent(() => Promise.resolve().then(() => require("../fieldUploader/index.js")));
43
45
  }
44
46
  });
45
47
  const formData = vue.inject("formData");
@@ -77,7 +79,7 @@ const _sfc_main = {
77
79
  }
78
80
  });
79
81
  const rules = vue.computed(() => {
80
- return formRule.parseRule(attrs);
82
+ return formRule.parseRule(props.fieldType, attrs);
81
83
  });
82
84
  return (_ctx, _cache) => {
83
85
  return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(formItem)), vue.mergeProps(_ctx.$attrs, {
@@ -162,6 +162,8 @@ const _sfc_main = {
162
162
  };
163
163
  const afterRead = (file) => {
164
164
  if (!props.autoUpload) {
165
+ file.status = "waiting";
166
+ file.message = "等待上传";
165
167
  return;
166
168
  }
167
169
  file.status = "uploading";
@@ -169,6 +171,7 @@ const _sfc_main = {
169
171
  const dataSource = dataSourceUtil.useDataSource(props.dataSource);
170
172
  dataSource == null ? void 0 : dataSource.load({ file: file.file, ...props.dataSourceParams }).then((res) => {
171
173
  file.status = "done";
174
+ file.message = "上传成功";
172
175
  }).catch((err) => {
173
176
  file.status = "failed";
174
177
  file.message = "上传失败";
@@ -190,6 +193,7 @@ const _sfc_main = {
190
193
  onOversize,
191
194
  "max-size": vue.unref(compMaxSize),
192
195
  "result-type": "file",
196
+ readonly: __props.readonly,
193
197
  "preview-size": __props.previewSize + "px"
194
198
  }), vue.createSlots({
195
199
  "preview-cover": vue.withCtx(({ file, name }) => [
@@ -205,17 +209,14 @@ const _sfc_main = {
205
209
  ]),
206
210
  _: 2
207
211
  }, [
208
- vue.renderList(_ctx.$slots, (item, key) => {
209
- return {
210
- name: key,
211
- fn: vue.withCtx(() => [
212
- key != "preview-cover" && key != "preview-delete" ? vue.renderSlot(_ctx.$slots, key, { key: 0 }, void 0, true) : vue.createCommentVNode("", true)
213
- ])
214
- };
215
- })
216
- ]), 1040, ["modelValue", "accept", "max-size", "preview-size"]);
212
+ __props.readonly ? {
213
+ name: "default",
214
+ fn: vue.withCtx(() => []),
215
+ key: "0"
216
+ } : void 0
217
+ ]), 1040, ["modelValue", "accept", "max-size", "readonly", "preview-size"]);
217
218
  };
218
219
  }
219
220
  };
220
- const _Uploader = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-f959e5af"]]);
221
+ const _Uploader = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-c2995f7f"]]);
221
222
  exports.default = _Uploader;
@@ -1,9 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const parseRule = ({ label, isRequired, ruleType }) => {
3
+ const parseRule = (fieldType, { label, isRequired, ruleType }) => {
4
4
  const ruleList = [];
5
5
  if (isRequired) {
6
- ruleList.push({ required: true, message: `请填写${label}` });
6
+ switch (fieldType) {
7
+ case "upload":
8
+ ruleList.push({ required: true, message: `请选择要上传的文件` });
9
+ break;
10
+ default:
11
+ ruleList.push({ required: true, message: `请填写${label}` });
12
+ }
7
13
  }
8
14
  const errorMessage = `请填写正确的${label}`;
9
15
  const validateEmpty = false;
@@ -18,6 +18,7 @@ const getOptions = ({
18
18
  switch (optionType) {
19
19
  case "static":
20
20
  resolve(staticOptions);
21
+ break;
21
22
  case "dic":
22
23
  let dicListToOption = function(dicList2) {
23
24
  return dicList2.map((item) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fecp/mobile",
3
- "version": "1.0.56",
3
+ "version": "1.0.58",
4
4
  "main": "lib/packages/mobile/index.js",
5
5
  "module": "es/packages/mobile/index.mjs",
6
6
  "files": [