Explorar o código

Merge branch 'master' of http://git.echepei.com/wengyuwen/anpinjingyuan-ui

wengyuwen %!s(int64=4) %!d(string=hai) anos
pai
achega
1917a9177a
Modificáronse 1 ficheiros con 98 adicións e 8 borrados
  1. 98 8
      src/views/purchaseIssue/index.vue

+ 98 - 8
src/views/purchaseIssue/index.vue

@@ -136,7 +136,7 @@
           <table class="table table-striped table-bordered" align="center" valign="center">
             <tr>
               <td class="column" colspan="2" style="border-top: none;width: 15%;">大写总金额:</td>
-              <td class="column" colspan="2" style="text-align: left;border-top: none;width: 40%;"></td>
+              <td class="column" colspan="2" style="text-align: left;border-top: none;width: 40%;">{{chineseStr}}</td>
               <td class="column" style="border-top: none; width: 15%;">小写总金额:</td>
               <td class="column" colspan="3" style="border-top: none;text-align: left;width: 30%;">{{formList.fMoney}}</td>
             </tr>
@@ -184,6 +184,7 @@ export default {
       },
       addOrUpdateVisib: false,
       addOrUpdateVisible: false,
+      chineseStr:0,
       total: 0,
       formDataList: {
         fBilltype: 'XS',
@@ -770,6 +771,97 @@ export default {
     this.fCompany(2)
   },
   methods: {
+    toChies(amount) { //形参
+      // 汉字的数字
+      const cnNums = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];
+      // 基本单位
+      const cnIntRadice = ["", "拾", "佰", "仟"];
+      // 对应整数部分扩展单位
+      const cnIntUnits = ["", "万", "亿", "兆"];
+      // 对应小数部分单位
+      const cnDecUnits = ["角", "分"];
+      // 整数金额时后面跟的字符
+      const cnInteger = "整";
+      // 整型完以后的单位
+      const cnIntLast = "元";
+      // 最大处理的数字
+      const maxNum = 9999999999999999.99;
+      // 金额整数部分
+      let integerNum;
+      // 金额小数部分
+      let decimalNum;
+      // 输出的中文金额字符串
+      let chineseStr = "";
+      // 分离金额后用的数组,预定义
+      let parts;
+      if (amount === "") {
+        return "";
+      }
+      amount = parseFloat(amount);
+      if (amount >= maxNum) {
+        // 超出最大处理数字
+        return "";
+      }
+      if (amount === 0) {
+        chineseStr = cnNums[0] + cnIntLast + cnInteger;
+        return chineseStr;
+      }
+      // 转换为字符串
+      amount = amount.toString();
+      if (amount.indexOf(".") === -1) {
+        integerNum = amount;
+
+        decimalNum = "";
+      } else {
+        parts = amount.split(".");
+        integerNum = parts[0];
+        decimalNum = parts[1].substr(0, 4);
+      }
+      // 获取整型部分转换
+      if (parseInt(integerNum, 10) > 0) {
+        let zeroCount = 0;
+        const IntLen = integerNum.length;
+        for (let i = 0; i < IntLen; i++) {
+          const n = integerNum.substr(i, 1);
+          const p = IntLen - i - 1;
+          const q = p / 4;
+          const m = p % 4;
+          if (n === "0") {
+            zeroCount++;
+          } else {
+            if (zeroCount > 0) {
+              chineseStr += cnNums[0];
+            }
+            // 归零
+            zeroCount = 0;
+            //alert(cnNums[parseInt(n)])
+            chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
+          }
+          if (m === 0 && zeroCount < 4) {
+            chineseStr += cnIntUnits[q];
+          }
+        }
+        chineseStr += cnIntLast;
+      }
+      // 小数部分
+      if (decimalNum !== "") {
+        const decLen = decimalNum.length;
+        for (let i = 0; i < decLen; i++) {
+          const n = decimalNum.substr(i, 1);
+          if (n !== "0") {
+            chineseStr += cnNums[Number(n)] + cnDecUnits[i];
+          }
+        }
+      }
+      if (chineseStr === "") {
+        chineseStr += cnNums[0] + cnIntLast + cnInteger;
+      } else if (decimalNum === "") {
+        chineseStr += cnInteger;
+      }
+      // console.log(chineseStr)
+      this.chineseStr = chineseStr
+      // return chineseStr;
+    },
     change(scope) {
       for (let item in this.contentList) {
         for (let li in this.listData.fFeeid) {
@@ -889,8 +981,8 @@ export default {
             // this.waitFor = true
           } else {
             // this.waitFor = true
-            this.purchaseList.columnList = this.contentStyle
-            this.setRowList = this.contentStyle
+            this.$set(this.purchaseList,'columnList',this.$options.data().contentStyle)
+            this.setRowList = this.$options.data().contentStyle
           }
           this.pageDisplay = false
           this.isItHidden = false
@@ -903,9 +995,8 @@ export default {
             this.queryList.columnList = this.queryList.columnList.filter((e) => e.checked == 0)
             // this.waitFor = true
           } else {
-            // this.waitFor = true
-            this.queryList.columnList = this.listStyle
-            this.setRowList = this.listStyle
+            this.$set(this.queryList,'columnList',this.$options.data().listStyle)
+            this.setRowList = this.$options.data().listStyle
           }
           this.pageDisplay = true
           this.isItHidden = true
@@ -1279,8 +1370,7 @@ export default {
               }
             }
           }
-
-          console.log('11111')
+          this.toChies(this.$refs.avatar.form.fMoney)
           if (!this.$refs.avatar.form.fId){
             this.$message.error('未保存,不允许打印');
           }else if (this.$refs.avatar.form.fBillstatus >= 4){