qqq
This commit is contained in:
@@ -380,7 +380,7 @@ export default function EquipmentPage() {
|
||||
<Filter className="h-4 w-4 mr-2" />
|
||||
<SelectValue placeholder="筛选状态" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
<SelectItem value="all">全部状态</SelectItem>
|
||||
<SelectItem value="1">正常</SelectItem>
|
||||
<SelectItem value="2">即将到期</SelectItem>
|
||||
@@ -420,10 +420,10 @@ export default function EquipmentPage() {
|
||||
onValueChange={(value) => setNewEquipment({ ...newEquipment, type: value })}
|
||||
disabled={loadingEquipmentTypes}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue placeholder={loadingEquipmentTypes ? "加载中..." : "选择设备类型"} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
{Object.entries(equipmentTypes).map(([key, value]) => (
|
||||
<SelectItem key={key} value={key}>
|
||||
{value}
|
||||
@@ -462,7 +462,7 @@ export default function EquipmentPage() {
|
||||
: "选择商户"
|
||||
} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px] overflow-y-auto">
|
||||
{merchants.length === 0 && !loadingMerchants ? (
|
||||
<SelectItem value="no-data" disabled>
|
||||
点击加载商户数据
|
||||
@@ -501,10 +501,10 @@ export default function EquipmentPage() {
|
||||
value={newEquipment.status}
|
||||
onValueChange={(value) => setNewEquipment({ ...newEquipment, status: value })}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue placeholder="选择设备状态" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
<SelectItem value="normal">正常</SelectItem>
|
||||
<SelectItem value="expiring">即将到期</SelectItem>
|
||||
<SelectItem value="expired">已到期</SelectItem>
|
||||
@@ -564,10 +564,10 @@ export default function EquipmentPage() {
|
||||
onValueChange={(value) => setEditEquipment({ ...editEquipment, type: value })}
|
||||
disabled={loadingEquipmentTypes}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue placeholder={loadingEquipmentTypes ? "加载中..." : "选择设备类型"} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
{Object.entries(equipmentTypes).map(([key, value]) => (
|
||||
<SelectItem key={key} value={key}>
|
||||
{value}
|
||||
@@ -592,10 +592,10 @@ export default function EquipmentPage() {
|
||||
onValueChange={(value) => setEditEquipment({ ...editEquipment, merchantId: value })}
|
||||
disabled={loadingMerchants}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue placeholder={loadingMerchants ? "加载中..." : "选择商户"} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
{merchants.map((merchant) => (
|
||||
<SelectItem key={merchant.id} value={merchant.merchantsId || merchant.id}>
|
||||
{merchant.merchantName}
|
||||
@@ -628,10 +628,10 @@ export default function EquipmentPage() {
|
||||
value={editEquipment.status}
|
||||
onValueChange={(value) => setEditEquipment({ ...editEquipment, status: value })}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue placeholder="选择设备状态" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
<SelectItem value="normal">正常</SelectItem>
|
||||
<SelectItem value="expiring">即将到期</SelectItem>
|
||||
<SelectItem value="expired">已到期</SelectItem>
|
||||
@@ -745,7 +745,7 @@ export default function EquipmentPage() {
|
||||
<div className="space-y-1">
|
||||
<div className="flex items-center space-x-2">
|
||||
<Shield className="h-4 w-4 text-blue-600" />
|
||||
<span className="font-medium text-blue-600">{item.equId}</span>
|
||||
<span className="font-medium text-blue-600">{item.equipmentId}</span>
|
||||
</div>
|
||||
<div className="text-sm font-medium">{item.equipmentName}</div>
|
||||
<div className="text-xs text-gray-500">类型: {equipmentTypeDisplay}</div>
|
||||
|
||||
@@ -416,10 +416,10 @@ export default function MallsPage() {
|
||||
onValueChange={(value) => setNewMall({ ...newMall, provinceCode: value })}
|
||||
disabled={loading}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue placeholder="请选择省份" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
{provinces.map((province) => (
|
||||
<SelectItem key={province.code} value={province.code}>
|
||||
{province.name}
|
||||
@@ -435,7 +435,7 @@ export default function MallsPage() {
|
||||
onValueChange={(value) => setNewMall({ ...newMall, mallUserId: value })}
|
||||
disabled={loading || !newMall.provinceCode}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue placeholder={
|
||||
!newMall.provinceCode
|
||||
? "请先选择省份"
|
||||
@@ -444,7 +444,7 @@ export default function MallsPage() {
|
||||
: "请选择商场"
|
||||
} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
{mallUsers.map((mallUser) => (
|
||||
<SelectItem key={mallUser.userId} value={mallUser.userId}>
|
||||
<div className="flex flex-col items-start">
|
||||
|
||||
@@ -676,7 +676,7 @@ export default function MerchantsPage() {
|
||||
{merchant.mallLocation || "无"}
|
||||
</div>
|
||||
</TableCell>
|
||||
<TableCell>{merchant.dealerId || "无"}</TableCell>
|
||||
<TableCell>{merchant.dealerName || "无"}</TableCell>
|
||||
<TableCell>
|
||||
<div className="flex items-start">
|
||||
<MapPin className="h-4 w-4 mr-1 text-gray-400 mt-0.5 flex-shrink-0" />
|
||||
@@ -774,11 +774,12 @@ export default function MerchantsPage() {
|
||||
</Card>
|
||||
|
||||
<Dialog open={isAddMerchantOpen} onOpenChange={setIsAddMerchantOpen}>
|
||||
<DialogContent className="max-w-2xl">
|
||||
<DialogHeader>
|
||||
<DialogContent className="max-w-2xl max-h-[90vh] flex flex-col">
|
||||
<DialogHeader className="flex-shrink-0">
|
||||
<DialogTitle>添加新商户</DialogTitle>
|
||||
<DialogDescription>填写商户基本信息和地址详情</DialogDescription>
|
||||
</DialogHeader>
|
||||
<div className="flex-1 overflow-y-auto pr-2">
|
||||
<div className="grid grid-cols-2 gap-4">
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="province">选择省份</Label>
|
||||
@@ -792,10 +793,10 @@ export default function MerchantsPage() {
|
||||
}
|
||||
}}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue placeholder={loadingProvinces ? "加载中..." : "选择省份"} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
{provinces.length === 0 && !loadingProvinces ? (
|
||||
<SelectItem value="no-data" disabled>
|
||||
点击加载省份数据
|
||||
@@ -824,7 +825,7 @@ export default function MerchantsPage() {
|
||||
}}
|
||||
disabled={loadingMalls || !newMerchant.province}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue placeholder={
|
||||
!newMerchant.province
|
||||
? "请先选择省份"
|
||||
@@ -833,7 +834,7 @@ export default function MerchantsPage() {
|
||||
: "选择商场(可选)"
|
||||
} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
{malls.map((mall) => (
|
||||
<SelectItem key={mall.mallUser || mall.id} value={mall.mallUser}>
|
||||
{mall.mallName}
|
||||
@@ -882,10 +883,10 @@ export default function MerchantsPage() {
|
||||
}
|
||||
}}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue placeholder={loadingTotalMerchants ? "加载中..." : "选择总商户(可选)"} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
{totalMerchants.map((merchant) => (
|
||||
<SelectItem key={merchant.userId} value={merchant.userId}>
|
||||
{merchant.nickName}
|
||||
@@ -906,7 +907,8 @@ export default function MerchantsPage() {
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex justify-end space-x-2 mt-6">
|
||||
</div>
|
||||
<div className="flex justify-end space-x-2 mt-6 flex-shrink-0 pt-4 border-t">
|
||||
<Button
|
||||
variant="outline"
|
||||
onClick={() => setIsAddMerchantOpen(false)}
|
||||
@@ -946,10 +948,10 @@ export default function MerchantsPage() {
|
||||
value={newEquipment.type}
|
||||
onValueChange={(value) => setNewEquipment({ ...newEquipment, type: value })}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue placeholder="选择设备类型" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
<SelectItem value="干粉灭火器">干粉灭火器</SelectItem>
|
||||
<SelectItem value="烟雾探测器">烟雾探测器</SelectItem>
|
||||
<SelectItem value="自动喷淋">自动喷淋</SelectItem>
|
||||
@@ -1016,11 +1018,12 @@ export default function MerchantsPage() {
|
||||
|
||||
{/* 编辑商户对话框 */}
|
||||
<Dialog open={isEditMerchantOpen} onOpenChange={setIsEditMerchantOpen}>
|
||||
<DialogContent className="max-w-2xl">
|
||||
<DialogHeader>
|
||||
<DialogContent className="max-w-2xl max-h-[90vh] flex flex-col">
|
||||
<DialogHeader className="flex-shrink-0">
|
||||
<DialogTitle>编辑商户</DialogTitle>
|
||||
<DialogDescription>修改商户基本信息和地址详情</DialogDescription>
|
||||
</DialogHeader>
|
||||
<div className="flex-1 overflow-y-auto pr-2">
|
||||
<div className="grid grid-cols-2 gap-4">
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="edit-province">选择省份</Label>
|
||||
@@ -1029,10 +1032,10 @@ export default function MerchantsPage() {
|
||||
onValueChange={handleEditProvinceChange}
|
||||
disabled={loadingProvinces}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue placeholder={loadingProvinces ? "加载中..." : "选择省份"} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
{provinces.map((province) => (
|
||||
<SelectItem key={province.code} value={province.code}>
|
||||
{province.name}
|
||||
@@ -1055,7 +1058,7 @@ export default function MerchantsPage() {
|
||||
}}
|
||||
disabled={loadingMalls || !editMerchant.province}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue placeholder={
|
||||
!editMerchant.province
|
||||
? "请先选择省份"
|
||||
@@ -1064,7 +1067,7 @@ export default function MerchantsPage() {
|
||||
: "选择商场(可选)"
|
||||
} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
{malls.map((mall) => (
|
||||
<SelectItem key={mall.mallUser || mall.id} value={mall.mallUser}>
|
||||
{mall.mallName}
|
||||
@@ -1113,10 +1116,10 @@ export default function MerchantsPage() {
|
||||
}
|
||||
}}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue placeholder={loadingTotalMerchants ? "加载中..." : "选择总商户(可选)"} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
{totalMerchants.map((merchant) => (
|
||||
<SelectItem key={merchant.userId} value={merchant.userId}>
|
||||
{merchant.nickName}
|
||||
@@ -1137,7 +1140,8 @@ export default function MerchantsPage() {
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex justify-end space-x-2 mt-6">
|
||||
</div>
|
||||
<div className="flex justify-end space-x-2 mt-6 flex-shrink-0 pt-4 border-t">
|
||||
<Button
|
||||
variant="outline"
|
||||
onClick={() => setIsEditMerchantOpen(false)}
|
||||
|
||||
@@ -298,7 +298,7 @@ export default function WorkOrdersPage() {
|
||||
创建工单
|
||||
</Button>
|
||||
</DialogTrigger>
|
||||
<DialogContent className="max-w-2xl">
|
||||
<DialogContent className="max-w-2xl max-h-[90vh] overflow-y-auto">
|
||||
<DialogHeader>
|
||||
<DialogTitle>创建新工单</DialogTitle>
|
||||
<DialogDescription>选择商户和设备,然后分配给维修人员</DialogDescription>
|
||||
@@ -394,7 +394,7 @@ export default function WorkOrdersPage() {
|
||||
<SelectTrigger className="w-full sm:w-32">
|
||||
<SelectValue placeholder="状态" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
<SelectItem value="all">全部状态</SelectItem>
|
||||
<SelectItem value="1">待接单</SelectItem>
|
||||
<SelectItem value="2">已接单</SelectItem>
|
||||
@@ -410,7 +410,7 @@ export default function WorkOrdersPage() {
|
||||
<SelectTrigger className="w-full sm:w-32">
|
||||
<SelectValue placeholder="工人" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
<SelectItem value="all">全部工人</SelectItem>
|
||||
{uniqueWorkers.map((worker) => (
|
||||
<SelectItem key={worker} value={worker}>
|
||||
@@ -723,10 +723,10 @@ function CreateWorkOrderForm({ onClose }: { onClose: () => void }) {
|
||||
<SelectTrigger>
|
||||
<SelectValue placeholder={loadingMerchants ? "加载中..." : "请先选择商户"} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px] overflow-y-auto">
|
||||
{merchants.map((merchant) => (
|
||||
<SelectItem key={merchant.id} value={merchant.id}>
|
||||
{merchant.merchantName} - {merchant.mallLocation || "无商场"}
|
||||
{merchant.merchantName} - {merchant.contactPerson} - {merchant.mallLocation || "无商场"}
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
@@ -751,7 +751,7 @@ function CreateWorkOrderForm({ onClose }: { onClose: () => void }) {
|
||||
: "选择设备"
|
||||
} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px] overflow-y-auto">
|
||||
{availableEquipment.map((equipment) => (
|
||||
<SelectItem key={equipment.id} value={equipment.equipmentId}>
|
||||
{equipment.equipmentName} ({equipment.equipmentType})
|
||||
@@ -764,10 +764,10 @@ function CreateWorkOrderForm({ onClose }: { onClose: () => void }) {
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="type">工单类型</Label>
|
||||
<Select value={formData.type} onValueChange={(value) => setFormData({ ...formData, type: value })}>
|
||||
<SelectTrigger>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue placeholder="选择类型" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
<SelectItem value="设备检测">设备检测</SelectItem>
|
||||
<SelectItem value="故障维修">故障维修</SelectItem>
|
||||
<SelectItem value="设备安装">设备安装</SelectItem>
|
||||
@@ -790,7 +790,7 @@ function CreateWorkOrderForm({ onClose }: { onClose: () => void }) {
|
||||
<SelectTrigger>
|
||||
<SelectValue placeholder={loadingWorkers ? "加载中..." : "选择维修工人"} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px] overflow-y-auto">
|
||||
{workers.map((worker) => (
|
||||
<SelectItem key={worker.id} value={worker.id}>
|
||||
{worker.name} - {worker.province} ({worker.phone})
|
||||
|
||||
@@ -622,7 +622,7 @@ export default function WorkersPage() {
|
||||
<SelectTrigger>
|
||||
<SelectValue placeholder="选择省份" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
{provinces.map((province) => (
|
||||
<SelectItem key={province.code} value={province.code}>
|
||||
{province.name}
|
||||
@@ -640,7 +640,7 @@ export default function WorkersPage() {
|
||||
<SelectTrigger>
|
||||
<SelectValue placeholder="选择经销商" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
{dealers.map((dealer) => (
|
||||
<SelectItem key={dealer.userId} value={dealer.userId}>
|
||||
{dealer.userName}
|
||||
@@ -708,7 +708,7 @@ export default function WorkersPage() {
|
||||
<SelectTrigger>
|
||||
<SelectValue placeholder="选择省份" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
{provinces.map((province) => (
|
||||
<SelectItem key={province.code} value={province.code}>
|
||||
{province.name}
|
||||
@@ -726,7 +726,7 @@ export default function WorkersPage() {
|
||||
<SelectTrigger>
|
||||
<SelectValue placeholder="选择经销商" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
{dealers.map((dealer) => (
|
||||
<SelectItem key={dealer.userId} value={dealer.userId}>
|
||||
{dealer.userName}
|
||||
@@ -889,7 +889,7 @@ export default function WorkersPage() {
|
||||
<SelectTrigger className="w-32">
|
||||
<SelectValue placeholder="省份" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
<SelectItem value="all">全部省份</SelectItem>
|
||||
{provinces.map((province) => (
|
||||
<SelectItem key={province.code} value={province.code}>
|
||||
@@ -902,7 +902,7 @@ export default function WorkersPage() {
|
||||
<SelectTrigger className="w-32">
|
||||
<SelectValue placeholder="技能等级" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
<SelectItem value="all">全部等级</SelectItem>
|
||||
<SelectItem value="高级技师">高级技师</SelectItem>
|
||||
<SelectItem value="中级技师">中级技师</SelectItem>
|
||||
@@ -913,7 +913,7 @@ export default function WorkersPage() {
|
||||
<SelectTrigger className="w-64">
|
||||
<SelectValue placeholder="选择工单" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="max-h-[300px]">
|
||||
<SelectItem value="all">全部工单</SelectItem>
|
||||
{workOrders.map((order) => (
|
||||
<SelectItem key={order.value} value={order.value}>
|
||||
|
||||
@@ -61,7 +61,7 @@ function SelectContent({
|
||||
<SelectPrimitive.Content
|
||||
data-slot="select-content"
|
||||
className={cn(
|
||||
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
|
||||
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-[300px] min-w-[8rem] overflow-hidden rounded-md border shadow-md",
|
||||
position === "popper" &&
|
||||
"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
||||
className
|
||||
@@ -72,9 +72,9 @@ function SelectContent({
|
||||
<SelectScrollUpButton />
|
||||
<SelectPrimitive.Viewport
|
||||
className={cn(
|
||||
"p-1",
|
||||
"p-1 max-h-[280px] overflow-y-auto",
|
||||
position === "popper" &&
|
||||
"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
|
||||
"w-full min-w-[var(--radix-select-trigger-width)]"
|
||||
)}
|
||||
>
|
||||
{children}
|
||||
|
||||
@@ -47,3 +47,4 @@ export async function deleteService(id: string): Promise<ServiceResponse> {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -10,3 +10,4 @@ export async function getUserByRoleKey(roleKey: string): Promise<UserByRoleRespo
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -42,3 +42,4 @@ export interface UserByRoleResponse {
|
||||
data: User[]
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user