Browse Source

修复页面卡顿问题

liangbowen 1 week ago
parent
commit
80386861f3
3 changed files with 55 additions and 67 deletions
  1. 43 49
      src/utils/utils.js
  2. 11 17
      src/views/components/printTable.vue
  3. 1 1
      vue.config.js

+ 43 - 49
src/utils/utils.js

@@ -5,7 +5,7 @@
 /*
  * @description 获取地址栏hash参数
  */
-export const getUrlHash = (paramName) => {
+export const getUrlHash = paramName => {
   const urlParams = {};
   const url = window.location.href;
   const idx = url.indexOf("#");
@@ -14,7 +14,7 @@ export const getUrlHash = (paramName) => {
   }
   let params = url.substring(url.indexOf("#") + 1);
   params = params.split("&");
-  params.forEach((item) => {
+  params.forEach(item => {
     const param = item.split("=");
     urlParams[param[0]] = decodeURIComponent(param[1]);
   });
@@ -28,7 +28,7 @@ export const getUrlHash = (paramName) => {
  * 倒计时
  * @param {String} target 目标时间
  */
-export const countDown = (target) => {
+export const countDown = target => {
   const oDate = new Date(); // 获取日期对象
   const oldTime = oDate.getTime(); // 现在距离1970年的毫秒数
   const newDate = new Date(
@@ -47,7 +47,7 @@ export const countDown = (target) => {
       day,
       hour,
       minute,
-      second,
+      second
     };
   }
   return false;
@@ -58,7 +58,7 @@ export const countDown = (target) => {
  */
 export const downloadBlob = (res, filename) => {
   const blob = new Blob([res], {
-    type: "application/vnd.ms-excel",
+    type: "application/vnd.ms-excel"
   });
   if (window.navigator && window.navigator.msSaveOrOpenBlob) {
     window.navigator.msSaveOrOpenBlob(blob, filename);
@@ -73,13 +73,13 @@ export const downloadBlob = (res, filename) => {
 // 计算数组对象的总数量和总价格,传列表,num,price可传可不传
 export const countNumPrice = (list, num, price) => {
   if (!num) {
-    num = 'ordCnt'
+    num = "ordCnt";
   }
   if (!price) {
-    price = 'purcAmt'
+    price = "purcAmt";
   }
-  var amount = { num: 0, price: 0 }
-  list.forEach((item) => {
+  var amount = { num: 0, price: 0 };
+  list.forEach(item => {
     if (item[num]) {
       amount.num += parseFloat(item[num]);
     }
@@ -90,21 +90,21 @@ export const countNumPrice = (list, num, price) => {
   amount.price = amount.price.toFixed(2);
 
   return amount;
-}
+};
 
 // 计算采购金额=数量*单价,传数量和单价
 export const getTotalAmount = (num, price) => {
   if (num && price) {
-    let prices = 0
-    prices += parseFloat(num) * parseFloat(price)
-    prices = prices.toFixed(2)
-    return prices
+    let prices = 0;
+    prices += parseFloat(num) * parseFloat(price);
+    prices = prices.toFixed(2);
+    return prices;
   } else {
-    return ''
+    return "";
   }
-}
+};
 // 获取截止日期前三个月的日期
-export const getThreeMonthAgoDate = (deadline) => {
+export const getThreeMonthAgoDate = deadline => {
   const year = deadline.getFullYear();
   const month = deadline.getMonth() + 1;
   const day = deadline.getDate();
@@ -118,32 +118,30 @@ export const getThreeMonthAgoDate = (deadline) => {
   const dayAgo = parseInt(maxDays) < parseInt(day) ? maxDays : day;
   const threeMonthsAgoDate = yearAgo + "-" + monthAgo + "-" + dayAgo;
   return threeMonthsAgoDate;
-}
+};
 //表单验证错误直接滚动到错误位置
 export const moveToError = () => {
-  let isError = document.getElementsByClassName('is-error');
+  let isError = document.getElementsByClassName("is-error");
   if (isError.length) {
     isError[0].scrollIntoView({
-      block: 'center',
-      behavior: 'smooth'
-
-    })
+      block: "center",
+      behavior: "smooth"
+    });
   }
 };
 //汉字转中文
-export const numberToChineseAmount = (money) => {
-  var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆',
-    '柒', '捌', '玖');
+export const numberToChineseAmount = money => {
+  var cnNums = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];
   // 基本单位
-  var cnIntRadice = new Array('', '拾', '佰', '仟');
+  var cnIntRadice = ["", "拾", "佰", "仟"];
   // 对应整数部分扩展单位
-  var cnIntUnits = new Array('', '万', '亿', '兆');
+  var cnIntUnits = ["", "万", "亿", "兆"];
   // 对应小数部分单位
-  var cnDecUnits = new Array('角', '分', '毫', '厘');
+  var cnDecUnits = ["角", "分", "毫", "厘"];
   // 整数金额时后面跟的字符
-  var cnInteger = '整';
+  var cnInteger = "整";
   // 整型完以后的单位
-  var cnIntLast = '元';
+  var cnIntLast = "元";
   // 最大处理的数字
   var maxNum = 999999999999999.9999;
   // 金额整数部分
@@ -151,16 +149,16 @@ export const numberToChineseAmount = (money) => {
   // 金额小数部分
   var decimalNum;
   // 输出的中文金额字符串
-  var chineseStr = '';
+  var chineseStr = "";
   // 分离金额后用的数组,预定义
   var parts;
-  if (money == '') {
-    return '';
+  if (money == "") {
+    return "";
   }
   money = parseFloat(money);
   if (money >= maxNum) {
     // 超出最大处理数字
-    return '';
+    return "";
   }
   if (money == 0) {
     chineseStr = cnNums[0] + cnIntLast + cnInteger;
@@ -168,11 +166,11 @@ export const numberToChineseAmount = (money) => {
   }
   // 转换为字符串
   money = money.toString();
-  if (money.indexOf('.') == -1) {
+  if (money.indexOf(".") == -1) {
     integerNum = money;
-    decimalNum = '';
+    decimalNum = "";
   } else {
-    parts = money.split('.');
+    parts = money.split(".");
     integerNum = parts[0];
     decimalNum = parts[1].substr(0, 4);
   }
@@ -185,7 +183,7 @@ export const numberToChineseAmount = (money) => {
       var p = IntLen - i - 1;
       var q = p / 4;
       var m = p % 4;
-      if (n == '0') {
+      if (n == "0") {
         zeroCount++;
       } else {
         if (zeroCount > 0) {
@@ -193,8 +191,7 @@ export const numberToChineseAmount = (money) => {
         }
         // 归零
         zeroCount = 0;
-        chineseStr += cnNums[parseInt(n)]
-          + cnIntRadice[m];
+        chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
       }
       if (m == 0 && zeroCount < 4) {
         chineseStr += cnIntUnits[q];
@@ -203,22 +200,19 @@ export const numberToChineseAmount = (money) => {
     chineseStr += cnIntLast;
   }
   // 小数部分
-  if (decimalNum != '') {
+  if (decimalNum != "") {
     var decLen = decimalNum.length;
     for (var i = 0; i < decLen; i++) {
       var n = decimalNum.substr(i, 1);
-      if (n != '0') {
+      if (n != "0") {
         chineseStr += cnNums[Number(n)] + cnDecUnits[i];
       }
     }
   }
-  if (chineseStr == '') {
+  if (chineseStr == "") {
     chineseStr += cnNums[0] + cnIntLast + cnInteger;
-  } else if (decimalNum == '') {
+  } else if (decimalNum == "") {
     chineseStr += cnInteger;
   }
   return chineseStr;
-}
-
-
-
+};

+ 11 - 17
src/views/components/printTable.vue

@@ -6,11 +6,6 @@
       </div>
       <table class="printTable" border="1" style="table-layout: auto">
         <thead>
-          <!-- <tr>
-            <td colspan="14" stlye="border:none">{{ userName }}</td>
-          </tr> -->
-        </thead>
-        <thead>
           <tr>
             <th
               v-for="(item, index) in tableHeader"
@@ -24,14 +19,6 @@
         <tbody>
           <tr v-for="(item, index) in im" :key="index">
             <td v-for="(itm, idx) in tableHeader" :key="idx">
-              <!-- <span v-if="itm.value == 'mcType'">
-                <span v-if="item.mcsType == '0'">普通耗材</span>
-                <span v-if="item.mcsType == '1'">高值耗材</span>
-                <span v-if="item.mcsType == '2'">试剂</span>
-                <span v-if="item.mcsType == '3'">总务耗材</span>
-                <span v-if="item.mcsType == '4'">低值可收费</span>
-                <span v-if="item.mcsType == '5'">低值不可收费</span>
-              </span> -->
               <span v-if="itm.value == 'iFas'">
                 <span v-if="item.isFas == '0'">否</span>
                 <span v-if="item.isFas == '1'">是</span>
@@ -42,7 +29,7 @@
           </tr>
           <tr>
             <td>合计</td>
-            <td colspan="5">{{ numBeroMount }}</td>
+            <td colspan="5">{{ chaseData(im) }}</td>
             <td>{{ amtNumber(im) }}</td>
             <td colspan="7"></td>
           </tr>
@@ -97,9 +84,16 @@ export default {
         nub += Number(item.amt);
       });
       let pasNub = parseFloat(nub.toFixed(4));
-      let newNub = numberToChineseAmount(pasNub);
-      this.numBeroMount = newNub;
       return pasNub + "元";
+    },
+    chaseData(item) {
+      let nub = 0;
+      item.forEach(item => {
+        nub += Number(item.amt);
+      });
+      let pasNub = parseFloat(nub.toFixed(4));
+      let newNub = numberToChineseAmount(pasNub);
+      return newNub;
     }
   },
   mounted() {
@@ -111,7 +105,7 @@ export default {
       this.$route.query.stmtPrd +
       "结算单";
     this.tableLabel = this.$store.state.user.username;
-    let newData = this.paginData(this.tableData, 5);
+    let newData = this.paginData(this.tableData, 15);
     this.taData = newData;
   }
 };

+ 1 - 1
vue.config.js

@@ -46,7 +46,7 @@ module.exports = {
       // change xxx-api/login => mock/login
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
-        target: `http://192.168.0.246:8602`,
+        target: `http://127.0.0.1:8603`,
         // target: `http://192.168.0.56:8502`,
         // target: `http://192.168.0.248:6000`,
         //target: `http://api.szlcloud.com/admin`,