Jelajahi Sumber

积分复议/审批驳回重填

walter 10 bulan lalu
induk
melakukan
6d69a56ca1

+ 2 - 2
src/components/AppealCreate.vue

@@ -11,8 +11,8 @@
     @open="openHandler"
     @close="closeHandler"
     append-to-body
-    width="1000px"
-    top="5%"
+    width="800px"
+    top="2%"
   >
 
     <template>

+ 72 - 32
src/components/Steps.vue

@@ -2,7 +2,7 @@
   <div>
     <p class="row_title">
       审批
-      <span class="row_tips fontColorB">多人审批时,以最后一人为准</span>
+      <span class="row-tips fontColorB">多人审批时,以最后一人为准</span>
     </p>
     <div class="examine_steps">
       <el-steps direction="vertical" :space="50">
@@ -11,42 +11,37 @@
             <userImage width="36px" height="36px" :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:5px;">-->
-<!--                <div class="flex-1">-->
-<!--                  {{ item.name }}-->
-<!--                  <span style="margin: 0 5px;">-->
-<!--                    <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>-->
-<!--                  <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="fontColorC" style="font-size:12px;">{{ item.time }}</span>-->
-<!--              </div>-->
-<!--            </div>-->
-            <span style="margin: 0 5px;">
-              <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>
+            <template v-if="item.step > 0">
+              阶段{{item.step}}
+            </template>
+            <el-tag :type="processStatusType(item.status)">{{processStatusMap[item.status] || '--'}}</el-tag>
           </template>
           <template slot="description" style="">
-            <el-descriptions :column="1" size="small" :label-style="{width : '80px'}" border>
+            <el-descriptions
+              :column="2"
+              direction="vertical"
+              size="small"
+              border
+              :label-style="classDescLabel"
+              :content-style="classDescContent"
+            >
               <el-descriptions-item v-if="item.time" label="时间">{{item.time}}</el-descriptions-item>
               <el-descriptions-item label="姓名">{{item.name}}</el-descriptions-item>
               <el-descriptions-item v-if="item.point" label="申请分值" >{{item.point ? item.point : ''}}</el-descriptions-item>
               <el-descriptions-item v-if="index > 0" label="发放奖票">{{item.ticket_count ? '是' :'否'}}</el-descriptions-item>
               <el-descriptions-item v-if="item.remark !== '发起' && item.review_point" label="审批分值">{{item.review_point ? item.review_point : ''}}</el-descriptions-item>
-              <el-descriptions-item v-if="item.review_remark" label="备注">{{item.review_remark}}</el-descriptions-item>
+              <el-descriptions-item v-if="item.review_remark" label="备注">
+                <el-popover
+                  placement="bottom"
+                  title="备注"
+                  width="500"
+                  trigger="click"
+                  :content="item.review_remark"
+                >
+                  <el-tag slot="reference" style="cursor: pointer" ><span class="desc-content">{{item.review_remark}}</span></el-tag>
+                </el-popover>
+              </el-descriptions-item>
             </el-descriptions>
-
-<!--            <div class="fontColorB" style="margin: 5px 0;">{{ item.review_remark }}</div>-->
           </template>
         </el-step>
       </el-steps>
@@ -55,8 +50,11 @@
 </template>
 
 <script>
+import Template from "../examine/components/Template.vue";
+
 export default {
   name: 'Steps',
+  components: {Template},
   props: {
     process: {
       type: Array,
@@ -66,9 +64,41 @@ export default {
     }
   },
   data() {
-    return {};
+    return {
+      processStatusMap:{
+        '-1':'发起',
+        0:'待审核',
+        1:'审核通过',
+        2:'拒绝',
+        3:'驳回重填',
+        4:'重填',
+      },
+      classDescLabel:{
+        textAlign: 'center',
+        maxWidth: '150px',
+      },
+      classDescContent:{
+        textAlign: 'center',
+        maxWidth: '150px',
+        overflow: 'hidden',
+        textOverflow: 'ellipsis',
+        whiteSpace: 'nowrap',
+      },
+    };
   },
-  methods: {}
+  methods: {
+    processStatusType(status){
+      if (status === -1) return 'info'
+      const map = {
+        0:'warning',
+        1:'success',
+        2:'danger',
+        3:'danger',
+        4:'info',
+      }
+      return map[status] || 'info'
+    }
+  }
 };
 </script>
 
@@ -95,7 +125,17 @@ export default {
     color: #606266;
   }
 }
-.row_tips{
+.row-tips{
 	font-size: 12px;
 }
+
+.desc-content{
+  display: block;
+  width: 200px;
+  text-align: center;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+
 </style>

+ 20 - 2
src/point/views/common/AppealPopup.vue

@@ -38,11 +38,21 @@
                 <el-tag :type="processStatusType(item.status)">{{processStatusMap[item.status] || '--'}}</el-tag>
               </template>
               <template slot="description">
-                <el-descriptions :column="1" size="small" :label-style="{width:'80px'}" border>
+                <el-descriptions :column="2" direction="vertical" size="small" :label-style="{width:'80px'}" border>
                   <el-descriptions-item label="发起人">{{item.publisher_name}}</el-descriptions-item>
                   <el-descriptions-item label="发起时间">{{item.create_time}}</el-descriptions-item>
                   <el-descriptions-item label="审批人">{{item.reviewer_name}}</el-descriptions-item>
-                  <el-descriptions-item label="审批意见" v-if="item.remark" >{{item.remark}}</el-descriptions-item>
+                  <el-descriptions-item label="审批意见" v-if="item.remark" >
+                    <el-popover
+                      placement="bottom"
+                      title="审批意见"
+                      width="300"
+                      trigger="click"
+                      :content="item.remark"
+                    >
+                      <el-tag style="cursor: pointer" slot="reference" >{{item.remark}}</el-tag>
+                    </el-popover>
+                  </el-descriptions-item>
                   <el-descriptions-item label="完结时间" v-if="item.complete_time" >{{item.complete_time}}</el-descriptions-item>
                 </el-descriptions>
               </template>
@@ -695,5 +705,13 @@ export default {
 .center{
   margin-top: calc(100vh * 0.3);
 }
+.desc-content{
+  display: block;
+  width: 200px;
+  text-align: center;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
 
 </style>

+ 194 - 60
src/point/views/common/examinePopup.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <el-drawer :title="title" :visible.sync="show" :with-header="false" :size="'600px'" :before-close="closeDetail" direction="rtl">
-      <div class="drawer_title">审批详情</div>
+<!--      <div class="drawer_title">审批详情</div>-->
       <div v-loading="detail_loading">
         <div class="detail_popup" v-if="detail_info !== null">
           <el-row :gutter="10" style="padding-bottom:20px;border-bottom:1px #f8f8f8 solid;position: relative;">
@@ -32,58 +32,95 @@
               </template>
             </el-col>
           </el-row>
-          <el-row :gutter="10" v-for="(item, index) in detail_info.detail" :key="index">
-            <el-col :span="4">{{ item.key }}</el-col>
-            <el-col :span="20" v-if="item.key == '附件'">
-              <el-image v-for="(items, indexs) in item.value" :key="indexs" style="width: 100px; height: 100px;margin:2px;" :src="items" :preview-src-list="item.value"></el-image>
-            </el-col>
-            <el-col :span="20" v-else-if="item.key == '工作留存'">
-              <el-image v-for="(items, indexs) in item.value" :key="indexs" style="width: 100px; height: 100px;margin:2px;" :src="items" :preview-src-list="item.value"></el-image>
-            </el-col>
-            <el-col :span="20" v-else style="word-wrap: break-word">{{ item.value }}</el-col>
-          </el-row>
-          <el-row :gutter="10" v-if="detail_info.files != null && detail_info.files > 0">
-            <el-col :span="4">图片</el-col>
-            <el-col :span="20"><el-image style="width: 100px; height: 100px" :src="detail_info.files[0]" :preview-src-list="detail_info.files"></el-image></el-col>
-          </el-row>
-          <div v-show="detail_info.item_name != ''">
-            <p class="row_title">
-              规则依据 &nbsp;
+          <el-descriptions direction="vertical" :column="3" border title="审批信息">
+            <el-descriptions-item
+              v-for="(item,index) in detail_info.detail"
+              :key="index"
+              :label="item.key"
+              :label-style="{textAlign:'center'}"
+              :content-style="{textAlign:'center'}"
+            >
+              <template v-if="item.key === '附件'">
+                <el-image v-for="(items, indexs) in item.value" :key="indexs" style="width: 50px; height: 50px;margin:2px;" :src="items" :preview-src-list="item.value"></el-image>
+              </template>
+              <template v-else-if="item.key === '工作留存'">
+                <el-image v-for="(items, indexs) in item.value" :key="indexs" style="width: 100px; height: 100px;margin:2px;" :src="items" :preview-src-list="item.value"></el-image>
+              </template>
+              <template v-else-if="item.key === '工作备注'">
+                <el-popover
+                  placement="bottom"
+                  title="工作备注"
+                  width="500"
+                  trigger="click"
+                  :content="item.value"
+                >
+                  <el-tag slot="reference" style="cursor: pointer" ><span class="desc-content">{{item.value}}</span></el-tag>
+                </el-popover>
+              </template>
+              <span v-else style="word-wrap: break-word">{{item.value}}</span>
+            </el-descriptions-item>
+          </el-descriptions>
+          <el-descriptions
+            direction="vertical"
+            :column="3"
+            border
+            v-if="detail_info.item_name"
+            :label-style="{textAlign:'center'}"
+            :content-style="{textAlign:'center'}"
+          >
+            <template slot="title">
+              <p class="row_title">规则依据</p>
               <span class="row_tips" style="font-size:12px;color:#909399">此事件打分参考以下积分规则</span>
-            </p>
-            <el-row>
-              <el-col :span="4">事件分类</el-col>
-              <el-col :span="20">{{ detail_info.rule_name }}</el-col>
-            </el-row>
-            <el-row>
-              <el-col :span="4">积分规则</el-col>
-              <el-col :span="20">{{ detail_info.item_name }}</el-col>
-            </el-row>
-						<el-row>
-							<el-col :span="4">规则积分</el-col>
-							<el-col :span="20">
-								<template v-if="detail_info.item_range_type == 1">
-									<span v-if="detail_info.item_max_point > 0">+</span>
-									{{ detail_info.item_max_point }}{{ detail_info.pt_id == 3 ? 'B分' : detail_info.pt_id == 2 ? 'A分' : detail_info.pt_id == 1 ? '绩效分' : '' }}
-								</template>
-								<template v-else>
-									{{ detail_info.item_min_point }}~{{ detail_info.item_max_point
-									}}{{ detail_info.pt_id == 3 ? 'B分' : detail_info.pt_id == 2 ? 'A分' : detail_info.pt_id == 1 ? '绩效分' : '' }}
-								</template>
-							</el-col>
-						</el-row>
-          </div>
+            </template>
+            <el-descriptions-item label="事件分类">{{detail_info.rule_name}}</el-descriptions-item>
+            <el-descriptions-item label="积分规则">{{detail_info.item_name}}</el-descriptions-item>
+            <el-descriptions-item label="规则积分">
+              <template v-if="detail_info.item_range_type === 1">
+                <span v-if="detail_info.item_max_point > 0">+</span>
+                {{ detail_info.item_max_point }}{{ detail_info.pt_id === 3 ? 'B分' : detail_info.pt_id === 2 ? 'A分' : detail_info.pt_id === 1 ? '绩效分' : '' }}
+              </template>
+              <template v-else>
+                {{ detail_info.item_min_point }}~{{ detail_info.item_max_point
+                }}{{ detail_info.pt_id === 3 ? 'B分' : detail_info.pt_id === 2 ? 'A分' : detail_info.pt_id === 1 ? '绩效分' : '' }}
+              </template>
+            </el-descriptions-item>
+          </el-descriptions>
+
           <div v-show="detail_info.process">
             <Steps :process="detail_info.process"></Steps>
           </div>
+          <el-collapse v-if="detail_info && detail_info.logs" v-model="infoActiveNames">
+            <el-collapse-item :title="detail_info.logs.length + '条操作日志'" name="logs">
+              <el-row class="detail_row" v-for="(item,index) in detail_info.logs" :key="index">
+                <el-col>
+                  <el-tag v-if="item.create_time">{{item.create_time}}</el-tag>
+                  {{item.msg}}
+                </el-col>
+              </el-row>
+            </el-collapse-item>
+          </el-collapse>
         </div>
         <footer class="drawer-footer flex-box-end flex-v-ce">
-          <div v-if="detail_info.status == 0&&detail_info.reviewer_id==$userInfo().id">
+<!--          <div v-if="detail_info.status == 0&&detail_info.reviewer_id==$userInfo().id">-->
+
+          <div v-if="canComplete">
+            <el-button v-if="canRejectRewrite" type="warning" @click="showRejectRewrite = true" >
+              <el-tooltip content="驳回申请,任务执行者重新处理任务再重新提交" placement="top-start"><span>驳回重填</span></el-tooltip>
+            </el-button>
+
+
             <el-button v-if="detail_info.pt_id == 1" @click="closeDetail">取消</el-button>
-            <el-button v-else @click="rejectBtn">驳回</el-button>
-            <el-button type="primary" @click="adoptBtn">通过</el-button>
+
+              <el-button v-else @click="rejectBtn">
+                <el-tooltip content="拒绝申请并终止审批" placement="top"><span>拒绝</span></el-tooltip>
+              </el-button>
+
+              <el-button type="primary" @click="adoptBtn">
+                <el-tooltip content="第一阶段审批节点可指定分数值是否发放奖票等,并可以继续提交到下个审批人" placement="top-end"><span>通过</span></el-tooltip>
+              </el-button>
           </div>
-          <div v-if="detail_info.can_refuse==1">
+
+          <div v-if="canRefuse">
             <span style="color:#909399;font-size:12px;padding-right:20px">撤回后需重新审批</span>
             <el-button type="primary" @click="revokeApproval">撤回审批</el-button>
           </div>
@@ -91,7 +128,7 @@
       </div>
     </el-drawer>
 
-    <el-dialog :close-on-click-modal="false" title="审批驳回" :visible.sync="rejectShow" :before-close="rejectClose" width="520px">
+    <el-dialog :close-on-click-modal="false" title="拒绝审批" :visible.sync="rejectShow" :before-close="rejectClose" width="520px" center>
       <el-form :model="rejectForm" ref="rejectForm" label-width="80px" v-loading="rejectLoading">
         <el-form-item
           label="审批意见"
@@ -106,17 +143,17 @@
             }
           ]"
         >
-          <el-input type="textarea" :rows="4" v-model="rejectForm.remark" placeholder="请输入审批意见(限50字)"></el-input>
+          <el-input type="textarea" :rows="4" v-model="rejectForm.remark" placeholder="请输入审批意见(限50字)" maxlength="50" show-word-limit></el-input>
         </el-form-item>
 
         <div class="flex-box-end">
           <el-button @click="cancelReject('rejectForm')">取消</el-button>
-          <el-button type="primary" @click="confirmReject('rejectForm')">确认驳回</el-button>
+          <el-button type="primary" @click="confirmReject('rejectForm')">确认</el-button>
         </div>
       </el-form>
     </el-dialog>
 
-    <el-dialog title="审批通过" :close-on-click-modal="false" :visible.sync="adoptShow" width="571px" :before-close="adoptClose">
+    <el-dialog title="通过审批" :close-on-click-modal="false" :visible.sync="adoptShow" width="571px" :before-close="adoptClose" center>
       <el-form :model="adoptForm" ref="adoptForm" label-width="80px" v-loading="determinedBy" class="form">
         <el-form-item label="指定规则" v-if="!detail_info.rule_id && !detail_info.item_id && detail_info.source_type != 4">
           <el-switch v-model="adoptForm.ruleOrItem" active-color="#13ce66"></el-switch>
@@ -201,7 +238,7 @@
               :min="detail_info.item_min_point"
               :max="detail_info.item_max_point"
               v-model="adoptForm.point"
-              :disabled="detail_info.pid? true:false"
+              :disabled="!isFirstStep"
               type="number"
             ></el-input-number>
             <el-input-number
@@ -235,9 +272,9 @@
           <el-input :rows="4" type="textarea" v-model="adoptForm.remark" placeholder="说点什么(限100字)"></el-input>
         </el-form-item>
         <div style="padding-left: 80px">奖票用于优秀表现和重要事项的表彰</div>
-        <el-form-item label="发放奖票"><el-switch :disabled="!!detail_info.pid" v-model="adoptForm.switch" active-color="#13ce66"></el-switch></el-form-item>
+        <el-form-item label="发放奖票"><el-switch :disabled="!isFirstStep" v-model="adoptForm.switch" active-color="#13ce66"></el-switch></el-form-item>
 
-        <el-form-item label="发生时间" v-if="(detail_info.source_type == 2 || detail_info.source_type == 3) && detail_info.pid == 0">
+        <el-form-item label="发生时间" v-if="(detail_info.source_type === 2 || detail_info.source_type === 3) && isFirstStep">
           <el-row>
             <el-col :span="18">
               <el-date-picker
@@ -273,12 +310,48 @@
           <el-input :rows="4" type="textarea" v-model="adoptForm.remark" placeholder="说点什么(限100字)"></el-input>
         </el-form-item>
 
-        <el-form-item>
+        <center>
           <el-button @click="adoptClose">取 消</el-button>
-          <el-button type="primary" @click="submitAdopt('adoptForm')">确定通过</el-button>
-        </el-form-item>
+          <el-button type="primary" @click="submitAdopt('adoptForm')">确定</el-button>
+        </center>
       </el-form>
     </el-dialog>
+
+    <el-dialog
+      title="驳回重填"
+      :close-on-click-modal="false"
+      :modal="false"
+      :close-on-press-escape="false"
+      :show-close="false"
+      :visible.sync="showRejectRewrite"
+      width="571px"
+      center
+    >
+      <template>
+        <el-form v-model="formRejectRewrite">
+          <el-form-item>
+            <el-input
+              type="textarea"
+              :rows="3"
+              :clearable="true"
+              :maxlength="100"
+              :show-word-limit="true"
+              placeholder="原因说明"
+              v-model="formRejectRewrite.remark"
+            />
+          </el-form-item>
+        </el-form>
+      </template>
+      <template slot="footer">
+        <div class="flex-box-end flex-v-ce">
+          <el-button @click="formRejectRewrite.remark = '',showRejectRewrite = false">关闭</el-button>
+          <el-button type="primary" :disabled="!canRejectRewrite" :loading="submitting" @click="rejectRewrite">确认</el-button>
+        </div>
+      </template>
+
+    </el-dialog>
+
+
   </div>
 </template>
 
@@ -286,6 +359,7 @@
 import EmployeeSelector from '@/components/EmployeeSelector';
 import Steps from '@/components/Steps.vue';
 import moment from 'moment';
+import Template from "../../../examine/components/Template.vue";
 export default {
   name: 'examinePopup',
   data() {
@@ -344,7 +418,14 @@ export default {
       show_employee_selector: false,
       isCreator:false,//是否创始人
       flatteningIntegralRules:[],
+      showRejectRewrite:false,
+      formRejectRewrite:{
+        remark:''
+      },
+      submitting:false,
+      infoActiveNames:[]
     };
+
   },
   props: {
     id: {
@@ -385,16 +466,30 @@ export default {
       }
     }
   },
-  components: { EmployeeSelector, Steps, moment },
+  components: {Template, EmployeeSelector, Steps, moment },
   computed: {
+    isFirstStep(){
+      return this.detail_info && ((this.detail_info.pid === 0 && this.detail_info.step === 0) || this.detail_info.step === 1)
+    },
+    canComplete(){
+      return this.detail_info && this.detail_info.can_complete === 1
+    },
+    canRefuse(){
+      return this.detail_info && this.detail_info.can_refuse === 1
+    },
+    canRejectRewrite(){
+      return this.canComplete && this.detail_info.source_type === 1
+    },
     returnIs() {
       let is=false
       is=this.forbiddenInputNum;
-      if(this.detail_info.pid){
+      // if(this.detail_info.pid){
+      if(!this.isFirstStep){
         is=true
       }
       return is
-    }
+    },
+
   },
   mounted() {
     this.isCreator=this.$supremeAuthority('creator');
@@ -567,6 +662,7 @@ export default {
     },
     // 关闭抽屉
     closeDetail() {
+      this.infoActiveNames = []
       this.$emit('update:show', false);
     },
     // 驳回按钮
@@ -742,7 +838,33 @@ export default {
             });
         }
       });
-    }
+    },
+    rejectRewrite(){
+      let self = this
+      self.submitting = true
+      let params = {
+        review_id:self.detail_info.id,
+        remark:self.formRejectRewrite.remark || ''
+      }
+
+      self.$axiosUser('post','/api/pro/integral/review/reject/rewrite',params)
+        .then((res) => {
+          if(res.data.code === 1){
+            self.formRejectRewrite.remark = ''
+            self.showRejectRewrite = false
+            self.closeDetail()
+            self.$parent.get_list()
+          } else {
+            self.$message.error(res.data.msg)
+          }
+        })
+        .finally(() => {
+          self.submitting = false
+        })
+
+
+
+    },
   }
 };
 </script>
@@ -779,7 +901,7 @@ export default {
   padding: 20px;
   overflow-y: auto;
   overflow-x: hidden !important;
-  height: calc(100vh - 120px);
+  height: calc(100vh - 60px);
   .row_title {
     position: relative;
     margin: 0 0 20px 0;
@@ -810,4 +932,16 @@ export default {
   height: 60px;
   box-sizing: border-box;
 }
+.detail_row{
+  padding-bottom: 10px;
+  line-height: 50px;
+}
+.desc-content{
+  display: block;
+  width: 200px;
+  text-align: center;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
 </style>

+ 11 - 6
src/point/views/common/taskDetailsPopup.vue

@@ -66,7 +66,7 @@
           <div class="d_progress">
             <div class="flex-box">
               <div class="flex-1">工作进度({{ workDetailData.progress }}%)</div>
-              <div class="fontColorC addJf" @click="isSlider = true" v-if="workDetailData.employee_id == userId && workDetailData.status == 1">+更新进度</div>
+              <div class="fontColorC addJf" @click="isSlider = true" v-if="canUpdate">+更新进度</div>
             </div>
             <el-progress :percentage="workDetailData.progress"></el-progress>
           </div>
@@ -78,9 +78,9 @@
                   <div
                     class="fontColorC addJf"
                     @click="isOne = true"
-                    v-if="workDetailData.employee_id == userId && (workDetailData.status == 1||workDetailData.status == 2)"
+                    v-if="canUpdate"
                   >
-                    +记一条工作记录
+                    +新增工作记录
                   </div>
                 </div>
                 <div class="work_box">
@@ -249,6 +249,11 @@ export default {
       isShowJf:false
     };
   },
+  computed:{
+    canUpdate(){
+      return this.workDetailData.employee_id === this.userId && [1,6].includes(this.workDetailData.status)
+    }
+  },
   watch: {
     isSlider(val) {
       if (val) {
@@ -400,16 +405,16 @@ export default {
       this.$emit('update:visible', false);
     },
     keepTheScore(data){
-      if(data.status > 2){
+      if(![1,2,6].includes(data.status)){
         return false
       }
-      if(this.userId == data.reviewer_id){
+      if(this.userId === data.reviewer_id){
         return true
       }
       let info=this.$getEmployeeMapItem(data.employee_id)
       if(info){
         return info.employee_detail.superior_list.some(x =>{
-          if(this.userId == x.id){
+          if(this.userId === x.id){
             return true
           }
         })

+ 16 - 2
src/point/views/statistics/appeal.vue

@@ -9,7 +9,7 @@
         :disabled="loading"
       >
         <template slot="label">
-          <el-tooltip content="等待您处理的复议" placement="left">
+          <el-tooltip content="等待您处理的复议" placement="top-start">
             <span>{{tabs[2].label}}</span>
           </el-tooltip>
         </template>
@@ -29,7 +29,7 @@
         :disabled="loading"
       >
         <template slot="label">
-          <el-tooltip content="参与审批的复议" placement="right">
+          <el-tooltip content="参与审批的复议" placement="top-end">
             <span>{{tabs[0].label}}</span>
           </el-tooltip>
         </template>
@@ -55,6 +55,19 @@
           :row-class-name="statusClassName"
           @row-click="openAppealInfo"
         >
+          <el-table-column label="申请人">
+            <template slot-scope="scope">
+              <userImage
+                style="float: left"
+                :id="scope.row.employee_id"
+                :user_name="scope.row.employee_name"
+                :img_url="scope.row.employee_img_url"
+                width="40px"
+                height="40px"
+              />
+              <span style="margin-left: 10px; line-height: 50px; display: inline-block">{{scope.row.employee_name}}</span>
+            </template>
+          </el-table-column>
           <el-table-column label="审批人">
             <template slot-scope="scope">
               <userImage
@@ -270,6 +283,7 @@ export default {
       let self = this
       let params = {
         last_reviewer_id:self.userInfo.id,
+        status:1,
         page:self.searchForm.page,
         page_size:self.searchForm.page_size
       }

+ 472 - 90
src/point/views/statistics/integral_event.vue

@@ -1,12 +1,17 @@
 <template>
-  <div>
-    <div class="integral_event_box boxMinHeight">
-      <div class="flex-box-ce flex-d-wrap">
-        <div class="sleItem">
-          <el-select v-model="newTaskFormType" style="width:110px;" filterable placeholder="请选择">
-            <el-option v-for="item in pullrow" :key="item.id" :label="item.value" :value="item.id"></el-option>
-          </el-select>
-          <span v-show="newTaskFormType == 1">
+  <el-container>
+    <el-header :height="headerMaxHeight">
+      <el-collapse v-model="activeCollapseName" >
+        <el-collapse-item title="积分搜索" name="search">
+          <template slot="title">
+            <el-tag style="margin-left: 20px">当前数据:{{total}}条,最多导出10000条。</el-tag>
+          </template>
+          <div class="flex-box-ce flex-d-wrap" style="margin-left: 20px">
+            <div class="sleItem">
+              <el-select v-model="newTaskFormType" style="width:110px;" filterable placeholder="请选择">
+                <el-option v-for="item in pullrow" :key="item.id" :label="item.value" :value="item.id"></el-option>
+              </el-select>
+              <span v-show="newTaskFormType == 1">
             <el-cascader
               class="date-picker-width"
               v-model="rule"
@@ -20,7 +25,7 @@
               placeholder="全部规则分类"
             ></el-cascader>
           </span>
-          <span v-show="newTaskFormType == 2">
+              <span v-show="newTaskFormType == 2">
             <el-cascader
               @change="ruleautomatic"
               class="date-picker-width"
@@ -34,83 +39,90 @@
               clearable
             ></el-cascader>
           </span>
-        </div>
-        <div class="sleItem">
-          <span class="label">积分类型</span>
-          <el-select class="date-picker-width" v-model="formData.pt_id" clearable placeholder="全部">
-            <el-option v-for="item in $getTyps()" :key="item.name" :label="item.name" :value="item.id"></el-option>
-          </el-select>
-        </div>
-        <div class="sleItem">
-          <span class="label">事件来源</span>
-          <el-select class="date-picker-width" v-model="formData.source_type" clearable placeholder="全部">
-            <el-option v-for="item in source_type" :key="item.name" :label="item.name" :value="item.id"></el-option>
-          </el-select>
-        </div>
-        <div class="sleItem">
-          <span class="label">部门</span>
-          <el-cascader class="date-picker-width" v-model="dept_name" :options="dept_tree" ref="dept" clearable filterable change-on-select placeholder="全公司"></el-cascader>
-        </div>
-        <div class="sleItem flex-box-ce">
-          <span class="label">时间</span>
-          <el-date-picker
-            v-model="time_slot"
-            type="daterange"
-            value-format="yyyy-MM-dd"
-            range-separator="至"
-            :clearable="process=='production'? false:true"
-            start-placeholder="开始日期"
-            end-placeholder="结束日期"
-            :picker-options="instantPickerOptions"
-          ></el-date-picker>
-        </div>
-        <div class="sleItem flex-box-ce">
-          <el-select v-model="select_employee_id" filterable clearable placeholder="请输入或选择人员" style="width: 250px;margin-right: 10px;">
-            <el-option v-for="item in employee_map" :key="item.id" :label="item.name" :value="item.id"></el-option>
-          </el-select>
-          <el-input v-model="formData.keyword" style="width: 250px;" placeholder="输入关键字查找" maxlength="100" @keyup.enter.native="keyWordSelect" class="persons_name">
-            <el-button slot="append" icon="el-icon-search" @click="keyWordSelect"></el-button>
-          </el-input>
-          <span class="label" style="margin-left: 10px">奖扣分值</span>
-          <el-select v-model="formData.add_subtract" style="width:110px;" filterable placeholder="全部">
-            <el-option v-for="item in add_subtract_items" :key="item.id" :label="item.value" :value="item.id"></el-option>
-          </el-select>
-        </div>
-      </div>
-      <div class="flex-box-ce" style="margin-bottom: 20px;">
-        <div class="flex-1">
-          <el-button type="primary" v-if="!$supremeAuthority('employee')" @click="excelImportShow = true">导入数据</el-button>
-          <el-button type="primary" @click="exportExcel">导出当前数据</el-button>
-          <el-button class="first-element-btn" v-if="noticeRole" :disabled="selectionID.length == 0" @click="deleteInBatches" type="danger">批量删除</el-button>
-          <el-button type="warning" :disabled="!appealEnable || appealSelectionEvents.length === 0" @click="showAppealCreate = true" >发起申诉</el-button>
-        </div>
-      </div>
-      <div class="diy-tip1" style="margin-bottom: 10px;">
-        <div>
-          当前数据:{{total}}条,最多导出10000条。
-        </div>
-      </div>
-      <el-table :data="list" style="width: 100%" v-loading="loading" @row-click="open_detail" @selection-change="deleteEvents">
-        <el-table-column v-if="noticeRole" :selectable="isSelectable" type="selection" width="55"></el-table-column>
-        <el-table-column prop="employee_name" label="姓名" align="left" width="180px">
+            </div>
+            <div class="sleItem">
+              <span class="label">积分类型</span>
+              <el-select class="date-picker-width" v-model="formData.pt_id" clearable placeholder="全部">
+                <el-option v-for="item in $getTyps()" :key="item.name" :label="item.name" :value="item.id"></el-option>
+              </el-select>
+            </div>
+            <div class="sleItem">
+              <span class="label">事件来源</span>
+              <el-select class="date-picker-width" v-model="formData.source_type" clearable placeholder="全部">
+                <el-option v-for="item in source_type" :key="item.name" :label="item.name" :value="item.id"></el-option>
+              </el-select>
+            </div>
+            <div class="sleItem">
+              <span class="label">部门</span>
+              <el-cascader class="date-picker-width" v-model="dept_name" :options="dept_tree" ref="dept" clearable filterable change-on-select placeholder="全公司"></el-cascader>
+            </div>
+            <div class="sleItem flex-box-ce">
+              <span class="label">时间</span>
+              <el-date-picker
+                v-model="time_slot"
+                type="daterange"
+                value-format="yyyy-MM-dd"
+                range-separator="至"
+                :clearable="process=='production'? false:true"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                :picker-options="instantPickerOptions"
+              ></el-date-picker>
+            </div>
+            <div class="sleItem flex-box-ce">
+              <el-select v-model="select_employee_id" filterable clearable placeholder="请输入或选择人员" style="width: 250px;margin-right: 10px;">
+                <el-option v-for="item in employee_map" :key="item.id" :label="item.name" :value="item.id"></el-option>
+              </el-select>
+              <el-input v-model="formData.keyword" style="width: 250px;" placeholder="输入关键字查找" maxlength="100" @keyup.enter.native="keyWordSelect" class="persons_name">
+                <el-button slot="append" icon="el-icon-search" @click="keyWordSelect"></el-button>
+              </el-input>
+              <span class="label" style="margin-left: 10px">奖扣分值</span>
+              <el-select v-model="formData.add_subtract" style="width:110px;" filterable placeholder="全部">
+                <el-option v-for="item in add_subtract_items" :key="item.id" :label="item.value" :value="item.id"></el-option>
+              </el-select>
+            </div>
+          </div>
+          <div class="flex-box-ce" style="margin-bottom: 10px;margin-left: 20px">
+            <div class="flex-1">
+              <el-button type="primary" v-if="!$supremeAuthority('employee')" @click="excelImportShow = true">导入数据</el-button>
+              <el-button type="primary" @click="exportExcel">导出当前数据</el-button>
+              <el-button class="first-element-btn" v-if="noticeRole" :disabled="selectionID.length == 0" @click="deleteInBatches" type="danger">批量删除</el-button>
+              <el-button type="warning" :disabled="!appealEnable || appealSelectionEvents.length === 0" @click="showAppealCreate = true" >发起申诉</el-button>
+            </div>
+          </div>
+        </el-collapse-item>
+      </el-collapse>
+    </el-header>
+    <el-main>
+      <el-table
+        :data="list"
+        style="width: 100%"
+        v-loading="loading"
+        @row-click="open_detail"
+        @selection-change="deleteEvents"
+        :height="tableMaxHeight"
+      >
+<!--        <el-table-column v-if="noticeRole" :selectable="isSelectable" type="selection" width="55" fixed></el-table-column>-->
+        <el-table-column :selectable="isSelectable" type="selection" width="55" fixed></el-table-column>
+        <el-table-column prop="employee_name" label="姓名" align="left" width="180px" fixed>
           <template slot-scope="scope">
             <userImage class="fl" :id="scope.row.employee_id" :user_name="scope.row.employee_name" :img_url="scope.row.employee_img_url" width="50px" height="50px"></userImage>
             <span style="margin-left: 10px; line-height: 50px;">{{ scope.row.employee_name }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="dept" label="部门" align="left" width="200px"></el-table-column>
-        <el-table-column prop="point_mark" label="积分" align="left" width="120px">
+        <el-table-column prop="point_mark" label="积分" align="left" width="120px" fixed>
           <template slot-scope="scope">
             <span :class="scope.row.point < 0 ? 'color_green' : 'color_red'">{{ scope.row.point_mark }} {{ $getTypsName(scope.row.pt_id) }}</span>
           </template>
         </el-table-column>
+        <el-table-column prop="dept" label="部门" align="left" width="200px"></el-table-column>
         <el-table-column prop="remark" show-overflow-tooltip label="事件内容" align="left" min-width="280px"></el-table-column>
         <el-table-column prop="rule_name" show-overflow-tooltip label="规则分类" align="left" min-width="140px"></el-table-column>
         <el-table-column prop="item_remark" show-overflow-tooltip label="规则细则" align="left" min-width="140px"></el-table-column>
         <el-table-column prop="create_time" label="事件发生时间" align="left" min-width="140px">
-        	<template slot-scope="scope">
-        		{{ scope.row.event_time }}
-        	</template>
+          <template slot-scope="scope">
+            {{ scope.row.event_time }}
+          </template>
         </el-table-column>
         <el-table-column prop="source_type" label="来源" align="left" width="140px">
           <template slot-scope="scope">
@@ -134,6 +146,8 @@
           <noData></noData>
         </template>
       </el-table>
+    </el-main>
+    <el-footer height="60">
       <center class="pagination">
         <el-pagination
           background
@@ -146,8 +160,7 @@
           :total="total"
         ></el-pagination>
       </center>
-    </div>
-
+    </el-footer>
     <el-drawer title="事件详情" :visible.sync="detail_popup" ref="drawer" :with-header="false" :width="'500px'" direction="rtl">
       <div class="drawer_title">事件详情</div>
       <div class="detail_popup" v-loading="detail_loading" v-if="detail_info !== null">
@@ -215,11 +228,11 @@
           </el-row>
         </div>
         <div v-show="detail_info.process"><Steps :process="detail_info.process"></Steps></div>
-<!--        <div v-if="!detail_info.is" class="red" style="text-align: center;">
-          考勤积分暂不支持立即删除,请在
-          <span class="blue">{{ detail_info.btnDate }}</span>
-          后再操作删除此事件
-        </div> -->
+        <!--        <div v-if="!detail_info.is" class="red" style="text-align: center;">
+                  考勤积分暂不支持立即删除,请在
+                  <span class="blue">{{ detail_info.btnDate }}</span>
+                  后再操作删除此事件
+                </div> -->
       </div>
       <div class="drawer-footer flex-box-end flex-v-ce" v-show="noticeRole">
         <el-button @click="close_integral_event">取消</el-button>
@@ -309,7 +322,7 @@
       </span>
     </el-dialog>
 
-<!--  发起申诉  -->
+    <!--  发起申诉  -->
     <AppealCreate
       :visible.sync="showAppealCreate"
       :events="appealSelectionEvents"
@@ -330,13 +343,356 @@
     >
       <AppealPopup ref="appealInfo" :id="appeal.id" @update:appeal="onAppealUpdate"/>
     </el-drawer>
-  </div>
+  </el-container>
+
+<!--  <div>-->
+<!--    <div class="integral_event_box boxMinHeight">-->
+<!--      <el-collapse v-model="activeCollapseName" >-->
+<!--        <el-collapse-item title="积分搜索" name="search">-->
+<!--          <template slot="title">-->
+<!--            <el-tag>当前数据:{{total}}条,最多导出10000条。</el-tag>-->
+<!--          </template>-->
+<!--          <div class="flex-box-ce flex-d-wrap">-->
+<!--            <div class="sleItem">-->
+<!--              <el-select v-model="newTaskFormType" style="width:110px;" filterable placeholder="请选择">-->
+<!--                <el-option v-for="item in pullrow" :key="item.id" :label="item.value" :value="item.id"></el-option>-->
+<!--              </el-select>-->
+<!--              <span v-show="newTaskFormType == 1">-->
+<!--            <el-cascader-->
+<!--              class="date-picker-width"-->
+<!--              v-model="rule"-->
+<!--              :options="rule_trees"-->
+<!--              :props="props"-->
+<!--              @change="rule_null"-->
+<!--              ref="rule"-->
+<!--              clearable-->
+<!--              filterable-->
+<!--              change-on-select-->
+<!--              placeholder="全部规则分类"-->
+<!--            ></el-cascader>-->
+<!--          </span>-->
+<!--              <span v-show="newTaskFormType == 2">-->
+<!--            <el-cascader-->
+<!--              @change="ruleautomatic"-->
+<!--              class="date-picker-width"-->
+<!--              v-model="automaticIntegration"-->
+<!--              :options="rule_list"-->
+<!--              :props="props"-->
+<!--              ref="rule1"-->
+<!--              filterable-->
+<!--              change-on-select-->
+<!--              placeholder="全部自动积分"-->
+<!--              clearable-->
+<!--            ></el-cascader>-->
+<!--          </span>-->
+<!--            </div>-->
+<!--            <div class="sleItem">-->
+<!--              <span class="label">积分类型</span>-->
+<!--              <el-select class="date-picker-width" v-model="formData.pt_id" clearable placeholder="全部">-->
+<!--                <el-option v-for="item in $getTyps()" :key="item.name" :label="item.name" :value="item.id"></el-option>-->
+<!--              </el-select>-->
+<!--            </div>-->
+<!--            <div class="sleItem">-->
+<!--              <span class="label">事件来源</span>-->
+<!--              <el-select class="date-picker-width" v-model="formData.source_type" clearable placeholder="全部">-->
+<!--                <el-option v-for="item in source_type" :key="item.name" :label="item.name" :value="item.id"></el-option>-->
+<!--              </el-select>-->
+<!--            </div>-->
+<!--            <div class="sleItem">-->
+<!--              <span class="label">部门</span>-->
+<!--              <el-cascader class="date-picker-width" v-model="dept_name" :options="dept_tree" ref="dept" clearable filterable change-on-select placeholder="全公司"></el-cascader>-->
+<!--            </div>-->
+<!--            <div class="sleItem flex-box-ce">-->
+<!--              <span class="label">时间</span>-->
+<!--              <el-date-picker-->
+<!--                v-model="time_slot"-->
+<!--                type="daterange"-->
+<!--                value-format="yyyy-MM-dd"-->
+<!--                range-separator="至"-->
+<!--                :clearable="process=='production'? false:true"-->
+<!--                start-placeholder="开始日期"-->
+<!--                end-placeholder="结束日期"-->
+<!--                :picker-options="instantPickerOptions"-->
+<!--              ></el-date-picker>-->
+<!--            </div>-->
+<!--            <div class="sleItem flex-box-ce">-->
+<!--              <el-select v-model="select_employee_id" filterable clearable placeholder="请输入或选择人员" style="width: 250px;margin-right: 10px;">-->
+<!--                <el-option v-for="item in employee_map" :key="item.id" :label="item.name" :value="item.id"></el-option>-->
+<!--              </el-select>-->
+<!--              <el-input v-model="formData.keyword" style="width: 250px;" placeholder="输入关键字查找" maxlength="100" @keyup.enter.native="keyWordSelect" class="persons_name">-->
+<!--                <el-button slot="append" icon="el-icon-search" @click="keyWordSelect"></el-button>-->
+<!--              </el-input>-->
+<!--              <span class="label" style="margin-left: 10px">奖扣分值</span>-->
+<!--              <el-select v-model="formData.add_subtract" style="width:110px;" filterable placeholder="全部">-->
+<!--                <el-option v-for="item in add_subtract_items" :key="item.id" :label="item.value" :value="item.id"></el-option>-->
+<!--              </el-select>-->
+<!--            </div>-->
+<!--          </div>-->
+<!--          <div class="flex-box-ce" style="margin-bottom: 20px;">-->
+<!--            <div class="flex-1">-->
+<!--              <el-button type="primary" v-if="!$supremeAuthority('employee')" @click="excelImportShow = true">导入数据</el-button>-->
+<!--              <el-button type="primary" @click="exportExcel">导出当前数据</el-button>-->
+<!--              <el-button class="first-element-btn" v-if="noticeRole" :disabled="selectionID.length == 0" @click="deleteInBatches" type="danger">批量删除</el-button>-->
+<!--              <el-button type="warning" :disabled="!appealEnable || appealSelectionEvents.length === 0" @click="showAppealCreate = true" >发起申诉</el-button>-->
+<!--            </div>-->
+<!--          </div>-->
+<!--        </el-collapse-item>-->
+<!--      </el-collapse>-->
+<!--      <el-table-->
+<!--        :data="list"-->
+<!--        style="width: 100%"-->
+<!--        v-loading="loading"-->
+<!--        @row-click="open_detail"-->
+<!--        @selection-change="deleteEvents"-->
+<!--        :height="tableMaxHeight"-->
+<!--      >-->
+<!--        <el-table-column v-if="noticeRole" :selectable="isSelectable" type="selection" width="55"></el-table-column>-->
+<!--        <el-table-column prop="employee_name" label="姓名" align="left" width="180px">-->
+<!--          <template slot-scope="scope">-->
+<!--            <userImage class="fl" :id="scope.row.employee_id" :user_name="scope.row.employee_name" :img_url="scope.row.employee_img_url" width="50px" height="50px"></userImage>-->
+<!--            <span style="margin-left: 10px; line-height: 50px;">{{ scope.row.employee_name }}</span>-->
+<!--          </template>-->
+<!--        </el-table-column>-->
+<!--        <el-table-column prop="dept" label="部门" align="left" width="200px"></el-table-column>-->
+<!--        <el-table-column prop="point_mark" label="积分" align="left" width="120px">-->
+<!--          <template slot-scope="scope">-->
+<!--            <span :class="scope.row.point < 0 ? 'color_green' : 'color_red'">{{ scope.row.point_mark }} {{ $getTypsName(scope.row.pt_id) }}</span>-->
+<!--          </template>-->
+<!--        </el-table-column>-->
+<!--        <el-table-column prop="remark" show-overflow-tooltip label="事件内容" align="left" min-width="280px"></el-table-column>-->
+<!--        <el-table-column prop="rule_name" show-overflow-tooltip label="规则分类" align="left" min-width="140px"></el-table-column>-->
+<!--        <el-table-column prop="item_remark" show-overflow-tooltip label="规则细则" align="left" min-width="140px"></el-table-column>-->
+<!--        <el-table-column prop="create_time" label="事件发生时间" align="left" min-width="140px">-->
+<!--        	<template slot-scope="scope">-->
+<!--        		{{ scope.row.event_time }}-->
+<!--        	</template>-->
+<!--        </el-table-column>-->
+<!--        <el-table-column prop="source_type" label="来源" align="left" width="140px">-->
+<!--          <template slot-scope="scope">-->
+<!--            <span v-show="scope.row.source_type == 1">积分奖扣 <span v-if="scope.row.recorder_name">({{scope.row.recorder_name}})</span></span>-->
+<!--            <span v-show="scope.row.source_type == 2">任务</span>-->
+<!--            <span v-show="scope.row.source_type == 3">积分系统分配</span>-->
+<!--            <span v-show="scope.row.source_type == 4">考勤系统分配</span>-->
+<!--            <span v-show="scope.row.source_type == 5">积分申请 <span v-if="scope.row.applyor_name">({{scope.row.applyor_name}})</span></span>-->
+<!--            <span v-show="scope.row.source_type == 6">绩效任务包</span>-->
+<!--            <span v-show="scope.row.source_type == 8">积分导入</span>-->
+<!--            <span v-show="scope.row.source_type == 9">A分转B分</span>-->
+<!--            <span v-show="scope.row.source_type > 9">其他</span>-->
+<!--          </template>-->
+<!--        </el-table-column>-->
+<!--        <el-table-column prop="create_time" label="录入时间" align="left" width="120px">-->
+<!--          <template slot-scope="scope">-->
+<!--            {{ cuttString(scope.row.create_time) }}-->
+<!--          </template>-->
+<!--        </el-table-column>-->
+<!--        <template slot="empty">-->
+<!--          <noData></noData>-->
+<!--        </template>-->
+<!--      </el-table>-->
+<!--      <center class="pagination">-->
+<!--        <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="total"-->
+<!--        ></el-pagination>-->
+<!--      </center>-->
+<!--    </div>-->
+
+<!--    <el-drawer title="事件详情" :visible.sync="detail_popup" ref="drawer" :with-header="false" :width="'500px'" direction="rtl">-->
+<!--      <div class="drawer_title">事件详情</div>-->
+<!--      <div class="detail_popup" v-loading="detail_loading" v-if="detail_info !== null">-->
+<!--        <el-row style="padding-bottom:10px;border-bottom:1px #f8f8f8 solid;">-->
+<!--          <el-col :span="24">-->
+<!--            <userImage :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;">{{ detail_info.employee_name }}</span>-->
+<!--            <span class="color_red point" v-show="detail_info.point >= 0">+{{ detail_info.point }} {{ $getTypsName(detail_info.pt_id) }}</span>-->
+<!--            <span class="color_green point" v-show="detail_info.point < 0">{{ detail_info.point }} {{ $getTypsName(detail_info.pt_id) }}</span>-->
+<!--          </el-col>-->
+<!--        </el-row>-->
+
+<!--        <el-row>-->
+<!--          <el-col :span="4">事件内容</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>-->
+<!--          <el-col :span="4">规则分类</el-col>-->
+<!--          <el-col :span="20">{{ detail_info.rule_list }}</el-col>-->
+<!--        </el-row>-->
+
+<!--        <el-row v-show="detail_info.rule_list">-->
+<!--          <el-col :span="4">发生时间</el-col>-->
+<!--          <el-col :span="20">{{ detail_info.date }}</el-col>-->
+<!--        </el-row>-->
+
+<!--        <el-row v-show="detail_info.source_type">-->
+<!--          <el-col :span="4">来源类型</el-col>-->
+<!--          <el-col :span="20">{{ returnStr(detail_info.source_type) }}</el-col>-->
+<!--        </el-row>-->
+
+<!--        <el-row v-show="detail_info.recorder_name">-->
+<!--          <el-col :span="4">记录人</el-col>-->
+<!--          <el-col :span="20">{{ detail_info.recorder_name }}</el-col>-->
+<!--        </el-row>-->
+
+<!--        <el-row v-show="detail_info.files !== null && detail_info.files.length > 0">-->
+<!--          <el-col :span="4">图片</el-col>-->
+<!--          <el-col :span="20">-->
+<!--            <el-image-->
+<!--              v-for="(item, index) in detail_info.files"-->
+<!--              :key="index"-->
+<!--              style="width: 100px; height: 100px;margin:1px"-->
+<!--              :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>-->
+<!--            <el-col :span="4">规则分类</el-col>-->
+<!--            <el-col :span="19">{{ detail_info.rule_list }}</el-col>-->
+<!--          </el-row>-->
+<!--          <el-row v-show="detail_info.rule_item_id">-->
+<!--            <el-col :span="4">积分规则</el-col>-->
+<!--            <el-col :span="19">{{ detail_info.rule_item.remark }}</el-col>-->
+<!--          </el-row>-->
+<!--          <el-row v-show="detail_info.rule_item_id">-->
+<!--            <el-col :span="4">规则积分</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"><Steps :process="detail_info.process"></Steps></div>-->
+<!--&lt;!&ndash;        <div v-if="!detail_info.is" class="red" style="text-align: center;">-->
+<!--          考勤积分暂不支持立即删除,请在-->
+<!--          <span class="blue">{{ detail_info.btnDate }}</span>-->
+<!--          后再操作删除此事件-->
+<!--        </div> &ndash;&gt;-->
+<!--      </div>-->
+<!--      <div class="drawer-footer flex-box-end flex-v-ce" v-show="noticeRole">-->
+<!--        <el-button @click="close_integral_event">取消</el-button>-->
+<!--        <el-button type="danger" @click="del_integral_event(detail_info)">删除</el-button>-->
+<!--      </div>-->
+<!--    </el-drawer>-->
+
+<!--    &lt;!&ndash; 导入数据 &ndash;&gt;-->
+<!--    <el-dialog title="导入积分事件数据" width="600px" :visible.sync="excelImportShow" :close-on-click-modal="false" :before-close="close_import">-->
+<!--      <div style="padding:0 50px;">-->
+<!--        <div class="align-center" style="margin-bottom:20px;">-->
+<!--          <p>-->
+<!--            1、下载积分事件模版,批量录入积分事件-->
+<!--            <el-button type="primary" @click="downloadTemplate" plain>下载模板</el-button>-->
+<!--          </p>-->
+<!--          <el-upload-->
+<!--            :limit="1"-->
+<!--            :headers="ATOKEN"-->
+<!--            ref="upload1"-->
+<!--            :action="integralUpload"-->
+<!--            :data="{ type: 'integral' }"-->
+<!--            :on-success="handlePictureCardPreview"-->
+<!--            :before-upload="beforeFilesUpload"-->
+<!--          >-->
+<!--            <p>-->
+<!--              2、上传积分事件数据Excel表-->
+<!--              <el-button type="primary" plain>选择文件</el-button>-->
+<!--            </p>-->
+<!--          </el-upload>-->
+<!--          <p>3、选择文件后点击下方【上传】按钮</p>-->
+<!--        </div>-->
+
+<!--        <div class="align-center" style="margin-bottom:20px; float:left; margin-left:10px;"></div>-->
+<!--        <div class="align-center" style="margin-bottom:20px; float:left; margin-left:10px;">&lt;!&ndash; <el-button type="primary" @click="downloadSheet">Excel导出</el-button> &ndash;&gt;</div>-->
+<!--        <div style="clear:both;"></div>-->
+<!--      </div>-->
+<!--      <div slot="footer" class="dialog-footer">-->
+<!--        <el-button @click="close_import">取 消</el-button>-->
+<!--        <el-button type="primary" @click="uploadFile(1)" :loading="update_btn" plain>上传</el-button>-->
+<!--      </div>-->
+<!--    </el-dialog>-->
+
+<!--    <el-dialog :close-on-click-modal="false" title="导入结果" :visible.sync="importErrorInfoShow" width="30%">-->
+<!--      <div>-->
+<!--        <el-table :data="error_list" border stripe>-->
+<!--          <el-table-column prop="name" label="备注信息">-->
+<!--            <template slot-scope="scope">-->
+<!--              {{ scope.row }}-->
+<!--            </template>-->
+<!--          </el-table-column>-->
+<!--        </el-table>-->
+<!--      </div>-->
+<!--      <span slot="footer"><el-button type="primary" @click="importErrorInfoShow = false">确 定</el-button></span>-->
+<!--    </el-dialog>-->
+
+<!--    <el-dialog title="轮播排名" :visible.sync="swiperShow" width="500px">-->
+<!--      <div>-->
+<!--        <el-form :inline="true">-->
+<!--          <div style="color:rgb(122 202 126);font-size: 13px;padding:5px 0 20px 0">设置后,相关排名信息可在各类智能终端屏幕上的网页浏览器滚屏展示</div>-->
+<!--          <el-form-item label="展示标题">-->
+<!--            <el-input-->
+<!--              type="textarea"-->
+<!--              :autosize="{ minRows: 2, maxRows: 6 }"-->
+<!--              v-model="titleVals"-->
+<!--              placeholder="请输入标题"-->
+<!--              maxlength="20"-->
+<!--              show-word-limit-->
+<!--              style="width: 341px"-->
+<!--            ></el-input>-->
+<!--          </el-form-item>-->
+<!--        </el-form>-->
+<!--        <el-row>-->
+<!--          <el-col :span="4" style="line-height: 36px;">&nbsp;&nbsp;&nbsp;显示最新</el-col>-->
+<!--          <el-col :span="6">-->
+<!--            <el-select v-model="page_size" placeholder="请选择">-->
+<!--              <el-option v-for="item in swiperPageList" :key="item.value" :label="item.value" :value="item.value"></el-option>-->
+<!--            </el-select>-->
+<!--          </el-col>-->
+<!--          <el-col :span="6" style="line-height: 36px;">条积分事件来轮播</el-col>-->
+<!--        </el-row>-->
+<!--      </div>-->
+<!--      <span slot="footer">-->
+<!--        <el-button @click="swiperShow = false">取 消</el-button>-->
+<!--        <router-link :to="{ path: '/deptRankSwiper?' + '&page=1&page_size=' + this.page_size + '&types=1&companyName='+titleVals }" target="_blank">-->
+<!--          <el-button type="primary">开始轮播</el-button>-->
+<!--        </router-link>-->
+<!--      </span>-->
+<!--    </el-dialog>-->
+
+<!--&lt;!&ndash;  发起申诉  &ndash;&gt;-->
+<!--    <AppealCreate-->
+<!--      :visible.sync="showAppealCreate"-->
+<!--      :events="appealSelectionEvents"-->
+<!--      @createFinish="onAppealCreateFinish"-->
+<!--    />-->
+
+<!--    &lt;!&ndash;  申诉详情  &ndash;&gt;-->
+<!--    <el-drawer-->
+<!--      :with-header="false"-->
+<!--      :visible.sync="showAppealDetail"-->
+<!--      size="500px"-->
+<!--      direction="rtl"-->
+<!--      :show-close="false"-->
+<!--      :wrapper-closable="true"-->
+<!--      @close="handleAppealClose"-->
+<!--      @closed="handleAppealClosed"-->
+<!--      @opened="handleAppealOpen"-->
+<!--    >-->
+<!--      <AppealPopup ref="appealInfo" :id="appeal.id" @update:appeal="onAppealUpdate"/>-->
+<!--    </el-drawer>-->
+<!--  </div>-->
 </template>
 <script>
 import moment from 'moment';
 import Steps from '@/components/Steps.vue';
 import AppealCreate from "../../../components/AppealCreate.vue";
 import AppealPopup from "../common/AppealPopup.vue";
+import Template from "../../../examine/components/Template.vue";
 export default {
   data() {
     return {
@@ -468,10 +824,12 @@ export default {
       showAppealCreate:false,
       appeal:{id:0},
       showAppealDetail:false,
-      appealEnable:false
+      appealEnable:false,
+      activeCollapseName:['search'],
+      // tableMaxHeight:680
     };
   },
-  components: {AppealPopup, AppealCreate, Steps},
+  components: {Template, AppealPopup, AppealCreate, Steps},
   created() {
       this.process=process.env.NODE_ENV
       this.deriveRestrict()
@@ -547,7 +905,13 @@ export default {
     	})
     },
     isSelectable(row, index) {
-      return row.is;
+      if (this.noticeRole) {
+        /*指点管理员*/
+        return row.is;
+      }else {
+        /*非指定管理员*/
+        return row.employee_id === this.userInfo.id
+      }
     },
     ruleautomatic() {
       let list = this.automaticIntegration;
@@ -730,6 +1094,7 @@ export default {
       return data;
     },
     open_detail(item) {
+      console.log(item)
       let self = this;
       self.detail_popup = true;
       let data = {
@@ -880,6 +1245,14 @@ export default {
           }
         })
     },
+  },
+  computed:{
+    tableMaxHeight(){
+      return this.activeCollapseName.includes('search') ? 530 : 710
+    },
+    headerMaxHeight(){
+      return this.activeCollapseName.includes('search') ? '300' : '50'
+    }
   }
 };
 </script>
@@ -991,9 +1364,18 @@ span.point {
 /deep/ .el-dialog__body {
   padding: 0px 20px 30px;
 }
-</style>
-<style lang="scss">
-  .el-tooltip__popper{
-    max-width: 800px;
-  }
+.el-tooltip__popper{
+  max-width: 800px;
+}
+
+.el-header{
+  padding: 0;
+}
+.el-main{
+  padding: 0;
+}
+.el-footer{
+  padding: 0;
+  background-color: white;
+}
 </style>

+ 176 - 38
src/point/views/workbench/approval_list.vue

@@ -2,10 +2,16 @@
   <div>
     <div class="box boxMinHeight" style="position: relative;">
         <span class="blue cursor" style="position: absolute;top: 30px;right: 20px;z-index: 2000;" @click="$openUrl(10)"><i class="el-icon-question" style="padding-right: 5px;font-size: 16px;position: relative;top: 1px;"></i>审批流程说明</span>
-      <el-tabs v-model="formData.type"><el-tab-pane v-for="(item, index) in tabsOption" :key="index" :label="item.label" :name="item.name"></el-tab-pane></el-tabs>
+      <el-tabs v-model="formData.type">
+        <el-tab-pane v-for="(item,index) in tabsOption" :key="index" :name="item.name">
+          <template slot="label">
+            <el-tooltip placement="top" :content="item.desc"><span>{{item.label}}</span></el-tooltip>
+          </template>
+        </el-tab-pane>
+      </el-tabs>
       <el-form ref="formData" :inline="true" :model="formData" label-width="80px">
-        <el-form-item label="工作类型">
-          <el-select v-model="formData.source_type" placeholder="请选择排序">
+        <el-form-item label="审批来源">
+          <el-select v-model="formData.source_type" placeholder="请选择来源">
             <el-option v-for="item in sourceList" :key="item.id" :label="item.name" :value="item.id"></el-option>
           </el-select>
         </el-form-item>
@@ -19,31 +25,75 @@
         </el-select>
       </el-form>
 
-      <div v-if="formData.type == 'waiting'">
-        <el-table :data="list" style="width: 100%; cursor: pointer;" v-loading="loading" class="listTable" @row-click="openDetail">
-          <el-table-column label="审批标题" prop="task_name">
+      <div v-if="formData.type === 'waiting'">
+        <el-table
+          :data="list"
+          style="width: 100%;"
+          v-loading="loading"
+          class="listTable"
+          max-height="600"
+        >
+          <el-table-column label="人员信息" prop="employee_name" fixed width="200">
+            <template slot-scope="scope">
+              <el-popover
+                title="人员信息"
+                placement="top"
+                trigger="click"
+                popper-class="popperSPBOX"
+              >
+                <el-descriptions
+                  :column="1"
+                  size="mini"
+                  :label-style="{width: '100px'}"
+                  :content-style="{width: '100px'}"
+                  border
+                >
+                  <el-descriptions-item label="发起人">{{scope.row.applyor_name}}</el-descriptions-item>
+                  <el-descriptions-item label="受益人">{{scope.row.employee_name}}</el-descriptions-item>
+                  <el-descriptions-item label="流程审批人">{{scope.row.last_reviewer_name}}</el-descriptions-item>
+                </el-descriptions>
+                <div style="cursor: pointer;" slot="reference">
+                  <userImage class="fl" width="50px" height="50px" :id="scope.row.employee_id" :user_name="scope.row.employee_name" :img_url="scope.row.employee_img_url"></userImage>
+                  <span class="tableTitle">{{scope.row.employee_name}}</span>
+                </div>
+              </el-popover>
+            </template>
+          </el-table-column>
+          <el-table-column label="来源" prop="source_type" width="100" fixed>
             <template slot-scope="scope">
-              <userImage class="fl" width="50px" height="50px" :id="scope.row.employee_id" :user_name="scope.row.employee_name"></userImage>
-              <span class="tableTitle" v-show="scope.row.source_type == 1">{{ scope.row.employee_name }}的积分任务</span>
-              <span class="tableTitle" v-show="scope.row.source_type == 2">{{ scope.row.employee_name }}的积分申请</span>
-              <span class="tableTitle" v-show="scope.row.source_type == 3">{{ scope.row.employee_name }}的积分奖扣</span>
-              <span class="tableTitle" v-show="scope.row.source_type == 4">{{ scope.row.employee_name }}的绩效工作</span>
+              <el-tag :type="sourceTypeTag(scope.row.source_type)">{{sourceMap[scope.row.source_type] || '--'}}</el-tag>
             </template>
           </el-table-column>
-          <el-table-column label="审批内容" prop="remark.rule">
+          <el-table-column label="审批内容" prop="remark.rule" width="500">
             <template slot-scope="scope">
-              <el-popover trigger="hover" placement="top" popper-class="popperSPBOX">
+              <el-popover trigger="click" placement="top" popper-class="popperSPBOX">
                 <span>{{ scope.row.remark.customize || scope.row.remark.rule }}</span>
-                <div slot="reference" class="name-wrapper" style="width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">
+                <div slot="reference" class="name-wrapper" style="width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor: pointer;">
                   <span>{{ scope.row.remark.customize || scope.row.remark.rule }}</span>
                 </div>
               </el-popover>
             </template>
           </el-table-column>
-          <el-table-column label="时间" prop="event_time" width="150"></el-table-column>
-          <el-table-column label="操作" prop="owner_id" width="80">
+          <el-table-column label="时间" prop="event_time" width="150">
+            <template slot-scope="scope">
+              <i class="el-icon-time"></i>
+              <span style="margin-left: 10px">{{ scope.row.event_time }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="申请分" prop="point" width="150">
+            <template slot-scope="scope">
+              <template v-if="scope.row.point !== 0">
+                <span v-show="scope.row.point < 0" class="green">{{ scope.row.point }} {{ $getTypsName(scope.row.pt_id) }}</span>
+                <span v-show="scope.row.point >= 0" class="red">+{{ scope.row.point }} {{ $getTypsName(scope.row.pt_id) }}</span>
+              </template>
+              <template v-else>
+                <span>--</span>
+              </template>
+            </template>
+          </el-table-column>
+          <el-table-column label="操作" prop="owner_id" fixed="right">
             <template slot-scope="scope">
-              <el-button type="text">审批</el-button>
+              <el-button type="text" @click="openDetail(scope.row)">审批</el-button>
             </template>
           </el-table-column>
           <template slot="empty">
@@ -53,37 +103,93 @@
       </div>
 
       <div v-if="formData.type == 'reviewed'">
-        <el-table :data="list" style="width: 100%; cursor: pointer;" v-loading="loading" class="listTable" @row-click="openDetail">
-          <el-table-column label="审批标题" prop="task_name">
+        <el-table
+          :data="list"
+          style="width: 100%;"
+          v-loading="loading"
+          class="listTable"
+          max-height="600"
+        >
+          <el-table-column label="人员信息" prop="employee_name" fixed width="200">
+            <template slot-scope="scope">
+              <el-popover
+                title="人员信息"
+                placement="top"
+                trigger="click"
+              >
+                <el-descriptions
+                  :column="1"
+                  popper-class="popperSPBOX"
+                  size="mini"
+                  :label-style="{width: '100px'}"
+                  :content-style="{width: '100px'}"
+                  style="width: 200px"
+                  border
+                >
+                  <el-descriptions-item label="发起人">{{scope.row.applyor_name}}</el-descriptions-item>
+                  <el-descriptions-item label="受益人">{{scope.row.employee_name}}</el-descriptions-item>
+                  <el-descriptions-item label="流程审批人">{{scope.row.last_reviewer_name}}</el-descriptions-item>
+                </el-descriptions>
+                <div style="cursor: pointer;" slot="reference">
+                  <userImage class="fl" width="50px" height="50px" :id="scope.row.employee_id" :user_name="scope.row.employee_name"></userImage>
+                  <span class="tableTitle">{{scope.row.employee_name}}</span>
+                </div>
+              </el-popover>
+            </template>
+          </el-table-column>
+          <el-table-column label="来源" prop="source_type" width="100">
             <template slot-scope="scope">
-              <userImage class="fl" width="50px" height="50px" :id="scope.row.employee_id" :user_name="scope.row.employee_name"></userImage>
-              <span class="tableTitle" v-show="scope.row.source_type == 1">{{ scope.row.employee_name }}的积分任务</span>
-              <span class="tableTitle" v-show="scope.row.source_type == 2">{{ scope.row.employee_name }}的积分申请</span>
-              <span class="tableTitle" v-show="scope.row.source_type == 3">{{ scope.row.employee_name }}的积分奖扣</span>
-              <span class="tableTitle" v-show="scope.row.source_type == 4">{{ scope.row.employee_name }}的绩效工作</span>
+              <el-tag :type="sourceTypeTag(scope.row.source_type)">{{sourceMap[scope.row.source_type] || '--'}}</el-tag>
             </template>
           </el-table-column>
-          <el-table-column label="审批内容" prop="remark.rule">
+          <el-table-column label="审批内容" prop="remark.rule" width="300">
             <template slot-scope="scope">
-              <el-popover trigger="hover" placement="top" popper-class="popperSPBOX">
+              <el-popover trigger="click" placement="top" popper-class="popperSPBOX">
                 <span>{{ scope.row.remark.customize || scope.row.remark.rule }}</span>
-                <div slot="reference" class="name-wrapper" style="width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">
+                <div slot="reference" class="name-wrapper" style="width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor: pointer;">
                   <span>{{ scope.row.remark.customize || scope.row.remark.rule }}</span>
                 </div>
               </el-popover>
             </template>
           </el-table-column>
-          <el-table-column label="时间" prop="event_time" width="150"></el-table-column>
-          <el-table-column label="积分" prop="review_point" width="120">
+          <el-table-column label="时间" prop="event_time" width="150">
+            <template slot-scope="scope">
+              <i class="el-icon-time"></i>
+              <span style="margin-left: 10px">{{ scope.row.event_time }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="申请分" prop="point" width="150">
+            <template slot-scope="scope">
+              <template v-if="scope.row.point !== 0">
+                <span v-show="scope.row.point < 0" class="green">{{ scope.row.point }} {{ $getTypsName(scope.row.pt_id) }}</span>
+                <span v-show="scope.row.point >= 0" class="red">+{{ scope.row.point }} {{ $getTypsName(scope.row.pt_id) }}</span>
+              </template>
+              <template v-else>
+                <span>--</span>
+              </template>
+            </template>
+          </el-table-column>
+          <el-table-column label="最终分" prop="review_point" width="150">
+            <template slot-scope="scope">
+              <template v-if="scope.row.review_point !== 0">
+                <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 v-else>
+                <span>--</span>
+              </template>
+            </template>
+          </el-table-column>
+          <el-table-column label="流程状态" prop="status" >
             <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>
+<!--              <span v-show="scope.row.status == 1" class="color_green">审批通过</span>-->
+<!--              <span v-show="scope.row.status == 2" class="color_red">审批驳回</span>-->
+              <el-tag :type="statusType(scope.row.review_status)">{{statusMap[scope.row.review_status] || '--'}}</el-tag>
             </template>
           </el-table-column>
-          <el-table-column label="状态" prop="status" width="80">
+          <el-table-column label="操作" prop="owner_id" fixed="right">
             <template slot-scope="scope">
-              <span v-show="scope.row.status == 1" class="color_green">审批通过</span>
-              <span v-show="scope.row.status == 2" class="color_red">审批驳回</span>
+              <el-button type="text" @click="openDetail(scope.row)">审批详情</el-button>
             </template>
           </el-table-column>
           <template slot="empty">
@@ -111,6 +217,7 @@
 
 <script>
 import examinePopup from '@/point/views/common/examinePopup';
+import Template from "../../../examine/components/Template.vue";
 
 export default {
   data() {
@@ -124,16 +231,28 @@ export default {
         page: 1
       },
       total: null,
-      list: null,
+      list: [],
       loading: false,
       point_types: null,
       employee_map: this.$getEmployeeMap(),
-      tabsOption: [{ label: '待我审批', name: 'waiting' }, { label: '我已审批', name: 'reviewed' }],
+      tabsOption: [{ label: '待审批', name: 'waiting' ,desc:"等待您处理的申请记录,请及时处理"}, { label: '参与审批', name: 'reviewed' ,desc:"参与过审批的记录,可用于跟进审批结果"}],
       detailShow: false,
       detail_id: null,
       sourceList: [{ name: '全部', id: '0' }, { name: '积分任务', id: '1' }, { name: '积分申请', id: '2' }, { name: '积分奖扣', id: '3' }
       // { name: '绩效工作', id: '4' },
-      ]
+      ],
+      statusMap:{
+        0:'待审核',
+        1:'审核通过',
+        2:'拒绝',
+        3:'驳回重填',
+        4:'重填',
+      },
+      sourceMap:{
+        1:'任务',
+        2:'申请',
+        3:'积分奖扣',
+      }
     };
   },
   watch: {
@@ -157,12 +276,31 @@ export default {
       this.get_list();
     }
   },
-  components: { examinePopup },
+  components: {Template, examinePopup },
   mounted() {
     this.get_list();
     this.point_types = this.getPointTypes();
   },
   methods: {
+    sourceTypeTag(sourceType){
+      const map = {
+        1:'info',
+        2:'success',
+        3:'warning',
+      }
+      return map[sourceType] || 'info'
+    },
+    statusType(status){
+      if (status === -1) return 'info'
+      const map = {
+        0:'warning',
+        1:'success',
+        2:'danger',
+        3:'danger',
+        4:'info',
+      }
+      return map[status] || 'info'
+    },
     openDetail(item) {
       this.detail_id = item.id;
       this.detailShow = true;

+ 1 - 1
src/point/views/workbench/task/allTask.vue

@@ -40,7 +40,7 @@
             </template>
           </el-table-column>
           <el-table-column label="截止时间" prop="expire_time" sortable="custom"></el-table-column>
-          <el-table-column label="操作" prop="owner_id">
+          <el-table-column label="操作" prop="owner_id" fixed="right" >
             <template slot-scope="scope">
               <el-link type="primary" :underline="false" @click.stop="openDetail(scope.row)" class="blue">查看任务</el-link>
               <el-link

+ 18 - 9
src/point/views/workbench/task/my_task.vue

@@ -14,15 +14,20 @@
         </el-form-item>
       </el-form>
 
-      <div v-if="formData.status == 'running'">
+      <div v-if="['running','rewrite'].includes(formData.status)">
         <el-radio-group v-model="formData.today" style="margin-bottom: 20px;">
           <el-radio-button label="0">全部任务</el-radio-button>
           <el-radio-button label="1">今日任务</el-radio-button>
           <el-radio-button label="2">逾期任务</el-radio-button>
           <el-radio-button label="3">其他任务</el-radio-button>
         </el-radio-group>
-        <el-table :data="list" style="width: 100%" v-loading="loading" @row-click="openDetail">
-          <el-table-column label="任务内容" prop="task_name" show-overflow-tooltip></el-table-column>
+        <el-table
+          :data="list"
+          style="width: 100%"
+          v-loading="loading"
+          @row-click="openDetail"
+        >
+          <el-table-column label="任务内容" prop="task_name" show-overflow-tooltip fixed width="300"></el-table-column>
           <el-table-column label="积分" width="120">
             <template slot-scope="scope">
               <span v-if="scope.row.point_config.review_point != 0" class="red">{{ scope.row.point_config.review_point }} {{ scope.row.pt_name }}</span>
@@ -30,7 +35,7 @@
             </template>
           </el-table-column>
           <el-table-column label="截止时间" prop="expire_time" width="200"></el-table-column>
-          <el-table-column label="操作" prop="owner_id" width="120">
+          <el-table-column label="操作" prop="owner_id" fixed="right">
             <template slot-scope="scope">
               <el-link type="primary" @click.stop="completeBtn(scope.row)">完成任务</el-link>
             </template>
@@ -51,7 +56,7 @@
             </template>
           </el-table-column>
           <el-table-column label="截止时间" prop="expire_time" width="200"></el-table-column>
-          <el-table-column label="状态" prop="review_status" width="120">
+          <el-table-column v-if="formData.status !== 'rewrite'" label="状态" prop="review_status" width="120">
             <template slot-scope="scope">
               <div class="orange" v-if="scope.row.review_status == 0">待处理</div>
               <div class="green" v-if="scope.row.review_status == 1">已通过</div>
@@ -100,13 +105,14 @@
 
 <script>
 import taskDetailsPopup from '@/point/views/common/taskDetailsPopup';
+import Template from "../../../../examine/components/Template.vue";
 
 export default {
   name: 'my_task',
   data() {
     return {
       active: 'running',
-      tabsOption: [{ label: '待完成', name: 'running' }, { label: '待审批', name: 'complete' }, { label: '已审批', name: 'reviewed' }],
+      tabsOption: [{ label: '驳回重做', name: 'rewrite' },{ label: '待完成', name: 'running' }, { label: '待审批', name: 'complete' }, { label: '已审批', name: 'reviewed' }],
       list: [],
       loading: false,
       total: null,
@@ -117,7 +123,7 @@ export default {
         remark: ''
       },
       formData: {
-        status: 'running',
+        status: 'rewrite',
         pt_id: 0,
         sort: 'publish',
         today: '0',
@@ -125,15 +131,18 @@ export default {
         page_size: 10
       },
       completeShow: false,
-      showDetailPopup: false,
       detailId: null,
       showDetailPopup: false,
       showRepetitiveTasksPopup: false,
       showRewardTaskDetailsPopup: false,
       tabPosition:'0',
+      statusMap:{
+        1:'待处理',
+
+      }
     };
   },
-  components: { taskDetailsPopup },
+  components: {Template, taskDetailsPopup },
   watch: {
     'formData.today'(val){
       this.formData.page = 1;