From e3f6f75938f45f2672bf0f0320cb92a4f96ff696 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 01 七月 2024 14:56:25 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/components/do/b1-ins-order/add.vue                 |   29 ++
 src/components/tool/excel.vue                          |    2 
 src/main.js                                            |    4 
 src/components/do/b1-inspect-order-plan/Inspection.vue |   64 ++++--
 package.json                                           |    1 
 src/util/excelFountion.js                              |  297 ++++++++++++++++-------------
 src/util/downExcelByLuckSheet.js                       |  193 +++++++++++++++++++
 7 files changed, 423 insertions(+), 167 deletions(-)

diff --git a/package.json b/package.json
index 5e1b7c1..1e8ffa0 100644
--- a/package.json
+++ b/package.json
@@ -35,6 +35,7 @@
     "muse-ui": "^3.0.2",
     "node-emoji": "^1.11.0",
     "popper.js": "^1.16.1",
+    "print-js": "^1.6.0",
     "qs": "^6.11.0",
     "sweetalert": "^2.1.2",
     "tinymce": "^5.10.3",
diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue
index 2b66a27..c9098d0 100644
--- a/src/components/do/b1-ins-order/add.vue
+++ b/src/components/do/b1-ins-order/add.vue
@@ -256,14 +256,14 @@
         <el-col class="search_thing" :span="6">
           <div class="search_label">宸ョ▼鍚嶇О锛�</div>
           <div class="search_input">
-            <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.engineering"
+            <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.engineering"
               :readonly="active>1"></el-input>
           </div>
         </el-col>
         <el-col class="search_thing" :span="6">
           <div class="search_label">宸ョ▼鍚嶇ОEN锛�</div>
           <div class="search_input">
-            <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.engineeringEn"
+            <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.engineeringEn"
               :readonly="active>1"></el-input>
           </div>
         </el-col>
@@ -302,19 +302,19 @@
         <el-col class="search_thing" :span="6">
           <div class="search_label">OTC璁㈠崟鍙凤細</div>
           <div class="search_input">
-            <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.otcCode" :readonly="active>1"></el-input>
+            <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.otcCode" :readonly="active>1"></el-input>
           </div>
         </el-col>
         <el-col class="search_thing" :span="6">
           <div class="search_label">濮旀墭浜猴細</div>
           <div class="search_input">
-            <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.prepareUser" :readonly="active>1"></el-input>
+            <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.prepareUser" :readonly="active>1"></el-input>
           </div>
         </el-col>
         <el-col class="search_thing" :span="6" style="align-items: flex-start;margin: 8px 0;">
           <div class="search_label">澶囨敞锛�</div>
           <div class="search_input">
-            <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" size="small" clearable
+            <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" size="small" clearable :placeholder="active>1 ? '' : '璇疯緭鍏�'"
               v-model="addObj.remark" :readonly="active>1"></el-input>
           </div>
         </el-col>
@@ -331,7 +331,7 @@
         <div class="search_thing">
           <div class="search_label">鏍峰搧鍨嬪彿锛�</div>
           <div class="search_input">
-            <el-select v-model="model" placeholder="璇烽�夋嫨" filterable allow-create default-first-option size="small"
+            <el-select v-model="model" :placeholder="active>1 ? '' : '璇疯緭鍏�'" filterable allow-create default-first-option size="small"
               @change="changeModel">
               <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value">
               </el-option>
@@ -341,7 +341,7 @@
         <div class="search_thing">
           <div class="search_label">妫�楠屾爣鍑嗭細</div>
           <div class="search_input">
-            <el-select v-model="standardMethodListId" placeholder="璇烽�夋嫨" size="small" @focus="methodFocus"
+            <el-select v-model="standardMethodListId" :placeholder="active>1 ? '' : '璇疯緭鍏�'" size="small" @focus="methodFocus"
               :loading="methodLoad" @change="changeStandardMethodListId">
               <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id">
               </el-option>
@@ -414,7 +414,17 @@
         @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect"
         :row-class-name="tableRowClassName" v-loading="getProductLoad" @select-all="handleAll">
         <el-table-column type="selection" width="65" :selectable="selectable" v-if="active==1"></el-table-column>
-        <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" show-overflow-tooltip>
+          <template slot="header" slot-scope="scope">
+            <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px">
+              <span>妫�楠岄」</span>
+              <el-input
+              v-model="inspectionItem"
+              size="mini"
+              placeholder="璇疯緭鍏�"/>
+            </div>
+          </template>
+        </el-table-column>
         <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140"
           show-overflow-tooltip></el-table-column>
         <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" min-width="130" show-overflow-tooltip :filters="filters"
@@ -865,7 +875,8 @@
         model: null,
         standardMethodListId: null,
         symbolList:[
-        'RTS','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
+        'RTS','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'],
+        inspectionItem:null,
       }
     },
     watch: {
diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue
index 454ee55..9526916 100644
--- a/src/components/do/b1-inspect-order-plan/Inspection.vue
+++ b/src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -1251,8 +1251,10 @@
               })
             })
             if (item.v.ps != undefined && item.v.ps.value == '缁撹') {
-              if (this.currentSample.insProduct.find(m => m.id == item.i)) {
+              try {
+                if (this.currentSample.insProduct.find(m => m.id == item.i)) {
                 let ask = this.currentSample.insProduct.find(m => m.id == item.i).ask?this.currentSample.insProduct.find(m => m.id == item.i).ask.split('&'):null;
+                console.log(comValue)
                 let res = Object.values(comValue)[0]
                 let comp = []
                 console.log(res, ask)
@@ -1303,6 +1305,10 @@
                 }
                 this.saveInsContext()
               }
+              } catch (error) {
+
+              }
+
             } else {
               let comResult = ''
               try {
@@ -1409,26 +1415,34 @@
               //     }
               //     break;
               // }
-              list.forEach(a => {
-                if (a[0].r == item.r && comResult !== '') {
-                  for (var b in a) {
-                    if (a[b].c == item.c) {
-                      try{
-                        let val = parseFloat(comResult.toFixed(3))
-                        a[b].v.v = isNaN(val) ? '' : val
-                      }catch(e){
-                        a[b].v.v = comResult
+              try {
+                list.forEach(a => {
+                  if (a[0].r == item.r && comResult !== '') {
+                    for (var b in a) {
+                      if (a[b].c == item.c) {
+                        try{
+                          let val = parseFloat(comResult.toFixed(3))
+                          a[b].v.v = isNaN(val) ? '' : val
+                        }catch(e){
+                          a[b].v.v = comResult
+                        }
+                        break
                       }
-                      break
                     }
                   }
-                }
-              })
-              this.changeInput(comResult, `${id}-${item.r}-${item.c}-${pId}`) //鏀瑰彉鏈�缁堝��
+                })
+                this.changeInput(comResult, `${id}-${item.r}-${item.c}-${pId}`) //鏀瑰彉鏈�缁堝��
+              } catch (error) {
+
+              }
             }
           }
         })
-        this.getCurrentInsProduct(pId)
+        try {
+          this.getCurrentInsProduct(pId)
+        } catch (error) {
+
+        }
       },
       getCurrentInsProduct(pId) {
         if (!this.tableList[0].insProductResult) {
@@ -1743,15 +1757,17 @@
         return
       },
       saveInsContext() {
-        this.$axios.post(this.$api.insOrderPlan.saveInsContext, {
-          param: JSON.stringify(this.param)
-        }).then(res => {
-          if (res.code == 201) {
-            this.$message.error('淇濆瓨澶辫触')
-            return
-          }
-          this.$message.success('宸蹭繚瀛�')
-        })
+        if(this.param){
+          this.$axios.post(this.$api.insOrderPlan.saveInsContext, {
+            param: JSON.stringify(this.param)
+          }).then(res => {
+            if (res.code == 201) {
+              this.$message.error('淇濆瓨澶辫触')
+              return
+            }
+            this.$message.success('宸蹭繚瀛�')
+          })
+        }
       },
       changeEquip(val, n) {
         for (let i in this.equipOptions) {
diff --git a/src/components/tool/excel.vue b/src/components/tool/excel.vue
index 83aed8e..ce500aa 100644
--- a/src/components/tool/excel.vue
+++ b/src/components/tool/excel.vue
@@ -39,7 +39,7 @@
 </template>
 
 <script>
-import { data } from 'jquery';
+import {exportExcel} from '../../util/downExcelByLuckSheet'
 	// import { data } from 'jquery';
 	export default {
 		props: ['data', 'execlTitle'],
diff --git a/src/main.js b/src/main.js
index ef61e96..b63c198 100644
--- a/src/main.js
+++ b/src/main.js
@@ -15,9 +15,9 @@
 Vue.prototype.PROJECT = '妫�娴嬩腑蹇�'
 // Vue.prototype.PROJECT = '瑁呭鐢电紗'
 //鏈湴
-Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80";
+// Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80";
 // const javaApi = 'http://127.0.0.1:8001';
-const javaApi = 'http://192.168.0.104:8001';
+const javaApi = 'http://192.168.47.249:8001';
 
 //浜�
 // Vue.prototype.LOCATIONVUE = "http://114.132.189.42:8080";
diff --git a/src/util/downExcelByLuckSheet.js b/src/util/downExcelByLuckSheet.js
new file mode 100644
index 0000000..6e9c4d1
--- /dev/null
+++ b/src/util/downExcelByLuckSheet.js
@@ -0,0 +1,193 @@
+// const Excel = require('exceljs')
+
+const exportExcel =  async function (luckysheet) { // 鍙傛暟涓簂uckysheet.getluckysheetfile()鑾峰彇鐨勫璞�
+	// 1.鍒涘缓宸ヤ綔绨匡紝鍙互涓哄伐浣滅翱娣诲姞灞炴��
+	const workbook = new Excel.Workbook()
+	// 2.鍒涘缓琛ㄦ牸锛岀浜屼釜鍙傛暟鍙互閰嶇疆鍒涘缓浠�涔堟牱鐨勫伐浣滆〃
+	luckysheet.every(function (table) {
+		if (table.data.length === 0) return true
+		const worksheet = workbook.addWorksheet(table.name)
+		// 3.璁剧疆鍗曞厓鏍煎悎骞�,璁剧疆鍗曞厓鏍艰竟妗�,璁剧疆鍗曞厓鏍兼牱寮�,璁剧疆鍊�
+		setStyleAndValue(table.data, worksheet)
+		setMerge(table.config.merge, worksheet)
+		setBorder(table.config.borderInfo, worksheet)
+		return true
+	})
+	// 4.鍐欏叆 buffer
+	const buffer = await workbook.xlsx.writeBuffer()
+	return buffer
+}
+
+var setMerge = function (luckyMerge = {}, worksheet) {
+	const mergearr = Object.values(luckyMerge)
+	mergearr.forEach(function (elem) { // elem鏍煎紡锛歿r: 0, c: 0, rs: 1, cs: 2}
+		// 鎸夊紑濮嬭锛屽紑濮嬪垪锛岀粨鏉熻锛岀粨鏉熷垪鍚堝苟锛堢浉褰撲簬 K10:M12锛�
+		worksheet.mergeCells(elem.r + 1, elem.c + 1, elem.r + elem.rs, elem.c + elem.cs)
+	})
+}
+
+var setBorder = function (luckyBorderInfo, worksheet) {
+	if (!Array.isArray(luckyBorderInfo)) return
+	luckyBorderInfo.forEach(function (elem) {
+		let border = borderConvert(elem.borderType, elem.style, elem.color)
+		let rang = elem.range[0]
+		// console.log(rang.column_focus + 1, rang.row_focus + 1)
+		worksheet.getCell(rang.row_focus + 1, rang.column_focus + 1).border = border
+	})
+}
+var setStyleAndValue = function (cellArr, worksheet) {
+	if (!Array.isArray(cellArr)) return
+	cellArr.forEach(function (row, rowid) {
+		row.every(function (cell, columnid) {
+			if (!cell) return true
+			let fill = fillConvert(cell.bg)
+			let font = fontConvert(cell.ff, cell.fc, cell.bl, cell.it, cell.fs, cell.cl, cell.ul)
+			let alignment = alignmentConvert(cell.vt, cell.ht, cell.tb, cell.tr)
+			let value
+			if (cell.f) {
+				value = { formula: cell.f, result: cell.v }
+			} else {
+				value = cell.v
+			}
+			let target = worksheet.getCell(rowid + 1, columnid + 1)
+			target.fill = fill
+			target.font = font
+			target.alignment = alignment
+			target.value = value
+			return true
+		})
+	})
+}
+
+var fillConvert = function (bg) {
+	if (!bg) {
+		return {}
+	}
+	let fill = {
+		type: 'pattern',
+		pattern: 'solid',
+		fgColor: {argb: bg.replace('#', '')}
+	}
+	return fill
+}
+
+var fontConvert = function (ff = 0, fc = '#000000', bl = 0, it = 0, fs = 10, cl = 0, ul = 0) { // luckysheet锛歠f(鏍峰紡), fc(棰滆壊), bl(绮椾綋), it(鏂滀綋), fs(澶у皬), cl(鍒犻櫎绾�), ul(涓嬪垝绾�)
+	const luckyToExcel = {
+		0: '寰蒋闆呴粦',
+		1: '瀹嬩綋锛圫ong锛�',
+		2: '榛戜綋锛圫T Heiti锛�',
+		3: '妤蜂綋锛圫T Kaiti锛�',
+		4: '浠垮畫锛圫T FangSong锛�',
+		5: '鏂板畫浣擄紙ST Song锛�',
+		6: '鍗庢枃鏂伴瓘',
+		7: '鍗庢枃琛屾シ',
+		8: '鍗庢枃闅朵功',
+		9: 'Arial',
+		10: 'Times New Roman ',
+		11: 'Tahoma ',
+		12: 'Verdana',
+		num2bl: function (num) {
+			return num === 0 ? false : true
+		}
+	}
+
+	let font = {
+		name: luckyToExcel[ff],
+		family: 1,
+		size: fs,
+		color: {argb: fc.replace('#', '')},
+		bold: luckyToExcel.num2bl(bl),
+		italic: luckyToExcel.num2bl(it),
+		underline: luckyToExcel.num2bl(ul),
+		strike: luckyToExcel.num2bl(cl)
+	}
+
+	return font
+}
+
+var alignmentConvert = function (vt = 'default', ht = 'default', tb = 'default', tr = 'default') { // luckysheet:vt(鍨傜洿), ht(姘村钩), tb(鎹㈣), tr(鏃嬭浆)
+	const luckyToExcel = {
+		vertical: {
+			0: 'middle',
+			1: 'top',
+			2: 'bottom',
+			default: 'top'
+		},
+		horizontal: {
+			0: 'center',
+			1: 'left',
+			2: 'right',
+			default: 'left'
+		},
+		wrapText: {
+			0: false,
+			1: false,
+			2: true,
+			default: false
+		},
+		textRotation: {
+			0: 0,
+			1: 45,
+			2: -45,
+			3: 'vertical',
+			4: 90,
+			5: -90,
+			default: 0
+		}
+	}
+
+	let alignment = {
+		vertical: luckyToExcel.vertical[vt],
+		horizontal: luckyToExcel.horizontal[ht],
+		wrapText: luckyToExcel.wrapText[tb],
+		textRotation: luckyToExcel.textRotation[tr]
+	}
+	return alignment
+
+}
+
+var borderConvert = function (borderType, style = 1, color = '#000') { // 瀵瑰簲luckysheet鐨刢onfig涓璪orderinfo鐨勭殑鍙傛暟
+	if (!borderType) {
+		return {}
+	}
+	const luckyToExcel = {
+		type: {
+			'border-all': 'all',
+			'border-top': 'top',
+			'border-right': 'right',
+			'border-bottom': 'bottom',
+			'border-left': 'left'
+		},
+		style: {
+			0: 'none',
+			1: 'thin',
+			2: 'hair',
+			3: 'dotted',
+			4: 'dashDot', // 'Dashed',
+			5: 'dashDot',
+			6: 'dashDotDot',
+			7: 'double',
+			8: 'medium',
+			9: 'mediumDashed',
+			10: 'mediumDashDot',
+			11: 'mediumDashDotDot',
+			12: 'slantDashDot',
+			13: 'thick'
+		}
+	}
+	let template = {style: luckyToExcel.style[style], color: {argb: color.replace('#', '')}}
+	let border = {}
+	if (luckyToExcel.type[borderType] === 'all') {
+		border['top'] = template
+		border['right'] = template
+		border['bottom'] = template
+		border['left'] = template
+	} else {
+		border[luckyToExcel.type[borderType]] = template
+	}
+	return border
+}
+
+export default{
+  exportExcel
+}
diff --git a/src/util/excelFountion.js b/src/util/excelFountion.js
index bfe234e..75988a1 100644
--- a/src/util/excelFountion.js
+++ b/src/util/excelFountion.js
@@ -6,13 +6,17 @@
  * @returns 杩斿洖鎵�鏈夊弬鏁扮殑鍜岋紝濡傛灉鍙傛暟鍒楄〃涓虹┖鎴栧弬鏁扮被鍨嬮潪鏁板�煎瀷锛屽垯杩斿洖null
  */
 function SUM(...val){
-  let num = null;
-  if(val&&val.length>0){
-    val.forEach(item=>{
-      num+=item;
-    })
+  try {
+    let num = null;
+    if(val&&val.length>0){
+      val.forEach(item=>{
+        num+=item;
+      })
+    }
+    return num;
+  } catch (error) {
+
   }
-  return num;
 }
 /**
  * 璁$畻浼犲叆鍙傛暟涓殑鏈�澶у��
@@ -21,16 +25,20 @@
  * @returns 杩斿洖鏈�澶у�硷紝濡傛灉鍙傛暟鍒楄〃涓虹┖鎴栦负null/undefined/''锛屽垯杩斿洖null
  */
 function MAX(...val){
-  let max = null;
-  if(val&&val.length>0){
-    val = val.filter(item=>item!=null&&item!=='')
-    if(val.length>0){
-      max = Math.max(...val)
-    }else{
-      max = null;
+  try {
+    let max = null;
+    if(val&&val.length>0){
+      val = val.filter(item=>item!=null&&item!=='')
+      if(val.length>0){
+        max = Math.max(...val)
+      }else{
+        max = null;
+      }
     }
+    return max;
+  } catch (error) {
+
   }
-  return max;
 }
 /**
  * 璁$畻浼犲叆鍙傛暟涓殑鏈�灏忓��
@@ -39,15 +47,19 @@
  * @returns 杩斿洖浼犲叆鍙傛暟涓殑鏈�灏忓�硷紝濡傛灉浼犲叆鍙傛暟涓虹┖鎴栨墍鏈夊�煎潎涓簄ull鎴栫┖瀛楃涓诧紝鍒欒繑鍥瀗ull
  */
 function MIN(...val){
-  let min = null;
-  if(val&&val.length>0){
-    val = val.filter(item=>item!=null&&item!=='')
-    console.log(val)
-    if(val.length>0){
-      min = Math.min(...val)
+  try {
+    let min = null;
+    if(val&&val.length>0){
+      val = val.filter(item=>item!=null&&item!=='')
+      console.log(val)
+      if(val.length>0){
+        min = Math.min(...val)
+      }
     }
+    return min;
+  } catch (error) {
+
   }
-  return min;
 }
 /**
  * 璁$畻缁欏畾鏁板�肩殑骞冲潎鍊�
@@ -56,20 +68,24 @@
  * @returns 杩斿洖骞冲潎鍊硷紝濡傛灉鏁板�煎垪琛ㄤ负绌烘垨鍖呭惈闈炴暟鍊奸」锛屽垯杩斿洖null
  */
 function AVERAGE(...val){
-  let num = null;
-  let arr = [];
-  if(val&&val.length>0){
-    arr = val.filter(item=>item!=null&&item!=='')
-    arr.forEach(item=>{
-      num+=item;
-    })
-    if(arr.length>0){
-      return num/arr.length;
+  try {
+    let num = null;
+    let arr = [];
+    if(val&&val.length>0){
+      arr = val.filter(item=>item!=null&&item!=='')
+      arr.forEach(item=>{
+        num+=item;
+      })
+      if(arr.length>0){
+        return num/arr.length;
+      }else{
+        return null;
+      }
     }else{
       return null;
     }
-  }else{
-    return null;
+  } catch (error) {
+
   }
 }
 /**
@@ -79,7 +95,11 @@
  * @returns 杩斿洖璇ユ暟鍊肩殑缁濆鍊�
  */
 function ABS(val){
-  return Math.abs(val);
+  try {
+    return Math.abs(val);
+  } catch (error) {
+
+  }
 }
 /**
  * 璁$畻涓�缁勬暟瀛楃殑涓綅鏁�
@@ -88,24 +108,28 @@
  * @returns 濡傛灉鍙傛暟涓湁鏈夋晥鐨勬暟瀛楋紝鍒欒繑鍥炶绠楀嚭鐨勪腑浣嶆暟锛涘惁鍒欒繑鍥瀗ull
  */
 function MEDIAN(...val){
-  let arr = [];
-  if(val&&val.length>0){
-    arr = val.filter(item=>item!=null&&item!=='')
-    const sortedArr = arr.sort((a, b) => a - b);
-    // 璁$畻涓綅鏁�
-    const half = Math.floor(sortedArr.length / 2);
-    if(arr.length>0){
-      // 濡傛灉鏁扮粍闀垮害鏄鏁帮紝鐩存帴鍙栦腑闂寸殑鍏冪礌
-      if (sortedArr.length % 2 === 1) {
-        return sortedArr[half];
-      } else { // 濡傛灉鏁扮粍闀垮害鏄伓鏁帮紝鍙栦腑闂翠袱涓厓绱犵殑骞冲潎鍊�
-        return (sortedArr[half - 1] + sortedArr[half]) / 2;
+  try {
+    let arr = [];
+    if(val&&val.length>0){
+      arr = val.filter(item=>item!=null&&item!=='')
+      const sortedArr = arr.sort((a, b) => a - b);
+      // 璁$畻涓綅鏁�
+      const half = Math.floor(sortedArr.length / 2);
+      if(arr.length>0){
+        // 濡傛灉鏁扮粍闀垮害鏄鏁帮紝鐩存帴鍙栦腑闂寸殑鍏冪礌
+        if (sortedArr.length % 2 === 1) {
+          return sortedArr[half];
+        } else { // 濡傛灉鏁扮粍闀垮害鏄伓鏁帮紝鍙栦腑闂翠袱涓厓绱犵殑骞冲潎鍊�
+          return (sortedArr[half - 1] + sortedArr[half]) / 2;
+        }
+      }else{
+        return null;
       }
     }else{
       return null;
     }
-  }else{
-    return null;
+  } catch (error) {
+
   }
 }
 
@@ -184,27 +208,31 @@
  * @returns 杩斿洖涓�涓寘鍚潗鏍囦俊鎭殑鏁扮粍
  */
 function changeParameter(f){
-  let arr = getABCList(f)
-  let arr2 = []
-  arr.forEach(item=>{
-    if(item.includes(':')){
-      let r0 = getIdFromColumnName(item.split(':')[0]).r;
-      let c0 = getIdFromColumnName(item.split(':')[0]).c;
-      let r1 = getIdFromColumnName(item.split(':')[1]).r;
-      let c1 = getIdFromColumnName(item.split(':')[1]).c;
-      for (let i = Number(r0); i <= Number(r1); i++) {
-        for (let u = Number(c0); u <= Number(c1); u++) {
-          arr2.push({
-            r: i,
-            c: u
-          })
+  try {
+    let arr = getABCList(f)
+    let arr2 = []
+    arr.forEach(item=>{
+      if(item.includes(':')){
+        let r0 = getIdFromColumnName(item.split(':')[0]).r;
+        let c0 = getIdFromColumnName(item.split(':')[0]).c;
+        let r1 = getIdFromColumnName(item.split(':')[1]).r;
+        let c1 = getIdFromColumnName(item.split(':')[1]).c;
+        for (let i = Number(r0); i <= Number(r1); i++) {
+          for (let u = Number(c0); u <= Number(c1); u++) {
+            arr2.push({
+              r: i,
+              c: u
+            })
+          }
         }
+      }else{
+        arr2.push(getIdFromColumnName(item))
       }
-    }else{
-      arr2.push(getIdFromColumnName(item))
-    }
-  })
-  return arr2;
+    })
+    return arr2;
+  } catch (error) {
+
+  }
 }
 /**
  * 鑾峰彇鍖呭惈 ABC 瀛楃鐨勫垪琛�
@@ -213,22 +241,26 @@
  * @returns 鍖呭惈 ABC 瀛楃鐨勬暟缁勫垪琛�
  */
 function getABCList(f){
-  let regex = /[=\+\-\*\%\(\)\/\^\s]/g;
-  let fouList = [
-    "SUM",
-    'MAX',
-    'MIN',
-    'AVERAGE',
-    'APS',
-  ]
-  f = f.replace(regex, ',')
-  fouList.forEach(item=>{
-    f = f.replaceAll(item,',')
-  })
-  let arr = f.split(',').filter(item=>{
-    return item&& /[a-zA-Z]/.test(item)&&item!='undefined'&&item!='null'
-  });
-  return arr;
+  try {
+    let regex = /[=\+\-\*\%\(\)\/\^\s]/g;
+    let fouList = [
+      "SUM",
+      'MAX',
+      'MIN',
+      'AVERAGE',
+      'APS',
+    ]
+    f = f.replace(regex, ',')
+    fouList.forEach(item=>{
+      f = f.replaceAll(item,',')
+    })
+    let arr = f.split(',').filter(item=>{
+      return item&& /[a-zA-Z]/.test(item)&&item!='undefined'&&item!='null'
+    });
+    return arr;
+  } catch (error) {
+
+  }
 }
 /**
  * 鑾峰彇鎵�鏈夊崟鍏冩牸
@@ -237,12 +269,16 @@
  * @returns 杩斿洖涓�涓璞★紝鍏堕敭涓哄崟鍏冩牸鐨勫敮涓�鏍囪瘑绗︼紙鐢卞垪鍜岃ID鎷兼帴鑰屾垚锛夛紝鍊间负null
  */
 function getAllCell(f){
-  let arr = changeParameter(f)
-  let arr0 = {}
-  arr.forEach(item=>{
-    arr0[getColumnNameFromId(`${item.c}`+'-'+`${item.r}`)] = null
-  })
-  return arr0;
+  try {
+    let arr = changeParameter(f)
+    let arr0 = {}
+    arr.forEach(item=>{
+      arr0[getColumnNameFromId(`${item.c}`+'-'+`${item.r}`)] = null
+    })
+    return arr0;
+  } catch (error) {
+
+  }
 }
 
 /**
@@ -253,55 +289,54 @@
  * @returns 杩斿洖璁$畻鍚庣殑缁撴灉锛屽鏋滆绠楀け璐ュ垯杩斿洖0
  */
 function compute(f,comValue){
-  let str = f
-  // 鑾峰彇鍗曞厓鏍煎搴斿��
-  let arr = getAllCell(f)
-  for (var a in comValue) {
-    if(comValue[a]!=='undefine'&&comValue[a]!=='null'&&comValue[a]!==undefined){
-      arr[a] = comValue[a]
-    }
-  }
-  // 瑙f瀽鍏紡鍙傛暟锛岀壒鍒槸甯︼細鐨�
-  let arr0 = getABCList(f)
-  let obj = {}
-  arr0.forEach(item=>{
-    if(item.includes(':')){
-      let arr1 = []
-      let r0 = getIdFromColumnName(item.split(':')[0]).r;
-      let c0 = getIdFromColumnName(item.split(':')[0]).c;
-      let r1 = getIdFromColumnName(item.split(':')[1]).r;
-      let c1 = getIdFromColumnName(item.split(':')[1]).c;
-      for (let i = Number(r0); i <= Number(r1); i++) {
-        for (let u = Number(c0); u <= Number(c1); u++) {
-          arr1.push({
-            r: i,
-            c: u
-          })
-        }
+  try {
+    let str = f
+    // 鑾峰彇鍗曞厓鏍煎搴斿��
+    let arr = getAllCell(f)
+    for (var a in comValue) {
+      if(comValue[a]!=='undefine'&&comValue[a]!=='null'&&comValue[a]!==undefined){
+        arr[a] = comValue[a]
       }
-      let arr2 = []
-      arr1.forEach(m=>{
-        arr2.push(getColumnNameFromId(`${m.c}`+'-'+`${m.r}`))
-      })
-      obj[item.split(':').join('-')] = arr2.join(',')
-    }else{
-      obj[item] = item
     }
-  })
-  str = str.replaceAll(':', '-')
-  // 鏇挎崲鍙傛暟
-  for (var a in obj) {
-    str = str.replaceAll(a, obj[a])
-  }
-  // 璁$畻
-  try{
+    // 瑙f瀽鍏紡鍙傛暟锛岀壒鍒槸甯︼細鐨�
+    let arr0 = getABCList(f)
+    let obj = {}
+    arr0.forEach(item=>{
+      if(item.includes(':')){
+        let arr1 = []
+        let r0 = getIdFromColumnName(item.split(':')[0]).r;
+        let c0 = getIdFromColumnName(item.split(':')[0]).c;
+        let r1 = getIdFromColumnName(item.split(':')[1]).r;
+        let c1 = getIdFromColumnName(item.split(':')[1]).c;
+        for (let i = Number(r0); i <= Number(r1); i++) {
+          for (let u = Number(c0); u <= Number(c1); u++) {
+            arr1.push({
+              r: i,
+              c: u
+            })
+          }
+        }
+        let arr2 = []
+        arr1.forEach(m=>{
+          arr2.push(getColumnNameFromId(`${m.c}`+'-'+`${m.r}`))
+        })
+        obj[item.split(':').join('-')] = arr2.join(',')
+      }else{
+        obj[item] = item
+      }
+    })
+    str = str.replaceAll(':', '-')
+    // 鏇挎崲鍙傛暟
+    for (var a in obj) {
+      str = str.replaceAll(a, obj[a])
+    }
+    // 璁$畻
     for (var a in arr) {
       str = str.replaceAll(a, arr[a])
     }
     return eval(str)
-  }catch(e){
-    console.log('e',e)
-    return 0
+  } catch (error) {
+
   }
 }
 

--
Gitblit v1.9.3