瀏覽代碼

'首页、个人-部门,统计完善'

哥哥玩剑魂呢 4 年之前
父節點
當前提交
3dce8c355d
共有 6 個文件被更改,包括 2172 次插入588 次删除
  1. 1 1
      src/api/axios.js
  2. 69 65
      src/home.vue
  3. 5 0
      src/index.vue
  4. 32 15
      src/router/index.js
  5. 824 492
      src/views/ranking/department_statistics.vue
  6. 1241 15
      src/views/ranking/individual_statistics.vue

+ 1 - 1
src/api/axios.js

@@ -20,7 +20,7 @@ service.interceptors.request.use(
 	config => {
 		if (getToken()) {
 			// config.headers['A-Token'] = getToken()
-			config.headers['A-Token'] = ' eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvdGVzdC1kaW5nLmcxMDcuY29tXC9hcGlcL2RpbmdcL2xvZ2luIiwiaWF0IjoxNjA4NTM1Nzc1LCJleHAiOjE2MDkxMzU3NzUsIm5iZiI6MTYwODUzNTc3NSwianRpIjoidWd5NjNHYTNBY1Jid2JFOCIsInN1YiI6MTY3LCJwcnYiOiJjYTY0ODlkNTBmMjQwN2E2NzgzMGU4MDkwZDAxNDg4MzU2ODU5NjJiIiwicm9sZSI6ImVtcGxveWVlIn0.89yfeHMATS4YIhMn3JTUOc3zdX9W1Q_4pPmKHQB5HVY'
+			config.headers['A-Token'] = ' eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvdGVzdC1kaW5nLmcxMDcuY29tXC9hcGlcL2RpbmdcL2xvZ2luIiwiaWF0IjoxNjA5MTM2MTU0LCJleHAiOjE2MDk3MzYxNTQsIm5iZiI6MTYwOTEzNjE1NCwianRpIjoiZmFaYXdqV2hzeWV0VHVKViIsInN1YiI6MTg2LCJwcnYiOiJjYTY0ODlkNTBmMjQwN2E2NzgzMGU4MDkwZDAxNDg4MzU2ODU5NjJiIiwicm9sZSI6ImVtcGxveWVlIn0.2x0WjXt5CeV1g1hTF50xS0QMoDAst9krXqGuEeI4onU'
 			// config.headers['A-Token'] = ' eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvdGVzdC1kaW5nLmcxMDcuY29tXC9hcGlcL2RpbmdcL2xvZ2luIiwiaWF0IjoxNjA4MTAxMTUwLCJleHAiOjE2MDg3MDExNTAsIm5iZiI6MTYwODEwMTE1MCwianRpIjoiRzd0VURhUmNaYTg4bjF2cyIsInN1YiI6MTY2LCJwcnYiOiJjYTY0ODlkNTBmMjQwN2E2NzgzMGU4MDkwZDAxNDg4MzU2ODU5NjJiIiwicm9sZSI6ImVtcGxveWVlIn0.RIZhoHAsj4Ru_Ap3sKgyfiG1fayG1Hgw7si9aekU8eE'
 		}
 		return config

+ 69 - 65
src/home.vue

@@ -17,6 +17,7 @@
                   <userImage
                     :user_name="user_info.name"
                     :img_url="user_info.img_url"
+                    fontSize="1.1"
                     width="60px"
                     height="60px"
                   ></userImage>
@@ -228,7 +229,7 @@
                   <userImage
                     :id="item.employee_id"
                     :img_url="item.employee_img_url"
-                    
+                    fontSize="1"
                     :user_name="item.employee_name"
                     width="60px"
                     height="60px"
@@ -275,7 +276,7 @@
             <div v-loading="IntegralFormChartLoad">
               <div
                 class="nopoint_box"
-                style="height:340px;"
+                style="height:377px;"
                 v-show="IntegralFormnone"
               >
                 <div
@@ -290,7 +291,7 @@
                   ></span
                 >
               </div>
-              <div v-show="!IntegralFormnone" style="margin-top:14px;">
+              <div v-show="!IntegralFormnone" style="margin-top:20px;">
                 <div
                   ref="IntegralFormChart"
                   :style="{ width: '100%', height: '400px' }"
@@ -308,7 +309,7 @@
               <el-checkbox v-model="exclusiveMonthChecked">不包含自动积分加分项</el-checkbox>
             </el-col>
             <div v-loading="monthlyIntegralloading">
-              <el-col :span="5" style="position: absolute;top:40px;left:10px;z-index: 1;">
+              <el-col :span="5" style="position: absolute;left:10px;z-index: 1;">
                 <el-cascader
                   v-model="dept_name2"
                   :options="dept_tree"
@@ -322,7 +323,7 @@
                 ></el-cascader>
               </el-col>
 
-              <div class="nopoint_box" style="height:400px;" v-if="monthlyIntegralnone">
+              <div class="nopoint_box" style="height:419px;" v-if="monthlyIntegralnone">
                 <div class="noimg" style="width: 150px;height: 150px;margin-top:90px;"></div>
                 <span class="title1">暂无积分数据</span>
               </div>
@@ -352,7 +353,7 @@
               <b class="title" style="margin-bottom:15px;display:block">管理者奖扣任务执行情况</b>
             </el-col>
             <div v-loading="ManagerSAwardloading">
-              <el-col :span="5" style="position: absolute;top:40px;left:10px;z-index: 1;">
+              <el-col :span="5" style="position: absolute;left:10px;z-index: 1;">
                 <el-cascader
                   v-model="dept_name3"
                   :options="dept_tree"
@@ -365,7 +366,7 @@
                   clearable
                 ></el-cascader>
               </el-col>
-              <div class="nopoint_box" style="height:400px;" v-if="ManagerSAwardnone">
+              <div class="nopoint_box" style="height:439px;" v-if="ManagerSAwardnone">
                 <div class="noimg" style="width: 150px;height: 170px;margin-top:90px;"></div>
                 <span class="title1">暂无积分数据</span>
               </div>
@@ -391,7 +392,7 @@
             v-loading="highestPrizeBuckleloading"
             style="background:#fff;padding: 20px 20px 0;"
           >
-            <span class="title"><b>本周奖分最高</b></span>
+            <span class="title">本周奖分最高</span>
 
             <div class="nopoint_box" v-if="!prize.id">
               <div class="noimg"></div>
@@ -406,7 +407,7 @@
                 height="45px"
                 :id="prize.id"
                 :user_name="prize.name"
-                
+                fontSize=".9"
                 style="margin-right:8px"
               ></userImage>
               <div class="rightexamineAndApproveList" style="border:0px">
@@ -435,7 +436,7 @@
             v-loading="highestPrizeBuckleloading"
             style="background:#fff;padding: 20px 20px 0;"
           >
-            <span class="title"><b>本周扣分最多</b></span>
+            <span class="title">本周扣分最多</span>
 
             <div class="nopoint_box" v-if="!buckle.id">
               <div class="noimg"></div>
@@ -450,6 +451,7 @@
                 height="45px"
                 :id="buckle.id"
                 :user_name="buckle.name"
+                fontSize=".9"
                 style="margin-right:8px"
               ></userImage>
               <div class="rightexamineAndApproveList">
@@ -580,9 +582,8 @@ export default {
     },
   },
   mounted() {
-    console.log(this.$getIsCreator("creator"))
     this.function_All();
-    this.selfAdaption ();
+    window.addEventListener('resize',this.selfAdaption); 
   },
   methods: {
     function_All() {
@@ -605,26 +606,26 @@ export default {
       var myChart2 = ECharts.init(this.$refs.IntegralFormChart)
       var myChart3 = ECharts.init(this.$refs.ManagerSAwardChart)
       // myChart.setOption(option);
-      setTimeout(function (){
-          window.onresize = function () {
+      // setTimeout(function (){
+      //     window.onresize = function () {
             myChart1.resize();
             myChart2.resize();
             myChart3.resize();
-          }
-      },20)
+      //     }
+      // },20)
     },
     openGzd(val) {
       if(val == '/my_issue'){
         if (bool) {
-          // const h = this.$createElement;
-          // this.$notify({
-          //   message: h('i', { style: 'color: teal'}, '敬请期待')
-          // });
-          
-          this.$message({
-            message: '任务功能将在近期开放,敬请期待',
-            type: 'success'
+          const h = this.$createElement;
+          this.$notify({
+            message: h('b', { style: 'color:rgb(38, 162, 255)'}, '任务功能将在近期开放,敬请期待')
           });
+          
+          // this.$message({
+          //   message: '任务功能将在近期开放,敬请期待',
+          //   type: 'success'
+          // });
           bool = false
           setTimeout(() => {
             bool = true
@@ -1374,48 +1375,51 @@ export default {
       return data;
     },
   },
+  beforeDestroy() {//离开路由
+    window.removeEventListener("resize",this.selfAdaption);//取消echarts自适应
+  },
   created() {
-		var user = {
-      accedence_time: '2020-12-16 16:32:27',
-      company_id: '',
-      company_info: { creator_ids: [167, 166, 165], id: 15, industry: '计算机软件', is_official: 1, logo_url: '', name: '测试组织', status: 1, user_count_max: 50 },
-      employee_detail: {
-        dept_list: [{ dept_id: 432675338, dept_name: '技术' }],
-        manage_scope: [{ id: 164, name: '刘瑞欣' }, { id: 184, name: '莫仕钊' }],
-        permission_list: [],
-        role_list: [
-          { id: 15, name: 'employee', remark: '员工' },
-          { id: 12, name: 'admin', remark: '公司管理员' },
-          { id: 14, name: 'dept_manager', remark: '部门管理者' },
-          { id: 13, name: 'point_manager', remark: '积分管理员' },
-          { id: 11, name: 'creator', remark: '创始人' }
-        ],
-        superior_list: []
-      },
-      id: 167,
-      img_url: '',
-      is_admin: 0,
-      is_creator: 1,
-      is_official: 1,
-      is_scope: 1,
-      letter_index: 'C',
-      name: '蔡文',
-      point_config: {
-        deduct_task_monthly: [{ name: 'A分', point: 0, pt_id: 2 }, { name: 'B分', point: 0, pt_id: 3 }],
-        entry_limit: 0,
-        exec_count: 0,
-        exec_count_point: 0,
-        point_limit: [{ name: 'A分', point: 0, pt_id: 2 }, { name: 'B分', point: 0, pt_id: 3 }],
-        reward_ratio: 0,
-        reward_ratio_point: 0,
-        reward_task_monthly: [{ name: 'A分', point: 0, pt_id: 2 }, { name: 'B分', point: 0, pt_id: 3 }],
-        service_point: 0
-      },
-      post: '',
-      site_config: { a2b: 0, base_point: 0, rule_limit_check: 1, service_point: 0, task_review: 0 },
-      site_id: 15
-    };
-    localStorage.setItem('userData',JSON.stringify(user));
+		// var user = {
+    //   accedence_time: '2020-12-16 16:32:27',
+    //   company_id: '',
+    //   company_info: { creator_ids: [167, 166, 165], id: 15, industry: '计算机软件', is_official: 1, logo_url: '', name: '测试组织', status: 1, user_count_max: 50 },
+    //   employee_detail: {
+    //     dept_list: [{ dept_id: 432675338, dept_name: '技术' }],
+    //     manage_scope: [{ id: 164, name: '刘瑞欣' }, { id: 184, name: '莫仕钊' }],
+    //     permission_list: [],
+    //     role_list: [
+    //       { id: 15, name: 'employee', remark: '员工' },
+    //       { id: 12, name: 'admin', remark: '公司管理员' },
+    //       { id: 14, name: 'dept_manager', remark: '部门管理者' },
+    //       { id: 13, name: 'point_manager', remark: '积分管理员' },
+    //       { id: 11, name: 'creator', remark: '创始人' }
+    //     ],
+    //     superior_list: []
+    //   },
+    //   id: 167,
+    //   img_url: '',
+    //   is_admin: 0,
+    //   is_creator: 1,
+    //   is_official: 1,
+    //   is_scope: 1,
+    //   letter_index: 'C',
+    //   name: '蔡文',
+    //   point_config: {
+    //     deduct_task_monthly: [{ name: 'A分', point: 0, pt_id: 2 }, { name: 'B分', point: 0, pt_id: 3 }],
+    //     entry_limit: 0,
+    //     exec_count: 0,
+    //     exec_count_point: 0,
+    //     point_limit: [{ name: 'A分', point: 0, pt_id: 2 }, { name: 'B分', point: 0, pt_id: 3 }],
+    //     reward_ratio: 0,
+    //     reward_ratio_point: 0,
+    //     reward_task_monthly: [{ name: 'A分', point: 0, pt_id: 2 }, { name: 'B分', point: 0, pt_id: 3 }],
+    //     service_point: 0
+    //   },
+    //   post: '',
+    //   site_config: { a2b: 0, base_point: 0, rule_limit_check: 1, service_point: 0, task_review: 0 },
+    //   site_id: 15
+    // };
+    // localStorage.setItem('userData',JSON.stringify(user));
     
   },
 };

+ 5 - 0
src/index.vue

@@ -139,6 +139,11 @@ export default {
 			}
 		});
 	},
+	watch:{
+		 $route(to,from){
+			this.defaultActive = to.meta.identification
+		}
+	},
 	methods: {
 		GetRequest(urlStr) {
 			if (typeof urlStr == 'undefined') {

+ 32 - 15
src/router/index.js

@@ -18,10 +18,12 @@ const routes = [{
 			{
 				path: '/home',
 				name: '首页',
+				id:'0',
 				component: () => import('@/home'),
 				meta: {
 					icon: 'icon-shezhi_zuzhijiagou',
-					groupCode:'home'
+					groupCode:'home',
+					identification:'0-0'
 				}
 			},
 			{
@@ -30,7 +32,8 @@ const routes = [{
 				component: () => import('@/views/abPoint/award_punish.vue'),
 				meta: {
 					icon: 'icon-shezhi_zuzhijiagou',
-					groupCode:'abPoint'
+					groupCode:'abPoint',
+					identification:'1-0'
 				}
 			},
 			{
@@ -39,7 +42,8 @@ const routes = [{
 				component: () => import('@/views/abPoint/apply_list.vue'),
 				meta: {
 					icon: 'icon-shezhi_zuzhijiagou',
-					groupCode:'abPoint'
+					groupCode:'abPoint',
+					identification:'1-1'
 				}
 			},			
 			{
@@ -48,7 +52,8 @@ const routes = [{
 				component: () => import('@/views/set/framework.vue'),
 				meta: {
 					icon: 'icon-shezhi_zuzhijiagou',
-					groupCode:'set'
+					groupCode:'set',
+					identification:'2-0'
 				}
 			},
 			{
@@ -57,7 +62,8 @@ const routes = [{
 				component: () => import('@/views/set/jurisdiction.vue'),
 				meta: {
 					icon: 'icon-shezhi_jiaose',
-					groupCode:'set'
+					groupCode:'set',
+					identification:'2-1'
 				}
 			},
 			{
@@ -67,7 +73,8 @@ const routes = [{
 				meta: {
 					icon: 'icon-shezhi_jifenguize',
 					groupCode:'set',
-					groupName:"设置"
+					groupName:"设置",
+					identification:'2-2'
 				}
 			},
 			{
@@ -77,6 +84,7 @@ const routes = [{
 				meta: {
 					icon: 'icon-shezhi_jichushezhi',
 					groupCode:'set',
+					identification:'2-3'
 				}
 			},
 			{
@@ -85,7 +93,8 @@ const routes = [{
 				component: () => import('@/views/set/check.vue'),
 				meta: {
 					icon: 'icon-kaoqin_kaoqinyuebaobiao',
-					groupCode:'set'
+					groupCode:'set',
+					identification:'2-4'
 				}
 			},
 			{
@@ -94,7 +103,8 @@ const routes = [{
 				component: () => import('@/views/set/voluntarilyPoint.vue'),
 				meta: {
 					icon: 'icon-shezhi_zidongjifen',
-					groupCode:'set'
+					groupCode:'set',
+					identification:'2-5'
 				}
 			},
 			{
@@ -104,7 +114,8 @@ const routes = [{
 				meta: {
 					icon: 'icon-shezhi_jifenguize',
 					groupCode:'ranking',
-					groupName:"统计"
+					groupName:"统计",
+					identification:'3-0'
 				}
 			},
 			{
@@ -113,7 +124,8 @@ const routes = [{
 				component: () => import('@/views/ranking/dept_rank.vue'),
 				meta: {
 					icon: 'icon-shezhi_zuzhijiagou',
-					groupCode:'ranking'
+					groupCode:'ranking',
+					identification:'3-1'
 				}
 			},
 			{
@@ -122,7 +134,8 @@ const routes = [{
 				component: () => import('@/views/ranking/total_rank.vue'),
 				meta: {
 					icon: 'icon-shezhi_jiaose',
-					groupCode:'ranking'
+					groupCode:'ranking',
+					identification:'3-2'
 				}
 			},
 			{
@@ -131,7 +144,8 @@ const routes = [{
 				component: () => import('@/views/ranking/custom_rank.vue'),
 				meta: {
 					icon: 'icon-shezhi_jichushezhi',
-					groupCode:'ranking'
+					groupCode:'ranking',
+					identification:'3-3'
 				}
 			},
 			{
@@ -140,7 +154,8 @@ const routes = [{
 				component: () => import('@/views/ranking/manager_statistics.vue'),
 				meta: {
 					icon: 'icon-shezhi_jichushezhi',
-					groupCode:'ranking'
+					groupCode:'ranking',
+					identification:'3-4'
 				}
 			},
 			
@@ -150,7 +165,8 @@ const routes = [{
 				component: () => import('@/views/ranking/department_statistics.vue'),
 				meta: {
 					icon: 'icon-shezhi_jichushezhi',
-					groupCode:'ranking'
+					groupCode:'ranking',
+					identification:'3-5'
 				}
 			},
 			{
@@ -159,7 +175,8 @@ const routes = [{
 				component: () => import('@/views/ranking/individual_statistics.vue'),
 				meta: {
 					icon: 'icon-shezhi_jichushezhi',
-					groupCode:'ranking'
+					groupCode:'ranking',
+					identification:'3-6'
 				}
 			}
 		]

File diff suppressed because it is too large
+ 824 - 492
src/views/ranking/department_statistics.vue


+ 1241 - 15
src/views/ranking/individual_statistics.vue

@@ -1,24 +1,1250 @@
 <template>
+  <div>
+    <el-row style="min-width:1160px;">
+      <el-row :span="24" style="display:flex;min-width:650px;">
+        <el-col style="width:200px;">
+          <el-select
+            v-model="select_employee_id"
+            filterable
+            placeholder="请输入或选择人员"
+          >
+            <el-option
+              v-for="item in employee_map"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-col>
+        <el-col style="width:105px;margin-left:20px;">
+          <el-select
+            v-model="time_type"
+            placeholder="请选择分类"
+            style="width: 100px;"
+          >
+            <el-option
+              v-for="item in time_types"
+              :key="item.label"
+              :label="item.label"
+              :value="item.value"
+            ></el-option>
+          </el-select>
+        </el-col>
 
-</template>
+        <el-col style="width:200px;">
+          <el-date-picker
+            v-show="time_type == '2'"
+            v-model="export_from.year"
+            class="date-picker-width"
+            type="year"
+            value-format="yyyy"
+            :clearable="false"
+            :editable="false"
+            placeholder="选择年份排名"
+          ></el-date-picker>
+          <el-date-picker
+            v-show="time_type == '1' || time_type == '月份'"
+            v-model="export_from.month"
+            class="date-picker-width"
+            type="month"
+            value-format="yyyy-MM"
+            :clearable="false"
+            :editable="false"
+            placeholder="选择月份排名"
+          ></el-date-picker>
+        </el-col>
+        <!-- <el-col style="margin-left:20px;" :span="5">
+			<el-date-picker
+			v-model="formData.month"
+			type="month"
+			placeholder="请选择月份"
+			value-format="yyyy-MM"
+			></el-date-picker>
+		</el-col> -->
+      </el-row>
+
+      <el-col :span="24" style="min-width:1160px;margin-top:10px;">
+        <el-col :span="18" style="min-width:780px;">
+          <el-row
+            :span="24"
+            class="top_user_info"
+            style="margin:0 0 0 0;padding:0;"
+          >
+            <el-col :span="7" class="userinfo_box">
+
+              <el-row :gutter="40" style="margin:0;padding:0;">
+                <el-col
+                  :span="24"
+                  class="user_info"
+				          style="display:flex;"
+                  v-loading="personnelMessage"
+                >
+                  <div class="headimg fl" style=" margin: 0 10px 0 20%;">
+                    <userImage
+                      :id="personnel.id"
+                      :img_url="personnel.img_url"
+                      :user_name="personnel.name"
+                      fontSize="1"
+                      width="50px"
+                      height="50px"
+                    ></userImage>
+                  </div>
+				  <div style="width:100%;">
+						<div style="max-width: 80%;display: inline-block;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;vertical-align: top;margin-left:10%;"><b style="font-size:16px;">{{ personnel.name }}</b></div>
+            <div
+              style="max-width: 80%;display:flex;flex-wrap:wrap;overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;margin-left:10%;"
+            >
+              <el-popover
+              trigger="hover"
+              placement="top"
+              popper-class="popperSPBOX"
+              >
+              <div style="font-size:14px;color:#828282;">
+                {{ dept_list }}
+              </div>
+              <div slot="reference" class="name-wrapper">
+                <span style="font-size:14px;color:#828282;">{{
+                dept_list
+                }}</span>
+              </div>
+              </el-popover>
+            </div>
+					</div>
+                </el-col>
+              </el-row>
+
+            </el-col>
+            <!-- <div>
+              <el-col
+                :span="8"
+                style="margin-top:34px;padding:0;border-right: 1px #cecccc solid;height:58px;"
+                v-loading="authorityManagerHeaderLoad"
+              >
+                <el-col
+                  :gutter="50"
+                  style="margin:0;padding:0;"
+                  class="quick_button_box"
+                >
+                  <div style="display:flex;justify-content: space-around;">
+                    <p style="text-align:center;cursor:pointer;margin: 0;"><b style="color:#26A2FF;font-size:27px;">{{authorityManagerHeaders.b? authorityManagerHeaders.b: "0"}}</b><br /><span style="color:#606266;font-size:14px;padding-top:8px;display: inline-block;">{{ yearhORmontStr }}度B分</span></p>
+                    <p style="text-align:center;cursor:pointer;margin: 0;"><b style="color:#26A2FF;font-size:27px;">{{ authorityManagerHeaders.a? authorityManagerHeaders.a: "0"}}</b><br /><span style="color:#606266;font-size:14px;padding-top:8px;display: inline-block;">{{ yearhORmontStr }}度A分</span></p>
+                  </div>
+                </el-col>
+              </el-col>
+              <el-col :span="8" style="margin:0;padding:0;">
+                <el-col
+                  :gutter="50"
+                  style="margin:0;padding:34px 0 0 0;"
+                  class="quick_button_box"
+                >
+                  <div
+                    style="display:flex;justify-content: space-around;"
+                    v-loading="authorityManagerHeaderLoad"
+                  >
+                    <p style="text-align:center;cursor:pointer;margin: 0;">
+                      <b style="color:#26A2FF;font-size:27px;">{{
+                        authorityManagerHeaders.performance
+                          ? authorityManagerHeaders.performance.review_point
+                          : "0"
+                      }}</b
+                      ><br /><span
+                        style="color:#606266;font-size:14px;padding-top:8px;display: inline-block;"
+                        >绩效分</span
+                      >
+                    </p>
+                    <p style="text-align:center;cursor:pointer;margin: 0;"><b style="color:#26A2FF;font-size:27px;">{{authorityManagerHeaders.performance? authorityManagerHeaders.performance.total_count + "/" +authorityManagerHeaders.performance.complete_count: "0/0"}}</b><br /><span style="color:#606266;font-size:14px;padding-top:8px;display: inline-block;">任务进度</span></p>
+                  </div>
+                </el-col>
+              </el-col>
+            </div> -->
+			
+			<el-col :span="17" style="margin-top:34px;padding:0;height:58px;" v-loading="authorityManagerHeaderLoad">
+				<el-col :gutter="50" style="margin:0;padding:0;" class="quick_button_box">
+				<div style="display:flex;justify-content: space-around;">
+					<p style="text-align:center;cursor:pointer;margin: 0;"><b style="color:#26A2FF;font-size:27px;">{{authorityManagerHeaders.b?authorityManagerHeaders.b:'0'}}</b><br><span style="color:#606266;font-size:14px;padding-top:8px;display: inline-block;">{{ yearhORmontStr }}度B分</span></p>
+					<p style="text-align:center;cursor:pointer;margin: 0;"><b style="color:#26A2FF;font-size:27px;">{{authorityManagerHeaders.a?authorityManagerHeaders.a:'0'}}</b><br><span style="color:#606266;font-size:14px;padding-top:8px;display: inline-block;">{{ yearhORmontStr }}度A分</span></p>
+					<!-- <p style="text-align:center;cursor:pointer;margin: 0;"><b style="color:#26A2FF;font-size:27px;">{{authorityManagerHeaders.performance?authorityManagerHeaders.performance.review_point:'0'}}</b><br><span style="color:#606266;font-size:14px;padding-top:8px;display: inline-block;">绩效分</span></p> -->
+					<p style="text-align:center;cursor:pointer;margin: 0;"><b style="color:#26A2FF;font-size:27px;">{{authorityManagerHeaders.performance?authorityManagerHeaders.performance.total_count + '/' + authorityManagerHeaders.performance.complete_count : '0/0'}}</b><br><span style="color:#606266;font-size:14px;padding-top:8px;display: inline-block;">任务进度</span></p>
+				</div>
+
+				</el-col>
+			</el-col>
+
+          </el-row>
+
+          <el-col :span="24">
+            <el-row class="left-all-style">
+              <el-row style="position: relative;">
+                <el-col :span="24">
+                  <b class="title" style="margin-bottom:15px;display:block"
+                    >{{ yearhORmontStr }}积分构成</b
+                  >
+                </el-col>
+                <div v-loading="IntegralFormChartLoad">
+                  <div
+                    class="nopoint_box"
+                    style="height:307px;"
+                    v-show="IntegralFormnone"
+                  >
+                    <div
+                      class="noimg"
+                      style="width: 150px;height: 150px;margin-top:80px;"
+                    ></div>
+                    <span class="title1"
+                      >暂无积分数据,<span
+                        @click="$router.push({ path: '/award_punish' })"
+                        style="color:#409EFF;cursor:pointer;"
+                        >去奖扣积分></span
+                      ></span
+                    >
+                  </div>
+                  <div v-show="!IntegralFormnone">
+                    <div
+                      ref="IntegralFormChart"
+                      :style="{ width: '100%', height: '350px' }"
+                    ></div>
+                  </div>
+                </div>
+              </el-row>
+            </el-row>
+          </el-col>
+
+          <el-col :span="24" style="">
+            <el-row class="left-all-style">
+              <el-row style="position: relative;">
+                <el-col :span="24" style="display:flex">
+                  <b class="title" style="margin:0 20px 15px 0;display:block"
+                    >{{ yearhORmontStr }}积分情况</b
+                  >
+                  <el-checkbox v-model="exclusiveMonthChecked"
+                    >不包含自动积分加分项</el-checkbox
+                  >
+                </el-col>
+                <div v-loading="monthlyIntegralloading">
+                  <div
+                    class="nopoint_box"
+                    style="height:450px;"
+                    v-if="monthlyIntegralnone"
+                  >
+                    <div
+                      class="noimg"
+                      style="width: 150px;height: 150px;margin-top:110px;"
+                    ></div>
+                    <span class="title1">暂无积分数据</span>
+                  </div>
+
+                  <div v-show="!monthlyIntegralnone">
+                    <div
+                      ref="monthlyIntegralChart"
+                      :style="{ width: '100%', height: '400px' }"
+                    ></div>
+                    <div
+                      style="width:90%;display:flex;justify-content: space-around;margin-top:30px;padding-left:40px"
+                    >
+                      <p
+                        v-for="(item, index) in monthORyear == '2'
+                          ? monthlyIntegralList
+                          : yearlyIntegralList"
+                        :key="index"
+                        style="text-align:center"
+                      >
+                        <b
+                          style="display:block;color:#303133;font-size:18px;"
+                          v-if="index < 3"
+                          >{{
+                            index == 0
+                              ? item.total_point
+                              : index == 1
+                              ? item.reward_point
+                              : index == 2
+                              ? item.deduction_point
+                              : ""
+                          }}</b
+                        >
+                        <b
+                          style="display:block;color:#303133;font-size:18px;"
+                          v-else-if="index == 3"
+                          >{{ item.ratio == -1 ? "—" : item.ratio + ":1" }}</b
+                        >
+                        <b
+                          style="display:block;color:#303133;font-size:18px;"
+                          v-else
+                          >{{ item.toRatio.ratio + "%" }}
+                          <svg-icon
+                            :icon-class="
+                              item.toRatio.type == 1
+                                ? 'litrearrows'
+                                : item.toRatio.type == 2
+                                ? 'droparrows'
+                                : ''
+                            "
+                            style="font-size:10px;margin-bottom:2px"
+                          />
+                        </b>
+                        <span
+                          style="color:rgb(48, 49, 51);font-size:14px;margin-top:5px;display:block;"
+                          >{{ item.name }}</span
+                        >
+                      </p>
+                    </div>
+                  </div>
+                </div>
+              </el-row>
+            </el-row>
+          </el-col>
+        </el-col>
+
+        <el-col :span="6" style="min-width:280px;">
+          <el-col>
+            <el-row class="right-all-style" v-loading="awardDeductRanking">
+              <el-row style="">
+                <el-col :span="24" style="display:flex">
+                  <b class="title" style="margin:0 20px 15px 0;display:block"
+                    >{{ yearhORmontStr }}奖分最多</b
+                  >
+                </el-col>
+                <el-col :span="24" style="margin-bottom:10px;">
+                  <el-col style="">
+                    <div class="nopoint_box" v-if="IntegralEventO.length == 0">
+                      <div class="noimg" style="margin: 48px auto 16px;"></div>
+                      <span class="title1" style="padding-bottom:20px;"
+                        >暂无积分数据</span
+                      >
+                    </div>
+
+                    <el-table
+                      :data="IntegralEventO"
+                      fit
+                      :show-header="false"
+                      style="border:0px solid #fff;"
+                      v-else
+                    >
+                      <el-table-column prop="remark_data" label="规则">
+                        <template slot-scope="scope">
+                          <div
+                            style="padding-left:10px;display:flex;flex-wrap:wrap;overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;"
+                          >
+                            <el-popover
+                              trigger="hover"
+                              placement="top"
+                              popper-class="popperSPBOX"
+                            >
+                              <div style="font-size:14px;color:#828282;">
+                                {{
+                                  scope.row.remark.customize ||
+                                    scope.row.remark.rule
+                                }}
+                              </div>
+                              <div slot="reference" class="name-wrapper">
+                                <span style="font-size:14px;color:#828282;">{{
+                                  scope.row.remark.customize ||
+                                    scope.row.remark.rule
+                                }}</span>
+                              </div>
+                            </el-popover>
+                          </div>
+                          <!-- <span>{{scope.row.remark.customize || scope.row.remark.rule}}</span> -->
+                        </template>
+                      </el-table-column>
+                      <!-- <el-table-column align="center" prop="create_time" label="创建时间" width="140"></el-table-column> -->
+                      <el-table-column
+                        align="center"
+                        prop="point"
+                        label="积分"
+                        width="110"
+                      >
+                        <template slot-scope="scope">
+                          <span
+                            >{{ scope.row.point > 0 ? "+" : ""
+                            }}{{ scope.row.point }}</span
+                          >
+                        </template>
+                      </el-table-column>
+                    </el-table>
+                  </el-col>
+                </el-col>
+              </el-row>
+            </el-row>
+          </el-col>
 
+          <el-col>
+            <el-row class="right-all-style" v-loading="awardDeductRanking">
+              <el-row style="">
+                <el-col :span="24" style="display:flex">
+                  <b class="title" style="margin:0 20px 15px 0;display:block"
+                    >{{ yearhORmontStr }}扣分最多</b
+                  >
+                </el-col>
+                <el-col :span="24" style="margin-bottom:10px;">
+                  <el-col style="">
+                    <div class="nopoint_box" v-if="IntegralEventT.length == 0">
+                      <div class="noimg" style="margin: 48px auto 16px;"></div>
+                      <span class="title1" style="padding-bottom:20px;"
+                        >暂无积分数据</span
+                      >
+                    </div>
+                    <el-table
+                      :data="IntegralEventT"
+                      fit
+                      :show-header="false"
+                      v-else
+                    >
+                      <el-table-column prop="remark_data" label="规则">
+                        <template slot-scope="scope">
+                          <div
+                            style="padding-left:10px;display:flex;flex-wrap:wrap;overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;"
+                          >
+                            <el-popover
+                              trigger="hover"
+                              placement="top"
+                              popper-class="popperSPBOX"
+                            >
+                              <div style="font-size:14px;color:#828282;">
+                                {{
+                                  scope.row.remark.customize ||
+                                    scope.row.remark.rule
+                                }}
+                              </div>
+                              <div slot="reference" class="name-wrapper">
+                                <span style="font-size:14px;color:#828282;">{{
+                                  scope.row.remark.customize ||
+                                    scope.row.remark.rule
+                                }}</span>
+                              </div>
+                            </el-popover>
+                          </div>
+                          <!-- <span>{{scope.row.remark.customize || scope.row.remark.rule}}</span> -->
+                        </template>
+                      </el-table-column>
+                      <!-- <el-table-column align="center" prop="create_time" label="创建时间" width="140"></el-table-column> -->
+                      <el-table-column
+                        align="center"
+                        prop="point_mark"
+                        label="积分"
+                        width="110"
+                      >
+                        <template slot-scope="scope">
+                          <span>{{ scope.row.point }}</span>
+                        </template>
+                      </el-table-column>
+                      <!-- <el-table-column align="center" prop="remark_data.rule" show-overflow-tooltip label="规则" width="180"></el-table-column> -->
+
+                      <!-- <el-table-column align="center" label="规则" prop="remark_data.rule"  width="180">
+									<template slot-scope="scope">
+									<el-popover trigger="hover" placement="top" popper-class="popperSPBOX">
+										<span>{{scope.row.remark_data.rule || scope.row.remark_data.customize}}</span>
+										<div slot="reference" class="name-wrapper"  style="width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"><span>{{scope.row.remark_data.rule || scope.row.remark_data.customize}}</span></div>
+									</el-popover>
+									</template>
+								</el-table-column> -->
+                    </el-table>
+                  </el-col>
+                </el-col>
+              </el-row>
+            </el-row>
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+
+    <!-- <el-col  style="display:flex;justify-content: space-between;"> -->
+    <!-- </el-col> -->
+  </div>
+</template>
 <script>
+import ECharts from "echarts";
 export default {
-	name:'individual_statistics',
-	data() {
-		return {
-		};
-	},
-	watch: {},
-	mounted() {
-
-	},
-	methods: {
-
-	}
+  data() {
+    return {
+      //筛选项
+      formData: {
+        employee_id: this.$getUserData().id,
+      },
+      //时间
+      time_type: "月份",
+      time_types: [
+        { label: "月份", value: "1" },
+        { label: "年份", value: "2" },
+      ],
+      export_from: {
+        year: this.$moment().format("YYYY"),
+        month: this.$moment().format("YYYY-MM"),
+      },
+      yearhORmontStr: "月",
+      monthORyear: "2",
+
+      //选择人员
+      select_employee_id: this.$getUserData().name,
+      employee_map: "", //获取人员列表
+
+      dept_list: "",
+      //人员详情
+      personnel: {},
+      authorityManagerHeaderLoad: false, //人员loading
+      authorityManagerHeaders: {}, //人员数据
+      personnelMessage: false, //人员信息loading
+
+      //饼图
+      IntegralFormChartLoad: false, //积分构成loading
+      IntegralFormnone: false, //积分构成为空或报错,展示的开关
+
+      //本月积分情况
+      exclusiveMonthChecked: true, //不包含自动积分加分项
+      monthlyIntegralList: [
+        //本月积分情况数据
+        { total_point: "0", name: "月总积分" },
+        { reward_point: "0", name: "月总奖分" },
+        { deduction_point: "0", name: "月总扣分" },
+        { ratio: "0", name: "奖扣分比例" },
+        { toRatio: { ratio: "0", type: 0 }, name: "对比上月总分" },
+        { toRatio: { ratio: "0", type: 0 }, name: "对比上月奖分" },
+        { toRatio: { ratio: "0", type: 0 }, name: "对比上月扣分" },
+      ],
+      yearlyIntegralList: [
+        //年积分情况数据
+        { total_point: "0", name: "年总积分" },
+        { reward_point: "0", name: "年总奖分" },
+        { deduction_point: "0", name: "年总扣分" },
+        { ratio: "0", name: "奖扣分比例" },
+        { toRatio: { ratio: "0", type: 0 }, name: "对比去年总分" },
+        { toRatio: { ratio: "0", type: 0 }, name: "对比去年奖分" },
+        { toRatio: { ratio: "0", type: 0 }, name: "对比去年扣分" },
+      ],
+      monthlyIntegralloading: false, //本月积分情况loading
+      monthlyIntegralnone: false, //本月积分情况为空或报错,展示的开关
+      exclusiveMonthBranch: 0, //本月积分情况--部门
+
+      IntegralEventO: [], //个人奖分数据
+      IntegralEventT: [], //个人扣分数据
+
+      awardDeductRanking: false, //个人奖扣分loading
+    };
+  },
+  watch: {
+    time_type(val) {
+      if (val == "1") {
+        //月
+        this.monthORyear = "2";
+        this.formData.year = null;
+        this.formData.month = this.$moment().format("YYYY-MM");
+        this.export_from.month = this.$moment().format("YYYY-MM");
+        this.yearhORmontStr = "月";
+      } else if (val == "2") {
+        //年
+        this.monthORyear = "3";
+        this.formData.month = null;
+        this.formData.year = this.$moment().format("YYYY");
+        this.export_from.year = this.$moment().format("YYYY");
+        this.yearhORmontStr = "年";
+      }
+      this.executiveFunction();
+    },
+    "export_from.month"(val, old_val) {
+      this.formData.month = val;
+      this.executiveFunction();
+    },
+    "export_from.year"(val, old_val) {
+      this.formData.year = val;
+      this.executiveFunction();
+    },
+    // "formData.month"(val, old_val) {
+    //   this.executiveFunction();
+    //   console.log(this.formData);
+    // },
+    //不包含自动积分加分项
+    exclusiveMonthChecked() {
+      this.monthlyIntegral();
+    },
+
+    select_employee_id(val) {
+      this.formData.employee_id = val;
+      this.executiveFunction(true);
+    },
+  },
+  mounted() {
+    window.addEventListener('resize',this.selfAdaption); 
+    this.getEmployee()
+    // if(JSON.parse(localStorage.getItem("SET_EMPLOYEE_MAP"))){
+    //   this.employee_map = JSON.parse(localStorage.getItem("SET_EMPLOYEE_MAP"))
+    // }else{
+    //   this.$store.dispatch('get_employee_map').then((res) => {
+    //     this.$nextTick(() => {
+    //       this.employee_map = JSON.parse(localStorage.getItem("SET_EMPLOYEE_MAP"))
+    //     })
+    //   })
+    // }
+    // if (this.$store.getters.user_info) {
+    //   this.personnel = this.$store.getters.user_info;
+    //   let dept_li = this.personnel.employee_detail.dept_list;
+    //   let dept_ = "";
+    //   for (let i in dept_li) {
+    //     dept_ += dept_li[i].dept_name + " ";
+    //   }
+    //   this.dept_list = dept_;
+    // } else {
+    //   this.personnelDetails(); //获取人员详情
+    // }
+    if(this.$getUserData()){
+      this.personnel = this.$getUserData()
+      let dept_li = this.personnel.employee_detail.dept_list;
+      let dept_ = "";
+      for (let i in dept_li) {
+        dept_ += dept_li[i].dept_name + " ";
+      }
+      this.dept_list = dept_;
+    }else{
+      this.personnelDetails(); //获取人员详情
+    }
+    this.formData.month = this.$moment().format("YYYY-MM");
+    this.executiveFunction();
+    
+  },
+  methods: {
+		//获取员工列表
+		getEmployee() {
+			this.$axios('get','/api/employee/index', {dept_id: 0, keywords: '', page: 1, page_size: 2000 }).then(res => {
+        let list = res.data.data.list
+        this.employee_map = list
+        // for(let i in list){
+
+        // }
+			}).finally(err=>{
+			});
+    },
+    
+    //echarts自适应
+    selfAdaption() {
+      var myChart1 = ECharts.init(this.$refs.monthlyIntegralChart);
+      var myChart2 = ECharts.init(this.$refs.IntegralFormChart);
+      // myChart.setOption(option);
+      myChart1.resize();
+      myChart2.resize();
+    },
+    //需要执行的所有函数
+    executiveFunction(item) {
+      //切换角色才请求--人员详情--。
+      if (item) {
+        this.personnelDetails(); //获取人员详情
+        this.authorityManagerHeader(); //本月 A B 绩效分 比例
+        this.integralForm(); //饼图
+        this.monthlyIntegral(); //本月积分情况
+        this.integralEvents(); //积分事件列表
+      } else {
+        this.authorityManagerHeader(); //本月 A B 绩效分 比例
+        this.integralForm(); //饼图
+        this.monthlyIntegral(); //本月积分情况
+        this.integralEvents(); //积分事件列表
+      }
+    },
+
+    //获取人员详情
+    personnelDetails() {
+      this.personnelMessage = true;
+      let params = {
+        id: this.formData.employee_id,
+      };
+      this.$axios("get", "/api/employee/info", params)
+        .then((res) => {
+          this.personnel = res.data.data;
+          let dept_li = this.personnel.employee_detail.dept_list;
+          let dept_ = "";
+          for (let i in dept_li) {
+            dept_ += dept_li[i].dept_name + " ";
+          }
+          this.dept_list = dept_;
+        })
+        .finally(() => {
+          this.personnelMessage = false;
+        });
+    },
+    //本月 A B 绩效分 比例
+    authorityManagerHeader() {
+      this.authorityManagerHeaderLoad = true;
+      let params = {};
+      params.employee_id = this.formData.employee_id;
+      if (this.monthORyear == "2") {
+        //月
+        params.month = this.formData.month;
+      } else if (this.monthORyear == "3") {
+        //年
+        params.year = this.formData.year;
+      }
+      this.$axios("get", "/api/integral/statistics/", params, "v2")
+        .then((res) => {
+          if (res.data.code == 1) {
+            this.authorityManagerHeaders = res.data.data;
+          }
+        })
+        .finally(() => {
+          this.authorityManagerHeaderLoad = false;
+        });
+    },
+
+    //饼图
+    //分为两列展示,多传legendDataTwo
+    drawLine(legendDataOne, legendDataTwo, dadalist) {
+      // drawLine(legendDataOne,dadalist){
+      const chart = this.$refs.IntegralFormChart;
+      //此处可给固定颜色,不给就所有颜色随机
+      let colors = [
+        "rgb(38, 162, 255)",
+        "#f36f2a",
+        "#fecb09",
+        "#00b6bd",
+        "#e85d53",
+        "#fecb09",
+        "#725197",
+        "#fcb814",
+        "#41a08d",
+        "#425a95",
+        "#ea8b84",
+        "#9d1d62",
+        "#fcb814",
+      ];
+      // let colors = [];
+      let legendDataLeng = legendDataOne.length + legendDataTwo.length;
+      if (legendDataLeng > colors.length) {
+        //当列表大于固定颜色时,给随机颜色
+        let colorsLeng = colors.length;
+        for (let i = 0; i <= legendDataLeng - colorsLeng; i++) {
+          // colors.push('#' + Math.random().toString(16).substr(2, 6).toUpperCase());//也是随机色
+          colors.push(
+            "rgb(" +
+              Math.round(Math.random() * 255) +
+              "," +
+              Math.round(Math.random() * 255) +
+              "," +
+              Math.round(Math.random() * 255) +
+              ")"
+          );
+        }
+      }
+      //只显示 N 条标题,多余隐藏,但是饼图不会隐藏
+      let DataLengths = [];
+      for (let i in legendDataTwo) {
+        if (i < 8) {
+          DataLengths.push(legendDataTwo[i]);
+        }
+      }
+      let left1 = "45%";
+      let left2 = "45%";
+      let leftBT = "25%";
+      if (legendDataTwo.length != 0) {
+        left1 = "36%";
+        leftBT = "18%";
+      }
+      if (chart) {
+        const myChart = ECharts.init(chart);
+        var legendData1 = legendDataOne;
+        var legendData2 = DataLengths;
+        const option = {
+          tooltip: { trigger: "item", formatter: "{b}" },
+          legend: [
+            {
+              type: "scroll",
+              orient: "vertical",
+              icon: "square",
+              left: left1,
+              align: "left",
+              top: "10%",
+              itemGap: 20,
+              textStyle: { fontSize: 14, color: "rgb(48, 49, 51)" },
+              data: legendData1,
+            },
+            //分为两列展示
+            {
+              type: "scroll",
+              orient: "vertical",
+              icon: "square",
+              left: "70%",
+              align: "left",
+              top: "10%",
+              itemGap: 20,
+              textStyle: { fontSize: 14, color: "rgb(48, 49, 51)" },
+              data: legendData2,
+            },
+          ],
+          color: colors,
+          grid: { x: 25, y: 45, x2: 5, y2: 20, borderWidth: 1 },
+          toolbox: {
+            show: true,
+            feature: {
+              mark: { show: true },
+              magicType: { show: true, type: ["pie", "funnel"] },
+            },
+          },
+          series: [
+            {
+              name: "",
+              type: "pie",
+              radius: [20, 110],
+              center: [leftBT, "40%"],
+              roseType: "radius",
+              label: { show: false },
+              emphasis: { label: { show: false } },
+              data: dadalist,
+            },
+          ],
+        };
+        myChart.setOption(option);
+      }
+    },
+    integralForm() {
+      this.IntegralFormChartLoad = true;
+      let listslength = [];
+      let params = {};
+      params.employee_id = this.formData.employee_id;
+      if (this.monthORyear == "2") {
+        //月
+        params.month = this.formData.month;
+      } else if (this.monthORyear == "3") {
+        //年
+        params.year = this.formData.year;
+      }
+      this.$axios("get", "/api/integral/statistics/pie/b", params, "v2")
+        .then((res) => {
+          let lists = res.data.data.list;
+          listslength = lists;
+          let legendData1 = [];
+          let legendData2 = [];
+          let dadalist = [];
+          //分为两列展示
+          // let listLeng = Math.ceil((lists.length)/2)
+
+          for (let i in lists) {
+            //分为两列展示
+            // if(i<listLeng){
+            //   legendData1.push(lists[i].name+' '+'奖'+lists[i].reward+' '+'扣'+lists[i].deduction+' '+lists[i].ratio+'%')
+            // }else{
+            //   legendData2.push(lists[i].name+' '+'奖'+lists[i].reward+' '+'扣'+lists[i].deduction+' '+lists[i].ratio+'%')
+            // }
+            if (i < 8) {
+              legendData1.push(
+                lists[i].name +
+                  " " +
+                  "奖" +
+                  lists[i].reward +
+                  " " +
+                  "扣" +
+                  lists[i].deduction +
+                  " " +
+                  lists[i].ratio +
+                  "%"
+              );
+            } else {
+              legendData2.push(
+                lists[i].name +
+                  " " +
+                  "奖" +
+                  lists[i].reward +
+                  " " +
+                  "扣" +
+                  lists[i].deduction +
+                  " " +
+                  lists[i].ratio +
+                  "%"
+              );
+            }
+            // console.log(lists.length/2)
+
+            let dataListDx = {};
+            if (lists[i].ratio < 0) {
+              dataListDx.value = 0;
+            } else {
+              dataListDx.value = lists[i].ratio;
+            }
+            dataListDx.name =
+              lists[i].name +
+              " " +
+              "奖" +
+              lists[i].reward +
+              " " +
+              "扣" +
+              lists[i].deduction +
+              " " +
+              lists[i].ratio +
+              "%";
+            // dataListDx.name = lists[i].name
+            dadalist.push(dataListDx);
+          }
+          //分为两列展示,多传legendData2
+          this.drawLine(legendData1, legendData2, dadalist); //图表
+          // this.drawLine(legendData1,dadalist)//图表
+        })
+        .finally(() => {
+          if (listslength.length == 0) {
+            this.IntegralFormnone = true;
+          } else {
+            this.IntegralFormnone = false;
+          }
+          this.IntegralFormChartLoad = false;
+        });
+    },
+
+    //月度积分
+    monthlyIntegralRanking(date, total, reward, deduction) {
+      const chart = this.$refs.monthlyIntegralChart;
+      if (chart) {
+        const myChart = ECharts.init(chart);
+        const option = {
+          tooltip: {
+            trigger: "axis",
+          },
+          color: ["#F56C6C", "#26A2FF", "#FFC100"],
+          legend: {
+            right: "0%",
+            data: ["总积分", "奖分", "扣分"],
+          },
+          grid: {
+            left: "3%",
+            right: "4%",
+            bottom: "3%",
+            containLabel: true,
+          },
+          toolbox: {
+            feature: {},
+          },
+          xAxis: {
+            type: "category",
+            boundaryGap: false,
+            data: date,
+          },
+          yAxis: {
+            type: "value",
+            axisLine: {
+              show: false,
+            },
+            axisTick: {
+              show: false,
+            },
+          },
+          series: [
+            {
+              name: "总积分",
+              type: "line",
+              data: total,
+            },
+            {
+              name: "奖分",
+              type: "line",
+              data: reward,
+            },
+            {
+              name: "扣分",
+              type: "line",
+              data: deduction,
+            },
+          ],
+        };
+        myChart.setOption(option);
+      }
+    },
+    //月度积分
+    // monthlyIntegralchange(val){
+    //   console.log(val)
+    //   if(val.length == 0){
+    //     this.exclusiveMonthBranch = 0
+    //   }else{
+    //     let valItem = 0
+    //     for(let i in val){
+    //       valItem = val[i]
+    //     }
+    //     this.exclusiveMonthBranch = valItem
+    //   }
+    //   this.monthlyIntegral()
+    // 	this.$nextTick(()=>{
+    // 		this.$refs.dept2.dropDownVisible = false;
+    // 	})
+    // },
+    monthlyIntegral() {
+      this.monthlyIntegralloading = true;
+      let params = {};
+      let listslength = [];
+      params.employee_id = this.formData.employee_id;
+      if (this.monthORyear == "2") {
+        //月
+        params.month = this.formData.month;
+      } else if (this.monthORyear == "3") {
+        //年
+        params.year = this.formData.year;
+      }
+      if (this.exclusiveMonthChecked) {
+        params.include_fixed = 1;
+      } else {
+        params.include_fixed = 0;
+      }
+      this.$axios("get", "/api/integral/statistics/curve", params)
+        .then((res) => {
+          if (res.data.code == 1) {
+            let lists = res.data.data;
+            listslength = lists;
+            if (this.monthORyear == "2") {
+              this.monthlyIntegralList[0].total_point = lists.total_point;
+              this.monthlyIntegralList[1].reward_point = lists.reward_point;
+              this.monthlyIntegralList[2].deduction_point =
+                lists.deduction_point;
+              this.monthlyIntegralList[3].ratio = lists.ratio;
+              this.monthlyIntegralList[4].toRatio = lists.contrast_total;
+              this.monthlyIntegralList[5].toRatio = lists.contrast_reward;
+              this.monthlyIntegralList[6].toRatio = lists.contrast_deduction;
+            } else if (this.monthORyear == "3") {
+              this.yearlyIntegralList[0].total_point = lists.total_point;
+              this.yearlyIntegralList[1].reward_point = lists.reward_point;
+              this.yearlyIntegralList[2].deduction_point =
+                lists.deduction_point;
+              this.yearlyIntegralList[3].ratio = lists.ratio;
+              this.yearlyIntegralList[4].toRatio = lists.contrast_total;
+              this.yearlyIntegralList[5].toRatio = lists.contrast_reward;
+              this.yearlyIntegralList[6].toRatio = lists.contrast_deduction;
+            }
+            let dates = []; //日期
+            let totals = []; //总积分
+            let rewards = []; //奖分
+            let deductions = []; //扣分
+            for (let i in lists.total) {
+              dates.push(lists.total[i].date);
+              totals.push(lists.total[i].point);
+            }
+            for (let i in lists.reward) {
+              rewards.push(lists.reward[i].point);
+            }
+            for (let i in lists.deduction) {
+              deductions.push(lists.deduction[i].point);
+            }
+            this.monthlyIntegralRanking(dates, totals, rewards, deductions);
+          }
+        })
+        .finally(() => {
+          if (!listslength.total) {
+            this.monthlyIntegralnone = true;
+          } else {
+            this.monthlyIntegralnone = false;
+          }
+          this.monthlyIntegralloading = false;
+        });
+    },
+
+    //积分事件列表
+    integralEvents() {
+      this.awardDeductRanking = true;
+      let params = {
+        page: 1,
+        page_size: 5,
+        pt_id: "3",
+        time_type: "2",
+      };
+      params.employee_id = this.formData.employee_id;
+      if (this.monthORyear == "2") {
+        //月
+        params.month = this.formData.month;
+        params.time_type = "2";
+      } else if (this.monthORyear == "3") {
+        //年
+        params.year = this.formData.year;
+        params.time_type = "3";
+      }
+      this.$axios(
+        "get",
+        "/api/integral/statistics/prize/buckle/ranking",
+        params
+      )
+        .then((res) => {
+          this.IntegralEventO = res.data.data.prize;
+          this.IntegralEventT = res.data.data.buckle;
+        })
+        .finally(() => {
+          this.awardDeductRanking = false;
+        });
+    },
+  },
+  beforeDestroy() {//取消echarts自适应
+    window.removeEventListener("resize",this.selfAdaption);
+  },
 };
 </script>
+<style scoped="scoped" lang="scss">
+.el-table::before {
+  height: 0px;
+}
+
+.left-all-style {
+  margin-top: 20px;
+  padding: 20px;
+  background: #fff;
+  border-radius: 5px;
+  .title {
+    padding-left: 10px;
+    font-size: 16px;
+    font-weight: normal;
+    border-left: 2px solid #409eff;
+  }
+  .titledes {
+    display: block;
+    padding-top: 10px;
+    font-size: 14px;
+    color: #909399;
+  }
+  .noremind {
+    display: block;
+    text-align: right;
+    font-size: 12px;
+    color: #909399;
+    cursor: pointer;
+  }
+  .noremind:hover {
+    color: #409eff;
+  }
+  .noremind:active {
+    color: #409eff;
+  }
+}
+
+.right-all-style {
+  padding: 20px;
+  background: #fff;
+  border-radius: 5px;
+  margin: 0 0 20px 20px;
+  .title {
+    padding-left: 10px;
+    font-size: 16px;
+    font-weight: normal;
+    border-left: 2px solid #409eff;
+  }
+}
+.rightexamineAndApproveList {
+  text-align: left;
+  width: 100%;
+  border-bottom: 1px solid #efefef;
+}
+.nopoint_box {
+  display: inline-block;
+  text-align: center;
+  width: 100%;
+  margin-bottom: 10px;
+}
+
+.nopoint_box .noimg {
+  display: inline-block;
+  width: 110px;
+  height: 110px;
+  margin: 22px auto 16px;
+  background: url("../../assets/image/nodata_default.png") no-repeat center;
+  background-size: 99%;
+}
+
+.nopoint_box .noperson {
+  display: inline-block;
+  width: 110px;
+  height: 110px;
+  margin: 22px auto 16px;
+  background: url("../../assets/image/noperson_default.png") no-repeat center;
+  background-size: 99%;
+}
+
+.nopoint_box .title1 {
+  display: block;
+  text-align: center;
+  font-size: 12px !important;
+  color: #909399 !important;
+  padding: 0;
+}
+
+.nopoint_box a {
+  color: #26a2ff;
+}
+
+.top_user_info {
+  position: relative;
+  padding-top: 0;
+  background: #fff;
+}
+
+.top_user_info .userinfo_box {
+  border-right: 1px #cecccc solid;
+  margin: 34px 0;
+}
+
+.top_user_info .user_box {
+  padding-left: 0 !important;
+  border-right: 1px #333 solid;
+}
+
+.top_user_info .headimg_box {
+  padding-left: 0 !important;
+}
+
+.top_user_info .headimg_box .headimg {
+  width: 50px;
+  height: 50px;
+  background: #909399;
+  border-radius: 50px;
+}
+
+.top_user_info .user_info {
+  padding: 0 !important;
+  line-height: 25px;
+}
+.top_user_info .user_info .greetings {
+  margin: 4px 0px 0 120px;
+  font-size: 16px;
+  font-weight: bold;
+}
+.top_user_info .user_info .greetings span {
+  font-size: 14px;
+  color: #666;
+  display: inline-block;
+  vertical-align: top;
+}
+
+.top_user_info .user_info span:nth-child(1) {
+  display: block;
+  font-size: 16px;
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+}
+
+.top_user_info .person {
+  display: block;
+  font-size: 14px;
+  padding: 32px 0 18px 0;
+  color: #606266;
+}
+/*
+padding: 18px 0 16px 0;
+color: #606266;
+height: 32px;
+box-sizing: content-box;
+*/
+
+.top_user_info .time {
+  font-size: 14px;
+  padding-right: 10px;
+  position: relative;
+}
+
+.pointsevent_box {
+  display: block;
+  text-align: center;
+  margin: 20px 0 0 0px;
+  padding-right: 0 !important;
+  border: 1px #e1e4e7 solid;
+  box-shadow: 0 2px 4px rgba(140, 140, 140, 0.1);
+}
 
-<style scoped="scoped">
+.pointsevent_box .title {
+  font-family: Microsoft Yahei;
+  display: block;
+  text-align: left;
+  margin-bottom: 20px;
+  padding: 0 0 0 10px;
+  font-size: 16px;
+  font-weight: normal;
+  border-left: 2px solid #409eff;
+}
 
-</style>
+.popperSPBOX {
+  max-width: calc(100vh - 400px);
+  background-color: rgb(255, 255, 255);
+}
+</style>

Some files were not shown because too many files changed in this diff