textbook.ts 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import { Injectable } from '@angular/core';
  2. import Parse from 'parse';
  3. import { HttpClient } from '@angular/common/http';
  4. @Injectable({
  5. providedIn: 'root',
  6. })
  7. export class textbookServer {
  8. company: string = localStorage.getItem('company')!;
  9. theme: boolean = false; //深色主题模式
  10. profile: any = JSON.parse(localStorage.getItem('profile')!);
  11. constructor(private http: HttpClient) {}
  12. authMobile(mobile: string): boolean {
  13. let a = /^1[3456789]\d{9}$/;
  14. if (!String(mobile).match(a)) {
  15. return false;
  16. }
  17. return true;
  18. }
  19. randomPassword(): string {
  20. let sCode =
  21. 'A,B,C,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,W,X,Y,Z,1,2,3,4,5,6,7,8,9,0,q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m';
  22. let aCode = sCode.split(',');
  23. let aLength = aCode.length; //获取到数组的长度
  24. let str = [];
  25. for (let i = 0; i <= 16; i++) {
  26. let j = Math.floor(Math.random() * aLength); //获取到随机的索引值
  27. let txt = aCode[j]; //得到随机的一个内容
  28. str.push(txt);
  29. }
  30. return str.join('');
  31. }
  32. formatTime(fmt: string, date1: Date) {
  33. let ret;
  34. let date = new Date(date1);
  35. const opt: any = {
  36. 'Y+': date.getFullYear().toString(), // 年
  37. 'm+': (date.getMonth() + 1).toString(), // 月
  38. 'd+': date.getDate().toString(), // 日
  39. 'H+': date.getHours().toString(), // 时
  40. 'M+': date.getMinutes().toString(), // 分
  41. 'S+': date.getSeconds().toString(), // 秒
  42. // 有其他格式化字符需求可以继续添加,必须转化成字符串
  43. };
  44. for (let k in opt) {
  45. ret = new RegExp('(' + k + ')').exec(fmt);
  46. if (ret) {
  47. fmt = fmt.replace(
  48. ret[1],
  49. ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
  50. );
  51. }
  52. }
  53. return fmt;
  54. }
  55. //格式化链
  56. async formatNode(id: string): Promise<Array<any>> {
  57. let query = new Parse.Query('Department');
  58. query.select('name', 'parent', 'hasChildren');
  59. let r = await query.get(id);
  60. let arr = [
  61. {
  62. title: r.get('name'),
  63. key: r.id,
  64. hasChildren: r.get('hasChildren'), //是否是最下级
  65. },
  66. ];
  67. if (r?.get('parent')) {
  68. arr.unshift(...(await this.formatNode(r?.get('parent').id)));
  69. }
  70. return arr;
  71. }
  72. }