Explorar el Código

森语-搬运工对账单

jbb hace 2 años
padre
commit
ca660e727e

+ 86 - 0
src/api/converNumbers.js

@@ -0,0 +1,86 @@
+export function Arabia_to_Chinese(Num){
+    for (var i = Num.length - 1; i >= 0; i--) {
+        Num = Num.replace(",", "")//替换tomoney()中的“,”
+        Num = Num.replace(" ", "")//替换tomoney()中的空格
+        }
+        
+        Num = Num.replace("¥", "")//替换掉可能出现的¥字符
+        if (isNaN(Num)) { //验证输入的字符是否为数字
+        return 'notAllNumber'; 
+        }
+    //---字符处理完毕,开始转换,转换采用前后两部分分别转换---//
+   var  part = String(Num).split(".");
+   var  newchar = "";
+    //小数点前进行转化
+    for (var i = part[0].length - 1; i >= 0; i--) {
+     if (part[0].length > 10) { alert("位数过大,无法计算"); return ""; } //若数量超过拾亿单位,提示
+     var tmpnewchar = ""
+     var  perchar = part[0].charAt(i); //转换字符
+    switch (perchar) {
+    case "0": tmpnewchar = "零" + tmpnewchar; break;
+    case "1": tmpnewchar = "壹" + tmpnewchar; break;
+    case "2": tmpnewchar = "贰" + tmpnewchar; break;
+    case "3": tmpnewchar = "叁" + tmpnewchar; break;
+    case "4": tmpnewchar = "肆" + tmpnewchar; break;
+    case "5": tmpnewchar = "伍" + tmpnewchar; break;
+    case "6": tmpnewchar = "陆" + tmpnewchar; break;
+    case "7": tmpnewchar = "柒" + tmpnewchar; break;
+    case "8": tmpnewchar = "捌" + tmpnewchar; break;
+    case "9": tmpnewchar = "玖" + tmpnewchar; break;
+    
+    }
+    switch (part[0].length - i - 1) {
+        case 0: tmpnewchar = tmpnewchar + "元"; break;     
+        case 1: if (perchar != 0) tmpnewchar = tmpnewchar + "拾"; break;        
+        case 2: if (perchar != 0) tmpnewchar = tmpnewchar + "佰"; break;    
+        case 3: if (perchar != 0) tmpnewchar = tmpnewchar + "仟"; break; 
+        case 4: tmpnewchar = tmpnewchar + "万"; break; 
+        case 5: if (perchar != 0) tmpnewchar = tmpnewchar + "拾"; break; 
+        case 6: if (perchar != 0) tmpnewchar = tmpnewchar + "佰"; break;
+        case 7: if (perchar != 0) tmpnewchar = tmpnewchar + "仟"; break;
+        case 8: tmpnewchar = tmpnewchar + "亿"; break;
+        case 9: tmpnewchar = tmpnewchar + "拾"; break;
+        }
+        
+        newchar = tmpnewchar + newchar;
+}
+//小数点之后进行转化
+if (Num.indexOf(".") != -1) {
+    if (part[1].length > 2) { 
+    alert("小数点之后只能保留两位,系统将自动截段");
+    part[1] = part[1].substr(0, 2)
+    }
+    for (var i = 0; i < part[1].length; i++) {
+        tmpnewchar = ""   
+        perchar = part[1].charAt(i)
+        switch (perchar) {
+        case "0": tmpnewchar = "零" + tmpnewchar; break;
+        case "1": tmpnewchar = "壹" + tmpnewchar; break;
+        case "2": tmpnewchar = "贰" + tmpnewchar; break;        
+        case "3": tmpnewchar = "叁" + tmpnewchar; break;       
+        case "4": tmpnewchar = "肆" + tmpnewchar; break;        
+        case "5": tmpnewchar = "伍" + tmpnewchar; break;        
+        case "6": tmpnewchar = "陆" + tmpnewchar; break;        
+        case "7": tmpnewchar = "柒" + tmpnewchar; break;        
+        case "8": tmpnewchar = "捌" + tmpnewchar; break;        
+        case "9": tmpnewchar = "玖" + tmpnewchar; break;
+        }
+        if (i == 0) tmpnewchar = tmpnewchar + "角";
+        if (i == 1) tmpnewchar = tmpnewchar + "分";
+        newchar = newchar + tmpnewchar;
+    }
+}
+//替换所有无用汉字
+while (newchar.search("零零") != -1)
+newchar = newchar.replace("零零", "零");
+newchar = newchar.replace("零亿", "亿");
+newchar = newchar.replace("亿万", "亿");
+newchar = newchar.replace("零万", "万");
+newchar = newchar.replace("零元", "元");
+newchar = newchar.replace("零角", "");
+newchar = newchar.replace("零分", "");
+if (newchar.charAt(newchar.length - 1) == "元" || newchar.charAt(newchar.length - 1) == "角")
+newchar = newchar + "整"
+return newchar;
+
+} 

+ 30 - 17
src/views/oa/modules/SyCarryDetailModal.vue

@@ -22,16 +22,26 @@
                 <a-input   placeholder="请输入"  v-model="formState.code" readOnly/>
               </a-form-model-item>
             </a-col> -->
-            <a-col :md="8" :sm="8">
+            <a-col :md="6" :sm="8">
               <a-form-model-item label="名称"  prop="userId">
                 <a-input placeholder="请输入名称" v-model="formState.name" readOnly/>
               </a-form-model-item>
            </a-col>
-            <a-col :md="8" :sm="8">
+            <a-col :md="4" :sm="8">
               <a-form-model-item label="合计"  prop="code">
                  <a-input placeholder="请输入" v-model="formState.totalNum" readOnly/>
                </a-form-model-item>
             </a-col>
+            <a-col :md="5" :sm="8">
+              <a-form-model-item label="合计大写"  prop="code">
+                 <a-input placeholder="请输入" v-model="formState.totalNum1" readOnly />
+               </a-form-model-item>
+            </a-col>
+            <a-col :md="9" :sm="8">
+              <a-form-model-item label="备注"  prop="code">
+                 <a-input placeholder="请输入" v-model="formState.totalNum" readOnly/>
+               </a-form-model-item>
+            </a-col>
           </a-row>
           <a-row :gutter="24">
               <a-col :md="24" :sm="8"> 
@@ -231,20 +241,7 @@
              ellipsis: true,
              className: 'replacecolor',
            },
-           {
-            title: '计划员',
-            dataIndex: 'jhyNameData',
-             width: 240,
-             ellipsis: true,
-             className: 'replacecolor',
-           },
-           {
-            title: '签名',
-            dataIndex: 'jhyName',
-            width: 100,
-             ellipsis: true,
-             className: 'replacecolor'
-           },
+          
            {
             title: '原因',
             dataIndex: 'reason',
@@ -259,10 +256,26 @@
              ellipsis: true,
              className: 'replacecolor'
            } ,
+           {
+            title: '计划员',
+            dataIndex: 'jhyNameData',
+             width: 240,
+             fixed:'right',
+             ellipsis: true,
+             className: 'replacecolor',
+           },
+           {
+            title: '签名',
+            dataIndex: 'jhyName',
+            width: 100,
+            fixed:'right',
+             ellipsis: true,
+             className: 'replacecolor'
+           },
            {
             title: '操作',
             dataIndex: 'option',
-             width: 180,
+             width: 100,
              ellipsis: true,
              fixed:'right',
              scopedSlots: { customRender: 'option' },

+ 50 - 18
src/views/oa/modules/SyCarryModal.vue

@@ -24,16 +24,26 @@
                 <a-input   placeholder="请输入"  v-model="formState.code" />
               </a-form-model-item>
             </a-col> -->
-            <a-col :md="8" :sm="8">
+            <a-col :md="6" :sm="8">
               <a-form-model-item label="名称"  prop="name">
                 <a-input placeholder="请输入名称" v-model="formState.name"/>
               </a-form-model-item>
            </a-col>
-            <a-col :md="8" :sm="8">
+            <a-col :md="4" :sm="8">
               <a-form-model-item label="合计"  prop="totalNum">
                  <a-input placeholder="" v-model="formState.totalNum" disabled="false"/>
                </a-form-model-item>
             </a-col>
+            <a-col :md="5" :sm="8">
+              <a-form-model-item label="合计大写" >
+                 <a-input placeholder="请输入" v-model="formState.totalText" readOnly/>
+               </a-form-model-item>
+            </a-col>
+            <a-col :md="9" :sm="8">
+              <a-form-model-item label="备注"  >
+                 <a-input placeholder="请输入" v-model="formState.remarks" readOnly/>
+               </a-form-model-item>
+            </a-col>
           </a-row>
           <a-row :gutter="24">
               <a-col :md="24" :sm="8"> 
@@ -244,6 +254,7 @@
   import {personList,subimtList} from '@api/oa/cd-personnel-files'
   import {fileDetail} from '@api/oa/cd-sy-carry'
    import { putAction,getAction } from '@/api/manage'
+   import {Arabia_to_Chinese} from '@api/converNumbers'
 
   export default {
     name: 'SyCarryModal',
@@ -360,22 +371,6 @@
              className: 'replacecolor',
              slots:{title:'totalPriceTitle'}
            },
-           {
-            // title: '计划员',
-            dataIndex: 'jhyByData',
-             width: 240,
-             ellipsis: true,
-             scopedSlots: { customRender: 'jhyByData' },
-             className: 'replacecolor',
-            slots:{title:'jhyByDataTitle'}
-           },
-           {
-            title: '签名',
-            dataIndex: 'jhyName',
-            width: 100,
-             ellipsis: true,
-             className: 'replacecolor'
-           },
            {
             title: '原因',
             dataIndex: 'reason',
@@ -393,6 +388,24 @@
              scopedSlots: { customRender: 'demo' },
              className: 'replacecolor'
            } ,
+           {
+            // title: '计划员',
+            dataIndex: 'jhyByData',
+             width: 240,
+             ellipsis: true,
+             scopedSlots: { customRender: 'jhyByData' },
+             className: 'replacecolor',
+             fixed:'right',
+            slots:{title:'jhyByDataTitle'}
+           },
+           {
+            title: '签名',
+            dataIndex: 'jhyName',
+            width: 100,
+            fixed:'right',
+             ellipsis: true,
+             className: 'replacecolor'
+           },
            {
             title: '操作',
             dataIndex: 'option',
@@ -417,6 +430,17 @@
       this.getOption()
       this.getRemarks()
     },
+    watch: {
+      formState: {
+        immediate: true,
+        handler(newVal) {
+          newVal.totalNum = newVal.totalNum.toString()
+          if(newVal.totalNum!=='' && newVal.totalNum){
+            this.changeNumber(newVal.totalNum)
+          }
+        }
+      },
+    },
     methods: {
       // 获取表头信息
       getHeaderList(id){
@@ -651,6 +675,14 @@
         this.getRemarks()
         this.$emit('close')
       },
+      changeNumber(data){
+       var dd =  Arabia_to_Chinese(data)
+       if(dd == 'notAllNumber'){
+        this.$message.error("请检查金额是否正确");
+       }else{
+        this.formState.totalText = dd
+       }
+      },
       // 价格改变
       handleChangePrice(record){
         if(!parseFloat(parseFloat(record.detailedNum))){