Parcourir la source

充值管理-上传凭证弹层添加大写金额

dujingxian il y a 4 ans
Parent
commit
5f7d17bce0
2 fichiers modifiés avec 43 ajouts et 2 suppressions
  1. 17 2
      src/pages/subPages/balance.vue
  2. 26 0
      src/utils/moneyFormat.js

+ 17 - 2
src/pages/subPages/balance.vue

@@ -106,7 +106,11 @@
                 <el-input
                     v-model="formData.amount"
                     @blur="formData.amount = $event.target.value"
-                    style="width:300px"></el-input>
+                    style="width:300px"
+                    @input="amountInput"></el-input>
+            </el-form-item>
+            <el-form-item label="大写金额: ">
+                <span id="wordsAmount" style="color:red">{{wordsAmount}}</span>
             </el-form-item>
             <el-form-item label="开户人姓名: " prop="bank_username">
                 <el-autocomplete
@@ -165,6 +169,8 @@ import {
 import { balanceType } from '@/utils/constants'
 // 商家区分
 const userInfo = require('@/utils/userInfo')
+// 金额转成文字
+import {cnMoneyFormat} from '@/utils/moneyFormat.js'
 export default {
     name: 'balance',
     data() {
@@ -267,7 +273,9 @@ export default {
             warningList: [],
             // 总充值金额
             evidence_amounts: '',
-            searchLoading: false
+            searchLoading: false,
+            // 大写金额
+            wordsAmount: ''
         };
     },
     mounted() {
@@ -325,6 +333,7 @@ export default {
                 voucher: '',
                 bz: ''
             }
+            this.wordsAmount = ''
             // console.log('this.$refs.updataFile', this.$refs.updataFile);
             this.$refs.updataFile.value = '';
             this.uploadDialogVisible = false;
@@ -567,6 +576,12 @@ export default {
             // console.log('item', item);
             this.formData.bank_name = item.value
         },
+        // 金额改变
+        amountInput(value) {
+            let val = parseFloat(value)
+            // console.log('val', val, cnMoneyFormat(val));
+            this.wordsAmount = cnMoneyFormat(val)
+        }
     },
 }
 </script>

+ 26 - 0
src/utils/moneyFormat.js

@@ -0,0 +1,26 @@
+/**
+   * 将数字转换为中文的金额
+   * @method cnMoneyFormat
+   * @param {Number} money 数字
+   */
+ export function cnMoneyFormat(money) {
+  let fistStr = money.toString().substr(0, 1)
+  // console.log('fistStr', fistStr);
+  if (fistStr === '-') {
+    money=parseFloat(money.toString().substr(1))
+  }
+  var cnMoney = "零元整";
+  var strOutput = "";
+  var strUnit = '仟佰拾亿仟佰拾万仟佰拾元角分';
+  money += "00";
+  var intPos = money.indexOf('.');
+  if (intPos >= 0) {
+      money = money.substring(0, intPos) + money.substr(intPos + 1, 2);
+  }
+  strUnit = strUnit.substr(strUnit.length - money.length);
+  for (var i = 0; i < money.length; i++) {
+      strOutput += '零壹贰叁肆伍陆柒捌玖'.substr(money.substr(i, 1), 1) + strUnit.substr(i, 1);
+  }
+  cnMoney = strOutput.replace(/零角零分$/, '整').replace(/零[仟佰拾]/g, '零').replace(/零{2,}/g, '零').replace(/零([亿|万])/g, '$1').replace(/零+元/, '元').replace(/亿零{0,3}万/, '亿').replace(/^元/, "零元");
+  return cnMoney;
+}