uni-app中的数值监控方式及函数的封装和引用方式
<p><span style="font-size: 18px"><strong>1.在商品订单计算商品价格的时候老觉得押金加不上去。后来用了number强转,将类型强转为数值类型才解决问题</strong></span></p><div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">data() {
</span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)">{
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 支付数值统计</span>
<span style="color: rgba(0, 0, 0, 1)"> statistic:[],
coupon_money:</span>0,<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">可抵扣优惠价</span>
real_total:0,<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">商品实付金额</span>
<span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">计算变量,避免在html写入冗长计算式</span>
<span style="color: rgba(0, 0, 0, 1)">computed: {
total() {
</span><span style="color: rgba(0, 0, 255, 1)">return</span> Number(<span style="color: rgba(0, 0, 255, 1)">this</span>.statistic.all_price) + Number(<span style="color: rgba(0, 0, 255, 1)">this</span>.statistic.all_deposit_price) +Number(<span style="color: rgba(0, 0, 255, 1)">this</span>.statistic.delivery_price) -Number(<span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.coupon_money)
}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">实时监听计算变量的变化</span>
<span style="color: rgba(0, 0, 0, 1)">watch: {
total(val) {
</span><span style="color: rgba(0, 0, 255, 1)">this</span>.real_total=<span style="color: rgba(0, 0, 0, 1)">val
console.log(</span>"total:",val,<span style="color: rgba(0, 0, 255, 1)">this</span>.statistic.all_price,<span style="color: rgba(0, 0, 255, 1)">this</span>.statistic.all_deposit_price,<span style="color: rgba(0, 0, 255, 1)">this</span>.statistic.delivery_price,<span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.coupon_money )
} </span></pre>
</div>
<p><strong><span style="font-size: 18px">2.总结一下uni-app引用到vue的一些优点:</span></strong></p>
<p>先封装一个函数计算mixin.js然后将其导出,在引用的文件里导入即可正常使用,主要用于将数值分割成整数和小数两部分,如果数值为整数,小数部分补零:</p>
<div class="cnblogs_code">
<pre>const tools =<span style="color: rgba(0, 0, 0, 1)"> {
data() {
</span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> {
buttons: {
</span>0: { cancel: <span style="color: rgba(0, 0, 255, 1)">true</span>, pay: <span style="color: rgba(0, 0, 255, 1)">true</span>, flag: "UNPAID", desc: "未支付"<span style="color: rgba(0, 0, 0, 1)"> },
</span>1: { cancel: <span style="color: rgba(0, 0, 255, 1)">true</span>, flag: "UNCONFIRMED", desc: "待确认"<span style="color: rgba(0, 0, 0, 1)"> },
</span>2: { viewOrders: <span style="color: rgba(0, 0, 255, 1)">true</span>, flag: "UNSHIPPED", desc: "待发货"<span style="color: rgba(0, 0, 0, 1)"> },
</span>3: { viewOrders: <span style="color: rgba(0, 0, 255, 1)">true</span>, flag: "SHIPPED", desc: "已发货"<span style="color: rgba(0, 0, 0, 1)"> },
</span>4: { <span style="color: rgba(0, 0, 255, 1)">delete</span>: <span style="color: rgba(0, 0, 255, 1)">true</span>, viewOrders: <span style="color: rgba(0, 0, 255, 1)">true</span>, flag: "COMPLETED", desc: "已收货"<span style="color: rgba(0, 0, 0, 1)"> },
</span>5: { viewOrders: <span style="color: rgba(0, 0, 255, 1)">true</span>, flag: "SERVICING", desc: "售后中"<span style="color: rgba(0, 0, 0, 1)"> },
</span>9: { <span style="color: rgba(0, 0, 255, 1)">delete</span>: <span style="color: rgba(0, 0, 255, 1)">true</span>, viewOrders: <span style="color: rgba(0, 0, 255, 1)">true</span>, flag: "BANKING", desc: "已存酒库"<span style="color: rgba(0, 0, 0, 1)"> },
</span>10: { <span style="color: rgba(0, 0, 255, 1)">delete</span>: <span style="color: rgba(0, 0, 255, 1)">true</span>, viewOrders: <span style="color: rgba(0, 0, 255, 1)">true</span>, flag: "CANCELED", desc: "已取消"<span style="color: rgba(0, 0, 0, 1)"> },
</span>11: { <span style="color: rgba(0, 0, 255, 1)">delete</span>: <span style="color: rgba(0, 0, 255, 1)">true</span>, viewOrders: <span style="color: rgba(0, 0, 255, 1)">true</span>, flag: "AUTOCANCELED", desc: "系统自动取消"<span style="color: rgba(0, 0, 0, 1)"> },
}
}
},
methods: {
getInteger(val) {
val </span>= val ? Number(val) : 0<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">return</span> val.toFixed(2).split(".")
},
getDecimal(val) {
val </span>= val ? Number(val) : 0<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 0, 255, 1)">return</span> val.toFixed(2).split(".")
},
}
}
export </span><span style="color: rgba(0, 0, 255, 1)">default</span> tools</pre>
</div>
<p><span style="font-size: 18px"><strong>3.在需要引用上面方法的文件夹里导入使用方式:</strong></span></p>
<div class="cnblogs_code">
<pre>import tools from "@/mixins/mixin.js"<span style="color: rgba(0, 0, 0, 1)">;
components: {
uniIcon,uniPopup,uniDrawer
},
mixins: ,
data() {
</span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)">{}
},
}
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">然后直接在html里调用mixin.js里的方法即可:</span>
<span class="pay-btn-txt num">合计:¥{{getInteger(real_total)}}.<span class="mini">{{getDecimal(real_total)}}</span></span></pre>
</div>
<p> </p><br><br>
来源:https://www.cnblogs.com/Dark-fire-liehuo/p/11049974.html
頁:
[1]