项目目录结构
│ .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-clibuild:h5:打包H5代码
通过vue-cli3打包H5项目,读取的入口为vue.config.js,相关文档请参考vue-clidoc: 生成js-doc文档
commit: commit提交校验规范
changelog: 生成changeLog文件
JEAPP源码打包教程
1. 搭建项目源代码环境
依赖安装
1、安装node环境及npm包管理工具;
2、打开文件终端执行 => npm run install;
注:因为npm(包资源管理器)在国外站点,国内访问时可能会存在依赖下载不全的问题,如果报错但是没有明显的项目信息时,删除项目目录下的node_modules文件夹,重新install。
我们推荐使用npm在国内的镜像来进行依赖更新:cnpm地址
2. APP源码编译
项目根目录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", //平台服务地址 }
初始化app代码
编译发布代码 => npm run build:app
编译成功后会在项目目录中生成view文件夹
3. hubilder安装包打包
修改与APP相关的配置项
- manifest.json文件修改
基本配置修改
图标配置
启动图配置(按照如下配置)
SDk配置
这个功能填写的信息属于第三方SDK,需在这些SDK的官网申请 key等信息填回到此处;
地图配置指南
授权登录配置指南
支付插件配置指南
消息推送配置指南
分享配置指南
- manifest.json其余配置内容
manifest文件为第三方(dcloud)提供的规范,如果在后续开发或打包过程中需要自定义修改,可以参考manifest进行个性化的配置
云端打包
打开hbuilder编辑器
点击发行–>原生app云打包
填写打包信息
安卓信息填写
IOS信息填写
如在hbuilder安装包打包、调试过程中碰到问题,请查询文档巨详细