Browse Source

feat: 材料信息价库,去掉排序字段,按照数据库排序。刷新页面仍默认当前定位,不要定位到第一个地市 (#GLY-5461)

vian 3 weeks atrás
parent
commit
46c5591e84

+ 2 - 1
web/maintain/price_info_lib/js/index.js

@@ -1,7 +1,8 @@
 $(document).ready(() => {
     console.log('进入信息价');
     $('[data-toggle="tooltip"]').tooltip();
-    AREA_BOOK.handleSelectionChanged(0);
+    // AREA_BOOK.handleSelectionChanged(0);
+    AREA_BOOK.init();
     const $range = $(document.body);
     lockUtil.lockTools($range, locked);
 });

+ 27 - 0
web/maintain/price_info_lib/js/priceArea.js

@@ -70,6 +70,15 @@ const AREA_BOOK = (() => {
 
   bindEdit();
 
+  const setCurAreaStorage = (curLibID, curAreaID) => {
+    window.localStorage.setItem(`priceArea:${curLibID}`, curAreaID);
+  };
+
+  const geCurAreaStorage = (curLibID) => {
+    const curAreaID = window.localStorage.getItem(`priceArea:${curLibID}`);
+    return curAreaID;
+  };
+
   const curArea = { ID: null, name: '' };
   // 焦点变更处理
   const debounceSelectionChanged = _.debounce(function (e, info) {
@@ -80,10 +89,25 @@ const AREA_BOOK = (() => {
     const areaItem = cache[row];
     curArea.ID = areaItem && areaItem.ID || null;
     curArea.name = areaItem && areaItem.name || '';
+    setCurAreaStorage(libID, curArea.ID);
     CLASS_BOOK.initData(libID, curArea.ID);
   }
   sheet.bind(GC.Spread.Sheets.Events.SelectionChanged, debounceSelectionChanged);
 
+  // 第一次进来初始化显示
+  const init = () => {
+    const curAreaID = geCurAreaStorage(libID);
+    if (!curAreaID) {
+      handleSelectionChanged(0);
+      return;
+    }
+    let row = cache.findIndex(item => item.ID === curAreaID);
+    row = row >= 0 ? row : 0;
+    handleSelectionChanged(row);
+    sheet.setActiveCell(row, 1);
+    sheet.showCell(row, 0, GC.Spread.Sheets.VerticalPosition.center);
+  }
+
   // 新增
   async function insert() {
     const data = {
@@ -194,9 +218,12 @@ const AREA_BOOK = (() => {
   buildContextMenu();
 
   return {
+    init,
     handleSelectionChanged,
     curArea,
     cache,
+    setCurAreaStorage,
+    geCurAreaStorage
   }
 
 })();

+ 1 - 1
web/maintain/price_info_lib/js/priceItem.js

@@ -41,7 +41,7 @@ const PRICE_BOOK = (() => {
     try {
       cache = await ajaxPost('/priceInfo/getPriceData', { classIDList }, 1000 * 60 * 10);
       // cache = _.sortBy(cache, 'classCode');
-      cache = _.sortBy(cache, 'code');
+      // cache = _.sortBy(cache, 'code');
       showData(sheet, cache, setting.header, 5);
       const row = sheet.getActiveRowIndex();
       const keywordList = cache[row] && cache[row].keywordList || [];