youhua1
This commit is contained in:
@@ -170,6 +170,8 @@ export default function CompanyPermissionsPage() {
|
||||
|
||||
// 判断是否是总部管理员
|
||||
const isAdmin = currentUserRole === "admin"
|
||||
// 判断是否可以编辑用户(admin 和 common 角色都可以)
|
||||
const canEdit = isAdmin || userRoleFromApi === "common"
|
||||
|
||||
// 初始化数据
|
||||
useEffect(() => {
|
||||
@@ -334,19 +336,19 @@ export default function CompanyPermissionsPage() {
|
||||
<TableHead>联系方式</TableHead>
|
||||
<TableHead>最后登录</TableHead>
|
||||
<TableHead>状态</TableHead>
|
||||
{isAdmin && <TableHead>操作</TableHead>}
|
||||
{canEdit && <TableHead>操作</TableHead>}
|
||||
</TableRow>
|
||||
</TableHeader>
|
||||
<TableBody>
|
||||
{loading ? (
|
||||
<TableRow>
|
||||
<TableCell colSpan={isAdmin ? 8 : 7} className="text-center py-8">
|
||||
<TableCell colSpan={canEdit ? 8 : 7} className="text-center py-8">
|
||||
<div className="text-gray-500">加载中...</div>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
) : users.length === 0 ? (
|
||||
<TableRow>
|
||||
<TableCell colSpan={isAdmin ? 8 : 7} className="text-center py-8">
|
||||
<TableCell colSpan={canEdit ? 8 : 7} className="text-center py-8">
|
||||
<div className="text-gray-500">暂无数据</div>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
@@ -388,7 +390,7 @@ export default function CompanyPermissionsPage() {
|
||||
</div>
|
||||
</TableCell>
|
||||
<TableCell>{getStatusBadge(user.status)}</TableCell>
|
||||
{isAdmin && (
|
||||
{canEdit && (
|
||||
<TableCell>
|
||||
<div className="flex space-x-2">
|
||||
<Button
|
||||
|
||||
@@ -306,13 +306,56 @@ export default function EquipmentPage() {
|
||||
}
|
||||
|
||||
// 打开查看对话框
|
||||
const handleViewEquipment = (equipment: Equipment) => {
|
||||
const handleViewEquipment = async (equipment: Equipment) => {
|
||||
console.log('查看设备数据:', equipment)
|
||||
|
||||
// 先设置设备信息并打开对话框
|
||||
setViewEquipment(equipment)
|
||||
setIsViewEquipmentOpen(true)
|
||||
|
||||
// 加载设备类型数据用于显示
|
||||
if (Object.keys(equipmentTypes).length === 0) {
|
||||
fetchEquipmentTypes()
|
||||
}
|
||||
|
||||
// 如果商户名称为空或未定义,尝试根据 merchantId 查找商户信息
|
||||
if ((!equipment.merchantName || equipment.merchantName.trim() === '') && equipment.merchantId) {
|
||||
// 如果商户列表未加载,先加载
|
||||
let currentMerchants = merchants
|
||||
if (currentMerchants.length === 0) {
|
||||
setLoadingMerchants(true)
|
||||
try {
|
||||
const response = await apiGet('/back/general/provinceMerchants')
|
||||
if (response.code === 200) {
|
||||
currentMerchants = response.data || []
|
||||
setMerchants(currentMerchants)
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('获取商户列表失败:', error)
|
||||
} finally {
|
||||
setLoadingMerchants(false)
|
||||
}
|
||||
}
|
||||
|
||||
// 查找对应的商户信息
|
||||
const merchant = currentMerchants.find(
|
||||
m => (m.merchantsId === equipment.merchantId) || (m.id === equipment.merchantId)
|
||||
)
|
||||
|
||||
console.log('找到的商户信息:', merchant, 'merchantId:', equipment.merchantId)
|
||||
|
||||
if (merchant) {
|
||||
const updatedEquipment = {
|
||||
...equipment,
|
||||
merchantName: merchant.merchantName || equipment.merchantName || '-',
|
||||
mallName: merchant.mallLocation || equipment.mallName || '-'
|
||||
}
|
||||
console.log('更新后的设备信息:', updatedEquipment)
|
||||
setViewEquipment(updatedEquipment)
|
||||
} else {
|
||||
console.warn('未找到对应的商户信息,merchantId:', equipment.merchantId)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 打开编辑对话框
|
||||
@@ -964,13 +1007,13 @@ export default function EquipmentPage() {
|
||||
|
||||
{/* 查看设备对话框 */}
|
||||
<Dialog open={isViewEquipmentOpen} onOpenChange={setIsViewEquipmentOpen}>
|
||||
<DialogContent className="max-w-4xl max-h-[90vh] overflow-hidden flex flex-col w-[95vw] sm:w-full p-0 sm:p-6">
|
||||
<DialogHeader className="px-4 sm:px-0 pt-4 sm:pt-0 pb-3 sm:pb-4 border-b sm:border-b-0">
|
||||
<DialogContent className="max-w-4xl max-h-[95vh] overflow-hidden flex flex-col w-[95vw] sm:w-full p-0 sm:p-6">
|
||||
<DialogHeader className="flex-shrink-0 px-4 sm:px-0 pt-4 sm:pt-0 pb-3 sm:pb-4 border-b">
|
||||
<DialogTitle className="text-base sm:text-lg">设备详情</DialogTitle>
|
||||
<DialogDescription className="text-xs sm:text-sm">查看设备完整信息</DialogDescription>
|
||||
</DialogHeader>
|
||||
{viewEquipment && (
|
||||
<div className="flex-1 overflow-y-auto px-4 sm:px-0 py-3 sm:py-4 space-y-4 sm:space-y-6">
|
||||
<div className="flex-1 overflow-y-auto min-h-0 px-4 sm:px-0 py-3 sm:py-4 space-y-4 sm:space-y-6">
|
||||
{/* 设备基本信息 */}
|
||||
<div className="grid grid-cols-1 sm:grid-cols-2 gap-3 sm:gap-4 sm:gap-x-6">
|
||||
<div className="space-y-1.5 sm:space-y-2">
|
||||
@@ -1006,11 +1049,15 @@ export default function EquipmentPage() {
|
||||
<div className="grid grid-cols-1 sm:grid-cols-2 gap-3 sm:gap-4 sm:gap-x-6">
|
||||
<div className="space-y-1.5 sm:space-y-2">
|
||||
<Label className="text-xs sm:text-sm text-gray-500 block">商户名称</Label>
|
||||
<div className="text-sm sm:text-base font-medium text-gray-900 break-words">{viewEquipment.merchantName}</div>
|
||||
</div>
|
||||
<div className="space-y-1.5 sm:space-y-2">
|
||||
<Label className="text-xs sm:text-sm text-gray-500 block">商场名称</Label>
|
||||
<div className="text-sm sm:text-base text-gray-900 break-words">{viewEquipment.mallName || '-'}</div>
|
||||
<div className="text-sm sm:text-base font-medium text-gray-900 break-words">
|
||||
{viewEquipment.merchantName ? (
|
||||
<span>{viewEquipment.merchantName}</span>
|
||||
) : viewEquipment.merchantId ? (
|
||||
<span className="text-gray-400 italic">加载中...</span>
|
||||
) : (
|
||||
<span className="text-gray-400 italic">暂无数据</span>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-span-1 sm:col-span-2 space-y-1.5 sm:space-y-2">
|
||||
<Label className="text-xs sm:text-sm text-gray-500 block">安装位置</Label>
|
||||
@@ -1079,7 +1126,7 @@ export default function EquipmentPage() {
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
<div className="flex flex-col-reverse sm:flex-row justify-end gap-2 px-4 sm:px-0 py-3 sm:py-0 mt-auto border-t pt-3 sm:pt-4">
|
||||
<div className="flex-shrink-0 flex flex-col-reverse sm:flex-row justify-end gap-2 px-4 sm:px-0 py-3 sm:py-0 mt-auto border-t pt-3 sm:pt-4">
|
||||
<Button
|
||||
variant="outline"
|
||||
onClick={() => setIsViewEquipmentOpen(false)}
|
||||
|
||||
Reference in New Issue
Block a user