自从微信官方把小程序开放了以后,小程序开始越来越火,甚至已经超过了app。微信小程序以其轻量,高效,得到国内无数企业的青睐,跃跃欲试。小程序已经成为前端程序员必备的技能了,最近公司接了一个项目,项目要求做高仿猫眼的购票系统,要求是这样的。
我做了四五天,总算做出来了,另外还做了一下自定义tabbar,数据都是虚拟的,可以和后端沟通好。主要涉及的的是小程序自定义组件,还有小程序movable-area和movable-view组件,可能小程序官方有些功能尚未完善,有一些小小的bug,毕竟没用到第三方插件。做出来的效果是这样的。已预约数据还没有,后期可以自行完善。
因为座位并不是按顺序排列的,所以数据在设计的时候想了很久,最后决定将数据写死。
greenPrice: [
[{num: 29}, {num: 27}, {num: 25}, {num: 23}, {num: 21}, {num: 19}, {num: 17}, {num: 15}, {num: 13}, {num: 11}, {num: 9}, {num: 7}, {num: 5}, {num: 3}, {num: 1}, {num: 2}, {num: 4}, {num: 6}, {num: 8}, {num: 10}, {num: 12}, {num: 14}, {num: 16}, {num: 18}, {num: 20}, {num: 22}, {num: 24}, {num: 26}, {num: 28}],
[{num: 29}, {num: 27}, {num: 25}, {num: 23}, {num: 21}, {num: 19}, {num: 17}, {num: 15}, {num: 13}, {num: 11}, {num: 9}, {num: 7}, {num: 5}, {num: 3}, {num: 1}, {num: 2}, {num: 4}, {num: 6}, {num: 8}, {num: 10}, {num: 12}, {num: 14}, {num: 16}, {num: 18}, {num: 20}, {num: 22}, {num: 24}, {num: 26}, {num: 28}],
[{num: 25}, {num: 23}, {num: 21}, {num: 19}, {num: 17}, {num: 15}, {num: 13}, {num: 11}, {num: 9}, {num: 7}, {num: 5}, {num: 3}, {num: 1}, {num: 2}, {num: 4}, {num: 6}, {num: 8}, {num: 10}, {num: 12}, {num: 14}, {num: 16}, {num: 18}, {num: 20}, {num: 22}, {num: 24}],
[{num: 25}, {num: 23}, {num: 21}, {num: 19}, {num: 17}, {num: 15}, {num: 13}, {num: 11}, {num: 9}, {num: 7}, {num: 5}, {num: 3}, {num: 1}, {num: 2}, {num: 4}, {num: 6}, {num: 8}, {num: 10}, {num: 12}, {num: 14}, {num: 16}, {num: 18}, {num: 20}, {num: 22}, {num: 24}, {num: 26}],
[{num: 25}, {num: 23}, {num: 21}, {num: 19}, {num: 17}, {num: 15}, {num: 13}, {num: 11}, {num: 9}, {num: 7}, {num: 5}, {num: 3}, {num: 1}, {num: 2}, {num: 4}, {num: 6}, {num: 8}, {num: 10}, {num: 12}, {num: 14}, {num: 16}, {num: 18}, {num: 20}, {num: 22}, {num: 24}, {num: 26}],
[{num: 25}, {num: 23}, {num: 21}, {num: 19}, {num: 17}, {num: 15}, {num: 13}, {num: 11}, {num: 9}, {num: 7}, {num: 5}, {num: 3}, {num: 1}, {num: 2}, {num: 4}, {num: 6}, {num: 8}, {num: 10}, {num: 12}, {num: 14}, {num: 16}, {num: 18}, {num: 20}, {num: 22}, {num: 24}, {num: 26}],
[{num: 27}, {num: 25}, {num: 23}, {num: 21}, {num: 19}, {num: 17}, {num: 15}, {num: 13}, {num: 11}, {num: 9}, {num: 7}, {num: 5}, {num: 3}, {num: 1}, {num: 2}, {num: 4}, {num: 6}, {num: 8}, {num: 10}, {num: 12}, {num: 14}, {num: 16}, {num: 18}, {num: 20}, {num: 22}, {num: 24}, {num: 26}, {num: 28}],
[{num: 17}, {num: 15}, {num: 13}, {num: 11}, {num: 9}, {num: 7}, {num: 5}, {num: 3}, {num: 1}, {num: 2}, {num: 4}, {num: 6}, {num: 8}, {num: 10}, {num: 12}, {num: 14}, {num: 16}, {num: 18}]
],
因为在选座和删除座位时会和下面的座位列表对应,所以还需要通过遍历,给每个座位添加一个id。然后开始布局,左中右布局,涉及到双重for循环拿到每个循环的index,再把index传到选座函数,才能获得当前是几排几座。外层循环wx:key wx:for-index="keys",内层循环wx:key wx:for-index="key",这样内层循环才能拿到两个index,分别对应排和列