Переглянути джерело

fix: 信息价总表搜索处理正则特殊字符

vian 1 рік тому
батько
коміт
d0864a0b74
1 змінених файлів з 21 додано та 1 видалено
  1. 21 1
      web/maintain/price_info_summary/js/summarySheet.js

+ 21 - 1
web/maintain/price_info_summary/js/summarySheet.js

@@ -28,16 +28,21 @@ function initSheet(dom, setting) {
 }
 
 function showData(sheet, data, headers, emptyRows) {
+  /* const style = new GC.Spread.Sheets.Style();
+  style.wordWrap = true; */
   const fuc = () => {
     sheet.setRowCount(data.length);
     data.forEach((item, row) => {
       headers.forEach(({ dataCode }, col) => {
+        //sheet.setStyle(row, col, style, GC.Spread.Sheets.SheetArea.viewport);
         sheet.setValue(row, col, item[dataCode] || '');
       });
+      sheet.autoFitRow(row);
     });
     if (emptyRows) {
       sheet.addRows(data.length, emptyRows);
     }
+    //sheet.autoFitRow(0);
   };
   sheetCommonObj.renderSheetFunc(sheet, fuc);
 }
@@ -130,7 +135,22 @@ const SUMMARY_BOOK = (() => {
 
   // 搜索
   const handleSearch = (val) => {
-    searchStr = val;
+    if (val) {
+      // 处理特殊字符,否则正则搜不到
+      searchStr = val
+        .replace(/\\/g, '\\\\')
+        .replace(/\[/g, '\\[')
+        .replace(/\]/g, '\\]')
+        .replace(/\(/g, '\\(')
+        .replace(/\)/g, '\\)')
+        .replace(/\+/g, '\\+')
+        .replace(/\?/g, '\\?')
+        .replace(/\*/g, '\\*')
+        .replace(/\$/g, '\\$')
+        .replace(/\^/g, '\\^')
+    } else {
+      searchStr = '';
+    }
     clear();
     loadPageData(0);
   }