app.js 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. // app.js
  2. // 将属性加入相应类型对象中
  3. import './utils/prototype/prototypeArray';
  4. import './utils/prototype/prototypeObject';
  5. import './utils/prototype/prototypeNumber';
  6. import './utils/prototype/prototypeString';
  7. import './utils/prototype/prototypeDatetime';
  8. import './mixins/mixins.js';
  9. import './api/pages/common/common.js';
  10. import './api/pages/core/user.js';
  11. const util = require('./utils/util.js')
  12. const baseMethod = require('./api/pages/baseMethod.js')
  13. const baseRoute = require('./api/pages/baseRoute.js')
  14. //初始化国际化语言设置
  15. const LangUtils = require( './utils/LangUtils')
  16. // 引入文件系统管理器模块
  17. const fs = wx.getFileSystemManager();
  18. // 要读取的文件夹路径
  19. const folderPath = '/api/pages'; // 将此处的'/path/to/folder'替换为实际的文件夹路径
  20. // 定义递归函数,用于读取指定目录下所有的.js文件
  21. function readJsFiles(dirPath) {
  22. let returnFiles = []
  23. // 读取当前目录下的文件列表
  24. const files = fs.readdirSync(dirPath);
  25. for (let i = 0; i < files.length; i++) {
  26. const file = files[i];
  27. // 构建完整路径
  28. const fullpath = dirPath + '/' + file;
  29. // 如果是js文件就返回
  30. if (file.endsWith('.js')) {
  31. let item = require(fullpath);
  32. if(file != 'baseMethod.js' && file != 'baseRoute.js'){
  33. item.name = file.replace('.js','');
  34. returnFiles.push(item);
  35. }
  36. }else if(fs.statSync(fullpath).isDirectory()){
  37. // 如果是文件夹则递归调用自身处理子级文件夹
  38. let returns = readJsFiles(fullpath);
  39. returns.forEach(it=>{
  40. returnFiles.push(it);
  41. })
  42. }
  43. }
  44. return returnFiles;
  45. }
  46. function setRouteService(){
  47. }
  48. App({
  49. onLaunch() {
  50. console.log("onLaunch");
  51. // LangUtils.setTabBarLang();
  52. },
  53. globalData: {
  54. userInfo: null,
  55. },
  56. })
  57. try {
  58. // 调用readdirSync()方法读取文件夹内容
  59. let files = readJsFiles(folderPath);
  60. let app = getApp();
  61. let routeUrl = {}
  62. files.forEach(m=>{
  63. // console.log('values',values,m['routeUrl']);
  64. app.globalData[Object.keys(m)[0]] =Object.assign( Object.values(m)[0],baseMethod.baseService)
  65. // 如果没有路由,就建一个路由
  66. if(!m['routeUrl']){
  67. m['routeUrl'] = {}
  68. m['routeUrl'][m.name] = {}
  69. // 加入共通路由
  70. m['routeUrl'][m.name] = Object.assign(m['routeUrl'][m.name],baseRoute.routeUrl)
  71. }else{
  72. util.objectMergeByMainJs(m['routeUrl'][m.name],baseRoute.routeUrl)
  73. }
  74. if(m.name != 'common'){
  75. routeUrl[m.name] = m['routeUrl'][m.name];
  76. }
  77. })
  78. app.globalData['routeUrl'] = routeUrl;
  79. // 输出结果
  80. console.log('文件列表:', files,baseMethod,routeUrl);
  81. // 国际化的初始化
  82. LangUtils.initLang();
  83. let langSrc = LangUtils.getLangSrc()
  84. console.log('langSrc',langSrc);
  85. app.globalData['lang'] = {...langSrc.items};
  86. } catch (error) {
  87. console.error('读取文件夹失败:', error);
  88. }