You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2396 lines
71 KiB

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.

const {
projectList,
API_BASE_URL,
IMG_BASE_URL,
getElectricPlanAll,
findAllPlan,
saveOrEditCustomerEntry,
entryDetail,
getAddressByLonLat,
getAddressLonLat,
createQrcode
} = require('../../../api/api')
const utils = require('../../../utils/util')
Page({
/**
* 页面的初始数据
*/
data: {
API_BASE_URL: API_BASE_URL,
IMG_BASE_URL: IMG_BASE_URL,
capture: ['camera'], //拍摄模式
canvasLocation: "../../img/canvas-location.png", //手机拍摄添加水印定位图标
canvasDate: "../../img/canvas-date.png", //手机拍摄添加水印日期图片
canvasPeople: "../../img/canvas-people.png", //手机拍摄添加人员图片
standardSolutionsList: [{
type: "", //方案类型
name: "", //方案名称
id: "", //方案ID
code: "", //方案编号
drawing: "", //参考图纸
}], //标准方案初始数量
combinedSolutionsList: [{
type: "", //方案类型
name: "", //方案名称
id: "", //方案ID
code: "", //方案编号
pickerIndex: 0, //方案类型选择下标
drawing: "", //参考图纸
addType: 1, //显示新增方案按钮
}], //组合方案初始数量
photo: {
idCardFrontFileList: [], //身份证正面
idCardBackFileList: [], //身份证反面
// 无人机拍摄
phoneOne: [], //俯拍图
phoneTwo: [], //角度南
phoneThree: [], //补充1
phoneFour: [], //补充2
// 手机拍摄
phoneFive: [], //东北
phoneSix: [], //东南
phoneSeven: [], //南侧
phoneEight: [], //西南
phoneNine: [], //补充1
phoneTen: [], //补充2
phoneVideo: [], //屋顶视频
phoneHouse: [], //房产证
//踏勘记录表
surveyPhoneOne: [], //踏勘记录表1
surveyPhoneTwo: [], //踏勘记录表2
filingPhone: [], //备案文件
// 外观照片
outwardHousePhone: [], //房屋外观照片
inwardHousePhone: [], //房屋内部照片
roofHousePhone: [], //楼顶厚度照片
designPaper: [], //设计图纸
},
roofType: "平屋顶", //默认为平屋顶
schemeType: 1, //默认为标准方案
shootType: 1, //默认为无人机拍摄
azimuth: 1, //方位角默认为正南
repaymentMethod: 1, //划转方式默认为二类卡
projectId: ''
},
onLoad(e) {
const projectId = e.projectId; //有projectId说明从列表进去,可能是修改或者是暂存过
if (projectId) {
this.setData({
projectId
})
}
this.getProjectList()
this.getElectricPlanAll()
this.findAllPlan()
},
onReady() {
const query = wx.createSelectorQuery()
query.select('#Canvas')
.fields({
node: true,
size: true
})
.exec((res) => {
const canvas = res[0].node
this.setData({
canvas,
})
})
},
openDocument(res) {
console.log('openDocument', res)
let path = res.currentTarget.dataset.path
if (path) {
//获取文件后缀
let suffix = path.substring(path.lastIndexOf('.') + 1)
if (suffix == 'pdf') {
wx.downloadFile({
// 示例 url并非真实存在
url: IMG_BASE_URL + path,
success: function (res) {
const filePath = res.tempFilePath
wx.openDocument({
filePath: filePath,
showMenu: true,
success: function (res) {
console.log('打开文档成功')
}
})
}
})
} else {
wx.previewImage({
urls: [IMG_BASE_URL + path] // 需要预览的图片http链接列表
})
}
}
},
/**
*
* 获取电站详情
*
* @param {*} e
*/
entryDetail(e) {
let that = this
wx.showLoading({
title: "加载中"
})
entryDetail({
userId: wx.getStorageSync('userId'),
entryId: e.projectId
}).then((res) => {
wx.hideLoading()
var componentNum = 0;
// 组件,逆变器,并网箱,支架
if (res.componentList.length > 0) {
var componentList = [];
var converterList = [];
var cagesList = [];
var supportList = [];
for (let i = 0; i < res.componentList.length; i++) {
const element = res.componentList[i];
var OB = {
id: "",
num: "", //数量
model: "", //名称
addType: 0,
}
if (element.item_type == 3) {
OB.id = element.item_id;
OB.num = element.num;
OB.model = element.model;
componentNum = element.num * element.model + componentNum
componentList.push(OB)
} else if (element.item_type == 1) {
OB.id = element.item_id;
OB.num = element.num;
OB.model = element.model;
converterList.push(OB)
} else if (element.item_type == 2) {
OB.id = element.item_id;
OB.num = element.num;
OB.model = element.model;
cagesList.push(OB)
} else if (element.item_type == 4) {
OB.id = element.item_id;
OB.num = element.num;
OB.model = element.model;
supportList.push(OB)
}
}
//维持默认数组第一addType为1,用以显示新增按钮
if (componentList.length > 0) {
componentList[0].addType = 1;
this.setData({
componentList: componentList
})
} else {
this.setData({
componentList: [{
id: "",
num: "", //数量
model: "", //名称
addType: 1,
}], //组件初始数量
})
}
if (converterList.length > 0) {
converterList[0].addType = 1;
this.setData({
converterList: converterList
})
} else {
this.setData({
converterList: [{
id: "",
num: "", //数量
model: "", //名称
addType: 1,
}], //逆变器初始数量
})
}
if (cagesList.length > 0) {
cagesList[0].addType = 1;
this.setData({
cagesList: cagesList
})
} else {
this.setData({
cagesList: [{
id: "",
num: "", //数量
model: "", //名称
addType: 1,
}], //并网箱初始数量
})
}
if (supportList.length > 0) {
supportList[0].addType = 1;
this.setData({
supportList: supportList
})
} else {
this.setData({
supportList: [{
id: "",
num: "", //数量
model: "", //名称
addType: 1,
}], //支架初始数量
})
}
} else {
this.setData({
componentList: [{
id: "",
num: "", //数量
model: "", //名称
addType: 1,
}], //组件初始数量
converterList: [{
id: "",
num: "", //数量
model: "", //名称
addType: 1,
}], //逆变器初始数量
cagesList: [{
id: "",
num: "", //数量
model: "", //名称
addType: 1,
}], //并网箱初始数量
supportList: [{
id: "",
num: "", //数量
model: "", //名称
addType: 1,
}], //支架初始数量
})
}
this.setData({
componentNum: (componentNum/1000).toFixed(3),
})
let designPaperItem = res.design_drawings ? res.design_drawings.split(",") : ""
let designPaper = []
if (designPaperItem.length > 0) {
designPaperItem.forEach(element => {
let ob = {
name: '',
url: ''
}
ob.name = element
ob.url = this.data.IMG_BASE_URL + element
designPaper.push(ob)
});
}
this.setData({
id: res.id, //修改数据的时候传此ID
projectId: res.project_id,
projectCode: res.projectCode,
projectName: res.projectName,
name: res.tenant_name,
phone: res.mobile,
idCard: res.id_code,
bankName: res.bank_name,
bankCode: res.bank_code,
[`region[0]`]: res.province,
[`region[1]`]: res.city,
[`region[2]`]: res.area,
address: res.address,
longitude: res.longitude,
latitude: res.latitude,
roofType: res.roof_type,
shootType: res.shoot_type ? res.shoot_type : 2,
azimuth: res.azimuth ? res.azimuth : 1,
directionDeg: res.angle,
repaymentMethod: res.repayment_method ? res.repayment_method : 1,
deg: res.distance,
height: res.building_height,
remark: res.remarks,
schemeType: res.scheme_type ? res.scheme_type : 1,
solutionRemark: res.scheme_remarks,
'photo.designPaper': designPaper, //设计图纸
paycycle: res.pay_cycle,
companyName: res.project_company_name ? res.project_company_name : ""
})
if (res.longitude && res.latitude) {
this.setData({
longitudeAndLongitude: res.longitude + "," + res.latitude
})
} else {
this.getAddressLonLat()
}
if (res.scheme_type == 1) {
for (let i = 0; i < that.data.planList.length; i++) {
const element = that.data.planList[i];
if (res.scheme_type_id && (res.scheme_type_id == element.id)) {
this.setData({
standardSolutionsListIndex: i,
})
}
}
this.setData({
[`standardSolutionsList[0].id`]: res.scheme_id ? res.scheme_id : '',
[`standardSolutionsList[0].type`]: res.scheme_type_name ? res.scheme_type_name : '',
[`standardSolutionsList[0].typeId`]: res.scheme_type_id ? res.scheme_type_id : '',
[`standardSolutionsList[0].name`]: res.scheme_name ? res.scheme_name : "",
})
} else if (res.scheme_type == 2) {
if (res.composePlanList.length > 0) {
var combinedSolutionsList = []
for (let i = 0; i < res.composePlanList.length; i++) {
var combinedSolutionsListOB = {}
const element = res.composePlanList[i];
// type: "", //方案类型
// name: "", //方案名称
// id: "", //方案ID
// code: "", //方案编号
// pickerIndex: 0, //方案类型选择下标
// drawing: "", //参考图纸
// addType: 1, //显示新增方案按钮
if (i == 0) {
combinedSolutionsListOB.addType = 1;
}
combinedSolutionsListOB.code = element.code;
combinedSolutionsListOB.id = element.planId;
combinedSolutionsListOB.name = element.name;
combinedSolutionsListOB.type = element.planType;
combinedSolutionsListOB.planTypeId = element.planTypeId;
for (let i = 0; i < that.data.planList.length; i++) {
const planTypeObj = that.data.planList[i];
if (planTypeObj.allPlan.length > 0) {
for (let j = 0; j < planTypeObj.allPlan.length; j++) {
const plan = planTypeObj.allPlan[j];
if (plan.id == element.planId) {
combinedSolutionsListOB.pickerIndex = i
}
}
}
}
combinedSolutionsList.push(combinedSolutionsListOB)
}
this.setData({
combinedSolutionsList: combinedSolutionsList
})
}
}
// 添加图片
if (res.shoot_type == 1) {
if (res.roof_photo_one) {
this.setData({
[`photo.phoneOne[0].name`]: res.roof_photo_one,
[`photo.phoneOne[0].url`]: this.data.IMG_BASE_URL + res.roof_photo_one,
})
}
if (res.roof_photo_two) {
this.setData({
[`photo.phoneTwo[0].name`]: res.roof_photo_two,
[`photo.phoneTwo[0].url`]: this.data.IMG_BASE_URL + res.roof_photo_two,
})
}
if (res.roof_photo_three) {
this.setData({
[`photo.phoneThree[0].name`]: res.roof_photo_three,
[`photo.phoneThree[0].url`]: this.data.IMG_BASE_URL + res.roof_photo_three,
})
}
if (res.roof_photo_four) {
this.setData({
[`photo.phoneFour[0].name`]: res.roof_photo_four,
[`photo.phoneFour[0].url`]: this.data.IMG_BASE_URL + res.roof_photo_four,
})
}
if (res.roof_value) {
this.setData({
[`photo.phoneVideo[0].name`]: res.roof_value,
[`photo.phoneVideo[0].url`]: this.data.IMG_BASE_URL + res.roof_value,
})
}
} else if (res.shoot_type == 2) {
if (res.roof_photo_one) {
this.setData({
[`photo.phoneSix[0].name`]: res.roof_photo_one,
[`photo.phoneSix[0].url`]: this.data.IMG_BASE_URL + res.roof_photo_one,
})
}
if (res.roof_photo_two) {
this.setData({
[`photo.phoneSeven[0].name`]: res.roof_photo_two,
[`photo.phoneSeven[0].url`]: this.data.IMG_BASE_URL + res.roof_photo_two,
})
}
if (res.roof_photo_three) {
this.setData({
[`photo.phoneEight[0].name`]: res.roof_photo_three,
[`photo.phoneEight[0].url`]: this.data.IMG_BASE_URL + res.roof_photo_three,
})
}
if (res.roof_photo_four) {
this.setData({
[`photo.phoneNine[0].name`]: res.roof_photo_four,
[`photo.phoneNine[0].url`]: this.data.IMG_BASE_URL + res.roof_photo_four,
})
}
if (res.roof_photo_five) {
this.setData({
[`photo.phoneTen[0].name`]: res.roof_photo_five,
[`photo.phoneTen[0].url`]: this.data.IMG_BASE_URL + res.roof_photo_five,
})
}
if (res.roof_value) {
this.setData({
[`photo.phoneVideo[0].name`]: res.roof_value,
[`photo.phoneVideo[0].url`]: this.data.IMG_BASE_URL + res.roof_value,
})
}
}
if (res.id_card_back) {
this.setData({
[`photo.idCardBackFileList[0].name`]: res.id_card_back,
[`photo.idCardBackFileList[0].url`]: this.data.IMG_BASE_URL + res.id_card_back,
})
}
if (res.id_card_front) {
this.setData({
[`photo.idCardFrontFileList[0].name`]: res.id_card_front,
[`photo.idCardFrontFileList[0].url`]: this.data.IMG_BASE_URL + res.id_card_front,
})
}
if (res.house_ownership) {
this.setData({
[`photo.phoneHouse[0].name`]: res.house_ownership,
[`photo.phoneHouse[0].url`]: this.data.IMG_BASE_URL + res.house_ownership,
})
}
if (res.survey_record) {
this.setData({
[`photo.surveyPhoneOne[0].name`]: res.survey_record,
[`photo.surveyPhoneOne[0].url`]: this.data.IMG_BASE_URL + res.survey_record,
})
}
if (res.survey_record2) {
this.setData({
[`photo.surveyPhoneTwo[0].name`]: res.survey_record2,
[`photo.surveyPhoneTwo[0].url`]: this.data.IMG_BASE_URL + res.survey_record2,
})
}
// if (res.roof_photo_facade) {
// this.setData({
// [`photo.outwardHousePhone[0].name`]: res.roof_photo_facade,
// [`photo.outwardHousePhone[0].url`]: this.data.IMG_BASE_URL + res.roof_photo_facade,
// })
// }
if (res.roof_photo_interior) {
this.setData({
[`photo.inwardHousePhone[0].name`]: res.roof_photo_interior,
[`photo.inwardHousePhone[0].url`]: this.data.IMG_BASE_URL + res.roof_photo_interior,
})
}
if (res.dimensions_photo_thickness) {
this.setData({
[`photo.roofHousePhone[0].name`]: res.dimensions_photo_thickness,
[`photo.roofHousePhone[0].url`]: this.data.IMG_BASE_URL + res.dimensions_photo_thickness,
})
}
if (res.filing_document_photo) {
this.setData({
[`photo.filingPhone[0].name`]: res.filing_document_photo,
[`photo.filingPhone[0].url`]: this.data.IMG_BASE_URL + res.filing_document_photo,
})
}
})
},
/**
*
* 获取产品编号
*
* @param {*} e
*/
getProjectList(e) {
projectList({
userId: wx.getStorageSync('userId')
}).then((res) => {
this.setData({
projectList: res
})
})
},
/**
*
* 获取组件、逆变器、并网箱列表
*
* @param {*} e
*/
getElectricPlanAll(e) {
getElectricPlanAll({
}).then((res) => {
var componentApiList = [];
var converterApiList = [];
var cagesApiList = [];
var supportListApiList = [];
for (let i = 0; i < res.zjs.length; i++) {
const element = res.zjs[i].columns;
componentApiList.push(element)
}
for (let j = 0; j < res.inverters.length; j++) {
const element = res.inverters[j].columns;
converterApiList.push(element)
}
for (let k = 0; k < res.boxs.length; k++) {
const element = res.boxs[k].columns;
cagesApiList.push(element)
}
for (let m = 0; m < res.zhij.length; m++) {
const element = res.zhij[m].columns;
supportListApiList.push(element)
}
this.setData({
componentApiList: componentApiList, //组件
converterApiList: converterApiList, //逆变器
cagesApiList: cagesApiList, //并网箱
supportListApiList: supportListApiList
})
})
},
/**
*
* 获取方案类型和方案名称
*
* @param {*} e
*/
findAllPlan(e) {
let that = this
findAllPlan({
}).then((res) => {
for (let i = 0; i < res.length; i++) {
if (res[i].allPlan) {
res[i].allPlan = JSON.parse(res[i].allPlan)
for (let j = 0; j < res[i].allPlan.length; j++) {
var element = res[i].allPlan[j].columns;
res[i].allPlan[j] = element
}
}
}
that.setData({
planList: res,
})
if (that.data.projectId) {
that.entryDetail({
projectId: that.data.projectId
})
}
})
},
/**
*
* 暂存提交数据
*
* @param {*} e 1:暂存 2:提交
*/
submitFrom(e) {
if (e.currentTarget.dataset.type == 1) { //暂存
if (!this.data.projectId) {
wx.showToast({
title: '请选择产品名称',
icon: 'none'
})
return
}
wx.showLoading({
title: '提交中',
mask: true
})
var composePlanList = []; // 标准方案或组合方案
// if (this.data.schemeType == 1) { //标准
// if (this.data.standardSolutionsList[0].code && this.data.standardSolutionsList[0].name && this.data.standardSolutionsList[0].type && this.data.standardSolutionsList[0].id) {
// var composePlanListOB = {}
// composePlanListOB.code = this.data.standardSolutionsList[0].code;
// composePlanListOB.name = this.data.standardSolutionsList[0].name;
// composePlanListOB.planType = this.data.standardSolutionsList[0].type;
// composePlanListOB.planId = this.data.standardSolutionsList[0].id;
// composePlanList.push(composePlanListOB)
// }
// } else
if (this.data.schemeType == 2) { //组合
this.data.combinedSolutionsList.forEach(element => {
if (element.code && element.name && element.type && element.id) {
var composePlanListOB = {}
composePlanListOB.code = element.code;
composePlanListOB.name = element.name;
composePlanListOB.planType = element.type;
composePlanListOB.planId = element.id;
composePlanListOB.planTypeId = element.planTypeId;
composePlanList.push(composePlanListOB)
}
});
}
var itemList = []; //组件 逆变器 并网箱 1:组件 2:逆变器 3:并网箱 4:支架
this.data.componentList.forEach(element => { //组件
if (element.id) {
var component = {}
component.itemType = 3;
component.itemId = element.id;
component.num = element.num
itemList.push(component)
}
});
this.data.converterList.forEach(element => { //逆变器
if (element.id) {
var component = {}
component.itemType = 1;
component.itemId = element.id;
component.num = element.num;
itemList.push(component)
}
});
this.data.cagesList.forEach(element => { //并网箱
if (element.id) {
var component = {}
component.itemType = 2;
component.itemId = element.id;
component.num = element.num;
itemList.push(component)
}
});
this.data.supportList.forEach(element => { //支架
if (element.id) {
var support = {}
support.itemType = 4;
support.itemId = element.id;
support.num = element.num;
itemList.push(support)
}
});
var designPaper = [];
this.data.photo.designPaper.forEach(element => {
designPaper.push(element.name)
});
designPaper.join(",")
/**
*
* 接口数据
*
*/
var userId = wx.getStorageSync('userId')
var CustomerEntry = {
id: this.data.id ? this.data.id : "",
type: 0, //0.暂存 2.准入登记 3.准入登记
composePlanLists: composePlanList.length > 0 ? composePlanList : [],
itemList: itemList.length > 0 ? itemList : [],
projectId: this.data.projectId, //项目ID
projectCode: this.data.projectCode, //产品编号
projectName: this.data.projectName, //产品名称
tenantName: this.data.name, //业主姓名
mobile: this.data.phone, //联系方式
province: this.data.region ? this.data.region[0] : "", //省
city: this.data.region ? this.data.region[1] : "", //市
area: this.data.region ? this.data.region[2] : "", //区
idCode: this.data.idCard, //身份证卡号
bankName: this.data.bankName, //开户银行
bankCode: this.data.bankCode, //银行账号
address: this.data.address, //详细地址
longitude: this.data.longitude ? this.data.longitude : "", //经度
latitude: this.data.latitude ? this.data.latitude : "", //纬度
idCardFront: this.data.photo.idCardFrontFileList.length > 0 ? this.data.photo.idCardFrontFileList[0].name : '', //身份证正面
idCardBack: this.data.photo.idCardBackFileList.length > 0 ? this.data.photo.idCardBackFileList[0].name : '', //身份证反面
roofType: this.data.roofType, //屋顶类型
shootType: this.data.shootType, //拍摄方式
roofPhotoOne: this.data.shootType == 1 ? this.data.photo.phoneOne.length > 0 ? this.data.photo.phoneOne[0].name : "" : this.data.photo.phoneSix.length > 0 ? this.data.photo.phoneSix[0].name : "",
roofPhotoTwo: this.data.shootType == 1 ? this.data.photo.phoneTwo.length > 0 ? this.data.photo.phoneTwo[0].name : "" : this.data.photo.phoneSeven.length > 0 ? this.data.photo.phoneSeven[0].name : "",
roofPhotoThree: this.data.shootType == 1 ? this.data.photo.phoneThree.length > 0 ? this.data.photo.phoneThree[0].name : "" : this.data.photo.phoneEight.length > 0 ? this.data.photo.phoneEight[0].name : "",
roofPhotoFour: this.data.shootType == 1 ? this.data.photo.phoneFour.length > 0 ? this.data.photo.phoneFour[0].name : "" : this.data.photo.phoneNine.length > 0 ? this.data.photo.phoneNine[0].name : "",
roofPhotoFive: this.data.shootType == 1 ? "" : this.data.photo.phoneTen.length > 0 ? this.data.photo.phoneTen[0].name : "", //房屋照片
roofValue: this.data.photo.phoneVideo.length > 0 ? this.data.photo.phoneVideo[0].name : "", //屋顶视频
houseOwnership: this.data.photo.phoneHouse.length > 0 ? this.data.photo.phoneHouse[0].name : "", //房产证照片
surveyRecord: this.data.photo.surveyPhoneOne.length > 0 ? this.data.photo.surveyPhoneOne[0].name : "", //踏勘记录表1
surveyRecord2: this.data.photo.surveyPhoneTwo.length > 0 ? this.data.photo.surveyPhoneTwo[0].name : "", //踏勘记录表2
// roofPhotoFacade: this.data.photo.outwardHousePhone.length > 0 ? this.data.photo.outwardHousePhone[0].name : "", //房屋外观照片;
roofPhotoInterior: this.data.photo.inwardHousePhone.length > 0 ? this.data.photo.inwardHousePhone[0].name : "", //房屋内部照片;
dimensionsPhotoThickness: this.data.photo.roofHousePhone.length > 0 ? this.data.photo.roofHousePhone[0].name : "", //楼顶厚度照片
filingDocumentPhoto: this.data.photo.filingPhone.length > 0 ? this.data.photo.filingPhone[0].name : "", //备案文件
distance: this.data.deg, //并网距离
azimuth: this.data.azimuth, //方位角
angle: this.data.azimuth != 1 ? this.data.directionDeg : "", //方位角角度
buildingHeight: this.data.height, //建筑高度
repaymentMethod: this.data.repaymentMethod, //划转方式
remarks: this.data.remark, //备注
designDrawings: designPaper + "", //设计图纸
schemeType: this.data.schemeType, //设计方案
schemeTypeId: this.data.schemeType == 1 ? this.data.standardSolutionsList[0].typeId ? this.data.standardSolutionsList[0].typeId : "" : "", //当设计方案为标准方案时,传参
schemeTypeName: this.data.schemeType == 1 ? this.data.standardSolutionsList[0].type ? this.data.standardSolutionsList[0].type : "" : "",
schemeId: this.data.schemeType == 1 ? this.data.standardSolutionsList[0].id ? this.data.standardSolutionsList[0].id : "" : "",
schemeName: this.data.schemeType == 1 ? this.data.standardSolutionsList[0].name ? this.data.standardSolutionsList[0].name : "" : "",
schemeRemarks: this.data.solutionRemark, //方案备注
}
var data = {
userId: userId,
CustomerEntry: CustomerEntry,
}
// wx.hideLoading()
// console.log("暂存", data)
// return
saveOrEditCustomerEntry(data).then((res) => {
wx.hideLoading()
if (res.code == 200) {
wx.showToast({
title: "暂存成功",
icon: 'none',
success: function () {
setTimeout(function () {
//延时返回上一页面
wx.navigateBack()
}, 1500) //延迟时间
}
})
} else {
wx.showToast({
title: res.errMsg,
icon: 'none'
})
}
})
} else if (e.currentTarget.dataset.type == 2) { //提交
if (!this.data.projectId) {
wx.showToast({
title: '请选择产品名称',
icon: 'none'
})
return
} else if (!this.data.name) {
wx.showToast({
title: '请输入姓名',
icon: 'none'
})
return
} else if (!this.data.phone) {
wx.showToast({
title: '请输入联系方式',
icon: 'none'
})
return
} else if (!this.data.idCard) {
wx.showToast({
title: '请输入身份证号码',
icon: 'none'
})
return
}else if (!this.data.bankName) {
wx.showToast({
title: '请输入开户银行',
icon: 'none'
})
return
} else if (!this.data.bankCode) {
wx.showToast({
title: '请输入银行账号',
icon: 'none'
})
return
} else if (!this.data.region) {
wx.showToast({
title: "请选择安装地址",
icon: 'none'
})
return
} else if (!this.data.address) {
wx.showToast({
title: "请输入安装地址",
icon: 'none'
})
return
} else if (!this.data.longitude && this.data.latitude) {
wx.showToast({
title: "请添加经纬度信息",
icon: 'none'
})
return
} else if (this.data.photo.idCardBackFileList.length == 0 || this.data.photo.idCardFrontFileList.length == 0) {
wx.showToast({
title: "请上传身份证照片",
icon: 'none'
})
return
} else if (this.data.shootType == 1 && (this.data.photo.phoneOne.length == 0 || this.data.photo.phoneTwo.length == 0 || this.data.photo.phoneVideo.length == 0)) {
wx.showToast({
title: "请上传房屋照片",
icon: 'none'
})
return
} else if (this.data.shootType == 2 && (this.data.photo.phoneSix.length == 0 || this.data.photo.phoneSeven.length == 0 || this.data.photo.phoneEight.length == 0 || this.data.photo.phoneVideo.length == 0)) {
wx.showToast({
title: "请上传房屋照片",
icon: 'none'
})
return
} else if (this.data.photo.outwardHousePhone.length == 0 || this.data.photo.inwardHousePhone.length == 0 || this.data.photo.roofHousePhone.length == 0) {
wx.showToast({
title: "请上传外观照片",
icon: 'none'
})
return
} else if (this.data.photo.phoneHouse.length == 0) {
wx.showToast({
title: "请上传房产证",
icon: 'none'
})
return
} else if (this.data.photo.surveyPhoneOne.length == 0) {
wx.showToast({
title: "请上传踏勘记录表",
icon: 'none'
})
return
} else if (!this.data.deg) {
wx.showToast({
title: "请输入并网距离",
icon: 'none'
})
return
} else if (this.data.azimuth != 1 && !this.data.directionDeg) {
wx.showToast({
title: "方位角为非正南时请输入角度",
icon: 'none'
})
return
} else if (!this.data.height) {
wx.showToast({
title: "请输入建筑高度",
icon: 'none'
})
return
} else if (this.data.photo.designPaper.length == 0) {
wx.showToast({
title: "请上传1-10张设计图纸",
icon: 'none'
})
return
} else if (this.data.schemeType == 1 && !this.data.standardSolutionsList[0].id) {
wx.showToast({
title: "请完整选择标准方案",
icon: 'none'
})
return
} else if (this.data.schemeType == 2) {
for (let i = 0; i < this.data.combinedSolutionsList.length; i++) {
const element = this.data.combinedSolutionsList[i];
if (!element.code) {
wx.showToast({
title: "请完整选择组合方案",
icon: 'none'
})
return;
}
}
}
for (let b = 0; b < this.data.componentList.length; b++) {
const element = this.data.componentList[b];
if (!element.num) {
wx.showToast({
title: "有组件未选择输入完整",
icon: 'none'
})
return;
}
}
for (let i = 0; i < this.data.converterList.length; i++) {
const element = this.data.converterList[i];
if (!element.num) {
wx.showToast({
title: "有逆变器未选择输入完整",
icon: 'none'
})
return;
}
}
// for (let j = 0; j < this.data.cagesList.length; j++) {
// const element = this.data.cagesList[j];
// if (!element.num) {
// wx.showToast({
// title: "有并网箱未选择输入完整",
// icon: 'none'
// })
// return;
// }
// }
wx.showLoading({
title: '提交中',
mask: true
})
var composePlanList = []; // 标准方案或组合方案
// if (this.data.schemeType == 1) { //标准
// var composePlanListOB = {}
// composePlanListOB.code = this.data.standardSolutionsList[0].code;
// composePlanListOB.name = this.data.standardSolutionsList[0].name;
// composePlanListOB.planType = this.data.standardSolutionsList[0].type;
// composePlanListOB.planId = this.data.standardSolutionsList[0].id;
// composePlanList.push(composePlanListOB)
// } else
if (this.data.schemeType == 2) { //组合
this.data.combinedSolutionsList.forEach(element => {
var composePlanListOB = {}
composePlanListOB.code = element.code;
composePlanListOB.name = element.name;
composePlanListOB.planType = element.type;
composePlanListOB.planId = element.id;
composePlanListOB.planTypeId = element.planTypeId;
composePlanList.push(composePlanListOB)
});
}
var itemList = []; //组件 逆变器 并网箱 1:组件 2:逆变器 3:并网箱
this.data.componentList.forEach(element => { //组件
var component = {}
if (element.id && element.num) {
component.itemType = 3;
component.itemId = element.id;
component.num = element.num
itemList.push(component)
}
});
this.data.converterList.forEach(element => { //逆变器
var component = {}
if (element.id && element.num) {
component.itemType = 1;
component.itemId = element.id;
component.num = element.num;
itemList.push(component)
}
});
this.data.cagesList.forEach(element => { //并网箱
var component = {}
if (element.id && element.num) {
component.itemType = 2;
component.itemId = element.id;
component.num = element.num;
itemList.push(component)
}
});
var designPaper = [];
this.data.photo.designPaper.forEach(element => {
designPaper.push(element.name)
});
designPaper.join(",")
/**
*
* 接口数据
*
*/
var userId = wx.getStorageSync('userId')
var CustomerEntry = {
id: this.data.id ? this.data.id : "", //当有此参数的时候页面为修改
type: 3, //0.暂存 2.准入登记 3.提交审核
composePlanLists: composePlanList,
itemList: itemList,
projectId: this.data.projectId, //项目ID
projectCode: this.data.projectCode, //产品编号
projectName: this.data.projectName, //产品名称
tenantName: this.data.name, //业主姓名
mobile: this.data.phone, //联系方式
province: this.data.region[0], //省
city: this.data.region[1], //市
area: this.data.region[2], //区
idCode: this.data.idCard, //身份证卡号
bankName: this.data.bankName, //开户银行
bankCode: this.data.bankCode, //银行账号
address: this.data.address, //详细地址
longitude: this.data.longitude, //经度
latitude: this.data.latitude, //纬度
idCardFront: this.data.photo.idCardFrontFileList[0].name, //身份证正面
idCardBack: this.data.photo.idCardBackFileList[0].name, //身份证反面
roofType: this.data.roofType, //屋顶类型
shootType: this.data.shootType, //拍摄方式
roofPhotoOne: this.data.shootType == 1 ? this.data.photo.phoneOne[0].name : this.data.photo.phoneSix[0].name,
roofPhotoTwo: this.data.shootType == 1 ? this.data.photo.phoneTwo[0].name : this.data.photo.phoneSeven[0].name,
roofPhotoThree: this.data.shootType == 1 ? this.data.photo.phoneThree.length > 0 ? this.data.photo.phoneThree[0].name : "" : this.data.photo.phoneEight[0].name,
roofPhotoFour: this.data.shootType == 1 ? this.data.photo.phoneFour.length > 0 ? this.data.photo.phoneFour[0].name : "" : this.data.photo.phoneNine.length > 0 ? this.data.photo.phoneNine[0].name : "",
roofPhotoFive: this.data.shootType == 1 ? "" : this.data.photo.phoneTen.length > 0 ? this.data.photo.phoneTen[0].name : "", //房屋照片
roofValue: this.data.photo.phoneVideo[0].name, //屋顶视频
houseOwnership: this.data.photo.phoneHouse[0].name, //房产证照片
surveyRecord: this.data.photo.surveyPhoneOne[0].name, //踏勘记录表1
surveyRecord2: this.data.photo.surveyPhoneTwo.length > 0 ? this.data.photo.surveyPhoneTwo[0].name : "", //踏勘记录表2
// roofPhotoFacade: this.data.photo.outwardHousePhone[0].name, //房屋外观照片;
roofPhotoInterior: this.data.photo.inwardHousePhone[0].name, //房屋内部照片;
dimensionsPhotoThickness: this.data.photo.roofHousePhone[0].name, //楼顶厚度照片
filingDocumentPhoto: this.data.photo.filingPhone.length > 0 ? this.data.photo.filingPhone[0].name : "", //备案文件
distance: this.data.deg, //并网距离
azimuth: this.data.azimuth, //方位角
angle: this.data.azimuth != 1 ? this.data.directionDeg : "", //方位角角度
buildingHeight: this.data.height, //建筑高度
repaymentMethod: this.data.repaymentMethod, //划转方式
remarks: this.data.remark, //备注
designDrawings: designPaper + "", //设计图纸
schemeType: this.data.schemeType, //设计方案
schemeTypeId: this.data.schemeType == 1 ? this.data.standardSolutionsList[0].typeId : "", //当设计方案为标准方案时,传参
schemeTypeName: this.data.schemeType == 1 ? this.data.standardSolutionsList[0].type : "",
schemeId: this.data.schemeType == 1 ? this.data.standardSolutionsList[0].id : "",
schemeName: this.data.schemeType == 1 ? this.data.standardSolutionsList[0].name : "",
schemeRemarks: this.data.solutionRemark, //方案备注
}
var data = {
userId: userId,
CustomerEntry: CustomerEntry,
}
// console.log("提交数据", data)
// return
saveOrEditCustomerEntry(data).then((res) => {
wx.hideLoading()
if (res.code == 200) {
wx.showToast({
title: this.data.id ? "修改成功" : "提交成功",
icon: 'none',
success: function () {
setTimeout(function () {
//延时返回上一页面
wx.navigateBack()
}, 1500) //延迟时间
}
})
} else {
wx.showToast({
title: res.errMsg,
icon: 'none'
})
}
})
}
},
/**
*
* 上传图片
*
* @param {*} e
*/
afteruploadPhotoRead(e) {
const type = e.currentTarget.dataset.type
if (type == 16) {
var count = 0;
this.afteruploadPhotoReadS(e, count)
return
}
// 手机拍摄添加水印
if (type == 7 || type == 8 || type == 9 || type == 10 || type == 11) {
if (!this.data.name) {
wx.showToast({
title: '请输入业主姓名',
icon: 'none'
})
return
}
this.getLocation(e)
return
}
const {
file
} = e.detail;
const img = file.url;
wx.showLoading({
title: '上传中',
})
var that = this
wx.uploadFile({
url: that.data.API_BASE_URL + 'common/weChat/uploadImage',
filePath: file.url,
name: 'file',
complete: function (res) {
console.log("上传图片", res)
wx.hideLoading()
if (res.statusCode == 200) {
wx.showToast({
title: '选择成功',
icon: 'none',
})
var item = {
url: "",
name: "",
}
// 渲染各自图片
switch (e.currentTarget.dataset.type) {
case "0": //身份证正面
item.url = img;
item.name = res.data;
that.data.photo.idCardFrontFileList.push(item)
that.setData({
'photo.idCardFrontFileList': that.data.photo.idCardFrontFileList
})
break
case "1": //身份证反面
item.url = img;
item.name = res.data;
that.data.photo.idCardBackFileList.push(item)
that.setData({
'photo.idCardBackFileList': that.data.photo.idCardBackFileList
})
break
case "2": //无人机俯拍
item.url = img;
item.name = res.data;
that.data.photo.phoneOne.push(item)
that.setData({
'photo.phoneOne': that.data.photo.phoneOne
})
break
case "3": //无人机角度南
item.url = img;
item.name = res.data;
that.data.photo.phoneTwo.push(item)
that.setData({
'photo.phoneTwo': that.data.photo.phoneTwo
})
break
case "4": //无人机补充1
item.url = img;
item.name = res.data;
that.data.photo.phoneThree.push(item)
that.setData({
'photo.phoneThree': that.data.photo.phoneThree
})
break
case "5": //无人机补充2
item.url = img;
item.name = res.data;
that.data.photo.phoneFour.push(item)
that.setData({
'photo.phoneFour': that.data.photo.phoneFour
})
break
case "12": //屋顶视频
item.url = img;
item.name = res.data;
that.data.photo.phoneVideo.push(item)
that.setData({
'photo.phoneVideo': that.data.photo.phoneVideo
})
break
case "13": //房产证
item.url = img;
item.name = res.data;
that.data.photo.phoneHouse.push(item)
that.setData({
'photo.phoneHouse': that.data.photo.phoneHouse
})
break
case "14": //踏勘表1
item.url = img;
item.name = res.data;
that.data.photo.surveyPhoneOne.push(item)
that.setData({
'photo.surveyPhoneOne': that.data.photo.surveyPhoneOne
})
break
case "15": //踏勘表2
item.url = img;
item.name = res.data;
that.data.photo.surveyPhoneTwo.push(item)
that.setData({
'photo.surveyPhoneTwo': that.data.photo.surveyPhoneTwo
})
break
case "17": //备案文件
item.url = img;
item.name = res.data;
that.data.photo.filingPhone.push(item)
that.setData({
'photo.filingPhone': that.data.photo.filingPhone
})
break
case "18": //房屋外观照片
item.url = img;
item.name = res.data;
that.data.photo.outwardHousePhone.push(item)
that.setData({
'photo.outwardHousePhone': that.data.photo.outwardHousePhone
})
break
case "19": //房屋内部照片
item.url = img;
item.name = res.data;
that.data.photo.inwardHousePhone.push(item)
that.setData({
'photo.inwardHousePhone': that.data.photo.inwardHousePhone
})
break
case "20": //楼顶厚度照片
item.url = img;
item.name = res.data;
that.data.photo.roofHousePhone.push(item)
that.setData({
'photo.roofHousePhone': that.data.photo.roofHousePhone
})
break
}
} else {
wx.showToast({
title: '选择失败',
icon: 'error'
})
}
}
})
},
/**
*
* 上传设计图纸,多张图片递归
*
* @param {*} e
*/
afteruploadPhotoReadS(e, count) {
let ob = {
name: '',
url: '',
}
wx.showLoading({
title: '加载第' + (count + 1) + '张照片中',
mask: true,
})
const element = e.detail.file[count];
var that = this;
wx.uploadFile({
url: that.data.API_BASE_URL + 'common/weChat/uploadImage',
filePath: element.url,
name: 'file',
success(res) {
wx.hideLoading()
console.log("res", res)
if (res.statusCode == 200) {
count = count + 1;
ob.name = res.data
ob.url = element.url
that.data.photo.designPaper.push(ob)
console.log("designPaper", that.data.photo.designPaper)
that.setData({
'photo.designPaper': that.data.photo.designPaper
})
if (count == e.detail.file.length) {
wx.showToast({
title: '选择成功',
icon: 'none'
})
} else {
that.afteruploadPhotoReadS(e, count)
}
} else {
wx.showToast({
title: '选择失败',
icon: 'error'
})
}
}
})
},
/**
*
* 删除图片
*
* @param {*} e
*/
deleteImg(e) {
console.log("删除图片事件", e)
switch (e.currentTarget.dataset.type) {
case "0": //删除身份证正面
this.setData({
'photo.idCardFrontFileList': []
})
break;
case "1": //删除身份证反面
this.setData({
'photo.idCardBackFileList': []
})
break;
case "2": //删除俯拍
this.setData({
'photo.phoneOne': []
})
break;
case "3": //删除角度南
this.setData({
'photo.phoneTwo': []
})
break;
case "4": //删除补充1
this.setData({
'photo.phoneThree': []
})
break;
case "5": //删除补充2
this.setData({
'photo.phoneFour': []
})
break;
case "6": //删除东北
this.setData({
'photo.phoneFive': []
})
break;
case "7": //删除东南
this.setData({
'photo.phoneSix': []
})
break;
case "8": //删除南侧
this.setData({
'photo.phoneSeven': []
})
break;
case "9": //删除西南
this.setData({
'photo.phoneEight': []
})
break;
case "10": //删除补充1
this.setData({
'photo.phoneNine': []
})
break;
case "11": //删除补充2
this.setData({
'photo.phoneTen': []
})
break;
case "12": //删除屋顶视频
this.setData({
'photo.phoneVideo': []
})
break;
case "13": //删除房产证
this.setData({
'photo.phoneHouse': []
})
break;
case "14": //删除踏勘1
this.setData({
'photo.surveyPhoneOne': []
})
break;
case "15": //删除踏勘2
this.setData({
'photo.surveyPhoneTwo': []
})
break;
case "16":
this.deleteImgS(e)
break;
case "17": //备案文件
this.setData({
'photo.filingPhone': []
})
break;
case "18": //房屋外观照片
this.setData({
'photo.outwardHousePhone': []
})
break;
case "19": //房屋内部照片
this.setData({
'photo.inwardHousePhone': []
})
break;
case "20": //楼顶厚度照片
this.setData({
'photo.roofHousePhone': []
})
break;
}
},
/**
* 删除设计图纸
*
*/
deleteImgS(e) {
const index = e.detail.index; //删除图片的下标
this.data.photo.designPaper.splice(index, 1)
this.setData({
'photo.designPaper': this.data.photo.designPaper
})
},
/**
*
* 上传pdf或图片
*
* @param {*} e
*/
upload(e) {
var that = this;
wx.chooseMessageFile({
count: 1,
type: 'all',
success(res) {
console.log('chooseMessageFile===', res)
//获取文件后缀
let suffix = res.tempFiles[0].path.substring(res.tempFiles[0].path.lastIndexOf('.') + 1)
if (suffix.search(/jpg|png|jpeg|pdf/) == -1) {
wx.showToast({
title: '只能上传pdf文件或图片',
icon: 'none'
})
return
} else {
wx.showLoading({
title: '选择中',
})
wx.uploadFile({
url: that.data.API_BASE_URL + 'common/weChat/uploadImage',
filePath: res.tempFiles[0].path,
name: 'file',
complete: function (res) {
console.log("选择文件", res)
wx.hideLoading()
if (res.statusCode == 200) {
wx.showToast({
title: '选择成功',
icon: 'none'
})
that.setData({
designPaper: res.data
})
} else {
wx.showToast({
title: '选择失败',
icon: 'none'
})
}
}
})
}
}
})
},
/**
*
* 选择产品编号
*
* @param {*} ee
*/
bindprojectList(e) {
this.setData({
projectCode: this.data.projectList[e.detail.value].code,
projectName: this.data.projectList[e.detail.value].name,
projectId: this.data.projectList[e.detail.value].id,
companyName: this.data.projectList[e.detail.value].companyName,
paycycle: this.data.projectList[e.detail.value].pay_cycle
})
},
/**
*
* 选择标准方案类型
*
* @param {*} e
*/
bindPlanChange(e) {
const index = e.detail.value; //选择第几个
this.data.standardSolutionsList[0].type = this.data.planList[index].name; //方案类型
this.data.standardSolutionsList[0].typeId = this.data.planList[index].id; //方案类型id
this.data.standardSolutionsList[0].name = ""; //方案名称
this.data.standardSolutionsList[0].code = ""; //方案编号
this.data.standardSolutionsList[0].nameId = ""; //方案名称Id
this.data.standardSolutionsList[0].id = "";
this.setData({
standardSolutionsList: this.data.standardSolutionsList,
standardSolutionsListIndex: index, //选择方案类型的下标用以渲染方案名称picker选择器
})
},
/**
*
* 选择标准方案名称
*
* @param {*} e
*/
bindPlanNameChange(e) {
if (!this.data.standardSolutionsListIndex) {
wx.showToast({
title: '请先选择标准方案类型',
icon: 'none'
})
return
}
const index = e.detail.value; //选择第几个
this.data.standardSolutionsList[0].name = this.data.planList[this.data.standardSolutionsListIndex].allPlan[index].name; //方案名称
this.data.standardSolutionsList[0].id = this.data.planList[this.data.standardSolutionsListIndex].allPlan[index].id; //方案名称Id
this.setData({
standardSolutionsList: this.data.standardSolutionsList,
})
},
/**
*
* 选择组合方案类型
*
* @param {*} e
*/
bindCombinationPlanChange(e) {
const pickerIndex = e.detail.value; //选择器选择第几个
const index = e.currentTarget.dataset.index; //选择第几个
this.setData({
[`combinedSolutionsList[${index}].type`]: this.data.planList[pickerIndex].name,
[`combinedSolutionsList[${index}].planTypeId`]: this.data.planList[pickerIndex].id,
[`combinedSolutionsList[${index}].pickerIndex`]: pickerIndex, //选择方案类型的下标用以渲染方案名称picker选择器
[`combinedSolutionsList[${index}].name`]: "",
[`combinedSolutionsList[${index}].code`]: "",
[`combinedSolutionsList[${index}].id`]: "",
})
},
/**
*
* 选择组合方案名称
*
* @param {*} e
*/
bindCombinationPlanNameChange(e) {
const pickerIndex = e.detail.value; //选择器选择第几个
const cindex = e.currentTarget.dataset.cindex; //选择第几个
const index = e.currentTarget.dataset.index; //选择第几个
for (let i = 0; i < this.data.combinedSolutionsList.length; i++) {
const element = this.data.combinedSolutionsList[i];
if (index == i && !element.type) {
wx.showToast({
title: '请先选择当前组合方案类型',
icon: 'none'
})
return
}
}
this.setData({
[`combinedSolutionsList[${index}].id`]: this.data.planList[cindex].allPlan[pickerIndex].id,
[`combinedSolutionsList[${index}].name`]: this.data.planList[cindex].allPlan[pickerIndex].name,
[`combinedSolutionsList[${index}].code`]: this.data.planList[cindex].allPlan[pickerIndex].code,
})
},
/**
*
* 选择组件
*
* @param {*} e
*/
bindComponentChange(e) {
const pickerIndex = e.detail.value; //选择器选择第几个
const index = e.currentTarget.dataset.index; //选择第几个
this.setData({
[`componentList[${index}].model`]: this.data.componentApiList[pickerIndex].model,
[`componentList[${index}].id`]: this.data.componentApiList[pickerIndex].id,
})
},
/**
*
* 选择逆变器
*
* @param {*} e
*/
bindConverterChange(e) {
const pickerIndex = e.detail.value; //选择器选择第几个
const index = e.currentTarget.dataset.index; //选择第几个
this.setData({
[`converterList[${index}].model`]: this.data.converterApiList[pickerIndex].model,
[`converterList[${index}].id`]: this.data.converterApiList[pickerIndex].id,
})
},
/**
*
* 选择并网箱
*
* @param {*} e
*/
bindCagesChange(e) {
const pickerIndex = e.detail.value; //选择器选择第几个
const index = e.currentTarget.dataset.index; //选择第几个
this.setData({
[`cagesList[${index}].model`]: this.data.cagesApiList[pickerIndex].model,
[`cagesList[${index}].id`]: this.data.cagesApiList[pickerIndex].id,
})
},
/**
*
* 选择支架
*
* @param {*} e
*/
bindSupportListChange(e) {
const pickerIndex = e.detail.value; //选择器选择第几个
const index = e.currentTarget.dataset.index; //选择第几个
this.setData({
[`supportList[${index}].model`]: this.data.supportListApiList[pickerIndex].model,
[`supportList[${index}].id`]: this.data.supportListApiList[pickerIndex].id,
})
},
/**
*
* 选择设计方案
*
* @param {*} e 1:标准方案 2:组合方案
*/
radioChangeSolution(e) {
this.setData({
schemeType: e.detail.value == 1 ? 1 : 2,
})
},
/**
*
* 选择屋顶类型
*
* @param {*} e
*/
radioChangeRoofType(e) {
this.setData({
roofType: e.detail.value,
})
},
/**
*
* 选择拍摄方式
*
* @param {*} e
*/
radioChangeShooting(e) {
this.setData({
shootType: e.detail.value == 1 ? 1 : 2
})
},
/**
*
* 选择方位角
*
* @param {*} e
*/
radioChangeAzimuth(e) {
if (e.detail.value == 1) {
this.setData({
azimuth: 1
})
} else if (e.detail.value == 2) {
this.setData({
azimuth: 2
})
} else if (e.detail.value == 3) {
this.setData({
azimuth: 3
})
}
},
/**
*
* 选择划转方式
*
* @param {*} e
*/
radioChangeRepaymentMethod(e) {
this.setData({
repaymentMethod: e.detail.value
})
},
/**
*
* 选择用户地址
*
* @param {*} e
*/
bindRegionChange: function (e) {
this.setData({
region: e.detail.value,
address: "",
longitudeAndLongitude: "",
longitude: "",
latitude: "",
})
},
/**
*
*
* 输入组件,逆变器,并网箱的数量
*
* @param {*} e 1:组件 2:逆变器 3:并网箱
*/
inputNum(e) {
switch (e.currentTarget.dataset.type) {
case "1":
this.setData({
[`componentList[${e.currentTarget.dataset.index}].num`]: e.detail.value,
})
var componentNum = 0
for (let i = 0; i < this.data.componentList.length; i++) {
const element = this.data.componentList[i];
componentNum = element.num * element.model
}
this.setData({
componentNum: (componentNum/1000).toFixed(3)
})
break;
case "2":
this.setData({
[`converterList[${e.currentTarget.dataset.index}].num`]: e.detail.value,
})
break;
case "3":
this.setData({
[`cagesList[${e.currentTarget.dataset.index}].num`]: e.detail.value,
})
case "4":
this.setData({
[`supportList[${e.currentTarget.dataset.index}].num`]: e.detail.value,
})
break;
}
},
/**
*
* 新增方案
*
* @param {*} e
*/
addSolution(e) {
const list = [{
type: "", //方案类型
name: "", //方案名称
id: "", //方案ID
code: "", //方案编号
pickerIndex: 0, //方案类型选择下标
drawing: "", //参考图纸
}]
var demo = this.data.combinedSolutionsList.concat(list)
this.setData({
[`combinedSolutionsList[${demo.length-1}]`]: demo[demo.length - 1]
})
},
/**
*
* 删除方案
*
* @param {*} e
*/
deleteSolution(e) {
wx.showModal({
title: '提示',
content: '确定删除当前方案?',
complete: (res) => {
if (res.confirm) {
this.data.combinedSolutionsList.splice(e.currentTarget.dataset.index, 1)
this.setData({
combinedSolutionsList: this.data.combinedSolutionsList
})
}
}
})
},
/**
*
* 新增型号
*
* @param {*} e 1:组件 2:逆变器 3:并网箱
*/
add(e) {
const list = {
id: "",
num: "",
name: "",
}
switch (e.currentTarget.dataset.type) {
case "1":
this.setData({
componentList: this.data.componentList.concat(list)
})
break;
case "2":
this.setData({
converterList: this.data.converterList.concat(list)
})
break;
case "3":
this.setData({
cagesList: this.data.cagesList.concat(list)
})
case "4":
this.setData({
supportList: this.data.supportList.concat(list)
})
break;
}
},
/**
*
* 删除型号
*
* @param {*} e 1:组件 2:逆变器 3:并网箱
*/
delete(e) {
wx.showModal({
title: '提示',
content: '确定删除?',
complete: (res) => {
if (res.confirm) {
switch (e.currentTarget.dataset.type) {
case "1":
this.data.componentList.splice(e.currentTarget.dataset.index, 1)
this.setData({
componentList: this.data.componentList
})
break;
case "2":
this.data.converterList.splice(e.currentTarget.dataset.index, 1)
this.setData({
converterList: this.data.converterList,
})
break;
case "3":
this.data.cagesList.splice(e.currentTarget.dataset.index, 1)
this.setData({
cagesList: this.data.cagesList,
})
case "4":
this.data.supportList.splice(e.currentTarget.dataset.index, 1)
this.setData({
supportList: this.data.supportList,
})
break;
}
}
}
})
},
/**
*
*
* 获取用户当前地理位置后为照片添加水印
*
* @param {*} res
* @param {*} e
*/
getLocation(e) {
var that = this
wx.showLoading({
title: '获取定位中',
})
wx.getLocation({
type: 'wgs84',
isHighAccuracy: true,
success(resLocation) {
getAddressByLonLat({
lonLat: resLocation.longitude + "," + resLocation.latitude
}).then((res) => {
wx.hideLoading()
if (res.code == 200) {
res.data = res.data.split("省")
that.setData({
customerAddress: res.data.length > 1 ? res.data[1] : res.data,
canvasLongitude: resLocation.longitude,
canvasLatitude: resLocation.latitude
})
wx.getStorage({
key: 'userName',
success(res) {
that.setData({
userName: res.data
})
}
})
//获取小程序二维码
let lonLat = resLocation.longitude + ',' + resLocation.latitude;
createQrcode({
content:lonLat
}).then(ret=>{
let codeImg ="data:image/png;base64," + ret;
that.setData({
imageCodeImg:codeImg
});
// console.log("codeImg",codeImg);
that.chooseImages(e)
});
// that.chooseImages(e)
} else {
wx.showToast({
title: '定位失败',
icon: 'none'
})
}
})
},
fail(res) {
wx.hideLoading()
wx.showModal({
title: '提示',
content: '拍摄上传房屋照片,请先授权小程序定位权限',
cancelText: "取消",
confirmText: "确定",
success(res) {
if (res.confirm) {
wx.openSetting({
withSubscriptions: true,
})
}
}
})
}
})
},
/**
*
* 获取当前位置信息 经纬度转位置信息
*
* @param {*} e
*/
getNowLocation(e) {
var that = this
wx.getLocation({
type: 'wgs84',
isHighAccuracy: true,
success(res) {
console.log("获取经纬", res)
wx.showLoading({
title: '获取定位中',
})
getAddressByLonLat({
lonLat: res.longitude + "," + res.latitude
}).then((res) => {
wx.hideLoading()
if (res.code == 200) {
} else {
wx.showToast({
title: '定位失败',
icon: 'none'
})
}
})
},
fail(res) {
wx.showModal({
title: '提示',
content: '请授权当前小程序定位权限',
cancelText: "取消",
confirmText: "确定",
success(res) {
if (res.confirm) {
wx.openSetting({
withSubscriptions: true,
})
}
}
})
}
})
},
/**
*
* 获取当前位置信息 位置信息转经纬度
*
* @param {*} e
*/
getNowLocationDetails: utils.debounce(function (e) {
var that = this
if (that.data.region[0] && that.data.address) {
that.getAddressLonLat()
}
}),
getAddressLonLat() {
var that = this
wx.showLoading({
title: '加载中',
})
getAddressLonLat({
address: that.data.region[0] + that.data.region[1] + that.data.region[2] + that.data.address
}).then((res) => {
wx.hideLoading()
if (res.code == 200) {
if (res.data) {
var data = res.data.split(",")
that.setData({
longitude: data[0],
latitude: data[1],
longitudeAndLongitude: data[0] + "," + data[1]
})
} else {
wx.showToast({
title: '暂未获取到经纬度,请输入详细地址',
icon: 'none'
})
}
} else {
wx.showToast({
title: '获取经纬度失败',
icon: 'none'
})
}
})
},
/**
*
*
* 选择图片
*
*
* @param {*} res
*/
async chooseImages(res) {
const type = res.currentTarget.dataset.type
const {
file
} = res.detail;
await this.addWatermark(file.url, type)
},
/**
*
* 添加水印方法
*
* @param {*} tempFilePath//图片路径
* @param {*} type //类型
*/
addWatermark(tempFilePath, type) {
return new Promise(async (resolve, reject) => {
wx.showLoading({
title: '添加水印中',
})
// 获取图片信息
const imgInfo = await wx.getImageInfo({
src: tempFilePath
})
//获取当前设备像素
const dpr = wx.getSystemInfoSync().pixelRatio
//创建画笔
const ctx = this.data.canvas.getContext('2d')
//设置画布大小
if (wx.getSystemInfoSync().platform == "ios") {
this.data.canvas.width = imgInfo.width
this.data.canvas.height = imgInfo.height
ctx.scale(1, 1)
} else {
this.data.canvas.width = imgInfo.width * 1.5
this.data.canvas.height = imgInfo.height * 1.5
ctx.scale(1.5, 1.5)
}
// 创建图片对象
const image = this.data.canvas.createImage();
//设置图片路径
image.src = tempFilePath;
//绘制照片
image.onload = () => {
//绘制定位图标
const imageLocation = this.data.canvas.createImage();
imageLocation.src = this.data.canvasLocation
imageLocation.onload = () => {
ctx.drawImage(imageLocation, 20, imgInfo.height - 100, 80, 80)
}
//绘制人员图标
const imagePeople = this.data.canvas.createImage();
imagePeople.src = this.data.canvasPeople
imagePeople.onload = () => {
ctx.drawImage(imagePeople, 20, imgInfo.height - 220, 80, 80)
}
//绘制日期图标
// const imageDate = this.data.canvas.createImage();
// imageDate.src = this.data.canvasDate
// imageDate.onload = () => {
// ctx.drawImage(imageDate, imgInfo.width - 500, imgInfo.height - 220, 80, 80)
// }
ctx.drawImage(image, 0, 0, imgInfo.width, imgInfo.height)
//绘制黑色背景矩形
//绘制黑色渐变背景矩形
var grd = ctx.createLinearGradient(0, 0, imgInfo.width, 0);
grd.addColorStop(0, "rgba(0,0,0,0.8)");
grd.addColorStop(1, "rgba(255,255,255,0.4)");
ctx.fillStyle = grd;
ctx.fillRect(0, imgInfo.height - 250, imgInfo.width, 250)
//设置文字大小及字体
if (wx.getSystemInfoSync().platform == "ios") {
ctx.font = `35px sans-serif`
} else {
ctx.font = `25px sans-serif`
}
//设置画笔颜色
ctx.fillStyle = '#ffffff';
// //绘制时间
// let time = utils.formatTime(new Date())
// ctx.fillText(`${time}`, imgInfo.width - 400, imgInfo.height - 165)
//设置文字大小及字体
if (wx.getSystemInfoSync().platform == "ios") {
ctx.font = `40px sans-serif`
} else {
ctx.font = `30px sans-serif`
}
//绘制用户姓名
let name = this.data.name
ctx.fillText("用户姓名:" + `${name}`, 120, imgInfo.height - 195)
//绘制勘测人员
let time = utils.formatTime(new Date())
let surveyName = this.data.userName
ctx.fillText("勘测人员:" + `${surveyName}` + "(" + `${time}` + ")", 120, imgInfo.height - 145)
//绘制地点
ctx.fillText(`${this.data.customerAddress}`, 120, imgInfo.height - 25)
//绘制经纬度
ctx.fillText("经度:" + `${this.data.canvasLongitude}` + " " + "纬度:" + `${this.data.canvasLatitude}`, 120, imgInfo.height - 75)
//绘制完成后将canvas转为为图片
setTimeout(() => {
wx.hideLoading()
wx.showLoading({
title: '上传中',
mask: true
})
wx.canvasToTempFilePath({
canvas: this.data.canvas,
complete: (res) => {
console.log("将canvas转为为图片", res)
if (res.errMsg == "canvasToTempFilePath:ok") {
var that = this
wx.uploadFile({
url: that.data.API_BASE_URL + 'common/weChat/uploadImage',
filePath: res.tempFilePath,
name: 'file',
complete: function (res) {
wx.hideLoading()
console.log("上传图片", res)
if (res.statusCode == 200) {
var item = {
url: "",
name: "",
}
switch (type) {
case "7": //手机东南
item.url = that.data.IMG_BASE_URL + res.data;
item.name = res.data;
that.data.photo.phoneSix.push(item)
that.setData({
'photo.phoneSix': that.data.photo.phoneSix
})
break
case "8": //手机南侧
item.url = that.data.IMG_BASE_URL + res.data;
item.name = res.data;
that.data.photo.phoneSeven.push(item)
that.setData({
'photo.phoneSeven': that.data.photo.phoneSeven
})
break
case "9": //手机西南
item.url = that.data.IMG_BASE_URL + res.data;
item.name = res.data;
that.data.photo.phoneEight.push(item)
that.setData({
'photo.phoneEight': that.data.photo.phoneEight
})
break
case "10": //手机补充1
item.url = that.data.IMG_BASE_URL + res.data;
item.name = res.data;
that.data.photo.phoneNine.push(item)
that.setData({
'photo.phoneNine': that.data.photo.phoneNine
})
break
case "11": //手机补充2
item.url = that.data.IMG_BASE_URL + res.data;
item.name = res.data;
that.data.photo.phoneTen.push(item)
that.setData({
'photo.phoneTen': that.data.photo.phoneTen
})
break
}
} else {
wx.showToast({
title: "选择失败",
icon: 'none'
})
}
}
})
} else {
wx.hideLoading()
wx.showToast({
title: "选择失败",
icon: 'none'
})
}
resolve(res.tempFilePath)
},
})
}, 300)
}
})
},
})