var app = getApp() var that; var animation; Page({ data: { users: [], items: { targets: [],//工作执行者列表,以逗号分割的字符串或直接传入数组 pt_id: 3,//积分种类id 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 file_list: [],//附件地址列表 reviewer_id: '',//审批者id revieweName: '', timeout_deduction_point: '',//逾期扣分/天 timeout_deduction_point_limit: '',//逾期扣分上限 ahead_award_point: '',//提前奖分/天 ahead_award_point_limit: '',//提前奖分上限 qualified: '',// cate_id: 0,// 共组分类id task_cycle: 0,//任务发布周期 1-天 2-周 3-月 task_expire_day: 1,//任务截至天数 checked: false,//是否选择规则 rule_id: '',//积分分类id rule_id2: '', rule_name: '',//积分分类名称 item_id: '',//积分细则id 不选可以为0 tree_echo: [],//用于PC编辑任务时的规则回显 }, reviewerObj: [],//默认审批人 objectArray: [ { id: 0, name: '不重复', }, { id: 1, name: '每天重复', }, { id: 2, name: '每周重复', }, { id: 3, name: '每月重复', }, ], arrIndex: 0, popupCx: '', 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 }], defaultRuleId: '', selectRule: '',//选择的规则 isArrindex: true, isGzType: 3, }, 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 }) }, //选择奖还是扣(细则) bindPickerChange() { this.setData({ isArrindex: !that.data.isArrindex, }); }, switchChange(e) { that.setData({ [`items.checked`]: e.detail.value }) }, //选择规则分类 onSelectType(item) { this.setData({ [`items.rule_id2`]: item.id, [`items.rule_name`]: item.name, }); }, //选择规则 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_remark`]: 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, [`items.task_expire_day`]: parseInt(e.detail.value) + 1 }); }, bindObjPickerChange(e) { this.setData({ 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]; this.setData({ columnsArray: columnsArray, }); }, openType(e) { var id = e.target.dataset.id; that.setData({ [`items.pt_id`]: id, isGzType: id, }) this.clearTree() }, //清除已选规则 clearTree(){ that.setData({ selectRule: '', ['items.task_remark']: '', [`items.base_point`]: '', isArrindex: true, [`items.rule_id`]: '', [`items.item_id`]: '', defaultRuleId: '' }) }, onShow() { animation = dd.createAnimation({ duration: 200, timeFunction: "linear", }); }, //积分输入 bindKeyInput2(e) { this.setData({ [`items.base_point2`]: e.detail.value, }); }, //积分输入 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; 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({ [point]: value, }); }, //显示图片 showImg(e) { var index = e.target.dataset.index; var item = e.target.dataset.item dd.previewImage({ current: index, urls: item }); }, //关闭规则 onClose() { animation.translateY(1200).step(); that.setData({ popupCx: '', isShowType: '', animationInfo: animation.export() }); }, //选择弹窗 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] }); } else { that.setData({ reviewerObj: [] }); } } if (e.target.dataset.ruleId) { that.setData({ defaultRuleId: e.target.dataset.ruleId }); } animation.translateY(0).step(); that.setData({ isShowType: num, popupCx: 'container__mask', animationInfo: animation.export() }); }, //删除图片 deteleImg(e) { var index = e.target.dataset.index;//获取itemS集合中对应的files var files = that.data.items.file_list;//获取itemS集合中对应的files var files_box = `items.file_list`;// app.globalData.arrRemoveObj(files, files[index]); that.setData({ [files_box]: files }); }, //图片选择 openImg(e) { var files = that.data.items.file_list; if (files.length >= 3) { app.globalData.showToast("只能上传三张"); return false; } dd.chooseImage({ count: 1, success: (res) => { that.postImg(res.filePaths[0]); }, }); }, postImg(img_url) { var files_box = `items.file_list`; var files = that.data.items.file_list; dd.httpRequest({ url: app.globalData.imgHttpUrl, method: 'POST', data: { md5: that.random_string(32), 'name': app.globalData.day }, success: function (res) { if (app.globalData.userData.site_id) { var key = 'intesys/dd/' + app.globalData.userData.site_id + "/" + app.globalData.day + '/' + that.random_string(32) + '.png'; } else { var key = 'intesys/dd/' + app.globalData.day + '/' + that.random_string(32) + '.png'; } var obj = res.data.data; dd.uploadFile({ url: app.globalData.ALIOSS_URL, fileType: 'image', fileName: 'file', filePath: img_url, formData: { key: key, policy: obj.policy, OSSAccessKeyId: obj.accessid, success_action_status: 200, signature: obj.signature }, success: (res) => { if (res.statusCode == 200) { if (files.length > 0) { files.push('http://cdn.intesys.g107.com/' + key) } else { files = ['http://cdn.intesys.g107.com/' + key]; } that.setData({ [files_box]: files }); app.globalData.showToast("已上传"); } }, fail: (err) => { console.log(err); } }); }, fail: function (res) { app.globalData.showToast("上传失败"); } }) }, random_string(len) { len = len || 32 var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678' var maxPos = chars.length var pwd = '' for (let i = 0; i < len; i++) { pwd += chars.charAt(Math.floor(Math.random() * maxPos)) } return pwd }, //备注输入 bindTextAreaBlur: function (e) { this.setData({ [`items.task_name`]: e.detail.value, }); }, //备注输入 bindTextAreaBlur2: function (e) { this.setData({ [`items.task_remark`]: e.detail.value, }); }, showToast(text) { app.globalData.showToast(text); }, formSubmit() { var items = JSON.parse(JSON.stringify(this.data.items)); if (!items.task_name) { 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.rule_id2) { this.showToast('请选择分类') return; } if (!items.base_point2) { this.showToast('请输入任务积分') return; } items.base_point=items.base_point2 items.qualified=items.base_point2; items.rule_id=items.rule_id2; delete items.item_id } if (items.targets.length == 0) { this.showToast('请选择执行对象') return; } if (!items.reviewer_id) { this.showToast('请选择审批人') return; } if (items.task_cycle == 0) { if (!items.expire_time) { this.showToast('请选择截止时间') return; } } if (!items.task_remark) { delete items.task_remark } if (!items.timeout_deduction_point) { delete items.timeout_deduction_point } 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' } else { delete items.expire_time delete items.package_id delete items.weight url = '/api/integral/schedule/publish/work' } this.setData({ disabled: true }); app.$post(url, items).then((res) => { this.showToast(res.data.msg); setTimeout(() => { dd.navigateBack({ delta: 1 }) }, 1000); }).catch(err => { this.setData({ disabled: false }); }).finally(err => { this.setData({ disabled: false }); }) }, //选择时间 openDate(e) { var item = `items.expire_time` dd.datePicker({ format: 'yyyy-MM-dd HH:mm', currentDate: that.data.items.expire_time, success: (res) => { that.setData({ [item]: res.date }) }, }); }, //选择执行人 onSelectUser(item) { var arr = []; if (item.length > 0) { item.forEach(user => { arr.push(user.id); }) that.setData({ users: item.length > 0 ? item : [], [`items.targets`]: arr }) } }, //选择审批人 onSelectUser2(item) { var elm = item.length > 0 ? item[0] : { id: '', name: '' }; var reviewer_id = `items.reviewer_id` var revieweName = `items.revieweName` that.setData({ [reviewer_id]: elm.id, [revieweName]: elm.name, }); }, });