YZProjectCloud/yanzhu-ui-app/miniprogram/pages/project_flowable/approveTask/index.js

468 lines
12 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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() {
}
})