一、收入支出Types组件

使用JS做切换组件




vue treeselect显示完全路径_vue2.0 class声明组件


vue treeselect显示完全路径_vue2.0 class声明组件_02


改用TS,TypeScript 好处:

  1. 类型提示:更智能的提示
  2. 编译时报错:还没运行代码就知道自己写错了(无法编译成JS)
  3. 类型检查:无法点出错误的属性

必须使用class,可以在class里直接写data、methods、props等


vue treeselect显示完全路径_vue el-tree 默认选中_03

vue-property-decoratorgithub.com

声明props


vue treeselect显示完全路径_vue el-tree 默认选中_04


vue treeselect显示完全路径_vue2.0 class声明组件_05


vue treeselect显示完全路径_vue获取当前选中行的数据_06


vue treeselect显示完全路径_vue ts 设置tslint提示_07


TS的本质:就是JS:类型(在JS后面添加一个冒号添加相应类型),这个类型就是用来检查JS代码的,检查有两种情况,一种是有错就会报编译错误,如果没有任何错误就会把编译的类型删掉变成只含有JS的那一部分


vue treeselect显示完全路径_vue el-tree 默认选中_08


写 Vue 组件的三种方式(单文件组件)

1、用 JS 对象


export default { data, props, methods, created, ...}


2、用 TS 类 <script lang="ts">


@Component
 export default class XXX extends Vue{
     xxx: string = 'hi';
     @Prop(Number) xxx: number|undefined;
 }


3、用 JS 类 <script lang="js">


@Component
 export default class XXX extends Vue{
     xxx = 'hi'
 }


二、numberPad 模块

添加click事件


vue treeselect显示完全路径_vue获取当前选中行的数据_09


设置未输入时默认显示0


output


限制最长输入长度,当默认显示0的时候再次输入0要替换,发现可通过输入0-9数字都实现换的办法;不是开始显示0就实现字符串叠加this.output+=input;默认显示点.的时候要保证不能再次输入.


vue treeselect显示完全路径_vue2.0 class声明组件_10


删除、清除、确认功能


vue treeselect显示完全路径_vue ts 设置tslint提示_11


三、备注Notes组件


vue treeselect显示完全路径_vue2.0 class声明组件_12


v-model:如果先绑定了一个value="x"然后绑定事件的时候@input=“x=$event.target.value”将x赋值,那么这个就可以简写成v-model="x"


vue treeselect显示完全路径_vue 获取数组长度_13


vue treeselect显示完全路径_vue 获取数组长度_14


四、标签Tas组件

原始标签(字符串形式的数组)由外部数据传入


vue treeselect显示完全路径_vue获取当前选中行的数据_15


vue treeselect显示完全路径_vue el-tree 默认选中_16


vue treeselect显示完全路径_vue ts 设置tslint提示_17


选中标签

@click ="select(tag)"点击哪个就选中哪个,并将选中的push到selectedTas里去


select


vue treeselect显示完全路径_vue2.0 class声明组件_18


selectedTags改变li的class如果是选中的类型class就是selected

:class="{selected:true}"如果true则都是selected,那么就可以判断如果selectedTags里包含当前的tag就是selected

给选中添加样式


vue treeselect显示完全路径_vue 获取数组长度_19


取消选择状态 select可改成toggle开关


vue treeselect显示完全路径_vue2.0 class声明组件_20


新增标签


vue treeselect显示完全路径_vue ts 设置tslint提示_21


vue treeselect显示完全路径_vue ts 设置tslint提示_22


如果填写name且值不为空,会触发updata:dataSource事件会把传的这个数组通过.sync修饰符赋值给之前的dataSource


vue treeselect显示完全路径_vue ts 设置tslint提示_23


五、保存至 LocalStorage

1、获取用户输入的tags


vue treeselect显示完全路径_vue获取当前选中行的数据_24


vue treeselect显示完全路径_vue2.0 class声明组件_25


触发事件并传数据


vue treeselect显示完全路径_vue el-tree 默认选中_26


点击或者取消即可获取数据


vue treeselect显示完全路径_vue el-tree 默认选中_27


2、获取其他数据


vue treeselect显示完全路径_vue2.0 class声明组件_28


vue treeselect显示完全路径_vue获取当前选中行的数据_29


Notes.vue


vue treeselect显示完全路径_vue2.0 class声明组件_30


Types.vue


vue treeselect显示完全路径_vue ts 设置tslint提示_31


NumberPad.vue


vue treeselect显示完全路径_vue ts 设置tslint提示_32


记录这些数据


vue treeselect显示完全路径_vue2.0 class声明组件_33


vue treeselect显示完全路径_vue获取当前选中行的数据_34


效果见:


vue treeselect显示完全路径_vue ts 设置tslint提示_35


设置默认值是外部提供的,因此需要将默认值传递给各个组件


vue treeselect显示完全路径_vue el-tree 默认选中_36


因为外部数据是外部传递的因此无需声明taype 也 无需watch


vue treeselect显示完全路径_vue 获取数组长度_37


vue treeselect显示完全路径_vue获取当前选中行的数据_38


一旦出现:value和@update:value就可以省略


vue treeselect显示完全路径_vue ts 设置tslint提示_39


vue treeselect显示完全路径_vue2.0 class声明组件_40


vue treeselect显示完全路径_vue2.0 class声明组件_41


同理NumberPad组件也可以


vue treeselect显示完全路径_vue ts 设置tslint提示_42


vue treeselect显示完全路径_vue2.0 class声明组件_43


3、将数据存入LocalStorage


vue treeselect显示完全路径_vue获取当前选中行的数据_44


vue treeselect显示完全路径_vue 获取数组长度_45


注意此处push的是一个引用(地址)当其引用的值发生改变时,地址没有变化因此之前push的值也会变成最新的值


vue treeselect显示完全路径_vue2.0 class声明组件_46


于是在push之前进行一下深拷贝,每次将副本record2 push进去


vue treeselect显示完全路径_vue 获取数组长度_47


vue treeselect显示完全路径_vue 获取数组长度_48


当点击OK时数值应该清空


vue treeselect显示完全路径_vue ts 设置tslint提示_49


刷新后localStorage不能清空


vue treeselect显示完全路径_vue ts 设置tslint提示_50


添加保存时间


vue treeselect显示完全路径_vue获取当前选中行的数据_51


vue treeselect显示完全路径_vue 获取数组长度_52


当数据库有变化如果一开始没有添加时间,需要进行数据迁移,因此需要添加数据库版本


vue treeselect显示完全路径_vue2.0 class声明组件_53