jhwxapp/miniprogram/pages/project_flowable/initLeaveTask/index.js

328 lines
8.7 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.

// pageage/safetyManagement/addSafetyInspect/index.js
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
maxDate:new Date(2088,1,1).getTime(),
currentDate:new Date().getTime(),
deptId:"",
deptName:"",
userId:"",
nickName:"",
loginName:"",
projectId:"",
projectName:"",
remark:"",
procDefId:"",
approveTitle:"",
deploymentId:"",
activeName:"",
flowNodeList:[],
flowNodes:[],
beginDate:"",
endDate:"",
day:0,
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
let {procDefId,approveTitle,deploymentId} = options
//获取缓存数据
wx.getStorage({
key: 'userinfo',
success:res=>{
this.setData({
projectId:app.globalData.projectId,
projectName:app.globalData.projectName,
procDefId,
approveTitle,
deploymentId,
deptId:res.data.deptId,
deptName:res.data.deptName,
userId:res.data.userId,
nickName:res.data.nickName,
loginName:res.data.loginName
})
this.getFlowNodes();
}
})
},
//取消页面
cancelSaveView(){
/*关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面*/
wx.redirectTo({
url: '../myFlowDefinition/index'
})
},
dateFormat(fmt, date) {
let ret;
const opt = {
'y+': date.getFullYear().toString(), // 年
'M+': (date.getMonth() + 1).toString(), // 月
'd+': date.getDate().toString(), // 日
'H+': date.getHours().toString(), // 时
'm+': date.getMinutes().toString(), // 分
's+': date.getSeconds().toString(), // 秒
// 有其他格式化字符需求可以继续添加,必须转化成字符串
};
for (let k in opt) {
ret = new RegExp('(' + k + ')').exec(fmt);
if (ret) {
fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0'));
}
}
return fmt;
},
getFlowNode(val){
let flowNodeList = this.data.flowNodeList;
for(let i=0;i<flowNodeList.length;i++){
if(flowNodeList[i].id==val){
let list = this.data.flowNodes;
list.push({id:flowNodeList[i].id,name:flowNodeList[i].name});
this.setData({
flowNodes:list
})
if(flowNodeList[i].outgoingFlows && flowNodeList[i].outgoingFlows.length>0){
return this.getFlowNode(flowNodeList[i].outgoingFlows[0].targetRef);
}
}
}
},
//查询工作流节点
getFlowNodes(){
let that = this;
wx.request({
url: app.globalData.reqUrl + '/wechat/flowTask/readNotes/'+this.data.deploymentId,
method:"get",
data:{},
header: {
"Content-Type": "application/json"
},
success(res){
res = res.data
if(res.code == 200){
that.setData({
flowNodeList:res.data
})
if(res.data.length>0){
let list = that.data.flowNodes;
list.push({id:res.data[0].id,name:res.data[0].name});
that.setData({
flowNodes:list
})
return that.getFlowNode(res.data[0].outgoingFlows[0].targetRef);
}
}else{
app.toast(res.msg);
}
}
})
},
//保存
onSave(){
this.setData({
loadShow:true
})
let that = this
let {procDefId,projectId,projectName,deptId,userId,loginName,nickName,beginDate,endDate,remark,day} = that.data;
//数据效验
if(projectId==""||loginName==""||deptId==""||userId==""||procDefId==""){
app.toast("数据异常,请刷新页面重试!")
that.setData({
loadShow:false
})
return;
}
if(beginDate==""){
app.toast("请选择请假开始时间!")
that.setData({
loadShow:false
})
return;
}
if(endDate==""){
app.toast("请选择请假结束时间!")
that.setData({
loadShow:false
})
return;
}
if(remark==""){
app.toast("请填写请假事由!")
that.setData({
loadShow:false
})
return;
}
let date = new Date()
let params = {
procDefId,
userId,
userName:loginName,
nickName,
variables:{
businessKey:projectId,
projectName,
date:that.dateFormat("yyyy-MM-dd HH:ss",date),
beginDate,
endDate,
day,
remark
}
}
wx.showModal({
title: '提示',
content: '是否确定提交'+this.data.approveTitle+'',
success: function (sm) {
if (sm.confirm) {
wx.request({
url: app.globalData.reqUrl + '/wechat/flowTask/startProcessInstance',
method:"POST",
data:params,
header: {
"Username": loginName,
"Content-Type": "application/json"
},
success(res){
that.setData({
loadShow:false
})
res =res.data
if(res.code == 200){
app.toast("提交申请成功!")
setTimeout(()=>{
wx.redirectTo({
url: '../myProcessIns/index',
})
},200)
}else{
app.toast(res.msg);
}
}
})
} else if (sm.cancel) {
that.setData({
loadShow:false
})
console.log('用户点击取消');
}
}
})
},
//申请说明
remarkblur: function (options) {
this.data.remark = options.detail.value;
},
//开始时间
onbeginDate(e){
this.setData({
beginDate:e.detail
})
if(this.data.endDate==""){
this.setData({
endDate:e.detail
})
}
this.setDay();
},
//结束时间
onendDate(e){
this.setData({
endDate:e.detail
})
this.setDay();
},
setDay(){
if(this.data.beginDate && this.data.endDate){
let time = (new Date(this.data.endDate).getTime())-(new Date(this.data.beginDate).getTime());
if(time<0){
this.setData({
day:0
})
}else{
let hours = time/(3600000);
let day = (hours/24)+1;//这里默认加1天PS:2023-09-10 2023-09-11实际请假应该为2天而不是一天
if(hours%24>0) day++;
this.setData({
day
})
}
}
},
// 手风琴
onChange(event) {
this.setData({
activeName: event.detail,
});
},
returnToPage: function () {
/*关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面*/
wx.redirectTo({
url: '../myFlowDefinition/index',
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})