打包修改

This commit is contained in:
tx 2025-01-04 15:47:55 +08:00
parent 288ce04983
commit 7144a67989
9 changed files with 344 additions and 463 deletions

View File

@ -6,4 +6,5 @@
npm run ios npm run ios
打包: ./gradlew assembleRelease 打包: ./gradlew assembleRelease
打Release包的时候如果报错 建议上传完代码重新安装依赖和其他内容

View File

@ -93,6 +93,12 @@ android {
keyAlias 'androiddebugkey' keyAlias 'androiddebugkey'
keyPassword 'android' keyPassword 'android'
} }
release {
storeFile file('ct.keystore')
storePassword 'jy888786'
keyAlias 'ct'
keyPassword 'jy888786'
}
} }
buildTypes { buildTypes {
debug { debug {

Binary file not shown.

View File

@ -259,7 +259,7 @@ const DeviceControl: React.FC<DeviceControlProps> = ({ defaultDevice, onDeviceUp
</View> </View>
<View style={styles.carBox}> <View style={styles.carBox}>
<Image <Image
source={{ uri: 'https://lxnapi.ccttiot.com/bike/img/static/uVnIDwcwQP7oo12PeYVJ' }} source={{ uri: defaultDevice?.picture ? defaultDevice?.picture : 'https://lxnapi.ccttiot.com/bike/img/static/uVnIDwcwQP7oo12PeYVJ' }}
style={{ width: rpx(440), height: rpx(340) }} style={{ width: rpx(440), height: rpx(340) }}
/> />
<View style={styles.txtbox}> <View style={styles.txtbox}>

View File

@ -153,7 +153,7 @@ const NormaIndex: React.FC = () => {
const response = await apiService.getDeviceList(); const response = await apiService.getDeviceList();
console.log(response, 'response'); console.log(response, 'response');
if (response?.code === 200 && response.data) { if (response?.code == 200 && response.data) {
const defaultDev = response.data.find((device: DeviceType) => device.isDefault == 1); const defaultDev = response.data.find((device: DeviceType) => device.isDefault == 1);
if (defaultDev) { if (defaultDev) {
console.log(defaultDev.sn, 'defaultDev.sn'); console.log(defaultDev.sn, 'defaultDev.sn');

View File

@ -112,11 +112,11 @@ const LoginScreen = () => {
} }
} catch (error: any) { } catch (error: any) {
console.error('登录失败:', error); console.error('登录失败:', error);
setModalConfig({ // setModalConfig({
title: '登录失败', // title: '登录失败',
message: error.message || '请稍后重试' // message: error.message || '请稍后重试'
}); // });
setModalVisible(true); // setModalVisible(true);
} finally { } finally {
setLoading(false); setLoading(false);
} }
@ -139,11 +139,11 @@ const LoginScreen = () => {
} }
} catch (error: any) { } catch (error: any) {
console.error('获取验证码失败:', error); console.error('获取验证码失败:', error);
setModalConfig({ // setModalConfig({
title: '获取验证码失败', // title: '获取验证码失败',
message: error.message || '请稍后重试' // message: error.message || '请稍后重试'
}); // });
setModalVisible(true); // setModalVisible(true);
} }
}; };

View File

@ -96,7 +96,7 @@ const deviceDetailSet = () => {
try { try {
const result = await uploadImageService.uploadImage(); const result = await uploadImageService.uploadImage();
if (!result || !Array.isArray(result) || result.length === 0) { if (!result || !Array.isArray(result) || result.length == 0) {
Toast.show({ Toast.show({
type: 'error', type: 'error',
text1: '上传失败', text1: '上传失败',
@ -109,13 +109,13 @@ const deviceDetailSet = () => {
const response = await apiService.updateDevice({ const response = await apiService.updateDevice({
sn: deviceInfo.sn, sn: deviceInfo.sn,
pricture: imageUrl picture: imageUrl
}); });
if (response.code == 200) { if (response.code == 200) {
setDeviceInfo(prevInfo => ({ setDeviceInfo(prevInfo => ({
...prevInfo, ...prevInfo,
pricture: imageUrl picture: imageUrl
})); }));
setModalVisible(false); setModalVisible(false);
Toast.show({ Toast.show({
@ -174,23 +174,29 @@ const deviceDetailSet = () => {
const fetchModelList = async () => { const fetchModelList = async () => {
const response = await apiService.getModelList(); const response = await apiService.getModelList();
if (response.code === 200) { if (response.code == 200) {
setModelData(response.data); setModelData(response.data);
const brands = Array.from(new Set(response.data.map(item => item.brandName))); const brands = Array.from(new Set(response.data.map(item => item.brandName)));
setBrandList(brands); setBrandList(brands);
// 先设置品牌列表,然后立即过滤对应的车型
const initialBrand = brands[0];
setSelectedBrandIndex(new IndexPath(0)); setSelectedBrandIndex(new IndexPath(0));
filterModels(brands[0]); const models = response.data
.filter(item => item.brandName === initialBrand)
.map(item => item.model);
setModelList(models);
setSelectedModelIndex(new IndexPath(0));
}
} }
};
const filterModels = (brand) => { const filterModels = (brand) => {
const models = modelData.filter(item => item.brandName === brand).map(item => item.model); const models = modelData.filter(item => item.brandName == brand).map(item => item.model);
setModelList(models); setModelList(models);
setSelectedModelIndex(new IndexPath(0)); setSelectedModelIndex(new IndexPath(0));
}; };
const getImageUrl = (brand, model) => { const getImageUrl = (brand, model) => {
const selectedModel = modelData.find(item => item.brandName === brand && item.model === model); const selectedModel = modelData.find(item => item.brandName == brand && item.model == model);
return selectedModel ? selectedModel.picture : null; return selectedModel ? selectedModel.picture : null;
}; };
@ -198,15 +204,16 @@ const deviceDetailSet = () => {
const imageUrl = getImageUrl(brand, model); const imageUrl = getImageUrl(brand, model);
if (imageUrl && deviceInfo?.sn) { if (imageUrl && deviceInfo?.sn) {
try { try {
console.log(imageUrl,'imageUrl');
const response = await apiService.updateDevice({ const response = await apiService.updateDevice({
sn: deviceInfo.sn, sn: deviceInfo.sn,
pricture: imageUrl picture: imageUrl
}); });
console.log(response,'图片上传'); console.log(response,'图片上传');
if (response.code == 200) { if (response.code == 200) {
setDeviceInfo(prevInfo => ({ setDeviceInfo(prevInfo => ({
...prevInfo, ...prevInfo,
pricture: imageUrl picture: imageUrl
})); }));
Toast.show({ Toast.show({
type: 'success', type: 'success',
@ -302,7 +309,7 @@ const deviceDetailSet = () => {
[currentEdit.type]: value [currentEdit.type]: value
}); });
if (response.code === 200) { if (response.code == 200) {
setDeviceInfo(prevInfo => ({ setDeviceInfo(prevInfo => ({
...prevInfo, ...prevInfo,
[currentEdit.type]: value [currentEdit.type]: value
@ -372,7 +379,8 @@ const deviceDetailSet = () => {
source={{ uri: 'https://lxnapi.ccttiot.com/FqAu65KgcylSRv1pD4008a_Ctpz-' }} source={{ uri: 'https://lxnapi.ccttiot.com/FqAu65KgcylSRv1pD4008a_Ctpz-' }}
style={styles.carInfo} style={styles.carInfo}
> >
<Image source={{ uri: deviceInfo?.pricture ? deviceInfo?.pricture : 'https://lxnapi.ccttiot.com/bike/img/static/uVnIDwcwQP7oo12PeYVJ' }} style={{ width: rpx(440), height: rpx(340) }} /> <Text style={styles.snText}>SN: {deviceInfo?.sn || ''}</Text>
<Image source={{ uri: deviceInfo?.picture ? deviceInfo?.picture : 'https://lxnapi.ccttiot.com/bike/img/static/uVnIDwcwQP7oo12PeYVJ' }} style={{ width: rpx(440), height: rpx(340) }} />
<View style={styles.carInfoButtons}> <View style={styles.carInfoButtons}>
<TouchableOpacity style={styles.carInfoButton} onPress={upload} > <TouchableOpacity style={styles.carInfoButton} onPress={upload} >
<Text style={styles.carInfoButtonText}></Text> <Text style={styles.carInfoButtonText}></Text>
@ -528,11 +536,18 @@ const styles = StyleSheet.create({
height: '100%', height: '100%',
}, },
carInfo: { carInfo: {
paddingTop: rpx(180), paddingTop: rpx(60),
width: '100%', width: '100%',
height: rpx(828), height: rpx(828),
alignItems: 'center', alignItems: 'center',
}, },
snText: {
fontSize: rpx(28),
color: '#333333',
textAlign: 'center',
marginTop: rpx(20),
marginBottom: rpx(100),
},
carInfoButtons: { carInfoButtons: {
marginTop: rpx(160), marginTop: rpx(160),
flexDirection: 'row', flexDirection: 'row',
@ -687,6 +702,7 @@ const styles = StyleSheet.create({
marginBottom: rpx(20), marginBottom: rpx(20),
}, },
modalImage: { modalImage: {
marginLeft: rpx(70),
width: rpx(440), width: rpx(440),
height: rpx(340), height: rpx(340),
marginBottom: rpx(20), marginBottom: rpx(20),

View File

@ -39,7 +39,8 @@ export default function DeviceList() {
try { try {
setLoading(true); setLoading(true);
const response = await apiService.getDeviceList(); const response = await apiService.getDeviceList();
if (response?.code === 200 && response.data) { if (response?.code == 200 && response.data) {
console.log(response.data,'response.data');
setDevices(response.data); setDevices(response.data);
} }
} catch (error) { } catch (error) {
@ -60,7 +61,7 @@ export default function DeviceList() {
const selectCar = async (item: CarItem) => { const selectCar = async (item: CarItem) => {
try { try {
const response = await apiService.toggleDefault(item.sn); const response = await apiService.toggleDefault(item.sn);
if (response.code === 200) { if (response.code == 200) {
console.log(response,'response'); console.log(response,'response');
fetchDeviceList(); fetchDeviceList();
// TODO: 添加成功提示 // TODO: 添加成功提示

729
yarn.lock

File diff suppressed because it is too large Load Diff