347617796@qq.com 3 år sedan
förälder
incheckning
0e6c62113f

+ 2 - 2
app.js

@@ -1,8 +1,8 @@
 import { showToast } from './utils/feedback'
 import { formatTime, arrRemoveObj, getTypeItem } from './utils/util'
 
-// const baseUrl = "https://test-ding.g107.com/";//测试
-const baseUrl = "https://ding.insys.g107.com/";//正式
+const baseUrl = "https://test-ding.g107.com/";//测试
+// const baseUrl = "https://ding.insys.g107.com/";//正式
 var that;
 var yearArr = [];
 var year = formatTime(new Date()).year;

+ 3 - 3
pages/statistics/allTask/allTask.js

@@ -23,7 +23,7 @@ Page({
 
 
     showStaff: false,//显示员工选择
-    staffVal: '负责人',
+    staffVal: '执行人',
 
     popupCx: '',  
   },
@@ -87,7 +87,7 @@ Page({
     //选择员工
   onConfirmStaff(data) {
     if (!data) {
-      this.setData({ staffVal: '负责人', employee_ids: '', page: 1 })
+      this.setData({ staffVal: '执行人', employee_ids: '', page: 1 })
       this.getData();
       return false;
     }
@@ -105,7 +105,7 @@ Page({
         this.setData({ staffVal: data[0].name, employee_ids: [data[0].id], page: 1 })
       }
     } else {
-      this.setData({ staffVal: '负责人', employee_ids: [], page: 1 })
+      this.setData({ staffVal: '执行人', employee_ids: [], page: 1 })
     }
     this.getData();
   },

+ 53 - 15
pages/statistics/assaign/assaign.axml

@@ -1,9 +1,21 @@
 <view>
   <view class="{{popupCx}}">
     <view class="inputs">
+    
+      <view class="flex-box flex-v-ce li" style="padding:26rpx 28rpx;">
+        <view class="label">指定规则</view>
+        <view class="flex-1"></view>
+        <switch onChange="switchChange" checked="{{items.checked}}" color="#26A2FF"></switch>
+      </view>
+      <view class="flex-box flex-v-ce li" data-ruleId="{{items.item_id}}" a:if="{{items.checked}}"  data-num="3" catchTap="openSelect">
+        <view class="label isBt">选择规则</view>
+        <view class="flex-1" a:if="{{selectRule}}">已选择1条</view>
+        <view class="flex-1" a:else></view>
+        <image mode="scaleToFill" src="../../../image/right.png" class="rightImg"/>
+      </view>
       <view class="li">
-        <textarea class="textarea" maxlength="100" value="{{items.task_name}}" onInput="bindTextAreaBlur" placeholder="请输入任务内容" data-index="{{index}}"></textarea>
-        <image mode="scaleToFill" src="../../../image/addImg.png"  class="addImg" catchTap="openImg"/>
+        <textarea class="textarea" maxlength="100" value="{{items.task_name}}" onInput="bindTextAreaBlur" placeholder="请输入任务内容"></textarea>
+        <image mode="scaleToFill" src="../../../image/addImg.png" class="addImg" catchTap="openImg"/>
       </view>
       <view style="background:#fff;padding:0 28rpx;" a:if="{{items.file_list[0]}}" class="flex-box flex-v-ce">
         <view a:for="{{items.file_list}}" key="index" a:for-item="imgs" a:for-index="imgIndex" style="position:relative">
@@ -11,13 +23,39 @@
           <image mode="scaleToFill" class="showImg" src="{{imgs}}" data-index="{{imgIndex}}" data-item="{{items.file_list}}" catchTap="showImg"/>
         </view>
       </view>
-      <view class="flex-box li margin-bottom" style="padding:15rpx 28rpx;margin-top:24rpx">
+      
+      <view class="flex-box li margin-bottom" style="padding:15rpx 28rpx;margin-top:24rpx" a:if="{{items.checked}}">
+        <view class="label isBt" style="position: relative;top:8rpx;">任务积分</view>
+        <text class="red" style="position: relative;top:8rpx;" a:if="{{isArrindex==true}}">+</text>
+        <text class="green" a:else style="position: relative;top:8rpx;">-</text>
+        <view class="flex-1">
+          <view class="flex-box flex-v-ce">
+            <view a:if="{{selectRule.range_type==1&&selectRule.min_point==selectRule.max_point}}" style="padding-left:10rpx; height:60rpx;line-height:60rpx;" class="flex-1">{{items.base_point}}</view>
+            <input a:else value="{{items.base_point}}" placeholder="0" type="number" onInput="bindKeyInput1"  class="flex-1"/>
+            <view class="picker-box" catchTap="bindPickerChange" a:if="{{selectRule.range_type!=1}}">
+              <view class="{{isArrindex==true? 'picker-right':'picker-left'}} yuan"></view>
+              <view class="flex-box flex-v-ce" class="picker">
+                <text class="red flex-1">奖</text>
+                <text class="green flex-1">扣</text>
+              </view>
+            </view>
+          </view>
+          <block a:if="{{selectRule}}">
+            <view class="fontColorT input_text" a:if="{{selectRule.range_type==1&&selectRule.min_point==selectRule.max_point}}">固定:{{selectRule.min_point}} {{selectRule.pt_Obj[0].name}}</view>
+            <view class="fontColorT input_text" a:else> 范围(可修改):{{selectRule.min_point}}至{{selectRule.max_point}}
+              <text>{{selectRule.pt_Obj[0].name}}</text></view>
+          </block>
+        </view>
+      </view>
+      <view class="flex-box li margin-bottom" style="padding:15rpx 28rpx;margin-top:24rpx" a:else>
         <view class="label isBt" style="position: relative;top:10rpx;">任务积分</view>
         <text class="red" style="position: relative;top:10rpx;">+</text>
         <view class="flex-1">
-          <input value="{{items.base_point}}"  placeholder="0" type="number" onInput="bindKeyInput"  class="flex-1"/>
+          <input value="{{items.base_point2}}" placeholder="0" type="number" onInput="bindKeyInput2" class="flex-1"/>
         </view>
       </view>
+
+
       <view class="flex-box flex-v-ce form-top" catchTap="openSelect" data-num="1">
         <view class="label isBt">执行人</view>
         <view class="flex-1 font-flex-word userList">
@@ -27,7 +65,7 @@
         </view>
         <image mode="scaleToFill" src="../../../image/right.png" class="rightImg"/>
       </view>
-      <view class="flex-box flex-v-ce li"  data-num="2" data-item="{{{id:items.reviewer_id,name:items.revieweName}}}" catchTap="openSelect">
+      <view class="flex-box flex-v-ce li" data-num="2" data-item="{{{id:items.reviewer_id,name:items.revieweName}}}" catchTap="openSelect">
         <view class="label isBt">审批人</view>
         <view class="flex-1">{{items.revieweName}}</view>
         <image mode="scaleToFill" src="../../../image/right.png" class="rightImg"/>
@@ -35,12 +73,11 @@
       <view class="flex-box flex-v-ce li">
         <view class="label isBt">任务类型</view>
         <view class="flex-1 flex-box-end flex-flex-v-ce">
-            <view a:for="{{types}}">
-                <text a:if="{{item.code!=='JX'}}"  catchTap="openType" data-id="{{item.id}}" class="van-radio {{items.pt_id==item.id? 'isTypes':''}}">{{item.name}}</text>
-            </view>
+          <view a:for="{{types}}">
+            <text a:if="{{item.code!=='JX'}}" catchTap="openType" data-id="{{item.id}}" class="van-radio {{items.pt_id==item.id? 'isTypes':''}}">{{item.name}}</text>
+          </view>
         </view>
       </view>
-
       <view class="flex-box flex-v-ce li  margin-bottom">
         <view class="label isBt">截止时间</view>
         <view class="flex-1" a:if="{{items.task_cycle==0}}" catchTap="openDate">{{items.expire_time}}</view>
@@ -58,7 +95,7 @@
         <view class="label">重复周期</view>
         <view class="flex-1">
           <picker onChange="bindObjPickerChange" value="{{arrIndex}}" range="{{objectArray}}" range-key="name">
-              <view class="row-extra">{{objectArray[arrIndex].name}}</view>
+            <view class="row-extra">{{objectArray[arrIndex].name}}</view>
           </picker>
         </view>
         <image mode="scaleToFill" src="../../../image/right.png" class="rightImg"/>
@@ -67,16 +104,16 @@
         <view class="label2" style="position: relative;top:10rpx;">提前奖分(天)</view>
         <text class="red" style="position: relative;top:10rpx;">+</text>
         <view class="flex-box-ce flex-1">
-          <input value="{{items.ahead_award_point}}" data-name="ahead_award_point" placeholder="提前奖多少分" type="number" onInput="bindKeyInput2"/>
-          <input style="border-left:1px solid #f1f1f1" data-name="ahead_award_point_limit" value="{{items.ahead_award_point_limit}}"  placeholder="奖分上限" type="number" onInput="bindKeyInput2"/>
+          <input value="{{items.ahead_award_point}}" data-name="ahead_award_point" placeholder="提前奖多少分" type="number" onInput="bindKeyInput3"/>
+          <input style="border-left:1px solid #f1f1f1" data-name="ahead_award_point_limit" value="{{items.ahead_award_point_limit}}" placeholder="奖分上限" type="number" onInput="bindKeyInput3"/>
         </view>
       </view>
       <view class="flex-box li" style="padding:15rpx 28rpx;">
         <view class="label2" style="position: relative;top:10rpx;">逾期扣分(天)</view>
         <text class="green" style="position: relative;top:10rpx;">-</text>
         <view class="flex-1 flex-box-ce">
-          <input value="{{items.timeout_deduction_point}}" data-name="timeout_deduction_point" placeholder="逾期扣多少分" type="number" onInput="bindKeyInput2"/>
-           <input style="border-left:1px solid #f1f1f1" data-name="timeout_deduction_point_limit"  value="{{items.timeout_deduction_point_limit}}"  placeholder="扣分上限" type="number" onInput="bindKeyInput2"/>
+          <input value="{{items.timeout_deduction_point}}" data-name="timeout_deduction_point" placeholder="逾期扣多少分" type="number" onInput="bindKeyInput3"/>
+          <input style="border-left:1px solid #f1f1f1" data-name="timeout_deduction_point_limit" value="{{items.timeout_deduction_point_limit}}" placeholder="扣分上限" type="number" onInput="bindKeyInput3"/>
         </view>
       </view>
     </view>
@@ -85,7 +122,8 @@
     </view>
   </view>
   <view class="box" animation="{{animationInfo}}">
+    <select-rule defaultId="{{defaultRuleId}}" onConfirm="onSelectItem" onClose="onClose" a:if="{{isShowType=='3'}}"/>
     <select-section-staff isLeadership="{{true}}" isBoss="{{true}}" selectUser="{{users}}" onClose="onClose" onConfirm="onSelectUser" a:if="{{isShowType=='1'}}"/>
-    <select-section-staff-two  islead="{{true}}" selectUser="{{reviewerObj}}" onClose="onClose" onConfirm="onSelectUser2" a:if="{{isShowType=='2'}}"/>
+    <select-section-staff-two islead="{{true}}" selectUser="{{reviewerObj}}" onClose="onClose" onConfirm="onSelectUser2" a:if="{{isShowType=='2'}}"/>
   </view>
 </view>

+ 149 - 79
pages/statistics/assaign/assaign.js

@@ -10,6 +10,7 @@ Page({
       task_name: '',//任务名
       task_remark: '',//任务详细描述
       base_point: '',//任务参考积分
+      base_point2: '',//任务参考积分
       expire_time: '',//截至时间 格式:2020-02-02 12:00
       package_id: 0,//绩效任务包id 绩效任务包发布工作时必须大于0,其余工作发布为0
       weight: 0,//绩效权重 绩效任务包发布工作时必须大于0,其余工作发布为0
@@ -17,14 +18,18 @@ Page({
       reviewer_id: '',//审批者id
       revieweName: '',
       timeout_deduction_point: '',//逾期扣分/天
-      timeout_deduction_point_limit:'',//逾期扣分上限
+      timeout_deduction_point_limit: '',//逾期扣分上限
       ahead_award_point: '',//提前奖分/天
-      ahead_award_point_limit:'',//提前奖分上限
+      ahead_award_point_limit: '',//提前奖分上限
       qualified: '',//
       cate_id: 0,// 共组分类id   
 
       task_cycle: 0,//任务发布周期 1-天 2-周 3-月
       task_expire_day: 1,//任务截至天数
+
+      checked: false,//是否选择规则
+      rule_id: '',//积分分类id
+      item_id: '',//积分细则id 不选可以为0
     },
     reviewerObj: [],//默认审批人
     objectArray: [
@@ -47,41 +52,76 @@ Page({
     ],
     arrIndex: 0,
     popupCx: '',
-    point_limit:0,
+    point_limit: 0,
     columnsIndex: 0,//条件选择
-    columnsArray: [{name:'01:00', value: 1}, {name:'02:00', value: 2}, {name:'03:00', value: 3}, {name:'04:00', value: 4}, {name:'05:00', value: 5}, {name:'06:00', value: 6}, {name:'07:00', value: 7}, {name:'08:00', value: 8}, {name:'09:00', value: 9}, {name:'10:00', value: 10}, {name:'11:00', value: 11}, {name:'12:00', value: 12}, {name:'13:00', value: 13}, {name:'14:00', value: 14}, {name:'15:00', value: 15}, {name:'16:00', value: 16}, {name:'17:00', value: 17}, {name:'18:00', value: 18}, {name:'19:00', value: 19}, {name:'20:00', value: 20}, {name:'21:00', value: 21}, {name:'22:00', value: 22}, {name:'23:00', value: 23}, {name:'24:00', value: 24}],
-    columns1: [{name:'01:00', value: 1}, {name:'02:00', value: 2}, {name:'03:00', value: 3}, {name:'04:00', value: 4}, {name:'05:00', value: 5}, {name:'06:00', value: 6}, {name:'07:00', value: 7}, {name:'08:00', value: 8}, {name:'09:00', value: 9}, {name:'10:00', value: 10}, {name:'11:00', value: 11}, {name:'12:00', value: 12}, {name:'13:00', value: 13}, {name:'14:00', value: 14}, {name:'15:00', value: 15}, {name:'16:00', value: 16}, {name:'17:00', value: 17}, {name:'18:00', value: 18}, {name:'19:00', value: 19}, {name:'20:00', value: 20}, {name:'21:00', value: 21}, {name:'22:00', value: 22}, {name:'23:00', value: 23}, {name:'24:00', value: 24}],
-    columns2: [{name: '周一', value: 1}, {name: '周二', value: 2}, {name: '周三', value: 3}, {name: '周四', value: 4}, {name: '周五', value: 5}, {name: '周六', value: 6}, {name: '周日', value: 7}],
-    columns3: [{name:'1号', value: 1},{name:'2号', value: 2},{name:'3号', value: 3},{name:'4号', value: 4},{name:'5号', value: 5},{name:'6号', value: 6},{name:'7号', value: 7},{name:'8号', value: 8},{name:'9号', value: 9},{name:'10号', value: 10},{name:'11号', value: 11},{name:'12号', value: 12},{name:'13号', value: 13},{name:'14号', value: 14},{name:'15号', value: 15},{name:'16号', value: 16},{name:'17号', value: 17},{name:'18号', value: 18},{name:'19号', value: 19},{name:'20号', value: 20},{name:'21号', value: 21},{name:'22号', value: 22},{name:'23号', value: 23},{name:'24号', value: 24},{name:'25号', value: 25},{name:'26号', value: 26},{name:'27号', value: 27},{name:'28号', value: 28},{name:'29号', value: 29},{name:'30号', value: 30},{name:'31号', value: 31}],
+    columnsArray: [{ name: '01:00', value: 1 }, { name: '02:00', value: 2 }, { name: '03:00', value: 3 }, { name: '04:00', value: 4 }, { name: '05:00', value: 5 }, { name: '06:00', value: 6 }, { name: '07:00', value: 7 }, { name: '08:00', value: 8 }, { name: '09:00', value: 9 }, { name: '10:00', value: 10 }, { name: '11:00', value: 11 }, { name: '12:00', value: 12 }, { name: '13:00', value: 13 }, { name: '14:00', value: 14 }, { name: '15:00', value: 15 }, { name: '16:00', value: 16 }, { name: '17:00', value: 17 }, { name: '18:00', value: 18 }, { name: '19:00', value: 19 }, { name: '20:00', value: 20 }, { name: '21:00', value: 21 }, { name: '22:00', value: 22 }, { name: '23:00', value: 23 }, { name: '24:00', value: 24 }],
+    columns1: [{ name: '01:00', value: 1 }, { name: '02:00', value: 2 }, { name: '03:00', value: 3 }, { name: '04:00', value: 4 }, { name: '05:00', value: 5 }, { name: '06:00', value: 6 }, { name: '07:00', value: 7 }, { name: '08:00', value: 8 }, { name: '09:00', value: 9 }, { name: '10:00', value: 10 }, { name: '11:00', value: 11 }, { name: '12:00', value: 12 }, { name: '13:00', value: 13 }, { name: '14:00', value: 14 }, { name: '15:00', value: 15 }, { name: '16:00', value: 16 }, { name: '17:00', value: 17 }, { name: '18:00', value: 18 }, { name: '19:00', value: 19 }, { name: '20:00', value: 20 }, { name: '21:00', value: 21 }, { name: '22:00', value: 22 }, { name: '23:00', value: 23 }, { name: '24:00', value: 24 }],
+    columns2: [{ name: '周一', value: 1 }, { name: '周二', value: 2 }, { name: '周三', value: 3 }, { name: '周四', value: 4 }, { name: '周五', value: 5 }, { name: '周六', value: 6 }, { name: '周日', value: 7 }],
+    columns3: [{ name: '1号', value: 1 }, { name: '2号', value: 2 }, { name: '3号', value: 3 }, { name: '4号', value: 4 }, { name: '5号', value: 5 }, { name: '6号', value: 6 }, { name: '7号', value: 7 }, { name: '8号', value: 8 }, { name: '9号', value: 9 }, { name: '10号', value: 10 }, { name: '11号', value: 11 }, { name: '12号', value: 12 }, { name: '13号', value: 13 }, { name: '14号', value: 14 }, { name: '15号', value: 15 }, { name: '16号', value: 16 }, { name: '17号', value: 17 }, { name: '18号', value: 18 }, { name: '19号', value: 19 }, { name: '20号', value: 20 }, { name: '21号', value: 21 }, { name: '22号', value: 22 }, { name: '23号', value: 23 }, { name: '24号', value: 24 }, { name: '25号', value: 25 }, { name: '26号', value: 26 }, { name: '27号', value: 27 }, { name: '28号', value: 28 }, { name: '29号', value: 29 }, { name: '30号', value: 30 }, { name: '31号', value: 31 }],
 
+    defaultRuleId: '',
+    selectRule: '',//选择的规则
+    isArrindex: true,
   },
   onLoad() {
     that = this;
     dd.setNavigationBar({ title: "指派任务" });
     that.setData({
       types: app.globalData.types,
-      [`items.expire_time`]: app.globalData.day+' 18:00',
-      point_limit:app.globalData.userData.point_config.point_limit
+      [`items.expire_time`]: app.globalData.day + ' 18:00',
+      point_limit: app.globalData.userData.point_config.point_limit
+    })
+  },
+  //选择奖还是扣(细则)
+  bindPickerChange() {
+    this.setData({
+      isArrindex: !that.data.isArrindex,
+    });
+  },
+
+  switchChange(e) {
+    that.setData({
+      [`items.checked`]: e.detail.value
+    })
+  },
+  //选择规则
+  onSelectItem(item) {
+    console.log(item)
+    var strMin;
+    if (item.min_point < 0) {
+      var min = item.min_point.toString();
+      var strMin = min.slice(1, min.length);
+    } else {
+      strMin = item.min_point;
+    }
+    that.setData({
+      selectRule: item,
+      [`items.task_name`]: item.remark,
+      [`items.base_point`]: Number(strMin),
+      isArrindex: item.min_point > 0 ? true : false,
+      [`items.rule_id`]: item.rule_id,
+      [`items.item_id`]: item.id,
     })
   },
-  activeDate(e){
+
+  activeDate(e) {
     this.setData({
       columnsIndex: e.detail.value,
-      [`items.task_expire_day`]:parseInt(e.detail.value)+1
+      [`items.task_expire_day`]: parseInt(e.detail.value) + 1
     });
   },
   bindObjPickerChange(e) {
     this.setData({
-      columnsIndex:0,
-      [`items.task_expire_day`]:1,
+      columnsIndex: 0,
+      [`items.task_expire_day`]: 1,
       arrIndex: e.detail.value,
       [`items.task_cycle`]: e.detail.value
     });
     // 跟不同重复周期,切换数据源
-    let str='columns'+e.detail.value;
-    let columnsArray=this.data[str];
+    let str = 'columns' + e.detail.value;
+    let columnsArray = this.data[str];
     this.setData({
-      columnsArray:columnsArray,
+      columnsArray: columnsArray,
     });
   },
   openType(e) {
@@ -97,46 +137,48 @@ Page({
     });
   },
   //积分输入
-  bindKeyInput(e) {
-    var point = `items.base_point`;
+  bindKeyInput2(e) {
     this.setData({
-      [point]: e.detail.value,
-      [`items.qualified`]: e.detail.value
+      [`items.base_point2`]: e.detail.value,
     });
   },
   //积分输入
-  bindKeyInput2(e) {
+  bindKeyInput1(e) {
+    let value = e.detail.value;
+    this.setData({
+      [`items.base_point`]: value,
+    });
+  },
+    //积分输入
+  bindKeyInput3(e) {
     var name = e.target.dataset.name;
-    let value=e.detail.value;
+    let value = e.detail.value;
     var point = `items.${name}`;
-	
-	if(that.data.point_limit.length>0){
-		var pointIimit= that.data.point_limit[1].point;
-		if(pointIimit!=0&&pointIimit!=-1){
-		  if(name=='timeout_deduction_point'||name=='ahead_award_point'){
-		      pointIimit=pointIimit*1;
-		      if(value>pointIimit){
-		          this.showToast('分值不能超过您的奖扣分权限');
-		            this.setData({
-		              [point]: '',
-		            });
-		          return false
-		      }
-		  }else{
-		      pointIimit=pointIimit*10;
-		      if(value>pointIimit){
-		          this.showToast('上限不能超过'+pointIimit+'分');
-		            this.setData({
-		              [point]: '',
-		            });
-		          return false
-		      }
-		  }
-		}
-	}
-
-    
-	this.setData({
+    if (that.data.point_limit.length > 0) {
+      var pointIimit = that.data.point_limit[1].point;
+      if (pointIimit != 0 && pointIimit != -1) {
+        if (name == 'timeout_deduction_point' || name == 'ahead_award_point') {
+          pointIimit = pointIimit * 1;
+          if (value > pointIimit) {
+            this.showToast('分值不能超过您的奖扣分权限');
+            this.setData({
+              [point]: '',
+            });
+            return false
+          }
+        } else {
+          pointIimit = pointIimit * 10;
+          if (value > pointIimit) {
+            this.showToast('上限不能超过' + pointIimit + '分');
+            this.setData({
+              [point]: '',
+            });
+            return false
+          }
+        }
+      }
+    }
+    this.setData({
       [point]: value,
     });
   },
@@ -169,6 +211,9 @@ Page({
         that.setData({ reviewerObj: [] });
       }
     }
+    if (e.target.dataset.ruleId) {
+      that.setData({ defaultRuleId: e.target.dataset.ruleId });
+    }
     animation.translateY(0).step();
     that.setData({
       isShowType: num,
@@ -284,15 +329,47 @@ Page({
     app.globalData.showToast(text);
   },
   formSubmit() {
-    var items =JSON.parse(JSON.stringify(this.data.items));
+    var items = JSON.parse(JSON.stringify(this.data.items));
     if (!items.task_name) {
       this.showToast('请输入任务内容')
       return;
     }
-    if (!items.base_point) {
-      this.showToast('请输入任务积分')
-      return;
+    if(items.checked){
+      let selectRule=this.data.selectRule;
+      if (!selectRule) {
+        this.showToast('请选择规则')
+        return;
+      }
+      if (!items.base_point) {
+        this.showToast('请输入任务积分')
+        return;
+      }
+      let value=items.base_point;
+      let point;
+      if (!this.data.isArrindex) {
+        point = 0 - value;
+      } else {
+        point = value;
+      }
+      console.log(selectRule,point)
+      if (point < selectRule.min_point || point > selectRule.max_point) {
+        this.showToast(`任务分值超出可输入范围`);
+        return false
+      }
+      items.base_point=point;
+      items.qualified=point;
+    }else{
+      if (!items.base_point2) {
+        this.showToast('请输入任务积分')
+        return;
+      }
+      items.base_point=items.base_point2
+      items.qualified=items.base_point2;
+      delete items.rule_id
+      delete items.item_id
     }
+
+
     if (items.targets.length == 0) {
       this.showToast('请选择执行对象')
       return;
@@ -307,44 +384,37 @@ Page({
         return;
       }
     }
-    if(!items.task_remark){
+
+    if (!items.task_remark) {
       delete items.task_remark
     }
-    if(!items.timeout_deduction_point){
+    if (!items.timeout_deduction_point) {
       delete items.timeout_deduction_point
     }
-    items.file_list=items.file_list.toString();
-    items.targets=items.targets.toString();
+    items.file_list = items.file_list.toString();
+    items.targets = items.targets.toString();
     var url;
     if (items.task_cycle == 0) {
-        delete items.task_cycle
-        delete items.task_expire_day
-        url = '/api/integral/work/publish'
+      delete items.task_cycle
+      delete items.task_expire_day
+      url = '/api/integral/work/publish'
     } else {
-        delete items.expire_time
-        delete items.package_id
-        delete items.weight
-        url ='/api/integral/schedule/publish/work'
+      delete items.expire_time
+      delete items.package_id
+      delete items.weight
+      url = '/api/integral/schedule/publish/work'
     }
     this.setData({ disabled: true });
-    console.log(JSON.stringify(items))
-    app.$post(url,items).then((res) => {
-        this.showToast(res.data.msg);
-        setTimeout(() => {
-          this.setData({ disabled: false });
-          dd.navigateBack({ delta: 1 })
-        }, 1000);
+    app.$post(url, items).then((res) => {
+      this.showToast(res.data.msg);
+      setTimeout(() => {
+        this.setData({ disabled: false });
+        dd.navigateBack({ delta: 1 })
+      }, 1000);
     }).finally(err => {
       this.setData({ disabled: false });
     })
   },
-  switchChange(e) {
-    var index = e.target.dataset.index;
-    var item = `items[${index}].checked`;
-    that.setData({
-      [item]: e.detail.value
-    })
-  },
   //选择时间
   openDate(e) {
     var item = `items.expire_time`

+ 1 - 0
pages/statistics/assaign/assaign.json

@@ -1,5 +1,6 @@
 {
   "usingComponents": {
+    "select-rule": "/Component/selectRule/selectRule",
     "select-section-staff-two":"/Component/selectSectionStaff_tow/selectSectionStaff_tow",
     "select-section-staff":"/Component/selectSectionStaff/selectSectionStaff"
   },

+ 47 - 16
pages/statistics/assaign_set/assaign_set.axml

@@ -1,6 +1,19 @@
 <view>
-  <view>
+  <view class="{{popupCx}}">
     <view class="inputs">
+    
+      <view class="flex-box flex-v-ce li" style="padding:26rpx 28rpx;">
+        <view class="label">指定规则</view>
+        <view class="flex-1"></view>
+        <switch onChange="switchChange" checked="{{items.checked}}" color="#26A2FF"></switch>
+      </view>
+      <view class="flex-box flex-v-ce li" data-ruleId="{{items.item_id}}" a:if="{{items.checked}}"  data-num="3" catchTap="openSelect">
+        <view class="label isBt">选择规则</view>
+        <view class="flex-1" a:if="{{selectRule}}">已选择1条</view>
+        <view class="flex-1" a:else></view>
+        <image mode="scaleToFill" src="../../../image/right.png" class="rightImg"/>
+      </view>
+
       <view class="li">
         <textarea class="textarea" maxlength="100" value="{{items.task_name}}" onInput="bindTextAreaBlur" placeholder="请输入任务内容" data-index="{{index}}"></textarea>
         <image mode="scaleToFill" src="../../../image/addImg.png"  class="addImg" catchTap="openImg"/>
@@ -11,13 +24,39 @@
           <image mode="scaleToFill" class="showImg" src="{{imgs}}" data-index="{{imgIndex}}" data-item="{{items.file_list}}" catchTap="showImg"/>
         </view>
       </view>
-      <view class="flex-box li margin-bottom" style="padding:15rpx 28rpx;margin-top:24rpx">
+
+      <view class="flex-box li margin-bottom" style="padding:15rpx 28rpx;margin-top:24rpx" a:if="{{items.checked}}">
+        <view class="label isBt" style="position: relative;top:8rpx;">任务积分</view>
+        <text class="red" style="position: relative;top:8rpx;" a:if="{{isArrindex==true}}">+</text>
+        <text class="green" a:else style="position: relative;top:8rpx;">-</text>
+        <view class="flex-1">
+          <view class="flex-box flex-v-ce">
+            <view a:if="{{selectRule.range_type==1&&selectRule.min_point==selectRule.max_point}}" style="padding-left:10rpx; height:60rpx;line-height:60rpx;" class="flex-1">{{items.base_point}}</view>
+            <input a:else value="{{items.base_point}}" placeholder="0" type="number" onInput="bindKeyInput1"  class="flex-1"/>
+            <view class="picker-box" catchTap="bindPickerChange" a:if="{{selectRule.range_type!=1}}">
+              <view class="{{isArrindex==true? 'picker-right':'picker-left'}} yuan"></view>
+              <view class="flex-box flex-v-ce" class="picker">
+                <text class="red flex-1">奖</text>
+                <text class="green flex-1">扣</text>
+              </view>
+            </view>
+          </view>
+          <block a:if="{{selectRule}}">
+            <view class="fontColorT input_text" a:if="{{selectRule.range_type==1&&selectRule.min_point==selectRule.max_point}}">固定:{{selectRule.min_point}} {{items.pt_name}}</view>
+            <view class="fontColorT input_text" a:else> 范围(可修改):{{selectRule.min_point}}至{{selectRule.max_point}}
+              <text>{{items.pt_name}}</text>
+            </view>
+          </block>
+        </view>
+      </view>
+      <view class="flex-box li margin-bottom" style="padding:15rpx 28rpx;margin-top:24rpx" a:else>
         <view class="label isBt" style="position: relative;top:10rpx;">任务积分</view>
         <text class="red" style="position: relative;top:10rpx;">+</text>
         <view class="flex-1">
-          <input value="{{items.base_point}}"  placeholder="0" type="number" onInput="bindKeyInput"  class="flex-1"/>
+          <input value="{{items.base_point2}}" placeholder="0" type="number" onInput="bindKeyInput2" class="flex-1"/>
         </view>
       </view>
+
       <view class="flex-box flex-v-ce form-top" catchTap="openSelect" data-num="1">
         <view class="label isBt">执行人</view>
         <view class="flex-1 font-flex-word userList">
@@ -32,15 +71,6 @@
         <view class="flex-1">{{items.revieweName}}</view>
         <image mode="scaleToFill" src="../../../image/right.png" class="rightImg"/>
       </view>
-      <!-- <view class="flex-box flex-v-ce li">
-        <view class="label isBt">任务类型</view>
-        <view class="flex-1 flex-box-end flex-flex-v-ce">
-            <view a:for="{{types}}">
-                <text a:if="{{item.code!=='JX'}}"  catchTap="openType" data-id="{{item.id}}" class="van-radio {{items.pt_id==item.id? 'isTypes':''}}">{{item.name}}</text>
-            </view>
-        </view>
-      </view> -->
-
       <view class="flex-box flex-v-ce li  margin-bottom" catchTap="openDate" data-index="{{index}}">
         <view class="label isBt">截止时间</view>
         <view class="flex-1">{{items.expire_time}}</view>
@@ -53,16 +83,16 @@
         <view class="label2" style="position: relative;top:10rpx;">提前奖分(天)</view>
         <text class="red" style="position: relative;top:10rpx;">+</text>
         <view class="flex-box-ce flex-1">
-          <input value="{{items.ahead_award_point}}" data-name="ahead_award_point" placeholder="提前奖多少分" type="number" onInput="bindKeyInput2"/>
-          <input style="border-left:1px solid #f1f1f1" data-name="ahead_award_point_limit" value="{{items.ahead_award_point_limit}}"  placeholder="奖分上限" type="number" onInput="bindKeyInput2"/>
+          <input value="{{items.ahead_award_point}}" data-name="ahead_award_point" placeholder="提前奖多少分" type="number" onInput="bindKeyInput3"/>
+          <input style="border-left:1px solid #f1f1f1" data-name="ahead_award_point_limit" value="{{items.ahead_award_point_limit}}"  placeholder="奖分上限" type="number" onInput="bindKeyInput3"/>
         </view>
       </view>
       <view class="flex-box li" style="padding:15rpx 28rpx;">
         <view class="label2" style="position: relative;top:10rpx;">逾期扣分(天)</view>
         <text class="green" style="position: relative;top:10rpx;">-</text>
         <view class="flex-1 flex-box-ce">
-          <input value="{{items.timeout_deduction_point}}" data-name="timeout_deduction_point" placeholder="逾期扣多少分" type="number" onInput="bindKeyInput2"/>
-           <input style="border-left:1px solid #f1f1f1" data-name="timeout_deduction_point_limit"  value="{{items.timeout_deduction_point_limit}}"  placeholder="扣分上限" type="number" onInput="bindKeyInput2"/>
+          <input value="{{items.timeout_deduction_point}}" data-name="timeout_deduction_point" placeholder="逾期扣多少分" type="number" onInput="bindKeyInput3"/>
+           <input style="border-left:1px solid #f1f1f1" data-name="timeout_deduction_point_limit"  value="{{items.timeout_deduction_point_limit}}"  placeholder="扣分上限" type="number" onInput="bindKeyInput3"/>
         </view>
       </view>
     </view>
@@ -71,6 +101,7 @@
     </view>
   </view>
   <view class="box" animation="{{animationInfo}}">
+    <select-rule defaultId="{{defaultRuleId}}" onConfirm="onSelectItem" onClose="onClose" a:if="{{isShowType=='3'}}"/>
     <select-section-staff isLeadership="{{true}}" isAllSelect="{{false}}" isBoss="{{true}}" selectUser="{{users}}" onClose="onClose" onConfirm="onSelectUser" a:if="{{isShowType=='1'}}"/>
     <select-section-staff-two  islead="{{true}}" selectUser="{{reviewerObj}}" onClose="onClose" onConfirm="onSelectUser2" a:if="{{isShowType=='2'}}"/>
   </view>

+ 152 - 64
pages/statistics/assaign_set/assaign_set.js

@@ -10,6 +10,7 @@ Page({
       task_name: '',//任务名
       task_remark: '',//任务详细描述
       base_point: '',//任务参考积分
+      base_point2: '',//任务参考积分
       expire_time: '',//截至时间 格式:2020-02-02 12:00
       package_id: 0,//绩效任务包id 绩效任务包发布工作时必须大于0,其余工作发布为0
       weight: 0,//绩效权重 绩效任务包发布工作时必须大于0,其余工作发布为0
@@ -17,13 +18,18 @@ Page({
       reviewer_id: '',//审批者id
       revieweName: '',
       timeout_deduction_point: '',//逾期扣分/天
-      timeout_deduction_point_limit:'',//逾期扣分上限
+      timeout_deduction_point_limit: '',//逾期扣分上限
       ahead_award_point: '',//提前奖分/天
-      ahead_award_point_limit:'',//提前奖分上限
+      ahead_award_point_limit: '',//提前奖分上限
       qualified: '',//
       cate_id: 0,// 共组分类id   
       task_cycle: 0,//重复周期
-      task_expire_day: 1
+      task_expire_day: 1,
+
+      pt_name:'B分',
+      checked: false,//是否选择规则
+      rule_id: '',//积分分类id
+      item_id: 0,//积分细则id 不选可以为0
     },
     reviewerObj: [],//默认审批人
     objectArray: [
@@ -45,38 +51,59 @@ Page({
       },
     ],
     arrIndex: 0,
-    point_limit:0,
+    point_limit: 0,
+
+    defaultRuleId: '',
+    selectRule: '',//选择的规则
+    isArrindex: true,
+          popupCx: '',
   },
   onLoad(e) {
     that = this;
     dd.setNavigationBar({ title: "任务编辑" });
     if (e.item) {
       var item = JSON.parse(e.item);
+      if(item.item_id){
+        if(item.point_config.base_point<0){
+          this.setData({
+              isArrindex:false
+          })
+        }
+      }
+
+
       this.setData({
-        reviewerObj:[{name:item.reviewer_name,id:item.reviewer_id}],
-        users:[{name:item.employee_name,id:item.employee_id}],
-        point_limit:app.globalData.userData.point_config.point_limit,
+        selectRule:item.item_id? item.point_config.item_info:'',
+        reviewerObj: [{ name: item.reviewer_name, id: item.reviewer_id }],
+        users: [{ name: item.employee_name, id: item.employee_id }],
+        point_limit: app.globalData.userData.point_config.point_limit,
         items: {
-          id:item.id,
+          id: item.id,
           targets: [item.employee_id],//工作执行者列表,以逗号分割的字符串或直接传入数组
           pt_id: item.pt_id,//积分种类id
           task_name: item.task_name,//任务名
           task_remark: item.task_remark,//任务详细描述
-          base_point: item.point_config.base_point,//任务参考积分
+          base_point: item.point_config.base_point <0? (0-item.point_config.base_point):item.point_config.base_point,//任务参考积分
+          base_point2: item.point_config.base_point <0? (0-item.point_config.base_point):item.point_config.base_point,//任务参考积分
           expire_time: item.expire_time,//截至时间 格式:2020-02-02 12:00
           package_id: 0,//绩效任务包id 绩效任务包发布工作时必须大于0,其余工作发布为0
           weight: 0,//绩效权重 绩效任务包发布工作时必须大于0,其余工作发布为0
           file_list: item.task_file_list,//附件地址列表
-          reviewer_id:item.reviewer_id,//审批者id
-          revieweName:item.reviewer_name,
+          reviewer_id: item.reviewer_id,//审批者id
+          revieweName: item.reviewer_name,
           timeout_deduction_point: item.point_config.timeout_deduction_point,//逾期扣分/天
-          timeout_deduction_point_limit:item.point_config.timeout_deduction_point_limit,//逾期扣分上限
+          timeout_deduction_point_limit: item.point_config.timeout_deduction_point_limit,//逾期扣分上限
           ahead_award_point: item.point_config.ahead_award_point,//提前奖分/天
-          ahead_award_point_limit:item.point_config.ahead_award_point_limit,//提前奖分上限
-          qualified:item.point_config.base_point,//
+          ahead_award_point_limit: item.point_config.ahead_award_point_limit,//提前奖分上限
+          qualified: item.point_config.base_point,//
           cate_id: 0,// 共组分类id   
-          task_cycle:0,//重复周期
-          task_expire_day: 1
+          task_cycle: 0,//重复周期
+          task_expire_day: 1,
+          pt_name:item.pt_name,
+
+          rule_id: item.rule_id,//积分分类id
+          item_id: item.item_id,//积分细则id 不选可以为0
+          checked: item.item_id? true:false,//是否选择规则
         },
       })
     }
@@ -84,6 +111,32 @@ Page({
       types: app.globalData.types
     })
   },
+  //选择奖还是扣(细则)
+  bindPickerChange() {
+    this.setData({
+      isArrindex: !that.data.isArrindex,
+    });
+  },
+  //选择规则
+  onSelectItem(item) {
+    var strMin;
+    if (item.min_point < 0) {
+      var min = item.min_point.toString();
+      var strMin = min.slice(1, min.length);
+    } else {
+      strMin = item.min_point;
+    }
+    that.setData({
+      selectRule: item,
+      [`items.task_name`]: item.remark,
+      [`items.base_point`]: Number(strMin),
+      isArrindex: item.min_point > 0 ? true : false,
+      [`items.rule_id`]: item.rule_id,
+      [`items.item_id`]: item.id,
+    })
+  },
+
+
   bindObjPickerChange(e) {
     this.setData({
       arrIndex: e.detail.value,
@@ -101,9 +154,15 @@ Page({
       duration: 200,
       timeFunction: "linear",
     });
+  },
+    //积分输入
+  bindKeyInput2(e) {
+    this.setData({
+      [`items.base_point2`]: e.detail.value,
+    });
   },
   //积分输入
-  bindKeyInput(e) {
+  bindKeyInput1(e) {
     var point = `items.base_point`;
     this.setData({
       [point]: e.detail.value,
@@ -111,35 +170,35 @@ Page({
     });
   },
   //积分输入
-  bindKeyInput2(e) {
+  bindKeyInput3(e) {
     var name = e.target.dataset.name;
-    let value=e.detail.value;
+    let value = e.detail.value;
     var point = `items.${name}`;
-	if(that.data.point_limit.length>0){
-		var pointIimit= that.data.point_limit[1].point;
-		if(pointIimit!=0&&pointIimit!=-1){
-		  if(name=='timeout_deduction_point'||name=='ahead_award_point'){
-		      pointIimit=pointIimit*1;
-		      if(value>pointIimit){
-		          this.showToast('分值不能超过您的奖扣分权限');
-		            this.setData({
-		              [point]: '',
-		            });
-		          return false
-		      }
-		  }else{
-		      pointIimit=pointIimit*10;
-		      if(value>pointIimit){
-		          this.showToast('上限不能超过'+pointIimit+'分');
-		            this.setData({
-		              [point]: '',
-		            });
-		          return false
-		      }
-		  }
-		}
-	}
-	this.setData({
+    if (that.data.point_limit.length > 0) {
+      var pointIimit = that.data.point_limit[1].point;
+      if (pointIimit != 0 && pointIimit != -1) {
+        if (name == 'timeout_deduction_point' || name == 'ahead_award_point') {
+          pointIimit = pointIimit * 1;
+          if (value > pointIimit) {
+            this.showToast('分值不能超过您的奖扣分权限');
+            this.setData({
+              [point]: '',
+            });
+            return false
+          }
+        } else {
+          pointIimit = pointIimit * 10;
+          if (value > pointIimit) {
+            this.showToast('上限不能超过' + pointIimit + '分');
+            this.setData({
+              [point]: '',
+            });
+            return false
+          }
+        }
+      }
+    }
+    this.setData({
       [point]: value,
     });
   },
@@ -157,14 +216,14 @@ Page({
   onClose() {
     animation.translateY(1200).step();
     that.setData({
-      animationInfo: animation.export()
+      isShowType: '',
+      animationInfo: animation.export(),
+      popupCx: '',
     });
-    that.setData({ isShowType: '' });
   },
   //选择弹窗
   openSelect(e) {
     var num = e.target.dataset.num;
-
     if (e.target.dataset.item) {
       if (e.target.dataset.item.id) {
         that.setData({ reviewerObj: [e.target.dataset.item] });
@@ -172,12 +231,14 @@ Page({
         that.setData({ reviewerObj: [] });
       }
     }
-    that.setData({
-      isShowType: num,
-    });
+    if (e.target.dataset.ruleId) {
+      that.setData({ defaultRuleId: e.target.dataset.ruleId });
+    }
     animation.translateY(0).step();
     that.setData({
-      animationInfo: animation.export()
+      isShowType: num,
+      animationInfo: animation.export(),
+      popupCx: 'container__mask',
     });
   },
   //删除图片
@@ -291,14 +352,43 @@ Page({
   formSubmit() {
     var items = this.data.items;
     var page1 = getCurrentPages()[getCurrentPages().length - 2]//上一个页面的数据
-    console.log(items);
     if (!items.task_name) {
       this.showToast('请输入任务内容')
       return;
     }
-    if (!items.base_point) {
-      this.showToast('请输入任务积分')
-      return;
+    if(items.checked){
+      let selectRule=this.data.selectRule;
+      if (!selectRule) {
+        this.showToast('请选择规则')
+        return;
+      }
+      if (!items.base_point) {
+        this.showToast('请输入任务积分')
+        return;
+      }
+      let value=items.base_point;
+      let point;
+      if (!this.data.isArrindex) {
+        point = 0 - value;
+      } else {
+        point = value;
+      }
+      console.log(selectRule,point)
+      if (point < selectRule.min_point || point > selectRule.max_point) {
+        this.showToast(`任务分值超出可输入范围`);
+        return false
+      }
+      items.base_point=point;
+      items.qualified=point;
+    }else{
+      if (!items.base_point2) {
+        this.showToast('请输入任务积分')
+        return;
+      }
+      items.base_point=items.base_point2
+      items.qualified=items.base_point2;
+      delete items.rule_id
+      delete items.item_id
     }
     if (items.targets.length == 0) {
       this.showToast('请选择执行对象')
@@ -322,21 +412,19 @@ Page({
     items.targets = items.targets.toString();
     this.setData({ disabled: true });
     app.$post('api/integral/work/update', items).then((res) => {
-        page1.getDetail(items.id,function(){
-            app.globalData.showToast(res.data.msg);
-            setTimeout(() => {
-              dd.navigateBack({ delta: 1 })
-            }, 1000);
-        })
+      page1.getDetail(items.id, function () {
+        app.globalData.showToast(res.data.msg);
+        setTimeout(() => {
+          dd.navigateBack({ delta: 1 })
+        }, 1000);
+      })
     }).finally(err => {
       this.setData({ disabled: false });
     })
   },
   switchChange(e) {
-    var index = e.target.dataset.index;
-    var item = `items[${index}].checked`;
     that.setData({
-      [item]: e.detail.value
+      [`items.checked`]: e.detail.value
     })
   },
   //选择时间

+ 1 - 0
pages/statistics/assaign_set/assaign_set.json

@@ -1,5 +1,6 @@
 {
   "usingComponents": {
+    "select-rule": "/Component/selectRule/selectRule",
     "select-section-staff-two":"/Component/selectSectionStaff_tow/selectSectionStaff_tow",
     "select-section-staff":"/Component/selectSectionStaff/selectSectionStaff"
   }

+ 1 - 1
pages/statistics/my_issue/my_issue.acss

@@ -82,7 +82,7 @@
   padding: 0 6rpx;
 }
 .scroll {
-  height:  calc(100vh - 115rpx);
+  height:  calc(100vh - 215rpx);
 }
 .sxImg{
   width: 30rpx;

+ 10 - 2
pages/statistics/my_issue/my_issue.axml

@@ -1,6 +1,5 @@
 <view>
-  <view class="header margin-bottom">
-    <!--<form onReset="onReset"><view class="search flex-box flex-v-ce"><image mode="scaleToFill" src="../../../image/ss.png"></image><input placeholder="请输入姓名或事件内容搜索" onInput="bindKeyInput" class="flex-1"></input><button a:if="{{isVal}}" class="delVal" formType="reset">×</button></view></form> -->
+  <view class="header margin-bottom" style="padding-bottom:16rpx;">
     <view class="flex-box flex-v-ce selectItems border-bottom">
       <view data-index="1" class="{{activeIndex == 1? 'active':''}} flex-2" catchTap="activeItem">我指派的</view>
       <view data-index="2" class="{{activeIndex == 2? 'active':''}} flex-2" catchTap="activeItem">我悬赏的</view>
@@ -9,6 +8,15 @@
         <image mode="scaleToFill" class="sxImg" src="../../../image/sx.png"/>
       </view>
     </view>
+    <form onReset="onReset">
+      <view style="margin-top:16rpx;">
+        <view class="search flex-box flex-v-ce">
+          <image mode="scaleToFill" src="../../../image/ss.png"/>
+          <input class="flex-1" placeholder="请输入任务内容" onInput="bindKeyInput" class="flex-1"/>
+          <button a:if="{{isVal}}" class="delVal" formType="reset">×</button>
+        </view>
+      </view>
+    </form>
   </view>
   <view class="main scroll">
     <scroll-view class="scroll" a:if="{{(activeIndex==1||activeIndex==2)&&list.length>0}}" scroll-y="{{true}}" onScrollToLower="onScrollToLower">

+ 28 - 9
pages/statistics/my_issue/my_issue.js

@@ -16,7 +16,8 @@ Page({
       pt_id: 0,
       order_by: 'create_time',
     },
-    list: []
+    list: [],
+    searchName: '',
   },
   onLoad(e) {
     if (e.index) {
@@ -27,7 +28,22 @@ Page({
     that = this;
     dd.setNavigationBar({ title: "我发布的任务" });
   },
-
+  onReset() {
+    this.setData({
+      page: 1,
+      isVal: false,
+      searchName: ''
+    })
+    this.getData(this.data.activeIndex);
+  },
+  bindKeyInput(e) {
+    this.setData({
+      page: 1,
+      isVal: e.detail.value ? true : false,
+      searchName: e.detail.value ? e.detail.value : '',
+    })
+    this.getData(this.data.activeIndex);
+  },
   //显示选择员工
   selectSx() {
     if (this.data.activeIndex == 3) {
@@ -64,28 +80,28 @@ Page({
         }
       })
     }
-    this.setData({list:[]})
+    this.setData({ list: [] })
     this.getData(this.data.activeIndex);
   },
   onShow() {
     if (this.data.page == 1) {
       dd.hideLoading();
-      this.setData({list:[]})
+      this.setData({ list: [] })
       that.getData(that.data.activeIndex);
     }
   },
-    //过滤List,通常用于删除了某条数据,刷新列表
-  filtrationList(index,id) {
+  //过滤List,通常用于删除了某条数据,刷新列表
+  filtrationList(index, id) {
     if (index == 1) {
       this.getToDay()
-    } else if(index==2&&this.data.page!=1){
-      var list=this.data.list;
+    } else if (index == 2 && this.data.page != 1) {
+      var list = this.data.list;
       for (let i in list) {
         if (list[i].id == id) {
           list.splice(i, 1)
         }
       }
-      this.setData({ list:list})
+      this.setData({ list: list })
     }
   },
   getData(index, is) {
@@ -100,6 +116,7 @@ Page({
         pt_id: parameter1.pt_id,//类型
         status: parameter1.status,//状态
         sort: parameter1.sort,//排序
+        content:that.data.searchName,
       }
     } else if (index == 2) {
       var parameter2 = this.data.parameter2;
@@ -110,11 +127,13 @@ Page({
         source_type: 1,
         pt_id: parameter2.pt_id,//类型
         order_by: parameter2.order_by,//类型
+        content:that.data.searchName,
       }
     } else {
       data = {
         page: that.data.page,
         page_size: 20,
+        content:that.data.searchName,
       }
     }
     app.$get(urlS[index - 1], data).then((res) => {

+ 1 - 1
pages/statistics/my_sp/my_sp.acss

@@ -52,7 +52,7 @@
 }
 
 .scroll {
-  height: calc(100vh - 115rpx);
+  height: calc(100vh - 215rpx);
 }
 
 .sxImg {

+ 10 - 1
pages/statistics/my_sp/my_sp.axml

@@ -1,5 +1,5 @@
 <view>
-  <view class="header margin-bottom">
+  <view class="header margin-bottom" style="padding-bottom:16rpx;">
     <view class="flex-box flex-v-ce tab border-bottom">
       <view class="flex-2">
         <picker onChange="activeItem" value="{{minuteIndex}}" range="{{minuteArray}}" range-key="name">
@@ -13,6 +13,15 @@
         <image mode="scaleToFill" class="sxImg" src="../../../image/sx.png"/>
       </view>
     </view>
+    <form onReset="onReset">
+      <view style="margin-top:16rpx;">
+        <view class="search flex-box flex-v-ce">
+          <image mode="scaleToFill" src="../../../image/ss.png"/>
+          <input class="flex-1" placeholder="请输入任务内容" onInput="bindKeyInput" class="flex-1"/>
+          <button a:if="{{isVal}}" class="delVal" formType="reset">×</button>
+        </view>
+      </view>
+    </form>
   </view>
   <view class="main scroll">
     <scroll-view class="scroll" a:if="{{(minuteIndex==0)&&list.length>0}}" scroll-y="{{true}}" onScrollToLower="onScrollToLower">

+ 20 - 4
pages/statistics/my_sp/my_sp.js

@@ -15,7 +15,7 @@ Page({
     },
     
     showStaff: false,//显示员工选择
-    staffVal: '负责人',
+    staffVal: '执行人',
     minuteIndex: 0,//条件选择
     minuteArray: [
       { id: 0, name: '待完成' },
@@ -50,6 +50,22 @@ Page({
       },function(){})
     }
   },
+  onReset() {
+    this.setData({
+      page: 1,
+      isVal: false,
+      searchName: ''
+    })
+    this.getData(this.data.activeIndex);
+  },
+  bindKeyInput(e) {
+    this.setData({
+      page: 1,
+      isVal: e.detail.value ? true : false,
+      searchName: e.detail.value ? e.detail.value : '',
+    })
+    this.getData(this.data.activeIndex);
+  },
   //显示选择员工
   selectStaff() {
     this.setData({
@@ -63,7 +79,7 @@ Page({
     //选择员工
   onConfirmStaff(data) {
     if (!data) {
-      this.setData({ staffVal: '负责人', employee_ids: '', page: 1 })
+      this.setData({ staffVal: '执行人', employee_ids: '', page: 1 })
       this.getData();
       return false;
     }
@@ -81,7 +97,7 @@ Page({
         this.setData({ staffVal: data[0].name, employee_ids: [data[0].id], page: 1 })
       }
     } else {
-      this.setData({ staffVal: '负责人', employee_ids: [], page: 1 })
+      this.setData({ staffVal: '执行人', employee_ids: [], page: 1 })
     }
     this.getData();
   },
@@ -116,6 +132,7 @@ Page({
       status: parameter.status,//工作状态 all-全部 running-进行中 complete-工作已完成 refuse-拒绝 reviewed-已审批 revocation-发布者撤回
       sort: parameter.sort,//排序种类 expire-过期时间倒序 publish-指派时间倒序
       employee_id:this.data.employee_ids,
+      content:that.data.searchName,
     }
     app.$get('api/integral/work/list/reviewer', data).then((res) => {
       var data = res.data.data.list;
@@ -160,7 +177,6 @@ Page({
   },
   activeItem(e) {
     var index = Number(e.detail.value)+1;
-    console.log(index)
     var status = "";
     if (index == 1) {
       status = "running"

+ 1 - 1
pages/statistics/my_task/my_task.acss

@@ -52,7 +52,7 @@
 }
 
 .scroll {
-  height: calc(100vh - 115rpx);
+  height: calc(100vh - 215rpx);
 }
 
 .sxImg {

+ 10 - 2
pages/statistics/my_task/my_task.axml

@@ -1,6 +1,5 @@
 <view>
-  <view class="header margin-bottom">
-    <!--<form onReset="onReset"><view class="search flex-box flex-v-ce"><image mode="scaleToFill" src="../../../image/ss.png"></image><input placeholder="请输入姓名或事件内容搜索" onInput="bindKeyInput" class="flex-1"></input><button a:if="{{isVal}}" class="delVal" formType="reset">×</button></view></form> -->
+  <view class="header margin-bottom" style="padding-bottom:16rpx;">
     <view class="flex-box flex-v-ce selectItems border-bottom">
       <view data-index="1" class="{{activeIndex == 1? 'active':''}} flex-2" catchTap="activeItem">待完成</view>
       <view data-index="2" class="{{activeIndex == 2? 'active':''}} flex-2" catchTap="activeItem">待审批</view>
@@ -9,6 +8,15 @@
         <image mode="scaleToFill" class="sxImg" src="../../../image/sx.png"/>
       </view>
     </view>
+    <form onReset="onReset">
+      <view style="margin-top:16rpx;">
+        <view class="search flex-box flex-v-ce">
+          <image mode="scaleToFill" src="../../../image/ss.png"/>
+          <input class="flex-1" placeholder="请输入任务内容" onInput="bindKeyInput" class="flex-1"/>
+          <button a:if="{{isVal}}" class="delVal" formType="reset">×</button>
+        </view>
+      </view>
+    </form>
   </view>
   <view class="main scroll">
     <scroll-view class="scroll" a:if="{{(activeIndex==1)&&list.length>0}}" scroll-y="{{true}}" onScrollToLower="onScrollToLower">

+ 17 - 0
pages/statistics/my_task/my_task.js

@@ -47,6 +47,22 @@ Page({
       },function(){})
     }
   },
+  onReset() {
+    this.setData({
+      page: 1,
+      isVal: false,
+      searchName: ''
+    })
+    this.getData(this.data.activeIndex);
+  },
+  bindKeyInput(e) {
+    this.setData({
+      page: 1,
+      isVal: e.detail.value ? true : false,
+      searchName: e.detail.value ? e.detail.value : '',
+    })
+    this.getData(this.data.activeIndex);
+  },
   //显示选择员工
   selectSx() {
     this.setData({ showZp: true })
@@ -88,6 +104,7 @@ Page({
       pt_id: parameter.pt_id,//类型
       status: parameter.status,//工作状态 all-全部 running-进行中 complete-工作已完成 refuse-拒绝 reviewed-已审批 revocation-发布者撤回
       sort: parameter.sort,//排序种类 expire-过期时间倒序 publish-指派时间倒序
+      content:that.data.searchName,
     }
     app.$get('api/integral/work/list', data).then((res) => {
       var data = res.data.data.list;

+ 43 - 7
pages/statistics/offerAreward/offerAreward.axml

@@ -1,8 +1,19 @@
 <view>
   <view class="{{popupCx}}">
     <view class="inputs">
+      <view class="flex-box flex-v-ce li" style="padding:26rpx 28rpx;">
+        <view class="label">指定规则</view>
+        <view class="flex-1"></view>
+        <switch onChange="switchChange" checked="{{items.checked}}" color="#26A2FF"></switch>
+      </view>
+      <view class="flex-box flex-v-ce li" data-ruleId="{{items.item_id}}" a:if="{{items.checked}}"  data-num="3" catchTap="openSelect">
+        <view class="label isBt">选择规则</view>
+        <view class="flex-1" a:if="{{selectRule}}">已选择1条</view>
+        <view class="flex-1" a:else></view>
+        <image mode="scaleToFill" src="../../../image/right.png" class="rightImg"/>
+      </view>
       <view class="li">
-        <textarea class="textarea" maxlength="100" value="{{items.remark}}" onInput="bindTextAreaBlur" placeholder="请输入任务内容" data-index="{{index}}"></textarea>
+        <textarea class="textarea" maxlength="100" value="{{items.task_name}}" onInput="bindTextAreaBlur" placeholder="请输入任务内容" data-index="{{index}}"></textarea>
         <image mode="scaleToFill" src="../../../image/addImg.png" class="addImg" catchTap="openImg"/>
       </view>
       <view style="background:#fff;padding:0 28rpx;" a:if="{{items.file_list[0]}}" class="flex-box flex-v-ce">
@@ -11,13 +22,37 @@
           <image mode="scaleToFill" class="showImg" src="{{imgs}}" data-index="{{imgIndex}}" data-item="{{items.file_list}}" catchTap="showImg"/>
         </view>
       </view>
-      <view class="flex-box li margin-bottom" style="padding:15rpx 28rpx;margin-top:24rpx">
+        <view class="flex-box li margin-bottom" style="padding:15rpx 28rpx;margin-top:24rpx" a:if="{{items.checked}}">
+        <view class="label isBt" style="position: relative;top:8rpx;">任务积分</view>
+        <text class="red" style="position: relative;top:8rpx;" a:if="{{isArrindex==true}}">+</text>
+        <text class="green" a:else style="position: relative;top:8rpx;">-</text>
+        <view class="flex-1">
+          <view class="flex-box flex-v-ce">
+            <view a:if="{{selectRule.range_type==1&&selectRule.min_point==selectRule.max_point}}" style="padding-left:10rpx; height:60rpx;line-height:60rpx;" class="flex-1">{{items.base_point}}</view>
+            <input a:else value="{{items.base_point}}" placeholder="0" type="number" onInput="bindKeyInput1"  class="flex-1"/>
+            <view class="picker-box" catchTap="bindPickerChange" a:if="{{selectRule.range_type!=1}}">
+              <view class="{{isArrindex==true? 'picker-right':'picker-left'}} yuan"></view>
+              <view class="flex-box flex-v-ce" class="picker">
+                <text class="red flex-1">奖</text>
+                <text class="green flex-1">扣</text>
+              </view>
+            </view>
+          </view>
+          <block a:if="{{selectRule}}">
+            <view class="fontColorT input_text" a:if="{{selectRule.range_type==1&&selectRule.min_point==selectRule.max_point}}">固定:{{selectRule.min_point}} {{selectRule.pt_Obj[0].name}}</view>
+            <view class="fontColorT input_text" a:else> 范围(可修改):{{selectRule.min_point}}至{{selectRule.max_point}}
+              <text>{{selectRule.pt_Obj[0].name}}</text></view>
+          </block>
+        </view>
+      </view>
+      <view class="flex-box li margin-bottom" style="padding:15rpx 28rpx;margin-top:24rpx" a:else>
         <view class="label isBt" style="position: relative;top:10rpx;">任务积分</view>
         <text class="red" style="position: relative;top:10rpx;">+</text>
         <view class="flex-1">
-          <input value="{{item.point2}}" placeholder="0" type="number" onInput="bindKeyInput" class="flex-1"/>
+          <input value="{{items.base_point2}}" placeholder="0" type="number" onInput="bindKeyInput2" class="flex-1"/>
         </view>
       </view>
+
       <view class="flex-box flex-v-ce li" data-num="2" data-item="{{{id:items.reviewer_id,name:items.revieweName}}}" catchTap="openSelect">
         <view class="label isBt">审批人</view>
         <view class="flex-1">{{items.revieweName}}</view>
@@ -57,16 +92,16 @@
         <view class="label2" style="position: relative;top:10rpx;">提前奖分(天)</view>
         <text class="red" style="position: relative;top:10rpx;">+</text>
         <view class="flex-box-ce flex-1">
-          <input value="{{items.ahead_award_point}}" data-name="ahead_award_point" placeholder="提前奖多少分" type="number" onInput="bindKeyInput2"/>
-          <input style="border-left:1px solid #f1f1f1" data-name="ahead_award_point_limit" value="{{items.ahead_award_point_limit}}"  placeholder="奖分上限" type="number" onInput="bindKeyInput2"/>
+          <input value="{{items.ahead_award_point}}" data-name="ahead_award_point" placeholder="提前奖多少分" type="number" onInput="bindKeyInput3"/>
+          <input style="border-left:1px solid #f1f1f1" data-name="ahead_award_point_limit" value="{{items.ahead_award_point_limit}}"  placeholder="奖分上限" type="number" onInput="bindKeyInput3"/>
         </view>
       </view>
       <view class="flex-box li" style="padding:15rpx 28rpx;">
         <view class="label2" style="position: relative;top:10rpx;">逾期扣分(天)</view>
         <text class="green" style="position: relative;top:10rpx;">-</text>
         <view class="flex-box-ce flex-1">
-          <input value="{{items.timeout_deduction_point}}" data-name="timeout_deduction_point" placeholder="逾期扣多少分" type="number" onInput="bindKeyInput2"/>
-          <input style="border-left:1px solid #f1f1f1" data-name="timeout_deduction_point_limit"  value="{{items.timeout_deduction_point_limit}}"  placeholder="扣分上限" type="number" onInput="bindKeyInput2"/>
+          <input value="{{items.timeout_deduction_point}}" data-name="timeout_deduction_point" placeholder="逾期扣多少分" type="number" onInput="bindKeyInput3"/>
+          <input style="border-left:1px solid #f1f1f1" data-name="timeout_deduction_point_limit"  value="{{items.timeout_deduction_point_limit}}"  placeholder="扣分上限" type="number" onInput="bindKeyInput3"/>
         </view>
       </view>
       <view class="flex-box flex-v-ce li" data-num="1" catchTap="openSelect">
@@ -84,6 +119,7 @@
     </view>
   </view>
   <view class="box" animation="{{animationInfo}}">
+    <select-rule defaultId="{{defaultRuleId}}" onConfirm="onSelectItem" onClose="onClose" a:if="{{isShowType=='3'}}"/>
     <select-section-bottom defaultSection="{{defaultSection}}" onClose="onClose" onConfirm="onSelectSection" a:if="{{isShowType=='1'}}"/>
     <select-section-staff-two islead="{{true}}"  selectUser="{{reviewerObj}}" onClose="onClose" onConfirm="onSelectUser2" a:if="{{isShowType=='2'}}"/>
   </view>

+ 85 - 13
pages/statistics/offerAreward/offerAreward.js

@@ -9,6 +9,7 @@ Page({
       task_name: '',//任务名
       task_remark: '',//任务详细描述
       base_point: '',//任务参考积分
+      base_point2: '',//任务参考积分
       expire_time: '',//截至时间 格式:2020-02-02 12:00
       file_list: [],//附件地址列表
       reviewer_id: '',//审批者id
@@ -20,9 +21,11 @@ Page({
 
       task_cycle: 0,//任务发布周期 1-天 2-周 3-月
       task_expire_day: 1,//任务截至天数
-
       task_type: 1,
-      popupCx: '',
+
+      checked: false,//是否选择规则
+      rule_id: '',//积分分类id
+      item_id: '',//积分细则id 不选可以为0
     },
     reviewerObj: [],//默认审批人
     objectArray: [
@@ -47,10 +50,16 @@ Page({
     defaultSection: [],//选择的部门
     point_limit: 0,
     columnsIndex: 0,//条件选择
+    popupCx: '',
     columnsArray: [{ name: '01:00', value: 1 }, { name: '02:00', value: 2 }, { name: '03:00', value: 3 }, { name: '04:00', value: 4 }, { name: '05:00', value: 5 }, { name: '06:00', value: 6 }, { name: '07:00', value: 7 }, { name: '08:00', value: 8 }, { name: '09:00', value: 9 }, { name: '10:00', value: 10 }, { name: '11:00', value: 11 }, { name: '12:00', value: 12 }, { name: '13:00', value: 13 }, { name: '14:00', value: 14 }, { name: '15:00', value: 15 }, { name: '16:00', value: 16 }, { name: '17:00', value: 17 }, { name: '18:00', value: 18 }, { name: '19:00', value: 19 }, { name: '20:00', value: 20 }, { name: '21:00', value: 21 }, { name: '22:00', value: 22 }, { name: '23:00', value: 23 }, { name: '24:00', value: 24 }],
     columns1: [{ name: '01:00', value: 1 }, { name: '02:00', value: 2 }, { name: '03:00', value: 3 }, { name: '04:00', value: 4 }, { name: '05:00', value: 5 }, { name: '06:00', value: 6 }, { name: '07:00', value: 7 }, { name: '08:00', value: 8 }, { name: '09:00', value: 9 }, { name: '10:00', value: 10 }, { name: '11:00', value: 11 }, { name: '12:00', value: 12 }, { name: '13:00', value: 13 }, { name: '14:00', value: 14 }, { name: '15:00', value: 15 }, { name: '16:00', value: 16 }, { name: '17:00', value: 17 }, { name: '18:00', value: 18 }, { name: '19:00', value: 19 }, { name: '20:00', value: 20 }, { name: '21:00', value: 21 }, { name: '22:00', value: 22 }, { name: '23:00', value: 23 }, { name: '24:00', value: 24 }],
     columns2: [{ name: '周一', value: 1 }, { name: '周二', value: 2 }, { name: '周三', value: 3 }, { name: '周四', value: 4 }, { name: '周五', value: 5 }, { name: '周六', value: 6 }, { name: '周日', value: 7 }],
     columns3: [{ name: '1号', value: 1 }, { name: '2号', value: 2 }, { name: '3号', value: 3 }, { name: '4号', value: 4 }, { name: '5号', value: 5 }, { name: '6号', value: 6 }, { name: '7号', value: 7 }, { name: '8号', value: 8 }, { name: '9号', value: 9 }, { name: '10号', value: 10 }, { name: '11号', value: 11 }, { name: '12号', value: 12 }, { name: '13号', value: 13 }, { name: '14号', value: 14 }, { name: '15号', value: 15 }, { name: '16号', value: 16 }, { name: '17号', value: 17 }, { name: '18号', value: 18 }, { name: '19号', value: 19 }, { name: '20号', value: 20 }, { name: '21号', value: 21 }, { name: '22号', value: 22 }, { name: '23号', value: 23 }, { name: '24号', value: 24 }, { name: '25号', value: 25 }, { name: '26号', value: 26 }, { name: '27号', value: 27 }, { name: '28号', value: 28 }, { name: '29号', value: 29 }, { name: '30号', value: 30 }, { name: '31号', value: 31 }],
+
+    defaultRuleId: '',
+    selectRule: '',//选择的规则
+    isArrindex: true,
+
   },
   onLoad() {
     that = this;
@@ -61,6 +70,37 @@ Page({
       point_limit: app.globalData.userData.point_config.point_limit
     })
   },
+  //选择奖还是扣(细则)
+  bindPickerChange() {
+    this.setData({
+      isArrindex: !that.data.isArrindex,
+    });
+  },
+  switchChange(e) {
+    that.setData({
+      [`items.checked`]: e.detail.value
+    })
+  },
+  //选择规则
+  onSelectItem(item) {
+    console.log(item)
+    var strMin;
+    if (item.min_point < 0) {
+      var min = item.min_point.toString();
+      var strMin = min.slice(1, min.length);
+    } else {
+      strMin = item.min_point;
+    }
+    that.setData({
+      selectRule: item,
+      [`items.task_name`]: item.remark,
+      [`items.base_point`]: Number(strMin),
+      isArrindex: item.min_point > 0 ? true : false,
+      [`items.rule_id`]: item.rule_id,
+      [`items.item_id`]: item.id,
+    })
+  },
+
   activeDate(e) {
     this.setData({
       columnsIndex: e.detail.value,
@@ -94,7 +134,7 @@ Page({
     });
   },
   //积分输入
-  bindKeyInput(e) {
+  bindKeyInput1(e) {
     var point = `items.base_point`;
     this.setData({
       [point]: e.detail.value,
@@ -102,6 +142,12 @@ Page({
   },
   //积分输入
   bindKeyInput2(e) {
+    this.setData({
+      [`items.base_point2`]: e.detail.value,
+    });
+  },
+  //积分输入
+  bindKeyInput3(e) {
     var name = e.target.dataset.name;
     let value = e.detail.value;
     var point = `items.${name}`;
@@ -175,6 +221,9 @@ Page({
         that.setData({ reviewerObj: [] });
       }
     }
+    if (e.target.dataset.ruleId) {
+      that.setData({ defaultRuleId: e.target.dataset.ruleId });
+    }
     animation.translateY(0).step();
     that.setData({
       isShowType: num,
@@ -293,10 +342,40 @@ Page({
       this.showToast('请输入任务内容')
       return;
     }
-    if (!items.base_point) {
-      this.showToast('请输入任务积分')
-      return;
+    if (items.checked) {
+      let selectRule = this.data.selectRule;
+      if (!selectRule) {
+        this.showToast('请选择规则')
+        return;
+      }
+      if (!items.base_point) {
+        this.showToast('请输入任务积分')
+        return;
+      }
+      let value = items.base_point;
+      let point;
+      if (!this.data.isArrindex) {
+        point = 0 - value;
+      } else {
+        point = value;
+      }
+      if (point < selectRule.min_point || point > selectRule.max_point) {
+        this.showToast(`任务分值超出可输入范围`);
+        return false
+      }
+      items.base_point = point;
+      items.qualified = point;
+    } else {
+      if (!items.base_point2) {
+        this.showToast('请输入任务积分')
+        return;
+      }
+      items.base_point = items.base_point2
+      items.qualified = items.base_point2;
+      delete items.rule_id
+      delete items.item_id
     }
+
     if (!items.reviewer_id) {
       this.showToast('请选择审批人')
       return;
@@ -339,13 +418,6 @@ Page({
       this.setData({ disabled: false });
     })
   },
-  switchChange(e) {
-    var index = e.target.dataset.index;
-    var item = `items[${index}].checked`;
-    that.setData({
-      [item]: e.detail.value
-    })
-  },
   //选择时间
   openDate(e) {
     var item = `items.expire_time`

+ 1 - 0
pages/statistics/offerAreward/offerAreward.json

@@ -1,5 +1,6 @@
 {
   "usingComponents": {
+    "select-rule": "/Component/selectRule/selectRule",
     "select-section-staff-two":"/Component/selectSectionStaff_tow/selectSectionStaff_tow",
     "select-section-bottom":"/Component/selectSectionBottom/selectSectionBottom"
   }

+ 47 - 7
pages/statistics/offerAreward_set/offerAreward_set.axml

@@ -1,6 +1,18 @@
 <view>
-  <view>
+  <view class="{{popupCx}}">
     <view class="inputs">
+      <view class="flex-box flex-v-ce li" style="padding:26rpx 28rpx;">
+        <view class="label">指定规则</view>
+        <view class="flex-1"></view>
+        <switch onChange="switchChange" checked="{{items.checked}}" color="#26A2FF"></switch>
+      </view>
+      <view class="flex-box flex-v-ce li" data-ruleId="{{items.item_id}}" a:if="{{items.checked}}"  data-num="3" catchTap="openSelect">
+        <view class="label isBt">选择规则</view>
+        <view class="flex-1" a:if="{{selectRule}}">已选择1条</view>
+        <view class="flex-1" a:else></view>
+        <image mode="scaleToFill" src="../../../image/right.png" class="rightImg"/>
+      </view>
+
       <view class="li">
         <textarea class="textarea" maxlength="100" value="{{items.task_name}}" onInput="bindTextAreaBlur" placeholder="请输入任务内容" data-index="{{index}}"></textarea>
         <image mode="scaleToFill" src="../../../image/addImg.png" class="addImg" catchTap="openImg"/>
@@ -11,13 +23,40 @@
           <image mode="scaleToFill" class="showImg" src="{{imgs}}" data-index="{{imgIndex}}" data-item="{{items.file_list}}" catchTap="showImg"/>
         </view>
       </view>
-      <view class="flex-box li margin-bottom" style="padding:15rpx 28rpx;margin-top:24rpx">
+      <view class="flex-box li margin-bottom" style="padding:15rpx 28rpx;margin-top:24rpx" a:if="{{items.checked}}">
+        <view class="label isBt" style="position: relative;top:8rpx;">任务积分</view>
+        <text class="red" style="position: relative;top:8rpx;" a:if="{{isArrindex==true}}">+</text>
+        <text class="green" a:else style="position: relative;top:8rpx;">-</text>
+        <view class="flex-1">
+          <view class="flex-box flex-v-ce">
+            <view a:if="{{selectRule.range_type==1&&selectRule.min_point==selectRule.max_point}}" style="padding-left:10rpx; height:60rpx;line-height:60rpx;" class="flex-1">{{items.base_point}}</view>
+            <input a:else value="{{items.base_point}}" placeholder="0" type="number" onInput="bindKeyInput1"  class="flex-1"/>
+            <view class="picker-box" catchTap="bindPickerChange" a:if="{{selectRule.range_type!=1}}">
+              <view class="{{isArrindex==true? 'picker-right':'picker-left'}} yuan"></view>
+              <view class="flex-box flex-v-ce" class="picker">
+                <text class="red flex-1">奖</text>
+                <text class="green flex-1">扣</text>
+              </view>
+            </view>
+          </view>
+          <block a:if="{{selectRule}}">
+            <view class="fontColorT input_text" a:if="{{selectRule.range_type==1&&selectRule.min_point==selectRule.max_point}}">固定:{{selectRule.min_point}} {{items.pt_name}}</view>
+            <view class="fontColorT input_text" a:else> 范围(可修改):{{selectRule.min_point}}至{{selectRule.max_point}}
+              <text>{{items.pt_name}}</text>
+            </view>
+          </block>
+        </view>
+      </view>
+
+      <view class="flex-box li margin-bottom" style="padding:15rpx 28rpx;margin-top:24rpx" a:else>
         <view class="label isBt" style="position: relative;top:10rpx;">任务积分</view>
         <text class="red" style="position: relative;top:10rpx;">+</text>
         <view class="flex-1">
-          <input value="{{items.base_point}}" placeholder="0" type="number" onInput="bindKeyInput" class="flex-1"/>
+          <input value="{{items.base_point2}}" placeholder="0" type="number" onInput="bindKeyInput2" class="flex-1"/>
         </view>
       </view>
+
+
       <view class="flex-box flex-v-ce li" data-num="2" data-item="{{{id:items.reviewer_id,name:items.revieweName}}}" catchTap="openSelect">
         <view class="label isBt">审批人</view>
         <view class="flex-1">{{items.revieweName}}</view>
@@ -43,16 +82,16 @@
         <view class="label2" style="position: relative;top:10rpx;">提前奖分(天)</view>
         <text class="red" style="position: relative;top:10rpx;">+</text>
         <view class="flex-box-ce flex-1">
-          <input value="{{items.ahead_award_point}}" data-name="ahead_award_point" placeholder="提前奖多少分" type="number" onInput="bindKeyInput2"/>
-          <input style="border-left:1px solid #f1f1f1" data-name="ahead_award_point_limit" value="{{items.ahead_award_point_limit}}"  placeholder="奖分上限" type="number" onInput="bindKeyInput2"/>
+          <input value="{{items.ahead_award_point}}" data-name="ahead_award_point" placeholder="提前奖多少分" type="number" onInput="bindKeyInput3"/>
+          <input style="border-left:1px solid #f1f1f1" data-name="ahead_award_point_limit" value="{{items.ahead_award_point_limit}}"  placeholder="奖分上限" type="number" onInput="bindKeyInput3"/>
         </view>
       </view>
       <view class="flex-box li" style="padding:15rpx 28rpx;">
         <view class="label2" style="position: relative;top:10rpx;">逾期扣分(天)</view>
         <text class="green" style="position: relative;top:10rpx;">-</text>
         <view class="flex-box-ce flex-1">
-          <input value="{{items.timeout_deduction_point}}" data-name="timeout_deduction_point" placeholder="逾期扣多少分" type="number" onInput="bindKeyInput2"/>
-          <input style="border-left:1px solid #f1f1f1" data-name="timeout_deduction_point_limit"  value="{{items.timeout_deduction_point_limit}}"  placeholder="扣分上限" type="number" onInput="bindKeyInput2"/>
+          <input value="{{items.timeout_deduction_point}}" data-name="timeout_deduction_point" placeholder="逾期扣多少分" type="number" onInput="bindKeyInput3"/>
+          <input style="border-left:1px solid #f1f1f1" data-name="timeout_deduction_point_limit"  value="{{items.timeout_deduction_point_limit}}"  placeholder="扣分上限" type="number" onInput="bindKeyInput3"/>
         </view>
       </view>
       <view class="flex-box flex-v-ce li" data-num="1" catchTap="openSelect">
@@ -70,6 +109,7 @@
     </view>
   </view>
   <view class="box" animation="{{animationInfo}}">
+    <select-rule defaultId="{{defaultRuleId}}" onConfirm="onSelectItem" onClose="onClose" a:if="{{isShowType=='3'}}"/>
     <select-section-bottom defaultSection="{{defaultSection}}" onClose="onClose" onConfirm="onSelectSection" a:if="{{isShowType=='1'}}"/>
     <select-section-staff-two islead="{{true}}"  selectUser="{{reviewerObj}}" onClose="onClose" onConfirm="onSelectUser2" a:if="{{isShowType=='2'}}"/>
   </view>

+ 128 - 38
pages/statistics/offerAreward_set/offerAreward_set.js

@@ -9,6 +9,7 @@ Page({
       task_name: '',//任务名
       task_remark: '',//任务详细描述
       base_point: '',//任务参考积分
+      base_point2: '',//任务参考积分
       expire_time: '',//截至时间 格式:2020-02-02 12:00
       file_list: [],//附件地址列表
       reviewer_id: '',//审批者id
@@ -20,6 +21,11 @@ Page({
       task_cycle: 0,
       task_expire_day: 1,
       task_type:1,
+
+      pt_name:'B分',
+      checked: false,//是否选择规则
+      rule_id: '',//积分分类id
+      item_id: 0,//积分细则id 不选可以为0
     },
     reviewerObj: [],//默认审批人
     objectArray: [
@@ -43,6 +49,11 @@ Page({
     arrIndex: 0,
     defaultSection: [],//选择的部门
     point_limit:0,
+
+    defaultRuleId: '',
+    selectRule: '',//选择的规则
+    isArrindex: true,
+    popupCx: '',
   },
   onLoad(e) {
     that = this;
@@ -55,7 +66,15 @@ Page({
           arr.push(item.id);
         })
       }
+      if(item.item_id){
+        if(item.point_config.base_point<0){
+          this.setData({
+              isArrindex:false
+          })
+        }
+      }
       this.setData({
+        selectRule:item.item_id? item.point_config.item_info:'',
         reviewerObj:[{name:item.reviewer_name,id:item.reviewer_id}],
         users:[{name:item.employee_name,id:item.employee_id}],
         defaultSection:item.department_info,
@@ -65,7 +84,8 @@ Page({
           pt_id: item.pt_id,//积分种类id
           task_name: item.task_name,//任务名
           task_remark: item.task_remark,//任务详细描述
-          base_point: item.point_config.base_point,//任务参考积分
+          base_point: item.point_config.base_point <0? (0-item.point_config.base_point):item.point_config.base_point,//任务参考积分
+          base_point2: item.point_config.base_point <0? (0-item.point_config.base_point):item.point_config.base_point,//任务参考积分
           expire_time: item.expire_time,//截至时间 格式:2020-02-02 12:00
           file_list: item.task_file_list,//附件地址列表
           reviewer_id:item.reviewer_id,//审批者id
@@ -77,12 +97,43 @@ Page({
           task_cycle: 0,
           task_expire_day: 1,
           task_type:1,
+
+          
+          rule_id: item.rule_id,//积分分类id
+          item_id: item.item_id,//积分细则id 不选可以为0
+          checked: item.item_id? true:false,//是否选择规则
         },
         types: app.globalData.types,
         point_limit:app.globalData.userData.point_config.point_limit
       })
     }
   },
+
+  //选择奖还是扣(细则)
+  bindPickerChange() {
+    this.setData({
+      isArrindex: !that.data.isArrindex,
+    });
+  },
+  //选择规则
+  onSelectItem(item) {
+    var strMin;
+    if (item.min_point < 0) {
+      var min = item.min_point.toString();
+      var strMin = min.slice(1, min.length);
+    } else {
+      strMin = item.min_point;
+    }
+    that.setData({
+      selectRule: item,
+      [`items.task_name`]: item.remark,
+      [`items.base_point`]: Number(strMin),
+      isArrindex: item.min_point > 0 ? true : false,
+      [`items.rule_id`]: item.rule_id,
+      [`items.item_id`]: item.id,
+    })
+  },
+
   bindObjPickerChange(e) {
     this.setData({
       arrIndex: e.detail.value,
@@ -100,44 +151,51 @@ Page({
       duration: 200,
       timeFunction: "linear",
     });
+  },
+    //积分输入
+  bindKeyInput2(e) {
+    this.setData({
+      [`items.base_point2`]: e.detail.value,
+    });
   },
   //积分输入
-  bindKeyInput(e) {
+  bindKeyInput1(e) {
     var point = `items.base_point`;
     this.setData({
       [point]: e.detail.value,
+      [`items.qualified`]: e.detail.value
     });
   },
   //积分输入
-  bindKeyInput2(e) {
+  bindKeyInput3(e) {
     var name = e.target.dataset.name;
-    let value=e.detail.value;
+    let value = e.detail.value;
     var point = `items.${name}`;
-	if(that.data.point_limit.length>0){
-		var pointIimit= that.data.point_limit[1].point;
-		if(pointIimit!=0&&pointIimit!=-1){
-		  if(name=='timeout_deduction_point'||name=='ahead_award_point'){
-		      pointIimit=pointIimit*1;
-		      if(value>pointIimit){
-		          this.showToast('分值不能超过您的奖扣分权限');
-		            this.setData({
-		              [point]: '',
-		            });
-		          return false
-		      }
-		  }else{
-		      pointIimit=pointIimit*10;
-		      if(value>pointIimit){
-		          this.showToast('上限不能超过'+pointIimit+'分');
-		            this.setData({
-		              [point]: '',
-		            });
-		          return false
-		      }
-		  }
-		}
-	}
-	this.setData({
+    if (that.data.point_limit.length > 0) {
+      var pointIimit = that.data.point_limit[1].point;
+      if (pointIimit != 0 && pointIimit != -1) {
+        if (name == 'timeout_deduction_point' || name == 'ahead_award_point') {
+          pointIimit = pointIimit * 1;
+          if (value > pointIimit) {
+            this.showToast('分值不能超过您的奖扣分权限');
+            this.setData({
+              [point]: '',
+            });
+            return false
+          }
+        } else {
+          pointIimit = pointIimit * 10;
+          if (value > pointIimit) {
+            this.showToast('上限不能超过' + pointIimit + '分');
+            this.setData({
+              [point]: '',
+            });
+            return false
+          }
+        }
+      }
+    }
+    this.setData({
       [point]: value,
     });
   },
@@ -155,9 +213,10 @@ Page({
   onClose() {
     animation.translateY(1200).step();
     that.setData({
-      animationInfo: animation.export()
+      animationInfo: animation.export(),
+      popupCx: '',
+      isShowType: '',
     });
-    that.setData({ isShowType: '' });
   },
   //选择部门
   onSelectSection(e) {
@@ -182,12 +241,14 @@ Page({
         that.setData({ reviewerObj: [] });
       }
     }
-    that.setData({
-      isShowType: num,
-    });
+    if (e.target.dataset.ruleId) {
+      that.setData({ defaultRuleId: e.target.dataset.ruleId });
+    }
     animation.translateY(0).step();
     that.setData({
-      animationInfo: animation.export()
+      animationInfo: animation.export(),
+      isShowType: num,
+      popupCx: 'container__mask',
     });
   },
   //删除图片
@@ -302,9 +363,38 @@ Page({
       this.showToast('请输入任务内容')
       return;
     }
-    if (!items.base_point) {
-      this.showToast('请输入任务积分')
-      return;
+    if(items.checked){
+      let selectRule=this.data.selectRule;
+      if (!selectRule) {
+        this.showToast('请选择规则')
+        return;
+      }
+      if (!items.base_point) {
+        this.showToast('请输入任务积分')
+        return;
+      }
+      let value=items.base_point;
+      let point;
+      if (!this.data.isArrindex) {
+        point = 0 - value;
+      } else {
+        point = value;
+      }
+      if (point < selectRule.min_point || point > selectRule.max_point) {
+        this.showToast(`任务分值超出可输入范围`);
+        return false
+      }
+      items.base_point=point;
+      items.qualified=point;
+    }else{
+      if (!items.base_point2) {
+        this.showToast('请输入任务积分')
+        return;
+      }
+      items.base_point=items.base_point2
+      items.qualified=items.base_point2;
+      delete items.rule_id
+      delete items.item_id
     }
     if (!items.reviewer_id) {
       this.showToast('请选择审批人')

+ 1 - 0
pages/statistics/offerAreward_set/offerAreward_set.json

@@ -1,5 +1,6 @@
 {
   "usingComponents": {
+    "select-rule": "/Component/selectRule/selectRule",
     "select-section-staff-two":"/Component/selectSectionStaff_tow/selectSectionStaff_tow",
     "select-section-bottom":"/Component/selectSectionBottom/selectSectionBottom"
   }

+ 31 - 1
pages/statistics/repetitive_tasks_detail/repetitive_tasks_detail.axml

@@ -1,6 +1,16 @@
 <view>
   <view class="header margin-bottom">
     <view class="header-main">
+      <view class="flex-box ">
+        <view class="laber">发布时间</view>
+        <view class="flex-1">{{dataDetail.create_time}}</view>
+      </view>
+      <view class="flex-box ">
+        <view class="laber">截止时间</view>
+        <view class="flex-1" a:if="{{dataDetail.task_cycle==1}}">{{dataDetail.task_cycle_mark}}{{dataDetail.task_cycle_value}}点</view>
+        <view class="flex-1" a:if="{{dataDetail.task_cycle==2}}">周{{dataDetail.task_cycle_value}}</view>
+        <view class="flex-1" a:if="{{dataDetail.task_cycle==3}}">{{dataDetail.task_cycle_mark}}{{dataDetail.task_cycle_value}}号</view>
+      </view>
       <view class="flex-box ">
         <view class="laber">任务内容</view>
         <view class="flex-1">{{dataDetail.name}}</view>
@@ -9,13 +19,33 @@
         <view class="laber">任务描述</view>
         <view class="flex-1">{{dataDetail.remark}}</view>
       </view>
+      <view class="flex-box flex-v-ce" a:if="{{dataDetail.point_config.base_point}}">
+        <view class="laber">任务积分</view>
+        <view class="flex-1">{{dataDetail.point_config.base_point}}{{dataDetail.pt_name}}</view>
+      </view>
       <view class="flex-box flex-v-ce">
         <view class="laber">任务类型</view>
         <view class="flex-1">{{dataDetail.pt_name}}</view>
       </view>
       <view class="flex-box flex-v-ce">
+        <view class="laber">发布人</view>
+        <view class="flex-1">{{dataDetail.owner_name}}</view>
+      </view>
+      <view class="flex-box flex-v-ce" a:if="{{dataDetail.point_config.ahead_award_point}}">
+        <view class="laber">提前奖分</view>
+        <view class="flex-1">{{dataDetail.point_config.ahead_award_point}}B分/天</view>
+      </view>
+      <view class="flex-box flex-v-ce" a:if="{{dataDetail.point_config.ahead_award_point_limit}}">
+        <view class="laber">奖分上限</view>
+        <view class="flex-1">{{dataDetail.point_config.ahead_award_point_limit}}B分</view>
+      </view>
+      <view class="flex-box flex-v-ce" a:if="{{dataDetail.point_config.timeout_deduction_point}}">
         <view class="laber">逾期扣分</view>
-        <view class="flex-1">{{dataDetail.point_config.timeout_deduction_point}}分/天</view>
+        <view class="flex-1">{{dataDetail.point_config.timeout_deduction_point}}B分/天</view>
+      </view>
+      <view class="flex-box flex-v-ce" a:if="{{dataDetail.point_config.timeout_deduction_point_limit}}">
+        <view class="laber">扣分上限</view>
+        <view class="flex-1">{{dataDetail.point_config.timeout_deduction_point_limit}}B分</view>
       </view>
       <view class="flex-box flex-v-ce">
         <view class="laber">执行周期</view>

+ 2 - 2
pages/statistics/taskDetail/taskDetail.axml

@@ -14,10 +14,10 @@
           <view class="red" a:else>已过期</view>
         </view>
       </view>
-      <view class="name">{{dataDetail.point_config.base_point}}</view>
+      <view class="name">{{dataDetail.point_config.base_point}}{{dataDetail.pt_name}}</view>
     </view>
     <view class="header-main">
-      <view class="flex-box flex-v-ce">
+      <view class="flex-box">
         <view class="laber">任务内容</view>
         <view class="flex-1">{{dataDetail.task_name}}</view>
       </view>

+ 11 - 0
pages/statistics/workDetail/workDetail.axml

@@ -83,6 +83,17 @@
           <image mode="scaleToFill" data-index="{{index}}" a:for="{{dataDetail.task_file_list}}" data-item="{{dataDetail.task_file_list}}" src="{{item}}" catchTap="showImg"/>
         </view>
       </view>
+      <view class="flex-box flex-v-ce" a:if="{{dataDetail.complete_task.remark}}" style="border-top:1px solid #f1f1f1">
+        <view class="laber">完成备注</view>
+        <view class="flex-1">{{dataDetail.complete_task.remark}}</view>
+      </view>
+      <view class="flex-box" a:if="{{dataDetail.complete_task.files.length>0}}">
+        <view class="laber">完成图片</view>
+        <view class="flex-1 flex-box flex-v-ce imgs">
+          <image mode="scaleToFill" data-index="{{index}}" a:for="{{dataDetail.complete_task.files}}" data-item="{{dataDetail.complete_task.files}}" src="{{item}}" catchTap="showImg"/>
+        </view>
+      </view>
+
     </view>
   </view>
   

+ 3 - 3
pages/workbench/apply/apply.axml

@@ -68,8 +68,8 @@
     </view>
   </form>
   <view class="box" animation="{{animationInfo}}">
-        <select-rule defaultId="{{defaultRuleId}}" onConfirm="onSelectItem" onClose="onClose" a:if="{{isShowType=='1'}}"/>
-        <select-section-staff-two superior_list="{{superior_list}}" onClose="onClose" selectUser="{{reviewerObj}}" onConfirm="onSelectUser" a:if="{{isShowType=='2'}}"/>
-        <select-section-staff  isAllSelect="{{false}}" isBoss="{{true}}" selectUser="{{employeeObj}}" onClose="onClose" onConfirm="onSelectUserEmployee" a:if="{{isShowType=='3'}}"/>
+    <select-rule defaultId="{{defaultRuleId}}" onConfirm="onSelectItem" onClose="onClose" a:if="{{isShowType=='1'}}"/>
+    <select-section-staff-two superior_list="{{superior_list}}" onClose="onClose" selectUser="{{reviewerObj}}" onConfirm="onSelectUser" a:if="{{isShowType=='2'}}"/>
+    <select-section-staff  isAllSelect="{{false}}" isBoss="{{true}}" selectUser="{{employeeObj}}" onClose="onClose" onConfirm="onSelectUserEmployee" a:if="{{isShowType=='3'}}"/>
   </view>
 </view>