Parcourir la source

休息级别优化

wengan01 il y a 1 semaine
Parent
commit
e36cd20a01

+ 14 - 3
src/views/system/business/levels/index.vue

@@ -53,10 +53,10 @@
 
         <el-table v-loading="loading" border :data="levelsList" @selection-change="handleSelectionChange" row-key="id" :row-class-name="tableRowClassName">
           <el-table-column type="selection" width="55" align="center" :reserve-selection="true" />
-          <el-table-column label="显示级别" align="center" width="100">
+          <el-table-column label="显示级别" align="center" width="120">
             <template #default="scope">
-              <span v-if="scope.row.isBreak === 1" style="color: #e6a23c; font-weight: bold">休息</span>
-              <span v-else>{{ scope.row.levelNumber }}</span>
+              <span v-if="scope.row.isBreak === 1" style="color: #e6a23c; font-weight: bold">{{ getDisplayLevel(scope.row) }}</span>
+              <span v-else>{{ getDisplayLevel(scope.row) }}</span>
             </template>
           </el-table-column>
           <el-table-column label="小盲预置分" align="center">
@@ -366,6 +366,17 @@ const sortListByLevelNumber = () => {
   });
 };
 
+/** 计算显示级别:休息行不占级别,非休息行连续计算(如:1、2、休息(第2级后)、3、4...) */
+const getDisplayLevel = (row: LevelsVO): string | number => {
+  const idx = levelsList.value.findIndex((r) => r.id === row.id);
+  if (idx === -1) return row.levelNumber;
+  const nonBreakBefore = levelsList.value.slice(0, idx).filter((r) => r.isBreak !== 1).length;
+  if (row.isBreak === 1) {
+    return `休息(第${nonBreakBefore}级后)`;
+  }
+  return nonBreakBefore + 1;
+};
+
 /** 取消按钮 */
 const cancel = () => {
   reset();

+ 14 - 3
src/views/system/physical/blindLevels/index.vue

@@ -53,10 +53,10 @@
 
         <el-table v-loading="loading" border :data="blindLevelsList" @selection-change="handleSelectionChange" row-key="id" :row-class-name="tableRowClassName">
           <el-table-column type="selection" width="55" align="center" :reserve-selection="true" />
-          <el-table-column label="显示级别" align="center" width="100">
+          <el-table-column label="显示级别" align="center" width="120">
             <template #default="scope">
-              <span v-if="scope.row.isBreak === 1" style="color: #e6a23c; font-weight: bold">休息</span>
-              <span v-else>{{ scope.row.levelNumber }}</span>
+              <span v-if="scope.row.isBreak === 1" style="color: #e6a23c; font-weight: bold">{{ getDisplayLevel(scope.row) }}</span>
+              <span v-else>{{ getDisplayLevel(scope.row) }}</span>
             </template>
           </el-table-column>
           <el-table-column label="小盲" align="center">
@@ -367,6 +367,17 @@ const sortListByLevelNumber = () => {
   });
 };
 
+/** 计算显示级别:休息行不占级别,非休息行连续计算(如:1、2、休息(第2级后)、3、4...) */
+const getDisplayLevel = (row: BlindLevelsVO): string | number => {
+  const idx = blindLevelsList.value.findIndex((r) => r.id === row.id);
+  if (idx === -1) return row.levelNumber;
+  const nonBreakBefore = blindLevelsList.value.slice(0, idx).filter((r) => r.isBreak !== 1).length;
+  if (row.isBreak === 1) {
+    return `休息(第${nonBreakBefore}级后)`;
+  }
+  return nonBreakBefore + 1;
+};
+
 /** 取消按钮 */
 const cancel = () => {
   reset();