import { reject, complete, returnTask, returnList, readDeployNotes, findCommentByProcInsId } from '../../../api/flowable' import { findProjectApplyData } from '../../../api/publics' import config from '../../../config' const app = getApp() Page({ /** * 页面的初始数据 */ data: { options: {}, active: 0, stepList: [], rejectNode:false, activeName: "", flowRecordList: [], infoData: {}, fileNames: [], minImageList: [], imgTypes: ["png", "jpg", "jpeg"], stopBtnShow: false, comment: "", targetKey:"", targetKeyList: [], }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { this.setData({ options: options }) this.findFlowNodes(); this.findCommentByProcInsId(); this.findApplyDataInfo(); this.initTargetKeyList(); }, //查询工作流节点 findFlowNodes() { readDeployNotes(this.data.options.deployId).then(res => { let list = [{ text: '开始' }]; let index = this.data.active; res.data.forEach((item,idx) => { if(this.data.options.taskName==item.name){ index = idx+1; } list.push({ text: item.name, desc: '' }); }); list.push({ text: '结束' }); this.setData({ active: index, stepList: list }) }); }, //查询审批日志 findCommentByProcInsId() { findCommentByProcInsId({ procInsId: this.data.options.procInsId }).then(res => { this.setData({ flowRecordList: res.data }) let list = []; res.data.forEach((item, idx) => { if (idx == 1 && (item.commentType == "3" || item.commentType == "2")) { that.setData({ rejectNode: true }) } if (item.deleteReason) { item.deleteReason = this.getDeleteReason(item.deleteReason); } if (item.duration) { item.duration = app.getDurationDate(item.duration); } list.push(item); }) this.setData({ flowRecordList: list }) }); }, //查询审批表单参数 findApplyDataInfo() { findProjectApplyData(this.data.options.businessKey).then(res => { let imgList = []; let fileNames = []; if (res.data.applyFiles) { res.data.applyFiles.split(',').forEach(files => { let fileType = files.split(".")[files.split(".").length - 1].toLowerCase(); if (this.data.imgTypes.indexOf(fileType) == -1) { let it = element.split('/'); fileNames.push({ name: it[it.length - 1], path: files }); } else { imgList.push({ murl: config.baseUrl + files + '.min.jpg', path: files }); } }); } this.setData({ infoData: res.data, fileNames: fileNames, minImageList: imgList, }) }) }, //初始化退回节点 initTargetKeyList() { returnList({ taskId: this.data.options.taskId }).then(res => { if (res.data && res.data.length > 0) { let list = []; res.data.forEach(item => { list.push({ id: item.id, text: item.name }) }) this.setData({ targetKey: list[0].id, targetKeyList: list }) } }); }, //退回 onBack() { let { options, comment } = this.data; //数据效验 if (!options.taskId) { app.toast("数据异常,请刷新页面重试!") return; } if (!comment) { app.toast("请填写审批意见!") return false; } let that = this; //弹出确认 wx.showModal({ title: '提示', content: '是否确认审批驳回?', success: function (sm) { if (sm.confirm) { that.submitBackTask(); } } }) }, /** * 提交退回任务 */ submitBackTask() { let { options, comment, targetKeyList } = this.data; returnTask({ taskId:options.taskId, targetKey:targetKeyList[0].id, comment }).then(res => { if (res.code == 200) { app.toast("驳回申请成功!") setTimeout(() => { wx.redirectTo({ url: '../await/index', }) }, 500) } }); }, //通过 onPass() { let { options, comment } = this.data; //数据效验 if (!options.taskId) { app.toast("数据异常,请刷新页面重试!") return; } if (comment == "") { app.toast("请填写审批意见!") return; } let that = this; //弹出确认 wx.showModal({ title: '提示', content: '是否确认审批通过?', success: function (sm) { if (sm.confirm) { that.submitPassTask(); } } }) }, /** * 提交审核结果 */ submitPassTask() { let { options, procInsId, comment } = this.data; complete({ taskId:options.taskId, instanceId: procInsId, comment }).then(res => { if (res.code == 200) { app.toast("申请审批通过成功!") setTimeout(() => { wx.redirectTo({ url: '../await/index', }) }, 500) } }); }, //驳回 onReject() { let { taskId, procInsId, comment } = this.data; //数据效验 if (!taskId || !procInsId) { app.toast("数据异常,请刷新页面重试!") return; } if (comment == "") { app.toast("请填写审批意见!") return; } let that = this; //弹出确认 wx.showModal({ title: '提示', content: '是否确认审批驳回?', success: function (sm) { if (sm.confirm) { that.submitRejectTask(); } } }) }, /** * 提交流程驳回 */ submitRejectTask() { let { taskId, procInsId, comment } = this.data; reject({ taskId, instanceId: procInsId, comment }).then(res => { if (res.code == 200) { app.toast("驳回申请流程成功!") setTimeout(() => { wx.redirectTo({ url: '../await/index', }) }, 500) } }); }, //申请说明 commentInput: function (options) { this.data.comment = options.detail.value; }, // 手风琴 onChange(event) { this.setData({ activeName: event.detail, }); }, /** * 获取驳回节点 * @param {*} val */ getDeleteReason(val) { val = val.replace("Change activity to ", ""); let flowRecordList = this.data.flowRecordList; for (let i = 0; i < flowRecordList.length; i++) { if (flowRecordList[i].taskDefKey == val) { return "驳回至" + flowRecordList[i].taskName; } } }, //终止原因 commentblur: function (options) { this.data.comment = options.detail.value; }, //展示图片 showImg:function(e){ let paths = e.target.dataset.set; let path = []; paths.split(',').forEach(url => { path.push(config.baseUrl + url); }); wx.previewImage({ urls: path, current: path[0] }) }, /** * 下载并打开文档 * @param {*} e */ downFile: function (e) { let { path } = e.currentTarget.dataset.set wx.downloadFile({ // 示例 url,并非真实存在 url: config.baseUrl + '/common/download/resource?resource=' + path, success: function (res) { const filePath = res.tempFilePath let fpt = filePath.split("."); wx.openDocument({ filePath: filePath, fileType: fpt[fpt.length - 1], success: function (res) { console.log('打开文档成功') }, fail: function (res) { console.log(res) } }) } }) }, //选择退回节点 onSelectTargetKey(e) { this.setData({ targetKey: e.detail.id, backName: e.detail.name }) }, returnToPage: function () { wx.redirectTo({ url: '../await/index', }) }, /** * 修改申请 */ onEditApply: function () { wx.redirectTo({ url: `../editTask/index?deployId=${this.data.options.deployId}&procInsId=${this.data.options.procInsId}&nickName=${this.data.options.nickName}&deptName=${this.data.options.deptName}&procDefName=${this.data.options.procDefName}&taskId=${this.data.options.taskId}&taskName=${this.data.options.taskName}&category=${this.data.options.category}&projectName=${this.data.options.projectName}&businessKey=${this.data.options.businessKey}&businessKeyParName=${this.data.options.businessKeyParName}&businessDeptId=${this.data.options.businessDeptId}&startUserId=${this.data.options.startUserId}`, }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { } })