YZProjectCloud/yanzhu-ui-app/miniprogram/pages/project_check/info/index.js

429 lines
11 KiB
JavaScript
Raw Normal View History

2024-10-13 11:24:45 +08:00
import {
allInstanceList,
readDeployNotes,
findCommentByProcInsId
} from '../../../api/flowable'
import {
createQr,
editApplyChecked,
addApplyDetailCheck,
findApplyDetailAllCheck
} from '../../../api/projectApply'
import {
findProjectApplyData
} from '../../../api/publics'
import config from '../../../config'
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
options: {},
active: 100,
stepList: [],
activeName: "",
flowRecordList: [],
infoData: {},
fileNames: [],
minImageList: [],
imgTypes: ["png", "jpg", "jpeg"],
stopBtnShow: false,
popupShow: false,
actIdx: 0,
popupId: null,
popupUnit: "吨",
popupNumber: "",
popupPrices: "",
baseUrl: config.baseUrl,
popupViewShow: false,
checkDirection: "vertical",
checkStepList:[],
isCheckRole: false
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
let roles = app.globalData.userData.roles;
if(roles!=null && roles.length>0){
roles.forEach(role =>{
if(role.roleId==88){
this.setData({
isCheckRole: true,
})
}
});
}
allInstanceList({
'businessKey': options.businessKey
}).then(res => {
this.setData({
options: res.rows[0]
})
this.findFlowNodes();
this.findCommentByProcInsId();
});
this.findApplyDataInfo(options.businessKey);
},
//查询工作流节点
findFlowNodes() {
readDeployNotes(this.data.options.deployId).then(res => {
let list = [{
text: '开始'
}];
res.data.forEach((item, idx) => {
list.push({
text: item.name,
desc: ''
});
});
list.push({
text: '结束'
});
this.setData({
stepList: list
})
});
},
//查询审批日志
findCommentByProcInsId() {
findCommentByProcInsId({
procInsId: this.data.options.procInsId
}).then(res => {
this.setData({
flowRecordList: res.data
})
let list = [];
res.data.forEach((item, idx) => {
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(businessKey) {
findProjectApplyData(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 = files.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
})
})
},
// 手风琴
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;
}
}
},
/**
* 下载并打开文档
* @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 () {
/*关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面*/
wx.redirectTo({
url: '../list/index',
})
},
createQrSub(){
createQr(this.data.options.businessKey).then(res =>{
if(res.code==200){
this.setData({
"infoData.qrPath": res.data.qrPath
})
}
});
},
/**
* 左侧抽屉显示
*/
showPopup(e) {
let index = e.currentTarget.dataset.index
this.setData({
actIdx: index,
popupId: this.data.infoData.proProjectApplyDetailList[index].id,
popupUnit: this.data.infoData.proProjectApplyDetailList[index].assetsUnit,
popupShow: true
});
},
/**
* 左侧抽屉隐藏
*/
onClosePopup() {
this.setData({
popupShow: false
});
},
/**
* 左侧抽屉显示
*/
showViewPopup(e) {
let index = e.currentTarget.dataset.index
let unit = this.data.infoData.proProjectApplyDetailList[index].assetsUnit;
let detailId = this.data.infoData.proProjectApplyDetailList[index].id;
findApplyDetailAllCheck(detailId).then(res =>{
let list = [];
res.data.forEach(item =>{
let desc = "【"+item.createBy+"】 验收"+item.checkValue+" "+unit+",单价 "+item.checkPrice;
list.push({text: item.createTime, desc: desc })
});
this.setData({
popupViewShow: true,
checkStepList: list,
});
})
},
/**
* 左侧抽屉隐藏
*/
onCloseViewPopup() {
this.setData({
popupViewShow: false
});
},
//展示图片
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]
})
},
/**
* 添加验收信息
*/
onAddChecked() {
let {
popupId,
popupNumber,
popupPrices
} = this.data;
if (!popupId) {
app.toast("数据异常,请刷新页面重试!")
return false;
}
if (!popupNumber) {
app.toast("请填写验收数量!")
return false;
}
if (!popupPrices) {
app.toast("请填写验收单价!")
return false;
}
addApplyDetailCheck({'detailId':popupId,'checkValue':popupNumber,'checkPrice':popupPrices}).then(res =>{
if(res.code==200){
// let da = this.data.infoData;
// da.proProjectApplyDetailList[this.data.actIdx].isChecked==1;
// da.proProjectApplyDetailList[this.data.actIdx].checkedTotalValue = parseFloat(da.proProjectApplyDetailList[this.data.actIdx].checkedTotalValue)+parseFloat(popupNumber);
// this.setData({
// popupShow: false,
// infoData:da,
// popupNumber:"",
// popupPrices:"",
// });
this.setData({
popupNumber:"",
popupPrices:"",
popupShow: false
});
this.onLoad({'businessKey':this.data.options.businessKey});
}
});
},
//保存验收结果
onCheckedSave(){
for(let i=0;i<this.data.infoData.proProjectApplyDetailList.length;i++){
if(this.data.infoData.proProjectApplyDetailList[i].isChecked==0){
app.toast(this.data.infoData.proProjectApplyDetailList[i].assetsName+" 还未验收完成!")
return false;
}
}
let that = this;
wx.showModal({
title: '提示',
content: '是否确定全部验收完成?',
success: function (sm) {
if (sm.confirm) {
that.submit();
} else if (sm.cancel) {
console.log('用户点击取消');
}
}
})
},
submit(){
editApplyChecked({'id':this.data.options.businessKey,'applyStatus':"100"}).then(res=>{
if(res.code==200){
wx.redirectTo({
url: '../list/index',
})
}
})
},
//输入验收数量
onInputCheckNumber(e) {
let value = e.detail.value;
this.setData({
popupNumber: value
})
},
//输入验收单价
onInputCheckPrices(e) {
let value = e.detail.value;
this.setData({
popupPrices: value
})
},
onAddDetail(){
wx.redirectTo({
url: '../edit/index?id='+this.data.infoData.id+"&applyType="+this.data.infoData.applyType,
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})