|
@@ -321,17 +321,17 @@ const TalentDetail: React.FC<TalentDetailProps> = () => {
|
|
|
</View>
|
|
</View>
|
|
|
</View>
|
|
</View>
|
|
|
<View className="mt-4 flex justify-between">
|
|
<View className="mt-4 flex justify-between">
|
|
|
- <View className="text-center">
|
|
|
|
|
|
|
+ <View className="text-center flex flex-col">
|
|
|
<Text className="text-2xl font-bold">{formatCurrency(salaryInfo?.amount || 0)}</Text>
|
|
<Text className="text-2xl font-bold">{formatCurrency(salaryInfo?.amount || 0)}</Text>
|
|
|
<Text className="text-xs opacity-80">当前薪资</Text>
|
|
<Text className="text-xs opacity-80">当前薪资</Text>
|
|
|
</View>
|
|
</View>
|
|
|
- <View className="text-center">
|
|
|
|
|
|
|
+ <View className="text-center flex flex-col">
|
|
|
<Text className="text-2xl font-bold">
|
|
<Text className="text-2xl font-bold">
|
|
|
{workInfo?.startDate ? Math.floor((Date.now() - new Date(workInfo.startDate).getTime()) / (1000 * 60 * 60 * 24)) : 0}
|
|
{workInfo?.startDate ? Math.floor((Date.now() - new Date(workInfo.startDate).getTime()) / (1000 * 60 * 60 * 24)) : 0}
|
|
|
</Text>
|
|
</Text>
|
|
|
<Text className="text-xs opacity-80">在职天数</Text>
|
|
<Text className="text-xs opacity-80">在职天数</Text>
|
|
|
</View>
|
|
</View>
|
|
|
- <View className="text-center">
|
|
|
|
|
|
|
+ <View className="text-center flex flex-col">
|
|
|
<Text className="text-2xl font-bold">98%</Text>
|
|
<Text className="text-2xl font-bold">98%</Text>
|
|
|
<Text className="text-xs opacity-80">出勤率</Text>
|
|
<Text className="text-xs opacity-80">出勤率</Text>
|
|
|
</View>
|
|
</View>
|
|
@@ -344,23 +344,23 @@ const TalentDetail: React.FC<TalentDetailProps> = () => {
|
|
|
<View className="card bg-white p-4 mb-4">
|
|
<View className="card bg-white p-4 mb-4">
|
|
|
<Text className="font-semibold text-gray-700 mb-3">基本信息</Text>
|
|
<Text className="font-semibold text-gray-700 mb-3">基本信息</Text>
|
|
|
<View className="grid grid-cols-2 gap-3 text-sm">
|
|
<View className="grid grid-cols-2 gap-3 text-sm">
|
|
|
- <View>
|
|
|
|
|
|
|
+ <View className="flex flex-col">
|
|
|
<Text className="text-gray-500">性别</Text>
|
|
<Text className="text-gray-500">性别</Text>
|
|
|
<Text className="text-gray-800">{talentDetail.gender || '未指定'}</Text>
|
|
<Text className="text-gray-800">{talentDetail.gender || '未指定'}</Text>
|
|
|
</View>
|
|
</View>
|
|
|
- <View>
|
|
|
|
|
|
|
+ <View className="flex flex-col">
|
|
|
<Text className="text-gray-500">年龄</Text>
|
|
<Text className="text-gray-500">年龄</Text>
|
|
|
<Text className="text-gray-800">{talentDetail.age || '未知'}岁</Text>
|
|
<Text className="text-gray-800">{talentDetail.age || '未知'}岁</Text>
|
|
|
</View>
|
|
</View>
|
|
|
- <View>
|
|
|
|
|
|
|
+ <View className="flex flex-col">
|
|
|
<Text className="text-gray-500">身份证号</Text>
|
|
<Text className="text-gray-500">身份证号</Text>
|
|
|
<Text className="text-gray-800">{talentDetail.idCard || '未提供'}</Text>
|
|
<Text className="text-gray-800">{talentDetail.idCard || '未提供'}</Text>
|
|
|
</View>
|
|
</View>
|
|
|
- <View>
|
|
|
|
|
|
|
+ <View className="flex flex-col">
|
|
|
<Text className="text-gray-500">残疾证号</Text>
|
|
<Text className="text-gray-500">残疾证号</Text>
|
|
|
<Text className="text-gray-800">{talentDetail.disabilityId || '未提供'}</Text>
|
|
<Text className="text-gray-800">{talentDetail.disabilityId || '未提供'}</Text>
|
|
|
</View>
|
|
</View>
|
|
|
- <View className="col-span-2">
|
|
|
|
|
|
|
+ <View className="col-span-2 flex flex-col">
|
|
|
<Text className="text-gray-500">联系地址</Text>
|
|
<Text className="text-gray-500">联系地址</Text>
|
|
|
<Text className="text-gray-800">{talentDetail.idAddress || '未提供'}</Text>
|
|
<Text className="text-gray-800">{talentDetail.idAddress || '未提供'}</Text>
|
|
|
</View>
|
|
</View>
|
|
@@ -402,7 +402,7 @@ const TalentDetail: React.FC<TalentDetailProps> = () => {
|
|
|
<View className="card bg-white p-4 mb-4">
|
|
<View className="card bg-white p-4 mb-4">
|
|
|
<Text className="font-semibold text-gray-700 mb-3">薪资信息</Text>
|
|
<Text className="font-semibold text-gray-700 mb-3">薪资信息</Text>
|
|
|
<View className="flex justify-between items-center">
|
|
<View className="flex justify-between items-center">
|
|
|
- <View>
|
|
|
|
|
|
|
+ <View className="flex flex-col">
|
|
|
<Text className="text-gray-500">当前月薪</Text>
|
|
<Text className="text-gray-500">当前月薪</Text>
|
|
|
<Text className="text-2xl font-bold text-blue-600">{formatCurrency(salaryInfo?.amount || 0)}</Text>
|
|
<Text className="text-2xl font-bold text-blue-600">{formatCurrency(salaryInfo?.amount || 0)}</Text>
|
|
|
</View>
|
|
</View>
|
|
@@ -456,21 +456,29 @@ const TalentDetail: React.FC<TalentDetailProps> = () => {
|
|
|
)}
|
|
)}
|
|
|
</View>
|
|
</View>
|
|
|
<View className="flex-1">
|
|
<View className="flex-1">
|
|
|
- {/* 公司/订单名称 */}
|
|
|
|
|
- <Text className="font-medium text-gray-800 text-sm">
|
|
|
|
|
- {work.订单名称 || `订单 #${work.订单ID}` || '未命名工作'}
|
|
|
|
|
- </Text>
|
|
|
|
|
- {/* 岗位和薪资 */}
|
|
|
|
|
- <View className="flex flex-wrap items-center gap-2 mt-1">
|
|
|
|
|
- <Text className="text-xs text-gray-600">岗位: {work.工作状态 || '未指定'}</Text>
|
|
|
|
|
- <Text className="text-xs text-gray-600">薪资: {salary}</Text>
|
|
|
|
|
|
|
+ {/* 左右分栏布局 - 原型第684-693行 */}
|
|
|
|
|
+ <View className="flex justify-between items-start">
|
|
|
|
|
+ {/* 左侧:公司名称和岗位 */}
|
|
|
|
|
+ <View className="flex flex-col">
|
|
|
|
|
+ <Text className="font-medium text-gray-800">
|
|
|
|
|
+ {work.订单名称 || `订单 #${work.订单ID}` || '未命名工作'}
|
|
|
|
|
+ </Text>
|
|
|
|
|
+ <Text className="text-sm text-gray-600">
|
|
|
|
|
+ {work.工作状态 || '未指定'}
|
|
|
|
|
+ </Text>
|
|
|
|
|
+ </View>
|
|
|
|
|
+ {/* 右侧:薪资和时间段 */}
|
|
|
|
|
+ <View className="flex flex-col items-end">
|
|
|
|
|
+ <Text className={`text-sm font-medium ${isCurrent ? 'text-blue-600' : 'text-gray-600'}`}>
|
|
|
|
|
+ {salary}
|
|
|
|
|
+ </Text>
|
|
|
|
|
+ <Text className="text-xs text-gray-500">{period}</Text>
|
|
|
|
|
+ </View>
|
|
|
</View>
|
|
</View>
|
|
|
- {/* 时间段 */}
|
|
|
|
|
- <Text className="text-xs text-gray-500 mt-1">{period}</Text>
|
|
|
|
|
- {/* 工作描述(如果有的话) */}
|
|
|
|
|
- {work.工作状态 && (
|
|
|
|
|
- <Text className="text-xs text-gray-500 mt-1">
|
|
|
|
|
- 工作状态: {work.工作状态}
|
|
|
|
|
|
|
+ {/* 工作描述(API无单独字段,如果工作状态不是简单的状态值则显示为描述) - 原型第694行 */}
|
|
|
|
|
+ {work.工作状态 && !['在职', '离职', '待入职', 'working', 'leaved', 'pending'].includes(work.工作状态) && (
|
|
|
|
|
+ <Text className="text-sm text-gray-600 mt-2">
|
|
|
|
|
+ {work.工作状态}
|
|
|
</Text>
|
|
</Text>
|
|
|
)}
|
|
)}
|
|
|
</View>
|
|
</View>
|
|
@@ -538,7 +546,7 @@ const TalentDetail: React.FC<TalentDetailProps> = () => {
|
|
|
<View key={file.id} className="flex justify-between items-center p-3 bg-gray-50 rounded-lg">
|
|
<View key={file.id} className="flex justify-between items-center p-3 bg-gray-50 rounded-lg">
|
|
|
<View className="flex items-center">
|
|
<View className="flex items-center">
|
|
|
<Text className="i-heroicons-document-text-20-solid text-gray-400 mr-2" />
|
|
<Text className="i-heroicons-document-text-20-solid text-gray-400 mr-2" />
|
|
|
- <View>
|
|
|
|
|
|
|
+ <View className="flex flex-col">
|
|
|
<Text className="text-sm text-gray-800">{file.name}</Text>
|
|
<Text className="text-sm text-gray-800">{file.name}</Text>
|
|
|
<Text className="text-xs text-gray-500">
|
|
<Text className="text-xs text-gray-500">
|
|
|
{file.size ? `${(file.size / 1024).toFixed(1)} KB` : '大小未知'} · {formatDate(file.createdAt)}
|
|
{file.size ? `${(file.size / 1024).toFixed(1)} KB` : '大小未知'} · {formatDate(file.createdAt)}
|
|
@@ -597,7 +605,7 @@ const TalentDetail: React.FC<TalentDetailProps> = () => {
|
|
|
<View className="w-10 h-10 bg-blue-100 rounded flex items-center justify-center mr-3">
|
|
<View className="w-10 h-10 bg-blue-100 rounded flex items-center justify-center mr-3">
|
|
|
<Text className="i-heroicons-play-20-solid text-blue-500 text-lg" />
|
|
<Text className="i-heroicons-play-20-solid text-blue-500 text-lg" />
|
|
|
</View>
|
|
</View>
|
|
|
- <View>
|
|
|
|
|
|
|
+ <View className="flex flex-col">
|
|
|
<Text className="text-sm text-gray-800 font-medium">{video.title}</Text>
|
|
<Text className="text-sm text-gray-800 font-medium">{video.title}</Text>
|
|
|
<Text className="text-xs text-gray-500">
|
|
<Text className="text-xs text-gray-500">
|
|
|
{video.uploadTime ? formatDate(video.uploadTime) : '未知时间'} ·
|
|
{video.uploadTime ? formatDate(video.uploadTime) : '未知时间'} ·
|