1107 lines
33 KiB
TypeScript
1107 lines
33 KiB
TypeScript
// pages/handoverVehicle/procurementDeliveryEdit/procurementDeliveryEdit.ts
|
||
import { getAction, upload, putAction, postAction } from '../../../api/base';
|
||
const dayjs = require('dayjs');
|
||
var QQMapWX = require('../../../utils/qqmap-wx-jssdk.min.js');
|
||
// 实例化API核心类
|
||
var qqmapsdk = new QQMapWX({
|
||
key: 'KDEBZ-EV5KH-XN5DU-WYZGD-SN3YK-WZBZI'
|
||
});
|
||
Page({
|
||
/**
|
||
* 页面的初始数据
|
||
*/
|
||
data: {
|
||
showBox: {
|
||
base: true,
|
||
vehicle: true,
|
||
check: true
|
||
},
|
||
showSelect: {
|
||
projectSelectShow: false,
|
||
contractSelectShow: false,
|
||
vehicleTypeSelectShow: false,
|
||
templateSelectShow: false,
|
||
yesOrNoSelectShow: false,
|
||
timeSelectShow: false,
|
||
userSelectShow: false
|
||
} as any,
|
||
projectOptionsList: [],
|
||
projectPickerIndex: -1,
|
||
contractList: [],
|
||
contractPickerIndex: -1,
|
||
vehicleTypeOptions: [],
|
||
vehicleTypeIndex: -1,
|
||
vehicleBrandOptions: [],
|
||
vehicleBrandIndex: -1,
|
||
templateOptions: [],
|
||
templateIndex: -1,
|
||
userList: [],
|
||
checkUserPickerIndex: -1,
|
||
acceptUserPickerIndex: -1,
|
||
yesOrNoOptions: [
|
||
{
|
||
text: '是',
|
||
value: 1
|
||
},
|
||
{
|
||
text: '否',
|
||
value: 0
|
||
}
|
||
],
|
||
requireObj: {
|
||
id: '',
|
||
// projectId: '',
|
||
contractId: '',
|
||
// vehicleType: '',
|
||
// templateId: '',
|
||
vehicleList: [] as any,
|
||
// projectList: [] as any,
|
||
sentVehicleUser: '',
|
||
checkUserId: '',
|
||
// acceptUserId: '',
|
||
checkTime: '',
|
||
// checkAddress: '',
|
||
checkStatus: ''
|
||
},
|
||
params: {
|
||
id: '',
|
||
checkType: '1',
|
||
projectId: '',
|
||
projectName: '',
|
||
contractId: '',
|
||
vehicleType: '',
|
||
templateId: '',
|
||
vehicleList: [],
|
||
projectList: [],
|
||
sentVehicleUser: '',
|
||
checkUserId: '',
|
||
acceptUserId: '',
|
||
checkTime: '',
|
||
checkAddress: '',
|
||
checkStatus: '',
|
||
ckeckUrl: '',
|
||
ckeckUrlList: [] as any,
|
||
ensureUrl: '',
|
||
ensureUrlList: [] as any,
|
||
otherUrl: '',
|
||
otherUrlList: [] as any
|
||
} as any,
|
||
changeProjectIndex: -1,
|
||
changeVehicleIndex: -1,
|
||
changeVehicleBrandIndex: -1,
|
||
checkTimeTamp: new Date().getTime(),
|
||
registrationTimeTamp: new Date().getTime(),
|
||
loading: false,
|
||
uploading: false,
|
||
ischangeAddress: false
|
||
},
|
||
showBoxInf(e: any) {
|
||
console.log(e);
|
||
let data: any = { ...this.data };
|
||
let { fieldname } = e.currentTarget.dataset;
|
||
// let detail = e.detail;
|
||
data.showBox[fieldname] = !data.showBox[fieldname];
|
||
this.setData(data);
|
||
},
|
||
pickerChange(event: any) {
|
||
//下拉框切换是否展示
|
||
let { fieldindex, fieldname } = event.currentTarget.dataset;
|
||
let data: any = { ...this.data };
|
||
if (fieldname == 'yesOrNoSelectShow') {
|
||
data.changeProjectIndex = fieldindex;
|
||
} else if (fieldname === 'timeSelectShow') {
|
||
if (!data.params.checkTime) {
|
||
data.checkTimeTamp = new Date().getTime();
|
||
}
|
||
} else if (fieldname === 'vehicleTypeSelectShow') {
|
||
data.changeVehicleIndex = fieldindex;
|
||
} else if (fieldname === 'vehicleBrandSelectShow') {
|
||
data.changeVehicleBrandIndex = fieldindex;
|
||
}
|
||
data.showSelect[fieldname] = true;
|
||
this.setData(data);
|
||
},
|
||
hidePicker() {
|
||
let showSelect = this.data.showSelect;
|
||
showSelect = {
|
||
projectSelectShow: false,
|
||
contractSelectShow: false,
|
||
vehicleTypeSelectShow: false,
|
||
templateSelectShow: false,
|
||
yesOrNoSelectShow: false,
|
||
timeSelectShow: false
|
||
};
|
||
this.setData({
|
||
showSelect: showSelect
|
||
});
|
||
},
|
||
pickerConfirm(event: any) {
|
||
console.log(event);
|
||
//下拉框点击确认
|
||
let { fieldname, fieldindex } = event.currentTarget.dataset;
|
||
let detail = event.detail;
|
||
let data: any = { ...this.data };
|
||
if (fieldname === 'vehicleTypeId') {
|
||
data.params.vehicleList[this.data.changeVehicleIndex].vehicleType =
|
||
detail.value.value;
|
||
data.params.vehicleList[
|
||
this.data.changeVehicleIndex
|
||
].vehicleType_dictText = detail.value.text;
|
||
|
||
this.getContractOptions(detail.value.value);
|
||
} else if (fieldname === 'vehicleBrand') {
|
||
data.params.vehicleList[this.data.changeVehicleBrandIndex].vehicleBrand =
|
||
detail.value.value;
|
||
data.params.vehicleList[
|
||
this.data.changeVehicleBrandIndex
|
||
].vehicleBrand_dictText = detail.value.text;
|
||
} else if (fieldname === 'projectId') {
|
||
data.params[fieldname] = detail.value.value;
|
||
data[fieldindex] = detail.index;
|
||
data.params.contractId = '';
|
||
this.getContractOptions(detail.value.value);
|
||
} else if (fieldname === 'vehicleType') {
|
||
// data.params.projectId = detail.value.projectId;
|
||
data.params[fieldname] = detail.value.value;
|
||
data[fieldindex] = detail.index;
|
||
data.params.templateId = '';
|
||
data.templateIndex = -1;
|
||
this.getvehicleCheckTemplate(detail.value.value);
|
||
data.params.projectList = [];
|
||
// if (data.params.projectId) {
|
||
// delete data.requireObj.projectId;
|
||
// } else {
|
||
// data.requireObj.projectId = '此项为必填项';
|
||
// }
|
||
// if (data.params.director) {
|
||
// delete data.requireObj.director;
|
||
// } else {
|
||
// data.requireObj.director = '此项为必填项';
|
||
// }
|
||
} else if (fieldname === 'templateId') {
|
||
data.params[fieldname] = detail.value.value;
|
||
data[fieldindex] = detail.index;
|
||
this.getTemplateProject(detail.value.value);
|
||
} else if (fieldname === 'checkStatus') {
|
||
console.log(data.params.projectList);
|
||
let index = data.changeProjectIndex;
|
||
data.params.projectList[index][fieldname] = detail.value.value;
|
||
// data[fieldindex] = detail.index;
|
||
console.log(data.params.projectList);
|
||
} else if (fieldname === 'registrationTime') {
|
||
console.log(data.params.registrationTime);
|
||
data.params[fieldname] = dayjs(new Date(detail)).format('YYYY-MM-DD');
|
||
// data[fieldindex] = detail.index;
|
||
console.log(data.params[fieldname]);
|
||
} else if (fieldname === 'checkTime') {
|
||
console.log(data.params.checkTime);
|
||
data.params[fieldname] = dayjs(new Date(detail)).format('YYYY-MM-DD');
|
||
// data[fieldindex] = detail.index;
|
||
console.log(data.params[fieldname]);
|
||
} else {
|
||
data.params[fieldname] = detail.value.value;
|
||
data[fieldindex] = detail.index;
|
||
}
|
||
if (fieldname !== 'checkStatus') {
|
||
if (fieldname == 'vehicleBrand' || fieldname === 'vehicleTypeId') {
|
||
} else {
|
||
if (data.params[fieldname]) {
|
||
// delete data.requireObj[fieldname];
|
||
data.requireObj[fieldname] = '';
|
||
} else {
|
||
data.requireObj[fieldname] = '此项为必填项';
|
||
}
|
||
}
|
||
}
|
||
console.log(this.data);
|
||
this.setData(data);
|
||
this.hidePicker();
|
||
},
|
||
changeAddress(e: any) {
|
||
if (this.data.ischangeAddress) {
|
||
return;
|
||
}
|
||
let that = this;
|
||
let { params, requireObj } = this.data;
|
||
let addressErr = e.currentTarget.dataset.fieldkey;
|
||
let address = addressErr == '0' ? this.data.params.checkAddress : '';
|
||
this.setData({
|
||
ischangeAddress: true
|
||
});
|
||
if (!address) {
|
||
wx.getLocation({
|
||
// type: 'wgs84',
|
||
type: 'gcj02', // wgs84 返回 gps 坐标,gcj02 返回可用于 wx.openLocation 的坐标
|
||
isHighAccuracy: true, // 开启高精度定位
|
||
success(res) {
|
||
console.log('getLocation', res);
|
||
wx.chooseLocation({
|
||
latitude: res.latitude,
|
||
longitude: res.longitude,
|
||
success: function (data) {
|
||
console.log('chooseLocation', data);
|
||
params.checkAddress = data.address;
|
||
// if (data.address) {
|
||
// requireObj.checkAddress = '';
|
||
// } else {
|
||
// requireObj.checkAddress = '此项为必填项';
|
||
// }
|
||
console.log(params);
|
||
that.setData({
|
||
params: params,
|
||
requireObj: requireObj,
|
||
ischangeAddress: false
|
||
});
|
||
},
|
||
fail(err: any) {
|
||
console.log('chooseLocation', err);
|
||
},
|
||
complete: function () {
|
||
that.setData({
|
||
ischangeAddress: false
|
||
});
|
||
}
|
||
});
|
||
},
|
||
fail(err: any) {
|
||
console.log('getLocation', err);
|
||
wx.showToast({
|
||
title: '小程序版本不支持获取定位信息,请检查是否开启定位权限!',
|
||
icon: 'none'
|
||
});
|
||
}
|
||
});
|
||
} else {
|
||
// var _this = this;
|
||
qqmapsdk.search({
|
||
keyword: this.data.params.checkAddress,
|
||
success: function (res: any) {
|
||
console.log('qqmapsdk.search', res);
|
||
if (res.status == 0) {
|
||
//成功后的回调
|
||
console.log(res);
|
||
if (res.data.length == 0) {
|
||
that.changeAddress({
|
||
currentTarget: {
|
||
dataset: { fieldkey: '1' }
|
||
}
|
||
});
|
||
return;
|
||
}
|
||
// var res = res.result;
|
||
// _this.setData({
|
||
// signInAddress: res.result.address
|
||
// });
|
||
// _this.getCheckStatus();
|
||
wx.chooseLocation({
|
||
latitude: res.data[0].location.lat,
|
||
longitude: res.data[0].location.lng,
|
||
success: function (data) {
|
||
console.log('chooseLocation', data);
|
||
params.checkAddress = data.address;
|
||
// if (data.address) {
|
||
// requireObj.checkAddress = '';
|
||
// } else {
|
||
// requireObj.checkAddress = '此项为必填项';
|
||
// }
|
||
console.log(params);
|
||
that.setData({
|
||
params: params,
|
||
requireObj: requireObj,
|
||
ischangeAddress: false
|
||
});
|
||
},
|
||
fail(err: any) {
|
||
console.log('chooseLocation', err);
|
||
},
|
||
complete: function () {
|
||
that.setData({
|
||
ischangeAddress: false
|
||
});
|
||
}
|
||
});
|
||
} else {
|
||
// 位置信息获取失败
|
||
wx.showToast({
|
||
title: '位置信息获取失败',
|
||
icon: 'none'
|
||
});
|
||
}
|
||
},
|
||
fail(err: any) {
|
||
console.log('getLocation', err);
|
||
wx.showToast({
|
||
title: '小程序版本不支持获取定位信息,请检查是否开启定位权限!',
|
||
icon: 'none'
|
||
});
|
||
}
|
||
});
|
||
}
|
||
},
|
||
getProjectOptions() {
|
||
getAction('api/projects/list').then((res: any) => {
|
||
if (res.code == 200) {
|
||
let arr = [] as any;
|
||
res.result.forEach((item: any, index: number) => {
|
||
arr.push({
|
||
text: item.projectName,
|
||
value: item.id
|
||
});
|
||
if (
|
||
this.data.params.projectId != '' &&
|
||
this.data.params.projectId == item.id
|
||
) {
|
||
this.setData({
|
||
projectPickerIndex: index
|
||
});
|
||
|
||
this.getContractOptions(item.id);
|
||
}
|
||
});
|
||
this.setData({
|
||
projectOptionsList: arr
|
||
});
|
||
} else {
|
||
wx.showToast({
|
||
title: res.message,
|
||
icon: 'none'
|
||
});
|
||
}
|
||
});
|
||
},
|
||
getContractOptions(projectId: string) {
|
||
let params = {
|
||
contractType: 4,
|
||
projectId: projectId
|
||
};
|
||
getAction('api/contract/list', params).then((res: any) => {
|
||
if (res.code == 200) {
|
||
let arr = [] as any;
|
||
res.result.forEach((item: any, index: number) => {
|
||
arr.push({
|
||
text: item.name,
|
||
value: item.id
|
||
});
|
||
if (
|
||
this.data.params.contractId != '' &&
|
||
this.data.params.contractId == item.id
|
||
) {
|
||
this.setData({
|
||
contractPickerIndex: index
|
||
});
|
||
}
|
||
});
|
||
if (arr.length == 0) {
|
||
arr.push({
|
||
text: '当前所选项目无合同数据',
|
||
value: ''
|
||
});
|
||
}
|
||
this.setData({
|
||
contractList: arr
|
||
});
|
||
} else {
|
||
wx.showToast({
|
||
title: res.message,
|
||
icon: 'none'
|
||
});
|
||
}
|
||
});
|
||
},
|
||
getDictOptions(dictCode: string) {
|
||
getAction('api/sys/dict/getDictItems/' + dictCode).then((res: any) => {
|
||
if (res.code == 200) {
|
||
if (dictCode == 'contract_type') {
|
||
this.setData({
|
||
contractList: res.result,
|
||
contractPickerIndex: -1
|
||
});
|
||
if (this.data.params.contractId != '') {
|
||
let i = res.result.findIndex(
|
||
(x: any) => x.value == this.data.params.contractId
|
||
);
|
||
if (i == -1) {
|
||
return;
|
||
}
|
||
this.setData({
|
||
contractPickerIndex: i
|
||
});
|
||
}
|
||
} else if (dictCode == 'vehicle_type') {
|
||
this.setData({
|
||
vehicleTypeOptions: res.result,
|
||
vehicleTypeIndex: -1
|
||
// checkStatus: res.result[0]
|
||
});
|
||
if (this.data.params.vehicleType != '') {
|
||
let i = res.result.findIndex(
|
||
(x: any) => x.value == this.data.params.vehicleType
|
||
);
|
||
if (i == -1) {
|
||
return;
|
||
}
|
||
this.setData({
|
||
vehicleTypeIndex: i
|
||
});
|
||
this.getvehicleCheckTemplate(res.result[i].value);
|
||
}
|
||
} else if (dictCode == 'vehicle_brand') {
|
||
this.setData({
|
||
vehicleBrandOptions: res.result,
|
||
vehicleBrandIndex: -1
|
||
// checkStatus: res.result[0]
|
||
});
|
||
}
|
||
} else {
|
||
wx.showToast({
|
||
title: res.message,
|
||
icon: 'none'
|
||
});
|
||
}
|
||
});
|
||
},
|
||
// 交车模板
|
||
getvehicleCheckTemplate(vehicleType: string) {
|
||
let params = {
|
||
name: '',
|
||
vehicleType: vehicleType,
|
||
checkType: 1 //验收模板类型(1采购交车,2租赁交车,3租赁收车)
|
||
};
|
||
getAction('api/vehicleCheckTemplate/list', params).then((res: any) => {
|
||
if (res.code == 200) {
|
||
let arr = [] as any;
|
||
res.result.forEach((item: any, index: number) => {
|
||
arr.push({
|
||
text: item.name,
|
||
value: item.id
|
||
});
|
||
if (
|
||
this.data.params.templateId != '' &&
|
||
this.data.params.templateId == item.id
|
||
) {
|
||
this.setData({
|
||
templateIndex: index
|
||
});
|
||
// this.getTemplateProject(item.id);
|
||
}
|
||
});
|
||
if (arr.length == 0) {
|
||
arr.push({
|
||
text: '当前所选车辆种类无交车模板数据',
|
||
value: ''
|
||
});
|
||
}
|
||
this.setData({
|
||
templateOptions: arr
|
||
// templateIndex: -1
|
||
});
|
||
} else {
|
||
wx.showToast({
|
||
title: res.message,
|
||
icon: 'none'
|
||
});
|
||
}
|
||
});
|
||
},
|
||
// 交车模板项目
|
||
getTemplateProject(templateId: string) {
|
||
let params = {
|
||
templateId: templateId
|
||
};
|
||
getAction('api/vehicleCheckTemplateProject/list', params).then(
|
||
(res: any) => {
|
||
if (res.code == 200) {
|
||
let data: any = { ...this.data };
|
||
data.requireObj.projectList = [];
|
||
res.result.forEach((item: any, index: number) => {
|
||
item.templateProjectId = item.id;
|
||
item.id = '';
|
||
data.requireObj.projectList.push({ checkStatus: '' });
|
||
});
|
||
data.params.projectList = res.result;
|
||
this.setData(data);
|
||
console.log(this.data.params);
|
||
} else {
|
||
wx.showToast({
|
||
title: res.message,
|
||
icon: 'none'
|
||
});
|
||
}
|
||
}
|
||
);
|
||
},
|
||
// 获取维保员
|
||
getByRoleCode() {
|
||
let params = {
|
||
// roleCode: ''
|
||
};
|
||
getAction('api/user/getByRoleCode', params).then((res: any) => {
|
||
if (res.code == 200) {
|
||
// let data: any = { ...this.data };
|
||
// data.params.userList = res.result;
|
||
// this.setData(data);
|
||
// console.log(this.data.params);
|
||
let arr = [] as any;
|
||
res.result.forEach((item: any, index: number) => {
|
||
arr.push({
|
||
text: item.realname,
|
||
value: item.id
|
||
});
|
||
if (
|
||
this.data.params.checkUserId != '' &&
|
||
this.data.params.checkUserId == item.id
|
||
) {
|
||
this.setData({
|
||
checkUserPickerIndex: index
|
||
});
|
||
}
|
||
if (
|
||
this.data.params.acceptUserId != '' &&
|
||
this.data.params.acceptUserId == item.id
|
||
) {
|
||
this.setData({
|
||
acceptUserPickerIndex: index
|
||
});
|
||
}
|
||
});
|
||
this.setData({
|
||
userList: arr
|
||
});
|
||
} else {
|
||
wx.showToast({
|
||
title: res.message,
|
||
icon: 'none'
|
||
});
|
||
}
|
||
});
|
||
},
|
||
checkStatusOnChange(e: any) {
|
||
let index = e.currentTarget.dataset.pindex;
|
||
let data: any = { ...this.data };
|
||
data.params.projectList[index].checkStatus = e.detail;
|
||
this.setData(data);
|
||
},
|
||
getInput(e: any) {
|
||
console.log(e);
|
||
let { fieldname, fieldindex, fieldkey } = e.currentTarget.dataset;
|
||
let detail = e.detail;
|
||
let data: any = { ...this.data };
|
||
// if(detail.value.length > 32) {
|
||
// if(data.requireObj[fieldname] != undefined) {
|
||
// data.requireObj[fieldname] = '输入长度不得超过32个字符';
|
||
// this.setData(data);
|
||
// }
|
||
// return
|
||
// }
|
||
if (fieldname == 'projectList') {
|
||
// data.params.projectList[fieldindex].remark = detail.value;
|
||
data.params[fieldname][fieldindex][fieldkey] = detail.value;
|
||
if (data.params[fieldname][fieldindex][fieldkey]) {
|
||
// delete data.requireObj[fieldname];
|
||
// data.requireObj[fieldname][fieldindex].remark = '';
|
||
} else {
|
||
// data.requireObj[fieldname][fieldindex].remark = this.checkStr(data.params[fieldname][fieldindex][fieldkey]);
|
||
}
|
||
} else if (fieldname == 'vehicleList') {
|
||
data.params[fieldname][fieldindex][fieldkey] = detail.value;
|
||
if (data.params[fieldname][fieldindex][fieldkey]) {
|
||
// delete data.requireObj[fieldname];
|
||
data.requireObj[fieldname][fieldindex][fieldkey] = '';
|
||
} else {
|
||
data.requireObj[fieldname][fieldindex][fieldkey] = '此项为必填项';
|
||
}
|
||
} else if (fieldname == 'remark') {
|
||
data.params[fieldname] = detail.value;
|
||
// if (data.params[fieldname]) {
|
||
// data.requireObj[fieldname] = this.checkStr(data.params[fieldname]);
|
||
// }
|
||
} else {
|
||
data.params[fieldname] = detail.value;
|
||
if (data.params[fieldname]) {
|
||
// delete data.requireObj[fieldname];
|
||
data.requireObj[fieldname] = '';
|
||
} else {
|
||
data.requireObj[fieldname] = '此项为必填项';
|
||
}
|
||
}
|
||
this.setData(data);
|
||
},
|
||
clearVal(e: any) {
|
||
let { fieldname, fieldindex, fieldkey } = e.currentTarget.dataset;
|
||
let data: any = { ...this.data };
|
||
if (fieldname == 'projectList') {
|
||
data.params.projectList[fieldindex][fieldkey] = '';
|
||
} else if (fieldname == 'vehicleList') {
|
||
data.params[fieldname][fieldindex][fieldkey] = '';
|
||
} else {
|
||
data.params[fieldname] = '';
|
||
}
|
||
this.setData(data);
|
||
},
|
||
addRow(e: any) {
|
||
console.log(123);
|
||
let { fieldname } = e.currentTarget.dataset;
|
||
let data: any = { ...this.data };
|
||
if (fieldname == 'vehicleList') {
|
||
data.params[fieldname].push({
|
||
vehicleModel: '',
|
||
frameNumber: '',
|
||
plateNumber: '',
|
||
vehicleType: '',
|
||
vehicleBrand: ''
|
||
});
|
||
data.requireObj[fieldname].push({
|
||
vehicleModel: '',
|
||
frameNumber: '',
|
||
plateNumber: '',
|
||
vehicleType: '',
|
||
vehicleBrand: ''
|
||
});
|
||
} else if (fieldname == 'projectList') {
|
||
data.params[fieldname].push({
|
||
name: '',
|
||
content: '',
|
||
checkStatus: '1',
|
||
remark: ''
|
||
});
|
||
}
|
||
this.setData(data);
|
||
},
|
||
delRow(e: any) {
|
||
let { fieldname, fieldindex } = e.currentTarget.dataset;
|
||
let data: any = { ...this.data };
|
||
if (fieldname == 'vehicleList') {
|
||
let arr = data.params[fieldname],
|
||
value = data.params[fieldname][fieldindex];
|
||
let newSet = new Set(arr);
|
||
newSet.delete(value);
|
||
let newArr = [...newSet];
|
||
data.params[fieldname] = newArr;
|
||
let arr2 = data.requireObj[fieldname],
|
||
value2 = data.requireObj[fieldname][fieldindex];
|
||
let newSet2 = new Set(arr2);
|
||
newSet.delete(value2);
|
||
let newArr2 = [...newSet2];
|
||
data.requireObj[fieldname] = newArr2;
|
||
} else if (fieldname == 'projectList') {
|
||
data.params[fieldname].splice(fieldindex, 1);
|
||
}
|
||
this.setData(data);
|
||
console.log(data);
|
||
},
|
||
radioOnChange(e: any) {
|
||
console.log(e);
|
||
let { fieldname, fieldindex } = e.currentTarget.dataset;
|
||
let data: any = { ...this.data };
|
||
if (fieldname == 'projectList') {
|
||
data.params.projectList[fieldindex].checkStatus = e.detail;
|
||
} else {
|
||
data.params[fieldname] = e.detail;
|
||
}
|
||
if (data.params[fieldname]) {
|
||
// delete data.requireObj[fieldname];
|
||
data.requireObj[fieldname] = '';
|
||
} else {
|
||
data.requireObj[fieldname] = '此项为必填项';
|
||
}
|
||
this.setData(data);
|
||
},
|
||
// 上传
|
||
afterRead(e: any) {
|
||
console.log(e);
|
||
let { fieldname } = e.currentTarget.dataset;
|
||
const file = e.detail;
|
||
let option = {
|
||
name: 'file',
|
||
filePath: e.detail.file.url
|
||
};
|
||
this.setData({
|
||
uploading: true
|
||
});
|
||
upload('api/vehicleCheck/upload', option).then((res: any) => {
|
||
this.setData({
|
||
uploading: false
|
||
});
|
||
let tempData = JSON.parse(res.data);
|
||
if (tempData.code == 200) {
|
||
let otherPhotoFile: any = this.data.params[fieldname + 'List'];
|
||
otherPhotoFile.push({ ...file, url: tempData.result.fileUrl });
|
||
let data: any = this.data;
|
||
let urls = '' as any;
|
||
otherPhotoFile.forEach((p: any) => {
|
||
urls += p.url + ',';
|
||
});
|
||
urls = urls.slice(0, -1);
|
||
data.params[fieldname] = urls;
|
||
data.params[fieldname + 'List'] = otherPhotoFile;
|
||
console.log(data.params);
|
||
this.setData(data);
|
||
} else {
|
||
wx.showToast({
|
||
title: '上传失败,请重试',
|
||
icon: 'none'
|
||
});
|
||
}
|
||
});
|
||
},
|
||
deletePhoto(e: any) {
|
||
let { fieldname } = e.currentTarget.dataset;
|
||
let otherPhotoFile = this.data.params[fieldname + 'List'];
|
||
let index = e.detail.index;
|
||
otherPhotoFile.splice(index, 1);
|
||
let data: any = this.data;
|
||
let urls = '' as any;
|
||
otherPhotoFile.forEach((p: any) => {
|
||
urls += p.url + ',';
|
||
});
|
||
urls = urls.slice(0, -1);
|
||
data.params[fieldname] = urls;
|
||
data.params[fieldname + 'List'] = otherPhotoFile;
|
||
this.setData(data);
|
||
},
|
||
checkStr(str: string) {
|
||
let returnStr = '';
|
||
let spaceRegex = /^\S*$/;
|
||
let regex = /[!@#$%^&*?><|\\\\]/;
|
||
let tooLong = str.length > 32;
|
||
if (!spaceRegex.test(str)) {
|
||
returnStr = '不支持含有空格';
|
||
} else if (regex.test(str)) {
|
||
returnStr = '不支持特殊字符';
|
||
} else if (tooLong) {
|
||
returnStr = '输入长度不得超过32个字符';
|
||
} else {
|
||
returnStr = '';
|
||
}
|
||
return returnStr;
|
||
},
|
||
isStepReady() {
|
||
//校验基础信息
|
||
let isAllReady = true;
|
||
let temp: any = this.data.requireObj;
|
||
let params: any = this.data.params;
|
||
for (let key in temp) {
|
||
if (key == 'id') {
|
||
continue;
|
||
}
|
||
if (key == 'vehicleList') {
|
||
params[key].forEach((item: any, index: number) => {
|
||
if (item.vehicleModel == '' || item.vehicleModel === undefined) {
|
||
isAllReady = false;
|
||
temp['vehicleList'][index].vehicleModel = '此项为必填项';
|
||
} else {
|
||
temp['vehicleList'][index].vehicleModel = this.checkStr(
|
||
item.vehicleModel
|
||
);
|
||
}
|
||
if (item.frameNumber == '' || item.frameNumber === undefined) {
|
||
isAllReady = false;
|
||
temp['vehicleList'][index].frameNumber = '此项为必填项';
|
||
} else {
|
||
temp['vehicleList'][index].frameNumber = this.checkStr(
|
||
item.frameNumber
|
||
);
|
||
}
|
||
let regex =
|
||
/(^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$)|(^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{5}[A-Z0-9挂学警港澳]{1}$)/;
|
||
if (item.plateNumber == '' || item.plateNumber === undefined) {
|
||
isAllReady = false;
|
||
temp['vehicleList'][index].plateNumber = '此项为必填项';
|
||
} else if (!regex.test(item.plateNumber)) {
|
||
isAllReady = false;
|
||
temp['vehicleList'][index].plateNumber = '请输入正确的车牌号';
|
||
} else {
|
||
temp['vehicleList'][index].plateNumber = this.checkStr(
|
||
item.plateNumber
|
||
);
|
||
}
|
||
if (item.vehicleBrand == '' || item.vehicleBrand === undefined) {
|
||
isAllReady = false;
|
||
temp['vehicleList'][index].vehicleBrand = '此项为必填项';
|
||
} else {
|
||
temp['vehicleList'][index].vehicleBrand = this.checkStr(
|
||
item.vehicleBrand
|
||
);
|
||
}
|
||
if (item.vehicleType == '' || item.vehicleType === undefined) {
|
||
isAllReady = false;
|
||
temp['vehicleList'][index].vehicleType = '此项为必填项';
|
||
} else {
|
||
temp['vehicleList'][index].vehicleType = this.checkStr(
|
||
item.vehicleType
|
||
);
|
||
}
|
||
|
||
if (
|
||
temp['vehicleList'][index].frameNumber ||
|
||
temp['vehicleList'][index].vehicleModel
|
||
) {
|
||
isAllReady = false;
|
||
}
|
||
});
|
||
} else if (key == 'projectList') {
|
||
params[key].forEach((item: any, index: number) => {
|
||
if (item.checkStatus === '' || item.checkStatus === undefined) {
|
||
isAllReady = false;
|
||
temp['projectList'][index].checkStatus = '此项为必填项';
|
||
}
|
||
});
|
||
} else if (key == 'checkTime') {
|
||
// let timeRegex =
|
||
// /^(?:19|20)[0-9][0-9]-(?:(?:0[1-9])|(?:1[0-2]))-(?:(?:[0-2][1-9])|(?:[1-3][0-1])) (?:(?:[0-2][0-3])|(?:[0-1][0-9])):[0-5][0-9]$/ as any;
|
||
let timeRegex =
|
||
/^(?:19|20)[0-9][0-9]-(?:(?:0[1-9])|(?:1[0-2]))-(?:(?:[0-2][1-9])|(?:[1-3][0-1]))$/ as any;
|
||
if (!timeRegex.test(params[key])) {
|
||
isAllReady = false;
|
||
temp[key] = '请填写正确的时间';
|
||
}
|
||
// temp[key] = temp[key] ? temp[key] : '请填写正确的时间';
|
||
} else if (key == 'checkAddress') {
|
||
temp[key] = params[key] ? '' : '此项为必填项';
|
||
if (temp[key]) {
|
||
isAllReady = false;
|
||
}
|
||
} else if (!params[key]) {
|
||
isAllReady = false;
|
||
temp[key] = temp[key] ? temp[key] : '此项为必填项';
|
||
} else {
|
||
temp[key] = this.checkStr(params[key]);
|
||
if (temp[key]) {
|
||
isAllReady = false;
|
||
}
|
||
}
|
||
}
|
||
this.setData({
|
||
requireObj: temp
|
||
});
|
||
console.log(temp, isAllReady);
|
||
return isAllReady;
|
||
},
|
||
formSubmit(e: any) {
|
||
let btnStatus = e.currentTarget.dataset.status;
|
||
if (this.data.uploading) {
|
||
wx.showToast({
|
||
title: '文件上传中,请稍后',
|
||
icon: 'none'
|
||
});
|
||
return;
|
||
}
|
||
if (this.data.loading) {
|
||
wx.showToast({
|
||
title: '信息保存中,请勿重复提交',
|
||
icon: 'none'
|
||
});
|
||
return;
|
||
}
|
||
if (!this.isStepReady()) {
|
||
wx.showToast({
|
||
title: '请填写完整对应信息',
|
||
icon: 'none'
|
||
});
|
||
// 验证是否非空
|
||
return;
|
||
}
|
||
// if (
|
||
// !this.data.params.vehicleList ||
|
||
// this.data.params.vehicleList.length == 0
|
||
// ) {
|
||
// wx.showToast({
|
||
// title: '无车辆信息,请增加车辆信息',
|
||
// icon: 'none'
|
||
// });
|
||
// return;
|
||
// }
|
||
|
||
if (this.data.params.projectList.length > 0) {
|
||
let res = this.data.params.projectList.some((item: any) => {
|
||
return item.content === '' || item.name === '';
|
||
});
|
||
if (res) {
|
||
wx.showToast({
|
||
title: '验收信息中,验收项目与验收内容不能为空',
|
||
icon: 'none'
|
||
});
|
||
return;
|
||
}
|
||
}
|
||
// 验证非必填
|
||
if (this.data.params.remark) {
|
||
let msg = this.checkStr(this.data.params.remark);
|
||
if (msg) {
|
||
wx.showToast({
|
||
title: '验收结论:' + msg,
|
||
icon: 'none'
|
||
});
|
||
return;
|
||
}
|
||
}
|
||
let params = this.data.params;
|
||
params.status = btnStatus; // 状态(0待提交,1已提交)
|
||
wx.showLoading({
|
||
title: '保存中'
|
||
});
|
||
this.setData({
|
||
loading: true
|
||
});
|
||
if (this.data.params.id) {
|
||
putAction('api/vehicleCheck/edit', this.data.params).then((res: any) => {
|
||
wx.hideLoading();
|
||
this.setData({
|
||
loading: false
|
||
});
|
||
if (res.code == 200) {
|
||
wx.showToast({
|
||
title: '保存成功',
|
||
icon: 'success'
|
||
});
|
||
wx.navigateBack({
|
||
delta: 2
|
||
});
|
||
} else {
|
||
this.setData({
|
||
loading: false
|
||
});
|
||
wx.showToast({
|
||
title: res.message,
|
||
icon: 'none'
|
||
});
|
||
}
|
||
});
|
||
} else {
|
||
postAction('api/vehicleCheck/add', this.data.params).then((res: any) => {
|
||
wx.hideLoading();
|
||
this.setData({
|
||
loading: false
|
||
});
|
||
if (res.code == 200) {
|
||
wx.showToast({
|
||
title: '保存成功',
|
||
icon: 'success'
|
||
});
|
||
wx.navigateBack({
|
||
delta: 1
|
||
});
|
||
} else {
|
||
this.setData({
|
||
loading: false
|
||
});
|
||
wx.showToast({
|
||
title: res.message,
|
||
icon: 'none'
|
||
});
|
||
}
|
||
});
|
||
}
|
||
},
|
||
/**
|
||
* 生命周期函数--监听页面加载
|
||
*/
|
||
onLoad() {
|
||
// 接收传参
|
||
const eventChannel = this.getOpenerEventChannel();
|
||
eventChannel &&
|
||
eventChannel.on &&
|
||
eventChannel.on('eventName', (data: any) => {
|
||
console.log('接收参数', data);
|
||
|
||
data.ckeckUrlList = [];
|
||
data.ensureUrlList = [];
|
||
data.otherUrlList = [];
|
||
if (data.ckeckUrl) {
|
||
for (let i = 0; i < data.ckeckUrl.split(',').length; i++) {
|
||
let pic = data.ckeckUrl.split(',')[i];
|
||
data.ckeckUrlList.push({
|
||
url: pic,
|
||
name: ''
|
||
});
|
||
}
|
||
}
|
||
if (data.ensureUrl) {
|
||
for (let i = 0; i < data.ensureUrl.split(',').length; i++) {
|
||
let pic = data.ensureUrl.split(',')[i];
|
||
data.ensureUrlList.push({
|
||
url: pic,
|
||
name: ''
|
||
});
|
||
}
|
||
}
|
||
if (data.otherUrl) {
|
||
for (let i = 0; i < data.otherUrl.split(',').length; i++) {
|
||
let pic = data.otherUrl.split(',')[i];
|
||
data.otherUrlList.push({
|
||
url: pic,
|
||
name: ''
|
||
});
|
||
}
|
||
}
|
||
if (data.vehicleList) {
|
||
for (let i = 0; i < data.vehicleList.length; i++) {
|
||
this.data.requireObj.vehicleList.push({
|
||
vehicleModel: '',
|
||
frameNumber: '',
|
||
plateNumber: '',
|
||
vehicleType: '',
|
||
vehicleBrand: ''
|
||
});
|
||
}
|
||
}
|
||
// if (data.projectList) {
|
||
// for (let i = 0; i < data.projectList.length; i++) {
|
||
// this.data.requireObj.projectList.push({
|
||
// checkStatus: ''
|
||
// });
|
||
// }
|
||
// }
|
||
this.setData({
|
||
params: !data.isAdd ? data : this.data.params,
|
||
checkTimeTamp: !data.isAdd
|
||
? new Date(data.checkTime).getTime()
|
||
: this.data.checkTimeTamp
|
||
});
|
||
this.getProjectOptions();
|
||
this.getDictOptions('vehicle_brand');
|
||
this.getDictOptions('vehicle_type');
|
||
this.getByRoleCode();
|
||
});
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面初次渲染完成
|
||
*/
|
||
onReady() {
|
||
// this.getProjectOptions()
|
||
// this.getDictOptions('contract_type')
|
||
// this.getDictOptions('vehicle_type')
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面显示
|
||
*/
|
||
onShow() {},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面隐藏
|
||
*/
|
||
onHide() {},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面卸载
|
||
*/
|
||
onUnload() {},
|
||
|
||
/**
|
||
* 页面相关事件处理函数--监听用户下拉动作
|
||
*/
|
||
onPullDownRefresh() {},
|
||
|
||
/**
|
||
* 页面上拉触底事件的处理函数
|
||
*/
|
||
onReachBottom() {},
|
||
|
||
/**
|
||
* 用户点击右上角分享
|
||
*/
|
||
onShareAppMessage() {}
|
||
});
|