free-fe-core-modules 0.0.53 → 0.0.55

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.
@@ -17,7 +17,7 @@ export default defineComponent({
17
17
  Options: {
18
18
  Columns: [{
19
19
  Label: '第一列',
20
- List: [{
20
+ Fields: [{
21
21
  Name: 'CA',
22
22
  Placeholder: '请填写',
23
23
  Type: 'Number',
@@ -25,7 +25,7 @@ export default defineComponent({
25
25
  }],
26
26
  }, {
27
27
  Label: '第二列',
28
- List: [{
28
+ Fields: [{
29
29
  Name: 'CB',
30
30
  Type: 'String',
31
31
  }],
@@ -302,7 +302,7 @@ export default defineComponent({
302
302
  align : 'center',
303
303
  sortable : true,
304
304
  classes : 'index',
305
- List: [{
305
+ Fields: [{
306
306
  Name: 'index',
307
307
  Type: 'Number',
308
308
  required : true,
@@ -29,7 +29,7 @@
29
29
  >
30
30
  <template v-slot:list="scope">
31
31
  <div
32
- v-if="Field.Options && Field.Options.AsLink && Array.isArray(fieldData.value) && fieldData.value?.length"
32
+ v-if="Field.Options && Field.Options.AsLink && !!fieldData.value?.id"
33
33
  class="file-link row full-width ellipsis items-center"
34
34
  >
35
35
  <div
@@ -85,11 +85,11 @@
85
85
  <slot name="warning"></slot>
86
86
  </div>
87
87
 
88
- <q-item v-if="dense && fieldData.value?.length">
89
- <q-item-section v-if="fieldData.value?.length && fieldData.value[0].name">
88
+ <q-item v-if="dense && fieldData.value?.id">
89
+ <q-item-section v-if="fieldData.value?.id && 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
 
@@ -108,21 +108,19 @@
108
108
  </q-item>
109
109
 
110
110
  <div
111
- v-else-if="Array.isArray(fieldData.value) && fieldData.value?.length"
111
+ v-else-if="!!fieldData.value?.id"
112
112
  class="file-list row items-start justify-start"
113
113
  >
114
114
  <q-card
115
115
  flat
116
116
  class="file-list-item"
117
- v-for="(file, index) in fieldData.value"
118
- :key="index"
119
117
  >
120
118
  <e-icon
121
119
  class="file-image"
122
- :name="fileThumb(file)"
120
+ :name="fileThumb(fieldData.value)"
123
121
  thumb
124
- :relative="filePreviewType(file) !== 'image'"
125
- @click="preview(file)"
122
+ :relative="filePreviewType(fieldData.value) !== 'image'"
123
+ @click="preview(fieldData.value)"
126
124
  >
127
125
  <div class="view-btn-wrapper absolute-full justify-center text-center">
128
126
  <q-btn
@@ -133,20 +131,20 @@
133
131
  </e-icon>
134
132
  <span class="file-name full-width ellipsis">
135
133
  <a
136
- v-if="file && file.id"
134
+ v-if="fieldData.value && fieldData.value.id"
137
135
  target="_blank"
138
- :href="$filter('serverPath', file.id)"
139
- :download="file.name">
140
- {{ file.name }}
136
+ :href="$filter('serverPath', fieldData.value.id)"
137
+ :download="fieldData.value.name">
138
+ {{ fieldData.value.name }}
141
139
  </a>
142
- <span v-else-if="file && file.name">
143
- {{file.name}}
140
+ <span v-else-if="fieldData.value && fieldData.value.name">
141
+ {{fieldData.value.name}}
144
142
  </span>
145
- <q-tooltip>{{ file.name }}</q-tooltip>
143
+ <q-tooltip>{{ fieldData.value.name }}</q-tooltip>
146
144
  </span>
147
145
 
148
146
  <span class="file-size full-width ellipsis">
149
- Size: {{ file.sizeLabel || file.__sizeLabel }}
147
+ Size: {{ fieldData.value.sizeLabel || fieldData.value.__sizeLabel }}
150
148
  </span>
151
149
 
152
150
  <q-btn
@@ -155,7 +153,7 @@
155
153
  round
156
154
  class="delete-btn"
157
155
  icon="close"
158
- @click="scope.removeFile(file)"
156
+ @click="scope.removeFile(fieldData.value)"
159
157
  v-if="!Field.ReadOnly"
160
158
  />
161
159
  </q-card>
@@ -185,7 +183,7 @@
185
183
  @click="showPreview=false"></q-icon>
186
184
  <q-img
187
185
  v-if="previewType=== 'image'"
188
- contain
186
+ fit="contain"
189
187
  :src="previewFile"
190
188
  @click="showPreview=false"
191
189
  style="height: 100%; max-width: 100%;"
@@ -282,7 +280,7 @@ export default defineComponent({
282
280
 
283
281
  const selfValidate = () => {
284
282
  if (props.Field?.Required) {
285
- hasError.value = !!fieldData.value?.id;
283
+ hasError.value = !fieldData.value?.id;
286
284
  return !!fieldData.value?.id;
287
285
  }
288
286
 
@@ -208,7 +208,7 @@
208
208
  @click="showPreview=false"></q-icon>
209
209
  <q-img
210
210
  v-if="previewType=== 'image'"
211
- contain
211
+ fit="contain"
212
212
  :src="previewFile"
213
213
  @click="showPreview=false"
214
214
  style="height: 100%; max-width: 100%;"
@@ -53,9 +53,9 @@
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
- :icon="fieldData?.value?.length ? 'check' : 'cloud_upload'"
58
+ :icon="fieldData?.value?.id ? 'check' : 'cloud_upload'"
59
59
  dense
60
60
  flat
61
61
  :disabled="Field.ReadOnly"
@@ -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,22 +73,22 @@
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.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.__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>
90
90
 
91
- <q-item-section v-if="!fieldData.value?.length">
91
+ <q-item-section v-if="!fieldData.value?.id">
92
92
  <q-btn
93
93
  v-if="!scope.isUploading"
94
94
  type="a"
@@ -103,40 +103,39 @@
103
103
  </q-item-section>
104
104
  </q-item>
105
105
 
106
- <div v-else-if="Array.isArray(fieldData.value) && fieldData.value?.length" class="file-list row items-start justify-start">
106
+ <div v-else-if="fieldData.value?.id" class="file-list row items-start justify-start">
107
107
  <q-card
108
108
  flat
109
- class="file-list-item"
110
- v-for="(file, index) in fieldData.value" :key="index">
109
+ class="file-list-item">
111
110
  <e-icon class="file-image"
112
- :name="fileThumb(file)"
111
+ :name="fileThumb(fieldData.value)"
113
112
  :thumb="!Field?.Options?.NoThumb"
114
- :relative="filePreviewType(file) !== 'image'"
115
- @click="preview(file)">
113
+ :relative="filePreviewType(fieldData.value) !== 'image'"
114
+ @click="preview(fieldData.value)">
116
115
  <div class="view-btn-wrapper absolute-full justify-center text-center">
117
116
  <q-btn
118
117
  flat
119
118
  class="view-btn full-height full-width"
120
- @click="preview(file)"
119
+ @click="preview(fieldData.value)"
121
120
  >查看</q-btn>
122
121
  </div>
123
122
  </e-icon>
124
123
  <span class="file-name full-width ellipsis">
125
124
  <a
126
- v-if="file && file.id"
125
+ v-if="fieldData.value && fieldData.value.id"
127
126
  target="_blank"
128
- :href="$filter('serverPath', file.id)"
129
- :download="file.name">
130
- {{ file.name }}
127
+ :href="$filter('serverPath', fieldData.value.id)"
128
+ :download="fieldData.value.name">
129
+ {{ fieldData.value.name }}
131
130
  </a>
132
- <span v-else-if="file && file.name">
133
- {{file.name}}
131
+ <span v-else-if="fieldData.value && fieldData.value.name">
132
+ {{fieldData.value.name}}
134
133
  </span>
135
- <q-tooltip>{{ file.name }}</q-tooltip>
134
+ <q-tooltip>{{ fieldData.value.name }}</q-tooltip>
136
135
  </span>
137
136
 
138
137
  <span class="file-size full-width ellipsis">
139
- Size: {{ file.sizeLabel || file.__sizeLabel }}
138
+ Size: {{ fieldData.value.sizeLabel || fieldData.value.__sizeLabel }}
140
139
  </span>
141
140
 
142
141
  <q-btn
@@ -145,7 +144,7 @@
145
144
  round
146
145
  class="delete-btn"
147
146
  icon="close"
148
- @click="scope.removeFile(file)"
147
+ @click="scope.removeFile(fieldData.value)"
149
148
  :disabled="Field.ReadOnly"
150
149
  />
151
150
  </q-card>
@@ -169,7 +168,7 @@
169
168
  <q-img
170
169
  fit="contain"
171
170
  v-if="previewType === 'image'"
172
- contain :src="previewFile"
171
+ :src="previewFile"
173
172
  @click="showPreview=false"
174
173
  style="max-height: 100%; max-width: 100%;">
175
174
  </q-img>
@@ -249,7 +248,7 @@ export default defineComponent({
249
248
 
250
249
  const selfValidate = () => {
251
250
  if (props.Field?.Required) {
252
- hasError.value = !!fieldData.value?.id;
251
+ hasError.value = !fieldData.value?.id;
253
252
  return !!fieldData.value?.id;
254
253
  }
255
254
 
@@ -145,8 +145,9 @@
145
145
  round size="20px"
146
146
  @click="showPreview=false"></q-icon>
147
147
  <q-img
148
+ fit="contain"
148
149
  v-if="previewType=== 'image'"
149
- contain :src="previewFile"
150
+ :src="previewFile"
150
151
  @click="showPreview=false"
151
152
  style="height: 100%; max-width: 100%;">
152
153
  </q-img>
@@ -165,7 +165,7 @@ export default defineComponent({
165
165
  Label: `${ii + 1}`,
166
166
  Name: `${ii}`,
167
167
  Type: 'FixedList',
168
- List: [
168
+ Fields: [
169
169
  {
170
170
  Label: 'rowspan',
171
171
  Name: 'rowspan',
@@ -47,14 +47,14 @@
47
47
  <q-space></q-space>
48
48
  <div class="q-ma-xs query-btns">
49
49
  <q-btn
50
- v-if="canExport"
50
+ v-if="Field.canExport"
51
51
  class="export-btn"
52
52
  icon="fa fa-list"
53
53
  label="导出"
54
54
  @click="$emit('export')"
55
55
  />
56
- <q-btn class="clear-btn" :icon="clearIcon" label="清空" @click="clear"></q-btn>
57
- <q-btn class="query-btn q-ma-xs" :icon="searchIcon" label="查询" @click="search"></q-btn>
56
+ <q-btn class="clear-btn" :icon="Field.clearIcon || 'refresh'" label="清空" @click="clear"></q-btn>
57
+ <q-btn class="query-btn q-ma-xs" :icon="Field.searchIcon || 'search'" label="查询" @click="search"></q-btn>
58
58
  </div>
59
59
  </div>
60
60
  </div>
@@ -76,10 +76,6 @@ export default defineComponent({
76
76
  props: {
77
77
  ...freeFieldProps,
78
78
  dense: { type: Boolean, default: false },
79
- canExport: { type: Boolean, default: false },
80
- queryData: { type: Object, default: () => ({}) },
81
- searchIcon: { type: String, default: 'search' },
82
- clearIcon: { type: String, default: 'refresh' },
83
79
  },
84
80
  setup(props, { emit }) {
85
81
  if (!props.Field) return {};
@@ -92,7 +88,7 @@ export default defineComponent({
92
88
  const kwFields = ref([]);
93
89
 
94
90
  watchEffect(() => {
95
- query.value = props.queryData;
91
+ query.value = props.Field.queryData;
96
92
  })
97
93
 
98
94
  watchEffect(() => {
package/index.js CHANGED
@@ -242,7 +242,7 @@ export default (app, root) => {
242
242
  Dense: true,
243
243
  LabelField: 'Name',
244
244
  ValueField: 'Locale',
245
- List: [{
245
+ Fields: [{
246
246
  Name: 'Locale',
247
247
  Label: '语言',
248
248
  Type: 'String',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "free-fe-core-modules",
3
- "version": "0.0.53",
3
+ "version": "0.0.55",
4
4
  "main": "index.js",
5
5
  "repository": "https://github.com/freeeis/free-fe-core-modules.git",
6
6
  "author": "zhiquan",