首页 > 编程语言 >mpvue两小时,产出一个《点钞辅助工具》小程序

mpvue两小时,产出一个《点钞辅助工具》小程序

时间:2023-06-02 18:04:23浏览次数:48  
标签:count index mpvue assets img 辅助工具 点钞 import png

CoffeeScript,Pug,Sass使用

以下内容门槛较高,如看不懂或觉得需要继续了解,请前往官网查阅相关文档,谢谢。

文章不做技术语法解读,如不清楚,请前往对应官网了解细节。

启动项目

由于使用了CS,Pug,Sass等非主流方式,所以便多出了一些流程:

  1. 根据官方拉取快速启动项目,并命名为“MergeMoney”,不要vuex与eslint
    vue init mpvue/mpvue-quickstart MergeMoneynpm i

或 cnpm

  1. 添加CS,Pug,以及Sass的依赖
    npm i -D coffeescript coffee-loader pug pug-loader sass node-sass sass-loader

或 cnpm

  1. 修改webpack配置
{

test: /.coffee$/,
loader: ‘coffee-loader’
},

> build -> webpack.bash.conf.js下,module -> rules添加上述内容用来处理.coffee文件
> 
> 这里注意下,vue是支持直接`<script lang='coffee'>`的,但是mpvue目前不支持,已提交issue,目前没结果

4. 删除原模板中无用的代码,并替换成CS,Pug与Sass

   conponents/card.vue

   pages/ 除了index全部删除

   main.js 只留`pages: ['^pages/index/main'],`

   pages/index/index.vue文件修改如下
   ```html
   <template lang='pug'>
   .container
       span normal
   </template>

   <script>
   import main from './main.coffee'

   export default {
    ...main
   }
   </script>

   <style scoped lang='sass'>
   </style>
   ```

   pages/index/main.js 不动

   pages/index/main.coffee新增,空着即可

5. 启动

   `npm run dev`

   即可看到如下页面:

   ![](https://user-gold-cdn.xitu.io/2018/6/25/16434fb4346342bc?w=387&h=685&f=png&s=5141)

### 开发

1. 在src/下新建assets文件夹,导入所需要的资源,如图:

   ![](https://user-gold-cdn.xitu.io/2018/6/25/16434fd4141e3ec9?w=952&h=204&f=png&s=87672)

2. pages/index/main.coffee导入需要的资源,并放到data留着用
   ```coffee
   import img1 from '@/assets/1.png'
   import img1j from '@/assets/1j.png'
   import img1m from '@/assets/1m.png'
   import img1y from '@/assets/1y.png'
   import img5 from '@/assets/5.png'
   import img5j from '@/assets/5j.png'
   import img5m from '@/assets/5m.png'
   import img10 from '@/assets/10.png'
   import img20 from '@/assets/20.png'
   import img50 from '@/assets/50.png'
   import img100 from '@/assets/100.png'
   import imgBg from '@/assets/bg.png'

   export default
    data: {
     # 人民币金额种类,价值单位“分”
     coins: [
      {img: img100
      count: ''
      priceF: 10000}
      {img: img50
      count: ''
      priceF: 5000}
      {img: img20
      count: ''
      priceF: 2000}
      {img: img10
      count: ''
      priceF: 1000}
      {img: img5
      count: ''
      priceF: 500}
      {img: img1
      count: ''
      priceF: 100}
      {img: img1y
      count: ''
      priceF: 100}
      {img: img5j
      count: ''
      priceF: 50}
      {img: img5m
      count: ''
      priceF: 50}
      {img: img1j
      count: ''
      priceF: 10}
      {img: img1m
      count: ''
      priceF: 10}
     ]
     imgBg # 背景图片
    }
   ```

3. 此时花费一点时间将页面样式铺出来,即pages/index/index.vue如下:
   ```html
   <template lang='pug'>
   .container
    img.bg(
     :src='imgBg'
    )
    .content
     .coins
      section.row(
       v-for='(coin, index) of coins' :key='index'
      )
       img.coin-img(
        :src='coin.img'
       )
       input.coin-count(
        placeholder-style='color: rgba(255, 255, 255, .5);'
        type='number'
        v-model='coin.count'
        placeholder='数量'
       )
     .result
      button.reset(
       @click='clickReset'
      ) 重置
      span 总金额:
      input.result-count(
       readonly
       type='number'
       :value='result'
      )
      span 元
   </template>

   <script>
   import main from './main.coffee'

   export default {
    ...main
   }
   </script>

   <style scoped lang='sass'>
   .count
    height: 84rpx
    border: 2rpx solid #FFFFFF
    border-radius: 10rpx
    text-align: center

   .container
    padding: 0
    font-size: 36rpx

    .bg
     position: absolute
     left: 0
     top: 0
     width: 100%
     height: 100%
     z-index: 0

    .content
     width: 100%
     height: 100%
     z-index: 1
     background: rgba(171,171,171,.35)

     .coins
      height: 90%
      overflow-y: auto

      .row
       position: relative
       display: flex
       justify-content: space-around
       align-items: center
       margin-top: 24rpx

       .coin-img
        width: 248rpx
        height: 110rpx

       .coin-count
        @extend .count
        width: 204rpx
        color: #fff

     .result
      display: flex
      justify-content: center
      align-items: center
      height: 10%

      .reset
       width: 60rpx
       height: 60rpx
       margin: 0 40rpx 0 0
       padding: 0
       border: 2rpx solid red
       border-radius: 30rpx
       background: transparent
       font-size: 24rpx
       color: #fff

       &:after
        border: 0

      span
       color: #fff

      .result-count
       @extend .count
       width: 360rpx
       margin: 0 40rpx
       background: #fff
   </style>
   ```

4. 此时保存页面会报错,因为result这个变量没有,于是在pages/index/main.coffee中添加computed:
   ```
   computed:
       # 最终多少钱
       result: ->
           result = this.coins.reduce ((pre, cur) ->
               pre + cur.priceF * (cur.count || 0))
           , 0
           result / 100
   ```
6. 恩,还少了重置的函数
   ```
   methods:
       clickReset: ->
           wx.showModal
               title: '提示'
               content: '即将重置所有数量,确定吗?'
               success: (res) =>
                   coin.count = '' for coin in this.coins if res.confirm
   ```
7. 大功告成,可以试试效果了:

![](https://user-gold-cdn.xitu.io/2018/6/25/1643516b03add69e?w=540&h=960&f=gif&s=3281761)

###项目文件目录截图
![](http://www.demodashi.com/contentImages/image/20180711/2iMnVkUHUNw2tR7Sa1i.jpg)
> 感谢你的耐心阅读,如有一丝的帮助,倍感欣慰。mpvue两小时,产出一个《点钞辅助工具》小程序




> 注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权


标签:count,index,mpvue,assets,img,辅助工具,点钞,import,png
From: https://blog.51cto.com/u_7583030/6404441

相关文章

  • Doxygen Comment Tags 编程辅助工具注释标记 @brief @param @return
    以@brief@param@return等形式出现的注释标记被称为Doxygen注释标记(DoxygenCommentTags)或者简称为Doxygen标记。这玩意常用来作为接口文档说明或者接口源码注释,又比如EmmyLua用这个来作为lua函数的注释以提供智能提示。常见的doxygen注释标记及其作用:/***@biref简介*......
  • 享受探险快感,DayZ辅助工具为你保驾护航
     当今,有越来越多的玩家涌入了游戏世界。其中,DayZ是一个非常受欢迎的游戏,它以生存、探索和射击为主题,吸引了众多玩家的关注。但是,这款游戏的难度非常大,新手玩家往往无法顺利完成游戏目标。因此,有越来越多的玩家开始寻求DayZ辅助(https://dayz.scvmn.com/)工具的帮助。在本篇......
  • 初等数学瞎扯Ⅱ:辅助工具
    0.前置知识质数与合数:对于一个数\(n\),若其因子只有\(1\)和\(n\),则称\(n\)为质数,否则为合数。一些基础的数论函数知识,可以参见初等数学瞎扯Ⅲ:数论函数与筛法1.乘方运算1-0.问题简述求\(b^m\pmodp\)。1-1.普通快速幂快速求\(a^b\pmodp\)朴素算法是\(O(......
  • 飞腾X100 LPDDR颗粒线序配置辅助工具
    飞腾爱好者技术交流群码公众号“乌拉大喵喵”  颗粒线序配置辅助工具B站讲解视频: 正文内容:     一、飞腾X100显存使用LPDDR4时,需要工程师在X100的固件中去配置线序交换说明,就类似下面这个:     图1我们需要输入每个slice中DQ的线序,也需要输入slic......
  • GIS For CAD插件:高效便捷的地理信息处理辅助工具
    GISForCAD插件是一款基于AutoCAD的功能套件,它提供了一系列GIS功能。通过该插件,您可以轻松地在AutoCAD中导入和导出SHP、MDB、Kml、Kmz、Gpx、GeoJson、EXCEL、TXT、CSV等多种格式的矢量文件,并支持SQLServer、MySQL、PostgreSQL等多种数据库的导入和导出。 同时,GISForCA......
  • 【坑】 mpvue 编译报错Error: [mpvue-loader] need "fileExt" option in file "build/
    运行命令C:\Users\luozhuang\demo2>npmrunbuild出错提示:ERRORin./node_modules/mpvue-entry/dist/pagesMemberDistributionIndex.jsModulebuildfailed:Error:[mp......
  • 易友择日辅助工具发布
    什么是择日?  择日学的开宗明义即是:不同的坐向方位、不同的八字的人要做某件事,须选择一个吉祥发达的好日子,好的时辰。从避开天地之间凶的解煞,更进一步得到吉神来辅助灵......
  • 不坑盒子:word/wps最强辅助工具2023最新版
    不坑盒子简介很多朋友在工作过程中需要对Word文档进行编辑处理,如果想让Word排版更有效率可以试试小编带来的这款不坑盒子软件,这是一个非常好用的插件工具,专门应用在Word文......
  • 50行代码完成微信小程序-跳一跳辅助工具,让你成为朋友圈最靓的仔
    前言2017年12月28日,微信更新的6.6.1版本开放了小游戏,微信启动页面还重点推荐了小游戏「跳一跳」。不说废话直接上代码设置公共参数 doubleratio=1; //弹跳系数......
  • Camstar 元数据mdb辅助工具
    1.mdb对象模型介绍定义:CDOs:理解为类(或对象),CDO主要分为Constants(常量,一般在CLF中使用)、Container、Enumeration(枚举)、NamedDataObject(NDO可以直接通过Name操作的对象)、R......