背景
起初对小程序就有点兴趣, 本人并不是一枚正宗的在职程序员, 喜欢写程序大部分都是源于兴趣,当然能转行成为正统的程序员也是最好不过了.嗯哼,下面进入正题:
因为工作需要,对于铜线的线径变化率一直需要在电脑上计算, 每次都要记录数值,然后回到电脑面前打开excel,输入数值,点击计算(擦嘞,累不累?),起初用过MIT App Inventor写过一个安卓app,但是后来因为有些小变动,去改逻辑代码的时候,发现巨麻烦,而且花花绿绿的看来很难受(有木有), 重点是老板手机是苹果的,我又不想再去写一个IOS的专门只为给老板瞅一眼(其实是不会写IOS :( ), 中间还有想过专门基于Flask写一个简单的后端,提供API,前端写个简单的页面(复杂美观的我也写不来啊!!), 这个想法也实施了,但是因为不是软件开发部门所以, 内部开的端口号,没过几天就被策略了= =!,
所以干脆就想到写个小程序吧,反正目前也没有存储数据的需求,所以小程序只写个计算功能就够了,关键是不用服务器啊, 只要装个微信版本大于小程序指定版本就能用啊,一举多得啊!兄dei, 有木有!
然后花了两天时间申请了小程序,然后瞅了几天文档,就开始啪啪啪了(此处为机械键盘敲击声, ~手动滑稽)
好了,先上个成品图:
开撸?
先来一顿操作:
OK, 接下来我先简短的介绍下这个小程序(捂脸!, 基础中的基础还要介绍):
首先, 看一下这两个公式:
W: 是原线的重量. R: 是原线的电阻. W': 是测试线的重量. R': 是测试线的电阻.
: 可以看作是一个中间系数,和要计算的组数有关系.
: 就是我门最后得出的变化率, i 代表的是第几遍.
其实呢,这个公式是按照两个等式推出来的:
体积 x 密度 = 重量
测试前和测试后的重量和密度其实都没变,但是我们是取同一批号线来做的对比,所以重量是不相同的,
这里还有牵扯到电阻率系数,有兴趣的同学可以自己推一下,这里就pass了(捂脸, 毕竟主要是介绍小程序).
真正的正题 - =!
这里关于小程序前期的帐号注册,开发软件的下载就不罗嗦了.毕竟这些都有官方介绍,自己去官网看吧...(又罗嗦了一句)
打开官方小程序软件, 这里会自动加载一个sample, 直接把/log文件夹全删掉,删掉...
然后这里要改下app.json中的pages的值,把除了index的其他也删掉.
然后对index下的js, wxml, wxss一顿乱改,然后结束了.....
...
其实对于我这个新手来说,这个小程序有几个比较麻烦的地方: 不是很熟悉这种新的语法(都说是类似vuejs的,但是我也基本没看过vuejs啊!), javascript的技术还在很初级的阶段, 界面设计真的不是我这种没有艺术细胞的人能干出来的...
代码可以在我的Gitub中找到, 这里就不全贴出来了, 会找几个我觉得有点用的贴出来:
模板 控制语句: 这里主要使用了for语句
Data 内部值的实时监控,这里主要使用了别人的func.
for语句 :
关于for语句,我的代码因为考虑到要动态添加行,所以index下标不是特别容易提取,所以干脆我就全放到form表单中了,这样在点击计算(提交)按钮的时候,实际获取到的是一个字典列表,我们只需要按照几组下标去for循环提取出指定key,就可以拿到指定的value了.
<view class='td'> <!--一组中的一个input-->
<input type='digit' name='originw{{index}}' bindchange='noBlank'></input>
</view>
...
for (let i=0; i<listlen; i++){// 这里的listValue是通过e.detail.value获取到的.
temp += (listValue["originw"+i] / listValue["originr"+i]);
}
值的实时监控:
因为我需要只能添加最多组数为三,所以考虑监听实时的组数,而我在官方文档中没有看到有相关的说明,所以就去Github上看看有没有大神实现了相关功能, 我这个初级javascript小白实在没能力写出来...code我就不贴了,大家有需要的自己去看看吧,链接请转上方'别人的func'.
最后就是提交等待审批,然后上线...
(收工)
不知道是哪一期预告: 准备用小程序实现js.tensorflow.org上的Pac-Man...