import config from '../../../config' import { reject, complete, returnTask, returnList, readDeployNotes, findCommentByProcInsId } from '../../../api/flowable' import { editApproveStatus, findProSubDeptsInfoById, findProSubDeptsUserInfoById } from '../../../api/project' import { getToken } from '../../../utils/auth' const app = getApp() Page({ /** * 页面的初始数据 */ data: { options: {}, active: 0, stepList: [], rejectNode: false, activeName: "", flowRecordList: [], subDeptData: { subDeptInfos: {} }, subDeptUserData: { user: {}, }, comment: "", targetKey: "", targetKeyList: [], imgBaseUrl: config.baseImgUrl }, /** * 生命周期函数--监听页面加载 */ 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.substr(0,5), 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() { findProSubDeptsUserInfoById(this.data.options.businessKey).then(res => { if (res.data.eduFilePath) { let files = res.data.eduFilePath.split('/'); res.data.eduFileName = files[files.length - 1]; } if(res.data.userInfos){ res.data.userInfos = JSON.parse(res.data.userInfos); } this.setData({ subDeptUserData: res.data }) //查询单位信息 this.getSubDeptInfo(res.data.subDeptId); }) }, //查询审批表单参数 getSubDeptInfo(subDeptId) { findProSubDeptsInfoById(subDeptId).then(res => { res.data.subDeptInfos = JSON.parse(res.data.subDeptInfos); this.setData({ subDeptData: res.data }) }) }, //初始化退回节点 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) { editApproveStatus(this.data.options.businessKey); app.toast("驳回申请成功!") setTimeout(() => { this.returnToPage(); }, 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(() => { this.returnToPage(); }, 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(() => { this.returnToPage(); }, 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.baseImgUrl + url); }); wx.previewImage({ urls: path, current: path[0] }) }, /** * 下载并打开文档 * @param {*} e */ downFile: function (e) { let path = this.data.subDeptUserData.eduFilePath; wx.downloadFile({ // 示例 url,并非真实存在 url: config.baseUrl + '/file/download?fileName=' + path, header: { 'Authorization': 'Bearer ' + getToken() }, success: function (res) { const filePath = res.tempFilePath let fpt = path.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 () { if (wx.getStorageSync('nav-types') == "depts") { wx.redirectTo({ url: '../subDepts/index', }) } else if (wx.getStorageSync('nav-types') == "users") { wx.redirectTo({ url: '../subDeptsUsers/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() { } })