var app = getApp() var that; var animation; Page({ data: { items: { dept_ids: [],//可见范围 pt_id: 3,//积分种类id task_name: '',//任务名 task_remark: '',//任务详细描述 base_point: '',//任务参考积分 expire_time: '',//截至时间 格式:2020-02-02 12:00 file_list: [],//附件地址列表 reviewer_id: '',//审批者id revieweName: '', timeout_deduction_point: '',//逾期扣分/天 timeout_deduction_point_limit:'',//逾期扣分上限 ahead_award_point: '',//提前奖分/天 ahead_award_point_limit:'',//提前奖分上限 task_cycle: 0,//任务发布周期 1-天 2-周 3-月 task_expire_day: 1,//任务截至天数 task_type:1, popupCx: '', }, reviewerObj: [],//默认审批人 objectArray: [ { id: 0, name: '不重复', }, { id: 1, name: '每天重复', }, { id: 2, name: '每周重复', }, { id: 3, name: '每月重复', }, ], arrIndex: 0, defaultSection: [],//选择的部门 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}], }, 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 }) }, 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 }) }, onShow() { animation = dd.createAnimation({ duration: 200, timeFunction: "linear", }); }, //积分输入 bindKeyInput(e) { var point = `items.base_point`; this.setData({ [point]: e.detail.value, }); }, //积分输入 bindKeyInput2(e) { var name = e.target.dataset.name; let value=e.detail.value; var point = `items.${name}`; 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({ isShowType: '', popupCx: '', animationInfo: animation.export() }); }, //选择部门 onSelectSection(e) { var arr = []; if (e.length > 0) { e.forEach(user => { arr.push(user.id); }) that.setData({ defaultSection: e, [`items.dept_ids`]: arr }) } }, //选择弹窗 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: [] }); } } 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 }); 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) { 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.base_point) { 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 } if(items.dept_ids.length==0){ delete items.dept_ids }else{ items.dept_ids=items.dept_ids.toString(); } items.file_list=items.file_list.toString(); this.setData({ disabled: true }); var url; if (items.task_cycle == 0) { delete items.task_cycle delete items.task_expire_day url = '/api/integral/task/publish' } else { delete items.expire_time url = '/api/integral/schedule/publish/task' } 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` 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, }); }, });