parse-data.service.ts 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import { Injectable } from '@angular/core';
  2. // import { TranslateService } from '@ngx-translate/core';
  3. import Parse from "parse";
  4. @Injectable({
  5. providedIn: 'root'
  6. })
  7. export class ParseDataService {
  8. /**
  9. * 数据源内存缓存
  10. */
  11. ParseObjectCacheMap:{
  12. [key:string]:Parse.Object
  13. } = {}
  14. async cachePointerList(pointers:Array<Parse.Pointer|any>):Promise<any>{
  15. let plist = pointers.map(pointer=>{
  16. return new Promise(async (resolve)=>{
  17. let id = pointer?.objectId || pointer?.id
  18. let query = new Parse.Query(pointer?.className);
  19. try{
  20. this.ParseObjectCacheMap[id] = await query.get(id);
  21. }catch(err){
  22. }
  23. resolve(true)
  24. })
  25. })
  26. await Promise.all(plist);
  27. console.log(this.ParseObjectCacheMap)
  28. return true
  29. }
  30. async showNameByObj(obj:Parse.Object,showName:string="${name}"){
  31. if(!obj?.id) return '无'
  32. let text = showName;
  33. let regex = /\${([^}]+)}/g;
  34. let matches = [];
  35. let match;
  36. while ((match = regex.exec(text)) !== null) {
  37. matches.push(match[1]);
  38. }
  39. // 获取模板标记数组
  40. // console.log(matches);
  41. matches.forEach(keyword=>{
  42. text = text.replaceAll("${"+keyword+"}",obj?.get(keyword)||"")
  43. })
  44. // console.log(text)
  45. // 特殊数据名称设定
  46. // if(obj.className=="MinerCluster"){
  47. // let cname = obj?.get("parent")?.get("name") || ""
  48. // let uname = await this.getTrans( `${obj?.get("index")==1?'A单元':'B单元'}`);
  49. // text = cname + uname;
  50. // if(!obj?.get("index")){
  51. // return obj.get("cluster")?.get("name") || obj.get("name") // 非A/B单元,直接显示名称
  52. // }
  53. // }
  54. return text
  55. }
  56. constructor(
  57. // private translate:TranslateService
  58. ) { }
  59. // getTrans(key:any){
  60. // return new Promise(resolve=>{
  61. // this.translate.get(key).subscribe(data=>{
  62. // resolve(data)
  63. // })
  64. // })
  65. // }
  66. }