Bläddra i källkod

feat: 样式调整

zhangjie 1 vecka sedan
förälder
incheckning
859acd8e77

BIN
src/assets/images/icon-arrow.png


+ 2 - 2
src/assets/style/base.scss

@@ -27,14 +27,14 @@
     + .part-box {
       border: 1px solid var(--color-border);
     }
-
+  }
+  .el-form--inline {
     .el-form-item {
       margin-bottom: 15px;
       margin-right: 16px;
     }
     .el-form-item__label {
       padding-right: 8px;
-      color: var(--color-text-dark);
     }
     .el-input {
       width: 200px;

+ 60 - 26
src/assets/style/element-custom.scss

@@ -22,25 +22,6 @@
   }
 }
 
-// el-table
-.action-column {
-  .el-btn {
-    height: 20px;
-    padding: 0;
-    border: none !important;
-    outline: none !important;
-    line-height: 20px;
-    margin: 0;
-
-    &:not(:first-child) {
-      margin-left: 10px;
-    }
-    &:not(.el-btn-disabled):hover {
-      transform: scale(1.1);
-    }
-  }
-}
-
 // .el-pagination
 .el-pagination {
   display: flex;
@@ -94,6 +75,13 @@
   }
 }
 
+.el-input {
+  .el-input__wrapper:not(.is-focus) {
+    // box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.15) inset;
+    background: #f8f8f8;
+  }
+}
+
 // el-modal
 .el-modal-wrapper {
   .el-modal {
@@ -152,6 +140,32 @@
 }
 
 // .el-select
+.el-select {
+  .el-select__wrapper:not(.is-focused) {
+    background: #f8f8f8;
+  }
+  .el-select__suffix {
+    margin: -4px -11px -4px 0;
+    width: 31px;
+    height: 30px;
+    text-align: center;
+    border-left: 1px solid var(--color-border);
+    background: linear-gradient(180deg, #ffffff 0%, #e5e5e5 100%);
+    border-top-right-radius: 4px;
+    border-bottom-right-radius: 4px;
+    justify-content: center;
+
+    .el-select__caret:not(.el-select__clear) {
+      background-image: url(../images/icon-arrow.png);
+      background-size: 100% 100%;
+      font-size: 12px;
+
+      svg {
+        display: none;
+      }
+    }
+  }
+}
 .el-select-dropdown {
   .el-select-option {
     &.el-select-option-selected {
@@ -203,13 +217,6 @@
   }
 }
 
-// .el-button
-.el-button {
-  .el-icon {
-    margin-right: 4px;
-  }
-}
-
 // el-divider
 .el-divider {
   &.el-divider--horizontal {
@@ -221,3 +228,30 @@
     margin: 0 0 16px;
   }
 }
+
+// el-button
+.el-button {
+  border-radius: 6px;
+  .el-icon {
+    margin-right: 4px;
+  }
+
+  &[class='el-button'],
+  &.is-shade {
+    background: linear-gradient(180deg, #ffffff 0%, #e5e5e5 100%);
+    color: var(--color-text-dark);
+    font-weight: 400;
+  }
+}
+.el-button--primary {
+  background: linear-gradient(180deg, #00a6fc 0%, #0072ff 100%);
+}
+.el-button--success {
+  background: linear-gradient(180deg, #00ca53 0%, #009a29 100%);
+}
+
+.el-form {
+  .el-form-item__label {
+    color: var(--color-text-dark);
+  }
+}

+ 1 - 1
src/assets/style/home.scss

@@ -224,7 +224,7 @@
 .el-popover.el-popper.user-popover {
   min-width: 0;
   width: 120px !important;
-  padding: 10px;
+  padding: 0;
   .el-button {
     width: 100%;
   }

+ 4 - 1
src/assets/style/pages.scss

@@ -288,9 +288,12 @@
 
   .section-part {
     margin-bottom: 20px;
-    border-bottom: 1px solid var(--color-border-light);
     padding-bottom: 5px;
 
+    &:not(:last-child) {
+      border-bottom: 1px solid var(--color-border-light);
+    }
+
     &-title {
       height: 22px;
       line-height: 22px;

+ 0 - 7
src/assets/style/reset.scss

@@ -81,13 +81,6 @@ input:-webkit-autofill {
   box-shadow: 0 0 0 1000px white inset;
 }
 
-input[type='text']:focus,
-input[type='password']:focus,
-input[type='number']:focus,
-textarea:focus {
-  box-shadow: 0 0 0 1000px white inset;
-}
-
 /* browse style */
 ::-webkit-scrollbar {
   width: 8px;

+ 75 - 111
src/store/modules/app/menuData.ts

@@ -4,18 +4,17 @@ export const sysAdminMenus = [
     name: '学校管理',
     code: 'SchoolManage',
     type: 'MENU',
-    parentId: -1,
-    sequence: 1,
-    enable: true,
+    parentCode: '',
+    seq: 1,
   },
   {
     id: 2,
     name: '配置管理',
     code: 'SetManage',
     type: 'MENU',
-    parentId: -1,
-    sequence: 2,
-    enable: true,
+    parentCode: '',
+    seq: 2,
+
     roles: ['ADMIN'],
   },
   {
@@ -23,9 +22,8 @@ export const sysAdminMenus = [
     name: '授权管理',
     code: 'AuthManage',
     type: 'MENU',
-    parentId: -1,
-    sequence: 3,
-    enable: true,
+    parentCode: '',
+    seq: 3,
   },
 ];
 
@@ -36,9 +34,8 @@ export const adminMenus = [
     code: 'HomeGuide',
     icon: 'icon-home',
     type: 'MENU',
-    parentId: -1,
-    sequence: 1,
-    enable: true,
+    parentCode: '',
+    seq: 1,
   },
   {
     id: 2,
@@ -46,9 +43,8 @@ export const adminMenus = [
     code: 'user',
     icon: 'icon-user-manage',
     type: 'MENU',
-    parentId: -1,
-    sequence: 2,
-    enable: true,
+    parentCode: '',
+    seq: 2,
   },
   {
     id: 201,
@@ -56,9 +52,8 @@ export const adminMenus = [
     code: 'UserManage',
     icon: '',
     type: 'MENU',
-    parentId: 2,
-    sequence: 1,
-    enable: true,
+    parentCode: 'user',
+    seq: 1,
   },
   {
     id: 3,
@@ -66,9 +61,8 @@ export const adminMenus = [
     code: 'exam',
     icon: 'icon-exam-manage',
     type: 'MENU',
-    parentId: -1,
-    sequence: 2,
-    enable: true,
+    parentCode: '',
+    seq: 2,
   },
   {
     id: 301,
@@ -76,9 +70,8 @@ export const adminMenus = [
     code: 'ExamManage',
     icon: '',
     type: 'MENU',
-    parentId: 3,
-    sequence: 1,
-    enable: true,
+    parentCode: 'exam',
+    seq: 1,
   },
   {
     id: 4,
@@ -86,9 +79,8 @@ export const adminMenus = [
     code: 'student',
     icon: 'icon-student-manage',
     type: 'MENU',
-    parentId: -1,
-    sequence: 2,
-    enable: true,
+    parentCode: '',
+    seq: 2,
   },
   {
     id: 401,
@@ -96,9 +88,8 @@ export const adminMenus = [
     code: 'StudentManage',
     icon: '',
     type: 'MENU',
-    parentId: 4,
-    sequence: 1,
-    enable: true,
+    parentCode: 'student',
+    seq: 1,
   },
   {
     id: 5,
@@ -106,9 +97,8 @@ export const adminMenus = [
     code: 'scan',
     icon: 'icon-scan-progress',
     type: 'MENU',
-    parentId: -1,
-    sequence: 2,
-    enable: true,
+    parentCode: '',
+    seq: 2,
   },
   {
     id: 501,
@@ -116,9 +106,8 @@ export const adminMenus = [
     code: 'ScanManage',
     icon: '',
     type: 'MENU',
-    parentId: 5,
-    sequence: 1,
-    enable: true,
+    parentCode: 'scan',
+    seq: 1,
   },
   {
     id: 6,
@@ -126,9 +115,8 @@ export const adminMenus = [
     code: 'subject',
     icon: 'icon-subject-manage',
     type: 'MENU',
-    parentId: -1,
-    sequence: 2,
-    enable: true,
+    parentCode: '',
+    seq: 2,
   },
   {
     id: 601,
@@ -136,9 +124,8 @@ export const adminMenus = [
     code: 'SubjectManage',
     icon: '',
     type: 'MENU',
-    parentId: 6,
-    sequence: 1,
-    enable: true,
+    parentCode: 'subject',
+    seq: 1,
   },
   {
     id: 7,
@@ -146,9 +133,8 @@ export const adminMenus = [
     icon: 'icon-mark-manage',
     code: 'mark',
     type: 'MENU',
-    parentId: -1,
-    sequence: 2,
-    enable: true,
+    parentCode: '',
+    seq: 2,
   },
   {
     id: 701,
@@ -156,9 +142,8 @@ export const adminMenus = [
     code: 'MarkProgress',
     icon: '',
     type: 'MENU',
-    parentId: 7,
-    sequence: 1,
-    enable: true,
+    parentCode: 'mark',
+    seq: 1,
   },
   {
     id: 702,
@@ -166,9 +151,8 @@ export const adminMenus = [
     icon: '',
     code: 'MarkManage',
     type: 'MENU',
-    parentId: 7,
-    sequence: 2,
-    enable: true,
+    parentCode: 'mark',
+    seq: 2,
   },
   {
     id: 8,
@@ -176,9 +160,8 @@ export const adminMenus = [
     code: 'reject',
     icon: 'icon-reject-manage',
     type: 'MENU',
-    parentId: -1,
-    sequence: 2,
-    enable: true,
+    parentCode: '',
+    seq: 2,
   },
   {
     id: 801,
@@ -186,9 +169,8 @@ export const adminMenus = [
     code: 'RejectManage',
     icon: '',
     type: 'MENU',
-    parentId: 8,
-    sequence: 1,
-    enable: true,
+    parentCode: 'reject',
+    seq: 1,
   },
   {
     id: 802,
@@ -196,9 +178,8 @@ export const adminMenus = [
     code: 'RejectRecord',
     icon: '',
     type: 'MENU',
-    parentId: 8,
-    sequence: 2,
-    enable: true,
+    parentCode: 'reject',
+    seq: 2,
   },
   {
     id: 803,
@@ -206,9 +187,8 @@ export const adminMenus = [
     code: 'RejectStatistics',
     icon: '',
     type: 'MENU',
-    parentId: 8,
-    sequence: 3,
-    enable: true,
+    parentCode: 'reject',
+    seq: 3,
   },
   {
     id: 9,
@@ -216,9 +196,8 @@ export const adminMenus = [
     code: 'issue',
     icon: 'icon-issue-paper',
     type: 'MENU',
-    parentId: -1,
-    sequence: 2,
-    enable: true,
+    parentCode: '',
+    seq: 2,
   },
   {
     id: 901,
@@ -226,9 +205,8 @@ export const adminMenus = [
     code: 'IssuePaper',
     icon: '',
     type: 'MENU',
-    parentId: 9,
-    sequence: 1,
-    enable: true,
+    parentCode: 'issue',
+    seq: 1,
   },
   {
     id: 10,
@@ -236,9 +214,8 @@ export const adminMenus = [
     code: 'review',
     icon: 'icon-score-review',
     type: 'MENU',
-    parentId: -1,
-    sequence: 2,
-    enable: true,
+    parentCode: '',
+    seq: 2,
   },
   {
     id: 1001,
@@ -246,9 +223,8 @@ export const adminMenus = [
     code: 'ScoreReviewStatistics',
     icon: '',
     type: 'MENU',
-    parentId: 10,
-    sequence: 1,
-    enable: true,
+    parentCode: 'review',
+    seq: 1,
   },
   {
     id: 1002,
@@ -256,9 +232,8 @@ export const adminMenus = [
     code: 'AllReview',
     icon: '',
     type: 'MENU',
-    parentId: 10,
-    sequence: 2,
-    enable: true,
+    parentCode: 'review',
+    seq: 2,
   },
   {
     id: 1003,
@@ -266,9 +241,8 @@ export const adminMenus = [
     code: 'ScoreCheck',
     icon: '',
     type: 'MENU',
-    parentId: 10,
-    sequence: 3,
-    enable: true,
+    parentCode: 'review',
+    seq: 3,
   },
   {
     id: 11,
@@ -276,9 +250,8 @@ export const adminMenus = [
     code: 'score',
     icon: 'icon-score-query',
     type: 'MENU',
-    parentId: -1,
-    sequence: 2,
-    enable: true,
+    parentCode: '',
+    seq: 2,
   },
   {
     id: 1101,
@@ -286,9 +259,8 @@ export const adminMenus = [
     code: 'ScoreQuery',
     icon: '',
     type: 'MENU',
-    parentId: 11,
-    sequence: 1,
-    enable: true,
+    parentCode: 'score',
+    seq: 1,
   },
   {
     id: 12,
@@ -296,9 +268,8 @@ export const adminMenus = [
     code: 'analysis',
     icon: 'icon-subject-analysis',
     type: 'MENU',
-    parentId: -1,
-    sequence: 2,
-    enable: true,
+    parentCode: '',
+    seq: 2,
   },
   {
     id: 1201,
@@ -306,9 +277,8 @@ export const adminMenus = [
     code: 'AnalysisManage',
     icon: '',
     type: 'MENU',
-    parentId: 12,
-    sequence: 1,
-    enable: true,
+    parentCode: 'analysis',
+    seq: 1,
   },
   {
     id: 13,
@@ -316,9 +286,8 @@ export const adminMenus = [
     code: 'check',
     icon: 'icon-data-check',
     type: 'MENU',
-    parentId: -1,
-    sequence: 2,
-    enable: true,
+    parentCode: '',
+    seq: 2,
   },
   {
     id: 1301,
@@ -326,9 +295,8 @@ export const adminMenus = [
     code: 'ManualConfirm',
     icon: '',
     type: 'MENU',
-    parentId: 13,
-    sequence: 1,
-    enable: true,
+    parentCode: 'check',
+    seq: 1,
   },
   {
     id: 1302,
@@ -336,9 +304,8 @@ export const adminMenus = [
     code: 'ResultCheck',
     icon: '',
     type: 'MENU',
-    parentId: 13,
-    sequence: 2,
-    enable: true,
+    parentCode: 'check',
+    seq: 2,
   },
   {
     id: 1303,
@@ -346,9 +313,8 @@ export const adminMenus = [
     code: 'ImageCheck',
     icon: '',
     type: 'MENU',
-    parentId: 13,
-    sequence: 3,
-    enable: true,
+    parentCode: 'check',
+    seq: 3,
   },
   {
     id: 14,
@@ -356,9 +322,8 @@ export const adminMenus = [
     code: 'log',
     icon: 'icon-log',
     type: 'MENU',
-    parentId: -1,
-    sequence: 2,
-    enable: true,
+    parentCode: '',
+    seq: 2,
   },
   {
     id: 1401,
@@ -366,8 +331,7 @@ export const adminMenus = [
     code: 'LogManage',
     icon: '',
     type: 'MENU',
-    parentId: 14,
-    sequence: 1,
-    enable: true,
+    parentCode: 'log',
+    seq: 1,
   },
 ];

+ 1 - 1
src/views/check/ImageCheck.vue

@@ -34,7 +34,7 @@
       <el-space wrap>
         <el-button type="primary" @click="toPage(1)">异常查询</el-button>
         <el-button @click="onExport">导出</el-button>
-        <el-button type="success" @click="startCheck">开始检查</el-button>
+        <el-button @click="startCheck">开始检查</el-button>
       </el-space>
     </div>
   </div>

+ 1 - 1
src/views/check/ManualConfirm.vue

@@ -21,7 +21,7 @@
     <div class="part-action">
       <el-space wrap>
         <el-button type="primary" @click="toPage(1)">查询</el-button>
-        <el-button type="success" @click="startCheck">开始检查</el-button>
+        <el-button @click="startCheck">开始检查</el-button>
       </el-space>
     </div>
   </div>

+ 1 - 3
src/views/check/ResultCheck.vue

@@ -141,9 +141,7 @@
       </el-form-item>
       <el-form-item>
         <el-button type="primary" @click="queryData">查询数量</el-button>
-        <el-button v-if="queryResult" type="primary" @click="startProcess"
-          >开始处理</el-button
-        >
+        <el-button v-if="queryResult" @click="startProcess">开始处理</el-button>
       </el-form-item>
     </el-form>
   </div>

+ 1 - 1
src/views/exam/ExamManage.vue

@@ -42,7 +42,7 @@
       </el-form-item>
       <el-form-item>
         <el-button type="primary" @click="toPage(1)">查询</el-button>
-        <el-button type="primary" @click="onAdd">新建考试</el-button>
+        <el-button type="success" @click="onAdd">新建考试</el-button>
       </el-form-item>
     </el-form>
   </div>

+ 4 - 7
src/views/mark/MarkProgress.vue

@@ -34,17 +34,14 @@
     <div class="part-action">
       <el-space wrap>
         <el-button type="primary" @click="toPage(1)">查询</el-button>
-        <el-button
-          type="primary"
-          :loading="closeLoading"
-          @click="onCloseSubject"
+        <el-button :loading="closeLoading" @click="onCloseSubject"
           >关闭</el-button
         >
 
         <el-dropdown @command="onExportCommand">
-          <el-button type="primary">
+          <el-button class="is-shade">
             导出
-            <el-icon class="el-icon--right"><ArrowDown /> </el-icon>
+            <el-icon class="el-icon--right"><CaretBottom /> </el-icon>
           </el-button>
           <template #dropdown>
             <el-dropdown-menu>
@@ -121,7 +118,7 @@
 <script setup lang="ts">
   import { reactive, ref, computed, onMounted } from 'vue';
   import { ElMessage } from 'element-plus';
-  import { ArrowDown } from '@element-plus/icons-vue';
+  import { CaretBottom } from '@element-plus/icons-vue';
   import { useAppStore } from '@/store';
 
   import {

+ 3 - 3
src/views/review/AllReview.vue

@@ -166,9 +166,9 @@
         <el-button @click="onBatchCancelReview">取消复核</el-button>
         <el-button @click="onImport">导入</el-button>
         <el-dropdown @command="onExportCommand">
-          <el-button type="primary">
+          <el-button class="is-shade">
             导出
-            <el-icon class="el-icon--right"><ArrowDown /> </el-icon>
+            <el-icon class="el-icon--right"><CaretBottom /> </el-icon>
           </el-button>
           <template #dropdown>
             <el-dropdown-menu>
@@ -307,7 +307,7 @@
 <script setup lang="ts">
   import { reactive, ref, computed } from 'vue';
   import { ElMessage } from 'element-plus';
-  import { ArrowDown } from '@element-plus/icons-vue';
+  import { CaretBottom } from '@element-plus/icons-vue';
   import {
     getFullReviewList,
     cancelReview,

+ 5 - 5
src/views/student/StudentManage.vue

@@ -163,12 +163,12 @@
     <div class="part-action box-justify">
       <el-space wrap>
         <el-button type="primary" @click="toPage(1)">查询</el-button>
-        <el-button @click="onAdd">添加</el-button>
-        <el-button type="success" @click="onImport">导入</el-button>
+        <el-button type="success" @click="onAdd">添加</el-button>
+        <el-button @click="onImport">导入</el-button>
         <el-dropdown @command="onImportCommand">
-          <el-button type="primary">
+          <el-button class="is-shade">
             导入名单
-            <el-icon class="el-icon--right"><ArrowDown /> </el-icon>
+            <el-icon class="el-icon--right"><CaretBottom /> </el-icon>
           </el-button>
           <template #dropdown>
             <el-dropdown-menu>
@@ -385,7 +385,7 @@
 
 <script setup lang="ts">
   import { reactive, ref, computed } from 'vue';
-  import { ArrowDown } from '@element-plus/icons-vue';
+  import { CaretBottom } from '@element-plus/icons-vue';
   import { ElMessage } from 'element-plus';
   import { getStudentList, deleteStudent } from '@/api/student';
   import { StudentItem, StudentListFilter } from '@/api/types/student';

+ 8 - 12
src/views/subject/SubjectManage.vue

@@ -75,9 +75,9 @@
       <el-space wrap>
         <el-button type="primary" @click="toPage(1)">查询</el-button>
         <el-dropdown @command="onImportCommand">
-          <el-button type="primary">
+          <el-button class="is-shade">
             导入
-            <el-icon class="el-icon--right"><ArrowDown /> </el-icon>
+            <el-icon class="el-icon--right"><CaretBottom /> </el-icon>
           </el-button>
           <template #dropdown>
             <el-dropdown-menu>
@@ -93,9 +93,9 @@
         </el-dropdown>
 
         <el-dropdown @command="onExportCommand">
-          <el-button type="primary">
+          <el-button class="is-shade">
             导出
-            <el-icon class="el-icon--right"><ArrowDown /> </el-icon>
+            <el-icon class="el-icon--right"><CaretBottom /> </el-icon>
           </el-button>
           <template #dropdown>
             <el-dropdown-menu>
@@ -105,15 +105,11 @@
           </template>
         </el-dropdown>
 
-        <el-button type="success" :loading="loading" @click="onObjectiveMark"
+        <el-button :loading="loading" @click="onObjectiveMark"
           >客观题统计</el-button
         >
-        <el-button type="primary" :loading="loading" @click="onAnalysis"
-          >分析统计</el-button
-        >
-        <el-button type="primary" @click="onImportCommand('package')"
-          >导入数据包</el-button
-        >
+        <el-button :loading="loading" @click="onAnalysis">分析统计</el-button>
+        <el-button @click="onImportCommand('package')">导入数据包</el-button>
       </el-space>
     </div>
 
@@ -233,7 +229,7 @@
 <script setup lang="ts">
   import { reactive, ref, onMounted, computed } from 'vue';
   import { useRouter } from 'vue-router';
-  import { ArrowDown } from '@element-plus/icons-vue';
+  import { CaretBottom } from '@element-plus/icons-vue';
   import {
     getSubjectList,
     getSubjectTotalScoreStatList,

+ 10 - 28
src/views/user/UserManage.vue

@@ -62,9 +62,9 @@
           <el-button type="success" @click="onAdd">新建用户</el-button>
 
           <el-dropdown @command="onImportCommand">
-            <el-button type="primary">
+            <el-button class="is-shade">
               导入
-              <el-icon class="el-icon--right"><ArrowDown /> </el-icon>
+              <el-icon class="el-icon--right"><CaretBottom /> </el-icon>
             </el-button>
             <template #dropdown>
               <el-dropdown-menu>
@@ -73,14 +73,12 @@
               </el-dropdown-menu>
             </template>
           </el-dropdown>
-          <el-button type="primary" @click="onImportMarker"
-            >导入班级评卷员</el-button
-          >
+          <el-button @click="onImportMarker">导入班级评卷员</el-button>
 
           <el-dropdown @command="onExportCommand">
-            <el-button type="primary">
+            <el-button class="is-shade">
               导出
-              <el-icon class="el-icon--right"><ArrowDown /> </el-icon>
+              <el-icon class="el-icon--right"><CaretBottom /> </el-icon>
             </el-button>
             <template #dropdown>
               <el-dropdown-menu>
@@ -94,26 +92,10 @@
               </el-dropdown-menu>
             </template>
           </el-dropdown>
-          <el-button type="success" @click="onBatchAdd">批量新增</el-button>
-
-          <el-button
-            type="primary"
-            :disabled="!canBatchAction"
-            @click="onBatchEnable(true)"
-            >启用</el-button
-          >
-          <el-button
-            type="warning"
-            :disabled="!canBatchAction"
-            @click="onBatchEnable(false)"
-            >禁用</el-button
-          >
-          <el-button
-            type="danger"
-            :disabled="!canBatchAction"
-            @click="onBatchResetPassword"
-            >重置密码</el-button
-          >
+          <el-button @click="onBatchAdd">批量新增</el-button>
+          <el-button @click="onBatchEnable(true)">启用</el-button>
+          <el-button @click="onBatchEnable(false)">禁用</el-button>
+          <el-button @click="onBatchResetPassword">重置密码</el-button>
         </el-space>
       </el-form-item>
     </el-form>
@@ -209,7 +191,7 @@
 <script setup lang="ts">
   import { reactive, ref, onMounted, computed } from 'vue';
   import { ElMessage } from 'element-plus';
-  import { ArrowDown } from '@element-plus/icons-vue';
+  import { CaretBottom } from '@element-plus/icons-vue';
   import { userListPage, resetUserPassword, enableUser } from '@/api/user';
   import type { UserItem, UserListFilter } from '@/api/types/user';
   import useTable from '@/hooks/table';