瀏覽代碼

奖扣查询/审批详情/积分事件列表

walter 11 月之前
父節點
當前提交
c229f231d5

+ 10 - 2
src/components/DeptSelectorBtn.vue

@@ -1,8 +1,8 @@
 <template>
-  <van-button @click="show_dept_selector = true">
+  <van-button @click="show_dept_selector = true" :block="block" >
     <template v-if="selected_data.dept.length > 0">
       {{ selected_data.dept[0].dept_name }}
-      <van-icon name="arrow-down" />
+      <van-icon name="close" @click.stop="clearDept"/>
     </template>
     <template v-if="selected_data.dept.length == 0">
       {{ title }}
@@ -55,6 +55,10 @@ export default {
     max: {
       type: Number,
       default: 0
+    },
+    block:{
+      type: Boolean,
+      default: false
     }
   },
   watch: {
@@ -74,6 +78,10 @@ export default {
   methods: {
     confirm(data) {
       this.$emit('value', data.dept);
+    },
+    clearDept(){
+      this.selected_data = { dept: [], employee: [] };
+      this.$emit('value',this.selected_data.dept)
     }
   },
   created() {

+ 1 - 1
src/components/EmployeeSelector.vue

@@ -475,7 +475,7 @@ export default {
            return false
         }
       }
-      console.log(this.dept_selected_list)
+      // console.log(this.dept_selected_list)
       this.$emit('confirm', {
         employee: this.employee_selected_list,
         dept: this.dept_selected_list

+ 4 - 3
src/point/view/integral/approval_process.vue

@@ -12,7 +12,6 @@
         <userImage :user_name="item.name" :id="0" :img_url="item.img_url"></userImage>
       </template>
       <template slot="title">
-        <span class="process-item__name">{{ item.name }}</span>
         <span class="process-item__remark" v-if="item.remark == '申请人'">{{ item.remark }}</span>
         <span class="process-item__remark" v-else :class="{orange:item.remark == '待审核',green:item.remark == '审核通过',red:item.remark == '审核驳回','color-FF9600': item.remark == '待处理','color-F56C6C':item.remark == '驳回'}">
           {{ item.remark }}
@@ -24,8 +23,10 @@
       </template>
       <template slot="label">
         <span class="datetime">{{ item.time }}</span>
-        <div v-if="item.remark != '申请人'" style="color: #323233;font-size: 0.28rem;margin-top: 0.12rem;">{{ item.review_remark }}</div>
-        <div class="h40"></div>
+        <van-cell title="姓名" :value="item.name" />
+        <van-cell title="申请分值" :value="item.point ? item.point : ''" />
+        <van-cell title="审批分值" :value="item.review_point ? item.review_point : ''" v-if="item.remark !== '发起'" />
+        <van-cell title="备注" :value="item.review_remark" v-if="item.review_remark" />
       </template>
     </van-cell>
 

+ 25 - 3
src/point/view/integral/event_list.vue

@@ -5,8 +5,9 @@
     <van-dropdown-menu>
       <van-dropdown-item :title="dateItemTitle" ref="dateDropdownItem"><DateSelectorDropdown :title.sync="dateItemTitle" @onConfirm="onConfirmDate" /></van-dropdown-item>
       <van-dropdown-item :title="deptDropdownItemTitle" ref="deptDropdownItem"><DeptSelectorDropdown @onConfirm="onConfirmDept" /></van-dropdown-item>
-      <van-dropdown-item title="规则分类" ref="ruleDropdownItem"><RuleCategorySelDropdown @onConfirm="onConfirmRule" @onCancel="searchParams.rule_id = null"/></van-dropdown-item>
+      <van-dropdown-item title="规则" ref="ruleDropdownItem"><RuleCategorySelDropdown @onConfirm="onConfirmRule" @onCancel="searchParams.rule_id = null"/></van-dropdown-item>
       <van-dropdown-item :title="pointTypeDropdownItemTitle" :options="pointTypeOption" v-model="pointType" @change="onChangePointType" />
+      <van-dropdown-item v-model="searchParams.add_subtract"  :options="[{text:'全部',value:0},{text:'奖分',value: 1},{text:'扣分',value: 2}]" ><van-icon name="list-switch" slot="title" size="1.5em" /></van-dropdown-item>
     </van-dropdown-menu>
     <div class="event-list__content">
       <scroller ref="scroller" :on-refresh="refresh" :on-infinite="infinite" noDataText="我也是有底线的" :list="eventData">
@@ -77,10 +78,25 @@ export default {
         page_size: 10,
         rule_id: null,
         pt_id: pointTypeId,
-        keyword: ''
+        keyword: '',
+        add_subtract:0
       },
       types_list: {},
-      month: moment().format('YYYY-MM')
+      month: moment().format('YYYY-MM'),
+      add_subtract_items: [
+        {
+          value: '全部',
+          id: 0
+        },
+        {
+          value: '奖分',
+          id: 1
+        },
+        {
+          value: '扣分',
+          id: 2
+        },
+      ]
     };
   },
   components: {
@@ -226,6 +242,12 @@ export default {
           callback && callback();
         });
     }
+  },
+  watch: {
+    'searchParams.add_subtract'(val,oVal){
+      this.searchParams.page = 1;
+      this.$refs.scroller.triggerPullToRefresh();
+    }
   }
 };
 </script>

+ 2 - 2
src/point/view/integral/manager_reward_deduction.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="mrd-container">
-   <van-nav-bar title="管理者奖扣" left-text="返回" @click-left="$route_back" left-arrow>
+   <van-nav-bar title="奖扣目标" left-text="返回" @click-left="$route_back" left-arrow>
       <div class="department" slot="right">
         <DeptSelectorBtn title="选择部门" v-model="dept" :multi="false"></DeptSelectorBtn>
       </div>
@@ -168,7 +168,7 @@ export default {
         complete:this.checkedAllStandard? 1:0
       };
       this.$socketApiTow.sendData(params,(res)=>{
-      	if (res.code == 1&&res.type=='es') {
+      	if (res.code === 1&&res.type === params.type) {
             let list=res.result.list;
             if (this.searchParams.page === 1) {
               this.list = list

+ 336 - 0
src/point/view/integral/reward_deduction_search.vue

@@ -0,0 +1,336 @@
+
+
+<template>
+  <div class="mrd-container">
+    <van-nav-bar title="奖扣信息" left-text="返回" @click-left="$route_back" left-arrow />
+    <van-notice-bar color="#1989fa" background="#ecf9ff" left-icon="info-o" mode="closeable">
+      管理者奖扣任务均为B分,对A分不做要求
+    </van-notice-bar>
+    <van-cell-group>
+      <DeptSelectorBtn title="选择部门" v-model="dept" :multi="false" :block="true"></DeptSelectorBtn>
+      <van-cell title="姓名" :value="searchForm.keyword" @click="showKeyword = true" :center="true" >
+        <van-icon name="arrow" slot="right-icon" v-if="!searchForm.keyword" />
+        <van-icon name="close" slot="right-icon" v-else style="margin-left: 10px" color="#646464" @click.stop="searchForm.keyword = ''" />
+      </van-cell>
+      <van-cell title="时间" :value="timeScopeText" is-link @click="showTimeScope = true" />
+    </van-cell-group>
+
+    <div class="mrd-content">
+      <scroller
+        ref="scroller"
+        :on-refresh="onRefresh"
+      >
+        <div class="mrd-list__item" v-for="item in dataList" :key="item.id" >
+          <div class="mrd-item__header">
+            <span>{{ item.name }}</span>
+          </div>
+          <div class="mrd-item__content">
+            <div class="mrd-item">
+              <span class="mrd-item__value">{{ item.reward_point}}</span>
+              <span class="mrd-item__label">奖分</span>
+            </div>
+            <div class="mrd-item">
+              <span class="mrd-item__value">{{ item.deduction_point}}</span>
+              <span class="mrd-item__label">扣分</span>
+            </div>
+            <div class="mrd-item">
+              <span class="mrd-item__value black-color">{{ item.ratio ? item.ratio : '--' }}</span>
+              <span class="mrd-item__label">奖扣比例</span>
+            </div>
+            <div class="mrd-item">
+              <span class="mrd-item__value black-color">{{ item.exec}}</span>
+              <span class="mrd-item__label">奖扣人次</span>
+            </div>
+          </div>
+        </div>
+        <noData :list="dataList" />
+
+      </scroller>
+    </div>
+
+
+<!--  姓名输入  -->
+    <van-dialog
+      v-model="showKeyword"
+      :close-on-click-overlay="true"
+      @confirm="searchForm.keyword = keyword"
+    >
+      <van-field label="姓名" placeholder="请数去用户名" v-model="keyword"></van-field>
+    </van-dialog>
+<!--  日期区间选择  -->
+    <van-calendar
+      v-model="showTimeScope"
+      type="range"
+      :allow-same-day="true"
+      :min-date="minDate"
+      :max-date="maxDate"
+      :default-date="timeScope"
+      :show-confirm="false"
+      color="#26A2FF"
+      @close="calendarClose"
+      @confirm="calendarConfirm"
+    />
+
+  </div>
+
+</template>
+
+
+<script>
+import Vue from 'vue'
+import moment from 'moment'
+import {Calendar, Empty, NoticeBar} from 'vant'
+import DeptSelectorBtn from '@/components/DeptSelectorBtn'
+import {_debounce } from '@/utils/auth'
+Vue.use(Empty).use(Calendar).use(NoticeBar)
+export default {
+  name: 'reward_deduction_search',
+  components:{DeptSelectorBtn},
+  data(){
+
+
+    let today = new Date();
+    let minDate = new Date();
+    minDate.setTime(today.getTime() - 3600 * 1000 * 24 * 30 * 6);
+    let maxDate = new Date(today.getFullYear(),today.getMonth(),1);
+    maxDate.setMonth(maxDate.getMonth() + 1);
+    maxDate.setDate(0);
+
+    let startDate = new Date();
+    startDate.setTime(today.getTime() - 3600 * 1000 * 24 * 7);
+    startDate = moment(startDate).format('YYYY-MM-DD');
+    let endDate = moment(today).format('YYYY-MM-DD');
+
+    return{
+      dept:[],
+      searchForm:{
+        startDate:startDate,
+        endDate:endDate,
+        deptId:0,
+        keyword:'',
+        page:1,
+        pageSize:10
+      },
+      showKeyword:false,
+      keyword:'',
+      showTimeScope:false,
+      timeScope:[new Date(startDate),new Date(endDate)],
+      minDate:minDate,
+      maxDate:maxDate,
+      dataList:[],
+      isLoading:false,
+      isFinished:true
+    }
+  },
+  watch:{
+    dept(val){
+      if (Array.isArray(val) && val.length > 0) {
+        this.searchForm.deptId = val[0].dept_id
+      } else {
+        this.searchForm.deptId = 0
+      }
+    },
+    timeScope(val){
+      this.searchForm.startDate = moment(val[0]).format('YYYY-MM-DD');
+      this.searchForm.endDate = moment(val[1]).format('YYYY-MM-DD');
+    },
+    'searchForm.deptId'(val,oVal){
+      if (val === oVal) return;
+      this.$refs.scroller.triggerPullToRefresh();
+    },
+    'searchForm.keyword'(val,oVal){
+      if (val === oVal) return;
+      this.$refs.scroller.triggerPullToRefresh();
+    },
+    'searchForm.startDate'(){
+      this.$refs.scroller.triggerPullToRefresh();
+    },
+    'searchForm.endDate'(){
+      this.$refs.scroller.triggerPullToRefresh();
+    },
+  },
+  computed:{
+    timeScopeText(){
+      return moment(this.searchForm.startDate).format('MM/DD') + '-' + moment(this.searchForm.endDate).format('MM/DD')
+    }
+  },
+  methods:{
+    calendarClose(){
+      this.showTimeScope = false;
+    },
+    calendarConfirm(event){
+      const [start,end] = event;
+      this.timeScope = [start,end];
+      this.showTimeScope = false;
+    },
+    onRefresh(done){
+      if (!this.searchForm.startDate || !this.searchForm.endDate) {
+        done();
+        return;
+      }
+      let msg = {
+        type:'ess',
+        dept_id: this.searchForm.deptId,
+        employee_id:this.$userInfo().id,
+        start_date: this.searchForm.startDate,
+        end_date: this.searchForm.endDate,
+        keyword: this.searchForm.keyword,
+        page:0,
+        page_size:10
+      }
+      this.$socketApiTow.sendData(msg,(res)=>{
+        if (res.code !== 1 || res.type !== msg.type){
+          done();
+          return;
+        }
+        this.dataList = res.result.list;
+        done();
+      })
+    },
+  }
+}
+
+</script>
+
+<style scoped lang="less">
+.mrd-container {
+  & /deep/ .department .van-button {
+    background-color: transparent;
+    border: none;
+    color: #fff;
+    max-width: 2.5rem;
+    padding: 0;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+  }
+
+  & .mrd-filter__wrap {
+    position: relative;
+    padding: 0.15rem 0.32rem;
+
+    & /deep/ .van-checkbox__label {
+      font-size: 0.28rem;
+      color: #909399;
+    }
+
+    & /deep/ .van-checkbox__icon {
+      position: relative;
+      top: -0.05em;
+    }
+  }
+
+  & .mrd-content {
+    position: relative;
+    height: calc(100% - 4.6rem);
+  }
+
+  & .mrd-list__item {
+    margin-bottom: 0.24rem;
+    padding: 0 0.32rem 0.32rem 0.32rem;
+    font-size: 0.32rem;
+    color: #303133;
+    background: #fff;
+    touch-action: none;
+
+    & .mrd-item__header {
+      display: flex;
+      padding: 0.24rem 0;
+      align-items: center;
+
+      & .mrd-item__icon {
+        display: flex;
+        margin-right: 0.16rem;
+        width: 0.56rem;
+        height: 0.56rem;
+        font-size: 0.24rem;
+        color: #fff;
+        background: #26a2ff;
+        align-items: center;
+        justify-content: center;
+        border-radius: 100%;
+      }
+
+      & .mrd-item__standard {
+        margin-left: 0.2rem;
+        padding: 0.02rem 0.08rem;
+        font-size: 0.24rem;
+        color: #fff;
+        background: #53B87F;
+        border-radius: 0.06rem;
+      }
+    }
+
+    & .mrd-item__content {
+      display: flex;
+      flex-direction: row;
+
+      & .mrd-item {
+        display: flex;
+        flex: 1;
+        align-items: center;
+        justify-content: center;
+        flex-direction: column;
+
+        & /deep/ .icon-doubt {
+          position: absolute;
+          top: 0.13rem;
+          right: -0.3rem;
+        }
+
+        & .mrd-item__value {
+          color: #26a2ff;
+          font-size: 0.44rem;
+          font-weight: 600;
+
+          &.black-color {
+            color: #444444;
+          }
+        }
+
+        & .mrd-item__label {
+          position: relative;
+          display: inline-block;
+          padding-top: 0.04rem;
+          font-size: 0.28rem;
+          color: #303133;
+          font-weight: 400;
+        }
+
+        & .mrd-item__target {
+          padding-top: 0.08rem;
+          font-size: 0.24rem;
+          color: #909399;
+          font-weight: 400;
+        }
+      }
+    }
+
+    .mrd-standard__wrap {
+      display: flex;
+      padding-top: 0.1rem;
+      flex-direction: row;
+
+      .mrd-standard__item {
+        display: flex;
+        flex: 1;
+        justify-content: center;
+
+        & .mrd-standard__text {
+          padding: 0.02rem 0.08rem;
+          font-size: 0.24rem;
+          color: #fff;
+          background: #53B87F;
+          border-radius: 0.06rem;
+        }
+      }
+    }
+  }
+
+  & .van-list{
+    background-color: #F5F7FA;
+  }
+}
+
+
+</style>

+ 24 - 5
src/point/view/pointHome.vue

@@ -133,10 +133,26 @@
             </div>
           </div>
         </div>
-        <div class="rankingLists flex-box-ce flex-center-center" @click="openUrl(3)" style="border-top: 1px solid #f1f1f1;">
-          <span>查看所有管理者奖扣</span>
-          <i class="van-icon van-icon-arrow van-cell__right-icon"></i>
-        </div>
+<!--        <div class="rankingLists flex-box-ce flex-center-center" @click="openUrl(3)" style="border-top: 1px solid #f1f1f1;">-->
+<!--          <span>查看管理者奖扣目标</span>-->
+<!--          <i class="van-icon van-icon-arrow van-cell__right-icon"></i>-->
+<!--        </div>-->
+<!--        <div class="rankingLists flex-box-ce flex-center-center" @click="openUrl(3)" style="border-top: 1px solid #f1f1f1;">-->
+<!--          <span>查看管理者奖扣信息</span>-->
+<!--          <i class="van-icon van-icon-arrow van-cell__right-icon"></i>-->
+<!--        </div>-->
+        <van-row type="flex" justify="center" align="center">
+          <van-col span="12" @click="openUrl(3)">
+            <div class="van-hairline--right" style="text-align: center; color: #909399; height: 3em; line-height: 3em; font-size: 0.28rem;">
+              <span style="line-height: 3em" >查看奖扣目标</span>
+            </div>
+          </van-col>
+          <van-col span="12" @click="openUrl(7)">
+            <div style="text-align: center; color: #909399;  height: 3em; line-height: 3em; font-size: 0.28rem;">
+              <span >查看奖扣信息</span>
+            </div>
+          </van-col>
+        </van-row>
       </div>
 
 <!--  团队PK    -->
@@ -185,7 +201,6 @@ import {getToken, setToken} from '@/utils/auth';
 import moment, {min} from 'moment';
 import Vue from 'vue';
 import { NoticeBar, Swipe, SwipeItem, Cell, Dialog,Popup  } from 'vant';
-import {authWebSocket} from "../../api/websocketTow";
 Vue.use(NoticeBar)
   .use(Swipe)
   .use(SwipeItem)
@@ -617,6 +632,10 @@ export default {
           this.$router.push({ name: 'statistics_personal_a', query: { month: this.month } });
           break;
         }
+        case 7: {
+          this.$router.push({ name: 'reward_deduction_search' })
+          break;
+        }
       }
     },
     docCalendarConfirm(event){

+ 36 - 3
src/point/view/task/short_task.vue

@@ -55,6 +55,12 @@
           <van-cell required :value="'每天' + task_expire_day_text" is-link @click="show_task_expire_day = true" title="截止时间" v-if="data.task_cycle == 1" />
           <van-cell required :value="'每' + task_expire_day_text" is-link @click="show_task_expire_day = true" title="截止时间" v-if="data.task_cycle == 2" />
           <van-cell required :value="'每月' + task_expire_day_text" is-link @click="show_task_expire_day = true" title="截止时间" v-if="data.task_cycle == 3" />
+          <van-cell title="有效日期" v-if="data.task_cycle !== 0"  @click="showScheduleExpireDate = true" :value="data.schedule_expire_date" :center="true" >
+            <template #right-icon>
+              <van-icon color="#A4A5A7" name="arrow" v-if="!data.schedule_expire_date" />
+              <van-icon color="#A4A5A7" name="cross" v-else @click.stop="clearScheduleExpireDate" style="margin-left: 10px" />
+            </template>
+          </van-cell>
           <van-field v-model="data.ahead_award_point" type="digit">
             <template slot="label">
               <div class="flex-box-ce">
@@ -260,6 +266,16 @@
       />
     </van-popup>
     <van-popup v-model="show_small_tip" :get-container="'#task_types'" :overlay-class="'bg_opacity'"><div class="small_tip_popup_content">内容</div></van-popup>
+
+    <van-calendar
+      title="有效日期"
+      color="#26A2FF"
+      v-model="showScheduleExpireDate"
+      :show-confirm="false"
+      :default-date="scheduleExpireDate"
+      @confirm="scheduleExpireDateConfirm"
+    />
+
   </div>
 </template>
 <script>
@@ -399,7 +415,8 @@ export default {
         super_satisfied: 0,
         cate_id: 0,
         task_cycle: 0,
-        task_expire_day: 0
+        task_expire_day: 0,
+        schedule_expire_date:''
       },
       title: '发布指派任务',
       url1: '/api/pro/integral/work/publish',
@@ -417,7 +434,9 @@ export default {
       pointLevel: {},
       employee_map: this.$getEmployeeMap(),
       approver_manage_scope: [],
-      point_types: this.$getTypes
+      point_types: this.$getTypes,
+      showScheduleExpireDate:false,
+      scheduleExpireDate:null
     };
   },
   watch: {
@@ -436,6 +455,7 @@ export default {
     'data.task_cycle': function(val) {
       this.data.task_expire_day = 1;
       this.task_expire_day = 0;
+      this.scheduleExpireDate = null;
       if (this.data.task_cycle == 1) {
         this.task_expire_day_text = this.columns1[this.data.task_expire_day - 1];
       } else if (this.data.task_cycle == 2) {
@@ -464,6 +484,10 @@ export default {
           arr.push(self.employee_map[val[i].id].employee_detail.superior_list);
         }
       }
+    },
+    scheduleExpireDate(val){
+      this.data.schedule_expire_date = val ? moment(val).format('YYYY-MM-DD') : '';
+      if (val) this.toast("重复任务将在" + this.data.schedule_expire_date + "停止自动发布")
     }
   },
   methods: {
@@ -628,6 +652,7 @@ export default {
     qkData() {
       this.executor_name = [];
       this.reviewer = [];
+      this.scheduleExpireDate = null;
       this.data = {
         targets: [],
         pt_id: 0,
@@ -646,7 +671,7 @@ export default {
         super_satisfied: 0,
         cate_id: 0,
         task_cycle: 0,
-        task_expire_day: 0
+        schedule_expire_date:''
       };
     },
     ahead_timeout(item, arr, codes, code) {
@@ -795,6 +820,14 @@ export default {
           self.sub();
         }
       });
+    },
+    scheduleExpireDateConfirm(val){
+      this.showScheduleExpireDate = false;
+      this.scheduleExpireDate = val;
+    },
+    clearScheduleExpireDate(){
+      this.showScheduleExpireDate = false;
+      this.scheduleExpireDate = null;
     }
   },
   activated() {

+ 38 - 2
src/point/view/task/temp_task.vue

@@ -60,6 +60,13 @@
           <van-cell :value="'每天' + task_expire_day_text" is-link @click="show_task_expire_day = true" title="截止时间" v-if="data.task_cycle == 1" />
           <van-cell :value="'每' + task_expire_day_text" is-link @click="show_task_expire_day = true" title="截止时间" v-if="data.task_cycle == 2" />
           <van-cell :value="'每月' + task_expire_day_text" is-link @click="show_task_expire_day = true" title="截止时间" v-if="data.task_cycle == 3" />
+          <van-cell title="有效日期" v-if="data.task_cycle !== 0" @click="showScheduleExpireDate = true" :value="data.schedule_expire_date" :center="true">
+            <template #right-icon >
+              <van-icon color="#A4A5A7"  name="arrow" v-if="!data.schedule_expire_date" />
+              <van-icon color="#A4A5A7"  name="close" v-else @click.stop="clearScheduleExpireDate" style="margin-left: 10px" />
+            </template>
+          </van-cell>
+
           <van-field v-model="data.ahead_award_point" type="digit">
             <template slot="label">
               <div class="flex-box-ce">
@@ -254,6 +261,18 @@
         @confirm="task_expire_dayonChange"
       />
     </van-popup>
+
+
+    <van-calendar
+      title="有效日期"
+      color="#26A2FF"
+      v-model="showScheduleExpireDate"
+      :show-confirm="false"
+      :default-date="scheduleExpireDate"
+      @confirm="scheduleExpireDateConfirm"
+    />
+
+
   </div>
 </template>
 <script>
@@ -359,7 +378,8 @@ export default {
         ahead_award_point_limit: '',
         dept_ids: [],
         task_cycle: 0,
-        task_expire_day: 1
+        task_expire_day: 1,
+        schedule_expire_date:''
       },
       title: '发布悬赏任务',
       post_data: {},
@@ -373,6 +393,8 @@ export default {
       show_timeout_deduction_point_popup: false,
       show_task_remark_popup: false,
       flexDialog:false,
+      showScheduleExpireDate:false,
+      scheduleExpireDate:null
     };
   },
   components: {
@@ -387,6 +409,7 @@ export default {
     'data.task_cycle': function(val) {
       this.data.task_expire_day = 1;
       this.task_expire_day = 0;
+      this.scheduleExpireDate = null;
       if (this.data.task_cycle == 1) {
         this.task_expire_day_text = this.columns1[this.data.task_expire_day - 1];
       } else if (this.data.task_cycle == 2) {
@@ -412,6 +435,10 @@ export default {
           this.data.dept_ids.push(val[i].dept_id);
         }
       }
+    },
+    scheduleExpireDate(val){
+      this.data.schedule_expire_date = val ? moment(val).format('YYYY-MM-DD') : '';
+      if (val) this.$toast("重复悬赏将在" + this.data.schedule_expire_date + "停止自动发布")
     }
   },
   methods: {
@@ -604,7 +631,8 @@ export default {
         ahead_award_point_limit: '',
         dept_ids: [],
         task_cycle: 0,
-        task_expire_day: 1
+        task_expire_day: 1,
+        schedule_expire_date: ''
       };
     },
     //执行周期任务
@@ -635,6 +663,14 @@ export default {
           }
         }
       });
+    },
+    scheduleExpireDateConfirm(val) {
+      this.showScheduleExpireDate = false;
+      this.scheduleExpireDate = val;
+    },
+    clearScheduleExpireDate() {
+      this.showScheduleExpireDate = false;
+      this.scheduleExpireDate = null;
     }
   },
   created() {

+ 7 - 0
src/router/pointRoute.js

@@ -351,6 +351,13 @@ const routes = [
     label: '管理者奖扣',
     need_login: true
   },
+  {
+    path: '/reward_deduction_search',
+    name: 'reward_deduction_search',
+    component: () => import('@/point/view/integral/reward_deduction_search'),
+    label: '奖扣数据查询',
+    need_login: true
+  },
   {
     path: '/reward_deduction_statistics',
     name: 'reward_deduction_statistics',