diff --git a/apps/web/app/dashboard/id-tags/page.tsx b/apps/web/app/dashboard/id-tags/page.tsx index cd42285..f030aec 100644 --- a/apps/web/app/dashboard/id-tags/page.tsx +++ b/apps/web/app/dashboard/id-tags/page.tsx @@ -10,6 +10,7 @@ import { DatePicker, EmptyState, Input, + InputGroup, Label, ListBox, Modal, @@ -77,7 +78,7 @@ function UserAutocomplete({ return ( onChange(key ? String(key) : "")} @@ -99,7 +100,7 @@ function UserAutocomplete({ - + @@ -122,21 +123,98 @@ function UserAutocomplete({ ); } +function ParentTagAutocomplete({ + value, + onChange, + tags, + excludeTag, +}: { + value: string; + onChange: (v: string) => void; + tags: IdTag[]; + excludeTag?: string; +}) { + const { contains } = useFilter({ sensitivity: "base" }); + const options = tags.filter((t) => t.idTag !== excludeTag); + return ( + onChange(key ? String(key) : "")} + > + + + {({ isPlaceholder, state }: any) => { + if (isPlaceholder || !state.selectedItems?.length) + return ; + return {state.selectedItems[0]?.key}; + }} + + + + + + + + + + + + + + 无匹配卡号}> + {options.map((t) => ( + + {t.idTag} + + + ))} + + + + + ); +} + +function generateIdTag(): string { + const chars = "0123456789ABCDEF"; + let result = ""; + for (let i = 0; i < 8; i++) { + result += chars[Math.floor(Math.random() * chars.length)]; + } + return result; +} + function TagFormBody({ form, setForm, isEdit, users, + tags, }: { form: FormState; setForm: (f: FormState) => void; isEdit: boolean; users: UserRow[]; + tags: IdTag[]; }) { return ( <> - +
+ + {!isEdit && ( + + )} +
- + setForm({ ...form, expiryDate: date ? date.toString() : "" })} @@ -213,28 +291,32 @@ function TagFormBody({
- - - + + setForm({ ...form, parentIdTag: e.target.value })} + onChange={(v) => setForm({ ...form, parentIdTag: v })} + tags={tags} + excludeTag={isEdit ? form.idTag : undefined} /> - + - - setForm({ ...form, balance: e.target.value })} - /> + + + + setForm({ ...form, balance: e.target.value })} + /> + CNY +
- + setForm({ ...form, userId: id })} @@ -352,28 +434,34 @@ export default function IdTagsPage() { 新增储值卡 - - - - - - 新增储值卡 - - - - - - - - - - - - + + + + + + 新增储值卡 + + + + + + + + + + + + ) : ( - - - - - - 编辑储值卡 - - - - - - - - - - - - - {/* Delete button */} - - - - - - - - 确认删除储值卡 - - -

- 将永久删除储值卡{" "} - - {tag.idTag} - - ,此操作不可恢复。 -

-
- - - - -
-
-
-
-
- + +
+ {/* Edit button */} + + + + + + + + 编辑储值卡 + + + + + + + + + + + + + {/* Delete button */} + + + + + + + + 确认删除储值卡 + + +

+ 将永久删除储值卡{" "} + + {tag.idTag} + + ,此操作不可恢复。 +

+
+ + + + +
+
+
+
+
+
)} );