fix: 优化多个组件中的代码逻辑和类型声明,提升代码一致性
This commit is contained in:
parent
232926e9c7
commit
63f4248e9f
@ -87,7 +87,8 @@ export async function initCarInfoCache(params: initCarInfoCacheParams) {
|
|||||||
|
|
||||||
//参数下发读表接口
|
//参数下发读表接口
|
||||||
export async function initCenterCache(params: object, url: string) {
|
export async function initCenterCache(params: object, url: string) {
|
||||||
const timeInfo: TimeSynchronizationRspBody = AppStorage.get<TimeSynchronizationRspBody>('timeInfo')
|
const timeInfo: TimeSynchronizationRspBody =
|
||||||
|
AppStorage.get<TimeSynchronizationRspBody>('timeInfo') ?? { /* default values */ };
|
||||||
return await request<object>({
|
return await request<object>({
|
||||||
url: '/para/initCenterCache.ws',
|
url: '/para/initCenterCache.ws',
|
||||||
data: params,
|
data: params,
|
||||||
@ -112,7 +113,8 @@ export async function initCenterCacheByKSPT(params: object, url: string) {
|
|||||||
//从参数平台获取模型
|
//从参数平台获取模型
|
||||||
// TODO 类型需要补全
|
// TODO 类型需要补全
|
||||||
export async function initEsModel(params: InitModelParams) {
|
export async function initEsModel(params: InitModelParams) {
|
||||||
const timeInfo: TimeSynchronizationRspBody = AppStorage.get<TimeSynchronizationRspBody>('timeInfo')
|
const timeInfo: TimeSynchronizationRspBody =
|
||||||
|
AppStorage.get<TimeSynchronizationRspBody>('timeInfo') ?? { /* default values */ };
|
||||||
return await request<InitModelResponse>({
|
return await request<InitModelResponse>({
|
||||||
url: '/para/initEsModel.ws',
|
url: '/para/initEsModel.ws',
|
||||||
data: params,
|
data: params,
|
||||||
|
|||||||
@ -50,8 +50,8 @@ export default class EntryAbility extends UIAbility {
|
|||||||
AppStorage.setOrCreate<string>('deviceNo', "") //设备号
|
AppStorage.setOrCreate<string>('deviceNo', "") //设备号
|
||||||
AppStorage.setOrCreate<BaseInfoType>('baseInfo', {
|
AppStorage.setOrCreate<BaseInfoType>('baseInfo', {
|
||||||
hasAuth: false,
|
hasAuth: false,
|
||||||
version: GlobalConfig.version.jn.km3[0],
|
version: GlobalConfig.version.jn.km3[0] || "",
|
||||||
judgeVersion: GlobalConfig.version.jn.km3[1],
|
judgeVersion: GlobalConfig.version.jn.km3[1] || "",
|
||||||
tcpSendNum: 0,
|
tcpSendNum: 0,
|
||||||
videoVersion: '1.0',
|
videoVersion: '1.0',
|
||||||
ratio: 1700 / 960, //适配比例
|
ratio: 1700 / 960, //适配比例
|
||||||
|
|||||||
@ -90,10 +90,11 @@ export interface BaseInfoType {
|
|||||||
deviceNo?: string
|
deviceNo?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
interface kfdmObj{
|
interface kfdmObj {
|
||||||
xmdm:number
|
xmdm: number
|
||||||
kfdm:string
|
kfdm: string
|
||||||
}
|
}
|
||||||
|
|
||||||
// 路由参数
|
// 路由参数
|
||||||
export interface RouteParamsType {
|
export interface RouteParamsType {
|
||||||
sczb?: string;
|
sczb?: string;
|
||||||
@ -150,7 +151,7 @@ export interface GlobalConfigType {
|
|||||||
picSavePath?: string
|
picSavePath?: string
|
||||||
videoSavePath?: string
|
videoSavePath?: string
|
||||||
host?: string
|
host?: string
|
||||||
version?: VersionType
|
version: VersionType
|
||||||
// 几代机
|
// 几代机
|
||||||
modelNo?: string
|
modelNo?: string
|
||||||
}
|
}
|
||||||
@ -172,6 +173,6 @@ interface VersionInfo {
|
|||||||
export interface centerCallBackMsgType {
|
export interface centerCallBackMsgType {
|
||||||
id: number;
|
id: number;
|
||||||
length: number;
|
length: number;
|
||||||
body:number[];
|
body: number[];
|
||||||
sendId:number;
|
sendId: number;
|
||||||
}
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@ -2,11 +2,13 @@
|
|||||||
export default struct imageBtn {
|
export default struct imageBtn {
|
||||||
//状态变量unPressed,用于控制按钮的状态
|
//状态变量unPressed,用于控制按钮的状态
|
||||||
@State unPressed: boolean = true
|
@State unPressed: boolean = true
|
||||||
btnWidth: string | number
|
btnWidth?: string | number
|
||||||
btnHeight: string | number
|
btnHeight?: string | number
|
||||||
imgSrc:Resource
|
imgSrc?: Resource
|
||||||
opacityNum:number=1
|
opacityNum: number = 1
|
||||||
@Styles customStyle(){
|
|
||||||
|
@Styles
|
||||||
|
customStyle(){
|
||||||
.width('100%')
|
.width('100%')
|
||||||
.height('100%')
|
.height('100%')
|
||||||
}
|
}
|
||||||
@ -20,8 +22,7 @@ export default struct imageBtn {
|
|||||||
// 判断当前组件为放开状态
|
// 判断当前组件为放开状态
|
||||||
if (this.unPressed) {
|
if (this.unPressed) {
|
||||||
// 插入Row组件,配置过渡效果
|
// 插入Row组件,配置过渡效果
|
||||||
Image(this.imgSrc)
|
Image(this.imgSrc)// 水波纹扩散动画:Row组件backgroundColor属性变更(#fff -> #ccc),系统插入动画过渡效果,从组建的中心点开始放大,scale{0,0}变更scale{1,1}
|
||||||
// 水波纹扩散动画:Row组件backgroundColor属性变更(#fff -> #ccc),系统插入动画过渡效果,从组建的中心点开始放大,scale{0,0}变更scale{1,1}
|
|
||||||
.transition({
|
.transition({
|
||||||
type: TransitionType.Insert,
|
type: TransitionType.Insert,
|
||||||
opacity: 0,
|
opacity: 0,
|
||||||
@ -38,10 +39,11 @@ export default struct imageBtn {
|
|||||||
duration: 500,
|
duration: 500,
|
||||||
// 聚拢动画播放完成后,需要衔接扩散动画,此时Row组件backgroundColor属性变更(#fff -> #ccc),插入动画过渡效果,scale{0,0}变化为scale{1,1}
|
// 聚拢动画播放完成后,需要衔接扩散动画,此时Row组件backgroundColor属性变更(#fff -> #ccc),插入动画过渡效果,scale{0,0}变化为scale{1,1}
|
||||||
onFinish: () => {
|
onFinish: () => {
|
||||||
this.opacityNum=1
|
this.opacityNum = 1
|
||||||
} },
|
}
|
||||||
|
},
|
||||||
() => {
|
() => {
|
||||||
this.opacityNum=0.2
|
this.opacityNum = 0.2
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,14 +6,14 @@ import { VoiceTag } from '../config';
|
|||||||
type AVPlayerCallback = (status: string, val?: string) => void;
|
type AVPlayerCallback = (status: string, val?: string) => void;
|
||||||
|
|
||||||
export class voiceService {
|
export class voiceService {
|
||||||
private avPlayer: media.AVPlayer = null;
|
private avPlayer: media.AVPlayer | null = null;
|
||||||
private fileSize: number = -1;
|
private fileSize: number = -1;
|
||||||
private fd: number = 0;
|
private fd: number = 0;
|
||||||
private playerName: string = '';
|
private playerName: string = '';
|
||||||
private type: number = 1;
|
private type: number = 1;
|
||||||
private endFlag: Boolean = false;
|
private endFlag: Boolean = false;
|
||||||
private mediaArray: Array<string> = [];
|
private mediaArray: Array<string> = [];
|
||||||
private callBack: AVPlayerCallback = null;
|
private callBack: AVPlayerCallback | null = null;
|
||||||
|
|
||||||
constructor(callBack: AVPlayerCallback) {
|
constructor(callBack: AVPlayerCallback) {
|
||||||
// 创建avPlayer实例对象
|
// 创建avPlayer实例对象
|
||||||
@ -30,14 +30,14 @@ export class voiceService {
|
|||||||
console.log(VoiceTag, ' avPlayerFdSrc setAVPlayerCallback begin')
|
console.log(VoiceTag, ' avPlayerFdSrc setAVPlayerCallback begin')
|
||||||
|
|
||||||
// error回调监听函数,当avPlayer在操作过程中出现错误时调用reset接口触发重置流程
|
// error回调监听函数,当avPlayer在操作过程中出现错误时调用reset接口触发重置流程
|
||||||
this.avPlayer.on('error', (err: BusinessError) => {
|
this.avPlayer!.on('error', (err: BusinessError) => {
|
||||||
console.error(VoiceTag, `Invoke avPlayer failed, code is ${err.code}, message is ${err.message}`);
|
console.error(VoiceTag, `Invoke avPlayer failed, code is ${err.code}, message is ${err.message}`);
|
||||||
this.avPlayer.reset(); // 调用reset重置资源,触发idle状态
|
this.avPlayer!.reset(); // 调用reset重置资源,触发idle状态
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
// 状态机变化回调函数
|
// 状态机变化回调函数
|
||||||
this.avPlayer.on('stateChange', async (state, reason) => {
|
this.avPlayer!.on('stateChange', async (state, reason) => {
|
||||||
switch (state) {
|
switch (state) {
|
||||||
case 'idle': // 成功调用reset接口后触发该状态机上报
|
case 'idle': // 成功调用reset接口后触发该状态机上报
|
||||||
// callBack('idle');
|
// callBack('idle');
|
||||||
@ -55,7 +55,7 @@ export class voiceService {
|
|||||||
break;
|
break;
|
||||||
case 'initialized': // avplayer 设置播放源后触发该状态上报
|
case 'initialized': // avplayer 设置播放源后触发该状态上报
|
||||||
console.info(VoiceTag, ' AVPlayerstate initialized called.');
|
console.info(VoiceTag, ' AVPlayerstate initialized called.');
|
||||||
this.avPlayer.prepare().then(() => {
|
this.avPlayer!.prepare().then(() => {
|
||||||
console.info(VoiceTag, ' AVPlayer prepare succeeded.');
|
console.info(VoiceTag, ' AVPlayer prepare succeeded.');
|
||||||
}, (err: BusinessError) => {
|
}, (err: BusinessError) => {
|
||||||
console.error(VoiceTag, ` Invoke prepare failed, code is ${err.code}, message is ${err.message}`);
|
console.error(VoiceTag, ` Invoke prepare failed, code is ${err.code}, message is ${err.message}`);
|
||||||
@ -63,7 +63,7 @@ export class voiceService {
|
|||||||
callBack('initialized');
|
callBack('initialized');
|
||||||
break;
|
break;
|
||||||
case 'prepared': // prepare调用成功后上报该状态机
|
case 'prepared': // prepare调用成功后上报该状态机
|
||||||
this.avPlayer.play();
|
this.avPlayer!.play();
|
||||||
callBack('prepared');
|
callBack('prepared');
|
||||||
break;
|
break;
|
||||||
case 'playing': // play成功调用后触发该状态机上报
|
case 'playing': // play成功调用后触发该状态机上报
|
||||||
@ -74,12 +74,12 @@ export class voiceService {
|
|||||||
break;
|
break;
|
||||||
case 'completed': // 播放结束后触发该状态机上报
|
case 'completed': // 播放结束后触发该状态机上报
|
||||||
console.info(VoiceTag, ' AVPlayer state completed called.');
|
console.info(VoiceTag, ' AVPlayer state completed called.');
|
||||||
this.avPlayer.stop(); //调用播放结束接口
|
this.avPlayer!.stop(); //调用播放结束接口
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 'stopped': // stop接口成功调用后触发该状态机上报
|
case 'stopped': // stop接口成功调用后触发该状态机上报
|
||||||
console.info(VoiceTag, ' AVPlayer state stopped called.');
|
console.info(VoiceTag, ' AVPlayer state stopped called.');
|
||||||
this.avPlayer.reset(); // 调用reset接口初始化avplayer状态
|
this.avPlayer!.reset(); // 调用reset接口初始化avplayer状态
|
||||||
// callBack('stopped');
|
// callBack('stopped');
|
||||||
break;
|
break;
|
||||||
case 'released':
|
case 'released':
|
||||||
@ -97,14 +97,18 @@ export class voiceService {
|
|||||||
// 以下为使用资源管理接口获取打包在HAP内的媒体资源文件并通过fdSrc属性进行播放示例
|
// 以下为使用资源管理接口获取打包在HAP内的媒体资源文件并通过fdSrc属性进行播放示例
|
||||||
avPlayerFdSrc(name: string) {
|
avPlayerFdSrc(name: string) {
|
||||||
const context: common.UIAbilityContext = AppStorage.get('context')
|
const context: common.UIAbilityContext = AppStorage.get('context')
|
||||||
|
if (!context) {
|
||||||
|
console.log(VoiceTag, ' context is null');
|
||||||
|
return
|
||||||
|
}
|
||||||
context.resourceManager.getRawFd(name, async (error, value) => {
|
context.resourceManager.getRawFd(name, async (error, value) => {
|
||||||
if (error != null) {
|
if (error != null) {
|
||||||
console.log(VoiceTag, ` callback getRawFd failed error code: ${error.code}, message: ${error.message}.`);
|
console.log(VoiceTag, ` callback getRawFd failed error code: ${error.code}, message: ${error.message}.`);
|
||||||
} else {
|
} else {
|
||||||
console.log(VoiceTag, this.avPlayer)
|
console.log(VoiceTag, this.avPlayer)
|
||||||
if (this.avPlayer) {
|
if (this.avPlayer) {
|
||||||
await this.avPlayer.reset()
|
await this.avPlayer!.reset()
|
||||||
this.avPlayer.fdSrc = value;
|
this.avPlayer!.fdSrc = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 为fdSrc赋值触发initialized状态机上报
|
// 为fdSrc赋值触发initialized状态机上报
|
||||||
@ -116,15 +120,15 @@ export class voiceService {
|
|||||||
|
|
||||||
// 以下为通过url设置网络地址来实现播放直播码流的
|
// 以下为通过url设置网络地址来实现播放直播码流的
|
||||||
avPlayerLive(url: string) {
|
avPlayerLive(url: string) {
|
||||||
this.avPlayer.url = url
|
this.avPlayer!.url = url
|
||||||
}
|
}
|
||||||
|
|
||||||
releasePlayer() {
|
releasePlayer() {
|
||||||
this.avPlayer && this.avPlayer.release();
|
this.avPlayer && this.avPlayer!.release();
|
||||||
}
|
}
|
||||||
|
|
||||||
avPlayerStop() {
|
avPlayerStop() {
|
||||||
this.avPlayer && this.avPlayer.stop((err: BusinessError) => {
|
this.avPlayer && this.avPlayer!.stop((err: BusinessError) => {
|
||||||
if (err == null) {
|
if (err == null) {
|
||||||
this.endFlag = true
|
this.endFlag = true
|
||||||
console.info(VoiceTag, 'stop success');
|
console.info(VoiceTag, 'stop success');
|
||||||
|
|||||||
@ -33,10 +33,10 @@ class drivingDataStorage {
|
|||||||
const content = await this.fileUtil!.readFile(`${this.folderPath}/${this.date}.txt`) || '';
|
const content = await this.fileUtil!.readFile(`${this.folderPath}/${this.date}.txt`) || '';
|
||||||
const contentArr = content.split('\n').filter(item => item)
|
const contentArr = content.split('\n').filter(item => item)
|
||||||
this.totalDistance = (this.totalDistance || 0) + (str * 1 > 200 ? 200 : str * 1);
|
this.totalDistance = (this.totalDistance || 0) + (str * 1 > 200 ? 200 : str * 1);
|
||||||
this.totalTime += 1;
|
this.totalTime = (this.totalTime || 0) + 1;
|
||||||
contentArr[contentArr.length - 1] =
|
contentArr[contentArr.length - 1] =
|
||||||
`程序启动时间:${this.time} 累计行驶距离:${(this.totalDistance ||
|
`程序启动时间:${this.time} 累计行驶距离:${(this.totalDistance ||
|
||||||
0).toFixed(2)}m 累计运行时常:${Math.ceil(this.totalTime /
|
0).toFixed(2)}m 累计运行时常:${Math.ceil((this.totalTime || 0) /
|
||||||
60)}min` + '\n'
|
60)}min` + '\n'
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ class drivingDataStorage {
|
|||||||
|
|
||||||
// 关闭文件读写
|
// 关闭文件读写
|
||||||
public close() {
|
public close() {
|
||||||
this.fileUtil.closeFile(`${this.folderPath}/${this.date}.txt`)
|
this.fileUtil!.closeFile(`${this.folderPath}/${this.date}.txt`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,10 @@ import FileUtils from '../FileUtils';
|
|||||||
// 建表操作
|
// 建表操作
|
||||||
export async function InitTable() {
|
export async function InitTable() {
|
||||||
Object.keys(ParameterPlatform).forEach(async (item) => {
|
Object.keys(ParameterPlatform).forEach(async (item) => {
|
||||||
await DB.executeSql(ParameterPlatform.get(item).sqlCreate);
|
const platformItem = ParameterPlatform.get(item);
|
||||||
|
if (platformItem) {
|
||||||
|
await DB.executeSql(platformItem.sqlCreate);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,12 +59,16 @@ export function UpdateTableByArray(tableName: string, arr: Array<User>): Promise
|
|||||||
//依据表名同步获取数据
|
//依据表名同步获取数据
|
||||||
export async function GetSyncData<T>(tableName: string): Promise<T[]> {
|
export async function GetSyncData<T>(tableName: string): Promise<T[]> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const columns: ColumnInfo[] = ParameterPlatform.get(tableName).columns.map((res: string) => {
|
const platform = ParameterPlatform.get(tableName);
|
||||||
|
if (!platform || !platform.columns) {
|
||||||
|
throw new Error(`Invalid tableName or columns not found for table: ${tableName}`);
|
||||||
|
}
|
||||||
|
const columns: ColumnInfo[] = platform.columns.map((res: string) => {
|
||||||
return {
|
return {
|
||||||
name: res,
|
name: res,
|
||||||
columnName: res,
|
columnName: res,
|
||||||
type: ColumnType.STRING
|
type: ColumnType.STRING
|
||||||
} as ColumnInfo
|
} as ColumnInfo;
|
||||||
});
|
});
|
||||||
DB.queryListBySql<T>(`select * from ${tableName}`, columns).then((res: T[]) => {
|
DB.queryListBySql<T>(`select * from ${tableName}`, columns).then((res: T[]) => {
|
||||||
resolve(res);
|
resolve(res);
|
||||||
@ -87,7 +94,7 @@ export async function DeleteSyncTable(tableName: string): Promise<boolean> {
|
|||||||
// 初始化中心表
|
// 初始化中心表
|
||||||
export async function InitializeTheCentralTable(params: InitializeTheCentralTableType): Promise<boolean> {
|
export async function InitializeTheCentralTable(params: InitializeTheCentralTableType): Promise<boolean> {
|
||||||
return new Promise(async (resolve, reject) => {
|
return new Promise(async (resolve, reject) => {
|
||||||
const fileUtil = new FileUtils(params.context)
|
const fileUtil = new FileUtils(params.context!);
|
||||||
let flag = false
|
let flag = false
|
||||||
// 单机模式
|
// 单机模式
|
||||||
if (params.singlePlay) {
|
if (params.singlePlay) {
|
||||||
@ -119,9 +126,10 @@ export async function InitializeTheCentralTable(params: InitializeTheCentralTabl
|
|||||||
host: params.host
|
host: params.host
|
||||||
}
|
}
|
||||||
const res: ResponseDataType = await initialization(str)
|
const res: ResponseDataType = await initialization(str)
|
||||||
if (!res || res.initializationRsp.head.resultCode == "1") {
|
if (!res || !res.initializationRsp || res.initializationRsp.head.resultCode === "1") {
|
||||||
resolve(false)
|
resolve(false);
|
||||||
}
|
}
|
||||||
|
if (res.initializationRsp && res.initializationRsp.body) {
|
||||||
for (const key of Object.keys(res.initializationRsp.body)) {
|
for (const key of Object.keys(res.initializationRsp.body)) {
|
||||||
if (CenterMap[key]) {
|
if (CenterMap[key]) {
|
||||||
continue
|
continue
|
||||||
@ -136,7 +144,7 @@ export async function InitializeTheCentralTable(params: InitializeTheCentralTabl
|
|||||||
const folderPath = await fileUtil.initFolder(`/config/tableList`);
|
const folderPath = await fileUtil.initFolder(`/config/tableList`);
|
||||||
fileUtil.addFile(`${folderPath}/${RemappingTableName.get(key)}.txt`, JSON.stringify(arrList))
|
fileUtil.addFile(`${folderPath}/${RemappingTableName.get(key)}.txt`, JSON.stringify(arrList))
|
||||||
try {
|
try {
|
||||||
const result = await SqlInsertTable(RemappingTableName.get(key), arrList)
|
const result = await SqlInsertTable(RemappingTableName.get(key)!, arrList);
|
||||||
if (!result) {
|
if (!result) {
|
||||||
Prompt.showToast({
|
Prompt.showToast({
|
||||||
message: '初始化数据库失败'
|
message: '初始化数据库失败'
|
||||||
@ -147,6 +155,7 @@ export async function InitializeTheCentralTable(params: InitializeTheCentralTabl
|
|||||||
reject(e)
|
reject(e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user