@ithinkdt/ui 4.0.0-50 → 4.0.0-51

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/dist/page.js CHANGED
@@ -8,10 +8,10 @@ import { NButton, NCheckbox, NColorPicker, NDatePicker, NDrawer, NDrawerContent,
8
8
  import { format } from "date-fns";
9
9
  import { useFormItem } from "ithinkdt-ui/es/_mixins";
10
10
  import { useDict, useDictMap } from "@ithinkdt/common/dict";
11
- function _isSlot(n) {
12
- return typeof n == "function" || Object.prototype.toString.call(n) === "[object Object]" && !isVNode(n);
11
+ function _isSlot(r) {
12
+ return typeof r == "function" || Object.prototype.toString.call(r) === "[object Object]" && !isVNode(r);
13
13
  }
14
- var mapProps = (n) => Object.fromEntries(Object.entries(n || {}).map(([n, c]) => [n, unref(c)])), SimpleUpload = /* @__PURE__ */ defineComponent({
14
+ var mapProps = (r) => Object.fromEntries(Object.entries(r || {}).map(([r, c]) => [r, unref(c)])), SimpleUpload = /* @__PURE__ */ defineComponent({
15
15
  name: "SimpleUpload",
16
16
  props: {
17
17
  type: {
@@ -52,43 +52,43 @@ var mapProps = (n) => Object.fromEntries(Object.entries(n || {}).map(([n, c]) =>
52
52
  setup(c, { slots: l, expose: u }) {
53
53
  let { t: d } = useI18n();
54
54
  SimpleUpload.t = d;
55
- let f = useFormItem(c), p = useMessage(), g = computed(() => c.customRequest || (({ file: n, onProgress: l, onFinish: u, onError: d }) => {
56
- c.uploadFile(n.file, (n) => l({ percent: n })).then((c) => {
57
- n.file.fileId = c, u();
58
- }).catch((n) => {
59
- p.error(n.message), d(n);
55
+ let f = useFormItem(c), p = useMessage(), g = computed(() => c.customRequest || (({ file: r, onProgress: l, onFinish: u, onError: d }) => {
56
+ c.uploadFile(r.file, (r) => l({ percent: r })).then((c) => {
57
+ r.file.fileId = c, u();
58
+ }).catch((r) => {
59
+ p.error(r.message), d(r);
60
60
  });
61
61
  })), _ = ref();
62
62
  u({ submit() {
63
- return until(_).toBeTruthy().then((n) => n.submit());
63
+ return until(_).toBeTruthy().then((r) => r.submit());
64
64
  } });
65
- let v = (n) => {
66
- c.onUpdateFileList?.(n), nextTick(() => f.nTriggerFormChange());
65
+ let v = (r) => {
66
+ c.onUpdateFileList?.(r), nextTick(() => f.nTriggerFormChange());
67
67
  };
68
68
  return () => {
69
- let { type: n, onUpdateFileList: u,...p } = c;
69
+ let { type: r, onUpdateFileList: u,...p } = c;
70
70
  return createVNode(NUpload, mergeProps(p, {
71
71
  ref: _,
72
72
  customRequest: g.value,
73
- listType: n === "image" ? "image-card" : "text",
74
- accept: p.accept ?? n === "image" ? "image/*" : void 0,
73
+ listType: r === "image" ? "image-card" : "text",
74
+ accept: p.accept ?? r === "image" ? "image/*" : void 0,
75
75
  "onUpdate:fileList": v
76
76
  }), {
77
77
  default: () => {
78
- let n;
78
+ let r;
79
79
  return createVNode(NButton, {
80
80
  disabled: f.mergedDisabledRef.value,
81
81
  size: f.mergedSizeRef.value
82
- }, _isSlot(n = d("common.page.form.selectFileText")) ? n : { default: () => [n] });
82
+ }, _isSlot(r = d("common.page.form.selectFileText")) ? r : { default: () => [r] });
83
83
  },
84
84
  ...l
85
85
  });
86
86
  };
87
87
  }
88
88
  });
89
- function createPageFormHelper({ getUserGroups: n, getUsersByGroup: d, getUsersByDept: p, getUsersByUsername: m, uploadFile: g, getFileInfos: v }) {
89
+ function createPageFormHelper({ getUserGroups: r, getUsersByGroup: d, getUsersByDept: p, getUsersByUsername: m, uploadFile: g, getFileInfos: v }) {
90
90
  return {
91
- input: () => ({ slots: n, props: c }, { modelValue: l, "onUpdate:modelValue": u, required: d, readonly: f,...p }) => f ? createVNode(NText, {
91
+ input: () => ({ slots: r, props: c }, { modelValue: l, "onUpdate:modelValue": u, required: d, readonly: f,...p }) => f ? createVNode(NText, {
92
92
  depth: 2,
93
93
  style: "line-height: 1.25"
94
94
  }, { default: () => [l ?? ""] }) : (c = mapProps(c), h(NInput, {
@@ -97,8 +97,8 @@ function createPageFormHelper({ getUserGroups: n, getUsersByGroup: d, getUsersBy
97
97
  ...p,
98
98
  value: l,
99
99
  "onUpdate:value": u
100
- }, n)),
101
- number: () => ({ slots: n, props: c }, { modelValue: l, "onUpdate:modelValue": u, required: d, readonly: f,...p }) => f ? createVNode(NText, {
100
+ }, r)),
101
+ number: () => ({ slots: r, props: c }, { modelValue: l, "onUpdate:modelValue": u, required: d, readonly: f,...p }) => f ? createVNode(NText, {
102
102
  depth: 2,
103
103
  style: "line-height: 1.25"
104
104
  }, { default: () => [l ?? ""] }) : (c = mapProps(c), h(NInputNumber, {
@@ -107,26 +107,26 @@ function createPageFormHelper({ getUserGroups: n, getUsersByGroup: d, getUsersBy
107
107
  ...p,
108
108
  value: l,
109
109
  "onUpdate:value": u
110
- }, n)),
110
+ }, r)),
111
111
  select: () => {
112
- let n, c;
112
+ let r, c;
113
113
  return ({ slots: l, props: u }, { modelValue: d, "onUpdate:modelValue": f, required: p, readonly: m,...g }) => {
114
114
  let { dictType: v, options: y,...b } = mapProps(u);
115
- if (y ? c = y : n !== v && (n = v, !c && n && (c = useDict(n))), m) if (b.multiple) {
116
- let n;
115
+ if (y ? c = y : r !== v && (r = v, !c && r && (c = useDict(r))), m) if (b.multiple) {
116
+ let r;
117
117
  return createVNode(NText, {
118
118
  depth: 2,
119
119
  style: "line-height: 1.25"
120
- }, _isSlot(n = (d?.map((n) => c?.find((c) => c[b.valueField || "value"] === n)) ?? []).map((n, c, l) => {
121
- let u = n ? b.renderLabel ? b.renderLabel(n) ?? "" : n[b.labelField || "label"] ?? "" : d[c] ?? "";
122
- return createVNode("span", { key: n[b.valueField || "value"] }, [u, c < l.length - 1 ? ", " : ""]);
123
- })) ? n : { default: () => [n] });
120
+ }, _isSlot(r = (d?.map((r) => c?.find((c) => c[b.valueField || "value"] === r)) ?? []).map((r, c, l) => {
121
+ let u = r ? b.renderLabel ? b.renderLabel(r) ?? "" : r[b.labelField || "label"] ?? "" : d[c] ?? "";
122
+ return createVNode("span", { key: r[b.valueField || "value"] }, [u, c < l.length - 1 ? ", " : ""]);
123
+ })) ? r : { default: () => [r] });
124
124
  } else {
125
- let n = c?.find((n) => n[b.valueField || "value"] === d);
125
+ let r = c?.find((r) => r[b.valueField || "value"] === d);
126
126
  return createVNode(NText, {
127
127
  depth: 2,
128
128
  style: "line-height: 1.25"
129
- }, { default: () => [n ? b.renderLabel ? b.renderLabel(n) ?? "" : n[b.labelField || "label"] ?? "" : d ?? ""] });
129
+ }, { default: () => [r ? b.renderLabel ? b.renderLabel(r) ?? "" : r[b.labelField || "label"] ?? "" : d ?? ""] });
130
130
  }
131
131
  return h(NSelect, {
132
132
  clearable: !0,
@@ -139,10 +139,10 @@ function createPageFormHelper({ getUserGroups: n, getUsersByGroup: d, getUsersBy
139
139
  }, l);
140
140
  };
141
141
  },
142
- checkbox: () => ({ slots: n, props: c }, { modelValue: l, "onUpdate:modelValue": u, required: d, readonly: f,...p }) => {
142
+ checkbox: () => ({ slots: r, props: c }, { modelValue: l, "onUpdate:modelValue": u, required: d, readonly: f,...p }) => {
143
143
  if (c = mapProps(c), f) {
144
144
  let u;
145
- return u = l === (c.checkedValue ?? !0) ? n?.checked ? n.checked() : createVNode(NCheckbox, { checked: !0 }, null) : n?.unchecked ? n.unchecked() : createVNode(NCheckbox, { disabled: !0 }, null), createVNode(NText, {
145
+ return u = l === (c.checkedValue ?? !0) ? r?.checked ? r.checked() : createVNode(NCheckbox, { checked: !0 }, null) : r?.unchecked ? r.unchecked() : createVNode(NCheckbox, { disabled: !0 }, null), createVNode(NText, {
146
146
  depth: 2,
147
147
  style: "line-height: 1.25"
148
148
  }, _isSlot(u) ? u : { default: () => [u] });
@@ -152,21 +152,21 @@ function createPageFormHelper({ getUserGroups: n, getUsersByGroup: d, getUsersBy
152
152
  ...p,
153
153
  checked: l,
154
154
  "onUpdate:checked": u
155
- }, n);
155
+ }, r);
156
156
  },
157
157
  checkboxes: () => {
158
- let n, c;
158
+ let r, c;
159
159
  return ({ props: u }, { modelValue: d, required: f, readonly: p,...m }) => {
160
160
  let { dictType: g, options: v,...y } = mapProps(u);
161
- if (v ? c = v : n !== g && (n = g, !c && n && (c = useDict(n))), p) {
162
- let n;
161
+ if (v ? c = v : r !== g && (r = g, !c && r && (c = useDict(r))), p) {
162
+ let r;
163
163
  return createVNode(NText, {
164
164
  depth: 2,
165
165
  style: "line-height: 2.4"
166
- }, _isSlot(n = (d?.map((n) => c?.find((c) => c[y.valueField || "value"] === n)) ?? []).map((n, c, l) => {
167
- let u = n ? n[y.labelField ?? "label"] ?? "" : d[c] ?? "";
168
- return createVNode("span", { key: n[y.valueField ?? "value"] }, [u, c < l.length - 1 ? ", " : ""]);
169
- })) ? n : { default: () => [n] });
166
+ }, _isSlot(r = (d?.map((r) => c?.find((c) => c[y.valueField || "value"] === r)) ?? []).map((r, c, l) => {
167
+ let u = r ? r[y.labelField ?? "label"] ?? "" : d[c] ?? "";
168
+ return createVNode("span", { key: r[y.valueField ?? "value"] }, [u, c < l.length - 1 ? ", " : ""]);
169
+ })) ? r : { default: () => [r] });
170
170
  }
171
171
  return h(NCheckboxes, {
172
172
  ...y,
@@ -177,15 +177,15 @@ function createPageFormHelper({ getUserGroups: n, getUsersByGroup: d, getUsersBy
177
177
  };
178
178
  },
179
179
  radios: () => {
180
- let n, l;
180
+ let r, l;
181
181
  return ({ props: u }, { modelValue: d, required: f, readonly: p,...m }) => {
182
182
  let { dictType: g, options: v,...y } = mapProps(u);
183
- if (v ? l = v : n !== g && (n = g, !l && n && (l = useDict(n))), p) {
184
- let n = l?.find((n) => n[y.valueField ?? "value"] === d);
183
+ if (v ? l = v : r !== g && (r = g, !l && r && (l = useDict(r))), p) {
184
+ let r = l?.find((r) => r[y.valueField ?? "value"] === d);
185
185
  return createVNode(NText, {
186
186
  depth: 2,
187
187
  style: "line-height: 1.25"
188
- }, { default: () => [n ? n[y.labelField ?? "label"] ?? "" : d ?? ""] });
188
+ }, { default: () => [r ? r[y.labelField ?? "label"] ?? "" : d ?? ""] });
189
189
  }
190
190
  return h(NRadios, {
191
191
  ...y,
@@ -195,7 +195,7 @@ function createPageFormHelper({ getUserGroups: n, getUsersByGroup: d, getUsersBy
195
195
  });
196
196
  };
197
197
  },
198
- datepicker: () => ({ slots: n, props: c }, { modelValue: l, "onUpdate:modelValue": u, required: d, readonly: f,...p }) => {
198
+ datepicker: () => ({ slots: r, props: c }, { modelValue: l, "onUpdate:modelValue": u, required: d, readonly: f,...p }) => {
199
199
  let { type: m = "date", format: g = m.startsWith("datetime") ? "yyyy-MM-dd HH:mm:ss" : "yyyy-MM-dd",...v } = mapProps(c);
200
200
  return f ? m.endsWith("range") ? createVNode(NText, {
201
201
  depth: 2,
@@ -211,21 +211,21 @@ function createPageFormHelper({ getUserGroups: n, getUsersByGroup: d, getUsersBy
211
211
  format: g,
212
212
  value: l,
213
213
  "onUpdate:value": u
214
- }, n);
214
+ }, r);
215
215
  },
216
- file: () => ({ slots: n, props: c }, { modelValue: l, "onUpdate:modelValue": u, required: d, readonly: f,...p }) => {
216
+ file: () => ({ slots: r, props: c }, { modelValue: l, "onUpdate:modelValue": u, required: d, readonly: f,...p }) => {
217
217
  if (c = mapProps(c), f) {
218
- let n;
218
+ let r;
219
219
  return console.warn("[file] 原则上此组建不应该显示在详情中"), fileList.value.length === 0 ? void 0 : createVNode(NFlex, {
220
220
  gap: "8",
221
221
  vertical: !0
222
- }, _isSlot(n = l.map((n) => createVNode("a", {
223
- key: n.id,
224
- href: n.url,
222
+ }, _isSlot(r = l.map((r) => createVNode("a", {
223
+ key: r.id,
224
+ href: r.url,
225
225
  target: "_blank",
226
226
  rel: "noreferrer",
227
227
  style: "max-width: 100px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; display: inline-block"
228
- }, [n.name]))) ? n : { default: () => [n] });
228
+ }, [r.name]))) ? r : { default: () => [r] });
229
229
  }
230
230
  return h(SimpleUpload, {
231
231
  ...c,
@@ -234,53 +234,53 @@ function createPageFormHelper({ getUserGroups: n, getUsersByGroup: d, getUsersBy
234
234
  uploadFile: g,
235
235
  fileList: l,
236
236
  onUpdateFileList: u
237
- }, n);
237
+ }, r);
238
238
  },
239
239
  upload: () => {
240
- let n = null, c = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map(), u = shallowRef([]), d = 0, f = (n) => {
240
+ let r = null, c = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map(), u = shallowRef([]), d = 0, f = (r) => {
241
241
  let c = ++d;
242
- u.value = n.map((n) => l.get(n)).filter(Boolean);
243
- let f = n.filter((n) => !l.has(n));
242
+ u.value = r.map((r) => l.get(r)).filter(Boolean);
243
+ let f = r.filter((r) => !l.has(r));
244
244
  Promise.resolve(f.length > 0 ? v(f) : []).then((f) => {
245
245
  if (c === d) {
246
- u.value = n.map((n) => l.get(n) || f.find((c) => c.id === n)), l.clear();
247
- for (let n of u.value) l.set(n.id, n);
246
+ u.value = r.map((r) => l.get(r) || f.find((c) => c.id === r)), l.clear();
247
+ for (let r of u.value) l.set(r.id, r);
248
248
  }
249
249
  });
250
250
  }, p;
251
251
  return {
252
252
  renderer: ({ slots: d, props: m }, { modelValue: v, "onUpdate:modelValue": y, required: b, readonly: S,...C }) => {
253
253
  let w = mapProps(m);
254
- if (p = w.ref ??= shallowRef(), n !== v && (n = v, f(v?.split(",") ?? [])), S) {
255
- let n;
254
+ if (p = w.ref ??= shallowRef(), r !== v && (r = v, f(v?.split(",") ?? [])), S) {
255
+ let r;
256
256
  return u.value.length === 0 ? void 0 : createVNode(NFlex, {
257
257
  gap: "8",
258
258
  vertical: !0,
259
259
  style: "padding: 6px 0"
260
- }, _isSlot(n = u.value.map((n) => createVNode("a", {
261
- key: n.id,
262
- href: n.url,
260
+ }, _isSlot(r = u.value.map((r) => createVNode("a", {
261
+ key: r.id,
262
+ href: r.url,
263
263
  target: "_blank",
264
264
  rel: "noreferrer",
265
- title: n.name,
266
- download: n.name,
265
+ title: r.name,
266
+ download: r.name,
267
267
  style: "max-width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; display: inline-block"
268
- }, [n.name]))) ? n : { default: () => [n] });
268
+ }, [r.name]))) ? r : { default: () => [r] });
269
269
  }
270
270
  return h(SimpleUpload, {
271
271
  ...w,
272
272
  ...C,
273
273
  uploadFile: g,
274
274
  fileList: u.value,
275
- onUpdateFileList: (n = []) => {
275
+ onUpdateFileList: (r = []) => {
276
276
  l.clear();
277
- for (let u of n) u.file?.fileId && c.set(u.id, u.file.fileId), u.file?.fileId ? l.set(u.file.fileId, u) : l.set(u.id, u);
278
- u.value = n, y(u.value.map((n) => c.get(n.id) || n.id).join(",") || null);
277
+ for (let u of r) u.file?.fileId && c.set(u.id, u.file.fileId), u.file?.fileId ? l.set(u.file.fileId, u) : l.set(u.id, u);
278
+ u.value = r, y(u.value.map((r) => c.get(r.id) || r.id).join(",") || null);
279
279
  }
280
280
  }, d);
281
281
  },
282
282
  beforeSubmit: async () => {
283
- if (await p?.value?.submit(), await until(u).toMatch((n) => n.every((n) => !["pending", "uploading"].includes(n.status))), u.value.some((n) => n.status === "error")) return SimpleUpload.t("common.page.form.validate.fileErrorMessage");
283
+ if (await p?.value?.submit(), await until(u).toMatch((r) => r.every((r) => !["pending", "uploading"].includes(r.status))), u.value.some((r) => r.status === "error")) return SimpleUpload.t("common.page.form.validate.fileErrorMessage");
284
284
  }
285
285
  };
286
286
  },
@@ -288,12 +288,12 @@ function createPageFormHelper({ getUserGroups: n, getUsersByGroup: d, getUsersBy
288
288
  let c;
289
289
  return ({ slots: l, props: g }, { modelValue: v, "onUpdate:modelValue": y, required: b, readonly: S,...C }) => {
290
290
  let w = mapProps(g);
291
- return c || (c = shallowRef([]), m().then((n) => {
292
- c.value = n;
293
- }), n().then((n) => {
294
- (void 0).value = n;
295
- }), getDeptsByCode().then((n) => {
296
- (void 0).value = n;
291
+ return c || (c = shallowRef([]), m().then((r) => {
292
+ c.value = r;
293
+ }), r().then((r) => {
294
+ (void 0).value = r;
295
+ }), getDeptsByCode().then((r) => {
296
+ (void 0).value = r;
297
297
  })), S ? createVNode(DtUserRender, {
298
298
  value: v,
299
299
  multiple: w.multiple,
@@ -314,15 +314,15 @@ function createPageFormHelper({ getUserGroups: n, getUsersByGroup: d, getUsersBy
314
314
  }
315
315
  };
316
316
  }
317
- function createPageTableHelper({ getDeptsByCode: n, getUsersByUsername: c, getFileInfos: l, previewFileUrl: u }) {
318
- let d = (n) => () => (c, l, u, d) => {
319
- if (c != null) return format(c, d.formatter ?? n);
320
- }, m = (n = {}) => createVNode("svg", mergeProps({
317
+ function createPageTableHelper({ getDeptsByCode: r, getUsersByUsername: c, getFileInfos: l, previewFileUrl: u }) {
318
+ let d = (r) => () => (c, l, u, d) => {
319
+ if (c != null) return format(c, d.formatter ?? r);
320
+ }, m = (r = {}) => createVNode("svg", mergeProps({
321
321
  xmlns: "http://www.w3.org/2000/svg",
322
322
  width: "1em",
323
323
  height: "1em",
324
324
  viewBox: "0 0 32 32"
325
- }, n), [createVNode("circle", {
325
+ }, r), [createVNode("circle", {
326
326
  cx: "16",
327
327
  cy: "16",
328
328
  r: "8",
@@ -332,87 +332,87 @@ function createPageTableHelper({ getDeptsByCode: n, getUsersByUsername: c, getFi
332
332
  date: d("yyyy-MM-dd"),
333
333
  datetime: d("yyyy-MM-dd HH:mm:ss"),
334
334
  dict: () => {
335
- let n, c, l;
335
+ let r, c, l;
336
336
  return (u, d, f, p) => {
337
337
  if (u == null) return;
338
338
  let { dictType: g, options: _, multiple: v, statusMap: y } = mapProps(p);
339
- if (_ ? c !== _ && (c = _, l = new Map(_.map((n) => [n[p.valueField || "value"], n]))) : n !== g && (n = g, !l && n && (l = useDictMap(n))), !v) {
339
+ if (_ ? c !== _ && (c = _, l = new Map(_.map((r) => [r[p.valueField || "value"], r]))) : r !== g && (r = g, !l && r && (l = useDictMap(r))), !v) {
340
340
  if (u = u.toString(), y && u in y) {
341
- let n = y[u] ?? "default";
341
+ let r = y[u] ?? "default";
342
342
  return [
343
343
  "primary",
344
344
  "success",
345
345
  "warning",
346
346
  "danger"
347
- ].includes(n) && (n = `var(--color-${n})`), createVNode("span", { style: "position: relative; padding-left: 1.25em" }, [createVNode(m, { style: `color: ${n}; position: absolute;left: 0; top: 1.5px` }, null), createVNode("span", null, [l.get(u?.toString())?.[p.labelField || "label"] ?? ""])]);
347
+ ].includes(r) && (r = `var(--color-${r})`), createVNode("span", { style: "position: relative; padding-left: 1.25em" }, [createVNode(m, { style: `color: ${r}; position: absolute;left: 0; top: 1.5px` }, null), createVNode("span", null, [l.get(u?.toString())?.[p.labelField || "label"] ?? ""])]);
348
348
  }
349
349
  return l.get(u)?.[p.labelField || "label"] ?? "";
350
350
  }
351
- return u?.map((n) => l.get(n.toString())?.[p.labelField || "label"]) ?? "";
351
+ return u?.map((r) => l.get(r.toString())?.[p.labelField || "label"]) ?? "";
352
352
  };
353
353
  },
354
- number: () => (n, c, l, u) => {
355
- if (n != null) {
356
- switch (u.percent && (n = Number(n) * 100), "number") {
354
+ number: () => (r, c, l, u) => {
355
+ if (r != null) {
356
+ switch (u.percent && (r = Number(r) * 100), "number") {
357
357
  case typeof u.fixed:
358
- n = n.toFixed(u.fixed);
358
+ r = r.toFixed(u.fixed);
359
359
  break;
360
360
  case typeof u.round:
361
- n = n.toFixed(u.round).replace(/0+$/, "");
361
+ r = r.toFixed(u.round).replace(/0+$/, "");
362
362
  break;
363
363
  case typeof u.precision:
364
- n = n.toPrecision(u.precision);
364
+ r = r.toPrecision(u.precision);
365
365
  break;
366
366
  }
367
- return u?.separator ? Number(n).toLocaleString() : n;
367
+ return u?.separator ? Number(r).toLocaleString() : r;
368
368
  }
369
369
  },
370
- email: () => (n) => createVNode("a", { href: `mailto:${n}` }, [n]),
371
- url: () => (n) => createVNode("a", { href: n }, [n]),
372
- color: () => (n) => createVNode(NColorPicker, {
373
- value: n,
370
+ email: () => (r) => createVNode("a", { href: `mailto:${r}` }, [r]),
371
+ url: () => (r) => createVNode("a", { href: r }, [r]),
372
+ color: () => (r) => createVNode(NColorPicker, {
373
+ value: r,
374
374
  disabled: !0,
375
375
  size: "small"
376
376
  }, null),
377
- image: () => (n, c, l, d) => {
377
+ image: () => (r, c, l, d) => {
378
378
  let f;
379
- return n ? createVNode(NFlex, {
379
+ return r ? createVNode(NFlex, {
380
380
  gap: "8",
381
381
  wrap: !0
382
- }, _isSlot(f = (Array.isArray(n) ? n : d?.multiple ? n.split(",") : [n]).map((n) => u(n)).map((n) => createVNode("img", {
383
- key: n,
384
- src: n,
382
+ }, _isSlot(f = (Array.isArray(r) ? r : d?.multiple ? r.split(",") : [r]).map((r) => u(r)).map((r) => createVNode("img", {
383
+ key: r,
384
+ src: r,
385
385
  style: "max-height: 32px; max-width: 100px; object-fit: contain"
386
386
  }, null))) ? f : { default: () => [f] }) : void 0;
387
387
  },
388
388
  file: () => {
389
- let n = nanoid();
389
+ let r = nanoid();
390
390
  return (c, u, d, f) => {
391
391
  let p;
392
- return c ? (u.__file_urls ??= {}, u.__file_urls[n] || l(Array.isArray(c) ? c : f?.multiple ? c.split(",") : [c]).then((c) => {
393
- u.__file_urls[n] = c;
392
+ return c ? (u.__file_urls ??= {}, u.__file_urls[r] || l(Array.isArray(c) ? c : f?.multiple ? c.split(",") : [c]).then((c) => {
393
+ u.__file_urls[r] = c;
394
394
  }), createVNode(NFlex, {
395
395
  gap: "8",
396
396
  wrap: !0
397
- }, _isSlot(p = (u.__file_urls[n] || []).map((n) => createVNode("a", {
398
- key: n.id,
399
- href: n.url,
397
+ }, _isSlot(p = (u.__file_urls[r] || []).map((r) => createVNode("a", {
398
+ key: r.id,
399
+ href: r.url,
400
400
  target: "_blank",
401
401
  rel: "noreferrer",
402
402
  style: "max-width: 100px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; display: inline-block"
403
- }, [n.name]))) ? p : { default: () => [p] })) : void 0;
403
+ }, [r.name]))) ? p : { default: () => [p] })) : void 0;
404
404
  };
405
405
  },
406
406
  dept: () => (c, l, u, d) => {
407
407
  if (c) return createVNode(DtDeptRender, {
408
408
  value: c,
409
409
  multiple: d?.multiple,
410
- getDeptsByCode: n
410
+ getDeptsByCode: r
411
411
  }, null);
412
412
  },
413
- user: () => (n, l, u, d) => {
414
- if (n) return createVNode(DtUserRender, {
415
- value: n,
413
+ user: () => (r, l, u, d) => {
414
+ if (r) return createVNode(DtUserRender, {
415
+ value: r,
416
416
  multiple: d?.multiple,
417
417
  getUsersByUsername: c
418
418
  }, null);
@@ -420,12 +420,18 @@ function createPageTableHelper({ getDeptsByCode: n, getUsersByUsername: c, getFi
420
420
  };
421
421
  }
422
422
  function createFormHelper() {
423
- return () => ({ items: n, model: c, handleSubmit: l, reset: u, validation: f, readonly: p, inModal: m, showColon: g }) => createVNode(DataForm, {
423
+ return () => ({ items: r, model: c, handleSubmit: l, reset: u, validation: f, readonly: p, inModal: m, showFeedback: g, showColon: _, labelWidth: v, labelAlign: y, labelPlacement: b, showRequireMark: x, requireMarkPlacement: C }) => createVNode(DataForm, {
424
424
  readonly: p,
425
425
  model: c,
426
- items: n,
426
+ items: r,
427
427
  validation: f,
428
- showColon: unref(g) ?? !0,
428
+ showColon: unref(_) ?? !0,
429
+ labelWidth: unref(v),
430
+ labelAlign: unref(y),
431
+ labelPlacement: unref(b),
432
+ showRequireMark: unref(x) ?? !0,
433
+ requireMarkPlacement: unref(C),
434
+ showFeedback: unref(g) ?? !0,
429
435
  showAction: !1,
430
436
  onSubmit: l,
431
437
  onRest: u,
@@ -433,7 +439,7 @@ function createFormHelper() {
433
439
  }, null);
434
440
  }
435
441
  function createModalHelper() {
436
- let n = (n) => typeof n == "number" ? `${n}px` : n, c = {
442
+ let r = (r) => typeof r == "number" ? `${r}px` : r, c = {
437
443
  maxHeight: "calc(100vh - 130px)",
438
444
  display: "flex",
439
445
  flexDirection: "column"
@@ -456,8 +462,8 @@ function createModalHelper() {
456
462
  }, _isSlot(N) ? N : { default: () => [N] })] });
457
463
  if (u === "dialog") {
458
464
  let { style: u } = mergeProps({ style: {
459
- width: n(T ?? 520),
460
- height: n(E)
465
+ width: r(T ?? 520),
466
+ height: r(E)
461
467
  } }, { style: D });
462
468
  return createVNode(NModal, mergeProps({
463
469
  show: d,
@@ -16,6 +16,12 @@ declare module '@ithinkdt/page' {
16
16
 
17
17
  interface FormRenderExtraOptions {
18
18
  showColon?: MaybeRef<boolean | undefined>
19
+ labelWidth?: MaybeRef<string | number | undefined>
20
+ labelAlign?: MaybeRef<'left' | 'right' | 'center' | undefined>
21
+ labelPlacement?: MaybeRef<'left' | 'top' | undefined>
22
+ showRequireMark?: MaybeRef<boolean | undefined>
23
+ requireMarkPlacement?: MaybeRef<'left' | 'right' | 'right-hanging' | undefined>
24
+ showFeedback?: MaybeRef<boolean | undefined>
19
25
  }
20
26
 
21
27
  type FormItemOptionKeys = 'size' | 'showLabel' | 'labelWidth' | 'labelStyle' | 'labelAlign' | 'labelPlacement' | 'labelProps'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ithinkdt/ui",
3
- "version": "4.0.0-50",
3
+ "version": "4.0.0-51",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "iThinkDT UI",