dev #63
@ -6,8 +6,7 @@ import common from '@ohos.app.ability.common'
 | 
				
			|||||||
import fs from '@ohos.file.fs'
 | 
					import fs from '@ohos.file.fs'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const LOGTAG = 'LOGTAG'
 | 
					const LOGTAG = 'LOGTAG'
 | 
				
			||||||
 | 
					export default class FileUtil{
 | 
				
			||||||
export default class FileUtil {
 | 
					 | 
				
			||||||
  private context: common.UIAbilityContext
 | 
					  private context: common.UIAbilityContext
 | 
				
			||||||
  private wantInfos: Want[]
 | 
					  private wantInfos: Want[]
 | 
				
			||||||
  private fileAccessHelper: fileAccess.FileAccessHelper
 | 
					  private fileAccessHelper: fileAccess.FileAccessHelper
 | 
				
			||||||
@ -15,7 +14,8 @@ export default class FileUtil {
 | 
				
			|||||||
  //后续文件路径待替换
 | 
					  //后续文件路径待替换
 | 
				
			||||||
  private absolutePath = '/mnt/hmdfs/100/account/device_view/local/files'
 | 
					  private absolutePath = '/mnt/hmdfs/100/account/device_view/local/files'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public destFile: string
 | 
					  public destFile:string
 | 
				
			||||||
 | 
					  public filePathFdObj:Object = {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  constructor(wantInfos) {
 | 
					  constructor(wantInfos) {
 | 
				
			||||||
    const {requestPermission} = this;
 | 
					    const {requestPermission} = this;
 | 
				
			||||||
@ -27,88 +27,81 @@ export default class FileUtil {
 | 
				
			|||||||
   * @desc 校验文件夹,文件夹不存在会创建,支持嵌套
 | 
					   * @desc 校验文件夹,文件夹不存在会创建,支持嵌套
 | 
				
			||||||
   *
 | 
					   *
 | 
				
			||||||
   */
 | 
					   */
 | 
				
			||||||
  public initFolder = async (folderPath: string) => {
 | 
					  public initFolder = async (folderPath:string) => {
 | 
				
			||||||
    const {absolutePath} = this;
 | 
					    const {absolutePath} = this;
 | 
				
			||||||
    const folderList = folderPath.split('/').filter(folderName => folderName !== '');
 | 
					    const folderList = folderPath.split('/').filter(folderName => folderName !== '');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let path = absolutePath
 | 
					    let path = absolutePath
 | 
				
			||||||
    folderList.forEach((folderName => {
 | 
					    folderList.forEach((folderName=>{
 | 
				
			||||||
      path += `/${folderName}`;
 | 
					      path += `/${folderName}`;
 | 
				
			||||||
      try {
 | 
					      try {
 | 
				
			||||||
        const isExit = fs.accessSync(path);
 | 
					        const isExit = fs.accessSync(path);
 | 
				
			||||||
        if (!isExit) {
 | 
					        if(!isExit){
 | 
				
			||||||
          fs.mkdirSync(path)
 | 
					          fs.mkdirSync(path)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      } catch (e) {
 | 
					      } catch (e) {
 | 
				
			||||||
        console.info('初始化文件夹失败', path)
 | 
					        console.info('初始化文件夹失败',path)
 | 
				
			||||||
        promptAction.showToast({
 | 
					        promptAction.showToast({
 | 
				
			||||||
          message: `初始化文件夹失败` + JSON.stringify(e),
 | 
					          message:`初始化文件夹失败`+ folderPath + JSON.stringify(e),
 | 
				
			||||||
          duration: 4000,
 | 
					          duration:4000,
 | 
				
			||||||
        })
 | 
					        })
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
    return path;
 | 
					    return path;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /*
 | 
					  /*
 | 
				
			||||||
* @desc 创建并覆盖文件
 | 
					* @desc 创建并覆盖文件
 | 
				
			||||||
*
 | 
					*
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
  public addFile = async (filePath: string, content: string, type?: string, fd?) => {
 | 
					  public addFile = async (filePath:string,content:string,type?:string)=>{
 | 
				
			||||||
    const { READ_WRITE,CREATE,APPEND } = fs.OpenMode
 | 
					    const { READ_WRITE,CREATE,APPEND }= fs.OpenMode
 | 
				
			||||||
    const isExit = fs.accessSync(filePath);
 | 
					    const isExit = fs.accessSync(filePath);
 | 
				
			||||||
    //文件存在先删除
 | 
					    //文件存在先删除
 | 
				
			||||||
    if (isExit) {
 | 
					    if(isExit){
 | 
				
			||||||
      fs.unlinkSync(filePath);
 | 
					      fs.unlinkSync(filePath);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
      let file
 | 
					      let file = fs.openSync(filePath, READ_WRITE  | CREATE);
 | 
				
			||||||
      if (!fd) {
 | 
					 | 
				
			||||||
        file = fs.openSync(filePath, READ_WRITE | CREATE);
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      //追加写入文件
 | 
					      //追加写入文件
 | 
				
			||||||
      fs.writeSync(file.fd, content)
 | 
					      fs.writeSync(file.fd,content)
 | 
				
			||||||
      fs.closeSync(file)
 | 
					      fs.closeSync(file)
 | 
				
			||||||
      return file.fd
 | 
					      console.error(LOGTAG,'写入文件成功')
 | 
				
			||||||
 | 
					      return true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    } catch (e) {
 | 
					    }catch (e){
 | 
				
			||||||
      console.error(LOGTAG, '写入失败', JSON.stringify(e))
 | 
					      promptAction.showToast({
 | 
				
			||||||
 | 
					        message:`addFile文件失败`+ filePath +JSON.stringify(e),
 | 
				
			||||||
 | 
					        duration:4000,
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					      console.error(LOGTAG,'写入失败',JSON.stringify(e))
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					 | 
				
			||||||
  public openFileSync = async (filePath) => {
 | 
					 | 
				
			||||||
    const { READ_WRITE,CREATE,APPEND } = fs.OpenMode
 | 
					 | 
				
			||||||
    let file = fs.openSync(filePath, READ_WRITE | APPEND | CREATE);
 | 
					 | 
				
			||||||
    return file
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  public editFileWidthOutOpen(file, content) {
 | 
					 | 
				
			||||||
    const newStr = content + '\n'
 | 
					 | 
				
			||||||
    fs.writeSync(file.fd, newStr)
 | 
					 | 
				
			||||||
    fs.closeSync(file)
 | 
					 | 
				
			||||||
    console.error(LOGTAG, '写入文件成功')
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  /*
 | 
					  /*
 | 
				
			||||||
  * @desc 创建或者编辑文件
 | 
					  * @desc 创建或者编辑文件
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
  public editFile = async (filePath: string, content: string, fd?: number) => {
 | 
					  public editFile = async (filePath:string,content:string,fd?:number)=>{
 | 
				
			||||||
    const { READ_WRITE,CREATE,APPEND } = fs.OpenMode
 | 
					    const {filePathFdObj} = this;
 | 
				
			||||||
 | 
					    const { READ_WRITE,CREATE,APPEND }= fs.OpenMode
 | 
				
			||||||
 | 
					    const newStr =  content + '\n'
 | 
				
			||||||
 | 
					    const thisFileFd = filePathFdObj[filePath];
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
      const newStr = content + '\n'
 | 
					      if(thisFileFd){
 | 
				
			||||||
      if (fd !== undefined) {
 | 
					        fs.writeSync(fd,newStr)
 | 
				
			||||||
        fs.writeSync(fd, newStr)
 | 
					        return fd;
 | 
				
			||||||
        return fd
 | 
					      }else{
 | 
				
			||||||
      } else {
 | 
					        let file = fs.openSync(filePath, READ_WRITE | APPEND |CREATE);
 | 
				
			||||||
        let file = fs.openSync(filePath, READ_WRITE | APPEND | CREATE);
 | 
					        fs.writeSync(file.fd,newStr)
 | 
				
			||||||
        fs.writeSync(file.fd, newStr)
 | 
					        this.filePathFdObj[filePath] = file.fd
 | 
				
			||||||
        return file.fd
 | 
					        return file.fd
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					 | 
				
			||||||
    } catch (e) {
 | 
					    } catch (e) {
 | 
				
			||||||
      console.error(LOGTAG, JSON.stringify(e))
 | 
					      promptAction.showToast({
 | 
				
			||||||
 | 
					        message:`editFile文件失败`+ filePath +JSON.stringify(e),
 | 
				
			||||||
 | 
					        duration:4000,
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					      console.error(LOGTAG,JSON.stringify(e))
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -116,12 +109,17 @@ export default class FileUtil {
 | 
				
			|||||||
  * @desc 读取文件
 | 
					  * @desc 读取文件
 | 
				
			||||||
  *
 | 
					  *
 | 
				
			||||||
  **/
 | 
					  **/
 | 
				
			||||||
  public readFile = async (filePath: string) => {
 | 
					  public readFile = async (filePath:string) => {
 | 
				
			||||||
    try {
 | 
					    try{
 | 
				
			||||||
      console.log('strrr', filePath)
 | 
					      console.log('strrr',filePath)
 | 
				
			||||||
      const str = await fs.readText(filePath);
 | 
					      const str = await fs.readText(filePath);
 | 
				
			||||||
      return str
 | 
					      return str
 | 
				
			||||||
    } catch (err) {
 | 
					    }catch (e){
 | 
				
			||||||
 | 
					      promptAction.showToast({
 | 
				
			||||||
 | 
					        message:`读取文件失败`+ filePath +JSON.stringify(e),
 | 
				
			||||||
 | 
					        duration:4000,
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					      console.log('readFile文件失败'+ filePath +JSON.stringify(e))
 | 
				
			||||||
      return ''
 | 
					      return ''
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -130,9 +128,9 @@ export default class FileUtil {
 | 
				
			|||||||
  /*
 | 
					  /*
 | 
				
			||||||
   *  @desc获取系统目录里的文件列表
 | 
					   *  @desc获取系统目录里的文件列表
 | 
				
			||||||
   */
 | 
					   */
 | 
				
			||||||
  public getDeviceList = async (folderPath?: string) => {
 | 
					  public getDeviceList = async (folderPath?:string)=>{
 | 
				
			||||||
    const {absolutePath,getFilePathList} = this;
 | 
					    const {absolutePath,getFilePathList} = this;
 | 
				
			||||||
    return getFilePathList(`${absolutePath}/${folderPath}`, false)
 | 
					    return getFilePathList(`${absolutePath}/${folderPath}`,false)
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // 删除文件夹或者文件
 | 
					  // 删除文件夹或者文件
 | 
				
			||||||
@ -141,29 +139,29 @@ export default class FileUtil {
 | 
				
			|||||||
   * @param{{type}} 1:文件夹 2:文件 3:自定义目录下文件
 | 
					   * @param{{type}} 1:文件夹 2:文件 3:自定义目录下文件
 | 
				
			||||||
   **/
 | 
					   **/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public deleteF = async (path: string, type: 1 | 2 | 3) => {
 | 
					  public deleteF = async (path:string,type: 1 | 2 | 3) => {
 | 
				
			||||||
    const {getFilePathList,absolutePath} = this
 | 
					    const {getFilePathList,absolutePath} = this
 | 
				
			||||||
    if (type === 1) {
 | 
					    if(type === 1){
 | 
				
			||||||
      const fileList = await getFilePathList(`${absolutePath}/${path}`, false);
 | 
					      const fileList = await getFilePathList(`${absolutePath}/${path}`,false);
 | 
				
			||||||
      fileList.forEach(filePath => {
 | 
					      fileList.forEach(filePath =>{
 | 
				
			||||||
        fs.unlinkSync(`${absolutePath}/${path}/${filePath}`);
 | 
					        fs.unlinkSync(`${absolutePath}/${path}/${filePath}`);
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
      fs.rmdirSync(`${absolutePath}/${path}`);
 | 
					      fs.rmdirSync(`${absolutePath}/${path}`);
 | 
				
			||||||
      return true
 | 
					      return true
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (type === 2) {
 | 
					    if(type === 2){
 | 
				
			||||||
      fs.unlinkSync(`${absolutePath}/${path}`);
 | 
					      fs.unlinkSync(`${absolutePath}/${path}`);
 | 
				
			||||||
      return true
 | 
					      return true
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (type === 3) {
 | 
					    if(type === 3){
 | 
				
			||||||
      fs.unlinkSync(`${path}`);
 | 
					      fs.unlinkSync(`${path}`);
 | 
				
			||||||
      return true
 | 
					      return true
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // 获取系统文件绝对路径
 | 
					  // 获取系统文件绝对路径
 | 
				
			||||||
  public getAbsolutePath = () => {
 | 
					  public getAbsolutePath = () =>{
 | 
				
			||||||
    const {absolutePath} = this;
 | 
					    const {absolutePath} = this;
 | 
				
			||||||
    return absolutePath
 | 
					    return absolutePath
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -172,7 +170,7 @@ export default class FileUtil {
 | 
				
			|||||||
  public getSdCardPathList = async () => {
 | 
					  public getSdCardPathList = async () => {
 | 
				
			||||||
    this.wantInfos = await fileAccess.getFileAccessAbilityInfo();
 | 
					    this.wantInfos = await fileAccess.getFileAccessAbilityInfo();
 | 
				
			||||||
    const {wantInfos,context} = this;
 | 
					    const {wantInfos,context} = this;
 | 
				
			||||||
    const fileAccessHelper = fileAccess.createFileAccessHelper(this.context, this.wantInfos);
 | 
					    const fileAccessHelper = fileAccess.createFileAccessHelper(this.context,this.wantInfos);
 | 
				
			||||||
    this.fileAccessHelper = fileAccessHelper;
 | 
					    this.fileAccessHelper = fileAccessHelper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let isDone = false;
 | 
					    let isDone = false;
 | 
				
			||||||
@ -188,48 +186,48 @@ export default class FileUtil {
 | 
				
			|||||||
        if (!isDone) {
 | 
					        if (!isDone) {
 | 
				
			||||||
          let deviceType = rootInfo.value.deviceType;
 | 
					          let deviceType = rootInfo.value.deviceType;
 | 
				
			||||||
          let displayName = rootInfo.value.displayName;
 | 
					          let displayName = rootInfo.value.displayName;
 | 
				
			||||||
          let uri: string = rootInfo.value.uri;
 | 
					          let uri:string = rootInfo.value.uri;
 | 
				
			||||||
          let deviceFlags = rootInfo.value.deviceFlags;
 | 
					          let deviceFlags = rootInfo.value.deviceFlags;
 | 
				
			||||||
          console.error(LOGTAG, `设备类型:${deviceType},设备名称:${displayName},设备根目录Uri:${uri},设备支持的能力:${deviceFlags}`);
 | 
					          console.error(LOGTAG,`设备类型:${deviceType},设备名称:${displayName},设备根目录Uri:${uri},设备支持的能力:${deviceFlags}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          if (uri.indexOf('/mnt/external/') > 0) {
 | 
					          if(uri.indexOf('/mnt/external/')>0){
 | 
				
			||||||
            // if('vol-8-1' ==displayName){
 | 
					            // if('vol-8-1' ==displayName){
 | 
				
			||||||
            this.destFile = uri.split('ExternalFileManager')[1] + '/'
 | 
					            this.destFile = uri.split('ExternalFileManager')[1]+'/'
 | 
				
			||||||
            console.error(LOGTAG, `外置存储路径:` + this.destFile);
 | 
					            console.error(LOGTAG,`外置存储路径:`+this.destFile);
 | 
				
			||||||
            this.getFilePathList(this.destFile, true)
 | 
					            this.getFilePathList(this.destFile,true)
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
      console.error(LOGTAG, "getRoots failed, errCode:" + error.code + ", errMessage:" + error.message);
 | 
					      console.error(LOGTAG,"getRoots failed, errCode:" + error.code + ", errMessage:" + error.message);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  public getFileContent = (filePath: string) => {
 | 
					  public getFileContent = (filePath:string) => {
 | 
				
			||||||
    const {absolutePath} = this;
 | 
					    const {absolutePath} = this;
 | 
				
			||||||
    const { READ_WRITE } = fs.OpenMode
 | 
					    const { READ_WRITE }= fs.OpenMode
 | 
				
			||||||
    const path = `${absolutePath}/${filePath}`
 | 
					    const path = `${absolutePath}/${filePath}`
 | 
				
			||||||
    const str = fs.readTextSync(path);
 | 
					    const str = fs.readTextSync(path);
 | 
				
			||||||
    return str
 | 
					    return str
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private getFilePathList = async (filePath: string, isSdcard: boolean) => {
 | 
					  private getFilePathList = async (filePath:string,isSdcard:boolean) => {
 | 
				
			||||||
    let fileName = [], sdCardFileName = [];
 | 
					    let fileName = [],sdCardFileName = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
      const filenames = await fs.listFile(filePath);
 | 
					      const filenames = await fs.listFile(filePath);
 | 
				
			||||||
      for (let i = 0; i < filenames.length; i++) {
 | 
					      for (let i = 0; i < filenames.length; i++) {
 | 
				
			||||||
        console.error(LOGTAG, `目录:${filePath}的子文件:${filenames[i]}`);
 | 
					        console.error(LOGTAG,`目录:${filePath}的子文件:${filenames[i]}`);
 | 
				
			||||||
        if (isSdcard) {
 | 
					        if(isSdcard){
 | 
				
			||||||
          sdCardFileName.push(filenames[i])
 | 
					          sdCardFileName.push(filenames[i])
 | 
				
			||||||
        } else {
 | 
					        }else{
 | 
				
			||||||
          fileName.push(filenames[i])
 | 
					          fileName.push(filenames[i])
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      return isSdcard ? sdCardFileName : fileName
 | 
					      return isSdcard ? sdCardFileName : fileName
 | 
				
			||||||
    } catch (e) {
 | 
					    }catch (e){
 | 
				
			||||||
      console.error(LOGTAG, JSON.stringify(e));
 | 
					      console.error(LOGTAG,JSON.stringify(e));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -243,15 +241,17 @@ export default class FileUtil {
 | 
				
			|||||||
    ];
 | 
					    ];
 | 
				
			||||||
    this.wantInfos = await fileAccess.getFileAccessAbilityInfo();
 | 
					    this.wantInfos = await fileAccess.getFileAccessAbilityInfo();
 | 
				
			||||||
    let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager()
 | 
					    let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager()
 | 
				
			||||||
    atManager.requestPermissionsFromUser(context, permissions, async (code, result) => {
 | 
					    atManager.requestPermissionsFromUser(context, permissions , async (code, result) => {
 | 
				
			||||||
      const permissionRequest = result.authResults[0]
 | 
					      const permissionRequest = result.authResults[0]
 | 
				
			||||||
      if (permissionRequest == -1) {
 | 
					      if(permissionRequest == -1){
 | 
				
			||||||
        promptAction.showToast({
 | 
					        promptAction.showToast({
 | 
				
			||||||
          message: "请先授权",
 | 
					          message: "请先授权",
 | 
				
			||||||
          duration: 3000,
 | 
					          duration:3000,
 | 
				
			||||||
        })
 | 
					        })
 | 
				
			||||||
        return
 | 
					        return
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -31,6 +31,7 @@ import { judgeConfig } from './judgeSDK/utils/judgeConfig';
 | 
				
			|||||||
import FileUtil from '../common/utils/File';
 | 
					import FileUtil from '../common/utils/File';
 | 
				
			||||||
import SignDisplayCom from './compontents/signDisplayCom';
 | 
					import SignDisplayCom from './compontents/signDisplayCom';
 | 
				
			||||||
import promptAction from '@ohos.promptAction';
 | 
					import promptAction from '@ohos.promptAction';
 | 
				
			||||||
 | 
					import { voiceService } from '../common/service/voiceService';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Entry
 | 
					@Entry
 | 
				
			||||||
@Component
 | 
					@Component
 | 
				
			||||||
@ -40,6 +41,8 @@ struct Index {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  async aboutToAppear() {
 | 
					  async aboutToAppear() {
 | 
				
			||||||
 | 
					    this.vocObj = new voiceService(async (status, val, next) => {
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
    globalThis.windowClass.setWindowSystemBarEnable([])
 | 
					    globalThis.windowClass.setWindowSystemBarEnable([])
 | 
				
			||||||
    const time = await getCurrentTime()
 | 
					    const time = await getCurrentTime()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -760,6 +763,10 @@ struct Index {
 | 
				
			|||||||
                            .height(118 * 0.95)
 | 
					                            .height(118 * 0.95)
 | 
				
			||||||
                            .margin({ bottom: 8 })
 | 
					                            .margin({ bottom: 8 })
 | 
				
			||||||
                            .onClick(() => {
 | 
					                            .onClick(() => {
 | 
				
			||||||
 | 
					                              this.vocObj.playAudio({
 | 
				
			||||||
 | 
					                                type: 1,
 | 
				
			||||||
 | 
					                                name: 'button_media.wav'
 | 
				
			||||||
 | 
					                              })
 | 
				
			||||||
                              this.setManualProjectFn(index)
 | 
					                              this.setManualProjectFn(index)
 | 
				
			||||||
                            })
 | 
					                            })
 | 
				
			||||||
                          })
 | 
					                          })
 | 
				
			||||||
@ -792,6 +799,10 @@ struct Index {
 | 
				
			|||||||
            .alignItems(VerticalAlign.Center)
 | 
					            .alignItems(VerticalAlign.Center)
 | 
				
			||||||
            .border({ width: 5, color: '#4D4136', radius: 30 })
 | 
					            .border({ width: 5, color: '#4D4136', radius: 30 })
 | 
				
			||||||
            .onClick(() => {
 | 
					            .onClick(() => {
 | 
				
			||||||
 | 
					              this.vocObj.playAudio({
 | 
				
			||||||
 | 
					                type: 1,
 | 
				
			||||||
 | 
					                name: 'button_media.wav'
 | 
				
			||||||
 | 
					              })
 | 
				
			||||||
              this.signDisplayComVisible = true
 | 
					              this.signDisplayComVisible = true
 | 
				
			||||||
            })
 | 
					            })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -827,6 +838,10 @@ struct Index {
 | 
				
			|||||||
              .backgroundImageSize({ width: '100%', height: '100%' })
 | 
					              .backgroundImageSize({ width: '100%', height: '100%' })
 | 
				
			||||||
              .margin({ bottom: 10 })
 | 
					              .margin({ bottom: 10 })
 | 
				
			||||||
              .onClick(() => {
 | 
					              .onClick(() => {
 | 
				
			||||||
 | 
					                this.vocObj.playAudio({
 | 
				
			||||||
 | 
					                  type: 1,
 | 
				
			||||||
 | 
					                  name: 'button_media.wav'
 | 
				
			||||||
 | 
					                })
 | 
				
			||||||
                this.isDeductedPopShow = true
 | 
					                this.isDeductedPopShow = true
 | 
				
			||||||
              })
 | 
					              })
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@ -856,6 +871,10 @@ struct Index {
 | 
				
			|||||||
            .backgroundImage($rawfile('judge/anniu_nor.png'), ImageRepeat.NoRepeat)
 | 
					            .backgroundImage($rawfile('judge/anniu_nor.png'), ImageRepeat.NoRepeat)
 | 
				
			||||||
            .backgroundImageSize({ width: '100%', height: '100%' })
 | 
					            .backgroundImageSize({ width: '100%', height: '100%' })
 | 
				
			||||||
            .onClick(() => {
 | 
					            .onClick(() => {
 | 
				
			||||||
 | 
					              this.vocObj.playAudio({
 | 
				
			||||||
 | 
					                type: 1,
 | 
				
			||||||
 | 
					                name: 'button_media.wav'
 | 
				
			||||||
 | 
					              })
 | 
				
			||||||
              if (this.judgeConfigObj['353'] == '0') {
 | 
					              if (this.judgeConfigObj['353'] == '0') {
 | 
				
			||||||
                this.endPopupVisible = true
 | 
					                this.endPopupVisible = true
 | 
				
			||||||
              } else {
 | 
					              } else {
 | 
				
			||||||
@ -919,6 +938,10 @@ struct Index {
 | 
				
			|||||||
          .backgroundImage($rawfile('judge/close.png'), ImageRepeat.NoRepeat)
 | 
					          .backgroundImage($rawfile('judge/close.png'), ImageRepeat.NoRepeat)
 | 
				
			||||||
          .backgroundImageSize({ width: '33.33%', height: '33.33%' })
 | 
					          .backgroundImageSize({ width: '33.33%', height: '33.33%' })
 | 
				
			||||||
          .onClick(() => {
 | 
					          .onClick(() => {
 | 
				
			||||||
 | 
					            this.vocObj.playAudio({
 | 
				
			||||||
 | 
					              type: 1,
 | 
				
			||||||
 | 
					              name: 'button_media.wav'
 | 
				
			||||||
 | 
					            })
 | 
				
			||||||
            this.signDisplayComVisible = false
 | 
					            this.signDisplayComVisible = false
 | 
				
			||||||
          })
 | 
					          })
 | 
				
			||||||
        }.width('100%').height('100%').position({ y: 0 }).backgroundColor('rgba(0,0,0,0.6)')
 | 
					        }.width('100%').height('100%').position({ y: 0 }).backgroundColor('rgba(0,0,0,0.6)')
 | 
				
			||||||
@ -1330,10 +1353,11 @@ struct Index {
 | 
				
			|||||||
  @State lane: LANE = { road: '', num: 0, count: 0 }
 | 
					  @State lane: LANE = { road: '', num: 0, count: 0 }
 | 
				
			||||||
  @State roadData: Object = {};
 | 
					  @State roadData: Object = {};
 | 
				
			||||||
  //定位差分状态时候正常
 | 
					  //定位差分状态时候正常
 | 
				
			||||||
  @State isDwztRight: boolean = false;
 | 
					  @State isDwztRight: boolean = true;
 | 
				
			||||||
  @State defaultTabIndex: number = 0;
 | 
					  @State defaultTabIndex: number = 0;
 | 
				
			||||||
  private context = getContext(this) as common.UIAbilityContext;
 | 
					  private context = getContext(this) as common.UIAbilityContext;
 | 
				
			||||||
  public kfArrScroller: Scroller = new Scroller()
 | 
					  public kfArrScroller: Scroller = new Scroller()
 | 
				
			||||||
 | 
					  private vocObj = null;
 | 
				
			||||||
  //档位
 | 
					  //档位
 | 
				
			||||||
  @State dw: string = ''
 | 
					  @State dw: string = ''
 | 
				
			||||||
  //速度
 | 
					  //速度
 | 
				
			||||||
 | 
				
			|||||||
@ -97,8 +97,8 @@ export interface MAPITEMPOINTITEM {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface EXAMDATA {
 | 
					export interface EXAMDATA {
 | 
				
			||||||
  //1:项目开始 2:项目结束 3:扣分 4:考车状态 5:考试结束 6:项目取消 7:语音播放和提示 8:模拟灯光事件 9:车道信息事件 10:预进项目事件
 | 
					  //1:项目开始 2:项目结束 3:扣分 4:考车状态 5:考试结束 6:项目取消 7:语音播放和提示 8:模拟灯光事件 9:车道信息事件 10:预进项目事件 11:差分事件
 | 
				
			||||||
  event: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10
 | 
					  event: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11
 | 
				
			||||||
  //时间
 | 
					  //时间
 | 
				
			||||||
  sj: number
 | 
					  sj: number
 | 
				
			||||||
  //考车状态 -1:后退 0:停车 1:前进
 | 
					  //考车状态 -1:后退 0:停车 1:前进
 | 
				
			||||||
@ -164,6 +164,9 @@ export interface EXAMDATA {
 | 
				
			|||||||
    xmdm:number,
 | 
					    xmdm:number,
 | 
				
			||||||
    xmxh:string
 | 
					    xmxh:string
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					  nongps:{
 | 
				
			||||||
 | 
					    type:0|1|2|3|4
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface KSJS {
 | 
					export interface KSJS {
 | 
				
			||||||
 | 
				
			|||||||
@ -72,7 +72,6 @@ export default class Judge {
 | 
				
			|||||||
    this.kfArr = judgeUI.kfArr
 | 
					    this.kfArr = judgeUI.kfArr
 | 
				
			||||||
    this.xmmcStr = '';
 | 
					    this.xmmcStr = '';
 | 
				
			||||||
    this.xmmcCode = '';
 | 
					    this.xmmcCode = '';
 | 
				
			||||||
    this.xmmcEndCode = undefined;
 | 
					 | 
				
			||||||
    this.carztStr = '';
 | 
					    this.carztStr = '';
 | 
				
			||||||
    this.testKmItems = {};
 | 
					    this.testKmItems = {};
 | 
				
			||||||
    // 考试回放配置
 | 
					    // 考试回放配置
 | 
				
			||||||
@ -123,7 +122,7 @@ export default class Judge {
 | 
				
			|||||||
      strArr = str.split('\n')
 | 
					      strArr = str.split('\n')
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    //日志回调
 | 
					    //日志回调
 | 
				
			||||||
    console.info(judgeTag, '1.进入评判入口')
 | 
					    console.info(judgeTag, '1.进入评判入口1')
 | 
				
			||||||
    await examJudgeSetLogCallback(3, async (level, info, len) => {
 | 
					    await examJudgeSetLogCallback(3, async (level, info, len) => {
 | 
				
			||||||
      console.log('评判日志:' + info)
 | 
					      console.log('评判日志:' + info)
 | 
				
			||||||
      await fileLog.setExamJudgeLogData(info);
 | 
					      await fileLog.setExamJudgeLogData(info);
 | 
				
			||||||
@ -359,7 +358,7 @@ export default class Judge {
 | 
				
			|||||||
  handleRealExam = async (strData, callBack) => {
 | 
					  handleRealExam = async (strData, callBack) => {
 | 
				
			||||||
    let examData: EXAMDATA = JSON.parse(strData);
 | 
					    let examData: EXAMDATA = JSON.parse(strData);
 | 
				
			||||||
    const {getDqxmStr,getKfStr,goJudgeVoice,setMndg,avPlayer,fileLog,judgeUI} = this;
 | 
					    const {getDqxmStr,getKfStr,goJudgeVoice,setMndg,avPlayer,fileLog,judgeUI} = this;
 | 
				
			||||||
    const {carzt,xmks,kf,event,xmjs,xmqx,ksjs,sound,mndg,lane,precast} = examData
 | 
					    const {carzt,xmks,kf,event,xmjs,xmqx,ksjs,sound,mndg,lane,precast,nongps} = examData
 | 
				
			||||||
    const  param512 = (judgeUI.judgeConfigObj['512'] || '').split(',');
 | 
					    const  param512 = (judgeUI.judgeConfigObj['512'] || '').split(',');
 | 
				
			||||||
    //获取项目结束、项目开始代码
 | 
					    //获取项目结束、项目开始代码
 | 
				
			||||||
    const xmdm = event == 2 ? xmjs.xmdm : xmks.xmdm
 | 
					    const xmdm = event == 2 ? xmjs.xmdm : xmks.xmdm
 | 
				
			||||||
@ -386,7 +385,6 @@ export default class Judge {
 | 
				
			|||||||
        this.xmmcStr = xmmcStr;
 | 
					        this.xmmcStr = xmmcStr;
 | 
				
			||||||
        this.xmmcCode = xmmcCode;
 | 
					        this.xmmcCode = xmmcCode;
 | 
				
			||||||
        this.xmmcSingleCode = xmmcSingleCode
 | 
					        this.xmmcSingleCode = xmmcSingleCode
 | 
				
			||||||
        this.xmmcEndCode = xmmcCode
 | 
					 | 
				
			||||||
        this.xmdm = xmdm;
 | 
					        this.xmdm = xmdm;
 | 
				
			||||||
        this.xmxh = xmxh;
 | 
					        this.xmxh = xmxh;
 | 
				
			||||||
        this.judgeUI.isProjectIn = true
 | 
					        this.judgeUI.isProjectIn = true
 | 
				
			||||||
@ -484,7 +482,7 @@ export default class Judge {
 | 
				
			|||||||
      case 10:{
 | 
					      case 10:{
 | 
				
			||||||
        const param611 = judgeConfigObj['611'] || '';
 | 
					        const param611 = judgeConfigObj['611'] || '';
 | 
				
			||||||
        const [f,s] = param611.split('/')
 | 
					        const [f,s] = param611.split('/')
 | 
				
			||||||
        const {xmdm,xmxh} = precast;
 | 
					        const {xmdm} = precast;
 | 
				
			||||||
        const xmmcCode = judgeUI.projectsObj[xmdm].projectCodeCenter;
 | 
					        const xmmcCode = judgeUI.projectsObj[xmdm].projectCodeCenter;
 | 
				
			||||||
        const xmmcSingleCode = judgeUI.projectsObj[xmdm].projectCode;
 | 
					        const xmmcSingleCode = judgeUI.projectsObj[xmdm].projectCode;
 | 
				
			||||||
        // if(examSubject == 2 && ((xmdm == 0 && f == 1) || (xmdm == 1 && s == 1) || xmdm == 3)){
 | 
					        // if(examSubject == 2 && ((xmdm == 0 && f == 1) || (xmdm == 1 && s == 1) || xmdm == 3)){
 | 
				
			||||||
@ -494,13 +492,16 @@ export default class Judge {
 | 
				
			|||||||
        this.testKmItems[xmmcCode].status = 2;
 | 
					        this.testKmItems[xmmcCode].status = 2;
 | 
				
			||||||
        this.xmmcStr = xmmcStr;
 | 
					        this.xmmcStr = xmmcStr;
 | 
				
			||||||
        this.xmmcCode = xmmcCode;
 | 
					        this.xmmcCode = xmmcCode;
 | 
				
			||||||
        this.xmdm = xmdm;
 | 
					 | 
				
			||||||
        this.xmxh = xmxh;
 | 
					 | 
				
			||||||
        this.xmmcSingleCode = xmmcSingleCode;
 | 
					        this.xmmcSingleCode = xmmcSingleCode;
 | 
				
			||||||
        judgeUI.projectsObj[xmdm].type = '2';
 | 
					        judgeUI.projectsObj[xmdm].type = '2';
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //差分事件
 | 
				
			||||||
 | 
					      case 11:{
 | 
				
			||||||
 | 
					        const {type}= nongps
 | 
				
			||||||
 | 
					        this.checkDwzt(type)
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
      default:
 | 
					      default:
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -593,7 +594,6 @@ export default class Judge {
 | 
				
			|||||||
              console.info(judgeTag, `项目结束-${xmdm}-${projectsObj[xmdm].name}`)
 | 
					              console.info(judgeTag, `项目结束-${xmdm}-${projectsObj[xmdm].name}`)
 | 
				
			||||||
              await endProject(xmdm);
 | 
					              await endProject(xmdm);
 | 
				
			||||||
              this.xmmcSingleCode = 0;
 | 
					              this.xmmcSingleCode = 0;
 | 
				
			||||||
              this.xmmcEndCode = undefined;
 | 
					 | 
				
			||||||
            }, {isDelay: true})
 | 
					            }, {isDelay: true})
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -760,7 +760,7 @@ export default class Judge {
 | 
				
			|||||||
    const carInfo = globalThis.carInfo;
 | 
					    const carInfo = globalThis.carInfo;
 | 
				
			||||||
    const deviceNo = globalThis.deviceNo;
 | 
					    const deviceNo = globalThis.deviceNo;
 | 
				
			||||||
    const { examSubject,plateNo,carNo } = carInfo;
 | 
					    const { examSubject,plateNo,carNo } = carInfo;
 | 
				
			||||||
    const {judgeUI,getProjectInfo,fileLog,xmmcEndCode,filePath} = this;
 | 
					    const {judgeUI,getProjectInfo,fileLog,xmmcSingleCode,filePath} = this;
 | 
				
			||||||
    const {lsh,idCard,serialNumber,ksdd,projectsObj} = judgeUI
 | 
					    const {lsh,idCard,serialNumber,ksdd,projectsObj} = judgeUI
 | 
				
			||||||
    const time = await getCurrentTime();
 | 
					    const time = await getCurrentTime();
 | 
				
			||||||
    const project = getProjectInfo(ksxm);
 | 
					    const project = getProjectInfo(ksxm);
 | 
				
			||||||
@ -776,11 +776,6 @@ export default class Judge {
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    console.info('surenjun','开始扣分')
 | 
					 | 
				
			||||||
    console.info('surenjun ksxm=>',ksxm)
 | 
					 | 
				
			||||||
    console.info('surenjun commonKsxm=>',commonKsxm)
 | 
					 | 
				
			||||||
    console.info('surenjun project=>',JSON.stringify(project))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const data = {
 | 
					    const data = {
 | 
				
			||||||
      xtlb: '17', jkxlh: serialNumber, jkid: '17C53',
 | 
					      xtlb: '17', jkxlh: serialNumber, jkid: '17C53',
 | 
				
			||||||
      drvexam: {
 | 
					      drvexam: {
 | 
				
			||||||
@ -789,7 +784,7 @@ export default class Judge {
 | 
				
			|||||||
        ksxm: project == undefined
 | 
					        ksxm: project == undefined
 | 
				
			||||||
          ? (commonKsxm
 | 
					          ? (commonKsxm
 | 
				
			||||||
            ? (projectsObj[commonKsxm].projectCodeCenter)
 | 
					            ? (projectsObj[commonKsxm].projectCodeCenter)
 | 
				
			||||||
            : (examSubject == 3 ? 30000 : (xmmcEndCode == undefined?10000:xmmcEndCode)))
 | 
					            : (examSubject == 3 ? 30000 : 10000))
 | 
				
			||||||
          : project.projectCodeCenter ,
 | 
					          : project.projectCodeCenter ,
 | 
				
			||||||
        kfxm: kf.markcatalog,
 | 
					        kfxm: kf.markcatalog,
 | 
				
			||||||
        kfxmmx: `${ksxm},${kf.markserial}`,
 | 
					        kfxmmx: `${ksxm},${kf.markserial}`,
 | 
				
			||||||
@ -1487,13 +1482,13 @@ export default class Judge {
 | 
				
			|||||||
      const str = await senorToWXDataStr(msg);
 | 
					      const str = await senorToWXDataStr(msg);
 | 
				
			||||||
      usbService.sendUSB(str)
 | 
					      usbService.sendUSB(str)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    this.judgeUI.isDwztRight = (plcData.gps.dwzt == 4 && plcData.gps.jdzt == 3);
 | 
					    // this.judgeUI.isDwztRight = (plcData.gps.dwzt == 4 && plcData.gps.jdzt == 3);
 | 
				
			||||||
    const param350 = judgeUI.judgeConfigObj['350']
 | 
					    const param350 = judgeUI.judgeConfigObj['350']
 | 
				
			||||||
    //@ts-ignore
 | 
					    //@ts-ignore
 | 
				
			||||||
    this.judgeUI.sd = ((param350 == 0? plcData.gps.sd :plcData.sensor.cs) as number * 1.852).toFixed(0)   + ''
 | 
					    this.judgeUI.sd = ((param350 == 0? plcData.gps.sd :plcData.sensor.cs) as number * 1.852).toFixed(0)   + ''
 | 
				
			||||||
    this.judgeUI.dw = (Math.floor(plcData.sensor.dw as number) || 0) + ''
 | 
					    this.judgeUI.dw = (Math.floor(plcData.sensor.dw as number) || 0) + ''
 | 
				
			||||||
    //TODO 暂时关闭差分检测异常
 | 
					    //TODO 暂时关闭差分检测异常
 | 
				
			||||||
    await this.checkDwzt(plcData.gps.dwzt,plcData.gps.jdzt);
 | 
					    // await this.checkDwzt(plcData.gps.dwzt,plcData.gps.jdzt);
 | 
				
			||||||
    if(!isExamEnd){
 | 
					    if(!isExamEnd){
 | 
				
			||||||
      await examJudgeRealExam(plcData)
 | 
					      await examJudgeRealExam(plcData)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -1579,7 +1574,7 @@ export default class Judge {
 | 
				
			|||||||
      const bytes = await this.getMessageHeartbeat();
 | 
					      const bytes = await this.getMessageHeartbeat();
 | 
				
			||||||
      bytes && globalThis.judgeUdp.send(bytes)
 | 
					      bytes && globalThis.judgeUdp.send(bytes)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }, 50)
 | 
					    }, 20)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    globalThis.judgeTimer = judgeTimer;
 | 
					    globalThis.judgeTimer = judgeTimer;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -1620,25 +1615,35 @@ export default class Judge {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // 检测差分状态
 | 
					  // 检测差分状态
 | 
				
			||||||
  checkDwzt = async (dwzt,jdzt) => {
 | 
					  checkDwzt = async (type) => {
 | 
				
			||||||
    const {avPlayer} = this;
 | 
					    const {avPlayer} = this;
 | 
				
			||||||
    const judgeConfig = this.judgeUI.judgeConfig;
 | 
					    const judgeConfig = this.judgeUI.judgeConfig;
 | 
				
			||||||
    const param499 = judgeConfig['499'] || '';
 | 
					    switch (type){
 | 
				
			||||||
    if(param499 == '' || param499 == undefined){
 | 
					      case 0:
 | 
				
			||||||
      return
 | 
					        this.judgeUI.isDwztRight = true;
 | 
				
			||||||
    }
 | 
					        break;
 | 
				
			||||||
    //10秒内dwzt不为4;
 | 
					 | 
				
			||||||
    const dwztNum = this.dwztNum
 | 
					 | 
				
			||||||
    if(dwztNum != 0 && (dwztNum % (5 * 10) == 0)  && (param499 !== '' || param499 !== undefined)){
 | 
					 | 
				
			||||||
      this.judgeUI.dwztErrorVisible = true;
 | 
					 | 
				
			||||||
      avPlayer.playAudio([`voice/差分状态异常.mp3`],true)
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if(dwzt != 4 || jdzt != 3){
 | 
					      case 1:
 | 
				
			||||||
      this.dwztNum += 1
 | 
					        this.judgeUI.dwztErrorVisible = true;
 | 
				
			||||||
    }else{
 | 
					        avPlayer.playAudio([`voice/差分状态异常.mp3`],true)
 | 
				
			||||||
      this.dwztNum = 0;
 | 
					        setTimeout(()=>{
 | 
				
			||||||
      this.judgeUI.dwztErrorVisible = false;
 | 
					          router.back()
 | 
				
			||||||
 | 
					        },3000)
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      case 2:
 | 
				
			||||||
 | 
					        avPlayer.playAudio([`voice/差分状态异常.mp3`],true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					      case 3:
 | 
				
			||||||
 | 
					        this.judgeUI.dwztErrorVisible = true;
 | 
				
			||||||
 | 
					        avPlayer.playAudio([`voice/差分状态异常.mp3`],true);
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      case 4:
 | 
				
			||||||
 | 
					        this.judgeUI.isDwztRight = false;
 | 
				
			||||||
 | 
					      //差分异常上报
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1659,7 +1664,6 @@ export default class Judge {
 | 
				
			|||||||
  private xmmcStr: string
 | 
					  private xmmcStr: string
 | 
				
			||||||
  private xmmcCode: string
 | 
					  private xmmcCode: string
 | 
				
			||||||
  private xmmcSingleCode: number
 | 
					  private xmmcSingleCode: number
 | 
				
			||||||
  private xmmcEndCode?:number
 | 
					 | 
				
			||||||
  private xmdm: string | number
 | 
					  private xmdm: string | number
 | 
				
			||||||
  private xmxh: string
 | 
					  private xmxh: string
 | 
				
			||||||
  private fileModel: FileModel
 | 
					  private fileModel: FileModel
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user