Kaynağa Gözat

feat: 优化查获数量组件与员工档案页面展示

1.  重构SeizedNum组件,支持自定义标题传入
2.  为部门、班组档案的查获数量组件配置对应标题
3.  完善员工档案页面的技能等级展示与评分模块
4.  新增个人能力卡片的评分图例说明与样式优化
huoyi 1 hafta önce
ebeveyn
işleme
5fc20dbfd9

+ 5 - 1
src/views/portraitManagement/components/SeizedNum.vue

@@ -1,5 +1,5 @@
1 1
 <template>
2
-  <Card title="每日查获数量(个人对比)">
2
+  <Card :title="title">
3 3
     <div ref="bar" style="width: 100%; height: 100%;"></div>
4 4
   </Card>
5 5
 </template>
@@ -10,6 +10,10 @@
10 10
   import { useECharts } from '@/hooks/useEcharts.js';
11 11
   const bar = ref(null)
12 12
   const props = defineProps({
13
+    title: {
14
+      type: String,
15
+      default: '每日查获数量(个人对比)'
16
+    },
13 17
     chartsData: {
14 18
       type: Array,
15 19
       default: () => []

+ 1 - 1
src/views/portraitManagement/deptProfile/component/runData.vue

@@ -16,7 +16,7 @@
16 16
         <SeizedNumAll :chartsData="countSeizureTotalQuantityData"/>
17 17
       </div>
18 18
       <div class="col">
19
-        <SeizedNum :chartsData="countSeizureSingleQuantityData" />
19
+        <SeizedNum :chartsData="countSeizureSingleQuantityData" :title="'每日查获数量(班组对比)'"/>
20 20
       </div>
21 21
     </div>
22 22
     <div class="row">

+ 62 - 7
src/views/portraitManagement/employeeProfile/index.vue

@@ -65,7 +65,10 @@
65 65
                   </div>
66 66
                   <div class="info-item-content">
67 67
                     <div class="info-item-label">技能等级:</div>
68
-                    <div class="info-item-value">{{ portrait.qualificationLevelText || '-' }}</div>
68
+                    <div class="info-item-value">
69
+                      {{ portrait.qualificationLevelText || '-' }}
70
+                      <span class="info-item-tag" style="margin-left: 10px;margin-top: 2px;" v-if="!!portrait.xrayOperatorStarttime">X射线安检仪操作岗位</span>
71
+                    </div>
69 72
                   </div>
70 73
                 </div>
71 74
                 <div class="info-item">
@@ -84,19 +87,20 @@
84 87
                 <div class="score-progress">
85 88
                   <el-progress type="circle" :width="160" :stroke-width="18" color="#5BE39E" :percentage="(portrait.totalScore || -2) + 2">
86 89
                     <div class="percentage-content">
87
-                      <span class="percentage-value">{{ (portrait.totalScore || -2) + 2 }}</span>
90
+                      <span class="percentage-value">{{ (portrait.totalScore || 0)  }}</span>
88 91
                       <span class="percentage-text">综合得分</span>
89 92
                     </div>
90 93
                   </el-progress>
91 94
                 </div>
92 95
                 <div class="score-box">
93
-                  <div class="score-row">
96
+                  <!-- <div class="score-row">
94 97
                     <span class="score-col">评分:</span>
95 98
                     <span class="score-col-2">{{ portrait.totalScore || 0 }}</span>
96
-                  </div>
99
+                  </div> -->
97 100
                   <div class="score-row">
98
-                    <span class="score-col">标签得分:</span>
99
-                    <span class="score-col-2">{{ tagScoreData != null ? (typeof tagScoreData === 'object' ? (tagScoreData.totalScore ?? tagScoreData.score ?? tagScoreData) : tagScoreData) : 0 }}</span>
101
+                    <span class="score-col">附加分:</span>
102
+                    <span class="score-col-2">{{ portrait?.userTags?.split(',').length || 0 }}分</span>
103
+                    <!-- <span class="score-col-2">{{ tagScoreData != null ? (typeof tagScoreData === 'object' ? (tagScoreData.totalScore ?? tagScoreData.score ?? tagScoreData) : tagScoreData) : 0 }}</span> -->
100 104
                   </div>
101 105
                 </div>
102 106
               </div>
@@ -129,6 +133,12 @@
129 133
           </div>
130 134
           <div class="content-bottom-center">
131 135
             <Card title="个人能力">
136
+              <div class="chart-legend">
137
+                <div class="legend-item legend-warning"><span></span>预警线(低于75分)</div>
138
+                <div class="legend-item legend-normal"><span></span>正常线(75~90分)</div>
139
+                <div class="legend-item legend-excellent"><span></span>优秀线(高于90分)</div>
140
+                <div class="legend-item legend-current"><span></span>当前员工分值</div>
141
+              </div>
132 142
               <div ref="abilityChart" class="chart-box" @click="goToWarningPage" />
133 143
             </Card>
134 144
           </div>
@@ -764,9 +774,54 @@ onUnmounted(() => {
764 774
       & > * {
765 775
         height: 100%;
766 776
       }
777
+      .chart-legend {
778
+        display: flex;
779
+        justify-content: center;
780
+        align-items: center;
781
+        flex-wrap: wrap;
782
+        gap: 10px 18px;
783
+        padding-top: 8px;
784
+        color: #fff;
785
+        font-size: 14px;
786
+      }
787
+      .legend-item {
788
+        display: flex;
789
+        align-items: center;
790
+        gap: 6px;
791
+        span {
792
+          width: 24px;
793
+          height: 10px;
794
+          border: 2px solid currentColor;
795
+          border-radius: 2px;
796
+        }
797
+      }
798
+      .legend-warning {
799
+        color: #fe4322;
800
+        span { 
801
+          background-color: #fe4322;
802
+        }
803
+      }
804
+      .legend-normal {
805
+        color: #fff;
806
+        span { 
807
+          background-color: #fff;
808
+        }
809
+      }
810
+      .legend-excellent {
811
+        color: #8EC742;
812
+        span { 
813
+          background-color: #8EC742;
814
+        }
815
+      }
816
+      .legend-current {
817
+        color: #1890ff;
818
+        span { 
819
+          background-color: #1890ff;
820
+        }
821
+      }
767 822
       .chart-box {
768 823
         width: 100%;
769
-        height: 100%;
824
+        height: calc(100% - 34px);
770 825
         overflow: hidden;
771 826
       }
772 827
     }

+ 1 - 1
src/views/portraitManagement/teamProfile/component/runData.vue

@@ -16,7 +16,7 @@
16 16
         <SeizedNumAll :chartsData="countSeizureTotalQuantityData" />
17 17
       </div>
18 18
       <div class="col">
19
-        <SeizedNum :chartsData="countSeizureSingleQuantityData" />
19
+        <SeizedNum :chartsData="countSeizureSingleQuantityData" :title="'每日查获数量(小组对比)'"/>
20 20
       </div>
21 21
     </div>
22 22
     <div class="row">