项目目录结构

│  .babelrc // babel配置文件
│  .eslintignore // eslint忽略配置文件
│  .eslintrc.js // eslint配置规则
│  .gitignore // git忽略文件配置
│  .postcssrc.js // postcss配置文件
│  babel.config.js // babel配置文件
│  commitlint.config.js  // git提交文件校验规则
│  config.json // 项目配置文件
│  manifest.json // hbuilder配置文件
│  package.json // 前端工程文件
│  README.md // 项目描述文件
│  vue.config.js // vue3初始化文件
│  
├─package // webpack打包配置文件
│  │  config.js // webpack合并配置文件
│  │  config.json // 用户自定义配置
│  ├─automation  // 自动化相关代码(该脚本无效)
│  │  ├─api
│  │  │      api.js
│  │  ├─core
│  │  │      debuggerTest.js
│  │  │      exception.js
│  │  │      interflow.js
│  │  └─utils
│  │          options.js
│  ├─config
│  │      dev.json // dev配置文件
│  │      prod.json // 正式环境配置文件
│  │      
│  ├─plugin  // webpack插件目录
│  │      bundleAnalyzer.js
│  │      postcssPx2remIncludes.js
│  │      transH5Config.js
│  │      unpackage.js
│  │      
│  ├─template  // 生成页面模板(已废弃)
│  │      favicon.ico
│  │      template.html
│  │      
│  ├─webpack // webpack入口
│  │      constants.js
│  │      util.js
│  │      webpack.config.js
│  │      webpack.dev.js
│  │      webpack.js
│  │      webpack.prod.js
│  │      webpackChain.js
│  │      
│  └─webpackMiddleware // webpack中间件配置(与vue共享)
│          alias.config.js
│          build.config.js
│          less.config.js
│          
├─plugins  // APP用到的插件文件
│  ├─error
│  │  │  systemError.html
│  │  │  
│  │  └─img
│  │          error2x.png
│  │          error3x.png
│  │          
│  ├─link
│  │      index.html
│  │      
│  ├─report
│  │  └─js
│  │          ReportUtil.js
│  │          
│  ├─survey
│  │  └─js
│  │          index.js
│  │          
│  └─tools
│          appinfo.html
│          barcode.html
│          
├─public // H5入口文件
│  │  favicon.ico
│  │  index.html
│  │  
│  └─static
│      └─ux
│          ├─animate
│          │      animate.css
│          │      
│          ├─je
│          │      je.min.css
│          │      je.min.js
│          │      
│          ├─mui
│          │  │  mui.js
│          │  │  mui.min.css
│          │  │  
│          │  └─fonts
│          │          mui.ttf
│          │          
│          ├─picker
│          │      mui.dtpicker.js
│          │      mui.picker.all.css
│          │      mui.picker.all.js
│          │      mui.picker.min.css
│          │      mui.picker.min.js
│          │      
│          ├─scale
│          │      scale.js
│          │      
│          └─waves
│                  waves.min.css
│                  waves.min.js
│                  
├─src // 项目源码
│  ├─components
│  │  │  vant.js // vant按需加载配置文件
│  │  └─header
│  │          index.vue
│  ├─constants // 常量文件
│  │      requestConstants.js
│  ├─core // je源码文件
│  │  ├─components
│  │  │  ├─actionSheet
│  │  │  │      index.vue
│  │  │  ├─imTreeUser
│  │  │  │      index.vue
│  │  │  ├─jewin
│  │  │  │      index.vue
│  │  │  │      
│  │  │  ├─treeDataNew
│  │  │  │      empty.png
│  │  │  │      index.vue
│  │  │  │      
│  │  │  ├─treeUser
│  │  │  │      index.vue
│  │  │  │      
│  │  │  ├─winCRGroup
│  │  │  │      index.vue
│  │  │  │      
│  │  │  └─winModal
│  │  │          index.vue
│  │  │          
│  │  ├─helper
│  │  │      proxy.js
│  │  │      util.js
│  │  │      
│  │  ├─indexdb
│  │  │      config.js
│  │  │      Idb.js
│  │  │      index.js
│  │  │      
│  │  └─je
│  │      │  je.js
│  │      │  je.pc.js
│  │      │  
│  │      ├─class
│  │      │  │  BaseController.js
│  │      │  │  BaseModel.js
│  │      │  │  DelayedTask.js
│  │      │  │  Element.js
│  │      │  │  Idb.js
│  │      │  │  Store.js
│  │      │  │  WebSocket.js
│  │      │  │  WebSocket_bak.js
│  │      │  │  
│  │      │  └─socket
│  │      │          Android.js
│  │      │          H5.js
│  │      │          Interface.js
│  │      │          SoketIo.js
│  │      │          
│  │      ├─css
│  │      │      je.css
│  │      │      
│  │      ├─func
│  │      │  │  func.js
│  │      │  │  pluginInstall.js
│  │      │  │  
│  │      │  ├─api
│  │      │  │      func.js
│  │      │  │      
│  │      │  ├─model
│  │      │  │      ChartModel.js
│  │      │  │      field.js
│  │      │  │      func.js
│  │      │  │      FuncModel.js
│  │      │  │      InfoModel.js
│  │      │  │      PluginModel.js
│  │      │  │      ReportModel.js
│  │      │  │      
│  │      │  └─util
│  │      │          constant.js
│  │      │          funcCache.js
│  │      │          
│  │      ├─mvc
│  │      │  │  index.js
│  │      │  │  
│  │      │  ├─base
│  │      │  │  ├─controller
│  │      │  │  │      BaseController.js
│  │      │  │  │      
│  │      │  │  └─model
│  │      │  │          BaseModel.js
│  │      │  │          
│  │      │  ├─load
│  │      │  │  ├─controller
│  │      │  │  │      LoadStatusController.js
│  │      │  │  │      
│  │      │  │  └─model
│  │      │  │          LoadStatusModel.js
│  │      │  │          
│  │      │  └─mixin
│  │      │          vue.mixins.js
│  │      │          
│  │      ├─plugin
│  │      │      XTemplate.js
│  │      │      
│  │      ├─system
│  │      │      api.js
│  │      │      assets.js
│  │      │      config.js
│  │      │      constants.js
│  │      │      des.js
│  │      │      plus.js
│  │      │      push.js
│  │      │      runtime.js
│  │      │      safetySqlUtil.js
│  │      │      sql.js
│  │      │      system.js
│  │      │      view.js
│  │      │      
│  │      └─util
│  │              ajax.js
│  │              array.js
│  │              Cache.js
│  │              CacheUser.js
│  │              date.js
│  │              pinyin.js
│  │              uploader.js
│  │              util.js
│  │              
│  ├─h5  // H5源码文件
│  │  │  App.vue
│  │  │  main.js
│  │  │  
│  │  ├─class
│  │  │  │  BaseViewCtrl.js
│  │  │  │  CheckedCtrl.js
│  │  │  │  Enum.js
│  │  │  │  MenuModel.js
│  │  │  │  Platform.js
│  │  │  │  RouterModel.js
│  │  │  │  
│  │  │  └─modules
│  │  │          App.js
│  │  │          Console.js
│  │  │          Plugin.js
│  │  │          
│  │  ├─components
│  │  │  ├─bigImage
│  │  │  │      index.vue
│  │  │  │      
│  │  │  ├─bubble
│  │  │  │      bubble.vue
│  │  │  │      
│  │  │  ├─button
│  │  │  │      index.less
│  │  │  │      index.vue
│  │  │  │      
│  │  │  ├─card
│  │  │  │      index.vue
│  │  │  │      
│  │  │  ├─card2
│  │  │  │      index.less
│  │  │  │      index.vue
│  │  │  │      
│  │  │  ├─header
│  │  │  │      index.vue
│  │  │  │      
│  │  │  ├─icon
│  │  │  │      index.less
│  │  │  │      index.vue
│  │  │  │      
│  │  │  ├─Je-off-canvas
│  │  │  │      index.vue
│  │  │  │      
│  │  │  ├─Je-scroll
│  │  │  │  │  index.vue
│  │  │  │  │  
│  │  │  │  └─bubble
│  │  │  │          bubble.vue
│  │  │  │          
│  │  │  ├─Je-tabs
│  │  │  │      index.vue
│  │  │  │      
│  │  │  ├─layout
│  │  │  │  │  init.js
│  │  │  │  │  
│  │  │  │  ├─contentWrapper
│  │  │  │  │      index.vue
│  │  │  │  │      
│  │  │  │  ├─headerWrapper
│  │  │  │  │      index.vue
│  │  │  │  │      
│  │  │  │  └─navbar
│  │  │  │          index.vue
│  │  │  │          
│  │  │  ├─list
│  │  │  │      index.less
│  │  │  │      index.vue
│  │  │  │      item.vue
│  │  │  │      
│  │  │  ├─loader
│  │  │  │      index.vue
│  │  │  │      
│  │  │  ├─menu
│  │  │  │      index.vue
│  │  │  │      
│  │  │  ├─search
│  │  │  │      index.vue
│  │  │  │      
│  │  │  ├─searchInput
│  │  │  │      index.vue
│  │  │  │      
│  │  │  ├─switch
│  │  │  │      index.less
│  │  │  │      index.scss
│  │  │  │      index.vue
│  │  │  │      
│  │  │  └─tab
│  │  │          index.vue
│  │  │          
│  │  ├─filters
│  │  │      index.js
│  │  │      
│  │  ├─helper
│  │  │  │  auth.js
│  │  │  │  constants.js
│  │  │  │  fastClick.js
│  │  │  │  httpUtil.js
│  │  │  │  index.js
│  │  │  │  util.js
│  │  │  │  validate.js
│  │  │  │  winFunc.js
│  │  │  │  
│  │  │  ├─preview
│  │  │  │      ppr.js
│  │  │  │      preview.vue
│  │  │  │      previewCtrl.js
│  │  │  │      
│  │  │  └─utils
│  │  │          bomUtils.js
│  │  │          buttonUtils.js
│  │  │          domUtils.js
│  │  │          download.js
│  │  │          loading.js
│  │  │          platformUtils.js
│  │  │          safetySqlUtil.js
│  │  │          
│  │  ├─mixins
│  │  │      routerKeepAlive.js
│  │  │      routerTransform.js
│  │  │      
│  │  ├─platform
│  │  │  │  index.js
│  │  │  │  polyfill.js
│  │  │  │  
│  │  │  ├─dingtalk
│  │  │  │      index.js
│  │  │  │      
│  │  │  ├─h5
│  │  │  │      index.js
│  │  │  │      
│  │  │  ├─lark
│  │  │  │      index.js
│  │  │  │      
│  │  │  ├─qy-wechat
│  │  │  │      index.js
│  │  │  │      
│  │  │  └─wechat
│  │  │          index.js
│  │  │          
│  │  ├─plugins
│  │  │  └─test
│  │  │          App.vue
│  │  │          index.js
│  │  │          
│  │  ├─polyfill
│  │  │      index.js
│  │  │      iosPolyfill.js
│  │  │      jePolyfill.js
│  │  │      muiPolyfill.js
│  │  │      otherPolyfill.js
│  │  │      publicPolyfill.js
│  │  │      safetyMixins.js
│  │  │      systemPolyfill.js
│  │  │      
│  │  ├─router
│  │  │      History.js
│  │  │      mixin.js
│  │  │      router-filter.js
│  │  │      router-utils.js
│  │  │      router.js
│  │  │      
│  │  ├─store
│  │  │      getters.js
│  │  │      index.js
│  │  │      
│  │  ├─style
│  │  │  │  changeStyle.less
│  │  │  │  common.less
│  │  │  │  index.less
│  │  │  │  layout.less
│  │  │  │  reset.less
│  │  │  │  text.less
│  │  │  │  transition.less
│  │  │  │  variable.less
│  │  │  │  
│  │  │  └─mixins
│  │  │          hairline-mixins.less
│  │  │          icons.less
│  │  │          index.less
│  │  │          
│  │  └─views
│  │      ├─auth
│  │      │  │  index.vue
│  │      │  │  router.js
│  │      │  │  
│  │      │  └─actions
│  │      │          auth.js
│  │      │          
│  │      ├─chart
│  │      │      index.js
│  │      │      router.js
│  │      │      
│  │      ├─func
│  │      │      router.js
│  │      │      
│  │      ├─home
│  │      │  │  index.vue
│  │      │  │  router.js
│  │      │  │  store.js
│  │      │  │  
│  │      │  ├─actions
│  │      │  │      index.js
│  │      │  │      
│  │      │  ├─components
│  │      │  │  └─menu
│  │      │  │      │  index.vue
│  │      │  │      │  
│  │      │  │      ├─assets
│  │      │  │      │  └─images
│  │      │  │      │          apk.png
│  │      │  │      │          app.png
│  │      │  │      │          folder.png
│  │      │  │      │          footbar.jpg
│  │      │  │      │          new.png
│  │      │  │      │          search-default.png
│  │      │  │      │          search-no-result.png
│  │      │  │      │          
│  │      │  │      └─components
│  │      │  │          │  app.vue
│  │      │  │          │  gridmenu.vue
│  │      │  │          │  listmenu.vue
│  │      │  │          │  slideshow.vue
│  │      │  │          │  
│  │      │  │          └─search-list
│  │      │  │                  index.vue
│  │      │  │                  
│  │      │  ├─pages
│  │      │  │  ├─allFeature
│  │      │  │  │      index.vue
│  │      │  │  │      
│  │      │  │  ├─home
│  │      │  │  │      index.vue
│  │      │  │  │      
│  │      │  │  └─searchPage
│  │      │  │          index.vue
│  │      │  │          
│  │      │  └─util
│  │      │          menuFun.js
│  │      │          
│  │      ├─inlet
│  │      │  │  index.vue
│  │      │  │  router.js
│  │      │  │  
│  │      │  ├─actions
│  │      │  │      api.js
│  │      │  │      
│  │      │  └─assets
│  │      │          app.png
│  │      │          
│  │      ├─login
│  │      │  │  index.vue
│  │      │  │  router.js
│  │      │  │  
│  │      │  ├─actions
│  │      │  │      api.js
│  │      │  │      login.js
│  │      │  │      
│  │      │  ├─assets
│  │      │  │      1.png
│  │      │  │      2-disable.png
│  │      │  │      2.png
│  │      │  │      3-disable.png
│  │      │  │      3.png
│  │      │  │      CombinedShape-2.png
│  │      │  │      error.png
│  │      │  │      JE-Check-the-01.png
│  │      │  │      JE-Check-the.png
│  │      │  │      JE-circle-01.png
│  │      │  │      JE-circle_check.png
│  │      │  │      JE-circle_uncheck.png
│  │      │  │      login.png
│  │      │  │      loginbg.png
│  │      │  │      logo.png
│  │      │  │      register-bg.png
│  │      │  │      success.png
│  │      │  │      
│  │      │  ├─components
│  │      │  │  ├─modal-message
│  │      │  │  │      index.vue
│  │      │  │  │      
│  │      │  │  └─selcompanyList
│  │      │  │          index.vue
│  │      │  │          
│  │      │  ├─pages
│  │      │  │  ├─companyList
│  │      │  │  │      config.json
│  │      │  │  │      index.js
│  │      │  │  │      index.vue
│  │      │  │  │      
│  │      │  │  ├─firstLogin
│  │      │  │  │      config.json
│  │      │  │  │      index.js
│  │      │  │  │      index.vue
│  │      │  │  │      
│  │      │  │  ├─firstLoginSetPwd
│  │      │  │  │      config.json
│  │      │  │  │      index.js
│  │      │  │  │      index.vue
│  │      │  │  │      
│  │      │  │  ├─forgetPwd
│  │      │  │  │      config.json
│  │      │  │  │      index.js
│  │      │  │  │      index.vue
│  │      │  │  │      
│  │      │  │  ├─login
│  │      │  │  │      index.vue
│  │      │  │  │      
│  │      │  │  ├─register_1
│  │      │  │  │      config.json
│  │      │  │  │      index.js
│  │      │  │  │      index.vue
│  │      │  │  │      
│  │      │  │  ├─register_2
│  │      │  │  │      config.json
│  │      │  │  │      index.js
│  │      │  │  │      index.vue
│  │      │  │  │      
│  │      │  │  ├─register_3
│  │      │  │  │      config.json
│  │      │  │  │      index.js
│  │      │  │  │      index.vue
│  │      │  │  │      
│  │      │  │  ├─setNewPwd
│  │      │  │  │      config.json
│  │      │  │  │      index.js
│  │      │  │  │      index.vue
│  │      │  │  │      
│  │      │  │  └─thirdPartyLogin
│  │      │  │          config.json
│  │      │  │          index.js
│  │      │  │          index.vue
│  │      │  │          
│  │      │  └─util
│  │      │          getLoginPlugin.js
│  │      │          loginSuccess.js
│  │      │          oauthLogin.js
│  │      │          
│  │      ├─pages
│  │      │  ├─my
│  │      │  │  │  index.vue
│  │      │  │  │  
│  │      │  │  ├─actions
│  │      │  │  │      api.js
│  │      │  │  │      my.js
│  │      │  │  │      
│  │      │  │  ├─assets
│  │      │  │  │      avatar.jpg
│  │      │  │  │      bg.png
│  │      │  │  │      bingbing-binding.png
│  │      │  │  │      close.png
│  │      │  │  │      dingding-binded.png
│  │      │  │  │      dingding.png
│  │      │  │  │      open.png
│  │      │  │  │      qq-binding.png
│  │      │  │  │      qq-binged.png
│  │      │  │  │      qq.png
│  │      │  │  │      weixin-binded.png
│  │      │  │  │      weixin-binding.png
│  │      │  │  │      weixin.png
│  │      │  │  │      
│  │      │  │  └─pages
│  │      │  │      └─modifyPsd
│  │      │  │              config.json
│  │      │  │              index.js
│  │      │  │              
│  │      │  └─workflow
│  │      │      │  index.vue
│  │      │      │  router.js
│  │      │      │  
│  │      │      ├─components
│  │      │      │      item.vue
│  │      │      │      list.vue
│  │      │      │      
│  │      │      └─pages
│  │      │          └─workStart
│  │      │              │  index.vue
│  │      │              │  
│  │      │              └─actions
│  │      │                      action.js
│  │      │                      
│  │      ├─plugin
│  │      │      index.vue
│  │      │      router.js
│  │      │      
│  │      ├─report
│  │      │      index.js
│  │      │      router.js
│  │      │      
│  │      └─test
│  │              HelloWorld.vue
│  │              index.vue
│  │              
│  ├─helper
│  │      index.js
│  │      plus.js
│  │      util.js
│  │      
│  ├─page
│  │  ├─chart
│  │  │  │  config.json
│  │  │  │  index.js
│  │  │  │  index.vue
│  │  │  │  
│  │  │  ├─asset
│  │  │  │  ├─css
│  │  │  │  │      chart.css
│  │  │  │  │      
│  │  │  │  └─js
│  │  │  │          EChartUtil.js
│  │  │  │          
│  │  │  ├─controller
│  │  │  │      ChartController.js
│  │  │  │      FunChartController.js
│  │  │  │      ItemChertController.js
│  │  │  │      
│  │  │  ├─model
│  │  │  │      ChartModel.js
│  │  │  │      HumpModel.js
│  │  │  │      myCharts.js
│  │  │  │      
│  │  │  ├─router
│  │  │  │      index.js
│  │  │  │      
│  │  │  └─view
│  │  │      └─home
│  │  │              index.vue
│  │  │              
│  │  ├─config
│  │  │      config.json
│  │  │      index.js
│  │  │      index.vue
│  │  │      setting.js
│  │  │      
│  │  ├─func
│  │  │  │  App.vue
│  │  │  │  config.json
│  │  │  │  func.vue
│  │  │  │  index.js
│  │  │  │  router.js
│  │  │  │  
│  │  │  ├─api
│  │  │  │      func.js
│  │  │  │      
│  │  │  ├─controller
│  │  │  │  │  BaseController.js
│  │  │  │  │  FuncStore.js
│  │  │  │  │  
│  │  │  │  ├─fieldHistory
│  │  │  │  │      FieldHistoryController.js
│  │  │  │  │      
│  │  │  │  ├─form
│  │  │  │  │      Field.js
│  │  │  │  │      Form.js
│  │  │  │  │      Search.js
│  │  │  │  │      WorkflowForm.js
│  │  │  │  │      
│  │  │  │  ├─info
│  │  │  │  │      Button.js
│  │  │  │  │      Info.js
│  │  │  │  │      
│  │  │  │  ├─list
│  │  │  │  │      BasicList.js
│  │  │  │  │      List.js
│  │  │  │  │      
│  │  │  │  └─workflow
│  │  │  │          Workflow.js
│  │  │  │          WorkflowAuditPanel.js
│  │  │  │          WorkflowUser.js
│  │  │  │          
│  │  │  ├─model
│  │  │  │  └─fieldHistory
│  │  │  │          fieldHistory.js
│  │  │  │          HistoryItemModel.js
│  │  │  │          
│  │  │  ├─polyfill
│  │  │  │      index.js
│  │  │  │      
│  │  │  ├─util
│  │  │  │      cache.js
│  │  │  │      constant.js
│  │  │  │      expression.js
│  │  │  │      funcCache.js
│  │  │  │      perm.js
│  │  │  │      polyfill.js
│  │  │  │      WorkflowUtil.js
│  │  │  │      
│  │  │  └─viewModel
│  │  │      ├─components
│  │  │      │  ├─childPopup
│  │  │      │  │      index.vue
│  │  │      │  │      
│  │  │      │  ├─footerButton
│  │  │      │  │      index.vue
│  │  │      │  │      
│  │  │      │  └─JeFloatButton
│  │  │      │          index.vue
│  │  │      │          
│  │  │      ├─fieldHistory
│  │  │      │      index.vue
│  │  │      │      
│  │  │      ├─form
│  │  │      │  │  field.vue
│  │  │      │  │  index.vue
│  │  │      │  │  
│  │  │      │  ├─basic
│  │  │      │  │      buttons.vue
│  │  │      │  │      cascade.vue
│  │  │      │  │      childfunc-goup.vue
│  │  │      │  │      crGroup.vue
│  │  │      │  │      field.vue
│  │  │      │  │      
│  │  │      │  └─uploader
│  │  │      │          index.vue
│  │  │      │          input.vue
│  │  │      │          uploader.js
│  │  │      │          
│  │  │      ├─formDetail
│  │  │      │      childFuncGroup.vue
│  │  │      │      index.vue
│  │  │      │      
│  │  │      ├─list
│  │  │      │  │  index.vue
│  │  │      │  │  
│  │  │      │  └─components
│  │  │      │          basicList.vue
│  │  │      │          list.vue
│  │  │      │          
│  │  │      ├─mixins
│  │  │      │      index.js
│  │  │      │      userTreeMixins.js
│  │  │      │      
│  │  │      ├─search
│  │  │      │      index.vue
│  │  │      │      searchCard.vue
│  │  │      │      
│  │  │      ├─style
│  │  │      │      common.less
│  │  │      │      
│  │  │      └─workflow
│  │  │          │  index.vue
│  │  │          │  
│  │  │          ├─workflowAuditPanel
│  │  │          │  │  custerSignPanel.vue
│  │  │          │  │  defaultPanel.vue
│  │  │          │  │  forkPanel.vue
│  │  │          │  │  user.vue
│  │  │          │  │  
│  │  │          │  └─template
│  │  │          │          index.vue
│  │  │          │          prompt.vue
│  │  │          │          userSelecter.vue
│  │  │          │          
│  │  │          └─workflowPanel
│  │  │              └─components
│  │  │                      formView.vue
│  │  │                      imgView.vue
│  │  │                      processView.vue
│  │  │                      
│  │  ├─main
│  │  │  │  config.json
│  │  │  │  index.js
│  │  │  │  
│  │  │  ├─css
│  │  │  │      start.css
│  │  │  │      
│  │  │  ├─helper
│  │  │  │      constant.js
│  │  │  │      
│  │  │  └─js
│  │  │          App.js
│  │  │          config.js
│  │  │          Home.js
│  │  │          Start.js
│  │  │          Util.js
│  │  │          
│  │  ├─menu
│  │  │  │  config.json
│  │  │  │  index.js
│  │  │  │  index.vue
│  │  │  │  
│  │  │  ├─assets
│  │  │  │  └─images
│  │  │  │          apk.png
│  │  │  │          app.png
│  │  │  │          folder.png
│  │  │  │          footbar.jpg
│  │  │  │          new.png
│  │  │  │          search-default.png
│  │  │  │          search-no-result.png
│  │  │  │          
│  │  │  ├─components
│  │  │  │  │  app.vue
│  │  │  │  │  gridmenu.vue
│  │  │  │  │  listmenu.vue
│  │  │  │  │  slideshow.vue
│  │  │  │  │  
│  │  │  │  └─search-list
│  │  │  │          index.vue
│  │  │  │          
│  │  │  └─pages
│  │  │      ├─allFeature
│  │  │      │      config.json
│  │  │      │      index.js
│  │  │      │      index.less
│  │  │      │      index.vue
│  │  │      │      
│  │  │      └─searchPage
│  │  │              config.json
│  │  │              index.js
│  │  │              index.vue
│  │  │              
│  │  ├─password
│  │  │      config.json
│  │  │      index.js
│  │  │      
│  │  ├─register_login
│  │  │      config.json
│  │  │      index.js
│  │  │      index.vue
│  │  │      validate.js
│  │  │      
│  │  ├─report
│  │  │  │  config.json
│  │  │  │  index.js
│  │  │  │  index.vue
│  │  │  │  
│  │  │  ├─controller
│  │  │  │      ReportController.js
│  │  │  │      
│  │  │  ├─model
│  │  │  │      dataModel.js
│  │  │  │      index.js
│  │  │  │      ReportBeanModel.js
│  │  │  │      ReportModel.js
│  │  │  │      ReportTd.js
│  │  │  │      ReportTs.js
│  │  │  │      
│  │  │  ├─router
│  │  │  │      index.js
│  │  │  │      
│  │  │  ├─util
│  │  │  │      Formula.js
│  │  │  │      ReportUtil.js
│  │  │  │      
│  │  │  └─view
│  │  │      └─main
│  │  │              index.vue
│  │  │              
│  │  ├─server
│  │  │  │  config.json
│  │  │  │  index.js
│  │  │  │  
│  │  │  └─js
│  │  │          getui-plugin.js
│  │  │          Server.js
│  │  │          
│  │  ├─setNewpas
│  │  │      config.json
│  │  │      index.js
│  │  │      index.vue
│  │  │      
│  │  └─skeleton
│  │          config.json
│  │          index.js
│  │          index.vue
│  │          
│  └─plugins
│      └─search
│          ├─controller
│          │      SearchController.js
│          │      SearchItemController.js
│          │      
│          └─model
│                  SearchItemModel.js
│                  
└─static
    ├─audio
    │      btnclick.wav
    │      error.wav
    │      funcclick.mp3
    │      im_message.mp3
    │      install.wav
    │      
    ├─js
    │      include.js
    │      
    └─ux
        ├─animate
        │      animate.css
        │      
        ├─assets
        │  └─fonts
        │          element-icons.535877f.woff
        │          element-icons.732389d.ttf
        │          
        ├─autosize
        │      autosize.min.js
        │      
        ├─echart
        │  │  echarts.min.js
        │  │  
        │  └─theme
        │          dark.js
        │          infographic.js
        │          macarons.js
        │          shine.js
        │          vintage.js
        │          
        ├─element
        │  │  index.css
        │  │  index.js
        │  │  
        │  └─fonts
        │          element-icons.ttf
        │          element-icons.woff
        │          
        ├─enterfocus
        │      mui.enterfocus.js
        │      
        ├─ext
        │      ext-debug.js
        │      
        ├─flexible
        │      css_reset.css
        │      flexible.js
        │      
        ├─indexedlist
        │      mui.indexedlist.css
        │      mui.indexedlist.js
        │      
        ├─inject
        │      injectPluginScript.js
        │      injectPluginStyle.css
        │      
        ├─jquery
        │      jquery-3.3.1.min.js
        │      
        ├─mapMarkers
        │      markerClusterer.js
        │      textIconOverlay.js
        │      
        ├─mui
        │  │  mui.js
        │  │  mui.min.css
        │  │  mui.min.js
        │  │  
        │  └─fonts
        │          mui.ttf
        │          
        ├─picker
        │      mui.dtpicker.js
        │      mui.picker.all.css
        │      mui.picker.all.js
        │      mui.picker.min.css
        │      mui.picker.min.js
        │      
        ├─previewimage
        │      mui.previewimage.css
        │      mui.previewimage.js
        │      mui.zoom.js
        │      
        ├─pulltorefresh
        │      mui.pullToRefresh.js
        │      mui.pullToRefresh.material.js
        │      
        ├─report
        │      je-ueditor.css
        │      
        ├─scale
        │      scale.js
        │      
        ├─socket-io
        │      socket.io.js
        │      socket.io.js.map
        │      
        ├─sortable
        │      Sortable.min.js
        │      
        ├─vue
        │      vue.js
        │      vue.min.js
        │      vueRouter.js
        │      vuex.js
        │      
        └─waves
                waves.min.css
                waves.min.js

项目运行脚本解析

  • build:app:
    (build:app-src与build:core-je的合并命令)打包APP所需要的依赖,该命令如运行正常,会在项目目录下生成view文件夹(APP所用到的静态资源页面)、根目录static\ux\je、public\static\ux\je两个目录下生成je.min.js与je.min.css文件、(JE源码文件)

  • dev:app:
    (dev:app-dev:core-je的合并命令)调试模式,与build:app命令相同,但不会对代码进行压缩,可用于调试,webpack检测到代码有变更后会热更新代码。

  • dev:app-src:
    调试打包APP所需代码的脚本命令,执行会从src目录构建项目,生成view文件夹,不会对代码进行压缩,可用于调试,webpack检测到代码有变更后会热更新代码。

  • build:app-src:
    打包APP所需代码的脚本命令,执行会从src目录构建项目,对依赖文件进行压缩,生成view文件夹

  • dev:core-je:
    生成可调试的JE源码文件,不会对代码进行压缩,可用于调试,webpack检测到代码有变更后会热更新代码。

  • build:core-je:打包JE源文件
    打包JE代码,并对JE代码进行压缩

  • dev:h5:运行H5项目代码
    通过vue-cli3启动H5项目,会在本地启动express代码,读取的入口为vue.config.js,相关文档请参考vue-cli

  • build:h5:打包H5代码
    通过vue-cli3打包H5项目,读取的入口为vue.config.js,相关文档请参考vue-cli

  • doc: 生成js-doc文档

  • commit: commit提交校验规范

  • changelog: 生成changeLog文件

JEAPP源码打包教程

1. 搭建项目源代码环境

依赖安装

  • 1、安装node环境及npm包管理工具;

  • 2、打开文件终端执行 => npm run install;

    注:因为npm(包资源管理器)在国外站点,国内访问时可能会存在依赖下载不全的问题,如果报错但是没有明显的项目信息时,删除项目目录下的node_modules文件夹,重新install。
    我们推荐使用npm在国内的镜像来进行依赖更新:cnpm地址

2. APP源码编译

  1. 项目根目录config.json文件修改如果没有这个文件需要自己手动创建

    {
    "APPID": "XXXX-XXXX-XXXX-XXXX",   // APPID APP的16位ID值
    "APPNAME": "NAME",   //app名称
    "PACKAGE": "com.je.appxxxxxxxxxxxx",   //app包名 用APPID去点【-】后的12位数字
    "SERVER_PATH": "https://XXXXX.com",   //平台服务地址
    }
  2. 初始化app代码
    编译发布代码 => npm run build:app
    编译成功后会在项目目录中生成view文件夹

3. hubilder安装包打包

  1. 修改与APP相关的配置项

    1. manifest.json文件修改
    1. manifest.json其余配置内容
      manifest文件为第三方(dcloud)提供的规范,如果在后续开发或打包过程中需要自定义修改,可以参考manifest进行个性化的配置
  2. 云端打包

    1. 打开hbuilder编辑器

    2. 点击发行–>原生app云打包

    3. 填写打包信息

      • 安卓信息填写

      • IOS信息填写

如在hbuilder安装包打包、调试过程中碰到问题,请查询文档巨详细

最后编辑: 呼丽华  文档更新时间: 2024-07-05 09:35   作者:呼丽华