首页 > 其他分享 >【滨州学院】办公用纸报销-JS-金额计算

【滨州学院】办公用纸报销-JS-金额计算

时间:2023-07-06 17:14:35浏览次数:38  
标签:用纸 滨州 val money decimalNum JS chineseStr codeValue var

 JS:

报销单:pc

var A4ShuLiang = mini.get('A4ShuLiang');
var A4DanJia = mini.get('A4DanJia');
var A3ShuLiang = mini.get('A3ShuLiang');
var A3DanJia = mini.get('A3DanJia');

A4ShuLiang.on('valuechanged', codeValue);
A4DanJia.on('valuechanged', codeValue);
A3ShuLiang.on('valuechanged', codeValue);
A3DanJia.on('valuechanged', codeValue);

function codeValue()
{
  var H1Value = A4ShuLiang.getValue()== ''?0:A4ShuLiang.getValue(); //若控件值为空赋值为0,否则取对应的值
  var H2Value = A4DanJia.getValue()== ''?0:A4DanJia.getValue();
  var H3Value = A3ShuLiang.getValue()== ''?0:A3ShuLiang.getValue(); 
  var H4Value = A3DanJia.getValue()== ''?0:A3DanJia.getValue();

  var H1IntValue = parseFloat(H1Value); //文本转为数值
  var H2IntValue = parseFloat(H2Value);
  var H3IntValue = parseFloat(H3Value); 
  var H4IntValue = parseFloat(H4Value);


  var sum1 = Math.abs(H1IntValue * H2IntValue );  //乘法
  mini.get('A4JinE').setValue(sum1); //计算结果赋值

  var sum2 = Math.abs(H3IntValue * H4IntValue );  //乘法
  mini.get('A3JinE').setValue(sum2); //计算结果赋值

var sum3 = Math.abs(sum1 + sum2);  //加法
  mini.get('HJJE').setValue(sum3); //计算结果赋值

var sum4 = Math.abs(H1IntValue / 5);  //除法
  mini.get('A4Xiang').setValue(sum4); //计算结果赋值

var sum5 = Math.abs(H3IntValue / 5);  //除法
  mini.get('A3Xiang').setValue(sum5); //计算结果赋值
//数字转大写
  setTimeout(function(){
    var money = sum3;
    var cMoney = convertCurrency(money);

    mini.get('JinEDaXie').setValue(cMoney);
  },100);//0.1秒后触发setTimeout函数

//代码如下所示:
  function convertCurrency(money) {
    //汉字的数字
    var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
    //基本单位
    var cnIntRadice = new Array('', '拾', '佰', '仟');
    //对应整数部分扩展单位
    var cnIntUnits = new Array('', '万', '亿', '兆');
    //对应小数部分单位
    var cnDecUnits = new Array('角', '分', '毫', '厘');
    //整数金额时后面跟的字符
    var cnInteger = '整';
    //整型完以后的单位
    var cnIntLast = '元';
    //最大处理的数字
    var maxNum = 999999999999999.9999;
    //金额整数部分
    var integerNum;
    //金额小数部分
    var decimalNum;
    //输出的中文金额字符串
    var chineseStr = '';
    //分离金额后用的数组,预定义
    var parts;
    if (money == '') { return ''; }
    money = parseFloat(money);
    if (money >= maxNum) {
      //超出最大处理数字
      return '';
    }
    if (money == 0) {
      chineseStr = cnNums[0] + cnIntLast + cnInteger;
      return chineseStr;
    }
    //转换为字符串
    money = money.toString();
    if (money.indexOf('.') == -1) {
      integerNum = money;
      decimalNum = '';
    } else {
      parts = money.split('.');
      integerNum = parts[0];
      decimalNum = parts[1].substr(0, 4);
    }
    //获取整型部分转换
    if (parseInt(integerNum, 10) > 0) {
      var zeroCount = 0;
      var IntLen = integerNum.length;
      for (var i = 0; i < IntLen; i++) {
        var n = integerNum.substr(i, 1);
        var p = IntLen - i - 1;
        var q = p / 4;
        var m = p % 4;
        if (n == '0') {
          zeroCount++;
        } else {
          if (zeroCount > 0) {
            chineseStr += cnNums[0];
          }
          //归零
          zeroCount = 0;
          chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
        }
        if (m == 0 && zeroCount < 4) {
          chineseStr += cnIntUnits[q];
        }
      }
      chineseStr += cnIntLast;
    }
    //小数部分
    if (decimalNum != '') {
      var decLen = decimalNum.length;
      for (var i = 0; i < decLen; i++) {
        var 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;
    }
    return chineseStr;
  }

};

报销-移动端

var $H1 = $('#A4ShuLiang', this.parentView.el); // 根据id获取控件对象
var $H2 = $('#A4DanJia', this.parentView.el);
var $H3 = $('#A3ShuLiang', this.parentView.el); 
var $H4 = $('#A3DanJia', this.parentView.el);
var $H5 = $('#A4JinE', this.parentView.el);
var $H6 = $('#A3JinE', this.parentView.el);
var $H7 = $('#HJJE', this.parentView.el);
var $H8 = $('#A4Xiang', this.parentView.el);
var $H9 = $('#A3Xiang', this.parentView.el);
var $H10 = $('#JinEDaXie', this.parentView.el);



$H1.change(codeValue); //一旦值发生改变,触发codeValue函数
$H2.change(codeValue);
$H3.change(codeValue);
$H4.change(codeValue);
$H5.change(codeValue);
$H6.change(codeValue);
$H7.change(codeValue);
$H8.change(codeValue);
$H9.change(codeValue);
$H10.change(codeValue);

function codeValue()
{
  var H1Value = $H1.val()== ''?0:$H1.val(); //若控件值为空赋值为0,否则取对应的值
  var H2Value = $H2.val()== ''?0:$H2.val();
var H3Value = $H3.val()== ''?0:$H3.val();
var H4Value = $H4.val()== ''?0:$H4.val();

  

  var H1FloatValue = parseFloat(H1Value); //文本转为数值
  var H2FloatValue = parseFloat(H2Value);
  var H3FloatValue = parseFloat(H3Value);
  var H4FloatValue = parseFloat(H4Value);


  var sum1=H1FloatValue * H2FloatValue; //求和
  $H5.val(sum1); //计算结果赋值
var sum2=H3FloatValue * H4FloatValue; //求和
  $H6.val(sum2); //计算结果赋值
var sum3=sum1 + sum2; //求和
  $H7.val(sum3); //计算结果赋值
var sum4=H1FloatValue / 5;//求商
$H8.val(sum4); //计算结果赋值
var sum5=H3FloatValue / 5;//求商
$H9.val(sum5); //计算结果赋值
//数字转大写
  setTimeout(function(){
    var money = sum3;
    var cMoney = convertCurrency(money);
    $H10.val(cMoney);
  },100);//0.1秒后触发 setTimeout

//代码如下所示:
  function convertCurrency(money) {
    //汉字的数字
    var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
    //基本单位
    var cnIntRadice = new Array('', '拾', '佰', '仟');
    //对应整数部分扩展单位
    var cnIntUnits = new Array('', '万', '亿', '兆');
    //对应小数部分单位
    var cnDecUnits = new Array('角', '分', '毫', '厘');
    //整数金额时后面跟的字符
    var cnInteger = '整';
    //整型完以后的单位
    var cnIntLast = '元';
    //最大处理的数字
    var maxNum = 999999999999999.9999;
    //金额整数部分
    var integerNum;
    //金额小数部分
    var decimalNum;
    //输出的中文金额字符串
    var chineseStr = '';
    //分离金额后用的数组,预定义
    var parts;
    if (money == '') { return ''; }
    money = parseFloat(money);
    if (money >= maxNum) {
      //超出最大处理数字
      return '';
    }
    if (money == 0) {
      chineseStr = cnNums[0] + cnIntLast + cnInteger;
      return chineseStr;
    }
    //转换为字符串
    money = money.toString();
    if (money.indexOf('.') == -1) {
      integerNum = money;
      decimalNum = '';
    } else {
      parts = money.split('.');
      integerNum = parts[0];
      decimalNum = parts[1].substr(0, 4);
    }
    //获取整型部分转换
    if (parseInt(integerNum, 10) > 0) {
      var zeroCount = 0;
      var IntLen = integerNum.length;
      for (var i = 0; i < IntLen; i++) {
        var n = integerNum.substr(i, 1);
        var p = IntLen - i - 1;
        var q = p / 4;
        var m = p % 4;
        if (n == '0') {
          zeroCount++;
        } else {
          if (zeroCount > 0) {
            chineseStr += cnNums[0];
          }
          //归零
          zeroCount = 0;
          chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
        }
        if (m == 0 && zeroCount < 4) {
          chineseStr += cnIntUnits[q];
        }
      }
      chineseStr += cnIntLast;
    }
    //小数部分
    if (decimalNum != '') {
      var decLen = decimalNum.length;
      for (var i = 0; i < decLen; i++) {
        var 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;
    }
    return chineseStr;
  }
};

 

出库单PC:

var A4ShuLiang = mini.get('A4ShuLiang');
var A4DanJia = mini.get('A4DanJia');
var A3ShuLiang = mini.get('A3ShuLiang');
var A3DanJia = mini.get('A3DanJia');

A4ShuLiang.on('valuechanged', codeValue);
A4DanJia.on('valuechanged', codeValue);
A3ShuLiang.on('valuechanged', codeValue);
A3DanJia.on('valuechanged', codeValue);

function codeValue()
{
  var H1Value = A4ShuLiang.getValue()== ''?0:A4ShuLiang.getValue(); //若控件值为空赋值为0,否则取对应的值
  var H2Value = A4DanJia.getValue()== ''?0:A4DanJia.getValue();
  var H3Value = A3ShuLiang.getValue()== ''?0:A3ShuLiang.getValue(); 
  var H4Value = A3DanJia.getValue()== ''?0:A3DanJia.getValue();

  var H1IntValue = parseFloat(H1Value); //文本转为数值
  var H2IntValue = parseFloat(H2Value);
  var H3IntValue = parseFloat(H3Value); 
  var H4IntValue = parseFloat(H4Value);


  var sum1 = Math.abs(H1IntValue * H2IntValue );  //乘法
  mini.get('A4JinE').setValue(sum1); //计算结果赋值

  var sum2 = Math.abs(H3IntValue * H4IntValue );  //乘法
  mini.get('A3JinE').setValue(sum2); //计算结果赋值

var sum3 = Math.abs(sum1 + sum2);  //加法
  mini.get('HJJE').setValue(sum3); //计算结果赋值

var sum4 = Math.abs(H1IntValue / 5);  //除法
  mini.get('A4Xiang').setValue(sum4); //计算结果赋值

var sum5 = Math.abs(H3IntValue / 5);  //除法
  mini.get('A3Xiang').setValue(sum5); //计算结果赋值
//数字转大写
  setTimeout(function(){
    var money = sum3;
    var cMoney = convertCurrency(money);

    mini.get('JinEDaXie').setValue(cMoney);
  },100);//0.1秒后触发setTimeout函数

//代码如下所示:
  function convertCurrency(money) {
    //汉字的数字
    var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
    //基本单位
    var cnIntRadice = new Array('', '拾', '佰', '仟');
    //对应整数部分扩展单位
    var cnIntUnits = new Array('', '万', '亿', '兆');
    //对应小数部分单位
    var cnDecUnits = new Array('角', '分', '毫', '厘');
    //整数金额时后面跟的字符
    var cnInteger = '整';
    //整型完以后的单位
    var cnIntLast = '元';
    //最大处理的数字
    var maxNum = 999999999999999.9999;
    //金额整数部分
    var integerNum;
    //金额小数部分
    var decimalNum;
    //输出的中文金额字符串
    var chineseStr = '';
    //分离金额后用的数组,预定义
    var parts;
    if (money == '') { return ''; }
    money = parseFloat(money);
    if (money >= maxNum) {
      //超出最大处理数字
      return '';
    }
    if (money == 0) {
      chineseStr = cnNums[0] + cnIntLast + cnInteger;
      return chineseStr;
    }
    //转换为字符串
    money = money.toString();
    if (money.indexOf('.') == -1) {
      integerNum = money;
      decimalNum = '';
    } else {
      parts = money.split('.');
      integerNum = parts[0];
      decimalNum = parts[1].substr(0, 4);
    }
    //获取整型部分转换
    if (parseInt(integerNum, 10) > 0) {
      var zeroCount = 0;
      var IntLen = integerNum.length;
      for (var i = 0; i < IntLen; i++) {
        var n = integerNum.substr(i, 1);
        var p = IntLen - i - 1;
        var q = p / 4;
        var m = p % 4;
        if (n == '0') {
          zeroCount++;
        } else {
          if (zeroCount > 0) {
            chineseStr += cnNums[0];
          }
          //归零
          zeroCount = 0;
          chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
        }
        if (m == 0 && zeroCount < 4) {
          chineseStr += cnIntUnits[q];
        }
      }
      chineseStr += cnIntLast;
    }
    //小数部分
    if (decimalNum != '') {
      var decLen = decimalNum.length;
      for (var i = 0; i < decLen; i++) {
        var 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;
    }
    return chineseStr;
  }

};

出库单-移动:

var $H1 = $('#A4ShuLiang', this.parentView.el); // 根据id获取控件对象
var $H2 = $('#A4DanJia', this.parentView.el);
var $H3 = $('#A3ShuLiang', this.parentView.el); 
var $H4 = $('#A3DanJia', this.parentView.el);
var $H5 = $('#A4JinE', this.parentView.el);
var $H6 = $('#A3JinE', this.parentView.el);
var $H7 = $('#HJJE', this.parentView.el);
var $H8 = $('#A4Xiang', this.parentView.el);
var $H9 = $('#A3Xiang', this.parentView.el);
var $H10 = $('#JinEDaXie', this.parentView.el);



$H1.change(codeValue); //一旦值发生改变,触发codeValue函数
$H2.change(codeValue);
$H3.change(codeValue);
$H4.change(codeValue);
$H5.change(codeValue);
$H6.change(codeValue);
$H7.change(codeValue);
$H8.change(codeValue);
$H9.change(codeValue);
$H10.change(codeValue);

function codeValue()
{
  var H1Value = $H1.val()== ''?0:$H1.val(); //若控件值为空赋值为0,否则取对应的值
  var H2Value = $H2.val()== ''?0:$H2.val();
var H3Value = $H3.val()== ''?0:$H3.val();
var H4Value = $H4.val()== ''?0:$H4.val();

  

  var H1FloatValue = parseFloat(H1Value); //文本转为数值
  var H2FloatValue = parseFloat(H2Value);
  var H3FloatValue = parseFloat(H3Value);
  var H4FloatValue = parseFloat(H4Value);


  var sum1=H1FloatValue * H2FloatValue; //求和
  $H5.val(sum1); //计算结果赋值
var sum2=H3FloatValue * H4FloatValue; //求和
  $H6.val(sum2); //计算结果赋值
var sum3=sum1 + sum2; //求和
  $H7.val(sum3); //计算结果赋值
var sum4=H1FloatValue / 5;//求商
$H8.val(sum4); //计算结果赋值
var sum5=H3FloatValue / 5;//求商
$H9.val(sum5); //计算结果赋值
//数字转大写
  setTimeout(function(){
    var money = sum3;
    var cMoney = convertCurrency(money);
    $H10.val(cMoney);
  },100);//0.1秒后触发 setTimeout

//代码如下所示:
  function convertCurrency(money) {
    //汉字的数字
    var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
    //基本单位
    var cnIntRadice = new Array('', '拾', '佰', '仟');
    //对应整数部分扩展单位
    var cnIntUnits = new Array('', '万', '亿', '兆');
    //对应小数部分单位
    var cnDecUnits = new Array('角', '分', '毫', '厘');
    //整数金额时后面跟的字符
    var cnInteger = '整';
    //整型完以后的单位
    var cnIntLast = '元';
    //最大处理的数字
    var maxNum = 999999999999999.9999;
    //金额整数部分
    var integerNum;
    //金额小数部分
    var decimalNum;
    //输出的中文金额字符串
    var chineseStr = '';
    //分离金额后用的数组,预定义
    var parts;
    if (money == '') { return ''; }
    money = parseFloat(money);
    if (money >= maxNum) {
      //超出最大处理数字
      return '';
    }
    if (money == 0) {
      chineseStr = cnNums[0] + cnIntLast + cnInteger;
      return chineseStr;
    }
    //转换为字符串
    money = money.toString();
    if (money.indexOf('.') == -1) {
      integerNum = money;
      decimalNum = '';
    } else {
      parts = money.split('.');
      integerNum = parts[0];
      decimalNum = parts[1].substr(0, 4);
    }
    //获取整型部分转换
    if (parseInt(integerNum, 10) > 0) {
      var zeroCount = 0;
      var IntLen = integerNum.length;
      for (var i = 0; i < IntLen; i++) {
        var n = integerNum.substr(i, 1);
        var p = IntLen - i - 1;
        var q = p / 4;
        var m = p % 4;
        if (n == '0') {
          zeroCount++;
        } else {
          if (zeroCount > 0) {
            chineseStr += cnNums[0];
          }
          //归零
          zeroCount = 0;
          chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
        }
        if (m == 0 && zeroCount < 4) {
          chineseStr += cnIntUnits[q];
        }
      }
      chineseStr += cnIntLast;
    }
    //小数部分
    if (decimalNum != '') {
      var decLen = decimalNum.length;
      for (var i = 0; i < decLen; i++) {
        var 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;
    }
    return chineseStr;
  }
};

 

标签:用纸,滨州,val,money,decimalNum,JS,chineseStr,codeValue,var
From: https://www.cnblogs.com/xiaoweihongyan/p/17532693.html

相关文章

  • 【滨州学院】空闲资产申请计算差额JS
    PC//获取控件'KXSL'、'SQSL'的值varJinE01=mini.get('KXSL');varJinE02=mini.get('SQSL');//一旦值发生改变,触发codeValue函数JinE01.on('valuechanged',codeValue);JinE02.on('valuechanged',codeValue);funct......
  • 【滨州学院】空闲资产申请-JS
    PC://获取控件'SL'的值varJinE01=mini.get('SL');//一旦值发生改变,触发codeValue函数JinE01.on('valuechanged',codeValue);functioncodeValue(){varH1Value=JinE01.getValue()==''?0:JinE01.getValue();//若控件值为空赋值为0,否则取对应的值......
  • 【滨州学院】学生集体外出实习备案-JS-MINIUI
    表单:<divid="complex"class="mini-complex"style="background:rgb(255,255,255);padding:2px20px10px;box-shadow:rgb(144,144,144)0px0px5px;margin:10pxauto12px;font-size:14px;position:relative;height:1000px;......
  • 【滨州学院】通过学生学号查询辅导员JS-miniui
    表单内容:1<divid="complex"class="mini-complex"style="background:rgb(255,255,255);padding:2px20px10px;box-shadow:rgb(144,144,144)0px0px5px;margin:10pxauto12px;font-size:14px;font-family:MicrosoftYaHei;......
  • 前端基础-js篇(一)
    1.usestrict (1)ES5规范增加了新的语言特性并且修改了一些已经存在的特性。为了保证旧的功能还能够使用,大部分的修改是默认不生效的。(2)需要一个特殊的指令—— "usestrict" 来明确地激活这些特性。(3)当它处于脚本文件的顶部时,则整个脚本文件都将以“现代”模式进行工作。"u......
  • js的中的函数(二)
    构造函数JavaScript中,一个函数除了作为普通意义的函数外,还可以被用来定义为构造函数。什么是构造函数?就是可以用来生成一个对象的函数。例如:functionStudent(name,age,city,address){//this指向构造函数生成的对象this.name=name;this.age=ag......
  • 第九篇 - SpringBoot统一结果封装Json数据
    前面几节学习了SpringBoot和Vue的结合,以及Vue跳转到另一个Vue页面。这节学习SpringBootcontroller返回Json数据格式封装。参考链接:https://zhuanlan.zhihu.com/p/347233348第一步:在entity文件夹下新建一个ResultVo类。 ResultVo.javapackagecom.example.demo.entity;p......
  • 认识soui4js(第5篇):使用扩展控件
    无论内置控件多么丰富,也不可能满足用户所有需求。总有时候用户需要自己扩展控件。soui4js推荐使用C++来扩展控件,然后通过实现一个js模块来提供js使用。扩展控件通常涉及到图形上下文的频繁交互,如果使用js来实现,效率上会大打折扣。使用C++,没了C++和js的相互调用。使用起来就和C++......
  • GIS融合之路(五)给CesiumJS加上体积云(Volumetric Cloud)和高度雾(Height Fog)
    同样在这篇文章开始前重申一下,山海鲸并没有使用ThreeJS引擎。但由于ThreeJS引擎使用广泛,下文中直接用ThreeJS同CesiumJS的整合方案代替山海鲸中3D引擎和CesiumJS整合。系列传送门:同样在这篇文章开始前重申一下,山海鲸并没有使用ThreeJS引擎。但由于ThreeJS引擎使用广泛,下文中直接......
  • 2023年7月最新全国省市区县和乡镇街道行政区划矢量边界坐标经纬度地图数据 shp geojso
    发现个可以免费下载全国 geojson 数据的网站,推荐一下。支持全国、省级、市级、区/县级、街道/乡镇级以及各级的联动数据,支持导入矢量地图渲染框架中使用,例如:D3、Echarts等geojson数据下载地址:https://geojson.hxkj.vip该项目github地址:https://github.com/TangSY/echarts-m......