free-fe-core-modules 0.0.52 → 0.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.
@@ -86,10 +86,10 @@
86
86
  </div>
87
87
 
88
88
  <q-item v-if="dense && fieldData.value?.length">
89
- <q-item-section v-if="fieldData.value?.length && fieldData.value[0].name">
89
+ <q-item-section v-if="fieldData.value?.length && fieldData.value.name">
90
90
  <q-item-label class="full-width ellipsis">
91
- {{ fieldData.value[0].name }}
92
- <q-tooltip>{{ fieldData.value[0].name }}</q-tooltip>
91
+ {{ fieldData.value.name }}
92
+ <q-tooltip>{{ fieldData.value.name }}</q-tooltip>
93
93
  </q-item-label>
94
94
  </q-item-section>
95
95
 
@@ -282,8 +282,8 @@ export default defineComponent({
282
282
 
283
283
  const selfValidate = () => {
284
284
  if (props.Field?.Required) {
285
- hasError.value = fieldData.value?.length <= 0;
286
- return fieldData.value?.length > 0;
285
+ hasError.value = !!fieldData.value?.id;
286
+ return !!fieldData.value?.id;
287
287
  }
288
288
 
289
289
  const rules = Array.isArray(typeof props.Field.Rules) ? props.Field.Rules : [props.Field.Rules];
@@ -309,42 +309,41 @@ export default defineComponent({
309
309
  };
310
310
 
311
311
  const uploaded = (info) => {
312
- const uploadedFiles = [];
313
- for (let i = 0; i < info.files.length; i += 1) {
314
- const file = info.files[i];
312
+ // File组件只允许一个文件
313
+ const file = info.files[0];
315
314
 
316
- const { xhr } = file;
317
- let res;
318
- if (xhr && xhr.response) {
319
- if (typeof xhr.response === 'string') {
320
- //
321
- res = JSON.parse(xhr.response);
322
- } else if (typeof xhr.response === 'object') {
323
- //
324
- res = xhr.response;
325
- } else {
326
- //
327
- return;
328
- }
315
+ if (!file) return;
329
316
 
330
- if (res && res.msg === 'OK') {
331
- uploadedFiles.push({
332
- id: res.data.id,
333
- // eslint-disable-next-line no-underscore-dangle
334
- sizeLabel: file.__sizeLabel,
335
- name: file.name,
336
- size: file.size,
337
- type: file.type,
338
- });
339
- }
340
- } else if (file.id) {
341
- // old files
342
- uploadedFiles.push(file);
317
+ const { xhr } = file;
318
+ let res;
319
+ if (xhr && xhr.response) {
320
+ if (typeof xhr.response === 'string') {
321
+ //
322
+ res = JSON.parse(xhr.response);
323
+ } else if (typeof xhr.response === 'object') {
324
+ //
325
+ res = xhr.response;
326
+ } else {
327
+ //
328
+ return;
343
329
  }
344
- }
345
330
 
346
- setFieldData(uploadedFiles, emit);
347
- selfValidate();
331
+ if (res && res.msg === 'OK') {
332
+ setFieldData({
333
+ id: res.data.id,
334
+ // eslint-disable-next-line no-underscore-dangle
335
+ sizeLabel: file.__sizeLabel,
336
+ name: file.name,
337
+ size: file.size,
338
+ type: file.type,
339
+ }, emit);
340
+ selfValidate();
341
+ }
342
+ } else if (file.id) {
343
+ // old files
344
+ setFieldData(file, emit);
345
+ selfValidate();
346
+ }
348
347
  }
349
348
 
350
349
  const { validate } = useFormValidator();
@@ -53,7 +53,7 @@
53
53
  </div>
54
54
 
55
55
  <q-btn
56
- v-if="(Field.onlyIcon || onlyIcon) && (!fieldData.value || !fieldData.value[0] || !fieldData.value[0].id)"
56
+ v-if="(Field.onlyIcon || onlyIcon) && (!fieldData.value || !fieldData.value || !fieldData.value.id)"
57
57
  type="a"
58
58
  :icon="fieldData?.value?.length ? 'check' : 'cloud_upload'"
59
59
  dense
@@ -63,9 +63,9 @@
63
63
  <q-uploader-add-trigger />
64
64
  </q-btn>
65
65
 
66
- <div v-else-if="(Field.onlyIcon || onlyIcon) && fieldData.value && fieldData.value[0]?.id">
66
+ <div v-else-if="(Field.onlyIcon || onlyIcon) && fieldData.value && fieldData.value?.id">
67
67
  <q-img
68
- :src="$filter(Field?.Options?.NoThumb ? 'serverImage' : 'serverThumb', `${fieldData.value[0].id}`)"
68
+ :src="$filter(Field?.Options?.NoThumb ? 'serverImage' : 'serverThumb', `${fieldData.value.id}`)"
69
69
  style="width:32px; max-height:32px;min-height:32px;"
70
70
  >
71
71
  </q-img>
@@ -73,17 +73,17 @@
73
73
  </div>
74
74
 
75
75
  <q-item v-else-if="Field.dense" class="items-center q-pa-none">
76
- <q-item-section v-if="fieldData?.value?.length && fieldData.value[0].id" thumbnail>
76
+ <q-item-section v-if="fieldData?.value?.length && fieldData.value.id" thumbnail>
77
77
  <q-img
78
- :src="`${ctx.config.thumbUrlBase}${fieldData.value[0].id}`"
78
+ :src="`${ctx.config.thumbUrlBase}${fieldData.value.id}`"
79
79
  style="width: 48px; max-height: 48px;"
80
80
  >
81
81
  </q-img>
82
82
  <q-uploader-add-trigger v-if="!Field.ReadOnly" />
83
83
  </q-item-section>
84
84
 
85
- <q-item-section v-if="fieldData.value?.length && fieldData.value[0].__img" thumbnail class="gt-xs">
86
- <q-img :src="fieldData.value[0].__img.src">
85
+ <q-item-section v-if="fieldData.value?.length && fieldData.value.__img" thumbnail class="gt-xs">
86
+ <q-img :src="fieldData.value.__img.src">
87
87
  </q-img>
88
88
  <q-uploader-add-trigger v-if="!Field.ReadOnly" />
89
89
  </q-item-section>
@@ -108,8 +108,8 @@
108
108
  flat
109
109
  class="file-list-item"
110
110
  v-for="(file, index) in fieldData.value" :key="index">
111
- <e-icon class="file-image"
112
- :name="fileThumb(file)"
111
+ <e-icon class="file-image"
112
+ :name="fileThumb(file)"
113
113
  :thumb="!Field?.Options?.NoThumb"
114
114
  :relative="filePreviewType(file) !== 'image'"
115
115
  @click="preview(file)">
@@ -249,8 +249,8 @@ export default defineComponent({
249
249
 
250
250
  const selfValidate = () => {
251
251
  if (props.Field?.Required) {
252
- hasError.value = fieldData.value?.length <= 0;
253
- return fieldData.value?.length > 0;
252
+ hasError.value = !!fieldData.value?.id;
253
+ return !!fieldData.value?.id;
254
254
  }
255
255
 
256
256
  const rules = Array.isArray(typeof props.Field.Rules) ? props.Field.Rules : [props.Field.Rules];
@@ -276,42 +276,41 @@ export default defineComponent({
276
276
  };
277
277
 
278
278
  const uploaded = (info) => {
279
- const uploadedFiles = [];
280
- for (let i = 0; i < info.files.length; i += 1) {
281
- const file = info.files[i];
279
+ // Image组件只允许一个图片
280
+ const file = info.files[0];
282
281
 
283
- const { xhr } = file;
284
- let res;
285
- if (xhr && xhr.response) {
286
- if (typeof xhr.response === 'string') {
287
- //
288
- res = JSON.parse(xhr.response);
289
- } else if (typeof xhr.response === 'object') {
290
- //
291
- res = xhr.response;
292
- } else {
293
- //
294
- return;
295
- }
282
+ if (!file) return;
296
283
 
297
- if (res && res.msg === 'OK') {
298
- uploadedFiles.push({
299
- id: res.data.id,
300
- // eslint-disable-next-line no-underscore-dangle
301
- sizeLabel: file.__sizeLabel,
302
- name: file.name,
303
- size: file.size,
304
- type: file.type,
305
- });
306
- }
307
- } else if (file.id) {
308
- // old files
309
- uploadedFiles.push(file);
284
+ const { xhr } = file;
285
+ let res;
286
+ if (xhr && xhr.response) {
287
+ if (typeof xhr.response === 'string') {
288
+ //
289
+ res = JSON.parse(xhr.response);
290
+ } else if (typeof xhr.response === 'object') {
291
+ //
292
+ res = xhr.response;
293
+ } else {
294
+ //
295
+ return;
310
296
  }
311
- }
312
297
 
313
- setFieldData(uploadedFiles, emit);
314
- selfValidate();
298
+ if (res && res.msg === 'OK') {
299
+ setFieldData({
300
+ id: res.data.id,
301
+ // eslint-disable-next-line no-underscore-dangle
302
+ sizeLabel: file.__sizeLabel,
303
+ name: file.name,
304
+ size: file.size,
305
+ type: file.type,
306
+ }, emit);
307
+ selfValidate();
308
+ }
309
+ } else if (file.id) {
310
+ // old files
311
+ setFieldData(file, emit);
312
+ selfValidate();
313
+ }
315
314
  }
316
315
 
317
316
  const { validate } = useFormValidator();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "free-fe-core-modules",
3
- "version": "0.0.52",
3
+ "version": "0.0.54",
4
4
  "main": "index.js",
5
5
  "repository": "https://github.com/freeeis/free-fe-core-modules.git",
6
6
  "author": "zhiquan",