哥哥玩剑魂呢 преди 3 години
родител
ревизия
55b2b06ccc

+ 2 - 1
config/dev.env.js

@@ -5,7 +5,8 @@ module.exports = {
   // SERVE_AD: '"https://nkaoqin.g107.net"'
   
   // BASE_API: '"http://test.qywx.g107.net"',
-  BASE_API: '"http://qywx.1024win.cn"',
+  // BASE_API: '"http://qywx.1024win.cn"',
+  BASE_API: '"http://test.qywx.g107.net"',
   SERVE_AD: '"https://nkaoqin.g107.net"',
   // APPID: '"ww4065f0d4bb232a6a"',
   APPID: '"wwa8bbe3b687a632dd"',

+ 2 - 1
config/sit.env.js

@@ -2,6 +2,7 @@ module.exports = {
   NODE_ENV: '"production"',
   ENV_CONFIG: '"sit"',
   // BASE_API: '"https://new.gdy.g107.com"',
-  BASE_API: '"http://qywx.1024win.cn"',
+  // BASE_API: '"http://qywx.1024win.cn"',
+  BASE_API: '"http://test.qywx.g107.net"',
   SERVE_AD: '"https://nkaoqin.g107.net"'
 }

BIN
dist.zip


+ 8 - 4
src/api/auth.js

@@ -1,11 +1,15 @@
 import store from '@/store'
 
+// export function getUserData() {
+//     return store.getters.user_info.employee_detail.role_list;
+//   }
+// 获取当前用户详情
 export function getUserData() {
-    return store.getters.user_info.employee_detail.role_list;
-  }
+	return store.getters.user_info || JSON.parse(localStorage.getItem('user_info'))
+}
 export function getIsCreator (key) {
 	 let is=false;
-	 let getUserdatas = getUserData()
+	 let getUserdatas = getUserData().employee_detail.role_list
 	 for(let i in getUserdatas){
 		//  console.log(getUserdatas[i])
 		 if(key == getUserdatas[i].name){
@@ -62,12 +66,12 @@ export function getTypsName(id) {
 //用法
 // _debounce(this.XXX(),1000)
 export function _debounce (fn, delay) {
+	if(!delay)delay=500
     let timer = null
     return function () {
         let arg = arguments
         clearTimeout(timer)
         timer = setTimeout(() => {
-          console.log(this,arg)
             fn.apply(this, arg)
         }, delay)
     }

+ 83 - 0
src/components/Steps.vue

@@ -0,0 +1,83 @@
+<template>
+  <div>
+    <p class="row_title">
+      审批
+      <span class="row_tips">多人审批时,以最后一人为准</span>
+    </p>
+    <div class="examine_steps">
+      <el-steps direction="vertical" :space="50">
+        <el-step v-for="(item, index) in process" :key="index" style="margin-bottom: 5px;display: -webkit-box;">
+          <template slot="icon">
+            <userImage width="36px" height="36px" fontSize="14" :img_url="item.img_url" :user_name="item.name"></userImage>
+          </template>
+          <template slot="title">
+            <div>
+              <div class="flex-box-ce" style="color: #303133;font-size:14px;margin-top:-2px;">
+                <div class="flex-1">
+                  <WWOpenData type="userName" :openid="item.name"></WWOpenData>
+                  <span style="margin: 0 5px;">
+                    <span v-if="item.remark == '待审核'" class="yellow" style="font-size:13px">待审批</span>
+                    <span v-else-if="item.remark == '审核通过'" class="green" style="font-size:13px">审批通过</span>
+                    <span v-else-if="item.remark == '审核驳回'" class="red" style="font-size:13px">审批驳回</span>
+                    <span v-else>{{ item.remark }}</span>
+                  </span>
+                  <strong style="font-weight: 500;">
+                    <span class="red point" v-show="item.review_point > 0">+{{ item.review_point }}</span>
+                    <span class="green point" v-show="item.review_point < 0">{{ item.review_point }}</span>
+                  </strong>
+                </div>
+                <span class="fontColorF" style="font-size:12px;">{{ item.time }}</span>
+              </div>
+            </div>
+          </template>
+          <template slot="description" style="">
+            <div class="fontColorB" style="margin: 5px 0;">{{ item.review_remark }}</div>
+          </template>
+        </el-step>
+      </el-steps>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'Steps',
+  props: {
+    process: {
+      type: Array,
+      default: () => {
+        return [];
+      }
+    }
+  },
+  data() {
+    return {};
+  },
+  methods: {}
+};
+</script>
+
+<style scoped="scoped" lang="scss">
+.row_title {
+  position: relative;
+  margin: 0 0 20px 0;
+  padding-top: 12px;
+  font-size: 16px;
+  color: #303133;
+  line-height: 22px;
+}
+.row_title:before {
+  position: absolute;
+  top: 0;
+  content: ' ';
+  width: 100%;
+  border-top: 1px #f8f8f8 solid;
+}
+.el-row {
+  margin-bottom: 10px;
+  font-size: 14px;
+  .el-col-4 {
+    color: #606266;
+  }
+}
+</style>

+ 1 - 1
src/components/deptData.vue

@@ -12,7 +12,7 @@
 export default {
   props: {
     refsName: {
-      type: Object,
+      type: '',
       default: ""
     },
     toPdept: {

+ 2 - 1
src/main.js

@@ -11,7 +11,7 @@ import App from './App'
 import router from './router'
 import store from './store'
 import {getToken, getEmployeeMap} from '@/utils/auth'
-import {supremeAuthority ,authoritys , getTypsName} from './api/auth';
+import {supremeAuthority ,authoritys , getUserData, getTypsName} from './api/auth';
 
 import i18n from './lang' // Internationalization
 import './icons' // icon
@@ -52,6 +52,7 @@ Vue.prototype.$supremeAuthority = supremeAuthority
 Vue.prototype.$authoritys = authoritys
 Vue.prototype.$getTypsName = getTypsName
 Vue.prototype.$getEmployeeMap = getEmployeeMap
+Vue.prototype.$userInfo = getUserData
 // Vue.prototype.$wx = wx;
 
 

+ 23 - 4
src/permission.js

@@ -35,12 +35,27 @@ router.beforeEach((to, from, next) => {
       item('interrupt'); //给个标志,中断请求
     })
   }
+  
   // NProgress.start()
   if(cookGetToken()){
-    localSetToken(cookGetToken())
-    store.commit("SET_TOKEN", getToken());
-    Cookies.remove('Admin-Token')
-    init(to, next)
+    console.log('cookies 有 token')
+    console.log('localToken:')
+    console.log(getToken())
+    console.log('cookiesToken:')
+    console.log(cookGetToken())
+    if(getToken() !== cookGetToken()){
+      console.log('两个token不相等')
+      store.commit('SET_DELETE_USER', {})
+      store.commit('SET_TOKEN', cookGetToken())
+      localStorage.setItem('Admin-Token', cookGetToken())
+      console.log(getToken())
+      console.log(cookGetToken())
+      init(to, next)
+    }else{
+      init(to, next)
+    }
+    // localSetToken(cookGetToken())
+    // Cookies.remove('Admin-Token')
   }else if (getToken()) {
     if (!store.state.user.token) store.commit("SET_TOKEN", getToken());
     init(to, next)
@@ -65,8 +80,12 @@ function init(to, next) {
     })
     // NProgress.done()
   } else {
+    console.log(store.getters.user_info)
+    console.log('99999999999999999999')
     if (!store.getters.user_info.id) { // 判断当前用户是否已拉取完user_info信息
+      console.log('进判断')
       store.dispatch('GetUserInfo').then(res => { // 拉取user_info
+        console.log('拉取user_info成功')
         console.log(res)
         // 设置title
         document.title = ''

+ 7 - 1
src/store/modules/user.js

@@ -84,7 +84,13 @@ const user = {
     },
     SET_SITEINFO: (state, data) => {
       state.site_info = data
-    }
+    },
+    SET_DELETE_USER (state, data) {
+      console.log('进SET_DELETE_USER')
+      if(state) state = data
+      console.log(state)
+      console.log('出SET_DELETE_USER')
+    },
   },
 
   actions: {

+ 107 - 11
src/styles/index.scss

@@ -17,13 +17,14 @@ ul,li {
   padding: 0;
 }
 label {
-  font-weight: 700;
+  font-weight: 600;
 }
 
 html {
   height: 100%;
   box-sizing: border-box;
   overflow: hidden;
+  color: #282828;
 }
 
 #app{
@@ -195,14 +196,67 @@ code {
 .multiselect--active {
   z-index: 1000 !important;
 }
+/* 字体颜色 */
+.blue {
+	color: #26A2FF!important;
+}
+
+.red {
+	color: #F56C6C!important;
+}
+
+.yellow {
+	color: #E6A23C!important;
+}
+
+.green {
+	color: #67C23A!important;
+}
+.blue-box {
+	color: #26A2FF!important;
+  background-color: #ecf5ff!important;
+}
+
+.red-box {
+	color: #F56C6C!important;
+  background-color: #fef0f0!important;
+}
+
+.yellow-box {
+	color: #E6A23C!important;
+  background-color: #fdf6ec!important;
+}
+
+.green-box {
+	color: #67C23A!important;
+  background-color: #f0f9eb!important;
+}
+
+.fontColorZ {
+	color: #303133!important;
+}
+
+.fontColorB {
+	color: #777777 !important;
+}
+
+.fontColorF {
+	color: #909399 !important;
+}
+
+.fontColorT {
+	color: #C0C4CC!important;
+}
+
 
 /* 盒子模型 */
 .flex-box {
-  display: -webkit-box;
-  display: -moz-box;
-  display: -ms-flexbox;
-  display: -webkit-flex;
-  display: flex;
+    display: -webkit-box; /* Chrome 4+, Safari 3.1, iOS Safari 3.2+ */
+    display: -moz-box; /* Firefox 17- */
+    display: -webkit-flex; /* Chrome 21+, Safari 6.1+, iOS Safari 7+, Opera 15/16 */
+    display: -moz-flex; /* Firefox 18+ */
+    display: -ms-flexbox; /* IE 10 */
+    display: flex; /* Chrome 29+, Firefox 22+, IE 11+, Opera 12.1/17/18, Android 4.4+ */
 }
 
 /*盒子模型,竖向自适应,垂直排列  */
@@ -242,15 +296,14 @@ code {
   -moz-box-align: center;
 }
 
-/*对view中的子元素进行居中,并且位于容器的中间位置(flex-box水平;flex-box-v垂直)  */
+/*对view中的子元素进行居中,并且位于容器的中间位置水平居中 */
 .flex-v-zhu,
 .flex-h-zhu {
   justify-content: center;
   -webkit-justify-content: center;
   -webkit-box-pack: center;
 }
-
-/*对view中的子元素进行居中,并且位于容器的中间位置(flex-box垂直;flex-box-v水平)  */
+// 垂直居中
 .flex-v-ce,
 .flex-h-ce {
   align-items: center;
@@ -258,6 +311,19 @@ code {
   -webkit-box-align: center;
 }
 
+/*flex-box与 flex-v-ce结合*/
+.flex-box-ce {
+  display: -webkit-box;
+  display: -moz-box;
+  display: -ms-flexbox;
+  display: -webkit-flex;
+  display: flex;
+  align-items: center;
+  -webkit-align-items: center;
+  -webkit-box-align: center;
+}
+
+
 /*让所有弹性盒模型对象的子元素都有相同的长度,且忽略它们内部的内容:  */
 .flex-1 {
   -webkit-box-flex: 1;
@@ -335,6 +401,36 @@ code {
   display: flex;
   justify-content: flex-end;
 }
+// 滚动条样式
+.scroll-bar::-webkit-scrollbar {
+  width: 6px;
+  height: 6px;
+}
+
+/*外层轨道。可以用display:none让其不显示,也可以添加背景图片,颜色改变显示效果*/
+.scroll-bar::-webkit-scrollbar-track {
+  width: 6px;
+  background-color: #fff0;
+  -webkit-border-radius: 2em;
+  -moz-border-radius: 2em;
+  border-radius: 2em;
+
+}
+
+/*滚动条的设置*/
+.scroll-bar::-webkit-scrollbar-thumb {
+  background-color: #fff0;
+  background-clip: padding-box;
+  -webkit-border-radius: 2em;
+  -moz-border-radius: 2em;
+  border-radius: 2em;
+}
+/*滚动条移上去的背景*/
+.scroll-bar:hover::-webkit-scrollbar-thumb {
+  background-color: rgba(144, 147, 153, 0.3);
+  height: 20px;
+}
+
 
 .el-date-editor .el-range-separator {
     padding: 0px 0px !important;
@@ -406,8 +502,8 @@ code {
   }
 }
 
-// 
+//
 .testinfo_class .el-message__icon{
   font-size: 20px;
   color: red;
-}
+}

+ 6 - 1
src/utils/auth.js

@@ -1,4 +1,5 @@
 import Cookies from 'js-cookie'
+import store from '@/store'
 
 const TokenKey = 'Admin-Token'
 const JTOKEN = 'jtoken'
@@ -32,7 +33,11 @@ export function getPasw() {
 
 
 export function localSetToken(token) {
-  return localStorage.setItem(TokenKey, token)
+  if(getToken() !== token){
+    console.log('进localSetToken')
+    store.commit('SET_DELETE_USER', {})
+    return localStorage.setItem(TokenKey, token)
+  }
 }
 export function setUser(value) {
   return Cookies.set('user', value, { expires: 365 })

+ 7 - 0
src/views/common/EmployeeSelector.vue

@@ -528,6 +528,7 @@ export default {
     //关闭||清空数据
     close() {
       this.$emit('update:visible', false);
+      this.$refs.dept1.dropDownVisible = false;
       if (this.close_clear_data) {
         this.checked = false;
         this.keyword='';
@@ -996,4 +997,10 @@ export default {
     display: none;
   }
 }
+/deep/ .el-cascader__dropdown{
+  // position: fixed;
+  // top: 190px;
+  // left: 364px;
+  z-index: 10001;
+}
 </style>

+ 20 - 44
src/views/common/examinePopup.vue

@@ -7,15 +7,15 @@
           <el-row :gutter="10" style="padding-bottom:20px;border-bottom:1px #f8f8f8 solid;position: relative;">
             <el-col :span="24">
               <template>
-                <userImage :id="detail_info.employee_id" class="fl" width="50px" height="50px" fontSize="15"></userImage>
+                <userImage v-if="detail_info.employee_info" :id="detail_info.employee_id" :user_name="detail_info.employee_info.name" :img_url="detail_info.employee_info.img_url" class="fl" width="50px" height="50px" fontSize="15"></userImage>
               </template>
               <template>
-                <span style="line-height:50px; margin-left:10px;margin-right:4px;"><WWOpenData type="userName" :openid="getEmployeeName(detail_info.employee_id)"></WWOpenData></span>
+                <span v-if="detail_info.employee_info" style="line-height:50px; margin-left:10px;margin-right:4px;"><WWOpenData type="userName" :openid="detail_info.employee_info.name"></WWOpenData></span>
                 <span class="color_red point" v-show="detail_info.point >= 0 && detail_info.point">
                   <span v-if="(detail_info.review_point == 0 ? detail_info.point : detail_info.review_point) >= 0">+</span>
-                  {{ detail_info.review_point == 0 ? detail_info.point : detail_info.review_point }}
+                  {{ detail_info.review_point == 0 ? detail_info.point : detail_info.review_point }} {{ $getTypsName(detail_info.pt_id) }}
                 </span>
-                <span class="color_green point" v-show="detail_info.point < 0 && detail_info.point">{{ detail_info.point }}</span>
+                <span class="color_green point" v-show="detail_info.point < 0 && detail_info.point">{{ detail_info.point }} {{ $getTypsName(detail_info.pt_id) }}</span>
               </template>
               <br />
               <template>
@@ -65,7 +65,7 @@
               <span class="row_tips" style="font-size:12px;color:#909399">此事件打分参考以下积分规则</span>
             </p>
             <el-row>
-              <el-col :span="4">事件分类</el-col>
+              <el-col :span="4">积分分类</el-col>
               <el-col :span="20">{{ detail_info.rule_name }}</el-col>
             </el-row>
             <el-row>
@@ -73,43 +73,17 @@
               <el-col :span="20">{{ detail_info.item_name }}</el-col>
             </el-row>
             <el-row>
-              <el-col :span="4">规则积分</el-col>
+              <el-col :span="4">积分分数</el-col>
               <el-col :span="20">
-                <span v-show="detail_info.point > 0">+</span>
-                {{ detail_info.point }} {{ detail_info.pt_id == 3 ? 'B分' : detail_info.pt_id == 2 ? 'A分' : detail_info.pt_id == 1 ? '绩效分' : '' }}
+                <span v-if="detail_info.item_range_type == 2">
+                  {{ detail_info.item_min_point + ' ~ ' + detail_info.item_max_point }}
+                </span>
+                <span v-else><span v-show="detail_info.point > 0">+</span>{{ detail_info.point }}</span>
+                {{ detail_info.pt_id == 3 ? 'B分' : detail_info.pt_id == 2 ? 'A分' : detail_info.pt_id == 1 ? '绩效分' : '' }}
               </el-col>
             </el-row>
           </div>
-
-          <div v-show="detail_info.process != null && detail_info.process.length > 0">
-            <p class="row_title">
-              审批人 &nbsp;
-              <span class="row_tips" style="font-size:12px;color:#909399">多人审批时,以最后一人为准</span>
-            </p>
-
-            <div class="examine_steps">
-              <el-steps direction="vertical" :space="50">
-                <el-step v-for="(item, index) in detail_info.process" :key="index" style="display:flex;">
-                  <template slot="icon">
-                    <userImage width="36px" height="36px" :img_url="item.img_url" :user_name="item.name"></userImage>
-                  </template>
-                  <template slot="title">
-                    <div style="color: #303133;font-size:14px;margin-top:-2px;">
-                      <WWOpenData type="userName" :openid="item.name"></WWOpenData>&nbsp;
-                      <span v-if="item.remark == '待审核'" style="color:#E6A23C;font-size:13px">待审批</span>
-                      <span v-else-if="item.remark == '审核通过'" style="color:#67C23A;font-size:13px">审批通过</span>
-                      <span v-else-if="item.remark == '审核驳回'" style="color:#F56C6C;font-size:13px">审批驳回</span>
-                      <span v-else>{{ item.remark }}</span>
-                      <span style="color: #909399;font-size:12px;float:right">{{ item.time }}</span>
-                    </div>
-                  </template>
-                  <template slot="description">
-                    <div style="word-break:break-all;">{{ item.review_remark }}</div>
-                  </template>
-                </el-step>
-              </el-steps>
-            </div>
-          </div>
+          <div v-show="detail_info.process && detail_info.process.length > 0"><Steps :process="detail_info.process"></Steps></div>
 
           <el-row style="border-top: 1px #f8f8f8 solid;">
             <el-col :span="24" style="text-align: right;padding-top:20px" v-if="detail_info.status == 0">
@@ -117,7 +91,7 @@
               <el-button v-else @click="rejectBtn">驳回</el-button>
               <el-button type="primary" @click="adoptBtn">通过</el-button>
             </el-col>
-            <el-col :span="24" style="text-align: right;padding-top:20px" v-else>
+            <el-col :span="24" style="text-align: right;padding-top:20px" v-if="detail_info.can_refuse==1">
               <span style="color:#909399;font-size:12px;padding-right:20px">撤回后需重新审批</span>
               <el-button type="primary" @click="revokeApproval">撤回审批</el-button>
             </el-col>
@@ -144,8 +118,8 @@
           <el-input type="textarea" :rows="4" v-model="rejectForm.remark" placeholder="请输入审批意见(限50字)"></el-input>
         </el-form-item>
         <el-form-item>
-          <el-button type="primary" @click="confirmReject('rejectForm')">确认驳回</el-button>
           <el-button @click="cancelReject('rejectForm')">取消</el-button>
+          <el-button type="primary" @click="confirmReject('rejectForm')">确认驳回</el-button>
         </el-form-item>
       </el-form>
     </el-dialog>
@@ -307,11 +281,12 @@
           </el-row>
 
           <EmployeeSelector
-            :employee_not_select="employee_not_select"
-            :can_select_employee="true"
-            :can_select_dept="false"
+            :is_filtration_creator="false"
+            :user_employee_list="true"
             :employee_list="employee_lists"
             :multi="false"
+            :isChecKedAll="false"
+            :include_self="false"
             :selected="manager_selected"
             :visible.sync="show_employee_selector"
             @confirm="employee_confirm"
@@ -338,6 +313,7 @@
 <script>
 // import request from '@/utils/request'
 import EmployeeSelector from '@/views/common/EmployeeSelector';
+import Steps from '@/components/Steps.vue';
 
 export default {
   name: 'examinePopup',
@@ -430,7 +406,7 @@ export default {
       }
     }
   },
-  components: { EmployeeSelector },
+  components: { EmployeeSelector, Steps },
   mounted() {
     this.getRuleItem();
     this.getRuleItemTree();

+ 1 - 1
src/views/common/repeatTaskDetailsPopup.vue

@@ -23,7 +23,7 @@
           </li>
           <li class="flex-box" v-if="workDetailData.point_config">
             <div class="label">任务积分</div>
-            <div class="content_text yellow">{{workDetailData.point_config.base_point}}</div>
+            <div class="content_text yellow">{{workDetailData.point_config.base_point}} {{$getTypsName(workDetailData.pt_id)}}</div>
           </li>
           <li class="flex-box">
             <div class="label">任务附件</div>

+ 2 - 1
src/views/common/temporaryTaskAmend.vue

@@ -71,6 +71,7 @@
               :multi="false"
 			        :isChecKedAll="false"
               :is_manager_only="true"
+              :is_filtration_creator="false"
               :selected="reviewer_selected"
               :visible.sync="show_reviewer_selector"
               @confirm="reviewer_confirm"
@@ -79,7 +80,7 @@
 
           <el-form-item label="规则积分" prop="pt_id" :rules="[{ required: true, message: '请选择规则积分', trigger: 'blur' }]">
             <el-radio-group v-model="formData.pt_id" >
-              <el-radio v-for="(item,index) in point_types" :key="index" v-show="item.code !== 'JX'" :label="item.id">{{item.name}}</el-radio>
+              <el-radio v-for="(item,index) in point_types" disabled :key="index" v-show="item.code !== 'JX'" :label="item.id">{{item.name}}</el-radio>
             </el-radio-group>            
           </el-form-item>
 

+ 13 - 11
src/views/dashboard/index.vue

@@ -75,7 +75,8 @@
           </el-col>
         </el-col>
         <div v-else>
-          <el-col :span="8" style="margin-top:34px;padding:0;border-right: 1px #cecccc solid;height:58px;" v-loading="authorityManagerHeaderLoad">
+          <!-- <el-col :span="16" style="margin-top:34px;padding:0;border-right: 1px #cecccc solid;height:58px;" v-loading="authorityManagerHeaderLoad"> -->
+          <el-col :span="16" 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;" @click="$router.push({ path: '/individual_statistics' })"><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;">本月B分</span></p>
@@ -84,7 +85,7 @@
 
             </el-col>
           </el-col>
-          <el-col :span="8" style="margin:0;padding:0;">
+          <!-- <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;" @click="$router.push({ path: '/my_performance' })"><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>
@@ -92,7 +93,7 @@
               </div>
 
             </el-col>
-          </el-col>
+          </el-col> -->
         </div>
       </el-row>
       
@@ -361,7 +362,7 @@
             ></userImage>
             <div class="rightexamineAndApproveList" style="border:0px">
               <p style="width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#73767c;font-size:16px;display:flex;justify-content: space-between;"><b style="color:#303133;font-size:16px;"><WWOpenData type="userName" :openid="prize.name"></WWOpenData></b><span style="color:#26A2FF;font-size:16px;"><span v-if="prize.point>0">+</span>{{prize.point}} B分</span></p>
-              <p style="font-size:13px;line-height:20px;color:rgb(48, 49, 51);overflow:hidden; text-overflow:ellipsis;display:-webkit-box; -webkit-box-orient:vertical;-webkit-line-clamp:2; ">{{prize.remark? prize.remark.customize : ''}}</p>
+              <p style="font-size:13px;line-height:20px;color:rgb(48, 49, 51);overflow:hidden; text-overflow:ellipsis;display:-webkit-box; -webkit-box-orient:vertical;-webkit-line-clamp:3; ">{{prize.remark? prize.remark.customize : ''}}</p>
             </div>
           </div>
         </div>
@@ -387,7 +388,7 @@
             ></userImage>
             <div class="rightexamineAndApproveList">
               <p style="width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#73767c;font-size:16px;display:flex;justify-content: space-between;"><b style="color:#303133;font-size:16px;"><WWOpenData type="userName" :openid="buckle.name"></WWOpenData></b><span style="color:#FF9600;font-size:16px;">{{buckle.point}} B分</span></p>
-              <p style="font-size:13px;line-height:20px;color:rgb(48, 49, 51);overflow:hidden; text-overflow:ellipsis;display:-webkit-box; -webkit-box-orient:vertical;-webkit-line-clamp:2;padding-bottom:15px; ">{{buckle.remark?buckle.remark.customize:''}}</p>
+              <p style="font-size:13px;line-height:20px;color:rgb(48, 49, 51);overflow:hidden; text-overflow:ellipsis;display:-webkit-box; -webkit-box-orient:vertical;-webkit-line-clamp:3; ">{{buckle.remark?buckle.remark.customize:''}}</p>
             </div>
           </div>
         </div>
@@ -569,12 +570,12 @@
             img: '/static/images/prizeBuckle.png',
             url: '/award_punish'
           },
-          {
-            name: '绩效',
-            value:'工作目标与价值的体现',
-            img: '/static/images/performance.png',
-            url: '/team_performance'
-          },
+          // {
+          //   name: '绩效',
+          //   value:'工作目标与价值的体现',
+          //   img: '/static/images/performance.png',
+          //   url: '/team_performance'
+          // },
           {
             name: '任务',
             value:'认可积极完成任务的人',
@@ -2644,6 +2645,7 @@ box-sizing: content-box;
     text-align:left;
     width:100%;
     border-bottom:1px solid #EFEFEF;
+    padding-bottom:15px;
   }
   .List_border:nth-child(5)  .rightexamineAndApproveList{
     border-bottom: 0px solid #fff;

+ 10 - 164
src/views/integral/EmployeeTable.vue

@@ -32,7 +32,6 @@
                   style="font-size: 14px;color: #606266; width:100%; text-align: left;"
                 >
 								  <img src="/static/images/one.png" style="width: 20px;margin-right: 5px;" />
-                  <!-- <span class="name" style="width:100%;overflow:hidden">{{data.label}}</span> -->
                   <span class="name"
                     ><WWOpenData
                       type="departmentName"
@@ -45,136 +44,27 @@
           </div>
         </div>
       </el-col>
-
       <el-col :span="18" class="RuleRight">
-        
 				<el-button @click="participation()" :loading="enable_loading" size="medium" type="primary" style="margin-right: 10px;">批量启用积分管理</el-button>
         <el-input placeholder="输入同事姓名" size="medium" style="width: 230px;"  v-model="keywords" clearable @input="searchUser()">
-          <!-- <el-button slot="append" icon="el-icon-search" @click="getEmployee()"></el-button> -->
         </el-input>
         <div
           style="color: #303133;font-size: 14px;padding:10px 0 0 0; line-height: 32px; overflow: hidden;"
         >
         </div>
-
         <div class="list_box">
           <div
             style="margin-bottom:10px;margin-top:30px;"
             class="inline-block-btn-list"
           >
-            <!-- <el-select
-              v-model="filter.status"
-              @change="onFilterChanged"
-              class="gap-right-8"
-              style="width:90px;display:none;"
-            >
-              <el-option
-                v-for="item in employeeStatus"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
-              ></el-option>
-            </el-select> -->
-
             <div
               class="gap-right-8 fr"
               style="display:inline-block; width:180px;"
             >
-              <!-- <el-input
-                placeholder="输入关键词"
-                ref="search-bar"
-                v-model="filter.keywords"
-                class="input-with-select"
-                @keyup.enter.native="onFilterChanged"
-              >
-                <el-button
-                  slot="append"
-                  icon="el-icon-search"
-                  @click="onFilterChanged"
-                ></el-button>
-              </el-input> -->
             </div>
           </div>
-          <!-- <el-table
-            class="list_box_table"
-            @filter-change="filterHandler"
-            ref="multipleTable"
-            :data="tableData"
-            tooltip-effect="dark"
-            @selection-change="handleSelectionChange"
-            @row-click="toDetailPage"
-          >
-            <el-table-column
-              type="selection"
-              width="50"
-              :selectable="isSelectable"
-            ></el-table-column>
-            <el-table-column prop="name" label="姓名" width="180px">
-              <template slot-scope="scope">
-                <userImage
-                  class="fl"
-                  :id="scope.row.id"
-                  :user_name="scope.row.name"
-                  :img_url="scope.row.img_url"
-                  fontSize="16"
-                  width="50px"
-                  height="50px"
-                ></userImage>
-                <span
-                  style="margin-left: 10px; line-height: 50px; display: inline-block;"
-                  >{{ scope.row.name }}</span
-                >
-                <span
-                  class="administration"
-                  v-if="scope.row.employee_detail.manage_dept_ids.length != 0"
-                  >主管</span
-                >
-              </template>
-            </el-table-column>
-            <el-table-column prop="tel" label="电话"></el-table-column>
-            <el-table-column
-              prop="company_id"
-              label="工号"
-              width="100px"
-            ></el-table-column>
-            <el-table-column prop="status" label="状态" width="80px">
-              <template slot-scope="scope">
-                <div
-                  v-if="scope.row.status == 0"
-                  style="color: rgb(255 168 90);"
-                >
-                  待加入
-                </div>
-                <div v-if="scope.row.status == 1" style="color: #409eff;">
-                  在职
-                </div>
-                <div v-if="scope.row.status == 2" style="color: #f56c6c;">
-                  离职
-                </div>
-                <div
-                  v-if="scope.row.status == 3"
-                  style="color: rgb(107 204 131);cursor:pointer"
-                  @click.stop="againInvite(scope.row)"
-                >
-                  再次邀请
-                </div>
-              </template>
-            </el-table-column>
-            <el-table-column
-              prop="accedence_time"
-              label="入职日期"
-              width="100px"
-            ></el-table-column>
-            <template slot="empty">
-              <div class="nopoint_box">
-                <div class="noimg noperson"></div>
-                <span class="title">没有对应的数据</span>
-              </div>
-            </template>
-          </el-table> -->
-
 					<el-table :data="userList" @selection-change="handleSelectionChange" v-loading="tableToading">
-						<el-table-column type="selection" width="50"></el-table-column>
+						<el-table-column type="selection" width="50" :selectable="isSelectable"></el-table-column>
 						<el-table-column label="姓名">
 							<template slot-scope="scope">
 								<div class="flex-box flex-v-ce">
@@ -195,32 +85,6 @@
 						<el-table-column prop="accedence_time" label="入职时间">
 							<template slot-scope="scope">
 								<div class="tabaccTIme" v-loading="scope.row.entryIf">
-                  <!-- <div style="cursor: pointer;"
-                   @click="entryTime(scope.row)"
-                    v-if="!scope.row.entryIf">
-                    {{scope.row.accedence_time}}
-                  </div>
-                  <el-date-picker
-                    style="width:100%;"
-                    v-model="scope.row.accedence_time"
-                    type="date"
-                    value-format="timestamp"
-                    placeholder="选择日期"
-                    :picker-options="assistantOptions"
-                    v-if="scope.row.entryIf"
-                  ></el-date-picker> -->
-                  <!-- <el-date-picker
-                    style="width:100%;"
-                    @change="entryclick(scope.row)"
-                    v-model="scope.row.accedence_time"
-                    type="date"
-                    clear-icon="el-icon-date"
-                    format="yyyy-MM-dd"
-                    value-format="yyyy-MM-dd"
-                    placeholder="选择日期"
-                    :clearable="false"
-                    :picker-options="assistantOptions"
-                  ></el-date-picker> -->
                   <el-date-picker
                     @change="entryclick(scope.row)"
                     clear-icon="el-icon-circle-close"
@@ -236,11 +100,6 @@
                 </div>
 							</template>
             </el-table-column>
-						<!-- <el-table-column prop="accedence_time" label="是否参与排名" align="center">
-							<template slot-scope="scope">
-								<span class="participateRank" :style="scope.row.is_ranking==1?'color:#409eff':'color:rgb(255 83 70)'" @click="rankingtakePartIn(scope.row.id,scope.row.is_ranking)">{{ scope.row.is_ranking==1?'参与':'不参与' }}</span>
-							</template>
-						</el-table-column> -->
 						<el-table-column label="启用积分管理">
 							<template slot="header" slot-scope="scope">
 								  <el-popover
@@ -263,27 +122,12 @@
 								<div :class="[scope.row.is_official==1? 'switch-box':'']" @click="changeIs(scope.row.is_official, scope.row.id)">
 									<div class="switch"></div>
 								</div>
-								<!-- <el-switch @change="changeIs($event, scope.row.id)" v-model="scope.row.is_official" :active-value="is" :inactive-value="no"></el-switch> -->
 							</template>
 						</el-table-column>
 						<template slot="empty">
 							<noData></noData>
 						</template>
 					</el-table>
-          
-          <!-- <el-pagination
-            background
-            layout="total,sizes, prev, pager, next"
-            @size-change="handleSizeChange"
-            :page-size="pageLimit"
-            :page-sizes="[10, 20, 50, 100]"
-            :total="totalCount"
-            :current-page.sync="currentPage"
-            @current-change="changePage"
-          >
-          
-          </el-pagination> -->
-          
           <el-pagination
             @size-change="handleSizeChange"
             @current-change="handleCurrentChange"
@@ -293,12 +137,10 @@
             layout="total,sizes, prev, pager, next"
             :total="total"
           ></el-pagination>
-
         </div>
       </el-col>
     </el-row>
 
-    
 		<el-dialog
 		title="设置是否参与排名"
 		:visible.sync="dialogVisible"
@@ -321,6 +163,7 @@
 <script>
 
 import noData from '@/components/noData';
+import { _debounce } from '@/api/auth';
 export default {
   components: {
     noData
@@ -405,7 +248,7 @@ export default {
 	watch: {
 		dept_id(val) {
 			this.getEmployee();
-		}
+    },
 	},
   mounted() {
 		this.$nextTick(function() {
@@ -488,10 +331,10 @@ export default {
 			});
 		},
 		//搜索
-		searchUser(){
-			this.page = 1;
-			this.getEmployee();
-		},
+		searchUser: _debounce(function() {
+      this.page = 1;
+      this.getEmployee();
+    }),
 		//是否开通
 		changeIs(e, id) {
 			var url = e == 1 ? '/api/employee/disable' : '/api/employee/enable';
@@ -540,6 +383,9 @@ export default {
 			}
 			this.selectIds = arr;
 		},
+    isSelectable: function(row, index) {
+      return row.is_official != 1;
+    },
 		//点击部门
 		handleNodeClick(e) {
 			this.page = 1;

+ 44 - 10
src/views/integral/rule/rule_category.vue

@@ -102,8 +102,12 @@
           <div style="position: relative;">
             <div style="position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: 9;" @click="not_data"
               v-show="dept_list !==null && dept_list.length == 0"></div>
-            <el-cascader placeholder="请选择分类" v-model="rules_detail_form.rule_id" @visible-change="select_rule" @change="cascader_close"
-              :options="dept_list" ref="cascaderHandle" :props="{ checkStrictly: true, label: 'name', value: 'id', children: 'child'}"></el-cascader>
+              
+          <el-cascader placeholder="请选择分类" v-model="rules_detail_form.rule_id" :options="dept_list" :props="{ checkStrictly: true, label: 'name', value: 'id', children: 'child'}"  @change="cascader_close" ref="cascaderHandle"
+            clearable></el-cascader>
+
+            <!-- <el-cascader placeholder="请选择分类" v-model="rules_detail_form.rule_id" @visible-change="select_rule" @change="cascader_close"
+              :options="dept_list" ref="cascaderHandle" :props="{ checkStrictly: true, label: 'name', value: 'id', children: 'child'}"></el-cascader> -->
           </div>
         </el-form-item>
         <el-form-item label="规则类型" prop="pt_id">
@@ -796,7 +800,7 @@
               if(self.dept_formdata.pid.length>0){
                 self.dept_formdata.pid = self.dept_formdata.pid[self.dept_formdata.pid.length - 1] || 0
               }else{
-                self.dept_formdata.pid = self.dept_formdata.pid || 0
+                self.dept_formdata.pid = 0
               }
               self.dept_formdata.rule_id = self.dept_formdata.id
               this.$http('put','/api/integral/rule', self.dept_formdata).then((res) => {
@@ -835,6 +839,7 @@
         this.dept_loading = true
         this.$http('get','/api/integral/rule/trees',{cycle_type: '1',keyword:this.keyword}).then((res) => {
           this.dept_list = res.data.data.rule_tree
+          console.log(this.dept_list)
           this.rule_category_list = []
           this.item_list = res.data.data.item_list
           this.parse_tree(this.dept_list, this.pid)
@@ -912,6 +917,7 @@
         this.class_show = true
         this.class_type = 'edit'
         this.dept_formdata = JSON.parse(JSON.stringify(this.class_item))
+        console.log(this.dept_formdata)
       },
       handleSelectionChange(val) {
         this.del_item_id = []
@@ -972,11 +978,12 @@
         }).catch(() => {});
       },
       cascader_close(val){
-        let rule_ids = '';
-        for(let i in val){
-          rule_ids = val[i]
-        }
-        this.rules_detail_form.rule_id = rule_ids
+        console.log(val)
+        // let rule_ids = '';
+        // for(let i in val){
+        //   rule_ids = val[i]
+        // }
+        // this.rules_detail_form.rule_id = rule_ids
         this.$refs.cascaderHandle.dropDownVisible = false; //监听值发生变化就关闭它
       },
       cascader_closeSJ(val){
@@ -1107,12 +1114,24 @@
                 let min_point = self.rules_detail_form.min_point
                 self.rules_detail_form.min_point = self.rules_detail_form.max_point
                 self.rules_detail_form.max_point = min_point
-                let data = self.rules_detail_form
+                // let data = self.rules_detail_form
+                let datas = self.rules_detail_form
+                console.log(datas)
+                let data = {}
+                for(let key in datas){
+                  data[key] = datas[key]
+                }
                 data.item_id = self.rules_detail_form.id
                 if(self.rules_detail_form.min_point == 0 && self.rules_detail_form.range_type == 1){
                   self.$message.error('积分不能为零')
                   return false
                 }
+                if(typeof datas.rule_id == 'object') data.rule_id = datas.rule_id[datas.rule_id.length - 1]
+                console.log(data.rule_id)
+                
+                console.log(data)
+                console.log(self.rules_detail_form)
+                return
                 this.$http('put','/api/integral/rule/items', data).then((res) => {
                   if (res.data.code == 1) {
                     self.$message.success(res.data.msg)
@@ -1128,12 +1147,27 @@
               }).catch(() => {});
             } else {
               self.rules_detail_form.item_id=self.rules_detail_form.id
-              let data = self.rules_detail_form
+              // let data = self.rules_detail_form
+              
+              let datas = self.rules_detail_form
+                console.log(datas)
+              let data = {}
+              for(let key in datas){
+                data[key] = datas[key]
+              }
               data.item_id = self.rules_detail_form.id
               if(self.rules_detail_form.min_point == 0 && self.rules_detail_form.range_type == 1){
                 self.$message.error('积分不能为零')
                 return false
               }
+              if(typeof datas.rule_id == 'object') data.rule_id = datas.rule_id[datas.rule_id.length - 1]
+                console.log(data.rule_id)
+                
+                console.log(data)
+                console.log(self.rules_detail_form)
+
+                console.log(this.cur_item_list)
+                return
               this.$http('put','/api/integral/rule/items', data).then((res) => {
                 if (res.data.code == 1) {
                   self.$message.success(res.data.msg)

+ 19 - 19
src/views/login/index3.vue

@@ -45,25 +45,25 @@ export default {
   created() {
      console.log('登录页');
      console.log(cookGetToken());
-    // if (cookGetToken()) {
-    //   this.$store.commit("SET_TOKEN", token);
-    //   localStorage.setItem(
-    //     "Experience_data",
-    //     JSON.stringify({ if: false, name: "" })
-    //   );
-    //   console.log(cookGetToken());
-    //   // this.$http("get", process.env.BASE_API + "/api/employee/detail").then(
-    //   //   res => {
-    //   //     if (res.data.code == 1) {
-    //   //       console.log(res);
-    //   //     }
-    //   //   }
-    //   // );
-    //   wxAuth(true);
-    // }else{
-    //   console.log('无Token')
-    //   window.location.href = process.env.BASE_API;//重新授权
-    // }
+    if (cookGetToken()) {
+      this.$store.commit("SET_TOKEN", token);
+      localStorage.setItem(
+        "Experience_data",
+        JSON.stringify({ if: false, name: "" })
+      );
+      console.log(cookGetToken());
+      // this.$http("get", process.env.BASE_API + "/api/employee/detail").then(
+      //   res => {
+      //     if (res.data.code == 1) {
+      //       console.log(res);
+      //     }
+      //   }
+      // );
+      wxAuth(true);
+    }else{
+      console.log('无Token')
+      window.location.href = process.env.BASE_API;//重新授权
+    }
   },
   mounted() {},
   methods: {},

+ 1 - 1
src/views/setting/company_info.vue

@@ -4,7 +4,7 @@
     <el-tabs v-model="activeName" @tab-click="handleClick" type="card" v-loading="loading">
       <el-tab-pane label="企业信息" name="first">
         <el-form :model="site_info" ref="site_info" :rules="site_info_rules" style="width: 400px" label-width="80px">
-          <el-form-item label="公司logo">
+          <el-form-item label="公司logo" v-if="false">
             <div @click="company_img_show = true">
               <userImage class="user_img" :id="0" width="68px" height="68px" :img_url="profile.company_info.logo_url"
                  :user_name="profile.company_info.name"></userImage>

+ 3 - 3
src/views/setting/fixed_integral.vue

@@ -454,8 +454,8 @@ export default {
             trigger: "blur",
           },
           {
-            max: 50,
-            message: "规则名称不能大于50个字",
+            max: 25,
+            message: "规则名称不能大于25个字",
             trigger: "blur",
           },
         ],
@@ -481,7 +481,7 @@ export default {
           },
           {
             max: 100,
-            message: "分类名称不能大于100个字",
+            message: "分类名称不能大于100个字",
             trigger: "blur",
           },
         ],

+ 33 - 26
src/views/setting/set_role.vue

@@ -318,13 +318,13 @@
       :visible.sync="integral_limit_show"
       :close-on-click-modal="false"
       width="700px">
-      <el-form label-width="100px" :model="integral_limit_form" ref="integral_limit_form" v-loading="integral_limit_loading">
+      <el-form label-width="150px" :model="integral_limit_form" ref="integral_limit_form" v-loading="integral_limit_loading">
         <span v-for="(item,index) in integral_limit_form.point_limit" :key="index" v-show="item.pt_id !== 1">
-          <el-form-item :label="item.name+'权限'" :rules="[{required: true, message: '请输入', trigger: 'blur'}]">
+          <el-form-item :label="item.name+'权限(单次奖扣)'" :rules="[{required: true, message: '请输入', trigger: 'blur'}]">
             <el-input v-model="item.point" oninput="value=value.replace(/[^\d]/g,'')"></el-input>
           </el-form-item>
         </span>
-        <el-form-item label="奖分上限">
+        <el-form-item label="每月B分奖分上限">
           <el-input v-model="integral_limit_form.entry_limit" oninput="value=value.replace(/[^\d]/g,'')" placeholder="奖分上限不限制"></el-input>
         </el-form-item>
         <el-form-item style="text-align: right; margin-bottom: 0">
@@ -383,7 +383,7 @@
           <template slot="label">
             <span>比例未达标</span>
             <el-tooltip placement="top">
-              <div slot="content" style="width: 300px;">扣x分(x为输入框)<br />完成奖扣比例任务的,按对应分值扣分</div>
+              <div slot="content" style="width: 300px;">扣x分(x为输入框)<br />完成奖扣比例任务的,按对应分值扣分</div>
               <span class="tips">?</span>
             </el-tooltip>
           </template>
@@ -392,7 +392,7 @@
 
         <el-form-item v-if="setPowerType == 'exec_count_point'">
           <template slot="label">
-            <span>少一次奖扣</span>
+            <span>少一次奖扣</span>
             <el-tooltip placement="top">
               <div slot="content" style="width: 300px;">扣x分(x为输入框)<br />奖扣次数未达任务要求的,每少一次扣对应分值</div>
               <span class="tips">?</span>
@@ -501,7 +501,7 @@
           <template slot="label">
             <span>比例未达标</span>
             <el-tooltip placement="top">
-              <div slot="content" style="width: 300px;">扣x分(x为输入框)<br />完成奖扣比例任务的,按对应分值扣分</div>
+              <div slot="content" style="width: 300px;">扣x分(x为输入框)<br />完成奖扣比例任务的,按对应分值扣分</div>
               <span class="tips">?</span>
             </el-tooltip>
           </template>
@@ -691,15 +691,15 @@
               {name: '查看全部管理者的数据', id: 2},
             ]
           },
-          {
-            title: '团队绩效',
-            name: 'performance_range',
-            code: 0,
-            list: [
-              {name: '查看自己以及管理范围内用户的数据', id: 1},
-              {name: '查看全员数据', id: 2},
-            ]
-          },
+          // {
+          //   title: '团队绩效',
+          //   name: 'performance_range',
+          //   code: 0,
+          //   list: [
+          //     {name: '查看自己以及管理范围内用户的数据', id: 1},
+          //     {name: '查看全员数据', id: 2},
+          //   ]
+          // },
           {
             title: '团队数据',
             name: 'statistics_range',
@@ -721,15 +721,15 @@
               {name: '查看全员数据', id: 3}
             ]
           },
-          {
-            title: '团队绩效',
-            name: 'performance_range',
-            code: 0,
-            list: [
-              {name: '仅查看自己的数据', id: 1},
-              {name: '查看全员数据', id: 2},
-            ]
-          }
+          // {
+          //   title: '团队绩效',
+          //   name: 'performance_range',
+          //   code: 0,
+          //   list: [
+          //     {name: '仅查看自己的数据', id: 1},
+          //     {name: '查看全员数据', id: 2},
+          //   ]
+          // }
         ],
       };
     },
@@ -891,13 +891,13 @@
               self.dataAccessList.forEach(element => {
                 element.name == 'event_range'?element.code = resData.event_range:''
                 element.name == 'prize_range'?element.code = resData.prize_range:''
-                element.name == 'performance_range'?element.code = resData.performance_range:''
+                // element.name == 'performance_range'?element.code = resData.performance_range:''
                 element.name == 'statistics_range'?element.code = resData.statistics_range:''
               });
             }else{
               self.dataAccessListEmployee.forEach(element => {
                 element.name == 'event_range'?element.code = resData.event_range:''
-                element.name == 'performance_range'?element.code = resData.performance_range:''
+                // element.name == 'performance_range'?element.code = resData.performance_range:''
               });
             }
           } else {
@@ -922,6 +922,9 @@
         if(self.item_info.code == 'employee'){
           data.prize_range = '1',
           data.statistics_range = '1'
+          data.performance_range = '1'
+        }else{
+          data.performance_range = '1'
         }
         self.$http('post','/api/role/range',data).then((res) => {
           if (res.data.code == 1) {
@@ -1324,6 +1327,10 @@
           cancelButtonText: '取消',
           type: 'warning'
         }).then(() => {
+          if(self.radio == self.$store.getters.user_info.id){ 
+            this.$message({message: '不可删除自己',type: 'warning'});
+            return
+          }
           self.$http('DELETE','/api/role/user',{role_id: self.item_info.id,employee_id: self.radio}).then((res) => {
             if (res.data.code == 1) {
               self.radio = ''

+ 4 - 2
src/views/statistics_new/dept_rank.vue

@@ -250,7 +250,7 @@
           </template>
         </el-table-column>
         <el-table-column
-          label="B分"
+          :label="typeName"
           align="left"
           prop="point"
         ></el-table-column>
@@ -542,7 +542,8 @@ export default {
       deriveJobId: "",
       deriveJobIf: 0,
       deriveDis: false,
-      aherfUrl: ""
+      aherfUrl: "",
+      typeName:'B分'
     };
   },
   watch: {
@@ -775,6 +776,7 @@ export default {
       let self = this;
       self.loading = true;
       data ? "" : (data = this.formData);
+      this.typeName=this.formData.pt_id==3? 'B分':'A分'
       data.position =
         data.position == "manager"
           ? "manager"

+ 7 - 5
src/views/statistics_new/individual_statistics.vue

@@ -4,7 +4,7 @@
       :span="24"
       style="padding: 20px;background: #fff;border:1px #e1e4e7 solid;box-shadow: 0 2px 4px rgba(140,140,140,0.1);"
     >
-        <el-col :span="5" style="position: relative;">
+        <el-col :span="5" style="position: relative;"  v-if="supAuthority!='employee'">
           <div v-if="selectAperson.currentLabel && selectAperson.currentLabel != '' || select_employee_id" class="selectApersonName" @click="takePartIn">
             <WWOpenData type="userName" :openid="selectAperson.currentLabel?selectAperson.currentLabel:select_employee_id"></WWOpenData>
           </div>
@@ -89,7 +89,8 @@
           </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 :span="8" style="margin-top:34px;padding:0;border-right: 1px #cecccc solid;height:58px;" v-loading="authorityManagerHeaderLoad"> -->
+          <el-col :span="16" 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>
@@ -97,7 +98,7 @@
               </div>
             </el-col>
           </el-col>
-          <el-col :span="8" style="margin:0;padding:0;">
+          <!-- <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>
@@ -105,7 +106,7 @@
               </div>
 
             </el-col>
-          </el-col>
+          </el-col> -->
         </div>
       </el-row>
     <!-- </el-col> -->
@@ -129,7 +130,7 @@
                 style="width: 150px;height: 150px;margin-top:80px;"
               ></div>
               <span class="title1"
-                >暂无积分数据,<span
+                >暂无积分数据,<span  v-if="supAuthority!='employee'"
                   @click="$router.push({ path: '/award_punish' })"
                   style="color:#409EFF;cursor:pointer;"
                   >去奖扣积分></span
@@ -389,6 +390,7 @@ export default {
 
       awardDeductRanking:false,//个人奖扣分loading
       selectAperson:[],
+      supAuthority:this.$supremeAuthority(),
     };
   },
   watch: {

+ 10 - 7
src/views/statistics_new/integral_event.vue

@@ -19,7 +19,7 @@
             clearable
             filterable
             change-on-select
-            placeholder="全部规则分类"
+            placeholder="选择规则分类"
           ></el-cascader>
         </el-col>
 
@@ -33,7 +33,7 @@
               ref="rule1"
               filterable
               change-on-select
-              placeholder="全部自动积分"
+              placeholder="选择自动积分"
               clearable></el-cascader>
         </el-col>
 
@@ -230,7 +230,10 @@
           </el-row>
         </div>
 
-        <div v-show="detail_info.rule_id">
+        <div v-show="detail_info.process !=undefined&&detail_info.process.length>0">
+            <Steps :process="detail_info.process"></Steps>
+        </div>
+        <!-- <div v-show="detail_info.rule_id">
           <p class="row_title">
             审批
             <span class="row_tips">多人审批时,以最后一人为准</span>
@@ -245,7 +248,6 @@
                 <template slot="title">
                   <div style="color: #303133;font-size:14px;margin-top:-2px;">
                     <WWOpenData type="userName" :openid="item.name"></WWOpenData> {{ item.remark }}
-                    <!-- <span v-show="item.point !== 0">{{item.point}}</span> -->
                   </div>
                 </template>
                 <template slot="description" style="">
@@ -254,7 +256,7 @@
               </el-step>
             </el-steps>
           </div>
-        </div>
+        </div> -->
         <div style="position: absolute; bottom: 20px; display: block; right: 20px;" v-show="deptManagerRouters">
           <el-button @click="close_integral_event">取消</el-button>
           <el-button type="danger" @click="del_integral_event(detail_info)">删除</el-button>
@@ -348,6 +350,7 @@
 <script>
 import { getToken } from '@/utils/auth';
 import noData from '@/components/noData';
+import Steps from '@/components/Steps.vue';
 // import axios from "axios"
 export default {
   data() {
@@ -415,7 +418,7 @@ export default {
       aherfUrl: '',
     };
   },
-  components: { noData },
+  components: { noData, Steps},
   created() {},
   mounted() {
     if (localStorage.getItem('dept_tree')) {
@@ -428,7 +431,7 @@ export default {
   watch: {
     newTaskFormType(val){
       this.formData.rule_id = []
-      this.get_integral_list(this.formData);
+      // this.get_integral_list(this.formData);
     },
     'formData.pt_id'(val, old_val) {
       this.formData.page = 1;

+ 29 - 5
src/views/workbench/approval_list.vue

@@ -45,7 +45,17 @@
                 :id="scope.row.employee_id"
                 :user_name="scope.row.employee_name"
               ></userImage>
-              <span class="tableTitle" v-show="scope.row.source_type == 1"
+              <span class="tableTitle"
+                ><WWOpenData type="userName" :openid="scope.row.employee_name"></WWOpenData>的{{
+                  scope.row.source_type == 1 ? '积分任务' :
+                  scope.row.source_type == 2 ? '积分申请' :
+                  scope.row.source_type == 3 ? '积分录入' :
+                  scope.row.source_type == 4 ? '绩效工作' :
+                  ''
+                }}
+                </span
+              >
+              <!-- <span class="tableTitle" v-show="scope.row.source_type == 1"
                 ><WWOpenData type="userName" :openid="scope.row.employee_name"></WWOpenData>的积分任务</span
               >
               <span class="tableTitle" v-show="scope.row.source_type == 2"
@@ -56,7 +66,7 @@
               >
               <span class="tableTitle" v-show="scope.row.source_type == 4"
                 ><WWOpenData type="userName" :openid="scope.row.employee_name"></WWOpenData>的绩效工作</span
-              >
+              > -->
             </template>
           </el-table-column>
           <el-table-column label="审批内容" prop="remark.rule">
@@ -110,7 +120,17 @@
                 :id="scope.row.employee_id"
                 :user_name="scope.row.employee_name"
               ></userImage>
-              <span class="tableTitle" v-show="scope.row.source_type == 1"
+              <span class="tableTitle"
+                ><WWOpenData type="userName" :openid="scope.row.employee_name"></WWOpenData>的{{
+                  scope.row.source_type == 1 ? '积分任务' :
+                  scope.row.source_type == 2 ? '积分申请' :
+                  scope.row.source_type == 3 ? '积分录入' :
+                  scope.row.source_type == 4 ? '绩效工作' :
+                  ''
+                }}
+                </span
+              >
+              <!-- <span class="tableTitle" v-show="scope.row.source_type == 1"
                 ><WWOpenData type="userName" :openid="scope.row.employee_name"></WWOpenData>的积分任务</span
               >
               <span class="tableTitle" v-show="scope.row.source_type == 2"
@@ -121,7 +141,7 @@
               >
               <span class="tableTitle" v-show="scope.row.source_type == 4"
                 ><WWOpenData type="userName" :openid="scope.row.employee_name"></WWOpenData>的绩效工作</span
-              >
+              > -->
             </template>
           </el-table-column>
           <el-table-column label="审批内容" prop="remark.rule">
@@ -145,13 +165,17 @@
           ></el-table-column>
           <el-table-column label="积分" prop="review_point" width="120">
             <template slot-scope="scope">
+              <span v-show="scope.row.review_point < 0" class="green">{{ scope.row.review_point }} {{ $getTypsName(scope.row.pt_id) }}</span>
+              <span v-show="scope.row.review_point >= 0" class="red">+{{ scope.row.review_point }} {{ $getTypsName(scope.row.pt_id) }}</span>
+            </template>
+            <!-- <template slot-scope="scope">
               <span v-show="scope.row.review_point < 0" class="color_red">{{
                 scope.row.review_point
               }}</span>
               <span v-show="scope.row.review_point >= 0"
                 >+{{ scope.row.review_point }}</span
               >
-            </template>
+            </template> -->
           </el-table-column>
           <el-table-column label="状态" prop="status" width="80">
             <template slot-scope="scope">

+ 36 - 29
src/views/workbench/grade/apply_list.vue

@@ -82,8 +82,9 @@
         <div class="nopoint_box" v-if="!formData.keyword">
           <div class="noimg"></div>
           <span class="title">
-            你还没有申请积分 现在
-            <el-button type="text" @click="dialogVisible = true">申请积分</el-button>
+            暂无待审批数据
+            <!-- 你还没有申请积分 现在
+            <el-button type="text" @click="dialogVisible = true">申请积分</el-button> -->
           </span>
         </div>
         <div class="nopoint_box" v-else>
@@ -109,8 +110,9 @@
         <div class="nopoint_box" v-if="!formData.keyword">
           <div class="noimg"></div>
           <span class="title">
-            你还没有申请积分 现在
-            <el-button type="text" @click="dialogVisible = true">申请积分</el-button>
+            暂无被驳回数据
+            <!-- 你还没有申请积分 现在
+            <el-button type="text" @click="dialogVisible = true">申请积分</el-button> -->
           </span>
         </div>
         <div class="nopoint_box" v-else>
@@ -138,33 +140,38 @@
       <div class="detail_popup" v-loading="detail_loading" v-if=" detail_info!== null">
         <el-row :gutter="10" style="padding-bottom:10px;border-bottom:1px #f8f8f8 solid;">
           <el-col :span="24">
-            <userImage
-              :id="detail_info.employee_id"
-              class="fl"
-              width="50px"
-              height="50px"
-              fontSize="15"
-              style="display: inline-block; margin-right: 10px;"
-            ></userImage>
-            <div class="user_text">
-              <p><WWOpenData type="userName" :openid="getEmployeeName(detail_info.employee_id)"></WWOpenData></p>
-              <!-- 优化 -->
-              <div v-for="(item,index) in detail_info.process" :key="index" v-show="item.review_point != 0">
-                <p v-if="detail_info.status == 1">
-                  <!-- <span v-show="item.point !== 0 && item.review_point >= 0 &&detail_info.item_prize_type == 1 || item.point !== 0 &&item.review_point >= 0 && detail_info.item_prize_type == -1|| item.point !== 0 &&item.review_point >= 0 && detail_info.item_prize_type == 0" style="color:#f56c6c;font-size:16px;padding-left:8px">+{{item.review_point}}</span>
-                  <span v-show="item.point !== 0 && item.review_point <= 0 && detail_info.item_prize_type == 2 || item.point !== 0 &&item.review_point <= 0 && detail_info.item_prize_type == -1|| item.point !== 0 &&item.review_point <= 0 && detail_info.item_prize_type == 0" style="color:#67C23A;font-size:16px;padding-left:8px">{{item.review_point}}</span> -->
-                  <span v-show=" item.review_point >= 0 &&detail_info.item_prize_type == 1 || item.review_point >= 0 && detail_info.item_prize_type == -1|| item.review_point >= 0 && detail_info.item_prize_type == 0" style="color:#f56c6c;font-size:16px;padding-left:8px">+{{item.review_point}}</span>
-                  <span v-show=" item.review_point <= 0 && detail_info.item_prize_type == 2 || item.review_point <= 0 && detail_info.item_prize_type == -1|| item.review_point <= 0 && detail_info.item_prize_type == 0" style="color:#67C23A;font-size:16px;padding-left:8px">{{item.review_point}}</span>
-                  <span> {{detail_info.pt_id==1?'绩效分':detail_info.pt_id==2?'A分':detail_info.pt_id==3?'B分':''}}</span>
-                </p>
-                <!-- <p v-if="detail_info.status == 0">
-                  <span>item.point </span>
-                  <span v-show="item.point !== 0 && item.review_point >= 0 &&detail_info.item_prize_type == 1 || item.point !== 0 &&item.review_point >= 0 && detail_info.item_prize_type == -1|| item.point !== 0 &&item.review_point >= 0 && detail_info.item_prize_type == 0" style="color:#f56c6c;font-size:16px;padding-left:8px">+{{item.point}}</span>
-                  <span v-show="item.point !== 0 && item.review_point <= 0 && detail_info.item_prize_type == 2 || item.point !== 0 &&item.review_point <= 0 && detail_info.item_prize_type == -1|| item.point !== 0 &&item.review_point <= 0 && detail_info.item_prize_type == 0" style="color:#67C23A;font-size:16px;padding-left:8px">{{item.point}}</span>
-                </p> -->
+            <div class="flex-box flex-v-ce">
+              <userImage
+                v-if="detail_info.employee_info"
+                :id="detail_info.employee_id"
+                :user_name="detail_info.employee_info.name"
+                :img_url="detail_info.employee_info.img_url"
+                class="fl"
+                width="50px"
+                height="50px"
+                fontSize="15"
+                style="display: inline-block; margin-right: 10px;"
+              ></userImage>
+              <div class="user_text">
+                <div v-if="detail_info.employee_info"><WWOpenData type="userName" :openid="detail_info.employee_info.name"></WWOpenData></div>
+                <div v-if="detail_info.status == 1" style="margin: 0 10px;">
+                  <span class="event-info__value red" v-if="detail_info.review_point >= 0">+{{ detail_info.review_point}} {{$getTypsName(detail_info.pt_id)}}</span>
+                  <span class="event-info__value green" v-else>{{ detail_info.review_point}}{{$getTypsName(detail_info.pt_id)}}</span>
+                </div>
+                <div style="margin-left: 10px;">
+                  <span :class="{ yellow: detail_info.review_status == 0 }">{{ detail_info.status_mark }}</span>
+                </div>
+                <!-- 优化 -->
+                <!-- <div v-for="(item,index) in detail_info.process" :key="index" v-show="item.review_point != 0">
+                  <p v-if="detail_info.status == 1">
+                    <span v-show=" item.review_point >= 0 &&detail_info.item_prize_type == 1 || item.review_point >= 0 && detail_info.item_prize_type == -1|| item.review_point >= 0 && detail_info.item_prize_type == 0" style="color:#f56c6c;font-size:16px;padding-left:8px">+{{item.review_point}}</span>
+                    <span v-show=" item.review_point <= 0 && detail_info.item_prize_type == 2 || item.review_point <= 0 && detail_info.item_prize_type == -1|| item.review_point <= 0 && detail_info.item_prize_type == 0" style="color:#67C23A;font-size:16px;padding-left:8px">{{item.review_point}}</span>
+                    <span> {{detail_info.pt_id==1?'绩效分':detail_info.pt_id==2?'A分':detail_info.pt_id==3?'B分':''}}</span>
+                  </p>
+                </div> -->
               </div>
             </div>
-            <p class="user_text text_ccc">{{detail_info.review_status_mark}}</p>
+            <!-- <p class="user_text text_ccc">{{detail_info.review_status_mark}}</p> -->
           </el-col>
         </el-row>
         <!-- <el-row :gutter="10" v-show="detail_info.source_type_mark">

+ 347 - 388
src/views/workbench/grade/award_punish.vue

@@ -10,48 +10,49 @@
         <el-button type="primary" @click="point_b">奖扣B分</el-button>
         <el-button type="primary" @click="point_a" plain>奖扣A分</el-button>
       </el-col>
-      <el-col :span="6" :offset="6" >
-        <el-input v-model="keyword" placeholder="输入同事姓名" @keyup.enter.native="getData">
+      <el-col :span="6" :offset="6">
+        <el-input v-model="keyword" placeholder="输入同事姓名/内容" @keyup.enter.native="getData">
           <el-button slot="append" @click="getData" icon="el-icon-search"></el-button>
         </el-input>
       </el-col>
     </el-row>
 
-    <el-table v-if="tabs =='success'" :data="dataList" stripe fit v-loading="table_loading" @row-click="open_detail" >
+    <el-table v-if="tabs == 'success'" :data="dataList" stripe fit v-loading="table_loading" @row-click="open_detail">
       <el-table-column label="姓名" prop="employee_id" align="left">
         <template slot-scope="scope">
           <div class="flex-box flex-contet-conter">
-            <userImage  :id="scope.row.employee_id" :user_name="scope.row.employee_name" width="50px" height="50px"></userImage>
+            <userImage :id="scope.row.employee_id" :user_name="scope.row.employee_name" width="50px" height="50px"></userImage>
             <span style="margin-left: 10px; line-height: 50px;">
               <WWOpenData type="userName" :openid="scope.row.employee_name"></WWOpenData>
-             </span>
+            </span>
           </div>
         </template>
       </el-table-column>
       <el-table-column prop="remark" show-overflow-tooltip label="奖扣内容"></el-table-column>
       <el-table-column prop="point" label="积分" width="120">
         <template slot-scope="scope">
-          <span :class="{color_green: scope.row.point < 0, color_red: scope.row.point > 0}"><span v-show="scope.row.point > 0">+</span>{{scope.row.point}} {{point_name(scope.row.pt_id)}}</span>
+          <span :class="{ color_green: scope.row.point < 0, color_red: scope.row.point > 0 }">
+            <span v-show="scope.row.point > 0">+</span>
+            {{ scope.row.point }} {{ $getTypsName(scope.row.pt_id) }}
+          </span>
         </template>
       </el-table-column>
       <el-table-column prop="create_time" label="奖扣时间" width="150">
         <template slot-scope="scope">
-          {{cuttString(scope.row.create_time)}}
+          {{ cuttString(scope.row.create_time) }}
         </template>
       </el-table-column>
 
       <template slot="empty">
         <noData></noData>
       </template>
-      
     </el-table>
 
-    <el-table v-if="tabs !=='success'" :data="dataList" stripe fit v-loading="table_loading" @row-click="open_detail1" >
+    <el-table v-if="tabs !== 'success'" :data="dataList" stripe fit v-loading="table_loading" @row-click="open_detail1">
       <el-table-column label="姓名" prop="employee_id" align="left">
         <template slot-scope="scope">
           <div class="flex-box flex-contet-conter">
-            <userImage  :id="scope.row.employee_id" :user_name="scope.row.employee_name" width="50px"
-              height="50px"></userImage>
+            <userImage :id="scope.row.employee_id" :user_name="scope.row.employee_name" width="50px" height="50px"></userImage>
             <span style="margin-left: 10px; line-height: 50px;">
               <WWOpenData type="userName" :openid="scope.row.employee_name"></WWOpenData>
             </span>
@@ -60,7 +61,7 @@
       </el-table-column>
       <el-table-column prop="remark" show-overflow-tooltip label="奖扣内容">
         <template slot-scope="scope">
-          {{scope.row.remark.customize}}
+          {{ scope.row.remark.customize }}
         </template>
       </el-table-column>
       <el-table-column prop="event_time" label="奖扣时间" width="150"></el-table-column>
@@ -68,10 +69,9 @@
       <template slot="empty">
         <noData></noData>
       </template>
-      
     </el-table>
 
-    <center style="margin-top: 15px;" >
+    <center style="margin-top: 15px;">
       <el-pagination
         background
         @size-change="handleSizeChange"
@@ -80,142 +80,130 @@
         :page-sizes="[10, 20, 50, 100]"
         layout="total, sizes, prev, pager, next"
         :page-size="pageLimit"
-        :total="formData.total">
-      </el-pagination>
+        :total="formData.total"
+      ></el-pagination>
     </center>
 
-    <el-drawer
-      title="奖扣详情"
-      :visible.sync="drawer"
-      ref="drawer"
-      :with-header="false"
-      :size="'600px'"
-      direction="rtl">
+    <el-drawer title="奖扣详情" :visible.sync="drawer" ref="drawer" :with-header="false" :size="'600px'" direction="rtl">
       <div class="drawer_title">奖扣详情</div>
-      <div class="detail_popup" v-loading="detail_loading" v-if=" detail_info!== null">
-
+      <div class="detail_popup" v-loading="detail_loading" v-if="detail_info !== null">
         <el-row :gutter="10" style="padding-bottom:10px;border-bottom:1px #f8f8f8 solid;">
           <el-col :span="24">
-            <userImage :id="detail_info.employee_id" :user_name="detail_info.employee_name" :img_url="detail_info.img_url" class="fl" width="50px" height="50px" fontSize="15"></userImage>
+            <!-- <userImage :img_url="detail_info.employee_info.img_url"  :user_name="detail_info.employee_info.name" class="fl" width="50px" height="50px" fontSize="15"></userImage> -->
+            <userImage
+              :id="detail_info.employee_id"
+              :user_name="detail_info.employee_name"
+              :img_url="detail_info.img_url"
+              class="fl"
+              width="50px"
+              height="50px"
+              fontSize="15"
+            ></userImage>
             <span style="line-height:50px; margin-left:10px;margin-right:4px;">
               <WWOpenData type="userName" :openid="detail_info.employee_name"></WWOpenData>
             </span>
-            <span class="color_red point" v-show="detail_info.point >= 0 && detail_info.point"> +{{detail_info.point}}</span>
-            <span class="color_green point" v-show="detail_info.point < 0 && detail_info.point"> {{detail_info.point}} </span>
-            <span v-show='detail_info.point'> {{detail_info.pt_id==1?'绩效分':detail_info.pt_id==2?'A分':detail_info.pt_id==3?'B分':''}}</span>
+            <span class="color_red point" v-show="detail_info.point >= 0 && detail_info.point">+{{ detail_info.point }}</span>
+            <span class="color_green point" v-show="detail_info.point < 0 && detail_info.point">{{ detail_info.point }}</span>
+            <span v-show="detail_info.point">{{ detail_info.pt_id == 1 ? '绩效分' : detail_info.pt_id == 2 ? 'A分' : detail_info.pt_id == 3 ? 'B分' : '' }}</span>
           </el-col>
         </el-row>
 
         <el-row :gutter="10">
           <el-col :span="4" style="margin-bottom:5px;">任务描述</el-col>
-          <el-col :span="20" v-if="detail_info.remark">{{detail_info.remark && (detail_info.remark.customize || detail_info.remark.rule)}}</el-col>
+          <el-col :span="20" v-if="detail_info.remark">{{ detail_info.remark && (detail_info.remark.customize || detail_info.remark.rule) }}</el-col>
         </el-row>
 
         <el-row :gutter="10">
           <el-col :span="4" style="margin-bottom:5px;">规则分类</el-col>
-          <el-col :span="20">{{detail_info.rule_list}}</el-col>
+          <el-col :span="20">{{ detail_info.rule_list }}</el-col>
         </el-row>
 
         <el-row :gutter="10" v-show="detail_info.rule_list">
-          <el-col :span="4" style="margin-bottom:5px;">事件时间</el-col>
-          <el-col :span="20">{{detail_info.date}}</el-col>
+          <el-col :span="4" style="margin-bottom:5px;">发生时间</el-col>
+          <el-col :span="20">{{ detail_info.date }}</el-col>
         </el-row>
 
         <el-row :gutter="10" v-show="detail_info.source_type_mark">
           <el-col :span="4" style="margin-bottom:5px;">来源类型</el-col>
-          <el-col :span="20">{{detail_info.source_type_mark}}</el-col>
+          <el-col :span="20">{{ detail_info.source_type_mark }}</el-col>
         </el-row>
 
         <el-row :gutter="10" v-show="!detail_info.rule_id">
           <el-col :span="4" style="margin-bottom:5px;">记录人</el-col>
-          <el-col :span="20">{{detail_info.employee_name}}</el-col>
+          <el-col :span="20">{{ detail_info.employee_name }}</el-col>
         </el-row>
 
         <el-row :gutter="10" :v-if="detail_info.files">
-            <el-col v-for="(item,index) in detail_info.files" :key="index" :span="4">{{index == 0?'图片':''}}</el-col>
-            <el-col :span="20">
-              <el-image
-               v-for="(item,index) in detail_info.files" :key="index"
-                style="width: 100px; height: 100px;margin-right:8px"
-                :src="item"
-                :preview-src-list="detail_info.files">
-              </el-image>
-            </el-col>
+          <el-col v-for="(item, index) in detail_info.files" :key="index" :span="4">{{ index == 0 ? '图片' : '' }}</el-col>
+          <el-col :span="20">
+            <el-image
+              v-for="(item, index) in detail_info.files"
+              :key="index"
+              style="width: 100px; height: 100px;margin-right:8px"
+              :src="item"
+              :preview-src-list="detail_info.files"
+            ></el-image>
+          </el-col>
         </el-row>
 
         <div v-show="detail_info.rule_item_id">
           <p class="row_title">规则依据</p>
           <el-row :gutter="10">
             <el-col :span="4" style="margin-bottom:5px;">规则分类</el-col>
-            <el-col :span="19">{{detail_info.rule_list}}</el-col>
+            <el-col :span="19">{{ detail_info.rule_list }}</el-col>
           </el-row>
           <el-row v-if="detail_info.remark && detail_info.remark.rule">
             <el-col :span="4" style="margin-bottom:5px;">积分规则</el-col>
-            <el-col :span="19">{{detail_info.remark.rule}}</el-col>
+            <el-col :span="19">{{ detail_info.remark.rule }}</el-col>
           </el-row>
           <el-row v-if="detail_info.rule_item">
             <el-col :span="4" style="margin-bottom:5px;">积分</el-col>
-            <el-col :span="19" v-show="detail_info.rule_item.min_point == detail_info.rule_item.max_point">{{detail_info.rule_item.min_point}}</el-col>
-            <el-col :span="19" v-show="detail_info.rule_item.min_point != detail_info.rule_item.max_point">{{detail_info.rule_item.min_point}} ~ {{detail_info.rule_item.max_point}}</el-col>
+            <el-col :span="19" v-show="detail_info.rule_item.min_point == detail_info.rule_item.max_point">{{ detail_info.rule_item.min_point }}</el-col>
+            <el-col :span="19" v-show="detail_info.rule_item.min_point != detail_info.rule_item.max_point">
+              {{ detail_info.rule_item.min_point }} ~ {{ detail_info.rule_item.max_point }}
+            </el-col>
           </el-row>
         </div>
 
-        <div v-show="detail_info.process != false">
-          <p class="row_title">审批<span class="row_tips">多人审批时,以最后一人为准</span></p>
-          <div class="examine_steps">
-            <el-steps direction="vertical" :space="50">
-              <el-step v-for="(item,index) in detail_info.process" :key="index">
-                <template slot="icon">
-                  <userImage width="36px" height="36px" :img_url="item.img_url" :user_name="item.name"></userImage>
-                </template>
-                <template slot="title">
-                  <div style="color: #303133;font-size:14px;margin-top:-2px;"><WWOpenData type="userName" :openid="item.name"></WWOpenData> {{item.remark}} 
-                    <!-- <span v-show="item.point !== 0">{{item.point}}</span> -->
-                   </div>
-                </template>
-                <template slot="description"><div style="color:rgb(130 130 130)">{{item.time}}</div></template>
-              </el-step>
-            </el-steps>
-          </div>
+        <div v-show="detail_info.rule_id && detail_info.process !== null && detail_info.process.length > 0">
+        	<Steps :process="detail_info.process"></Steps>
+        </div>
+        <div class="btn_danger flex-box flex-center-center" v-if="detail_info.process.length==1&&(detail_info.event_type==3||detail_info.event_type==4)">
+          <el-button type="danger" class="danger" @click="revocation" :loading="cx_loading">撤销</el-button>
         </div>
       </div>
     </el-drawer>
 
-    <el-drawer
-      title="奖扣详情"
-      :visible.sync="detailShow"
-      :with-header="false"
-      :size="'600px'"
-      direction="rtl">
+    <el-drawer title="奖扣详情" :visible.sync="detailShow" :with-header="false" :size="'600px'" direction="rtl">
       <div class="drawer_title">奖扣详情</div>
-      <div class="detail_popup" v-loading="detail_loading" v-if=" detail_info!== null">
-
+      <div class="detail_popup" v-loading="detail_loading" v-if="detail_info !== null">
         <el-row :gutter="10" style="padding-bottom:10px;border-bottom:1px #f8f8f8 solid;">
           <el-col :span="24">
-            <userImage :id="detail_info.applyor_id" class="fl" width="50px" height="50px" fontSize="15"></userImage>
-            <span style="line-height:50px; margin-left:10px;margin-right:4px;"><WWOpenData type="userName" :openid="getEmployeeName(detail_info.applyor_id)"></WWOpenData></span>
-            <span class="color_red point" v-show="detail_info.point >= 0 && detail_info.point"> +{{detail_info.point}} </span>
-            <span class="color_green point" v-show="detail_info.point < 0 && detail_info.point"> {{detail_info.point}} </span>
-            <span v-show='detail_info.point'> {{detail_info.pt_id==1?'绩效分':detail_info.pt_id==2?'A分':detail_info.pt_id==3?'B分':''}}</span>
+            <userImage
+              :user_name="detail_info.employee_info.name"
+              :img_url="detail_info.employee_info.img_url"
+              class="fl"
+              width="50px"
+              height="50px"
+              fontSize="15"
+            ></userImage>
+            <span style="line-height:50px; margin-left:10px;margin-right:4px;"><WWOpenData type="userName" :openid="detail_info.employee_info.name"></WWOpenData></span>
+            <span class="color_red point" v-show="detail_info.point >= 0 && detail_info.point">+{{ detail_info.point }}</span>
+            <span class="color_green point" v-show="detail_info.point < 0 && detail_info.point">{{ detail_info.point }}</span>
+            <span v-show="detail_info.point">{{ detail_info.pt_id == 1 ? '绩效分' : detail_info.pt_id == 2 ? 'A分' : detail_info.pt_id == 3 ? 'B分' : '' }}</span>
           </el-col>
         </el-row>
 
         <el-row :gutter="10" v-show="detail_info.source_type_mark">
           <el-col :span="4" style="margin-bottom:5px;">来源类型</el-col>
-          <el-col :span="20">{{detail_info.source_type_mark}}</el-col>
+          <el-col :span="20">{{ detail_info.source_type_mark }}</el-col>
         </el-row>
 
-        <el-row :gutter="10" v-for="(item,index) in detail_info.detail" :key="index">
-          <el-col :span="4" style="margin-bottom:5px;">{{item.key}}</el-col>
+        <el-row :gutter="10" v-for="(item, index) in detail_info.detail" :key="index">
+          <el-col :span="4" style="margin-bottom:5px;">{{ item.key }}</el-col>
           <el-col :span="20" v-if="item.key == '附件'">
-            <el-image
-              v-for="(val,indexs) in item.value" :key="indexs"
-              style="width: 100px; height: 100px;margin-right:8px;"
-              :src="val"
-              :preview-src-list="item.value">
-            </el-image>
-					</el-col>
-
+            <el-image v-for="(val, indexs) in item.value" :key="indexs" style="width: 100px; height: 100px;margin-right:8px;" :src="val" :preview-src-list="item.value"></el-image>
+          </el-col>
           <el-col :span="20" v-else-if="item.key == '收益人'">
             <WWOpenData type="userName" :openid="item.value"></WWOpenData>
 					</el-col>
@@ -225,345 +213,316 @@
           <el-col :span="20" v-else-if="item.key == '申请人'">
             <WWOpenData type="userName" :openid="item.value"></WWOpenData>
 					</el-col>
-
-          <el-col :span="20" v-else>{{item.value}}</el-col>
+          <el-col :span="20" v-else>{{ item.value }}</el-col>
         </el-row>
-        
+
         <el-row :gutter="10" :v-if="detail_info.files">
-          <el-col v-for="(item,index) in detail_info.files" :key="index" :span="4">{{index == 0?'图片':''}}</el-col>
+          <el-col v-for="(item, index) in detail_info.files" :key="index" :span="4">{{ index == 0 ? '图片' : '' }}</el-col>
           <el-col :span="20">
             <el-image
-              v-for="(item,index) in detail_info.files" :key="index"
+              v-for="(item, index) in detail_info.files"
+              :key="index"
               style="width: 100px; height: 100px;margin-right:8px;"
               :src="item"
-              :preview-src-list="detail_info.files">
-            </el-image>
+              :preview-src-list="detail_info.files"
+            ></el-image>
           </el-col>
         </el-row>
 
-        <div v-show="detail_info.rule_id && detail_info.process !== null && detail_info.process.length > 0">
-          <p class="row_title">审批<span class="row_tips">多人审批时,以最后一人为准</span></p>
-
-          <div class="examine_steps">
-            <el-steps direction="vertical" :space="50">
-              <el-step v-for="(item,index) in detail_info.process" :key="index">
-                <template slot="icon">
-                  <userImage width="36px" height="36px" :img_url="item.img_url" :user_name="item.name"></userImage>
-                </template>
-                <template slot="title">
-                  <div style="color: #303133;font-size:14px;margin-top:-2px;"><WWOpenData type="userName" :openid="item.name"></WWOpenData> {{item.remark}} 
-                    <!-- <span v-show="item.point !== 0">{{item.point}}</span> -->
-                  </div>
-                </template>
-                <template slot="description" style=""><div style="color:rgb(130 130 130)">{{item.time}}</div></template>
-              </el-step>
-            </el-steps>
-          </div>
+        <div v-show="detail_info.process !== null && detail_info.process.length > 0">
+        	<Steps :process="detail_info.process"></Steps>
+        </div>
+       <div class="btn_danger flex-box flex-center-center" v-if="detail_info.applyor_id==$userInfo().id&&detail_info.status==0&&detail_info.source_type==3">
+          <el-button type="danger" class="danger" @click="revocation2" :loading="cx_loading">撤销</el-button>
         </div>
       </div>
     </el-drawer>
 
     <bonusPointsPopup :title="popuTitle" :visible.sync="popupVisible" :refresh.sync="refreshData" :integralType.sync="integralType"></bonusPointsPopup>
-
   </div>
 </template>
 
 <script>
-  import { getToken } from '@/utils/auth'
-  import EmployeeSelector from '@/views/common/EmployeeSelector'
-  import moment from 'moment'
-  import noData from '@/components/noData'
-  import bonusPointsPopup from '@/views/common/bonusPointsPopup'
-
-  export default {
-    data() {
-      return {
-        refreshData: '',
-        popuTitle: '奖扣A分',
-        popupVisible: false,
-        integralType: 0,
-        table_loading: true,
-        formData:{
-          page: 1,
-          page_size: 10,
-          total: 0,
-        },
-        tabs:'success',
-        dataList: [],
-        pageLimit: 10,
-        keyword:'',
-        point_types: JSON.parse(localStorage.getItem('SET_POINT_TYPES')),
-        showTitle: false,
-        dialogVisible: false,
-        dialogData:{
-          members: [],
-          items: [{
-            rule_switch: false,
-            rule_id: '',
-            item_id: '',
-            point: '0',
-            remark: '',
-            event_time: moment().format('YYYY-MM-DD'),
-            approval: '',
-            approval_not_select: [],
-            approval_selected: {dept: [],employee:[]},
-            plus: true,
-            pt_id: '',
-            reviewer_id: '',
-            files: [],
-          }],
-        },
-        itemData: {},
-        rules:{
-          manager:[{required: true, message: '请选择录入对象', trigger: 'blur'}],
+import { getToken } from '@/utils/auth';
+import moment from 'moment';
+import noData from '@/components/noData';
+import Steps from '@/components/Steps.vue';
+import bonusPointsPopup from '@/views/common/bonusPointsPopup';
+
+export default {
+  data() {
+    return {
+      refreshData: '',
+      popuTitle: '奖扣A分',
+      popupVisible: false,
+      integralType: 0,
+      table_loading: true,
+      formData: {
+        page: 1,
+        page_size: 10,
+        total: 0
+      },
+      tabs: 'success',
+      dataList: [],
+      pageLimit: 10,
+      keyword: '',
+      rule_list: [],
+      drawer: false,
+      detail_loading: false,
+      detail_info: {
+        employee_info:{
+          img_url:'',
+          name:''
         },
-        manager: '',
-        employee_not_select: [],
-        manager_selected: {dept: [],employee:[]},
-        show_employee_selector: false,
-
-        show_approval_selector: false,
-        itemIndex: 0,
-        rule_list: [],
-        rule_list_value: null,
-
-        rule_item_list: {},
-        rule_item_list_value: null,
-
-        drawer: false,
-        detail_loading: false,
-        detail_info: {},
-        detailShow: false,
-
-        employee_name: JSON.parse(localStorage.getItem('SET_EMPLOYEE_MAP')),
-        fileList:[]
-      }
+        process:[]
+      },
+      detailShow: false,
+      employee_name: this.$getEmployeeMap(),
+
+      userId:'',
+      cx_loading:false,
+      selectId:'',//打开详情ID
+    };
+  },
+  components: {
+    bonusPointsPopup,
+    noData,
+    Steps
+  },
+  mounted() {
+    if (this.$route.query.type == 1) {
+      this.point_a();
+    } else if (this.$route.query.type == 2) {
+      this.point_b();
+    }
+    this.getData();
+  },
+  watch: {
+    tabs(val) {
+      this.dataList = [];
+      this.formData.total = 0;
+      this.keyword = '';
+      this.formData.page = 1;
+      this.formData.page_size = 10;
+      this.getData();
     },
-    components: {
-      EmployeeSelector,
-      bonusPointsPopup,
-      noData
+    refreshData(val) {
+      this.getData();
+    }
+  },
+  methods: {
+    // 撤销待审批
+    revocation2(){
+    	var that=this;
+    	this.$confirm('撤销此项数据将不可恢复,是否撤销?', '提示', {
+    		  confirmButtonText: '确定',
+    		  cancelButtonText: '取消',
+    		  type: 'warning'
+    		}).then(() => {
+    			let data = {
+    				review_id: that.selectId,
+    			};
+    			that.cx_loading = true;
+    			that.$http('DELETE', '/api/integral/review', data).then(res => {
+    				if (res.data.code == 1) {
+    					that.getData()
+    				} else {
+    					that.$message.error(res.data.data.msg);
+    				}
+    			}).finally(() => {
+    				that.detailShow = false;
+    				that.cx_loading = false;
+    			});
+    		})
     },
-    mounted() {
-      if(this.$route.query.type == 1){
-        this.point_a()
-      }else if(this.$route.query.type == 2){
-        this.point_b()
-      }
-      this.getData()
-      // this.getRuleData()
+    // 撤销奖扣
+    revocation(){
+    	var that=this;
+    	this.$confirm('撤销此项数据将不可恢复,是否撤销?', '提示', {
+    		  confirmButtonText: '确定',
+    		  cancelButtonText: '取消',
+    		  type: 'warning'
+    		}).then(() => {
+    			let data = {
+    				target_id: that.selectId,
+    				type:1
+    			};
+    			that.cx_loading = true;
+    			that.$http('post', '/api/integral/review/prize/destroy', data).then(res => {
+    				if (res.data.code == 1) {
+    					that.getData()
+    				} else {
+    					that.$message.error(res.data.data.msg);
+    				}
+    			}).finally(() => {
+    				that.cx_loading = false;
+    				that.drawer = false;
+    			});
+    		})
     },
-    watch:{
-      tabs(val){
-        this.dataList = []
-        this.formData.total = 0
-        this.keyword = ''
-        this.formData.page = 1
-        this.formData.page_size = 10
-        this.getData()
-      },
-      rule_list_value(val){
-        if(val.length == 0){
-
-        }else{
-          // val[val.length-1]
+    getEmployeeName(id) {
+      for (const key in this.employee_name) {
+        if (this.employee_name[key].id == id) {
+          return this.employee_name[key].name;
         }
-      },
-      refreshData(val){
-        this.getData()
       }
-      // itemData:{
-      //   handler(val, oldVal) {
-      //     this.dialogData.items.forEach((element,index) => {
-      //       if (this.itemIndex === val.num) {
-      //         this.dialogData.items[val.num] = val
-      //       }
-      //     });
-      //   },
-      //   deep: true
-      // }
     },
-    methods: {
-      getEmployeeName(id){
-        for (const key in this.employee_name) {
-          if(this.employee_name[key].id == id){
-            return this.employee_name[key].name
-          }
-        }
-      }, 
-      open_detail1(item){
-        let self = this
-        self.detailShow = true
-        let data = {
-          review_id: item.id
-        }
-        self.detail_loading = true
-        this.$http('get','/api/integral/review',data).then((res) => {
+    open_detail1(item) {
+      let self = this;
+      self.detailShow = true;
+      let data = {
+        review_id: item.id
+      };
+      this.selectId=item.id
+      self.detail_loading = true;
+      this.$http('get', '/api/integral/review', data)
+        .then(res => {
           if (res.data.code == 1) {
-            self.detail_info = res.data.data
-          }else{
-            self.$message.error(res.data.data.msg)
+            self.detail_info = res.data.data;
+          } else {
+            self.$message.error(res.data.data.msg);
           }
-        }).finally(() => {
-          self.detail_loading = false
         })
-      },
-      open_detail(item){
-        let self = this
-        self.drawer = true
-        let data = {
-          event_id: item.id
-        }
-        self.detail_loading = true
-        this.$http('get','/api/integral/statistics/integral/info',data).then((res) => {
+        .finally(() => {
+          self.detail_loading = false;
+        });
+    },
+    open_detail(item) {
+      let self = this;
+      self.drawer = true;
+      let data = {
+        event_id: item.id
+      };
+      this.selectId=item.id
+      self.detail_loading = true;
+      this.$http('get', '/api/integral/statistics/integral/info', data)
+        .then(res => {
           if (res.data.code == 1) {
-            self.detail_info = res.data.data
-          }else{
-            self.$message.error(res.data.data.msg)
+            self.detail_info = res.data.data;
+            self.detail_info.employee_info={}
+          } else {
+            self.$message.error(res.data.data.msg);
           }
-        }).finally(() => {
-          self.detail_loading = false
         })
-      },
-
-      cuttString(data){
-        return data.substring(0,10)
-      },
-      point_a(){
-        this.integralType = 2
-        this.popuTitle = '奖扣A分'
-        this.popupVisible = true
-      },
-      point_b(){
-        this.integralType = 3
-        this.popuTitle = '奖扣B分'
-        this.popupVisible = true
-      },
-      point_name(id){
-        return this.point_types.find((item)=>{if (item.id == id) {return item}}).name
-      },
-      handleCurrentChange(val) {
-        this.formData.page = val
-        this.getData()
-			},
-      handleSizeChange(val){
-        this.pageLimit = val
-        this.formData.page_size = this.pageLimit
-        this.getData()
-      },
-      getData(){
-        let self = this
-        self.table_loading = true
+        .finally(() => {
+          self.detail_loading = false;
+        });
+    },
 
-        let data = {}
-        if(self.tabs == 'success'){
-          data = {
-            page: self.formData.page,
-            page_size: self.formData.page_size,
-            recorder_id: self.$store.getters.user_info.id,
-            source_type: '1',
-            keyword: self.keyword,
-          }
-        }else if(self.tabs == 'waiting'){
-          data = {
-            page: self.formData.page,
-            page_size: self.formData.page_size,
-            keyword: self.keyword,
-            pt_id: '0',
-            type: 'waiting'
-          }
-        }else{
-          data = {
-            page: self.formData.page,
-            page_size: self.formData.page_size,
-            keyword: self.keyword,
-            pt_id: '0',
-            type: 'refuse'
+    cuttString(data) {
+      if(data){
+        return data.substring(0, 10);
+      }
+    },
+    point_a() {
+      this.integralType = 2;
+      this.popuTitle = '奖扣A分';
+      this.popupVisible = true;
+    },
+    point_b() {
+      this.integralType = 3;
+      this.popuTitle = '奖扣B分';
+      this.popupVisible = true;
+    },
+    handleCurrentChange(val) {
+      this.formData.page = val;
+      this.getData();
+    },
+    handleSizeChange(val) {
+      this.pageLimit = val;
+      this.formData.page_size = this.pageLimit;
+      this.getData();
+    },
+    getData() {
+      let self = this;
+      self.table_loading = true;
+
+      let data = {};
+      if (self.tabs == 'success') {
+        data = {
+          page: self.formData.page,
+          page_size: self.formData.page_size,
+          recorder_id: self.$store.getters.user_info.id,
+          source_type: '1',
+          keyword: self.keyword
+        };
+      } else if (self.tabs == 'waiting') {
+        data = {
+          page: self.formData.page,
+          page_size: self.formData.page_size,
+          keyword: self.keyword,
+          pt_id: '0',
+          type: 'waiting'
+        };
+      } else {
+        data = {
+          page: self.formData.page,
+          page_size: self.formData.page_size,
+          keyword: self.keyword,
+          pt_id: '0',
+          type: 'refuse'
+        };
+      }
+      this.$http('get', self.tabs == 'success' ? '/api/integral/statistics/integral' : '/api/integral/review/entry/list', data)
+        .then(res => {
+          if (res.data.code == 1) {
+            self.dataList = res.data.data.list;
+            self.formData.total = res.data.data.total;
           }
-        }
-        this.$http('get',self.tabs == 'success'?'/api/integral/statistics/integral':'/api/integral/review/entry/list',data).then(res => {
-					if (res.data.code == 1) {
-            self.dataList = res.data.data.list
-            self.formData.total = res.data.data.total
-					}
-				}).catch(e => {self.$message.error(e.data.msg)}).finally(() => {this.table_loading = false})
-      },
-      // getRuleData(){
-      //   let self = this
-      //   let data = {
-      //     cycle_type: '1'
-      //   }
-      //   this.$http('get','/api/integral/rule/trees',data).then(res => {
-			// 		if (res.data.code == 1) {
-      //       const resultData = res.data.data
-      //       self.rule_list = resultData.rule_tree
-      //       self.rule_item_list = resultData.item_list
-      //     }
-      //     self.rule_list = self.getTreeData(self.rule_list)
-			// 	}).catch(e => {self.$message.error(e)}).finally(() => {this.table_loading = false})
-      // },
-      // // 递归判断列表,把最后的child设为undefined
-      // getTreeData(data) {
-      //   for (var i = 0; i < data.length; i++) {
-      //     if (data[i].child.length < 1) {
-      //       // child若为空数组,则将child设为undefined
-      //       data[i].child = undefined;
-      //     } else {
-      //       // child若不为空数组,则继续 递归调用 本方法
-      //       this.getTreeData(data[i].child);
-      //     }
-      //   }
-      //   return data;
-      // },
+        })
+        .finally(() => {
+          this.table_loading = false;
+        });
     }
   }
+};
 </script>
 
 <style scoped lang="scss">
-  .box{
-    background-color: #ffffff;
-    padding: 20px;
-    min-height: calc(100vh - 160px);
+.box {
+  background-color: #ffffff;
+  padding: 20px;
+  min-height: calc(100vh - 160px);
+}
+.color_green {
+  color: #4bd964;
+}
+.color_red {
+  color: #f56c6c;
+}
+.detail_popup {
+  padding: 20px;
+  height: calc(100vh - 60px);
+  overflow: auto;
+  .row_title {
+    position: relative;
+    margin: 0 0 20px 0;
+    padding-top: 12px;
+    font-size: 16px;
+    color: #303133;
+    line-height: 22px;
   }
-  .color_green{
-    color: #4BD964;
+  .row_title:before {
+    position: absolute;
+    top: 0;
+    content: ' ';
+    width: 100%;
+    border-top: 1px #f8f8f8 solid;
   }
-  .color_red{
-    color: #F56C6C;
-  }
-  .detail_popup{
-    padding: 20px;
-    height: calc(100vh - 60px);
-    overflow: auto;
-    .row_title{
-      position:relative;
-      margin:0 0 20px 0;
-      padding-top: 12px;
-      font-size: 16px;
-      color: #303133;
-      line-height: 22px;
-    }
-    .row_title:before{
-      position: absolute;
-      top: 0;
-      content: " ";
-      width: 100%;
-      border-top: 1px #f8f8f8 solid;
+  .el-row {
+    margin-bottom: 10px;
+    font-size: 14px;
+    .el-col-4 {
+      color: #606266;
     }
-    .el-row {
-      margin-bottom:10px;
-      font-size: 14px;
-      .el-col-4{
-        color: #606266;
-      }
-    }
-  }
-	.drawer_title{
-		font-size: 18px;
-		padding: 20px;
-    border-bottom:1px #efefef solid;
-  }
-   /deep/ .el-table tr:hover{
-    cursor:pointer
   }
+}
+.drawer_title {
+  font-size: 18px;
+  padding: 20px;
+  border-bottom: 1px #efefef solid;
+}
+/deep/ .el-table tr:hover {
+  cursor: pointer;
+}
 </style>

+ 569 - 0
src/views/workbench/grade/award_punish_BF.vue

@@ -0,0 +1,569 @@
+<template>
+  <div class="box">
+    <el-tabs v-model="tabs" type="card">
+      <el-tab-pane label="奖扣成功" name="success"></el-tab-pane>
+      <el-tab-pane label="待审批" name="waiting"></el-tab-pane>
+      <el-tab-pane label="被驳回" name="refuse"></el-tab-pane>
+    </el-tabs>
+    <el-row style="margin-bottom: 15px;">
+      <el-col :span="12">
+        <el-button type="primary" @click="point_b">奖扣B分</el-button>
+        <el-button type="primary" @click="point_a" plain>奖扣A分</el-button>
+      </el-col>
+      <el-col :span="6" :offset="6" >
+        <el-input v-model="keyword" placeholder="输入同事姓名" @keyup.enter.native="getData">
+          <el-button slot="append" @click="getData" icon="el-icon-search"></el-button>
+        </el-input>
+      </el-col>
+    </el-row>
+
+    <el-table v-if="tabs =='success'" :data="dataList" stripe fit v-loading="table_loading" @row-click="open_detail" >
+      <el-table-column label="姓名" prop="employee_id" align="left">
+        <template slot-scope="scope">
+          <div class="flex-box flex-contet-conter">
+            <userImage  :id="scope.row.employee_id" :user_name="scope.row.employee_name" width="50px" height="50px"></userImage>
+            <span style="margin-left: 10px; line-height: 50px;">
+              <WWOpenData type="userName" :openid="scope.row.employee_name"></WWOpenData>
+             </span>
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="remark" show-overflow-tooltip label="奖扣内容"></el-table-column>
+      <el-table-column prop="point" label="积分" width="120">
+        <template slot-scope="scope">
+          <span :class="{color_green: scope.row.point < 0, color_red: scope.row.point > 0}"><span v-show="scope.row.point > 0">+</span>{{scope.row.point}} {{point_name(scope.row.pt_id)}}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="create_time" label="奖扣时间" width="150">
+        <template slot-scope="scope">
+          {{cuttString(scope.row.create_time)}}
+        </template>
+      </el-table-column>
+
+      <template slot="empty">
+        <noData></noData>
+      </template>
+      
+    </el-table>
+
+    <el-table v-if="tabs !=='success'" :data="dataList" stripe fit v-loading="table_loading" @row-click="open_detail1" >
+      <el-table-column label="姓名" prop="employee_id" align="left">
+        <template slot-scope="scope">
+          <div class="flex-box flex-contet-conter">
+            <userImage  :id="scope.row.employee_id" :user_name="scope.row.employee_name" width="50px"
+              height="50px"></userImage>
+            <span style="margin-left: 10px; line-height: 50px;">
+              <WWOpenData type="userName" :openid="scope.row.employee_name"></WWOpenData>
+            </span>
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="remark" show-overflow-tooltip label="奖扣内容">
+        <template slot-scope="scope">
+          {{scope.row.remark.customize}}
+        </template>
+      </el-table-column>
+      <el-table-column prop="event_time" label="奖扣时间" width="150"></el-table-column>
+
+      <template slot="empty">
+        <noData></noData>
+      </template>
+      
+    </el-table>
+
+    <center style="margin-top: 15px;" >
+      <el-pagination
+        background
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="formData.page"
+        :page-sizes="[10, 20, 50, 100]"
+        layout="total, sizes, prev, pager, next"
+        :page-size="pageLimit"
+        :total="formData.total">
+      </el-pagination>
+    </center>
+
+    <el-drawer
+      title="奖扣详情"
+      :visible.sync="drawer"
+      ref="drawer"
+      :with-header="false"
+      :size="'600px'"
+      direction="rtl">
+      <div class="drawer_title">奖扣详情</div>
+      <div class="detail_popup" v-loading="detail_loading" v-if=" detail_info!== null">
+
+        <el-row :gutter="10" style="padding-bottom:10px;border-bottom:1px #f8f8f8 solid;">
+          <el-col :span="24">
+            <userImage :id="detail_info.employee_id" :user_name="detail_info.employee_name" :img_url="detail_info.img_url" class="fl" width="50px" height="50px" fontSize="15"></userImage>
+            <span style="line-height:50px; margin-left:10px;margin-right:4px;">
+              <WWOpenData type="userName" :openid="detail_info.employee_name"></WWOpenData>
+            </span>
+            <span class="color_red point" v-show="detail_info.point >= 0 && detail_info.point"> +{{detail_info.point}} {{ $getTypsName(detail_info.pt_id) }}</span>
+            <span class="color_green point" v-show="detail_info.point < 0 && detail_info.point"> {{detail_info.point}} {{ $getTypsName(detail_info.pt_id) }}</span>
+            <!-- <span v-show='detail_info.point'> {{detail_info.pt_id==1?'绩效分':detail_info.pt_id==2?'A分':detail_info.pt_id==3?'B分':''}}</span> -->
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="10">
+          <el-col :span="4" style="margin-bottom:5px;">任务描述</el-col>
+          <el-col :span="20" v-if="detail_info.remark">{{detail_info.remark && (detail_info.remark.customize || detail_info.remark.rule)}}</el-col>
+        </el-row>
+
+        <el-row :gutter="10">
+          <el-col :span="4" style="margin-bottom:5px;">规则分类</el-col>
+          <el-col :span="20">{{detail_info.rule_list}}</el-col>
+        </el-row>
+
+        <el-row :gutter="10" v-show="detail_info.rule_list">
+          <el-col :span="4" style="margin-bottom:5px;">事件时间</el-col>
+          <el-col :span="20">{{detail_info.date}}</el-col>
+        </el-row>
+
+        <el-row :gutter="10" v-show="detail_info.source_type_mark">
+          <el-col :span="4" style="margin-bottom:5px;">来源类型</el-col>
+          <el-col :span="20">{{detail_info.source_type_mark}}</el-col>
+        </el-row>
+
+        <el-row :gutter="10" v-show="!detail_info.rule_id">
+          <el-col :span="4" style="margin-bottom:5px;">记录人</el-col>
+          <el-col :span="20">{{detail_info.employee_name}}</el-col>
+        </el-row>
+
+        <el-row :gutter="10" :v-if="detail_info.files">
+            <el-col v-for="(item,index) in detail_info.files" :key="index" :span="4">{{index == 0?'图片':''}}</el-col>
+            <el-col :span="20">
+              <el-image
+               v-for="(item,index) in detail_info.files" :key="index"
+                style="width: 100px; height: 100px;margin-right:8px"
+                :src="item"
+                :preview-src-list="detail_info.files">
+              </el-image>
+            </el-col>
+        </el-row>
+
+        <div v-show="detail_info.rule_item_id">
+          <p class="row_title">规则依据</p>
+          <el-row :gutter="10">
+            <el-col :span="4" style="margin-bottom:5px;">规则分类</el-col>
+            <el-col :span="19">{{detail_info.rule_list}}</el-col>
+          </el-row>
+          <el-row v-if="detail_info.remark && detail_info.remark.rule">
+            <el-col :span="4" style="margin-bottom:5px;">积分规则</el-col>
+            <el-col :span="19">{{detail_info.remark.rule}}</el-col>
+          </el-row>
+          <el-row v-if="detail_info.rule_item">
+            <el-col :span="4" style="margin-bottom:5px;">积分</el-col>
+            <el-col :span="19" v-show="detail_info.rule_item.min_point == detail_info.rule_item.max_point">{{detail_info.rule_item.min_point}} {{ $getTypsName(detail_info.pt_id) }}</el-col>
+            <el-col :span="19" v-show="detail_info.rule_item.min_point != detail_info.rule_item.max_point">{{detail_info.rule_item.min_point}} ~ {{detail_info.rule_item.max_point}} {{ $getTypsName(detail_info.pt_id) }}</el-col>
+          </el-row>
+        </div>
+
+        <div v-show="detail_info.process != false">
+          <p class="row_title">审批<span class="row_tips">多人审批时,以最后一人为准</span></p>
+          <div class="examine_steps">
+            <el-steps direction="vertical" :space="50">
+              <el-step v-for="(item,index) in detail_info.process" :key="index">
+                <template slot="icon">
+                  <userImage width="36px" height="36px" :img_url="item.img_url" :user_name="item.name"></userImage>
+                </template>
+                <template slot="title">
+                  <div style="color: #303133;font-size:14px;margin-top:-2px;"><WWOpenData type="userName" :openid="item.name"></WWOpenData> {{item.remark}} 
+                    <!-- <span v-show="item.point !== 0">{{item.point}}</span> -->
+                   </div>
+                </template>
+                <template slot="description"><div style="color:rgb(130 130 130)">{{item.time}}</div></template>
+              </el-step>
+            </el-steps>
+          </div>
+        </div>
+      </div>
+    </el-drawer>
+
+    <el-drawer
+      title="奖扣详情"
+      :visible.sync="detailShow"
+      :with-header="false"
+      :size="'600px'"
+      direction="rtl">
+      <div class="drawer_title">奖扣详情</div>
+      <div class="detail_popup" v-loading="detail_loading" v-if=" detail_info!== null">
+
+        <el-row :gutter="10" style="padding-bottom:10px;border-bottom:1px #f8f8f8 solid;">
+          <el-col :span="24" v-if="detail_info.employee_info">
+            <userImage :id="detail_info.applyor_id" :img_url="detail_info.employee_info.img_url" :user_name="detail_info.employee_info.name"  class="fl" width="50px" height="50px" fontSize="15"></userImage>
+            <span style="line-height:50px; margin-left:10px;margin-right:4px;"><WWOpenData type="userName" :openid="detail_info.employee_info.name"></WWOpenData></span>
+            <span class="color_red point" v-show="detail_info.point >= 0 && detail_info.point"> +{{detail_info.point}}  {{ $getTypsName(detail_info.pt_id) }}</span>
+            <span class="color_green point" v-show="detail_info.point < 0 && detail_info.point"> {{detail_info.point}}  {{ $getTypsName(detail_info.pt_id) }}</span>
+            <!-- <span v-show='detail_info.point'> {{detail_info.pt_id==1?'绩效分':detail_info.pt_id==2?'A分':detail_info.pt_id==3?'B分':''}}</span> -->
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="10" v-show="detail_info.source_type_mark">
+          <el-col :span="4" style="margin-bottom:5px;">来源类型</el-col>
+          <el-col :span="20">{{detail_info.source_type_mark}}</el-col>
+        </el-row>
+
+        <el-row :gutter="10" v-for="(item,index) in detail_info.detail" :key="index">
+          <el-col :span="4" style="margin-bottom:5px;">{{item.key}}</el-col>
+          <el-col :span="20" v-if="item.key == '附件'">
+            <el-image
+              v-for="(val,indexs) in item.value" :key="indexs"
+              style="width: 100px; height: 100px;margin-right:8px;"
+              :src="val"
+              :preview-src-list="item.value">
+            </el-image>
+					</el-col>
+
+          <el-col :span="20" v-else-if="item.key == '收益人'">
+            <WWOpenData type="userName" :openid="item.value"></WWOpenData>
+					</el-col>
+          <el-col :span="20" v-else-if="item.key == '奖扣目标'">
+            <WWOpenData type="userName" :openid="item.value"></WWOpenData>
+					</el-col>
+          <el-col :span="20" v-else-if="item.key == '申请人'">
+            <WWOpenData type="userName" :openid="item.value"></WWOpenData>
+					</el-col>
+
+          <el-col :span="20" v-else>{{item.value}}</el-col>
+        </el-row>
+        
+        <el-row :gutter="10" :v-if="detail_info.files">
+          <el-col v-for="(item,index) in detail_info.files" :key="index" :span="4">{{index == 0?'图片':''}}</el-col>
+          <el-col :span="20">
+            <el-image
+              v-for="(item,index) in detail_info.files" :key="index"
+              style="width: 100px; height: 100px;margin-right:8px;"
+              :src="item"
+              :preview-src-list="detail_info.files">
+            </el-image>
+          </el-col>
+        </el-row>
+
+        <div v-show="detail_info.rule_id && detail_info.process !== null && detail_info.process.length > 0">
+          <p class="row_title">审批<span class="row_tips">多人审批时,以最后一人为准</span></p>
+
+          <div class="examine_steps">
+            <el-steps direction="vertical" :space="50">
+              <el-step v-for="(item,index) in detail_info.process" :key="index">
+                <template slot="icon">
+                  <userImage width="36px" height="36px" :img_url="item.img_url" :user_name="item.name"></userImage>
+                </template>
+                <template slot="title">
+                  <div style="color: #303133;font-size:14px;margin-top:-2px;"><WWOpenData type="userName" :openid="item.name"></WWOpenData> {{item.remark}} 
+                    <!-- <span v-show="item.point !== 0">{{item.point}}</span> -->
+                  </div>
+                </template>
+                <template slot="description" style=""><div style="color:rgb(130 130 130)">{{item.time}}</div></template>
+              </el-step>
+            </el-steps>
+          </div>
+        </div>
+      </div>
+    </el-drawer>
+
+    <bonusPointsPopup :title="popuTitle" :visible.sync="popupVisible" :refresh.sync="refreshData" :integralType.sync="integralType"></bonusPointsPopup>
+
+  </div>
+</template>
+
+<script>
+  import { getToken } from '@/utils/auth'
+  import EmployeeSelector from '@/views/common/EmployeeSelector'
+  import moment from 'moment'
+  import noData from '@/components/noData'
+  import bonusPointsPopup from '@/views/common/bonusPointsPopup'
+
+  export default {
+    data() {
+      return {
+        refreshData: '',
+        popuTitle: '奖扣A分',
+        popupVisible: false,
+        integralType: 0,
+        table_loading: true,
+        formData:{
+          page: 1,
+          page_size: 10,
+          total: 0,
+        },
+        tabs:'success',
+        dataList: [],
+        pageLimit: 10,
+        keyword:'',
+        point_types: JSON.parse(localStorage.getItem('SET_POINT_TYPES')),
+        showTitle: false,
+        dialogVisible: false,
+        dialogData:{
+          members: [],
+          items: [{
+            rule_switch: false,
+            rule_id: '',
+            item_id: '',
+            point: '0',
+            remark: '',
+            event_time: moment().format('YYYY-MM-DD'),
+            approval: '',
+            approval_not_select: [],
+            approval_selected: {dept: [],employee:[]},
+            plus: true,
+            pt_id: '',
+            reviewer_id: '',
+            files: [],
+          }],
+        },
+        itemData: {},
+        rules:{
+          manager:[{required: true, message: '请选择录入对象', trigger: 'blur'}],
+        },
+        manager: '',
+        employee_not_select: [],
+        manager_selected: {dept: [],employee:[]},
+        show_employee_selector: false,
+
+        show_approval_selector: false,
+        itemIndex: 0,
+        rule_list: [],
+        rule_list_value: null,
+
+        rule_item_list: {},
+        rule_item_list_value: null,
+
+        drawer: false,
+        detail_loading: false,
+        detail_info: {},
+        detailShow: false,
+
+        employee_name: JSON.parse(localStorage.getItem('SET_EMPLOYEE_MAP')),
+        fileList:[]
+      }
+    },
+    components: {
+      EmployeeSelector,
+      bonusPointsPopup,
+      noData
+    },
+    mounted() {
+      if(this.$route.query.type == 1){
+        this.point_a()
+      }else if(this.$route.query.type == 2){
+        this.point_b()
+      }
+      this.getData()
+      // this.getRuleData()
+    },
+    watch:{
+      tabs(val){
+        this.dataList = []
+        this.formData.total = 0
+        this.keyword = ''
+        this.formData.page = 1
+        this.formData.page_size = 10
+        this.getData()
+      },
+      rule_list_value(val){
+        if(val.length == 0){
+
+        }else{
+          // val[val.length-1]
+        }
+      },
+      refreshData(val){
+        this.getData()
+      }
+      // itemData:{
+      //   handler(val, oldVal) {
+      //     this.dialogData.items.forEach((element,index) => {
+      //       if (this.itemIndex === val.num) {
+      //         this.dialogData.items[val.num] = val
+      //       }
+      //     });
+      //   },
+      //   deep: true
+      // }
+    },
+    methods: {
+      getEmployeeName(id){
+        for (const key in this.employee_name) {
+          if(this.employee_name[key].id == id){
+            return this.employee_name[key].name
+          }
+        }
+      }, 
+      open_detail1(item){
+        let self = this
+        self.detailShow = true
+        let data = {
+          review_id: item.id
+        }
+        self.detail_loading = true
+        this.$http('get','/api/integral/review',data).then((res) => {
+          if (res.data.code == 1) {
+            self.detail_info = res.data.data
+          }else{
+            self.$message.error(res.data.data.msg)
+          }
+        }).finally(() => {
+          self.detail_loading = false
+        })
+      },
+      open_detail(item){
+        let self = this
+        self.drawer = true
+        let data = {
+          event_id: item.id
+        }
+        self.detail_loading = true
+        this.$http('get','/api/integral/statistics/integral/info',data).then((res) => {
+          if (res.data.code == 1) {
+            self.detail_info = res.data.data
+          }else{
+            self.$message.error(res.data.data.msg)
+          }
+        }).finally(() => {
+          self.detail_loading = false
+        })
+      },
+
+      cuttString(data){
+        return data.substring(0,10)
+      },
+      point_a(){
+        this.integralType = 2
+        this.popuTitle = '奖扣A分'
+        this.popupVisible = true
+      },
+      point_b(){
+        this.integralType = 3
+        this.popuTitle = '奖扣B分'
+        this.popupVisible = true
+      },
+      point_name(id){
+        return this.point_types.find((item)=>{if (item.id == id) {return item}}).name
+      },
+      handleCurrentChange(val) {
+        this.formData.page = val
+        this.getData()
+			},
+      handleSizeChange(val){
+        this.pageLimit = val
+        this.formData.page_size = this.pageLimit
+        this.getData()
+      },
+      getData(){
+        let self = this
+        self.table_loading = true
+
+        let data = {}
+        if(self.tabs == 'success'){
+          data = {
+            page: self.formData.page,
+            page_size: self.formData.page_size,
+            recorder_id: self.$store.getters.user_info.id,
+            source_type: '1',
+            keyword: self.keyword,
+          }
+        }else if(self.tabs == 'waiting'){
+          data = {
+            page: self.formData.page,
+            page_size: self.formData.page_size,
+            keyword: self.keyword,
+            pt_id: '0',
+            type: 'waiting'
+          }
+        }else{
+          data = {
+            page: self.formData.page,
+            page_size: self.formData.page_size,
+            keyword: self.keyword,
+            pt_id: '0',
+            type: 'refuse'
+          }
+        }
+        this.$http('get',self.tabs == 'success'?'/api/integral/statistics/integral':'/api/integral/review/entry/list',data).then(res => {
+					if (res.data.code == 1) {
+            self.dataList = res.data.data.list
+            self.formData.total = res.data.data.total
+					}
+				}).catch(e => {self.$message.error(e.data.msg)}).finally(() => {this.table_loading = false})
+      },
+      // getRuleData(){
+      //   let self = this
+      //   let data = {
+      //     cycle_type: '1'
+      //   }
+      //   this.$http('get','/api/integral/rule/trees',data).then(res => {
+			// 		if (res.data.code == 1) {
+      //       const resultData = res.data.data
+      //       self.rule_list = resultData.rule_tree
+      //       self.rule_item_list = resultData.item_list
+      //     }
+      //     self.rule_list = self.getTreeData(self.rule_list)
+			// 	}).catch(e => {self.$message.error(e)}).finally(() => {this.table_loading = false})
+      // },
+      // // 递归判断列表,把最后的child设为undefined
+      // getTreeData(data) {
+      //   for (var i = 0; i < data.length; i++) {
+      //     if (data[i].child.length < 1) {
+      //       // child若为空数组,则将child设为undefined
+      //       data[i].child = undefined;
+      //     } else {
+      //       // child若不为空数组,则继续 递归调用 本方法
+      //       this.getTreeData(data[i].child);
+      //     }
+      //   }
+      //   return data;
+      // },
+    }
+  }
+</script>
+
+<style scoped lang="scss">
+  .box{
+    background-color: #ffffff;
+    padding: 20px;
+    min-height: calc(100vh - 160px);
+  }
+  .color_green{
+    color: #4BD964;
+  }
+  .color_red{
+    color: #F56C6C;
+  }
+  .detail_popup{
+    padding: 20px;
+    height: calc(100vh - 60px);
+    overflow: auto;
+    .row_title{
+      position:relative;
+      margin:0 0 20px 0;
+      padding-top: 12px;
+      font-size: 16px;
+      color: #303133;
+      line-height: 22px;
+    }
+    .row_title:before{
+      position: absolute;
+      top: 0;
+      content: " ";
+      width: 100%;
+      border-top: 1px #f8f8f8 solid;
+    }
+    .el-row {
+      margin-bottom:10px;
+      font-size: 14px;
+      .el-col-4{
+        color: #606266;
+      }
+    }
+  }
+	.drawer_title{
+		font-size: 18px;
+		padding: 20px;
+    border-bottom:1px #efefef solid;
+  }
+   /deep/ .el-table tr:hover{
+    cursor:pointer
+  }
+</style>

+ 9 - 1
src/views/workbench/task/my_issue.vue

@@ -60,6 +60,7 @@
             <template slot-scope="scope">
               <span v-if="scope.row.point_config.base_point >= 0 && scope.row.status == 2">+ {{scope.row.point_config.base_point}}</span>
               <span v-else>{{scope.row.point_config.base_point}}</span>
+              {{$getTypsName(scope.row.pt_id)}}
             </template>
           </el-table-column>
           <el-table-column label="截止时间" prop="expire_time"></el-table-column>
@@ -113,6 +114,7 @@
             <template slot-scope="scope">
               <span v-if="scope.row.status == 3 && scope.row.base_point >= 0">+ {{scope.row.base_point}}</span>
               <span v-else>{{scope.row.base_point}}</span>
+              {{$getTypsName(scope.row.pt_id)}}
             </template>
           </el-table-column>
           <el-table-column label="截止时间" prop="expire_time"></el-table-column>
@@ -165,7 +167,13 @@
               {{scope.row.name || scope.row.remark}}
             </template>
           </el-table-column>
-          <el-table-column label="任务积分" prop="point_config.base_point"></el-table-column>
+          <el-table-column label="任务积分" prop="point_config.base_point">
+            <template slot-scope="scope">
+              <span v-if="scope.row.point_config.status == 3 && scope.row.point_config.base_point >= 0">+ {{scope.row.point_config.base_point}}</span>
+              <span v-else>{{scope.row.point_config.base_point}}</span>
+              {{$getTypsName(scope.row.pt_id)}}
+            </template>
+          </el-table-column>
           <el-table-column label="重复周期" prop="task_cycle">
             <template slot-scope="scope">
               <span v-if="scope.row.task_cycle == '1'">每天自动发布 完成截止为{{scope.row.task_cycle_value}}点</span>

+ 11 - 2
src/views/workbench/task/my_task.vue

@@ -23,7 +23,8 @@
           <el-table-column label="任务内容" prop="task_name"></el-table-column>
           <el-table-column label="积分">
             <template slot-scope="scope">
-              <span>{{scope.row.point_config.base_point}}</span>
+              <span v-if="scope.row.point_config.base_point>=0" class="red">+{{scope.row.point_config.base_point}} {{scope.row.pt_name}}</span>
+              <span v-else class="green">{{scope.row.point_config.base_point}} {{scope.row.pt_name}}</span>
             </template>
           </el-table-column>
           <el-table-column label="截止时间" prop="expire_time"></el-table-column>
@@ -46,10 +47,18 @@
           <el-table-column label="任务内容" prop="task_name"></el-table-column>
           <el-table-column label="积分">
             <template slot-scope="scope">
-              <span>{{scope.row.point_config.base_point}}</span>
+              <span v-if="scope.row.point_config.base_point>=0" class="red">+{{scope.row.point_config.base_point}} {{scope.row.pt_name}}</span>
+              <span v-else class="green">{{scope.row.point_config.base_point}} {{scope.row.pt_name}}</span>
             </template>
           </el-table-column>
           <el-table-column label="截止时间" prop="expire_time"></el-table-column>
+          <el-table-column label="状态" prop="review_status">
+          	<template slot-scope="scope">
+          		  <div class="yellow" v-if="scope.row.review_status == 0">待处理</div>
+          		  <div class="green" v-if="scope.row.review_status ==1">已通过</div>
+          		  <div class="red" v-if="scope.row.review_status == 2">已驳回</div>
+          	</template>
+          </el-table-column>
           <template slot="empty">
             <div class="nopoint_box">
               <div class="noimg noperson"></div>