# node版本 目前`16.14.0`版的也支持(用`dart-sass`替换`node-sass`后,不再有`12.22.6 32`的限制) # 部署说明 ## 部署时切勿删除服务器上的config.js 打包时会忽略config.js,避免被替换 ## OTA测试环境自动部署 在`git-bash`里运行下面命令来自动部署到OTA测试环境: ```bash npm run deploy:dev ``` 需要先安装7z命令(`npm install -g 7zip`) # 项目配置 ## 模板配置修改(基于vue init webpack) ### /.eslintrc.js ``` javascript 'plugin:vue/strongly-recommended' // 使用vue官方推荐规则 ``` ### vscode 自动格式化配置 ``` javascript "eslint.autoFixOnSave": true, "eslint.validate": [ "javascript", "javascriptreact", "html", { "language": "vue", "autoFix": true } ], "eslint.options": { "plugins": [ "vue" ] }, ``` ### /config/index.js ``` javascript build: { ... assetsPublicPath: './', // 打包基于相对路径 ... productionSourceMap: true, // 关闭sourcemap } ``` ### /config/ 各环境下对应api接口地址 运行指令见`package.json` # 文档相关 ## 接口文档 http://192.168.30.150:9988/swagger-ui.html#!/%E7%A5%A8%E7%A7%8D%E8%AE%BE%E7%BD%AE/addTicketTypeUsingPOST ## 设计稿 https://lanhuapp.com/web/#/item/board?pid=331d4cea-01ed-4686-8973-b33400aff846 ## 产品文档 https://mubu.com/doc/pi4jtipPVp `{"userName":"admin", "password":"123456"}` ## 服务器 192.168.30.150 clear:123456 ## 前端代码: /home/clear/frontend 访问: http://piaodevjava.cleartv.cn/frontend/ xxx ## 后端接口访问地址: http://piaodevjava.cleartv.cn/swagger-ui.html # 本项目相关问题及注意事项、经验总结 ## router-view 在 router-view上加上一个唯一的key,来保证路由切换时都会重新渲染触发钩子 ``` html ``` ``` javascript computed: { key() { return this.$route.name !== undefined? this.$route.name + +new Date(): this.$route + +new Date() } } ``` ## 自定义事件传递多个参数 如 $emit('custom',arg1,arg2) 则 @custom="func(arguments)" 使用参数 ``` javascript func (args) { let [arg1,arg2]=...args console.log(arg1,arg2) } ``` ## 表格验证 http://www.cnblogs.com/Kummy/p/9470393.html ## 导航显示权限控制 `/src/router/index.js` ### 动态路由部分详见 ``` javascript let routerMap = [ { path: '/ticketSale', component: Layout, name: '售票管理', meta: {title: '售票管理', icon: 'ticketSale'}, // 图标格式为svg,存放目录 `/src/icons/svg`。文件名与`icon`属性相对应 redirect: 'noredirect', alwaysShow: true, // 为显示美观,必须添加 children: [ { path: 'retail', name: 'Retail', component: () => import('@/views/sellManage/retail'), // 页面按模块加载 meta: {title: '散客售票', permissionName: 'ticket_sale'} // permissionName对应后台的权限列表 } ] } ] ``` ### 子页面 各权限显示控制 1. 子页面权限会在 `src/store/modules/permission.js` 的 `filterAsyncRouter` 方法中对比后台的权限列表进行筛选。 2. 最终结果就是:子路由的 `meta对象` 会新增一个属性 `permissionList` 。子页面权限控制就是根据这个属性进行的判断。 3. `src/main.js` 中混入了全局方法 `checkPermission(type)`。`type`为具体的权限类型。 例如后台获取的权限列表为 ``` json [ "ticket_setting:list", "ticket_setting:add", "ticket_setting:edit", "ticket_setting:delete", "ticket_sale:all" ] ``` 4. 票种设置页会 **自动生成** 对应 `permissionList` : `['add','edit','delete','list']` 售票页面 对应 `permissionList` : `['all']` 页面权限相关的元素,设置显示或者隐藏: **列表显示** ``` html ``` **编辑按钮显示** ``` html ``` # G2 图表 https://viserjs.github.io/docs.html#/viser/guide/usage https://antv.alipay.com/zh-cn/g2/3.x/tutorial/index.html # Echarts http://www.echartsjs.com/index.html https://github.com/ecomfe/vue-echarts # 百度图说 http://tushuo.baidu.com/