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