// pages/mLedger/ledgerupload/ledgerupload.js
|
import bUploadLedger from '../behaviors/bUploadLedger';
|
import bUploadSelfPatrol from '../behaviors/bUploadSelfPatrol';
|
import ledgerservice from '../../../service/ledgerservice';
|
import selfpatrolservice from '../../../service/selfpatrolservice';
|
import moment from '../../../utils/moment.min';
|
import bLoadingToast from '../../../base/behaviors/bLoadingToast';
|
|
const app = getApp();
|
|
Page({
|
behaviors: [bUploadLedger, bLoadingToast, bUploadSelfPatrol],
|
/**
|
* 页面的初始数据
|
*/
|
data: {
|
barTitle: '上传台账',
|
imgFiles: [],
|
|
remark: '',
|
remarkDisable: false,
|
|
previewImageUrls: [],
|
previewCurrent: 0,
|
showPreview: false,
|
|
// 上传模式,0:普通上传;1:不涉及;2:延用复制历史记录
|
uploadMode: 0,
|
// 类型,0:台账和自巡查;1:应急自巡查
|
type: 0,
|
// 历史最新记录
|
lastLedger: undefined,
|
},
|
|
/**
|
* 生命周期函数--监听页面加载
|
*/
|
onLoad(options) {
|
var that = this;
|
this.getOpenerEventChannel().on(
|
'acceptDataFromOpenerPage',
|
function (data) {
|
data.ledger.description = data.ledger.description?.replaceAll(
|
'\\n',
|
'\n',
|
);
|
that.setData({
|
ledger: data.ledger,
|
time: moment(data.ledger.updateDate).format('YYYY年MM月DD日'),
|
indexGroup: data.indexGroup,
|
type: data.type,
|
taskId: data.taskId,
|
reUpload: data.reUpload,
|
detail: data.detail,
|
});
|
if (data.barTitle) {
|
that.data.barTitle = data.barTitle;
|
}
|
wx.setNavigationBarTitle({
|
title: that.data.barTitle,
|
});
|
|
that.checkStatus();
|
|
// 对于可复制的并且不是重传状态的台账,获取最新的历史记录用于复制
|
if (data.ledger.copy && !data.reUpload) {
|
that.getLatestLedger();
|
}
|
},
|
);
|
this.setData({
|
loadingText: '上传中',
|
loadCompleteText: '上传完成',
|
timeoutText: '上传超时',
|
});
|
},
|
|
/**
|
* 判断当前台账状态,如果有上传记录则显示记录
|
*/
|
checkStatus() {
|
if (this.data.reUpload) {
|
//do nothing
|
return;
|
} else if (this.data.ledger._files) {
|
let imgFiles = this.data.ledger._files;
|
let remark = this.data.remark;
|
if (this.data.ledger.remark1) remark = this.data.ledger.remark1;
|
let remarkDisable = true;
|
this.setData({
|
imgFiles,
|
remark,
|
remarkDisable,
|
});
|
} else if (this.data.ledger.upLoad) {
|
var that = this;
|
var userId = app.globalData.accessToken.userId;
|
var typeId = this.data.ledger.ledgerSubTypeId;
|
var taskId = this.data.taskId;
|
var sceneType = app.globalData.userInfo.extension2;
|
var time = moment().format('YYYY-MM-DD');
|
if (this.data.type == 0) {
|
ledgerservice.getLedgerDetail(userId, typeId, sceneType, time, {
|
success(res) {
|
if (res.length > 0) {
|
let detail = res[0];
|
if (detail.upLoad) {
|
let imgFiles = detail._files;
|
let remark = detail.remark1 ? detail.remark1 : '';
|
let remarkDisable = true;
|
that.setData({
|
imgFiles,
|
remark,
|
remarkDisable,
|
detail,
|
});
|
}
|
}
|
},
|
});
|
} else {
|
selfpatrolservice.getSelfPatrolDetail(userId, typeId, taskId, {
|
success(res) {
|
if (res.success) {
|
let detail = res.data;
|
if (detail.upLoad) {
|
let imgFiles = detail._files;
|
let remark = detail.remark1 ? detail.remark1 : '';
|
let remarkDisable = true;
|
that.setData({
|
imgFiles,
|
remark,
|
remarkDisable,
|
detail,
|
});
|
}
|
}
|
},
|
});
|
}
|
}
|
},
|
|
// 获取最新一次的历史记录,用于延用复制功能
|
getLatestLedger() {
|
var userId = app.globalData.accessToken.userId;
|
var typeId = this.data.ledger.ledgerSubTypeId;
|
var sceneType = app.globalData.userInfo.extension2;
|
this.setData({
|
latestLedgerLoading: true,
|
});
|
ledgerservice.getLedgerDetail(userId, typeId, sceneType, null, {
|
success: res => {
|
if (res.length > 0) {
|
const ledger = res[0];
|
this.setData({
|
lastLedger: {
|
...ledger,
|
_updateTimeStr: moment(ledger.updateDate).format(
|
'YYYY年MM月DD日',
|
),
|
},
|
});
|
}
|
},
|
complete: () => {
|
this.setData({
|
latestLedgerLoading: false,
|
});
|
},
|
});
|
},
|
|
uploadFileFail(e) {
|
const { type, index } = e.detail;
|
if (type == 1) {
|
wx.showToast({
|
title: `文件过大`,
|
icon: 'error',
|
});
|
}
|
},
|
|
// 上传台账
|
onSubmit: function () {
|
if (this.data.imgFiles.length == 0) {
|
wx.showToast({
|
title: '请至少选择一个文件',
|
icon: 'none',
|
});
|
} else {
|
this.setData({
|
showDialog: true,
|
uploadMode: 0,
|
});
|
}
|
},
|
|
// 不涉及该类台账
|
onSubmitNoLedger() {
|
this.setData({
|
showDialog: true,
|
uploadMode: 1,
|
});
|
},
|
|
// 延用复制台账
|
onCopyLedger() {
|
if (this.data.latestLedgerLoading) {
|
return;
|
} else if (this.data.lastLedger == undefined) {
|
wx.showToast({
|
title: '没有可延用的记录',
|
icon: 'none',
|
});
|
} else {
|
this.setData({
|
showDialog: true,
|
uploadMode: 2,
|
});
|
}
|
},
|
|
//提交台账
|
submitLedger() {
|
this.setData({
|
showDialog: false,
|
});
|
switch (this.data.uploadMode) {
|
case 0:
|
if (this.data.type == 0) {
|
this._uploadLedger();
|
} else {
|
this._uploadSelfPatrol();
|
}
|
break;
|
case 1:
|
if (this.data.type == 0) {
|
this._uploadNoLedger();
|
} else {
|
this._uploadNoSelfPatrol();
|
}
|
break;
|
case 2:
|
if (this.data.type == 0) {
|
const { lastLedger } = this.data;
|
const copyLedgerList = [
|
{
|
subTypeId: lastLedger.ledgerSubTypeId,
|
time: `${lastLedger.year}-${lastLedger.month}`,
|
},
|
];
|
this._uploadCopyLedger(copyLedgerList);
|
}
|
break;
|
|
default:
|
break;
|
}
|
},
|
|
// 跳转重传界面
|
reUpload() {
|
wx.navigateTo({
|
url: '/pages/mLedger/ledgerupload/ledgerupload',
|
success: res => {
|
res.eventChannel.emit('acceptDataFromOpenerPage', {
|
ledger: this.data.ledger,
|
detail: this.data.detail,
|
type: this.data.type,
|
indexGroup: this.data.indexGroup,
|
taskId: this.data.taskId,
|
barTitle: `重新${this.data.barTitle}`,
|
reUpload: true,
|
});
|
},
|
events: {
|
uploadOver: data => {
|
this.checkStatus();
|
},
|
},
|
});
|
},
|
|
//台账提交成功后
|
_success(res) {
|
this.getOpenerEventChannel().emit('uploadOver', {
|
indexGroup: this.data.indexGroup,
|
});
|
wx.navigateBack({
|
delta: 1,
|
});
|
},
|
|
//图片放大预览
|
previewImage(e) {
|
const { index } = e.currentTarget.dataset;
|
const previewImageUrls = this.data.imgFiles
|
.filter(f => f.type == 'image')
|
.map(f => f.url);
|
this.setData({
|
previewImageUrls,
|
previewCurrent: index,
|
showPreview: true,
|
});
|
},
|
|
// 台账备注监听
|
onRemarkChange(e) {
|
const { value } = e.detail;
|
this.setData({
|
remark: value,
|
});
|
},
|
});
|