var app = getApp() var that; var animation; Page({ data: { items: { targets: [],//工作执行者列表,以逗号分割的字符串或直接传入数组 pt_id: 3,//积分种类id task_name: '',//任务名 task_remark: '',//任务详细描述 base_point: '',//任务参考积分 expire_time: '',//截至时间 格式:2020-02-02 12:00 package_id: '',//绩效任务包id 绩效任务包发布工作时必须大于0,其余工作发布为0 weight: '',//绩效权重 绩效任务包发布工作时必须大于0,其余工作发布为0 file_list: [],//附件地址列表 reviewer_id: '',//审批者id revieweName: '', timeout_deduction_point: '',//逾期扣分/月 unqualified: '',//评分标准 不合格-分数 qualified: '',// satisfied: '',// super_satisfied: '',// cate_id: '',// 共组分类id }, reviewerObj: [],//默认审批人 objectArray: [ { id: 0, name: '不重复', }, { id: 1, name: '每天重复', }, { id: 2, name: '每周重复', }, { id: 3, name: '每月重复', }, ], arrIndex: 0, defaultSection:[],//选择的部门 }, onLoad() { that = this; dd.setNavigationBar({ title: "发布悬赏任务" }); that.setData({ types: app.globalData.types }) }, bindObjPickerChange(e) { this.setData({ arrIndex: e.detail.value, }); }, openType(e) { var id = e.target.dataset.id; that.setData({ [`items.pt_id`]: id }) }, onShow() { animation = dd.createAnimation({ duration: 200, timeFunction: "linear", }); }, //积分输入 bindKeyInput(e) { var point = `items.base_point`; this.setData({ [point]: e.detail.value, }); }, //积分输入 bindKeyInput2(e) { var point = `items.timeout_deduction_point`; this.setData({ [point]: e.detail.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({ animationInfo: animation.export() }); that.setData({ isShowType: '' }); }, //选择部门 onSelectSection(e){ this.setData({ defaultSection:e }) }, //选择弹窗 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: [] }); } } that.setData({ isShowType: num, }); animation.translateY(0).step(); that.setData({ 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 }); console.log(that.data.items); 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) { var index = e.target.dataset.index; var remark = `items[${index}].remark` this.setData({ [remark]: e.detail.value, }); }, showToast(text) { app.globalData.showToast(text); }, formSubmit() { var items = this.data.items; var arr = []; var isTg = true; var pt_id = app.getTypesItem(this.data.isGzType).id if (userData.length == 0) { this.showToast('请选择奖扣对象') return; } for (var i = 0; i < items.length; i++) { var obj = {}; var item = items[i]; var num = item.checked ? item.point : item.point2 var point; if (item.checked) { if (item.isArrindex != true) { point = 0 - num; } else { point = num; } if (point < item.selectRule.min_point || point > item.selectRule.max_point) { this.showToast(`第${i + 1}条,积分分值超出可输入范围`); isTg = false; } } else { if (item.isArrindex2 != true) { point = 0 - num; } else { point = num; } } if (item.checked) { if (!item.rule_id) { this.showToast(`第${i + 1}条请选择规则`); isTg = false; break; } } else { if (!item.rule_id2) { this.showToast(`第${i + 1}条请选择分类`); isTg = false; break; } } if (point == 0 || !point) { this.showToast(`第${i + 1}条积分分值不能为0或者为空`); isTg = false; break; } if (!item.remark) { this.showToast(`第${i + 1}条事件内容不能为空`); isTg = false; break; } obj.rule_id = item.checked ? item.rule_id : item.rule_id2; obj.item_id = item.checked ? item.item_id : 0; obj.point = point; obj.remark = item.remark; obj.event_time = item.event_time; obj.pt_id = pt_id; obj.reviewer_id = item.reviewer_id ? item.reviewer_id : 0; obj.files = item.files; arr.push(obj); } var userIds = [] userData.map(item => { userIds.push(item.id) }) if (isTg) { var data = { members: JSON.stringify(userIds), items: JSON.stringify(arr) } this.setData({ disabled: true }); var url = this.data.type == 'B' ? 'api/integral/point/entry' : 'api/integral/review/a/entry' app.$post(url, data).then((res) => { var is = true, msg; if (this.data.type == 'B') { res.data.data.list.forEach(item => { if (item.status != 1) { is = false; msg = item.msg; } }) } else { res.data.data.forEach(item => { if (item.status != 1) { is = false; msg = item.rule_item; } }) } if (is) { this.showToast('提交成功'); setTimeout(() => { this.setData({ disabled: false }); dd.navigateBack({ delta: 1 }) }, 1000); } else { this.setData({ disabled: false }); this.showToast(msg); } }).catch(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` dd.datePicker({ format: 'yyyy-MM-dd HH:mm', currentDate: that.data.items.expire_time, success: (res) => { that.setData({ [item]: res.date }) }, }); }, //选择审批人 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, }); }, });