初始化
npm install vue-cli -g
vue init webpack pos
cd pos
npm run dev
如果能打开链接则成功
| -- build // 项目构建(webpack)相关代码
| |-- build.js // 生产环境构建代码
| |-- check-version.js // 检查node、npm等版本
| |-- dev-client.js // 热重载相关
| |-- dev-server.js // 构建本地服务器
| |-- utils.js // 构建工具相关
| |-- webpack.base.conf.js // webpack基础配置
| |-- webpack.dev.conf.js // webpack开发环境配置
| |-- webpack.prod.conf.js // webpack生产环境配置
|-- config // 项目开发环境配置
| |-- dev.env.js // 开发环境变量
| |-- index.js // 项目一些配置变量
| |-- prod.env.js // 生产环境变量
| |-- test.env.js // 测试环境变量
|-- src // 源码目录
| |-- components // vue公共组件
| |-- store // vuex的状态管理
| |-- App.vue // 页面入口文件
| |-- main.js // 程序入口文件,加载各种公共组件
|-- static // 静态文件,比如一些图片,json数据等
| |-- data // 群聊分析得到的数据用于数据可视化
|-- .babelrc // ES6语法编译配置
|-- .editorconfig // 定义代码格式
|-- .gitignore // git上传需要忽略的文件格式
|-- README.md // 项目说明
|-- favicon.ico
|-- index.html // 入口页面
|-- package.json // 项目基本信息
项目结构
参考很清楚
做页面
按照流程走
修改components后,会报错(You may use special comments to disable some warnings)
解决方法:
在config/index.js文件中第26行中的useEslint的值改为false,然后重新启动程序
第5节:开启Element封印
项目中是:import ‘element-ui/lib/theme-fault/index.css’
改成:import ‘element-ui/lib/theme-chalk/index.css’
(因为element更新了,可以去node mudule里面找一下)
- 在Pos.vue里添加模版布局
解决100%高的问题: 在页面中使用了Element组件,这样他会自动给我们生产虚拟DOM,我们无法设置高度100%;
这时候可以利用javascript,来设置100%高度问题。先要给我们的标签上添加一个id,我们这里把ID设置为order-list
。然后在vue构造器里使用mounte
d钩子函数来设置高度。用DOM操作
第9节:订单模块制作 核心功能-1添加
<template slot-scope="scope">
<el-button type="text" size="big" @click='add(scope.row)'>+1</el-button>
这里是作用域插槽与element联合使用方法,获取当前模板的数据
- 自己加了输入框 获取数据然后失去焦点 然后再算total
- 获取输入框数据 首先是 plot-scope,获取数据后,scope.row 然后是v-model
- 输入框数字复制给tableData的时候,可以复制过去,但是总是算得是字符串,所以用了parseInt方法
- 调试过程中,打断点,控制台输出,查看结果
第10节:订单模块制作 核心功能-2 删除
- 自己增加了一个删除此条的业务逻辑
- 逻辑:当前数目为1,再减少就直接删除此条,调用del
- 删除后,但总价总数目不变,,考虑是,后续的计算total保存的仍然是没改变的count值,所以重新设置为0
- 删除所有的商品,可以使用splice,或者直接赋值空对象
计算结果
- 自己使用了计算属性,
computed: {
totalCount1 () {
return this.tableData.reduce((pre, cur) => {
return pre + cur.count
}, 0)
- 或者直接使用element的
show-summary
,可以使用forEach或者reduce