This commit is contained in:
tx 2024-12-27 09:32:51 +08:00
parent 1ca3c84102
commit c56e54df01
4 changed files with 71 additions and 16 deletions

View File

@ -111,4 +111,5 @@ export const apiService = {
updateKey: (data: any) => api.put('/appVerify/editKey', data), updateKey: (data: any) => api.put('/appVerify/editKey', data),
deleteKey: (key: any) => api.delete('/appVerify/del/' + key), deleteKey: (key: any) => api.delete('/appVerify/del/' + key),
getExpiredKeys: () => api.get('/appVerify/getExpiredKeyListByOwnerId'), getExpiredKeys: () => api.get('/appVerify/getExpiredKeyListByOwnerId'),
// updateKeyExpiration: (keyId: string, expirationTime: string) => api.put('/appVerify/updateKeyExpiration', { keyId, expirationTime }),
}; };

View File

@ -71,9 +71,9 @@ const DeviceShare = () => {
<Text style={styles.shareTitle}>{keyList.length}/3</Text> <Text style={styles.shareTitle}>{keyList.length}/3</Text>
<Text style={styles.shareTxt}>使</Text> <Text style={styles.shareTxt}>使</Text>
{keyList.map((key) => ( {keyList.length > 0 && keyList.map((key) => (
<TouchableOpacity <TouchableOpacity
key={key.id} key={key.id || Math.random().toString()} // 确保 key 是唯一的
onPress={() => { onPress={() => {
navigation.navigate('ShareDetailScreen', { keyItem: key }); navigation.navigate('ShareDetailScreen', { keyItem: key });
}} }}

View File

@ -1,5 +1,5 @@
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import { ImageBackground, FlatList, StyleSheet, Image } from 'react-native'; import { ImageBackground, FlatList, StyleSheet } from 'react-native';
import { TopNavigation, TopNavigationAction, Icon, Card, Layout, Text } from '@ui-kitten/components'; import { TopNavigation, TopNavigationAction, Icon, Card, Layout, Text } from '@ui-kitten/components';
import { rpx } from '../../utils/rpx'; import { rpx } from '../../utils/rpx';
import { apiService } from '../../utils/api'; import { apiService } from '../../utils/api';
@ -8,6 +8,10 @@ const BackIcon = (props) => (
<Icon {...props} name='arrow-back' /> <Icon {...props} name='arrow-back' />
); );
const EmptyIcon = (props) => (
<Icon {...props} name='file-text-outline' width={rpx(100)} height={rpx(100)} fill='#C5CEE0'/>
);
const ExpiredKeysScreen = ({ navigation }) => { const ExpiredKeysScreen = ({ navigation }) => {
const [data, setData] = useState([]); const [data, setData] = useState([]);
@ -53,12 +57,12 @@ const ExpiredKeysScreen = ({ navigation }) => {
contentContainerStyle={styles.list} contentContainerStyle={styles.list}
/> />
) : ( ) : (
<Layout style={styles.emptyContainer}> <Layout style={styles.emptyContainer} level='1'>
{/* <Image <EmptyIcon />
source={{ uri: 'https://example.com/empty-image.png' }} // 替换为你的缺省图URL <Text category='h5' style={styles.emptyTitle}></Text>
style={styles.emptyImage} <Text category='s1' style={styles.emptyText}>
/> */}
<Text category='h5' style={styles.emptyText}></Text> </Text>
</Layout> </Layout>
)} )}
</ImageBackground> </ImageBackground>
@ -91,15 +95,17 @@ const styles = StyleSheet.create({
flex: 1, flex: 1,
justifyContent: 'center', justifyContent: 'center',
alignItems: 'center', alignItems: 'center',
padding: rpx(20), padding: rpx(40),
backgroundColor: 'transparent',
}, },
emptyImage: { emptyTitle: {
width: rpx(200), marginTop: rpx(40),
height: rpx(200),
marginBottom: rpx(20), marginBottom: rpx(20),
color: '#3D3D3D',
}, },
emptyText: { emptyText: {
color: '#808080', color: '#8F9BB3',
textAlign: 'center',
}, },
}); });

View File

@ -12,6 +12,7 @@ interface KeyItem {
sharePhone: string; sharePhone: string;
status: string; status: string;
expirationTime: string; expirationTime: string;
createTime: string;
} }
const BackIcon = (props) => ( const BackIcon = (props) => (
@ -56,8 +57,55 @@ const KeyDetail = () => {
const handleTimeSelect = (time: string) => { const handleTimeSelect = (time: string) => {
setSelectedTime(time); setSelectedTime(time);
setShowTimeModal(false);
// 这里添加更新有效期的逻辑 // 将中文时间选项转换为天数
let days = 0;
switch (time) {
case '1天':
days = 1;
break;
case '7天':
days = 7;
break;
case '30天':
days = 30;
break;
case '永久':
// 设置为100年
days = 36500;
break;
}
// 基于创建时间计算新的过期时间
const baseDate = new Date(keyItem.createTime);
const newExpirationDate = new Date(baseDate.getTime() + days * 24 * 60 * 60 * 1000);
// 设置时间为23:59:59
newExpirationDate.setHours(23);
newExpirationDate.setMinutes(59);
newExpirationDate.setSeconds(59);
// 格式化日期为 YYYY-MM-DD HH:mm:ss
const formattedDate = newExpirationDate.getFullYear() + '-' +
String(newExpirationDate.getMonth() + 1).padStart(2, '0') + '-' +
String(newExpirationDate.getDate()).padStart(2, '0') + ' ' +
String(newExpirationDate.getHours()).padStart(2, '0') + ':' +
String(newExpirationDate.getMinutes()).padStart(2, '0') + ':' +
String(newExpirationDate.getSeconds()).padStart(2, '0');
console.log(formattedDate,'formattedDate');
// 调用API更新过期时间
const data = {
keyId: keyItem.keyId,
expirationTime: formattedDate
};
apiService.updateKey(data).then(res => {
console.log(res,'resresres');
if (res.code === 200) {
// 更新成功后关闭模态框
setShowTimeModal(false);
// 可以添加成功提示或刷新页面的逻辑
}
});
}; };
const BackAction = () => ( const BackAction = () => (